diff --git a/reactos/base/applications/applications.rbuild b/reactos/base/applications/applications.rbuild index 6c4d2540178..30ae12b2501 100644 --- a/reactos/base/applications/applications.rbuild +++ b/reactos/base/applications/applications.rbuild @@ -19,6 +19,9 @@ + + + @@ -34,6 +37,9 @@ + + + @@ -76,7 +82,13 @@ + + + + + + diff --git a/reactos/base/applications/fontview/display.c b/reactos/base/applications/fontview/display.c new file mode 100644 index 00000000000..cc1e9b3a3f6 --- /dev/null +++ b/reactos/base/applications/fontview/display.c @@ -0,0 +1,412 @@ +/* + * fontview display class + * + * display.c + * + * Copyright (C) 2007 Timo Kreuzer kreuzer reactos org> + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + */ + +#include +#include + +#include "display.h" + +#define SPACING1 8 +#define SPACING2 5 + +const WCHAR g_szFontDisplayClassName[] = L"FontDisplayClass"; +LRESULT CALLBACK DisplayProc(HWND, UINT, WPARAM, LPARAM); + +/* Internal data storage type */ +typedef struct +{ + int nPageHeight; + WCHAR szTypeFaceName[LF_FULLFACESIZE]; + WCHAR szFormat[MAX_FORMAT]; + WCHAR szString[MAX_STRING]; + + HFONT hCaptionFont; + HFONT hCharSetFont; + HFONT hSizeFont; + HFONT hFonts[MAX_SIZES]; + int nSizes[MAX_SIZES]; + int nHeights[MAX_SIZES]; +} DISPLAYDATA; + +/* This is the only public function, it registers the class */ +BOOL +Display_InitClass(HINSTANCE hInstance) +{ + WNDCLASSEXW wincl; + + /* Set the fontdisplay window class structure */ + wincl.cbSize = sizeof(WNDCLASSEX); + wincl.style = CS_DBLCLKS; + wincl.lpfnWndProc = DisplayProc; + wincl.cbClsExtra = 0; + wincl.cbWndExtra = 0; + wincl.hInstance = hInstance; + wincl.hIcon = NULL; + wincl.hCursor = LoadCursor (NULL, IDC_ARROW); + wincl.hbrBackground = GetStockObject(WHITE_BRUSH); + wincl.lpszMenuName = NULL; + wincl.lpszClassName = g_szFontDisplayClassName; + wincl.hIconSm = NULL; + + /* Register the window class, and if it fails return FALSE */ + if (!RegisterClassExW (&wincl)) + { + return FALSE; + } + return TRUE; +} + +static int +Display_DrawText(HDC hDC, DISPLAYDATA* pData, int nYPos) +{ + HFONT hOldFont; + TEXTMETRIC tm; + int i, y; + WCHAR szSize[5]; + WCHAR szCaption[LF_FULLFACESIZE + 20]; + + /* This is the location on the DC where we draw */ + y = -nYPos; + + hOldFont = SelectObject(hDC, pData->hCaptionFont); + GetTextMetrics(hDC, &tm); + + swprintf(szCaption, L"%s%s", pData->szTypeFaceName, pData->szFormat); + TextOutW(hDC, 0, y, szCaption, wcslen(szCaption)); + y += tm.tmHeight + SPACING1; + + /* Draw a seperation Line */ + SelectObject(hDC, GetStockObject(BLACK_PEN)); + MoveToEx(hDC, 0, y, NULL); + LineTo(hDC, 10000, y); + y += SPACING2; + + /* TODO: Output font info */ + + /* Output Character set */ + hOldFont = SelectObject(hDC, pData->hCharSetFont); + GetTextMetrics(hDC, &tm); + swprintf(szCaption, L"abcdefghijklmnopqrstuvwxyz"); + TextOutW(hDC, 0, y, szCaption, wcslen(szCaption)); + y += tm.tmHeight + 1; + + swprintf(szCaption, L"ABCDEFGHIJKLMNOPQRSTUVWXYZ"); + TextOutW(hDC, 0, y, szCaption, wcslen(szCaption)); + y += tm.tmHeight + 1; + + swprintf(szCaption, L"0123456789.:,;(\"~!@#$%^&*')"); + TextOutW(hDC, 0, y, szCaption, wcslen(szCaption)); + y += tm.tmHeight + 1; + + /* Draw a seperation Line */ + SelectObject(hDC, GetStockObject(BLACK_PEN)); + MoveToEx(hDC, 0, y, NULL); + LineTo(hDC, 10000, y); + y += SPACING2; + + /* Output the strings for different sizes */ + for (i = 0; i < MAX_SIZES; i++) + { + SelectObject(hDC, pData->hFonts[i]); + TextOutW(hDC, 20, y, pData->szString, wcslen(pData->szString)); + GetTextMetrics(hDC, &tm); + y += tm.tmHeight + 1; + SelectObject(hDC, pData->hSizeFont); + swprintf(szSize, L"%d", pData->nSizes[i]); + TextOutW(hDC, 0, y - 13 - tm.tmDescent, szSize, wcslen(szSize)); + } + SelectObject(hDC, hOldFont); + + return y; +} + +static LRESULT +Display_SetTypeFace(HWND hwnd, PEXTLOGFONTW pExtLogFont) +{ + DISPLAYDATA* pData; + TEXTMETRIC tm; + HDC hDC; + RECT rect; + SCROLLINFO si; + int i; + LOGFONTW logfont; + + /* Set the new type face name */ + pData = (DISPLAYDATA*)GetWindowLongPtr(hwnd, GWLP_USERDATA); + _snwprintf(pData->szTypeFaceName, LF_FULLFACESIZE, pExtLogFont->elfFullName); + + /* Create the new fonts */ + hDC = GetDC(hwnd); + DeleteObject(pData->hCharSetFont); + + logfont = pExtLogFont->elfLogFont; + logfont.lfHeight = -MulDiv(16, GetDeviceCaps(GetDC(NULL), LOGPIXELSY), 72); + pData->hCharSetFont = CreateFontIndirectW(&logfont); + + /* Get font format */ + // FIXME: Get the real font format (OpenType?) + SelectObject(hDC, pData->hCharSetFont); + GetTextMetrics(hDC, &tm); + if ((tm.tmPitchAndFamily & TMPF_TRUETYPE) == TMPF_TRUETYPE) + { + swprintf(pData->szFormat, L" (TrueType)"); + } + + for (i = 0; i < MAX_SIZES; i++) + { + DeleteObject(pData->hFonts[i]); + logfont.lfHeight = -MulDiv(pData->nSizes[i], GetDeviceCaps(hDC, LOGPIXELSY), 72); + pData->hFonts[i] = CreateFontIndirectW(&logfont); + } + + /* Calculate new page dimensions */ + pData->nPageHeight = Display_DrawText(hDC, pData, 0); + ReleaseDC(hwnd, hDC); + + /* Set the vertical scrolling range and page size */ + GetClientRect(hwnd, &rect); + si.cbSize = sizeof(si); + si.fMask = SIF_RANGE | SIF_PAGE | SIF_POS | SIF_TRACKPOS; + si.nMin = 0; + si.nMax = pData->nPageHeight; + si.nPage = rect.bottom; + si.nPos = 0; + si.nTrackPos = 0; + SetScrollInfo(hwnd, SB_VERT, &si, TRUE); + + return 0; +} + +static LRESULT +Display_SetString(HWND hwnd, LPARAM lParam) +{ + DISPLAYDATA* pData; + + pData = (DISPLAYDATA*)GetWindowLongPtr(hwnd, GWLP_USERDATA); + _snwprintf(pData->szString, MAX_STRING, (WCHAR*)lParam); + + // FIXME: redraw the window + + return 0; +} + +static LRESULT +Display_OnCreate(HWND hwnd) +{ + DISPLAYDATA* pData; + const int nSizes[MAX_SIZES] = {8, 12, 18, 24, 36, 48, 60, 72}; + int i; + EXTLOGFONTW ExtLogFont = {{50, 0, 0, 0, FW_NORMAL, FALSE, FALSE, FALSE, + ANSI_CHARSET, OUT_DEFAULT_PRECIS, + CLIP_DEFAULT_PRECIS, PROOF_QUALITY, + DEFAULT_PITCH , L"Ms Shell Dlg"}, + L"Ms Shell Dlg"}; + + /* Create data structure */ + pData = malloc(sizeof(DISPLAYDATA)); + ZeroMemory(pData, sizeof(DISPLAYDATA)); + + /* Set the window's GWLP_USERDATA to our data structure */ + SetWindowLongPtr(hwnd, GWLP_USERDATA, (LONG_PTR)pData); + + for (i = 0; i < MAX_SIZES; i++) + { + pData->nSizes[i] = nSizes[i]; + } + + pData->hCaptionFont = CreateFontIndirectW(&ExtLogFont.elfLogFont); + ExtLogFont.elfLogFont.lfHeight = 12; + pData->hSizeFont = CreateFontIndirectW(&ExtLogFont.elfLogFont); + + Display_SetString(hwnd, (LPARAM)L"Jackdaws love my big sphinx of quartz. 1234567890"); + + Display_SetTypeFace(hwnd, &ExtLogFont); + + return 0; +} + +static LRESULT +Display_OnPaint(HWND hwnd) +{ + DISPLAYDATA* pData; + PAINTSTRUCT ps; + SCROLLINFO si; + + pData = (DISPLAYDATA*)GetWindowLongPtr(hwnd, GWLP_USERDATA); + + /* Get the Scroll position */ + si.cbSize = sizeof(si); + si.fMask = SIF_POS; + GetScrollInfo(hwnd, SB_VERT, &si); + + BeginPaint(hwnd, &ps); + + /* Erase background */ + FillRect(ps.hdc, &ps.rcPaint, GetStockObject(WHITE_BRUSH)); + + /* Draw the text */ + Display_DrawText(ps.hdc, pData, si.nPos); + + EndPaint(hwnd, &ps); + + return 0; +} + +static LRESULT +Display_OnSize(HWND hwnd) +{ + RECT rect; + SCROLLINFO si; + int nOldPos; + + GetClientRect(hwnd, &rect); + + /* Get the old scroll pos */ + si.cbSize = sizeof(si); + si.fMask = SIF_POS; + GetScrollInfo(hwnd, SB_VERT, &si); + nOldPos = si.nPos; + + /* Set the new page size */ + si.fMask = SIF_PAGE; + si.nPage = rect.bottom; + SetScrollInfo(hwnd, SB_VERT, &si, TRUE); + + /* Get the new scroll pos */ + si.fMask = SIF_POS; + GetScrollInfo(hwnd, SB_VERT, &si); + + /* If they don't match ... */ + if (nOldPos != si.nPos) + { + /* ... scroll the window */ + ScrollWindowEx(hwnd, 0, nOldPos - si.nPos, NULL, NULL, NULL, NULL, SW_INVALIDATE); + UpdateWindow(hwnd); + } + + return 0; +} + +static LRESULT +Display_OnVScroll(HWND hwnd, WPARAM wParam) +{ + SCROLLINFO si; + int nPos; + + si.cbSize = sizeof(si); + si.fMask = SIF_POS | SIF_RANGE | SIF_TRACKPOS; + GetScrollInfo(hwnd, SB_VERT, &si); + + switch(LOWORD(wParam)) + { + case SB_PAGEUP: + nPos = si.nPos - 50; + break; + case SB_PAGEDOWN: + nPos = si.nPos + 50; + break; + case SB_LINEUP: + nPos = si.nPos - 10; + break; + case SB_LINEDOWN: + nPos = si.nPos + 10; + break; + case SB_THUMBTRACK: + case SB_THUMBPOSITION: + nPos = si.nTrackPos; + break; + default: + nPos = si.nPos; + } + + nPos = max(nPos, si.nMin); + nPos = min(nPos, si.nMax); + if (nPos != si.nPos) + { + ScrollWindowEx(hwnd, 0, si.nPos - nPos, NULL, NULL, NULL, NULL, SW_INVALIDATE); + si.cbSize = sizeof(si); + si.nPos = nPos; + si.fMask = SIF_POS; + SetScrollInfo(hwnd, SB_VERT, &si, TRUE); + UpdateWindow(hwnd); + } + + return 0; +} + +static LRESULT +Display_OnDestroy(HWND hwnd) +{ + DISPLAYDATA* pData; + int i; + + pData = (DISPLAYDATA*)GetWindowLongPtr(hwnd, GWLP_USERDATA); + + /* Delete the fonts */ + DeleteObject(pData->hCaptionFont); + DeleteObject(pData->hCharSetFont); + DeleteObject(pData->hSizeFont); + + for (i = 0; i < MAX_SIZES; i++) + { + DeleteObject(pData->hFonts[i]); + } + + /* Free the data structure */ + free(pData); + + return 0; +} + +LRESULT CALLBACK +DisplayProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam) +{ + switch (message) + { + case WM_CREATE: + return Display_OnCreate(hwnd); + + case WM_PAINT: + return Display_OnPaint(hwnd); + + case WM_SIZE: + return Display_OnSize(hwnd); + + case WM_VSCROLL: + return Display_OnVScroll(hwnd, wParam); + + case FVM_SETTYPEFACE: + return Display_SetTypeFace(hwnd, (PEXTLOGFONTW)lParam); + + case FVM_SETSTRING: + return Display_SetString(hwnd, lParam); + + case WM_DESTROY: + return Display_OnDestroy(hwnd); + + default: + return DefWindowProcW(hwnd, message, wParam, lParam); + } + + return 0; +} + diff --git a/reactos/base/applications/fontview/display.h b/reactos/base/applications/fontview/display.h new file mode 100644 index 00000000000..687da49a99a --- /dev/null +++ b/reactos/base/applications/fontview/display.h @@ -0,0 +1,18 @@ +#ifndef _DISPLAY_H +#define _DISPLAY_H + +/* Messages for the display class */ +#define FVM_SETTYPEFACE WM_USER +#define FVM_SETSTRING (WM_USER + 1) + +/* Size restrictions */ +#define MAX_STRING 100 +#define MAX_FORMAT 20 +#define MAX_SIZES 8 + +extern const WCHAR g_szFontDisplayClassName[]; + +/* Public function */ +BOOL Display_InitClass(HINSTANCE hInstance); + +#endif // _DISPLAY_H diff --git a/reactos/base/applications/fontview/fontview.c b/reactos/base/applications/fontview/fontview.c new file mode 100644 index 00000000000..1f0f0b624ef --- /dev/null +++ b/reactos/base/applications/fontview/fontview.c @@ -0,0 +1,327 @@ +/* + * fontview + * + * fontview.c + * + * Copyright (C) 2007 Timo Kreuzer kreuzer reactos org> + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + */ + +#include "fontview.h" + +HINSTANCE g_hInstance; +EXTLOGFONTW g_ExtLogFontW; + +static const WCHAR g_szFontViewClassName[] = L"FontViewWClass"; + +/* Tye definition for the GetFontResourceInfo function */ +typedef BOOL (WINAPI *PGFRI)(LPCWSTR, DWORD *, LPVOID, DWORD); + +DWORD +FormatString( + DWORD dwFlags, + HINSTANCE hInstance, + DWORD dwStringId, + DWORD dwLanguageId, + LPWSTR lpBuffer, + DWORD nSize, + va_list* Arguments +) +{ + DWORD dwRet; + int len; + WCHAR Buffer[1000]; + + len = LoadStringW(hInstance, dwStringId, (LPWSTR)Buffer, 1000); + + if (len) + { + dwFlags |= FORMAT_MESSAGE_FROM_STRING; + dwFlags &= ~(FORMAT_MESSAGE_FROM_HMODULE | FORMAT_MESSAGE_FROM_SYSTEM); + dwRet = FormatMessageW(dwFlags, Buffer, 0, dwLanguageId, lpBuffer, nSize, Arguments); + return dwRet; + } + return 0; +} + +static void +ErrorMsgBox(HWND hParent, DWORD dwCaptionID, DWORD dwMessageId, ...) +{ + HMODULE hModule; + HLOCAL hMemCaption = NULL; + HLOCAL hMemText = NULL; + va_list args; + + hModule = GetModuleHandle(NULL); + + va_start(args, dwMessageId); + FormatString(FORMAT_MESSAGE_ALLOCATE_BUFFER, + NULL, dwMessageId, 0, (LPWSTR)&hMemText, 0, &args); + va_end(args); + + FormatString(FORMAT_MESSAGE_ALLOCATE_BUFFER, + NULL, dwCaptionID, 0, (LPWSTR)&hMemCaption, 0, NULL); + + MessageBoxW(hParent, hMemText, hMemCaption, MB_ICONERROR); + + LocalFree(hMemCaption); + LocalFree(hMemText); +} + +int WINAPI +WinMain (HINSTANCE hThisInstance, + HINSTANCE hPrevInstance, + LPSTR lpCmdLine, + int nCmdShow) +{ + int argc; + WCHAR** argv; + DWORD dwSize; + HWND hMainWnd; + MSG msg; + WNDCLASSEXW wincl; + HINSTANCE hDLL; + PGFRI GetFontResourceInfoW; + + g_hInstance = hThisInstance; + + /* Get unicode command line */ + argv = CommandLineToArgvW(GetCommandLineW(), &argc); + if (argc < 2) + { + ErrorMsgBox(0, IDS_ERROR, IDS_ERROR_BADCMD, argv[1]); + return -1; + } + + /* Try to add the font resource */ + if (!AddFontResourceW(argv[1])) + { + ErrorMsgBox(0, IDS_ERROR, IDS_ERROR_NOFONT, argv[1]); + return -1; + } + + /* Load the GetFontResourceInfo function from gdi32.dll */ + hDLL = LoadLibraryW(L"GDI32.DLL"); + GetFontResourceInfoW = (PGFRI)GetProcAddress(hDLL, "GetFontResourceInfoW"); + + /* Get the font name */ + dwSize = sizeof(g_ExtLogFontW.elfFullName); + if (!GetFontResourceInfoW(argv[1], &dwSize, g_ExtLogFontW.elfFullName, 1)) + { + ErrorMsgBox(0, IDS_ERROR, IDS_ERROR_NOFONT, argv[1]); + return -1; + } + + dwSize = sizeof(LOGFONTW); + if (!GetFontResourceInfoW(argv[1], &dwSize, &g_ExtLogFontW.elfLogFont, 2)) + { + ErrorMsgBox(0, IDS_ERROR, IDS_ERROR_NOFONT, argv[1]); + return -1; + } + + if (!Display_InitClass(hThisInstance)) + { + ErrorMsgBox(0, IDS_ERROR, IDS_ERROR_NOCLASS); + return -1; + } + + /* The main window class */ + wincl.cbSize = sizeof (WNDCLASSEXW); + wincl.style = CS_DBLCLKS; + wincl.lpfnWndProc = MainWndProc; + wincl.cbClsExtra = 0; + wincl.cbWndExtra = 0; + wincl.hInstance = hThisInstance; + wincl.hIcon = LoadIcon (NULL, IDI_APPLICATION); + wincl.hCursor = LoadCursor (NULL, IDC_ARROW); + wincl.hbrBackground = (HBRUSH)COLOR_BACKGROUND; + wincl.lpszMenuName = NULL; + wincl.lpszClassName = g_szFontViewClassName; + wincl.hIconSm = LoadIcon (NULL, IDI_APPLICATION); + + /* Register the window class, and if it fails quit the program */ + if (!RegisterClassExW (&wincl)) + { + ErrorMsgBox(0, IDS_ERROR, IDS_ERROR_NOCLASS); + return 0; + } + + /* The class is registered, let's create the main window */ + hMainWnd = CreateWindowExW( + 0, /* Extended possibilites for variation */ + g_szFontViewClassName, /* Classname */ + g_ExtLogFontW.elfFullName,/* Title Text */ + WS_OVERLAPPEDWINDOW, /* default window */ + CW_USEDEFAULT, /* Windows decides the position */ + CW_USEDEFAULT, /* where the window ends up on the screen */ + 544, /* The programs width */ + 375, /* and height in pixels */ + HWND_DESKTOP, /* The window is a child-window to desktop */ + NULL, /* No menu */ + hThisInstance, /* Program Instance handler */ + NULL /* No Window Creation data */ + ); + ShowWindow(hMainWnd, nCmdShow); + + /* Main message loop */ + while (GetMessage (&msg, NULL, 0, 0)) + { + TranslateMessage(&msg); + DispatchMessage(&msg); + } + + RemoveFontResourceW(argv[1]); + + return msg.wParam; +} + +static LRESULT +MainWnd_OnCreate(HWND hwnd) +{ + WCHAR szQuit[MAX_BUTTONNAME]; + WCHAR szPrint[MAX_BUTTONNAME]; + WCHAR szString[MAX_STRING]; + HWND hDisplay, hButtonQuit, hButtonPrint; + + /* create the display window */ + hDisplay = CreateWindowExW( + 0, /* Extended style */ + g_szFontDisplayClassName, /* Classname */ + L"", /* Title text */ + WS_CHILD | WS_VSCROLL, /* Window style */ + 0, /* X-pos */ + HEADER_SIZE, /* Y-Pos */ + 550, /* Width */ + 370-HEADER_SIZE, /* Height */ + hwnd, /* Parent */ + (HMENU)IDC_DISPLAY, /* Identifier */ + g_hInstance, /* Program Instance handler */ + NULL /* Window Creation data */ + ); + + LoadStringW(g_hInstance, IDS_STRING, szString, MAX_STRING); + SendMessage(hDisplay, FVM_SETSTRING, 0, (LPARAM)szString); + + /* Init the display window with the font name */ + SendMessage(hDisplay, FVM_SETTYPEFACE, 0, (LPARAM)&g_ExtLogFontW); + ShowWindow(hDisplay, SW_SHOWNORMAL); + + /* Create the quit button */ + LoadStringW(g_hInstance, IDS_QUIT, szQuit, MAX_BUTTONNAME); + hButtonQuit = CreateWindowExW( + 0, /* Extended style */ + L"button", /* Classname */ + szQuit, /* Title text */ + WS_CHILD | WS_VISIBLE, /* Window style */ + BUTTON_POS_X, /* X-pos */ + BUTTON_POS_Y, /* Y-Pos */ + BUTTON_WIDTH, /* Width */ + BUTTON_HEIGHT, /* Height */ + hwnd, /* Parent */ + (HMENU)IDC_QUIT, /* Identifier */ + g_hInstance, /* Program Instance handler */ + NULL /* Window Creation data */ + ); + SendMessage(hButtonQuit, WM_SETFONT, (WPARAM)GetStockObject(DEFAULT_GUI_FONT), (LPARAM)TRUE); + + /* Create the print button */ + LoadStringW(g_hInstance, IDS_PRINT, szPrint, MAX_BUTTONNAME); + hButtonPrint = CreateWindowExW( + 0, /* Extended style */ + L"button", /* Classname */ + szPrint, /* Title text */ + WS_CHILD | WS_VISIBLE, /* Window style */ + 450, /* X-pos */ + BUTTON_POS_Y, /* Y-Pos */ + BUTTON_WIDTH, /* Width */ + BUTTON_HEIGHT, /* Height */ + hwnd, /* Parent */ + (HMENU)IDC_PRINT, /* Identifier */ + g_hInstance, /* Program Instance handler */ + NULL /* Window Creation data */ + ); + SendMessage(hButtonPrint, WM_SETFONT, (WPARAM)GetStockObject(DEFAULT_GUI_FONT), (LPARAM)TRUE); + + return 0; +} + +static LRESULT +MainWnd_OnSize(HWND hwnd) +{ + RECT rc; + + GetClientRect(hwnd, &rc); + MoveWindow(GetDlgItem(hwnd, IDC_PRINT), rc.right - BUTTON_WIDTH - BUTTON_POS_X, BUTTON_POS_Y, BUTTON_WIDTH, BUTTON_HEIGHT, TRUE); + MoveWindow(GetDlgItem(hwnd, IDC_DISPLAY), 0, HEADER_SIZE, rc.right, rc.bottom - HEADER_SIZE, TRUE); + + return 0; +} + +static LRESULT +MainWnd_OnPaint(HWND hwnd) +{ + HDC hDC; + PAINTSTRUCT ps; + RECT rc; + + hDC = BeginPaint(hwnd, &ps); + GetClientRect(hwnd, &rc); + rc.top = HEADER_SIZE - 2; + rc.bottom = HEADER_SIZE; + FillRect(hDC, &rc, GetStockObject(GRAY_BRUSH)); + EndPaint(hwnd, &ps); + return 0; +} + +LRESULT CALLBACK +MainWndProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam) +{ + switch (message) + { + case WM_CREATE: + return MainWnd_OnCreate(hwnd); + + case WM_PAINT: + return MainWnd_OnPaint(hwnd); + + case WM_SIZE: + return MainWnd_OnSize(hwnd); + + case WM_COMMAND: + switch(LOWORD(wParam)) + { + case IDC_QUIT: + PostQuitMessage (0); /* send a WM_QUIT to the message queue */ + break; + + case IDC_PRINT: + MessageBox(hwnd, TEXT("This function is unimplemented"), TEXT("Unimplemented"), MB_OK); + break; + } + break; + + case WM_DESTROY: + PostQuitMessage (0); /* send a WM_QUIT to the message queue */ + break; + + default: /* for messages that we don't deal with */ + return DefWindowProcW(hwnd, message, wParam, lParam); + } + + return 0; +} + +/* EOF */ diff --git a/reactos/base/applications/fontview/fontview.h b/reactos/base/applications/fontview/fontview.h new file mode 100644 index 00000000000..ea0c254c9f7 --- /dev/null +++ b/reactos/base/applications/fontview/fontview.h @@ -0,0 +1,21 @@ +#include + +#include "resource.h" +#include "display.h" + +#define MAX_LOADSTRING 50 +#define MAX_BUTTONNAME 30 + +#define HEADER_SIZE 37 +#define BUTTON_POS_X 6 +#define BUTTON_POS_Y 8 +#define BUTTON_WIDTH 72 +#define BUTTON_HEIGHT 21 + +#define IDC_QUIT 1001 +#define IDC_PRINT 1002 +#define IDC_DISPLAY 1003 + +LRESULT CALLBACK MainWndProc(HWND, UINT, WPARAM, LPARAM); + +BOOL LoadFont(LPWSTR lpCmdLine); diff --git a/reactos/base/applications/fontview/fontview.rbuild b/reactos/base/applications/fontview/fontview.rbuild new file mode 100644 index 00000000000..c4a10148f4e --- /dev/null +++ b/reactos/base/applications/fontview/fontview.rbuild @@ -0,0 +1,10 @@ + + . + gdi32 + user32 + shell32 + kernel32 + fontview.c + display.c + fontview.rc + diff --git a/reactos/base/applications/fontview/fontview.rc b/reactos/base/applications/fontview/fontview.rc new file mode 100644 index 00000000000..27679557cab --- /dev/null +++ b/reactos/base/applications/fontview/fontview.rc @@ -0,0 +1,26 @@ +#include +#include "resource.h" + +LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL + +IDI_TT ICON "ttf.ico" + +STRINGTABLE DISCARDABLE +BEGIN + IDS_CHARSLOWER, "abcdefghijklmnopqrstuvmxyz" + IDS_CHARSUPPER, "ABCDEFGHIJKLMNOPQRSTUVMXYZ" + IDS_SPECIALCHARS, "0123456789.:,;(*!?')" +END + + +#include "lang/bg-BG.rc" +#include "lang/de-DE.rc" +#include "lang/en-US.rc" +#include "lang/es-ES.rc" +#include "lang/fr-FR.rc" +#include "lang/lt-LT.rc" +#include "lang/pl-PL.rc" +#include "lang/ru-RU.rc" +#include "lang/sk-SK.rc" +#include "lang/uk-UA.rc" +#include "lang/no-NO.rc" diff --git a/reactos/base/applications/fontview/lang/bg-BG.rc b/reactos/base/applications/fontview/lang/bg-BG.rc new file mode 100644 index 00000000000..f3e5e0e27c1 --- /dev/null +++ b/reactos/base/applications/fontview/lang/bg-BG.rc @@ -0,0 +1,14 @@ +LANGUAGE LANG_BULGARIAN, SUBLANG_DEFAULT + +STRINGTABLE DISCARDABLE +{ + IDS_QUIT, "Изход" + IDS_PRINT, "Печат" + IDS_STRING, "Абвгд ежзий клмно прсту фхцчш щъьюя. 1234567890" + IDS_ERROR, "Грешка" + IDS_ERROR_NOMEM, "Няма достатъчно място за завършване на действието." + IDS_ERROR_NOFONT, "%1 не е редовен шрифтов файл." + IDS_ERROR_NOCLASS, "Неуспешно изпълнение на класа на прозореца." + IDS_ERROR_BADCMD, "Не е указан шрифтов файл.\nНаписано:\n fontview.exe " +} + diff --git a/reactos/base/applications/fontview/lang/de-DE.rc b/reactos/base/applications/fontview/lang/de-DE.rc new file mode 100644 index 00000000000..2197a7ffaec --- /dev/null +++ b/reactos/base/applications/fontview/lang/de-DE.rc @@ -0,0 +1,14 @@ +LANGUAGE LANG_GERMAN, SUBLANG_NEUTRAL + +STRINGTABLE DISCARDABLE +BEGIN + IDS_QUIT, "Fertig" + IDS_PRINT, "Drucken" + IDS_STRING, "Franz jagt im komplett verwahrlosten Taxi quer durch Bayern. 1234567890" + IDS_ERROR, "Fehler" + IDS_ERROR_NOMEM, "Es steht nicht genьgend Speicher zur Verfьgung." + IDS_ERROR_NOFONT, "Die angegebene Datei %1 ist keine gьltige Schriftartendatei." + IDS_ERROR_NOCLASS, "Fehler beim initialisieren der Fensterklasse." + IDS_ERROR_BADCMD, "Keine Schriftartendatei angegeben.\nSyntax:\n fontview.exe " +END + diff --git a/reactos/base/applications/fontview/lang/en-US.rc b/reactos/base/applications/fontview/lang/en-US.rc new file mode 100644 index 00000000000..c03ed941dcd --- /dev/null +++ b/reactos/base/applications/fontview/lang/en-US.rc @@ -0,0 +1,16 @@ +LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US + +STRINGTABLE DISCARDABLE +BEGIN + IDS_QUIT, "Quit" + IDS_PRINT, "Print" + IDS_STRING, "Jackdaws love my big sphinx of quartz. 1234567890" + IDS_ERROR, "Error" + IDS_ERROR_NOMEM, "There's not enough memory to complete the operation." + IDS_ERROR_NOFONT, "The file %1 is not a valid font file." + IDS_ERROR_NOCLASS, "Could not initialize window class." + IDS_ERROR_BADCMD, "No font file given.\nSyntax:\n fontview.exe " +END + + + diff --git a/reactos/base/applications/fontview/lang/es-ES.rc b/reactos/base/applications/fontview/lang/es-ES.rc new file mode 100644 index 00000000000..dd14f23be02 --- /dev/null +++ b/reactos/base/applications/fontview/lang/es-ES.rc @@ -0,0 +1,18 @@ +/* + * Spanish language file by Javier Remacha <2007-09-21> + */ +LANGUAGE LANG_SPANISH, SUBLANG_NEUTRAL + +STRINGTABLE DISCARDABLE +BEGIN + IDS_QUIT, "Cerrar" + IDS_PRINT, "Imprimir" + IDS_STRING, "Haz el amor y no la guerra. 1234567890" + IDS_ERROR, "Error" + IDS_ERROR_NOMEM, "No hay memoria suficiente para completar la operaciуn." + IDS_ERROR_NOFONT, "El archivo %1 no es un archivo vбlido de fuente." + IDS_ERROR_NOCLASS, "No es posible iniciar la clase." + IDS_ERROR_BADCMD, "No hay archivo de fuente.\nSyntax:\n fontview.exe " +END + + diff --git a/reactos/base/applications/fontview/lang/fr-FR.rc b/reactos/base/applications/fontview/lang/fr-FR.rc new file mode 100644 index 00000000000..d1eb6ea2b42 --- /dev/null +++ b/reactos/base/applications/fontview/lang/fr-FR.rc @@ -0,0 +1,15 @@ +LANGUAGE LANG_FRENCH, SUBLANG_NEUTRAL + +STRINGTABLE DISCARDABLE +BEGIN + IDS_QUIT, "Quitter" + IDS_PRINT, "Imprimer" + IDS_STRING, "Voix ambiguл d'un c¶ur qui au zйphyr prйfиre les jattes de kiwis. 1234567890" + IDS_ERROR, "Erreur" + IDS_ERROR_NOMEM, "Mйmoire insuffisante pour terminer l'opйration." + IDS_ERROR_NOFONT, "Le fichier %1 n'est pas un fichier police valide." + IDS_ERROR_NOCLASS, "Impossible d'initialiser la classe de fenкtre." + IDS_ERROR_BADCMD, "Aucun fichier police transmis.\nSyntaxe:\n fontview.exe " +END + + diff --git a/reactos/base/applications/fontview/lang/lt-LT.rc b/reactos/base/applications/fontview/lang/lt-LT.rc new file mode 100644 index 00000000000..99319838c66 --- /dev/null +++ b/reactos/base/applications/fontview/lang/lt-LT.rc @@ -0,0 +1,18 @@ +/* Translation by Vytis "CMan" Girdюijauskas (cman@cman.us) */ + +LANGUAGE LANG_LITHUANIAN, SUBLANG_DEFAULT + +STRINGTABLE DISCARDABLE +BEGIN + IDS_QUIT, "Baigti" + IDS_PRINT, "Spausdinti" + IDS_STRING, "ABCDEFGHIYJKLMNOPQRSTUVWXZ аижлбршыю 1234567890" + IDS_ERROR, "Klaida" + IDS_ERROR_NOMEM, "Uюduoиiai uюbaigti, nepakanka atminties." + IDS_ERROR_NOFONT, "%1 nлra teisinga рrifto byla." + IDS_ERROR_NOCLASS, "Nepavyko inicijuoti lango klasлs." + IDS_ERROR_BADCMD, "Nenurodyta рrifto byla.\nSintaksл:\n fontview.exe <рrifto byla>" +END + + + diff --git a/reactos/base/applications/fontview/lang/no-NO.rc b/reactos/base/applications/fontview/lang/no-NO.rc new file mode 100644 index 00000000000..551f8093ef1 --- /dev/null +++ b/reactos/base/applications/fontview/lang/no-NO.rc @@ -0,0 +1,16 @@ +LANGUAGE LANG_NORWEGIAN, SUBLANG_NEUTRAL + +STRINGTABLE DISCARDABLE +BEGIN + IDS_QUIT, "Avslutt" + IDS_PRINT, "Skriv" + IDS_STRING, "Jackdaws love my big sphinx of quartz. 1234567890" + IDS_ERROR, "Feil" + IDS_ERROR_NOMEM, "Det er ikke nok minne for е fullfшre oppgaven." + IDS_ERROR_NOFONT, "Filen %1 er ikke et gyldig skriftfil." + IDS_ERROR_NOCLASS, "Kunne ikke initialise vindu klassen." + IDS_ERROR_BADCMD, "Ingen skriftfil er gitt.\nSyntaks:\n fontview.exe " +END + + + diff --git a/reactos/base/applications/fontview/lang/pl-PL.rc b/reactos/base/applications/fontview/lang/pl-PL.rc new file mode 100644 index 00000000000..1a1525bad57 --- /dev/null +++ b/reactos/base/applications/fontview/lang/pl-PL.rc @@ -0,0 +1,20 @@ +/* + * translated by Caemyr - Olaf Siejka (Feb, 2008) + * Use ReactOS forum PM or IRC to contact me + * http://www.reactos.org + * IRC: irc.freenode.net #reactos-pl; + */ + +LANGUAGE LANG_POLISH, SUBLANG_DEFAULT + +STRINGTABLE DISCARDABLE +BEGIN + IDS_QUIT, "Wyjњcie" + IDS_PRINT, "Drukuj" + IDS_STRING, "W Szczebrzeszynie chrz№szcz brzmi w trzcinie. 1234567890" + IDS_ERROR, "Bі№d" + IDS_ERROR_NOMEM, "Brakuje pamiкci do ukoсczenia tej operacji." + IDS_ERROR_NOFONT, "Plik %1 nie jest poprawnym plikiem czcionki." + IDS_ERROR_NOCLASS, "Nie udaіo siк zainicjowaж klasy window." + IDS_ERROR_BADCMD, "Brak pliku czcionki.\nSkіadnia:\n fontview.exe " +END diff --git a/reactos/base/applications/fontview/lang/ru-RU.rc b/reactos/base/applications/fontview/lang/ru-RU.rc new file mode 100644 index 00000000000..1ba0655aace --- /dev/null +++ b/reactos/base/applications/fontview/lang/ru-RU.rc @@ -0,0 +1,17 @@ +// Russian language resource file (Dmitry Chapyshev, 2007-06-21) + +LANGUAGE LANG_RUSSIAN, SUBLANG_DEFAULT + +STRINGTABLE DISCARDABLE +BEGIN + IDS_QUIT, "Выход" + IDS_PRINT, "Печать" + IDS_STRING, "Jackdaws love my big sphinx of quartz. 1234567890" + IDS_ERROR, "Ошибка" + IDS_ERROR_NOMEM, "Недостаточно памяти, чтобы завершить операцию." + IDS_ERROR_NOFONT, "%1 не является корректным файлом шрифта." + IDS_ERROR_NOCLASS, "Невозможно инициализировать класс окна." + IDS_ERROR_BADCMD, "Не указан файл шрифта.\nСинтаксис:\n fontview.exe <файл_шрифта>" +END + + diff --git a/reactos/base/applications/fontview/lang/sk-SK.rc b/reactos/base/applications/fontview/lang/sk-SK.rc new file mode 100644 index 00000000000..20497e9851f --- /dev/null +++ b/reactos/base/applications/fontview/lang/sk-SK.rc @@ -0,0 +1,18 @@ +/* TRANSLATOR: Mбrio Kaиmбr /Mario Kacmar/ aka Kario (kario@szm.sk) + * DATE OF TR: 31-07-2007 + * UPDATED : 28-05-2008 + */ + +LANGUAGE LANG_SLOVAK, SUBLANG_DEFAULT + +STRINGTABLE DISCARDABLE +BEGIN + IDS_QUIT, "Hotovo" + IDS_PRINT, "Tlaиiќ" + IDS_STRING, "Kаdeѕ пatѕov uин koтa ћraќ kфru. 1234567890" + IDS_ERROR, "Chyba" + IDS_ERROR_NOMEM, "Na vykonanie tejto operбcie nie je dostatok voѕnej pamдte." + IDS_ERROR_NOFONT, "Poћadovanэ sъbor %1 nie je platnэm sъborom pнsiem." + IDS_ERROR_NOCLASS, "Nepodarilo sa inicializovaќ triedu window." + IDS_ERROR_BADCMD, "Nebol zadanэ ћiadny sъbor pнsiem.\nPouћitie:\n fontview.exe " +END diff --git a/reactos/base/applications/fontview/lang/uk-UA.rc b/reactos/base/applications/fontview/lang/uk-UA.rc new file mode 100644 index 00000000000..3290c0010db --- /dev/null +++ b/reactos/base/applications/fontview/lang/uk-UA.rc @@ -0,0 +1,21 @@ +/* + * PROJECT: ReactOS Font Viewer + * LICENSE: GPL - See COPYING in the top level directory + * FILE: rosapps/fontview/lang/uk-UA.rc + * PURPOSE: Ukraianian Language File for fontview + * TRANSLATOR: Artem Reznikov + */ + +LANGUAGE LANG_UKRAINIAN, SUBLANG_DEFAULT + +STRINGTABLE DISCARDABLE +BEGIN + IDS_QUIT, "Вихід" + IDS_PRINT, "Друк" + IDS_STRING, "Jackdaws love my big sphinx of quartz. 1234567890" + IDS_ERROR, "Помилка" + IDS_ERROR_NOMEM, "Недостатньо пам'яті для завершення операцію." + IDS_ERROR_NOFONT, "Файл %1 не є коректним файлом шрифту." + IDS_ERROR_NOCLASS, "Неможливо ініціалізувати віконний клас." + IDS_ERROR_BADCMD, "Не вказаний файл шрифту.\nСинтаксис:\n fontview.exe <файл шрифту>" +END diff --git a/reactos/base/applications/fontview/resource.h b/reactos/base/applications/fontview/resource.h new file mode 100644 index 00000000000..1aabb817091 --- /dev/null +++ b/reactos/base/applications/fontview/resource.h @@ -0,0 +1,15 @@ + +#define IDS_ERROR 100 +#define IDS_ERROR_NOMEM 101 +#define IDS_ERROR_NOFONT 102 +#define IDS_ERROR_NOCLASS 103 +#define IDS_ERROR_BADCMD 104 + +#define IDS_QUIT 500 +#define IDS_PRINT 501 +#define IDS_STRING 502 + +#define IDS_CHARSLOWER 700 +#define IDS_CHARSUPPER 701 +#define IDS_SPECIALCHARS 702 + diff --git a/reactos/base/applications/fontview/ttf.ico b/reactos/base/applications/fontview/ttf.ico new file mode 100644 index 00000000000..d9476619f75 Binary files /dev/null and b/reactos/base/applications/fontview/ttf.ico differ diff --git a/reactos/base/applications/magnify/lang/bg-BG.rc b/reactos/base/applications/magnify/lang/bg-BG.rc new file mode 100644 index 00000000000..e88d2539e04 --- /dev/null +++ b/reactos/base/applications/magnify/lang/bg-BG.rc @@ -0,0 +1,67 @@ +LANGUAGE LANG_BULGARIAN, SUBLANG_DEFAULT + +IDC_MAGNIFIER MENU +BEGIN + POPUP "&Файл" + BEGIN + MENUITEM "Из&ход", IDM_EXIT + MENUITEM "На&стройки", IDM_OPTIONS + MENUITEM SEPARATOR + MENUITEM "&За...", IDM_ABOUT + END +END + +IDC_MAGNIFIER ACCELERATORS +BEGIN + "?", IDM_ABOUT, ASCII, ALT + "/", IDM_ABOUT, ASCII, ALT +END + +IDD_ABOUTBOX DIALOGEX 22, 17, 220, 75 +STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | DS_CENTER | WS_CAPTION | WS_SYSMENU +CAPTION "За" +FONT 8, "MS Shell Dlg", 0, 0, 0x0 +BEGIN + ICON IDI_ICON,IDC_MYICON,14,9,20,20 + LTEXT "Увеличител, версия 1,0",IDC_STATIC,49,10,119,8,SS_NOPREFIX + LTEXT "Copyright (C) 2007 Marc Piulachs (marc.piulachs@codexchange.net)",IDC_STATIC,48,24,125,22 + PUSHBUTTON "Добре",IDOK,162,48,50,14 +END + +IDD_DIALOGOPTIONS DIALOGEX 0, 0, 210, 182 +STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | DS_CENTER | WS_MINIMIZEBOX | WS_POPUP | WS_CAPTION | WS_SYSMENU +CAPTION "Настройки на увеличителя" +FONT 8, "MS Shell Dlg", 400, 0, 0x1 +BEGIN + DEFPUSHBUTTON "Изход",IDOK,96,161,50,14 + PUSHBUTTON "Помощ",IDC_BUTTON_HELP,38,161,50,14 + LTEXT "Увеличение:",IDC_STATIC,6,8,68,8 + COMBOBOX IDC_ZOOM,72,6,63,66,CBS_DROPDOWNLIST | CBS_SORT | WS_VSCROLL | WS_TABSTOP + GROUPBOX "Проследяване",IDC_STATIC,7,25,195,59 + GROUPBOX "Представяне",IDC_STATIC,7,87,195,57 + CONTROL "Следване показалеца на мишката",IDC_FOLLOWMOUSECHECK,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,18,42,164,10 + CONTROL "Следване съсредоточаването на клавиатурата",IDC_FOLLOWKEYBOARDCHECK,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,18,54,180,10 + CONTROL "Следване на словообработката",IDC_FOLLOWTEXTEDITINGCHECK,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,18,66,180,10 + CONTROL "Обръщане на цветовете",IDC_INVERTCOLORSCHECK,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,18,102,180,10 + CONTROL "Смаляване при пускане",IDC_STARTMINIMIZEDCHECK,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,18,114,180,10 + CONTROL "Показване на увеличителя",IDC_SHOWMAGNIFIERCHECK,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,18,126,180,10 +END + +IDD_WARNINGDIALOG DIALOGEX 0, 0, 250, 97 +STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | DS_CENTER | WS_POPUP | WS_CAPTION +CAPTION "Увеличителят на РеактОС" +FONT 8, "MS Shell Dlg", 400, 0, 0x1 +BEGIN + DEFPUSHBUTTON "Добре",IDOK,193,76,50,14 + ICON IDI_ICON,IDC_STATIC,7,17,20,20 + LTEXT "Целта на увеличителя е осигуряване на начална използваемост за потребители с малки зрителни недъзи. За всекидневна употреба повечето потребители със зрителни недъзи се нуждаят от по- добро увеличаващо средство.",IDC_STATIC,36,7,207,33 + CONTROL "Съобщението да не се показва повече",IDC_SHOWWARNINGCHECK, "Button",BS_AUTOCHECKBOX | WS_TABSTOP,43,80,147,10 +END + +STRINGTABLE +BEGIN + IDS_APP_TITLE "Увеличително стъкло" +END + + + diff --git a/reactos/base/applications/magnify/lang/de-DE.rc b/reactos/base/applications/magnify/lang/de-DE.rc new file mode 100644 index 00000000000..a330489832a --- /dev/null +++ b/reactos/base/applications/magnify/lang/de-DE.rc @@ -0,0 +1,64 @@ +LANGUAGE LANG_GERMAN, SUBLANG_NEUTRAL + +IDC_MAGNIFIER MENU +BEGIN + POPUP "&Datei" + BEGIN + MENUITEM "&Beenden", IDM_EXIT + MENUITEM "&Optionen", IDM_OPTIONS + MENUITEM SEPARATOR + MENUITEM "&Ьber ...", IDM_ABOUT + END +END + +IDC_MAGNIFIER ACCELERATORS +BEGIN + "?", IDM_ABOUT, ASCII, ALT + "/", IDM_ABOUT, ASCII, ALT +END + +IDD_ABOUTBOX DIALOGEX 22, 17, 220, 75 +STYLE DS_SHELLFONT | DS_MODALFRAME | DS_CENTER | WS_CAPTION | WS_SYSMENU +CAPTION "Ьber" +FONT 8, "MS Shell Dlg", 0, 0, 0x0 +BEGIN + ICON IDI_ICON,IDC_MYICON,14,9,20,20 + LTEXT "Bildschirm-Lupe Version 1.0",IDC_STATIC,49,10,119,8,SS_NOPREFIX + LTEXT "Copyright (C) 2007 Marc Piulachs (marc.piulachs@codexchange.net)",IDC_STATIC,48,24,125,22 + PUSHBUTTON "OK",IDOK,162,48,50,14 +END + +IDD_DIALOGOPTIONS DIALOGEX 0, 0, 153, 182 +STYLE DS_SHELLFONT | DS_MODALFRAME | DS_CENTER | WS_MINIMIZEBOX | WS_POPUP | WS_CAPTION | WS_SYSMENU +CAPTION "Einstellungen" +FONT 8, "MS Shell Dlg", 400, 0, 0x1 +BEGIN + DEFPUSHBUTTON "Beenden",IDOK,96,161,50,14 + PUSHBUTTON "Hilfe",IDC_BUTTON_HELP,38,161,50,14 + LTEXT "VergrцЯerungsgrad:",IDC_STATIC,6,12,68,8 + COMBOBOX IDC_ZOOM,72,6,63,66,CBS_DROPDOWNLIST | CBS_SORT | WS_VSCROLL | WS_TABSTOP + GROUPBOX "Folgen",IDC_STATIC,7,25,139,59 + GROUPBOX "Prдsentation",IDC_STATIC,7,87,139,57 + CONTROL "Maus-Cursor folgen",IDC_FOLLOWMOUSECHECK,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,18,42,114,10 + CONTROL "Tastaturfokus folgen",IDC_FOLLOWKEYBOARDCHECK,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,18,54,114,10 + CONTROL "Texteingabe folgen",IDC_FOLLOWTEXTEDITINGCHECK,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,18,66,114,10 + CONTROL "Farben invertieren",IDC_INVERTCOLORSCHECK,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,18,102,114,10 + CONTROL "Minimiert starten",IDC_STARTMINIMIZEDCHECK,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,18,114,114,10 + CONTROL "Bildschirm-Lupe anzeigen",IDC_SHOWMAGNIFIERCHECK,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,18,126,114,10 +END + +IDD_WARNINGDIALOG DIALOGEX 0, 0, 250, 97 +STYLE DS_SHELLFONT | DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_CAPTION +CAPTION "ReactOS Bildschirm-Lupe" +FONT 8, "MS Shell Dlg", 400, 0, 0x1 +BEGIN + DEFPUSHBUTTON "OK",IDOK,193,76,50,14 + ICON IDI_ICON,IDC_STATIC,7,17,20,20 + LTEXT "Die Bildschirmlupe ist fьr Personen mit leichten visuellen Einschrдnkungen gedacht und stellt lediglich Grundfunktionen zur Verfьgung. Die meisten Nutzer werden jedoch eine Bildschirmlupe mit mehr Funktionen fьr die alltдgliche Nutzung benцtigen.",IDC_STATIC,36,7,207,33 + CONTROL "Diese Nachricht nicht mehr anzeigen",IDC_SHOWWARNINGCHECK, "Button",BS_AUTOCHECKBOX | WS_TABSTOP,43,80,137,10 +END + +STRINGTABLE +BEGIN + IDS_APP_TITLE "Bildschirm-Lupe" +END diff --git a/reactos/base/applications/magnify/lang/en-US.rc b/reactos/base/applications/magnify/lang/en-US.rc new file mode 100644 index 00000000000..3ed196b7972 --- /dev/null +++ b/reactos/base/applications/magnify/lang/en-US.rc @@ -0,0 +1,64 @@ +LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US + +IDC_MAGNIFIER MENU +BEGIN + POPUP "&File" + BEGIN + MENUITEM "E&xit", IDM_EXIT + MENUITEM "&Options", IDM_OPTIONS + MENUITEM SEPARATOR + MENUITEM "&About ...", IDM_ABOUT + END +END + +IDC_MAGNIFIER ACCELERATORS +BEGIN + "?", IDM_ABOUT, ASCII, ALT + "/", IDM_ABOUT, ASCII, ALT +END + +IDD_ABOUTBOX DIALOGEX 22, 17, 220, 75 +STYLE DS_SHELLFONT | DS_MODALFRAME | DS_CENTER | WS_CAPTION | WS_SYSMENU +CAPTION "About" +FONT 8, "MS Shell Dlg", 0, 0, 0x0 +BEGIN + ICON IDI_ICON,IDC_MYICON,14,9,20,20 + LTEXT "Magnifier Version 1.0",IDC_STATIC,49,10,119,8,SS_NOPREFIX + LTEXT "Copyright (C) 2007 Marc Piulachs (marc.piulachs@codexchange.net)",IDC_STATIC,48,24,125,22 + PUSHBUTTON "OK",IDOK,162,48,50,14 +END + +IDD_DIALOGOPTIONS DIALOGEX 0, 0, 153, 182 +STYLE DS_SHELLFONT | DS_MODALFRAME | DS_CENTER | WS_MINIMIZEBOX | WS_POPUP | WS_CAPTION | WS_SYSMENU +CAPTION "Magnifier Settings" +FONT 8, "MS Shell Dlg", 400, 0, 0x1 +BEGIN + DEFPUSHBUTTON "Exit",IDOK,96,161,50,14 + PUSHBUTTON "Help",IDC_BUTTON_HELP,38,161,50,14 + LTEXT "Magnification level:",IDC_STATIC,6,8,68,8 + COMBOBOX IDC_ZOOM,72,6,63,66,CBS_DROPDOWNLIST | CBS_SORT | WS_VSCROLL | WS_TABSTOP + GROUPBOX "Tracking",IDC_STATIC,7,25,139,59 + GROUPBOX "Presentation",IDC_STATIC,7,87,139,57 + CONTROL "Follow mouse cursor",IDC_FOLLOWMOUSECHECK,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,18,42,114,10 + CONTROL "Follow keyboard focus",IDC_FOLLOWKEYBOARDCHECK,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,18,54,114,10 + CONTROL "Follow text editing",IDC_FOLLOWTEXTEDITINGCHECK,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,18,66,114,10 + CONTROL "Invert colors",IDC_INVERTCOLORSCHECK,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,18,102,114,10 + CONTROL "Start Minimized",IDC_STARTMINIMIZEDCHECK,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,18,114,114,10 + CONTROL "Show Magnifier",IDC_SHOWMAGNIFIERCHECK,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,18,126,114,10 +END + +IDD_WARNINGDIALOG DIALOGEX 0, 0, 250, 97 +STYLE DS_SHELLFONT | DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_CAPTION +CAPTION "ReactOS Magnifier" +FONT 8, "MS Shell Dlg", 400, 0, 0x1 +BEGIN + DEFPUSHBUTTON "OK",IDOK,193,76,50,14 + ICON IDI_ICON,IDC_STATIC,7,17,20,20 + LTEXT "Magnifier is intended to provide a minimum level of functionality for users with slight visual impairments. Most users with visual impairments will need a magnification utility with higher funcionality for daily use.",IDC_STATIC,36,7,207,33 + CONTROL "Do not show this message again",IDC_SHOWWARNINGCHECK, "Button",BS_AUTOCHECKBOX | WS_TABSTOP,43,80,137,10 +END + +STRINGTABLE +BEGIN + IDS_APP_TITLE "Magnifier" +END diff --git a/reactos/base/applications/magnify/lang/es-ES.rc b/reactos/base/applications/magnify/lang/es-ES.rc new file mode 100644 index 00000000000..0c2b350e966 --- /dev/null +++ b/reactos/base/applications/magnify/lang/es-ES.rc @@ -0,0 +1,68 @@ +/* + * Spanish language file by Javier Remacha <2007-09-21> + */ +LANGUAGE LANG_SPANISH, SUBLANG_NEUTRAL + +IDC_MAGNIFIER MENU +BEGIN + POPUP "&Archivo" + BEGIN + MENUITEM "S&alir", IDM_EXIT + MENUITEM "&Opciones", IDM_OPTIONS + MENUITEM SEPARATOR + MENUITEM "&Acerca de...", IDM_ABOUT + END +END + +IDC_MAGNIFIER ACCELERATORS +BEGIN + "?", IDM_ABOUT, ASCII, ALT + "/", IDM_ABOUT, ASCII, ALT +END + +IDD_ABOUTBOX DIALOGEX 22, 17, 220, 75 +STYLE DS_SHELLFONT | DS_MODALFRAME | DS_CENTER | WS_CAPTION | WS_SYSMENU +CAPTION "Acerca de" +FONT 8, "MS Shell Dlg", 0, 0, 0x0 +BEGIN + ICON IDI_ICON,IDC_MYICON,14,9,20,20 + LTEXT "Magnifier Version 1.0",IDC_STATIC,49,10,119,8,SS_NOPREFIX + LTEXT "Copyright (C) 2007 Marc Piulachs (marc.piulachs@codexchange.net)",IDC_STATIC,48,24,125,22 + PUSHBUTTON "Aceptar",IDOK,162,48,50,14 +END + +IDD_DIALOGOPTIONS DIALOGEX 0, 0, 153, 182 +STYLE DS_SHELLFONT | DS_MODALFRAME | DS_CENTER | WS_MINIMIZEBOX | WS_POPUP | WS_CAPTION | WS_SYSMENU +CAPTION "Configurar Magnifier" +FONT 8, "MS Shell Dlg", 400, 0, 0x1 +BEGIN + DEFPUSHBUTTON "Salir",IDOK,96,161,50,14 + PUSHBUTTON "Ayuda",IDC_BUTTON_HELP,38,161,50,14 + LTEXT "Nivel de aumento:",IDC_STATIC,6,8,68,8 + COMBOBOX IDC_ZOOM,72,6,63,66,CBS_DROPDOWNLIST | CBS_SORT | WS_VSCROLL | WS_TABSTOP + GROUPBOX "Rastreando",IDC_STATIC,7,25,139,59 + GROUPBOX "Presentaciуn",IDC_STATIC,7,87,139,57 + CONTROL "Seguir el cursor del ratуn",IDC_FOLLOWMOUSECHECK,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,18,42,114,10 + CONTROL "Seguir el foco del teclado",IDC_FOLLOWKEYBOARDCHECK,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,18,54,114,10 + CONTROL "Seguir la ediciуn de texto",IDC_FOLLOWTEXTEDITINGCHECK,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,18,66,114,10 + CONTROL "Invertir colores",IDC_INVERTCOLORSCHECK,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,18,102,114,10 + CONTROL "Comenzar minimizado",IDC_STARTMINIMIZEDCHECK,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,18,114,114,10 + CONTROL "Mostrar Magnifier",IDC_SHOWMAGNIFIERCHECK,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,18,126,114,10 +END + +IDD_WARNINGDIALOG DIALOGEX 0, 0, 250, 97 +STYLE DS_SHELLFONT | DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_CAPTION +CAPTION "ReactOS Magnifier" +FONT 8, "MS Shell Dlg", 400, 0, 0x1 +BEGIN + DEFPUSHBUTTON "Aceptar",IDOK,193,76,50,14 + ICON IDI_ICON,IDC_STATIC,7,17,20,20 + LTEXT "Magnifier estб pensada para proporcionar un nivel mнnimo de funcionalidad para usuarios con pequeсas deficiencias visuales. La mayorнa de los usuarios con deficiencias visuales necesitarбn una utilidad de mayor ampliaciуn para el uso diario.",IDC_STATIC,36,7,207,33 + CONTROL "No volver a mostrar este mensaje",IDC_SHOWWARNINGCHECK, "Button",BS_AUTOCHECKBOX | WS_TABSTOP,43,80,137,10 +END + +STRINGTABLE +BEGIN + IDS_APP_TITLE "Magnifier" + IDC_MAGNIFIER "MAGNIFIER" +END diff --git a/reactos/base/applications/magnify/lang/fr-FR.rc b/reactos/base/applications/magnify/lang/fr-FR.rc new file mode 100644 index 00000000000..70a6bd138a4 --- /dev/null +++ b/reactos/base/applications/magnify/lang/fr-FR.rc @@ -0,0 +1,64 @@ +LANGUAGE LANG_FRENCH, SUBLANG_NEUTRAL + +IDC_MAGNIFIER MENU +BEGIN + POPUP "&Fichier" + BEGIN + MENUITEM "Quitter", IDM_EXIT + MENUITEM "&Options", IDM_OPTIONS + MENUITEM SEPARATOR + MENUITEM "&А propos ...", IDM_ABOUT + END +END + +IDC_MAGNIFIER ACCELERATORS +BEGIN + "?", IDM_ABOUT, ASCII, ALT + "/", IDM_ABOUT, ASCII, ALT +END + +IDD_ABOUTBOX DIALOGEX 22, 17, 220, 75 +STYLE DS_SHELLFONT | DS_MODALFRAME | DS_CENTER | WS_CAPTION | WS_SYSMENU +CAPTION "А propos" +FONT 8, "MS Shell Dlg", 0, 0, 0x0 +BEGIN + ICON IDI_ICON,IDC_MYICON,14,9,20,20 + LTEXT "Loupe Version 1.0",IDC_STATIC,49,10,119,8,SS_NOPREFIX + LTEXT "Copyright (C) 2007 Marc Piulachs (marc.piulachs@codexchange.net)",IDC_STATIC,48,24,125,22 + PUSHBUTTON "OK",IDOK,162,48,50,14 +END + +IDD_DIALOGOPTIONS DIALOGEX 0, 0, 153, 182 +STYLE DS_SHELLFONT | DS_MODALFRAME | DS_CENTER | WS_MINIMIZEBOX | WS_POPUP | WS_CAPTION | WS_SYSMENU +CAPTION "Paramиtres de la loupe" +FONT 8, "MS Shell Dlg", 400, 0, 0x1 +BEGIN + DEFPUSHBUTTON "Quitter",IDOK,96,161,50,14 + PUSHBUTTON "Aider",IDC_BUTTON_HELP,38,161,50,14 + LTEXT "Coefficient d'agrandissement:",IDC_STATIC,6,8,68,8 + COMBOBOX IDC_ZOOM,72,6,63,66,CBS_DROPDOWNLIST | CBS_SORT | WS_VSCROLL | WS_TABSTOP + GROUPBOX "Poursuite",IDC_STATIC,7,25,139,59 + GROUPBOX "Prйsentation",IDC_STATIC,7,87,139,57 + CONTROL "Suivre le curseur de la souris",IDC_FOLLOWMOUSECHECK,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,18,42,114,10 + CONTROL "Suivre le focus du clavier",IDC_FOLLOWKEYBOARDCHECK,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,18,54,114,10 + CONTROL "Suivre l'йdition de texte",IDC_FOLLOWTEXTEDITINGCHECK,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,18,66,114,10 + CONTROL "Inverser les couleurs",IDC_INVERTCOLORSCHECK,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,18,102,114,10 + CONTROL "Dйmarrer rйduit",IDC_STARTMINIMIZEDCHECK,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,18,114,114,10 + CONTROL "Montrer la loupe",IDC_SHOWMAGNIFIERCHECK,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,18,126,114,10 +END + +IDD_WARNINGDIALOG DIALOGEX 0, 0, 250, 97 +STYLE DS_SHELLFONT | DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_CAPTION +CAPTION "Loupe ReactOS" +FONT 8, "MS Shell Dlg", 400, 0, 0x1 +BEGIN + DEFPUSHBUTTON "OK",IDOK,193,76,50,14 + ICON IDI_ICON,IDC_STATIC,7,17,20,20 + LTEXT "La loupe a йtй rйalisйe pour fournir quelques fonctionnalitйs aux utilisateurs souffrants de dйficiences visuelles. La majoritй de ces utilisateurs aura besoin d'un utilitaire d'agrandissement avec plus de fonctionnalitйs pour une utilisation quotidienne.",IDC_STATIC,36,7,207,33 + CONTROL "Ne plus montrer ce message",IDC_SHOWWARNINGCHECK, "Button",BS_AUTOCHECKBOX | WS_TABSTOP,43,80,137,10 +END + +STRINGTABLE +BEGIN + IDS_APP_TITLE "Loupe" +END diff --git a/reactos/base/applications/magnify/lang/it-IT.rc b/reactos/base/applications/magnify/lang/it-IT.rc new file mode 100644 index 00000000000..729cf79f2f1 --- /dev/null +++ b/reactos/base/applications/magnify/lang/it-IT.rc @@ -0,0 +1,64 @@ +LANGUAGE LANG_ITALIAN, SUBLANG_NEUTRAL + +IDC_MAGNIFIER MENU +BEGIN + POPUP "&File" + BEGIN + MENUITEM "E&sci", IDM_EXIT + MENUITEM "&Opzioni", IDM_OPTIONS + MENUITEM SEPARATOR + MENUITEM "&Informazioni su Magnifier", IDM_ABOUT + END +END + +IDC_MAGNIFIER ACCELERATORS +BEGIN + "?", IDM_ABOUT, ASCII, ALT + "/", IDM_ABOUT, ASCII, ALT +END + +IDD_ABOUTBOX DIALOGEX 22, 17, 220, 75 +STYLE DS_SHELLFONT | DS_MODALFRAME | DS_CENTER | WS_CAPTION | WS_SYSMENU +CAPTION "Informazioni Magnifier" +FONT 8, "MS Shell Dlg", 0, 0, 0x0 +BEGIN + ICON IDI_ICON,IDC_MYICON,14,9,20,20 + LTEXT "Magnifier Versione 1.0",IDC_STATIC,49,10,119,8,SS_NOPREFIX + LTEXT "Copyright (C) 2007 Marc Piulachs (marc.piulachs@codexchange.net)",IDC_STATIC,48,24,125,22 + PUSHBUTTON "OK",IDOK,162,48,50,14 +END + +IDD_DIALOGOPTIONS DIALOGEX 0, 0, 153, 182 +STYLE DS_SHELLFONT | DS_MODALFRAME | DS_CENTER | WS_MINIMIZEBOX | WS_POPUP | WS_CAPTION | WS_SYSMENU +CAPTION "Impostazioni di Magnifier" +FONT 8, "MS Shell Dlg", 400, 0, 0x1 +BEGIN + DEFPUSHBUTTON "Uscita",IDOK,96,161,50,14 + PUSHBUTTON "Aiuto",IDC_BUTTON_HELP,38,161,50,14 + LTEXT "Livello d'ingrandimento:",IDC_STATIC,6,8,78,8 + COMBOBOX IDC_ZOOM,96,6,48,66,CBS_DROPDOWNLIST | CBS_SORT | WS_VSCROLL | WS_TABSTOP + GROUPBOX "Proseguimento",IDC_STATIC,7,25,139,59 + GROUPBOX "Presentazione",IDC_STATIC,7,87,139,57 + CONTROL "Seguire il cursore del mouse",IDC_FOLLOWMOUSECHECK,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,18,42,114,10 + CONTROL "Seguire la selezione da tastiera",IDC_FOLLOWKEYBOARDCHECK,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,18,54,120,10 + CONTROL "Seguire l'immissione di testo",IDC_FOLLOWTEXTEDITINGCHECK,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,18,66,114,10 + CONTROL "Inverti i colori",IDC_INVERTCOLORSCHECK,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,18,102,114,10 + CONTROL "Avvio in minimizzato",IDC_STARTMINIMIZEDCHECK,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,18,114,114,10 + CONTROL "Mostra Magnifier",IDC_SHOWMAGNIFIERCHECK,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,18,126,114,10 +END + +IDD_WARNINGDIALOG DIALOGEX 0, 0, 250, 97 +STYLE DS_SHELLFONT | DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_CAPTION +CAPTION "ReactOS Magnifier" +FONT 8, "MS Shell Dlg", 400, 0, 0x1 +BEGIN + DEFPUSHBUTTON "OK",IDOK,193,76,50,14 + ICON IDI_ICON,IDC_STATIC,7,17,20,20 + LTEXT "Magnifier й stato realizzato per fornire un livello minimo di funzionalitа agli utenti affetti da problemi visivi. La maggior parte di questi utenti avrа bisogno di un programma di utilitа dotato di maggiori funzioni per l'uso quotidiano.",IDC_STATIC,36,7,207,33 + CONTROL "Non mostrare piщ questo messaggio",IDC_SHOWWARNINGCHECK, "Button",BS_AUTOCHECKBOX | WS_TABSTOP,43,80,137,10 +END + +STRINGTABLE +BEGIN + IDS_APP_TITLE "Lente d'ingrandimento" +END diff --git a/reactos/base/applications/magnify/lang/no-NO.rc b/reactos/base/applications/magnify/lang/no-NO.rc new file mode 100644 index 00000000000..f9052e9903a --- /dev/null +++ b/reactos/base/applications/magnify/lang/no-NO.rc @@ -0,0 +1,64 @@ +LANGUAGE LANG_NORWEGIAN, SUBLANG_NEUTRAL + +IDC_MAGNIFIER MENU +BEGIN + POPUP "&Fil" + BEGIN + MENUITEM "A&vslutt", IDM_EXIT + MENUITEM "&Valg", IDM_OPTIONS + MENUITEM SEPARATOR + MENUITEM "&Om ...", IDM_ABOUT + END +END + +IDC_MAGNIFIER ACCELERATORS +BEGIN + "?", IDM_ABOUT, ASCII, ALT + "/", IDM_ABOUT, ASCII, ALT +END + +IDD_ABOUTBOX DIALOGEX 22, 17, 220, 75 +STYLE DS_SHELLFONT | DS_MODALFRAME | DS_CENTER | WS_CAPTION | WS_SYSMENU +CAPTION "Om" +FONT 8, "MS Shell Dlg", 0, 0, 0x0 +BEGIN + ICON IDI_ICON,IDC_MYICON,14,9,20,20 + LTEXT "Forstшrrelse Versjon 1.0",IDC_STATIC,49,10,119,8,SS_NOPREFIX + LTEXT "Enerett (C) 2007 Marc Piulachs (marc.piulachs@codexchange.net)",IDC_STATIC,48,24,125,22 + PUSHBUTTON "OK",IDOK,162,48,50,14 +END + +IDD_DIALOGOPTIONS DIALOGEX 0, 0, 153, 182 +STYLE DS_SHELLFONT | DS_MODALFRAME | DS_CENTER | WS_MINIMIZEBOX | WS_POPUP | WS_CAPTION | WS_SYSMENU +CAPTION "Forstшrrelse Innstilling" +FONT 8, "MS Shell Dlg", 400, 0, 0x1 +BEGIN + DEFPUSHBUTTON "Avslutt",IDOK,96,161,50,14 + PUSHBUTTON "Hjelp",IDC_BUTTON_HELP,38,161,50,14 + LTEXT "Forstшrrelse nivе:",IDC_STATIC,6,8,68,8 + COMBOBOX IDC_ZOOM,72,6,63,66,CBS_DROPDOWNLIST | CBS_SORT | WS_VSCROLL | WS_TABSTOP + GROUPBOX "Sporfшlging",IDC_STATIC,7,25,139,59 + GROUPBOX "Presentasjon",IDC_STATIC,7,87,139,57 + CONTROL "Fшlg musen markшr",IDC_FOLLOWMOUSECHECK,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,18,42,114,10 + CONTROL "Fшlg tastatur fokus",IDC_FOLLOWKEYBOARDCHECK,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,18,54,114,10 + CONTROL "Fшlg tekstredigerig",IDC_FOLLOWTEXTEDITINGCHECK,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,18,66,114,10 + CONTROL "Invertere Farger",IDC_INVERTCOLORSCHECK,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,18,102,114,10 + CONTROL "Start minimert",IDC_STARTMINIMIZEDCHECK,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,18,114,114,10 + CONTROL "Vis forstшrrelse",IDC_SHOWMAGNIFIERCHECK,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,18,126,114,10 +END + +IDD_WARNINGDIALOG DIALOGEX 0, 0, 250, 97 +STYLE DS_SHELLFONT | DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_CAPTION +CAPTION "ReactOS Forstшrrelse" +FONT 8, "MS Shell Dlg", 400, 0, 0x1 +BEGIN + DEFPUSHBUTTON "OK",IDOK,193,76,50,14 + ICON IDI_ICON,IDC_STATIC,7,17,20,20 + LTEXT "Forstшrrelse er pеtenkt for е forsyne en minimum nivе av funksjonalitet for brukere med svak syn. Mest brukere med svakt syn som trenger en forstшrrelse hjelperedskap med hшyere funksjon for dagligbruk.",IDC_STATIC,36,7,207,33 + CONTROL "Ikke vis denne meldingen igjen",IDC_SHOWWARNINGCHECK, "Button",BS_AUTOCHECKBOX | WS_TABSTOP,43,80,137,10 +END + +STRINGTABLE +BEGIN + IDS_APP_TITLE "Forstшrrelse" +END diff --git a/reactos/base/applications/magnify/lang/pl-PL.rc b/reactos/base/applications/magnify/lang/pl-PL.rc new file mode 100644 index 00000000000..7f53a881961 --- /dev/null +++ b/reactos/base/applications/magnify/lang/pl-PL.rc @@ -0,0 +1,71 @@ +/* + * translated by Caemyr - Olaf Siejka (Feb, 2008) + * Use ReactOS forum PM or IRC to contact me + * http://www.reactos.org + * IRC: irc.freenode.net #reactos-pl; + */ + +LANGUAGE LANG_POLISH, SUBLANG_DEFAULT + +IDC_MAGNIFIER MENU +BEGIN + POPUP "&Plik" + BEGIN + MENUITEM "&Wyjњcie", IDM_EXIT + MENUITEM "&Opcje", IDM_OPTIONS + MENUITEM SEPARATOR + MENUITEM "O p&rogramie ...", IDM_ABOUT + END +END + +IDC_MAGNIFIER ACCELERATORS +BEGIN + "?", IDM_ABOUT, ASCII, ALT + "/", IDM_ABOUT, ASCII, ALT +END + +IDD_ABOUTBOX DIALOGEX 22, 17, 220, 75 +STYLE DS_SHELLFONT | DS_MODALFRAME | DS_CENTER | WS_CAPTION | WS_SYSMENU +CAPTION "O programie" +FONT 8, "MS Shell Dlg", 0, 0, 0x0 +BEGIN + ICON IDI_ICON,IDC_MYICON,14,9,20,20 + LTEXT "Lupa, wersja 1.0",IDC_STATIC,49,10,119,8,SS_NOPREFIX + LTEXT "Copyright (C) 2007 Marc Piulachs (marc.piulachs@codexchange.net)",IDC_STATIC,48,24,125,22 + PUSHBUTTON "OK",IDOK,162,48,50,14 +END + +IDD_DIALOGOPTIONS DIALOGEX 0, 0, 153, 182 +STYLE DS_SHELLFONT | DS_MODALFRAME | DS_CENTER | WS_MINIMIZEBOX | WS_POPUP | WS_CAPTION | WS_SYSMENU +CAPTION "Ustawienia" +FONT 8, "MS Shell Dlg", 400, 0, 0x1 +BEGIN + DEFPUSHBUTTON "Wyjњcie",IDOK,96,161,50,14 + PUSHBUTTON "Pomoc",IDC_BUTTON_HELP,38,161,50,14 + LTEXT "Stopieс powiкkszenia:",IDC_STATIC,6,8,68,8 + COMBOBOX IDC_ZOOM,72,6,63,66,CBS_DROPDOWNLIST | CBS_SORT | WS_VSCROLL | WS_TABSTOP + GROUPBOX "Њledzenia",IDC_STATIC,7,25,139,59 + GROUPBOX "Prezentacja",IDC_STATIC,7,87,139,57 + CONTROL "Pod№їaj za kursorem myszki",IDC_FOLLOWMOUSECHECK,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,18,42,114,10 + CONTROL "Pod№їaj za aktywnym oknem",IDC_FOLLOWKEYBOARDCHECK,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,18,54,114,10 + CONTROL "Pod№їaj za tekstem",IDC_FOLLOWTEXTEDITINGCHECK,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,18,66,114,10 + CONTROL "Odwrуж kolory",IDC_INVERTCOLORSCHECK,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,18,102,114,10 + CONTROL "Uruchom zminimalizowan№",IDC_STARTMINIMIZEDCHECK,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,18,114,114,10 + CONTROL "Pokaї Lupк",IDC_SHOWMAGNIFIERCHECK,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,18,126,114,10 +END + +IDD_WARNINGDIALOG DIALOGEX 0, 0, 250, 97 +STYLE DS_SHELLFONT | DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_CAPTION +CAPTION "Lupa ReactOS" +FONT 8, "MS Shell Dlg", 400, 0, 0x1 +BEGIN + DEFPUSHBUTTON "OK",IDOK,193,76,50,14 + ICON IDI_ICON,IDC_STATIC,7,17,20,20 + LTEXT "Lupa ma za zadanie dostarczyж podstawowy poziom funkcjonalnoњci dla osуb z niewielkimi problemami ze wzrokiem. Uїytkownicy ze znaczniejszymi problemami ze wzrokiem mog№ byж zmuszeni uїyж bardziej zaawansowanego narzкdzia.",IDC_STATIC,36,7,207,33 + CONTROL "Nie pokazuj wiкcej tej wiadomoњci",IDC_SHOWWARNINGCHECK, "Button",BS_AUTOCHECKBOX | WS_TABSTOP,43,80,137,10 +END + +STRINGTABLE +BEGIN + IDS_APP_TITLE "Lupa" +END diff --git a/reactos/base/applications/magnify/lang/ru-RU.rc b/reactos/base/applications/magnify/lang/ru-RU.rc new file mode 100644 index 00000000000..12097918c3e --- /dev/null +++ b/reactos/base/applications/magnify/lang/ru-RU.rc @@ -0,0 +1,64 @@ +LANGUAGE LANG_RUSSIAN, SUBLANG_DEFAULT + +IDC_MAGNIFIER MENU +BEGIN + POPUP "&Файл" + BEGIN + MENUITEM "&Выход", IDM_EXIT + MENUITEM "&Параметры", IDM_OPTIONS + MENUITEM SEPARATOR + MENUITEM "&О программе...", IDM_ABOUT + END +END + +IDC_MAGNIFIER ACCELERATORS +BEGIN + "?", IDM_ABOUT, ASCII, ALT + "/", IDM_ABOUT, ASCII, ALT +END + +IDD_ABOUTBOX DIALOGEX 22, 17, 220, 75 +STYLE DS_SHELLFONT | DS_MODALFRAME | DS_CENTER | WS_CAPTION | WS_SYSMENU +CAPTION "О программе" +FONT 8, "MS Shell Dlg", 0, 0, 0x0 +BEGIN + ICON IDI_ICON,IDC_MYICON,14,9,20,20 + LTEXT "Экранная лупа. Версия 1.0",IDC_STATIC,49,10,119,8,SS_NOPREFIX + LTEXT "Авторские права (C) 2007 Marc Piulachs (marc.piulachs@codexchange.net)",IDC_STATIC,48,24,150,22 + PUSHBUTTON "OK",IDOK,162,48,50,14 +END + +IDD_DIALOGOPTIONS DIALOGEX 0, 0, 185, 182 +STYLE DS_SHELLFONT | DS_MODALFRAME | DS_CENTER | WS_MINIMIZEBOX | WS_POPUP | WS_CAPTION | WS_SYSMENU +CAPTION "Параметры" +FONT 8, "MS Shell Dlg", 400, 0, 0x1 +BEGIN + DEFPUSHBUTTON "В&ыход",IDOK,94,158,50,14 + PUSHBUTTON "&Справка",IDC_BUTTON_HELP,34,158,50,14 + LTEXT "Увеличение:",IDC_STATIC,6,8,68,8 + COMBOBOX IDC_ZOOM,92,6,85,66,CBS_DROPDOWNLIST | CBS_SORT | WS_VSCROLL | WS_TABSTOP + GROUPBOX "Слежение",IDC_STATIC,7,25,170,59 + GROUPBOX "Представление",IDC_STATIC,7,87,170,57 + CONTROL "Следовать за ук&азателем мыши",IDC_FOLLOWMOUSECHECK,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,18,42,155,10 + CONTROL "Следовать за ф&окусом ввода",IDC_FOLLOWKEYBOARDCHECK,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,18,54,155,10 + CONTROL "Следовать за р&едактированием текста",IDC_FOLLOWTEXTEDITINGCHECK,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,18,66,155,10 + CONTROL "О&братить цвета",IDC_INVERTCOLORSCHECK,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,18,102,150,10 + CONTROL "&Запускать в свернутом виде",IDC_STARTMINIMIZEDCHECK,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,18,114,150,10 + CONTROL "О&тображать окно экранной лупы",IDC_SHOWMAGNIFIERCHECK,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,18,126,150,10 +END + +IDD_WARNINGDIALOG DIALOGEX 0, 0, 250, 97 +STYLE DS_SHELLFONT | DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_CAPTION +CAPTION "Экранная лупа" +FONT 8, "MS Shell Dlg", 400, 0, 0x1 +BEGIN + DEFPUSHBUTTON "OK",IDOK,193,76,50,14 + ICON IDI_ICON,IDC_STATIC,7,17,20,20 + LTEXT """Экранная лупа"" обеспечивает лишь начальный уровень возможностей для людей с плохим зрением. Пользователям с сильными нарушениями зрения лучше применять специальные программы с более широкими возможностями.",IDC_STATIC,36,7,207,33 + CONTROL "Не выводить это сообщение в дальнейшем",IDC_SHOWWARNINGCHECK, "Button",BS_AUTOCHECKBOX | WS_TABSTOP,15,58,230,10 +END + +STRINGTABLE +BEGIN + IDS_APP_TITLE "Экранная лупа" +END diff --git a/reactos/base/applications/magnify/lang/sk-SK.rc b/reactos/base/applications/magnify/lang/sk-SK.rc new file mode 100644 index 00000000000..143f14c43c0 --- /dev/null +++ b/reactos/base/applications/magnify/lang/sk-SK.rc @@ -0,0 +1,69 @@ +/* TRANSLATOR : Mбrio Kaиmбr /Mario Kacmar/ aka Kario (kario@szm.sk) + * DATE OF TR.: 27-04-2008 + * LAST CHANGE: 07-05-2008 + */ + +LANGUAGE LANG_SLOVAK, SUBLANG_DEFAULT + +IDC_MAGNIFIER MENU +BEGIN + POPUP "&Sъbor" + BEGIN + MENUITEM "S&konиiќ", IDM_EXIT + MENUITEM "&Moћnosti", IDM_OPTIONS + MENUITEM SEPARATOR + MENUITEM "И&o je ...", IDM_ABOUT + END +END + +IDC_MAGNIFIER ACCELERATORS +BEGIN + "?", IDM_ABOUT, ASCII, ALT + "/", IDM_ABOUT, ASCII, ALT +END + +IDD_ABOUTBOX DIALOGEX 22, 17, 220, 75 +STYLE DS_SHELLFONT | DS_MODALFRAME | DS_CENTER | WS_CAPTION | WS_SYSMENU +CAPTION "Иo je Lupa" +FONT 8, "MS Shell Dlg", 0, 0, 0x0 +BEGIN + ICON IDI_ICON,IDC_MYICON,14,9,20,20 + LTEXT "Lupa (Magnifier) verzia 1.0",IDC_STATIC,49,10,119,8,SS_NOPREFIX + LTEXT "Copyright (C) 2007 Marc Piulachs (marc.piulachs@codexchange.net)",IDC_STATIC,48,24,125,22 + PUSHBUTTON "OK",IDOK,162,48,50,14 +END + +IDD_DIALOGOPTIONS DIALOGEX 0, 0, 153, 182 +STYLE DS_SHELLFONT | DS_MODALFRAME | DS_CENTER | WS_MINIMIZEBOX | WS_POPUP | WS_CAPTION | WS_SYSMENU +CAPTION "Nastavenia Lupy" +FONT 8, "MS Shell Dlg", 400, 0, 0x1 +BEGIN + DEFPUSHBUTTON "Koniec",IDOK,96,161,50,14 + PUSHBUTTON "Pomocnнk",IDC_BUTTON_HELP,38,161,50,14 + LTEXT "Ъroveт zvдиљenia:",IDC_STATIC,6,8,68,8 + COMBOBOX IDC_ZOOM,72,6,63,66,CBS_DROPDOWNLIST | CBS_SORT | WS_VSCROLL | WS_TABSTOP + GROUPBOX "Sledovanie",IDC_STATIC,7,25,139,59 + GROUPBOX "Prezentбcia",IDC_STATIC,7,87,139,57 + CONTROL "Sledovaќ kurzor myљi",IDC_FOLLOWMOUSECHECK,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,18,42,114,10 + CONTROL "Sledovaќ ovlбdanie klбvesnicou",IDC_FOLLOWKEYBOARDCHECK,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,18,54,114,10 + CONTROL "Sledovaќ ъpravu textu",IDC_FOLLOWTEXTEDITINGCHECK,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,18,66,114,10 + CONTROL "Invertovaќ farby",IDC_INVERTCOLORSCHECK,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,18,102,114,10 + CONTROL "Spustiќ minimalizovane",IDC_STARTMINIMIZEDCHECK,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,18,114,114,10 + CONTROL "Zobraziќ Lupu",IDC_SHOWMAGNIFIERCHECK,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,18,126,114,10 +END + +IDD_WARNINGDIALOG DIALOGEX 0, 0, 250, 97 +STYLE DS_SHELLFONT | DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_CAPTION +CAPTION "Lupa systйmu ReactOS" +FONT 8, "MS Shell Dlg", 400, 0, 0x1 +BEGIN + DEFPUSHBUTTON "OK",IDOK,193,76,50,14 + ICON IDI_ICON,IDC_STATIC,7,17,20,20 + LTEXT "Lupa je urиenб na poskytnutie minimбlneho stupeтa funkиnosti pre pouћнvateѕov s ѕahљнm poљkodenнm zraku. Vдиљina pouћнvateѕov s poљkodenнm zraku bude potrebovaќ pre kaћdodennй pouћнvanie ъиinnejљiu pomфcku.",IDC_STATIC,36,7,207,33 + CONTROL "Tъto sprбvu uћ viac nezobrazovaќ",IDC_SHOWWARNINGCHECK, "Button",BS_AUTOCHECKBOX | WS_TABSTOP,43,80,137,10 +END + +STRINGTABLE +BEGIN + IDS_APP_TITLE "Lupa" +END diff --git a/reactos/base/applications/magnify/lang/uk-UA.rc b/reactos/base/applications/magnify/lang/uk-UA.rc new file mode 100644 index 00000000000..296d7c24dfb --- /dev/null +++ b/reactos/base/applications/magnify/lang/uk-UA.rc @@ -0,0 +1,72 @@ +/* + * PROJECT: ReactOS Magnifier + * LICENSE: GPL - See COPYING in the top level directory + * FILE: rosapps/magnify/lang/uk-UA.rc + * PURPOSE: Ukraianian Language File for Magnifier + * TRANSLATOR: Artem Reznikov + */ + +LANGUAGE LANG_UKRAINIAN, SUBLANG_DEFAULT + +IDC_MAGNIFIER MENU +BEGIN + POPUP "&Файл" + BEGIN + MENUITEM "В&ихід", IDM_EXIT + MENUITEM "П&араметри", IDM_OPTIONS + MENUITEM SEPARATOR + MENUITEM "&Про програму ...", IDM_ABOUT + END +END + +IDC_MAGNIFIER ACCELERATORS +BEGIN + "?", IDM_ABOUT, ASCII, ALT + "/", IDM_ABOUT, ASCII, ALT +END + +IDD_ABOUTBOX DIALOGEX 22, 17, 220, 75 +STYLE DS_SHELLFONT | DS_MODALFRAME | DS_CENTER | WS_CAPTION | WS_SYSMENU +CAPTION "Про програму" +FONT 8, "MS Shell Dlg", 0, 0, 0x0 +BEGIN + ICON IDI_ICON,IDC_MYICON,14,9,20,20 + LTEXT "Екранна лупа Версія 1.0",IDC_STATIC,49,10,119,8,SS_NOPREFIX + LTEXT "Copyright (C) 2007 Marc Piulachs (marc.piulachs@codexchange.net)",IDC_STATIC,48,24,125,22 + PUSHBUTTON "OK",IDOK,162,48,50,14 +END + +IDD_DIALOGOPTIONS DIALOGEX 0, 0, 153, 182 +STYLE DS_SHELLFONT | DS_MODALFRAME | DS_CENTER | WS_MINIMIZEBOX | WS_POPUP | WS_CAPTION | WS_SYSMENU +CAPTION "Параметри екранної лупи" +FONT 8, "MS Shell Dlg", 400, 0, 0x1 +BEGIN + DEFPUSHBUTTON "Вихід",IDOK,96,161,50,14 + PUSHBUTTON "Довідка",IDC_BUTTON_HELP,38,161,50,14 + LTEXT "Збільшення:",IDC_STATIC,6,8,68,8 + COMBOBOX IDC_ZOOM,72,6,63,66,CBS_DROPDOWNLIST | CBS_SORT | WS_VSCROLL | WS_TABSTOP + GROUPBOX "Відстеження",IDC_STATIC,7,25,139,59 + GROUPBOX "Подання",IDC_STATIC,7,87,139,57 + CONTROL "Відстежувати вказівник миші",IDC_FOLLOWMOUSECHECK,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,18,42,114,10 + CONTROL "Відстежувати фокус вводу",IDC_FOLLOWKEYBOARDCHECK,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,18,54,114,10 + CONTROL "Відстежувати редагування тексту",IDC_FOLLOWTEXTEDITINGCHECK,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,18,66,114,10 + CONTROL "Обернути кольори",IDC_INVERTCOLORSCHECK,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,18,102,114,10 + CONTROL "Запустити у згорнутому вигляді",IDC_STARTMINIMIZEDCHECK,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,18,114,114,10 + CONTROL "Показувати вікно екранної лупи",IDC_SHOWMAGNIFIERCHECK,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,18,126,114,10 +END + +IDD_WARNINGDIALOG DIALOGEX 0, 0, 250, 97 +STYLE DS_SHELLFONT | DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_CAPTION +CAPTION "Екранна лупа ReactOS" +FONT 8, "MS Shell Dlg", 400, 0, 0x1 +BEGIN + DEFPUSHBUTTON "OK",IDOK,193,76,50,14 + ICON IDI_ICON,IDC_STATIC,7,17,20,20 + LTEXT "Екранна лупа надає лише мінімальний обсяг можливостей для людей із порушенням зору. Більшості таких користувачів доцільно застосовувати спеціальні програми з більш широкими можливостями.",IDC_STATIC,36,7,207,33 + CONTROL "Більше не показувати це повідомлення",IDC_SHOWWARNINGCHECK, "Button",BS_AUTOCHECKBOX | WS_TABSTOP,43,80,137,10 +END + +STRINGTABLE +BEGIN + IDS_APP_TITLE "Екранна лупа" +END diff --git a/reactos/base/applications/magnify/magnifier.c b/reactos/base/applications/magnify/magnifier.c new file mode 100644 index 00000000000..81b9ae09cfb --- /dev/null +++ b/reactos/base/applications/magnify/magnifier.c @@ -0,0 +1,546 @@ +/* + * PROJECT: ReactOS Magnify + * LICENSE: GPL - See COPYING in the top level directory + * FILE: base/applications/magnify/magnifier.c + * PURPOSE: + * COPYRIGHT: Copyright 2007 Marc Piulachs + * + */ + +#include +#include +#include "magnifier.h" +#include "resource.h" + +const TCHAR szWindowClass[] = TEXT("MAGNIFIER"); + +#define MAX_LOADSTRING 100 + +// Global Variables: +HINSTANCE hInst; // current instance +HWND hMainWnd; + +TCHAR szTitle[MAX_LOADSTRING]; // The title bar text + +#define REPAINT_SPEED 100 + +HWND hDesktopWindow = NULL; + +//Current magnified area +POINT cp; + +//Last positions +POINT pMouse; +POINT pCaret; +POINT pFocus; + +// Forward declarations of functions included in this code module: +ATOM MyRegisterClass(HINSTANCE hInstance); +BOOL InitInstance(HINSTANCE, int); +LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM); +INT_PTR CALLBACK AboutProc(HWND, UINT, WPARAM, LPARAM); +INT_PTR CALLBACK OptionsProc(HWND, UINT, WPARAM, LPARAM); +INT_PTR CALLBACK WarningProc(HWND, UINT, WPARAM, LPARAM); + +int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) +{ + // TODO: Place code here. + MSG msg; + HACCEL hAccelTable; + + UNREFERENCED_PARAMETER(hPrevInstance); + UNREFERENCED_PARAMETER(lpCmdLine); + + // Initialize global strings + LoadString(hInstance, IDS_APP_TITLE, szTitle, MAX_LOADSTRING); + MyRegisterClass(hInstance); + + // Perform application initialization: + if (!InitInstance (hInstance, nCmdShow)) + { + return FALSE; + } + + hAccelTable = LoadAccelerators(hInstance, MAKEINTRESOURCE(IDC_MAGNIFIER)); + + // Main message loop: + while (GetMessage(&msg, NULL, 0, 0)) + { + if (!TranslateAccelerator(msg.hwnd, hAccelTable, &msg)) + { + TranslateMessage(&msg); + DispatchMessage(&msg); + } + } + + return (int) msg.wParam; +} + + + +// +// FUNCTION: MyRegisterClass() +// +// PURPOSE: Registers the window class. +// +// COMMENTS: +// +// This function and its usage are only necessary if you want this code +// to be compatible with Win32 systems prior to the 'RegisterClassEx' +// function that was added to Windows 95. It is important to call this function +// so that the application will get 'well formed' small icons associated +// with it. +// +ATOM MyRegisterClass(HINSTANCE hInstance) +{ + WNDCLASS wc; + + wc.style = CS_HREDRAW | CS_VREDRAW; + wc.lpfnWndProc = WndProc; + wc.cbClsExtra = 0; + wc.cbWndExtra = 0; + wc.hInstance = hInstance; + wc.hIcon = LoadIcon(hInstance, MAKEINTRESOURCE(IDI_ICON)); + wc.hCursor = LoadCursor(NULL, IDC_ARROW); + wc.hbrBackground = (HBRUSH)(COLOR_WINDOW+1); + wc.lpszMenuName = MAKEINTRESOURCE(IDC_MAGNIFIER); + wc.lpszClassName = szWindowClass; + + return RegisterClass(&wc); +} + +// +// FUNCTION: InitInstance(HINSTANCE, int) +// +// PURPOSE: Saves instance handle and creates main window +// +// COMMENTS: +// +// In this function, we save the instance handle in a global variable and +// create and display the main program window. +// +BOOL InitInstance(HINSTANCE hInstance, int nCmdShow) +{ + hInst = hInstance; // Store instance handle in our global variable + + // Create the Window + hMainWnd = CreateWindowEx( + WS_EX_TOPMOST, + szWindowClass, + szTitle, + WS_OVERLAPPEDWINDOW, + CW_USEDEFAULT, + CW_USEDEFAULT, + CW_USEDEFAULT, + CW_USEDEFAULT, + NULL, + NULL, + hInstance, + NULL); + + if (!hMainWnd) + { + return FALSE; + } + + ShowWindow(hMainWnd, (bStartMinimized) ? SW_MINIMIZE : nCmdShow); + UpdateWindow(hMainWnd); + + if (bShowWarning) + { + DialogBox (hInstance, MAKEINTRESOURCE(IDD_WARNINGDIALOG), hMainWnd, (DLGPROC)WarningProc); + } + + return TRUE; +} + +void Refresh () +{ + if (!IsIconic(hMainWnd)) + { + // Invalidate the client area forcing a WM_PAINT message + InvalidateRgn(hMainWnd, NULL, TRUE); + } +} + +void Draw(HDC aDc) +{ + HDC desktopHdc = NULL; + HDC HdcStrech; + HANDLE hOld; + HBITMAP HbmpStrech; + + RECT R; + RECT appRect; + DWORD rop = SRCCOPY; + CURSORINFO cinfo; + ICONINFO iinfo; + + int Width, Height, AppWidth, AppHeight; + LONG blitAreaWidth, blitAreaHeight, blitAreaX, blitAreaY; + + desktopHdc = GetWindowDC (hDesktopWindow); + + GetClientRect(hMainWnd, &appRect); + GetWindowRect(hDesktopWindow, &R); + + ZeroMemory(&cinfo, sizeof(CURSORINFO)); + ZeroMemory(&iinfo, sizeof(ICONINFO)); + cinfo.cbSize = sizeof(cinfo); + GetCursorInfo(&cinfo); + GetIconInfo(cinfo.hCursor, &iinfo); + + /* Create a memory DC compatible with client area DC.*/ + HdcStrech = CreateCompatibleDC(desktopHdc); + + /* Create a bitmap compatible with the client area DC.*/ + HbmpStrech = CreateCompatibleBitmap( + desktopHdc, + R.right, + R.bottom); + + /* Select our bitmap in memory DC and save the old one.*/ + hOld = SelectObject (HdcStrech , HbmpStrech); + + /* Paint the screen bitmap to our in memory DC */ + BitBlt( + HdcStrech, + 0, + 0, + R.right, + R.bottom, + desktopHdc, + 0, + 0, + SRCCOPY); + + /* Draw the mouse pointer in the right position */ + DrawIcon( + HdcStrech , + pMouse.x - iinfo.xHotspot, // - 10, + pMouse.y - iinfo.yHotspot, // - 10, + cinfo.hCursor); + + Width = (R.right - R.left); + Height = (R.bottom - R.top); + + AppWidth = (appRect.right - appRect.left); + AppHeight = (appRect.bottom - appRect.top); + + blitAreaWidth = AppWidth / iZoom; + blitAreaHeight = AppHeight / iZoom; + + blitAreaX = (cp.x) - (blitAreaWidth /2); + blitAreaY = (cp.y) - (blitAreaHeight /2); + + if (blitAreaX < 0) + { + blitAreaX = 0; + } + + if (blitAreaY < 0) + { + blitAreaY = 0; + } + + if (blitAreaX > (Width - blitAreaWidth)) + { + blitAreaX = (Width - blitAreaWidth); + } + + if (blitAreaY > (Height - blitAreaHeight)) + { + blitAreaY = (Height - blitAreaHeight); + } + + if (bInvertColors) + { + rop = NOTSRCCOPY; + } + + /* Blast the stretched image from memory DC to window DC.*/ + StretchBlt( + aDc, + 0, + 0, + AppWidth, + AppHeight, + HdcStrech, + blitAreaX, + blitAreaY, + blitAreaWidth, + blitAreaHeight, + rop); + + /* Cleanup.*/ + if (iinfo.hbmMask) + DeleteObject(iinfo.hbmMask); + if (iinfo.hbmColor) + DeleteObject(iinfo.hbmColor); + SelectObject (HdcStrech, hOld); + DeleteObject (HbmpStrech); + DeleteDC (HdcStrech); + ReleaseDC(hDesktopWindow, desktopHdc); +} + +// +// FUNCTION: WndProc(HWND, UINT, WPARAM, LPARAM) +// +// PURPOSE: Processes messages for the main window. +// +// WM_COMMAND - process the application menu +// WM_PAINT - Paint the main window +// WM_DESTROY - post a quit message and return +// +// +LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) +{ + int wmId, wmEvent; + + switch (message) + { + case WM_TIMER: + { + POINT pNewMouse; + POINT pNewCaret; + POINT pNewFocus; + HWND hwnd1, hwnd2, hwnd3; + DWORD a, b; + RECT controlRect; + + //Get current mouse position + GetCursorPos (&pNewMouse); + + //Get caret position + hwnd1 = GetForegroundWindow (); + a = GetWindowThreadProcessId(hwnd1, NULL); + b = GetCurrentThreadId(); + AttachThreadInput (a, b, TRUE); + hwnd2 = GetFocus(); + + GetCaretPos( &pNewCaret); + ClientToScreen (hwnd2, (LPPOINT) &pNewCaret); + AttachThreadInput (a, b, FALSE); + + //Get current control focus + hwnd3 = GetFocus (); + GetWindowRect (hwnd3 , &controlRect); + pNewFocus.x = controlRect.left; + pNewFocus.y = controlRect.top; + + //If mouse has moved .... + if (((pMouse.x != pNewMouse.x) || (pMouse.y != pNewMouse.y)) && bFollowMouse) + { + //Update to new position + pMouse = pNewMouse; + cp = pNewMouse; + Refresh(); + } + else if (((pCaret.x != pNewCaret.x) || (pCaret.y != pNewCaret.y)) && bFollowCaret) + { + //Update to new position + pCaret = pNewCaret; + cp = pNewCaret; + Refresh(); + } + else if (((pFocus.x != pNewFocus.x) || (pFocus.y != pNewFocus.y)) && bFollowFocus) + { + //Update to new position + pFocus = pNewFocus; + cp = pNewFocus; + Refresh(); + } + } + break; + case WM_COMMAND: + wmId = LOWORD(wParam); + wmEvent = HIWORD(wParam); + // Parse the menu selections: + switch (wmId) + { + case IDM_OPTIONS: + DialogBox(hInst, MAKEINTRESOURCE(IDD_DIALOGOPTIONS), hWnd, (DLGPROC)OptionsProc); + break; + case IDM_ABOUT: + DialogBox(hInst, MAKEINTRESOURCE(IDD_ABOUTBOX), hWnd, (DLGPROC)AboutProc); + break; + case IDM_EXIT: + DestroyWindow(hWnd); + break; + default: + return DefWindowProc(hWnd, message, wParam, lParam); + } + break; + case WM_PAINT: + { + PAINTSTRUCT PaintStruct; + HDC dc; + dc = BeginPaint(hWnd, &PaintStruct); + Draw(dc); + EndPaint(hWnd, &PaintStruct); + } + break; + case WM_ERASEBKGND: + //handle WM_ERASEBKGND by simply returning non-zero because we did all the drawing in WM_PAINT. + break; + case WM_DESTROY: + //Save settings to registry + SaveSettings (); + KillTimer (hWnd , 1); + PostQuitMessage(0); + break; + case WM_CREATE: + //Load settings from registry + LoadSettings (); + + //Get the desktop window + hDesktopWindow = GetDesktopWindow(); + + //Set the timer + SetTimer (hWnd , 1, REPAINT_SPEED , NULL); + break; + default: + return DefWindowProc(hWnd, message, wParam, lParam); + } + return 0; +} + +// Message handler for about box. +INT_PTR CALLBACK AboutProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam) +{ + UNREFERENCED_PARAMETER(lParam); + switch (message) + { + case WM_INITDIALOG: + return (INT_PTR)TRUE; + + case WM_COMMAND: + if (LOWORD(wParam) == IDOK || LOWORD(wParam) == IDCANCEL) + { + EndDialog(hDlg, LOWORD(wParam)); + return (INT_PTR)TRUE; + } + break; + } + return (INT_PTR)FALSE; +} + +// Message handler for options box. +INT_PTR CALLBACK OptionsProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam) +{ + UNREFERENCED_PARAMETER(lParam); + switch (message) + { + case WM_INITDIALOG: + { + //Add the zoom items.... + SendDlgItemMessage(hDlg, IDC_ZOOM, CB_ADDSTRING, 0, (LPARAM)("1")); + SendDlgItemMessage(hDlg, IDC_ZOOM, CB_ADDSTRING, 0, (LPARAM)("2")); + SendDlgItemMessage(hDlg, IDC_ZOOM, CB_ADDSTRING, 0, (LPARAM)("3")); + SendDlgItemMessage(hDlg, IDC_ZOOM, CB_ADDSTRING, 0, (LPARAM)("4")); + SendDlgItemMessage(hDlg, IDC_ZOOM, CB_ADDSTRING, 0, (LPARAM)("5")); + SendDlgItemMessage(hDlg, IDC_ZOOM, CB_ADDSTRING, 0, (LPARAM)("6")); + SendDlgItemMessage(hDlg, IDC_ZOOM, CB_ADDSTRING, 0, (LPARAM)("7")); + SendDlgItemMessage(hDlg, IDC_ZOOM, CB_ADDSTRING, 0, (LPARAM)("8")); + + // + SendDlgItemMessage(hDlg, IDC_ZOOM, CB_SETCURSEL, iZoom - 1, 0); + + if (bFollowMouse) + SendDlgItemMessage(hDlg,IDC_FOLLOWMOUSECHECK,BM_SETCHECK , wParam ,0); + + if (bFollowFocus) + SendDlgItemMessage(hDlg,IDC_FOLLOWKEYBOARDCHECK,BM_SETCHECK , wParam ,0); + + if (bFollowCaret) + SendDlgItemMessage(hDlg,IDC_FOLLOWTEXTEDITINGCHECK,BM_SETCHECK , wParam ,0); + + if (bInvertColors) + SendDlgItemMessage(hDlg,IDC_INVERTCOLORSCHECK,BM_SETCHECK , wParam ,0); + + if (bStartMinimized) + SendDlgItemMessage(hDlg,IDC_STARTMINIMIZEDCHECK,BM_SETCHECK , wParam ,0); + + if (bShowMagnifier) + SendDlgItemMessage(hDlg,IDC_SHOWMAGNIFIERCHECK,BM_SETCHECK , wParam ,0); + + return (INT_PTR)TRUE; + } + case WM_COMMAND: + switch(LOWORD(wParam)) + { + case IDOK: + case IDCANCEL: + EndDialog(hDlg, LOWORD(wParam)); + return (INT_PTR)TRUE; + + case IDC_BUTTON_HELP: + /* unimplemented */ + MessageBox(hDlg , TEXT("Magnifier help not available yet!") , TEXT("Help") , MB_OK); + break; + case IDC_ZOOM: + if(HIWORD(wParam) == CBN_SELCHANGE) + { + HWND hCombo = GetDlgItem(hDlg,IDC_ZOOM); + + /* Get index of current selection and the text of that selection. */ + iZoom = SendMessage( hCombo, CB_GETCURSEL, (WPARAM) wParam, (LPARAM) lParam ) + 1; + + //Update the magnigier UI + Refresh (); + } + break; + case IDC_INVERTCOLORSCHECK: + bInvertColors = IsDlgButtonChecked (hDlg, IDC_INVERTCOLORSCHECK); + Refresh (); + break; + case IDC_FOLLOWMOUSECHECK: + bFollowMouse = IsDlgButtonChecked (hDlg, IDC_FOLLOWMOUSECHECK); + break; + case IDC_FOLLOWKEYBOARDCHECK: + bFollowFocus = IsDlgButtonChecked (hDlg, IDC_FOLLOWKEYBOARDCHECK); + break; + case IDC_FOLLOWTEXTEDITINGCHECK: + bFollowCaret = IsDlgButtonChecked (hDlg, IDC_FOLLOWTEXTEDITINGCHECK); + break; + case IDC_STARTMINIMIZEDCHECK: + bStartMinimized = IsDlgButtonChecked (hDlg, IDC_STARTMINIMIZEDCHECK); + break; + case IDC_SHOWMAGNIFIER: + bShowMagnifier = IsDlgButtonChecked (hDlg, IDC_SHOWMAGNIFIERCHECK); + if (bShowMagnifier){ + ShowWindow (hMainWnd , SW_SHOW); + }else{ + ShowWindow (hMainWnd , SW_HIDE); + } + break; + } + } + return (INT_PTR)FALSE; +} + +// Message handler for warning box. +INT_PTR CALLBACK WarningProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam) +{ + UNREFERENCED_PARAMETER(lParam); + + switch (message) + { + case WM_INITDIALOG: + return (INT_PTR)TRUE; + case WM_COMMAND: + switch(LOWORD(wParam)) + { + case IDC_SHOWWARNINGCHECK: + bShowWarning = !IsDlgButtonChecked (hDlg, IDC_SHOWWARNINGCHECK); + break; + } + if (LOWORD(wParam) == IDOK || LOWORD(wParam) == IDCANCEL) + { + EndDialog(hDlg, LOWORD(wParam)); + return (INT_PTR)TRUE; + } + break; + } + return (INT_PTR)FALSE; +} diff --git a/reactos/base/applications/magnify/magnifier.h b/reactos/base/applications/magnify/magnifier.h new file mode 100644 index 00000000000..3858516cf79 --- /dev/null +++ b/reactos/base/applications/magnify/magnifier.h @@ -0,0 +1,36 @@ +/* + * WineCalc (magnifier.h) + * + * Copyright 2007 Marc Piulachs + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ + +////////////////////////////////////////////////////////////////// + +extern int iZoom; + +extern BOOL bShowWarning; + +extern BOOL bFollowMouse; +extern BOOL bFollowFocus; +extern BOOL bFollowCaret; + +extern BOOL bInvertColors; +extern BOOL bStartMinimized; +extern BOOL bShowMagnifier; + +void LoadSettings(); +void SaveSettings(); diff --git a/reactos/base/applications/magnify/magnify.rbuild b/reactos/base/applications/magnify/magnify.rbuild new file mode 100644 index 00000000000..f447ff93af3 --- /dev/null +++ b/reactos/base/applications/magnify/magnify.rbuild @@ -0,0 +1,13 @@ + + + + . + user32 + gdi32 + advapi32 + shell32 + kernel32 + magnifier.c + settings.c + magnify.rc + diff --git a/reactos/base/applications/magnify/magnify.rc b/reactos/base/applications/magnify/magnify.rc new file mode 100644 index 00000000000..9ea3ddcab6a --- /dev/null +++ b/reactos/base/applications/magnify/magnify.rc @@ -0,0 +1,15 @@ +#include +#include +#include "resource.h" + +LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL + +#define REACTOS_STR_FILE_DESCRIPTION "ReactOS Magnifier\0" +#define REACTOS_STR_INTERNAL_NAME "magnify\0" +#define REACTOS_STR_ORIGINAL_FILENAME "magnify.exe\0" + +#include + +IDI_ICON ICON "res/magnify.ico" + +#include "rsrc.rc" diff --git a/reactos/base/applications/magnify/res/magnify.ico b/reactos/base/applications/magnify/res/magnify.ico new file mode 100644 index 00000000000..99a9be77de2 Binary files /dev/null and b/reactos/base/applications/magnify/res/magnify.ico differ diff --git a/reactos/base/applications/magnify/resource.h b/reactos/base/applications/magnify/resource.h new file mode 100644 index 00000000000..610ad096ad3 --- /dev/null +++ b/reactos/base/applications/magnify/resource.h @@ -0,0 +1,26 @@ +#define IDC_STATIC -1 + +#define IDI_ICON 101 +#define IDD_MAGNIFIER_DIALOG 102 +#define IDS_APP_TITLE 103 +#define IDD_ABOUTBOX 103 +#define IDM_ABOUT 104 +#define IDM_EXIT 105 +#define IDC_MYICON 106 +#define IDC_MAGNIFIER 109 +#define IDR_MAINFRAME 128 +#define IDD_DIALOGOPTIONS 129 +#define IDD_WARNINGDIALOG 130 +#define IDC_ZOOM 1000 +#define IDC_FOLLOWKEYBOARDCHECK 1002 +#define IDC_FOLLOWTEXTEDITINGCHECK 1003 +#define IDC_INVERTCOLORSCHECK 1004 +#define IDC_STARTMINIMIZEDCHECK 1005 +#define IDC_SHOWMAGNIFIER 1006 +#define IDC_SHOWMAGNIFIERCHECK 1006 +#define IDC_FOLLOWMOUSECHECK 1007 +#define IDC_BUTTON_HELP 1008 +#define IDC_SHOWWARNINGCHECK 1009 +#define ID_FILE_OPTIONS 32771 +#define ID_OPTIONS 32772 +#define IDM_OPTIONS 32773 diff --git a/reactos/base/applications/magnify/rsrc.rc b/reactos/base/applications/magnify/rsrc.rc new file mode 100644 index 00000000000..9c0059d4d0a --- /dev/null +++ b/reactos/base/applications/magnify/rsrc.rc @@ -0,0 +1,14 @@ +#include +#include "resource.h" + +#include "lang/bg-BG.rc" +#include "lang/en-US.rc" +#include "lang/es-ES.rc" +#include "lang/de-DE.rc" +#include "lang/fr-FR.rc" +#include "lang/it-IT.rc" +#include "lang/no-NO.rc" +#include "lang/pl-PL.rc" +#include "lang/ru-RU.rc" +#include "lang/sk-SK.rc" +#include "lang/uk-UA.rc" diff --git a/reactos/base/applications/magnify/settings.c b/reactos/base/applications/magnify/settings.c new file mode 100644 index 00000000000..a6019f8395d --- /dev/null +++ b/reactos/base/applications/magnify/settings.c @@ -0,0 +1,89 @@ +#include +#include +#include "magnifier.h" + +int iZoom = 3; + +BOOL bShowWarning = TRUE; + +BOOL bFollowMouse = TRUE; +BOOL bFollowFocus = TRUE; +BOOL bFollowCaret = TRUE; + +BOOL bInvertColors = FALSE; +BOOL bStartMinimized = FALSE; +BOOL bShowMagnifier = TRUE; + +void LoadSettings() +{ + HKEY hkey; + LONG value; + ULONG len; + + RegCreateKeyEx(HKEY_CURRENT_USER, _T("Software\\Microsoft\\Magnify"), 0, + _T(""), 0, KEY_READ, NULL, &hkey, NULL); + + if(ERROR_SUCCESS == RegQueryValueEx(hkey, _T("StationaryMagLevel"), 0, 0, (BYTE *)&value, &len)) + { + if(value >= 0 && value <= 9) + iZoom = value; + } + + if(ERROR_SUCCESS == RegQueryValueEx(hkey, _T("ShowWarning"), 0, 0, (BYTE *)&value, &len)) + bShowWarning = (value == 0 ? FALSE : TRUE); + + if(ERROR_SUCCESS == RegQueryValueEx(hkey, _T("StationaryInvertColors"), 0, 0, (BYTE *)&value, &len)) + bInvertColors = (value == 0 ? FALSE : TRUE); + + if(ERROR_SUCCESS == RegQueryValueEx(hkey, _T("StationaryStartMinimized"), 0, 0, (BYTE *)&value, &len)) + bStartMinimized = (value == 0 ? FALSE : TRUE); + + if(ERROR_SUCCESS == RegQueryValueEx(hkey, _T("StationaryTrackCursor"), 0, 0, (BYTE *)&value, &len)) + bFollowMouse = (value == 0 ? FALSE : TRUE); + + if(ERROR_SUCCESS == RegQueryValueEx(hkey, _T("StationaryTrackFocus"), 0, 0, (BYTE *)&value, &len)) + bFollowFocus = (value == 0 ? FALSE : TRUE); + + if(ERROR_SUCCESS == RegQueryValueEx(hkey, _T("StationaryTrackSecondaryFocus"), 0, 0, (BYTE *)&value, &len)) + bFollowFocus = (value == 0 ? FALSE : TRUE); + + if(ERROR_SUCCESS == RegQueryValueEx(hkey, _T("StationaryTrackText"), 0, 0, (BYTE *)&value, &len)) + bFollowCaret = (value == 0 ? FALSE : TRUE); + + RegCloseKey(hkey); +} + +void SaveSettings() +{ + HKEY hkey; + LONG value; + + RegCreateKeyEx(HKEY_CURRENT_USER, _T("Software\\Microsoft\\Magnify"), 0, + _T(""), 0, KEY_WRITE, NULL, &hkey, NULL); + + value = iZoom; + RegSetValueEx(hkey, _T("StationaryMagLevel"), 0, REG_DWORD, (BYTE *)&value, sizeof value); + + value = bShowWarning; + RegSetValueEx(hkey, _T("ShowWarning"), 0, REG_DWORD, (BYTE *)&value, sizeof value); + + value = bInvertColors; + RegSetValueEx(hkey, _T("StationaryInvertColors"), 0, REG_DWORD, (BYTE *)&value, sizeof value); + + value = bStartMinimized; + RegSetValueEx(hkey, _T("StationaryStartMinimized"), 0, REG_DWORD, (BYTE *)&value, sizeof value); + + value = bFollowMouse; + RegSetValueEx(hkey, _T("StationaryTrackCursor"), 0, REG_DWORD, (BYTE *)&value, sizeof value); + + value = bFollowFocus; + RegSetValueEx(hkey, _T("StationaryTrackFocus"), 0, REG_DWORD, (BYTE *)&value, sizeof value); + + value = bFollowFocus; + RegSetValueEx(hkey, _T("StationaryTrackSecondaryFocus"), 0, REG_DWORD, (BYTE *)&value, sizeof value); + + value = bFollowCaret; + RegSetValueEx(hkey, _T("StationaryTrackText"), 0, REG_DWORD, (BYTE *)&value, sizeof value); + + RegCloseKey(hkey); +} diff --git a/reactos/base/applications/winver/winver.c b/reactos/base/applications/winver/winver.c new file mode 100644 index 00000000000..3514b26514c --- /dev/null +++ b/reactos/base/applications/winver/winver.c @@ -0,0 +1,12 @@ +#include +#include + +int WINAPI _tWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPTSTR lpCmdLine, int nCmdShow) { + static const WCHAR szROS[] = { 'R','e','a','c','t','O','S',0 }; + UNREFERENCED_PARAMETER(lpCmdLine); + UNREFERENCED_PARAMETER(nCmdShow); + UNREFERENCED_PARAMETER(hPrevInstance); + UNREFERENCED_PARAMETER(hInstance); + ShellAbout(0, szROS, 0, 0); + return 1; +} diff --git a/reactos/base/applications/winver/winver.rbuild b/reactos/base/applications/winver/winver.rbuild new file mode 100644 index 00000000000..a8745ef7a93 --- /dev/null +++ b/reactos/base/applications/winver/winver.rbuild @@ -0,0 +1,6 @@ + + . + shell32 + kernel32 + winver.c + diff --git a/reactos/base/applications/write/lang/bg-BG.rc b/reactos/base/applications/write/lang/bg-BG.rc new file mode 100644 index 00000000000..fbd0812e2b6 --- /dev/null +++ b/reactos/base/applications/write/lang/bg-BG.rc @@ -0,0 +1,26 @@ +/* + * Bulgarian language support + * + * Copyright (C) 2007 Mikolaj Zalewski + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA + */ + +LANGUAGE LANG_BULGARIAN, SUBLANG_DEFAULT + +STRINGTABLE +{ + IDS_FAILED, "Неуспешно запускане на Тетрадката" +} diff --git a/reactos/base/applications/write/lang/de-DE.rc b/reactos/base/applications/write/lang/de-DE.rc new file mode 100644 index 00000000000..c2afa0848ae --- /dev/null +++ b/reactos/base/applications/write/lang/de-DE.rc @@ -0,0 +1,25 @@ +/* + * Copyright (C) 2007 Mikolaj Zalewski + * Copyright (C) 2008 Michael Stefaniuc + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA + */ + +LANGUAGE LANG_GERMAN, SUBLANG_NEUTRAL + +STRINGTABLE +{ + IDS_FAILED, "Der Start von Wordpad ist fehlgeschlagen" +} diff --git a/reactos/base/applications/write/lang/en-US.rc b/reactos/base/applications/write/lang/en-US.rc new file mode 100644 index 00000000000..5215db51dc8 --- /dev/null +++ b/reactos/base/applications/write/lang/en-US.rc @@ -0,0 +1,26 @@ +/* + * English language support + * + * Copyright (C) 2007 Mikolaj Zalewski + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA + */ + +LANGUAGE LANG_ENGLISH, SUBLANG_DEFAULT + +STRINGTABLE +{ + IDS_FAILED, "Starting Wordpad failed" +} diff --git a/reactos/base/applications/write/lang/fr-FR.rc b/reactos/base/applications/write/lang/fr-FR.rc new file mode 100644 index 00000000000..0258efc8142 --- /dev/null +++ b/reactos/base/applications/write/lang/fr-FR.rc @@ -0,0 +1,29 @@ +/* + * French language support + * + * Copyright (C) 2007 Jonathan Ernst + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA + */ +#pragma code_page(65001) + +LANGUAGE LANG_FRENCH, SUBLANG_NEUTRAL + +STRINGTABLE +{ + IDS_FAILED, "Wordpad n'a pas pu ГЄtre dГ©marrГ©" +} + +#pragma code_page(default) diff --git a/reactos/base/applications/write/lang/ja-JP.rc b/reactos/base/applications/write/lang/ja-JP.rc new file mode 100644 index 00000000000..237a53d5c48 --- /dev/null +++ b/reactos/base/applications/write/lang/ja-JP.rc @@ -0,0 +1,31 @@ +/* + * Japanese language support + * + * Copyright (C) 2007 Mikolaj Zalewski + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA + */ + +/* UTF-8 */ +#pragma code_page(65001) + +LANGUAGE LANG_JAPANESE, SUBLANG_DEFAULT + +STRINGTABLE +{ + IDS_FAILED, "Wordpad の起動に失敗しました" +} + +#pragma code_page(default) diff --git a/reactos/base/applications/write/lang/ko-KR.rc b/reactos/base/applications/write/lang/ko-KR.rc new file mode 100644 index 00000000000..f78ea13b286 --- /dev/null +++ b/reactos/base/applications/write/lang/ko-KR.rc @@ -0,0 +1,27 @@ +/* + * Korean language support + * + * Copyright (C) 2007 Mikolaj Zalewski + * Copyright (C) 2008 YunSong Hwang(ИІА±јє)(hys545@dreamwiz.com) + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA + */ + +LANGUAGE LANG_KOREAN, SUBLANG_DEFAULT + +STRINGTABLE +{ + IDS_FAILED, "їцµеЖРµе ЅГАЫ ЅЗЖРЗФ" +} diff --git a/reactos/base/applications/write/lang/nl-NL.rc b/reactos/base/applications/write/lang/nl-NL.rc new file mode 100644 index 00000000000..5f1611ed851 --- /dev/null +++ b/reactos/base/applications/write/lang/nl-NL.rc @@ -0,0 +1,26 @@ +/* + * Dutch language support + * + * Copyright (C) 2008 Frans Kool + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA + */ + +LANGUAGE LANG_DUTCH, SUBLANG_NEUTRAL + +STRINGTABLE +{ + IDS_FAILED, "Starten van Wordpad mislukt" +} diff --git a/reactos/base/applications/write/lang/no-NO.rc b/reactos/base/applications/write/lang/no-NO.rc new file mode 100644 index 00000000000..9b5a4bd8fc7 --- /dev/null +++ b/reactos/base/applications/write/lang/no-NO.rc @@ -0,0 +1,26 @@ +/* + * Norwegian Bokmеl language support + * + * Copyright (C) 2007 Alexander N. Sшrnes + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA + */ + +LANGUAGE LANG_NORWEGIAN, SUBLANG_NORWEGIAN_BOKMAL + +STRINGTABLE +{ + IDS_FAILED, "Klarte ikke starte Wordpad" +} diff --git a/reactos/base/applications/write/lang/pl-PL.rc b/reactos/base/applications/write/lang/pl-PL.rc new file mode 100644 index 00000000000..fc06b897f40 --- /dev/null +++ b/reactos/base/applications/write/lang/pl-PL.rc @@ -0,0 +1,26 @@ +/* + * Polish language support + * + * Copyright (C) 2007 Mikolaj Zalewski + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA + */ + +LANGUAGE LANG_POLISH, SUBLANG_DEFAULT + +STRINGTABLE +{ + IDS_FAILED, "Nie udaіo siк uruchomiж programu Wordpad" +} diff --git a/reactos/base/applications/write/lang/pt-BR.rc b/reactos/base/applications/write/lang/pt-BR.rc new file mode 100644 index 00000000000..e2ba2eb978d --- /dev/null +++ b/reactos/base/applications/write/lang/pt-BR.rc @@ -0,0 +1,26 @@ +/* + * Portuguese language support + * + * Copyright (C) 2008 Ricardo Filipe + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA + */ + +LANGUAGE LANG_PORTUGUESE, SUBLANG_NEUTRAL + +STRINGTABLE +{ + IDS_FAILED, "Falhou ao iniciar o Wordpad" +} diff --git a/reactos/base/applications/write/lang/ro-RO.rc b/reactos/base/applications/write/lang/ro-RO.rc new file mode 100644 index 00000000000..8a33118eb7f --- /dev/null +++ b/reactos/base/applications/write/lang/ro-RO.rc @@ -0,0 +1,29 @@ +/* + * Copyright (C) 2007 Mikolaj Zalewski + * Copyright (C) 2008 Michael Stefaniuc + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA + */ + +LANGUAGE LANG_ROMANIAN, SUBLANG_NEUTRAL + +#pragma code_page(65001) + +STRINGTABLE +{ + IDS_FAILED, "ExecuИ›ia Wordpad a eИ™uat" +} + +#pragma code_page(default) diff --git a/reactos/base/applications/write/lang/ru-RU.rc b/reactos/base/applications/write/lang/ru-RU.rc new file mode 100644 index 00000000000..653d426b2cc --- /dev/null +++ b/reactos/base/applications/write/lang/ru-RU.rc @@ -0,0 +1,26 @@ +/* + * Russian language support + * + * Copyright 2008 Andrey Esin + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA + */ + +LANGUAGE LANG_RUSSIAN, SUBLANG_DEFAULT + +STRINGTABLE +{ + IDS_FAILED, "Не удалось запустить Wordpad" +} diff --git a/reactos/base/applications/write/lang/sk-SK.rc b/reactos/base/applications/write/lang/sk-SK.rc new file mode 100644 index 00000000000..37b3ad1e2ee --- /dev/null +++ b/reactos/base/applications/write/lang/sk-SK.rc @@ -0,0 +1,10 @@ +/* TRANSLATOR: Mбrio Kaиmбr /Mario Kacmar/ aka Kario (kario@szm.sk) + * DATE OF TR: 30-01-2008 + */ + +LANGUAGE LANG_SLOVAK, SUBLANG_DEFAULT + +STRINGTABLE +BEGIN + IDS_FAILED, "Nepodarilo sa spustiќ Wordpad" +END diff --git a/reactos/base/applications/write/lang/sl-SI.rc b/reactos/base/applications/write/lang/sl-SI.rc new file mode 100644 index 00000000000..d7e2226a0ca --- /dev/null +++ b/reactos/base/applications/write/lang/sl-SI.rc @@ -0,0 +1,30 @@ +/* + * Slovenian language support + * + * Copyright (C) 2008 Rok Mandeljc + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA + */ + +LANGUAGE LANG_SLOVENIAN, SUBLANG_DEFAULT + +#pragma code_page(65001) + +STRINGTABLE +{ + IDS_FAILED, "Zagon programa Wordpad ni uspel" +} + +#pragma code_page(default) diff --git a/reactos/base/applications/write/lang/sv-SE.rc b/reactos/base/applications/write/lang/sv-SE.rc new file mode 100644 index 00000000000..dea65213e0f --- /dev/null +++ b/reactos/base/applications/write/lang/sv-SE.rc @@ -0,0 +1,26 @@ +/* + * Swedish language support + * + * Copyright (C) 2009 Anders Jonsson + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA + */ + +LANGUAGE LANG_SWEDISH, SUBLANG_NEUTRAL + +STRINGTABLE +{ + IDS_FAILED, "Kunde inte starta Wordpad" +} diff --git a/reactos/base/applications/write/lang/uk-UA.rc b/reactos/base/applications/write/lang/uk-UA.rc new file mode 100644 index 00000000000..a5b5cbaa4bb --- /dev/null +++ b/reactos/base/applications/write/lang/uk-UA.rc @@ -0,0 +1,26 @@ +/* + * Ukrainian language support + * + * Copyright (C) 2007 Artem Reznikov + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA + */ + +LANGUAGE LANG_UKRAINIAN, SUBLANG_DEFAULT + +STRINGTABLE +BEGIN + IDS_FAILED, "Не вдалося запустити Wordpad" +END diff --git a/reactos/base/applications/write/resources.h b/reactos/base/applications/write/resources.h new file mode 100644 index 00000000000..e99e5b19a40 --- /dev/null +++ b/reactos/base/applications/write/resources.h @@ -0,0 +1,19 @@ +/* + * Copyright 2007 Mikolaj Zalewski + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA + */ + +#define IDS_FAILED 101 diff --git a/reactos/base/applications/write/rsrc.rc b/reactos/base/applications/write/rsrc.rc new file mode 100644 index 00000000000..41819254be9 --- /dev/null +++ b/reactos/base/applications/write/rsrc.rc @@ -0,0 +1,41 @@ +/* + * Copyright 2007 Mikolaj Zalewski + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA + */ + +#include +#include + +#include "resources.h" + +LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL + +#include "lang/bg-BG.rc" +#include "lang/de-DE.rc" +#include "lang/en-US.rc" +#include "lang/fr-FR.rc" +#include "lang/ja-JP.rc" +#include "lang/ko-KR.rc" +#include "lang/no-NO.rc" +#include "lang/nl-NL.rc" +#include "lang/pl-PL.rc" +#include "lang/pt-BR.rc" +#include "lang/ro-RO.rc" +#include "lang/ru-RU.rc" +#include "lang/sl-SI.rc" +#include "lang/sk-SK.rc" +#include "lang/sv-SE.rc" +#include "lang/uk-UA.rc" diff --git a/reactos/base/applications/write/write.c b/reactos/base/applications/write/write.c new file mode 100644 index 00000000000..56cd3709a53 --- /dev/null +++ b/reactos/base/applications/write/write.c @@ -0,0 +1,56 @@ +/* + * Write.exe - this program only calls wordpad.exe + * + * Copyright 2007 by Mikolaj Zalewski + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA + */ + +#define WIN32_LEAN_AND_MEAN + +#include + +#include +#include "resources.h" + +static const WCHAR SZ_BACKSLASH[] = {'\\',0}; +static const WCHAR SZ_WORDPAD[] = {'w','o','r','d','p','a','d','.','e','x','e',0}; + +int CALLBACK wWinMain(HINSTANCE hInstance, HINSTANCE hOldInstance, LPWSTR szCmdParagraph, int res) +{ + WCHAR path[MAX_PATH]; + STARTUPINFOW stinf; + PROCESS_INFORMATION info; + + if (!GetSystemDirectoryW(path, MAX_PATH - 1 - lstrlenW(SZ_WORDPAD))) + goto failed; + if (path[lstrlenW(path) - 1] != '\\') + lstrcatW(path, SZ_BACKSLASH); + lstrcatW(path, SZ_WORDPAD); + + stinf.cb = sizeof(STARTUPINFOW); + GetStartupInfoW(&stinf); + + if (!CreateProcessW(path, GetCommandLineW(), NULL, NULL, FALSE, 0, NULL, NULL, &stinf, &info)) + goto failed; + CloseHandle(info.hProcess); + CloseHandle(info.hThread); + return 0; + +failed: + LoadStringW(GetModuleHandleW(NULL), IDS_FAILED, path, MAX_PATH); + MessageBoxW(NULL, path, NULL, MB_OK|MB_ICONERROR); + return 1; +} diff --git a/reactos/base/applications/write/write.rbuild b/reactos/base/applications/write/write.rbuild new file mode 100644 index 00000000000..e559784bc3a --- /dev/null +++ b/reactos/base/applications/write/write.rbuild @@ -0,0 +1,11 @@ + + + + . + kernel32 + user32 + advapi32 + shell32 + write.c + rsrc.rc + diff --git a/reactos/boot/bootdata/packages/reactos.dff b/reactos/boot/bootdata/packages/reactos.dff index 7efe8d52915..bb6404f85d6 100644 --- a/reactos/boot/bootdata/packages/reactos.dff +++ b/reactos/boot/bootdata/packages/reactos.dff @@ -42,6 +42,7 @@ base\applications\cmdutils\more\more.exe 1 base\applications\cmdutils\xcopy\xcopy.exe 1 base\applications\control\control.exe 1 base\applications\dxdiag\dxdiag.exe 1 +base\applications\fontview\fontview.exe 1 base\applications\mscutils\devmgmt\devmgmt.exe 1 base\applications\mscutils\eventvwr\eventvwr.exe 1 base\applications\games\solitaire\sol.exe 1 @@ -50,6 +51,7 @@ base\applications\hh\hh.exe 4 base\applications\kbswitch\kbswitch.exe 1 base\applications\kbswitch\kbsdll\kbsdll.dll 1 base\applications\logoff\logoff.exe 1 +base\applications\magnify\magnify.exe 1 base\applications\mplay32\mplay32.exe 1 base\applications\msconfig\msconfig.exe 1 base\applications\mstsc\mstsc.exe 1 @@ -76,7 +78,9 @@ base\applications\shutdown\shutdown.exe 1 base\applications\sndvol32\sndvol32.exe 1 base\applications\taskmgr\taskmgr.exe 1 base\applications\winhlp32\winhlp32.exe 4 +base\applications\winver\winver.exe 1 base\applications\wordpad\wordpad.exe 1 +base\applications\write\write.exe 1 base\services\audiosrv\audiosrv.exe 1 base\services\dhcp\dhcp.exe 1 @@ -650,13 +654,11 @@ modules\rosapps\applications\devutils\genguid\genguid.exe modules\rosapps\applications\sysutils\gettype\gettype.exe 1 optional modules\rosapps\applications\downloader\downloader.exe 1 optional modules\rosapps\applications\downloader\downloader.xml 1 optional -modules\rosapps\applications\fontview\fontview.exe 1 optional modules\rosapps\applications\net\ncftp\ncftp.exe 1 optional modules\rosapps\applications\net\netreg\netreg.exe 1 optional modules\rosapps\applications\net\niclist\niclist.exe 1 optional modules\rosapps\applications\net\roshttpd\roshttpd.exe 1 optional modules\rosapps\applications\notevil\notevil.exe 1 optional -modules\rosapps\applications\magnify\magnify.exe 1 optional modules\rosapps\applications\sysutils\chkdsk\chkdsk.exe 1 optional modules\rosapps\applications\sysutils\systeminfo\systeminfo.exe 1 optional modules\rosapps\applications\sysutils\chklib\chklib.exe 1 optional @@ -683,8 +685,6 @@ modules\rosapps\applications\sysutils\utils\rosperf\rosperf.exe modules\rosapps\applications\sysutils\utils\stats\stats.exe 1 optional modules\rosapps\applications\sysutils\utils\tickcount\tickcount.exe 1 optional modules\rosapps\applications\winfile\winfile.exe 1 optional -modules\rosapps\applications\winver\winver.exe 1 optional -modules\rosapps\applications\write\write.exe 1 optional modules\rosapps\demos\maze\maze.exe 1 optional modules\rosapps\drivers\green\green.sys 2 optional