[FONTVIEW]

- When no file name is passed on the command line, open a file-open-dialog
- Halfplement printing
- Replace Quit button with install button
- Patch by milawynsrealm <spaceseel at gmail got com>
See issue #6803 for more details.

svn path=/trunk/; revision=56898
This commit is contained in:
Timo Kreuzer 2012-07-15 14:25:19 +00:00
parent 2695b170c2
commit 23dc05adaa
23 changed files with 206 additions and 55 deletions

View file

@ -6,6 +6,6 @@ add_executable(fontview
fontview.rc)
set_module_type(fontview win32gui)
add_importlibs(fontview gdi32 shell32 user32 msvcrt kernel32)
add_importlibs(fontview comdlg32 gdi32 shell32 user32 msvcrt kernel32)
add_cd_file(TARGET fontview DESTINATION reactos/system32 FOR all)

View file

@ -377,6 +377,92 @@ Display_OnDestroy(HWND hwnd)
return 0;
}
LRESULT
Display_OnPrint(HWND hwnd)
{
PRINTDLG pfont;
TEXTMETRIC tm;
int copies, yPos;
DISPLAYDATA* pData;
pData = malloc(sizeof(DISPLAYDATA));
ZeroMemory(pData, sizeof(DISPLAYDATA));
/* Sets up the font layout */
pData = (DISPLAYDATA*)GetWindowLongPtr(hwnd, GWLP_USERDATA);
/* Clears the memory before using it */
ZeroMemory(&pfont, sizeof(pfont));
pfont.lStructSize = sizeof(pfont);
pfont.hwndOwner = hwnd;
pfont.hDevMode = NULL;
pfont.hDevNames = NULL;
pfont.Flags = PD_USEDEVMODECOPIESANDCOLLATE | PD_RETURNDC;
pfont.nCopies = 1;
pfont.nFromPage = 0xFFFF;
pfont.nToPage = 0xFFFF;
pfont.nMinPage = 1;
pfont.nMaxPage = 0xFFFF;
/* Opens up the print dialog box */
if (PrintDlg(&pfont))
{
DOCINFO docinfo;
docinfo.cbSize = sizeof(DOCINFO);
docinfo.lpszDocName = "Printing Font";
docinfo.lpszOutput = NULL;
docinfo.lpszDatatype = NULL;
docinfo.fwType = 0;
/* We start printing */
StartDoc(pfont.hDC, &docinfo);
/* Grabs the text metrics for the printer */
GetTextMetrics(pfont.hDC, &tm);
/* Start out with 0 for the y position for the page */
yPos = 0;
/* Starts out with the current page */
StartPage(pfont.hDC);
/* Used when printing for more than one copy */
for (copies = 0; copies < pfont.nCopies; copies++)
{
/* Test output */
TextOutW(pfont.hDC, 10, yPos, L"Testing...1...2...3", 19);
/* TODO: Determine if using Display_DrawText() will work for both rendering out to the
window and to the printer output */
//Display_DrawText(pfont.hDC, pData, yPos);
/* Ends the current page */
EndPage(pfont.hDC);
/* If we are making more than one copy, start a new page */
if (copies != pfont.nCopies)
{
yPos = 0;
StartPage(pfont.hDC);
}
}
/* The printing is now over */
EndDoc(pfont.hDC);
DeleteDC(pfont.hDC);
} else {
return 0;
}
/* Frees the memory since we no longer need it for now */
free(pData);
return 0;
}
LRESULT CALLBACK
DisplayProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{

View file

@ -13,3 +13,4 @@ extern const WCHAR g_szFontDisplayClassName[];
/* Public function */
BOOL Display_InitClass(HINSTANCE hInstance);
LRESULT Display_OnPrint(HWND hwnd);

View file

@ -24,6 +24,7 @@
HINSTANCE g_hInstance;
EXTLOGFONTW g_ExtLogFontW;
LPCWSTR g_fileName;
static const WCHAR g_szFontViewClassName[] = L"FontViewWClass";
@ -92,6 +93,7 @@ WinMain (HINSTANCE hThisInstance,
WNDCLASSEXW wincl;
HINSTANCE hDLL;
PGFRI GetFontResourceInfoW;
LPCWSTR fileName;
g_hInstance = hThisInstance;
@ -99,14 +101,51 @@ WinMain (HINSTANCE hThisInstance,
argv = CommandLineToArgvW(GetCommandLineW(), &argc);
if (argc < 2)
{
ErrorMsgBox(0, IDS_ERROR, IDS_ERROR_BADCMD, argv[1]);
return -1;
OPENFILENAMEW fontOpen;
WCHAR szFileName[MAX_PATH] = L"";
HLOCAL dialogTitle = NULL;
/* Gets the title for the dialog box ready */
FormatString(FORMAT_MESSAGE_ALLOCATE_BUFFER,
NULL, IDS_OPEN, 0, (LPWSTR)&dialogTitle, 0, NULL);
/* Clears out any values of fontOpen before we use it */
ZeroMemory(&fontOpen, sizeof(fontOpen));
/* Sets up the open dialog box */
fontOpen.lStructSize = sizeof(fontOpen);
fontOpen.hwndOwner = NULL;
fontOpen.lpstrFilter = L"TrueType Font (*.ttf)\0*.ttf\0"
L"All Files (*.*)\0*.*\0";
fontOpen.lpstrFile = szFileName;
fontOpen.lpstrTitle = dialogTitle;
fontOpen.nMaxFile = MAX_PATH;
fontOpen.Flags = OFN_EXPLORER | OFN_FILEMUSTEXIST | OFN_HIDEREADONLY;
fontOpen.lpstrDefExt = L"ttf";
/* Opens up the Open File dialog box in order to chose a font file. */
if(GetOpenFileNameW(&fontOpen))
{
fileName = fontOpen.lpstrFile;
g_fileName = fileName;
} else {
/* If the user decides to close out of the open dialog effectively
exiting the program altogether */
return 0;
}
LocalFree(dialogTitle);
}
/* Try to add the font resource */
if (!AddFontResourceW(argv[1]))
else
{
ErrorMsgBox(0, IDS_ERROR, IDS_ERROR_NOFONT, argv[1]);
/* Try to add the font resource from command line */
fileName = argv[1];
g_fileName = fileName;
}
if (!AddFontResourceW(fileName))
{
ErrorMsgBox(0, IDS_ERROR, IDS_ERROR_NOFONT, fileName);
return -1;
}
@ -116,16 +155,16 @@ WinMain (HINSTANCE hThisInstance,
/* Get the font name */
dwSize = sizeof(g_ExtLogFontW.elfFullName);
if (!GetFontResourceInfoW(argv[1], &dwSize, g_ExtLogFontW.elfFullName, 1))
if (!GetFontResourceInfoW(fileName, &dwSize, g_ExtLogFontW.elfFullName, 1))
{
ErrorMsgBox(0, IDS_ERROR, IDS_ERROR_NOFONT, argv[1]);
ErrorMsgBox(0, IDS_ERROR, IDS_ERROR_NOFONT, fileName);
return -1;
}
dwSize = sizeof(LOGFONTW);
if (!GetFontResourceInfoW(argv[1], &dwSize, &g_ExtLogFontW.elfLogFont, 2))
if (!GetFontResourceInfoW(fileName, &dwSize, &g_ExtLogFontW.elfLogFont, 2))
{
ErrorMsgBox(0, IDS_ERROR, IDS_ERROR_NOFONT, argv[1]);
ErrorMsgBox(0, IDS_ERROR, IDS_ERROR_NOFONT, fileName);
return -1;
}
@ -191,7 +230,7 @@ MainWnd_OnCreate(HWND hwnd)
WCHAR szQuit[MAX_BUTTONNAME];
WCHAR szPrint[MAX_BUTTONNAME];
WCHAR szString[MAX_STRING];
HWND hDisplay, hButtonQuit, hButtonPrint;
HWND hDisplay, hButtonInstall, hButtonPrint;
/* create the display window */
hDisplay = CreateWindowExW(
@ -217,8 +256,8 @@ MainWnd_OnCreate(HWND hwnd)
ShowWindow(hDisplay, SW_SHOWNORMAL);
/* Create the quit button */
LoadStringW(g_hInstance, IDS_QUIT, szQuit, MAX_BUTTONNAME);
hButtonQuit = CreateWindowExW(
LoadStringW(g_hInstance, IDS_INSTALL, szQuit, MAX_BUTTONNAME);
hButtonInstall = CreateWindowExW(
0, /* Extended style */
L"button", /* Classname */
szQuit, /* Title text */
@ -228,11 +267,11 @@ MainWnd_OnCreate(HWND hwnd)
BUTTON_WIDTH, /* Width */
BUTTON_HEIGHT, /* Height */
hwnd, /* Parent */
(HMENU)IDC_QUIT, /* Identifier */
(HMENU)IDC_INSTALL, /* Identifier */
g_hInstance, /* Program Instance handler */
NULL /* Window Creation data */
);
SendMessage(hButtonQuit, WM_SETFONT, (WPARAM)GetStockObject(DEFAULT_GUI_FONT), (LPARAM)TRUE);
SendMessage(hButtonInstall, WM_SETFONT, (WPARAM)GetStockObject(DEFAULT_GUI_FONT), (LPARAM)TRUE);
/* Create the print button */
LoadStringW(g_hInstance, IDS_PRINT, szPrint, MAX_BUTTONNAME);
@ -283,6 +322,26 @@ MainWnd_OnPaint(HWND hwnd)
return 0;
}
static LRESULT
MainWnd_OnInstall(HWND hwnd)
{
DWORD fontExists;
/* First, we have to find out if the font still exists. */
fontExists = GetFileAttributes((LPCSTR)g_fileName);
if (fontExists != 0xFFFFFFFF) /* If the file does not exist */
{
ErrorMsgBox(0, IDS_ERROR, IDS_ERROR_NOFONT, g_fileName);
return -1;
}
//CopyFile(g_fileName, NULL, TRUE);
MessageBox(hwnd, TEXT("This function is unimplemented"), TEXT("Unimplemented"), MB_OK);
return 0;
}
LRESULT CALLBACK
MainWndProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{
@ -300,12 +359,12 @@ MainWndProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
case WM_COMMAND:
switch(LOWORD(wParam))
{
case IDC_QUIT:
PostQuitMessage (0); /* send a WM_QUIT to the message queue */
case IDC_INSTALL:
return MainWnd_OnInstall(hwnd);
break;
case IDC_PRINT:
MessageBox(hwnd, TEXT("This function is unimplemented"), TEXT("Unimplemented"), MB_OK);
return Display_OnPrint(hwnd);
break;
}
break;

View file

@ -12,7 +12,7 @@
#define BUTTON_WIDTH 72
#define BUTTON_HEIGHT 21
#define IDC_QUIT 1001
#define IDC_INSTALL 1001
#define IDC_PRINT 1002
#define IDC_DISPLAY 1003

View file

@ -3,6 +3,11 @@
LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL
#define REACTOS_STR_FILE_DESCRIPTION "ReactOS Font Viewer\0"
#define REACTOS_STR_INTERNAL_NAME "fontview\0"
#define REACTOS_STR_ORIGINAL_FILENAME "fontview.exe\0"
#include <reactos/version.rc>
IDI_TT ICON "ttf.ico"
STRINGTABLE DISCARDABLE

View file

@ -2,12 +2,12 @@ LANGUAGE LANG_BULGARIAN, SUBLANG_DEFAULT
STRINGTABLE DISCARDABLE
BEGIN
IDS_QUIT, "Изход"
IDS_INSTALL, "Install"
IDS_PRINT, "Печат"
IDS_STRING, "Абвгд ежзий клмно прсту фхцчш щъьюя. 1234567890"
IDS_OPEN, "Open Font..."
IDS_ERROR, "Грешка"
IDS_ERROR_NOMEM, "Няма достатъчно място за завършване на действието."
IDS_ERROR_NOFONT, "%1 не е редовен шрифтов файл."
IDS_ERROR_NOCLASS, "Неуспешно изпълнение на класа на прозореца."
IDS_ERROR_BADCMD, "Не е указан шрифтов файл.\nНаписано:\n fontview.exe <font file>"
END

View file

@ -2,12 +2,12 @@ LANGUAGE LANG_GERMAN, SUBLANG_NEUTRAL
STRINGTABLE DISCARDABLE
BEGIN
IDS_QUIT, "Fertig"
IDS_INSTALL, "Installieren"
IDS_PRINT, "Drucken"
IDS_STRING, "Franz jagt im komplett verwahrlosten Taxi quer durch Bayern. 1234567890"
IDS_OPEN, "Schriftartendatei öffnen..."
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 <Schriftdatei>"
END

View file

@ -2,12 +2,12 @@ LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
STRINGTABLE DISCARDABLE
BEGIN
IDS_QUIT, "Quit"
IDS_INSTALL, "Install"
IDS_PRINT, "Print"
IDS_STRING, "Jackdaws love my big sphinx of quartz. 1234567890"
IDS_OPEN, "Open Font..."
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 <font file>"
END

View file

@ -6,12 +6,12 @@ LANGUAGE LANG_SPANISH, SUBLANG_NEUTRAL
STRINGTABLE DISCARDABLE
BEGIN
IDS_QUIT, "Cerrar"
IDS_INSTALL, "Install"
IDS_PRINT, "Imprimir"
IDS_STRING, "Haz el amor y no la guerra. 1234567890"
IDS_OPEN, "Open Font..."
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 <font file>"
END

View file

@ -2,12 +2,12 @@ LANGUAGE LANG_FRENCH, SUBLANG_NEUTRAL
STRINGTABLE DISCARDABLE
BEGIN
IDS_QUIT, "Quitter"
IDS_INSTALL, "Install"
IDS_PRINT, "Imprimer"
IDS_STRING, "Voix ambiguë d'un cśur qui au zéphyr préfčre les jattes de kiwis. 1234567890"
IDS_OPEN, "Police ouvert..."
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 <fichier police>"
END

View file

@ -4,12 +4,12 @@ LANGUAGE LANG_LITHUANIAN, SUBLANG_DEFAULT
STRINGTABLE DISCARDABLE
BEGIN
IDS_QUIT, "Baigti"
IDS_INSTALL, "Install"
IDS_PRINT, "Spausdinti"
IDS_STRING, "ABCDEFGHIYJKLMNOPQRSTUVWXZ ąčęėįšųūž 1234567890"
IDS_OPEN, "Aatvira šriftas..."
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

View file

@ -2,12 +2,12 @@ LANGUAGE LANG_NORWEGIAN, SUBLANG_NEUTRAL
STRINGTABLE DISCARDABLE
BEGIN
IDS_QUIT, "Avslutt"
IDS_INSTALL, "Install"
IDS_PRINT, "Skriv"
IDS_STRING, "Jackdaws love my big sphinx of quartz. 1234567890"
IDS_OPEN, "Open Font..."
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 <font file>"
END

View file

@ -10,12 +10,12 @@ LANGUAGE LANG_POLISH, SUBLANG_DEFAULT
STRINGTABLE DISCARDABLE
BEGIN
IDS_QUIT, "Wyjście"
IDS_INSTALL, "Install"
IDS_PRINT, "Drukuj"
IDS_STRING, "Zażółć gęślą Jaźń żółwiątkiem. 1234567890. !@#$%^&*()_+=-/?"
IDS_OPEN, "Open Font..."
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 <plik czcionki>"
END

View file

@ -4,14 +4,14 @@ LANGUAGE LANG_PORTUGUESE, SUBLANG_NEUTRAL
STRINGTABLE DISCARDABLE
BEGIN
IDS_QUIT, "Fechar"
IDS_INSTALL, "Install"
IDS_PRINT, "Imprimir"
IDS_STRING, "Jackdaws ama minha grande esfinge de quartzo. 1234567890"
IDS_OPEN, "Open Font..."
IDS_ERROR, "Erro"
IDS_ERROR_NOMEM, "Não há memória suficiente para completar a operação."
IDS_ERROR_NOFONT, "O arquivo %1 não é um arquivo de fonte válida."
IDS_ERROR_NOCLASS, "Não foi possível inicializar a janela."
IDS_ERROR_BADCMD, "Sem arquivos de fonte.\nSintaxe:\n fontview.exe <arquivo de fonte>"
END

View file

@ -3,12 +3,12 @@ LANGUAGE LANG_ROMANIAN, SUBLANG_NEUTRAL
STRINGTABLE DISCARDABLE
BEGIN
IDS_QUIT, "Ieșire"
IDS_PRINT, "Imprimare"
IDS_INSTALL, "Install"
IDS_PRINT, "Imprimare"
IDS_STRING, "Turubinele eoliene generează câțiva MJ (câțiva kW•h) în exces, acoperind și necesarul familiei. QY 1234567890"
IDS_OPEN, "Open Font..."
IDS_ERROR, "Eroare"
IDS_ERROR_NOMEM, "Nu e destulă memorie pentru a încheia operația."
IDS_ERROR_NOFONT, "Fișierul «%1» este un fișier font deteriorat."
IDS_ERROR_NOCLASS, "Nu s-a putut inițializa clasa de ferestre."
IDS_ERROR_BADCMD, "Niciun font specificat.\nSintaxă:\n fontview.exe <fișier font>"
END

View file

@ -4,12 +4,12 @@ LANGUAGE LANG_RUSSIAN, SUBLANG_DEFAULT
STRINGTABLE DISCARDABLE
BEGIN
IDS_QUIT, "Выход"
IDS_INSTALL, "Install"
IDS_PRINT, "Печать"
IDS_STRING, "В чащах юга жил бы цитрус? Да, но фальшивый экземпляр! 1234567890"
IDS_OPEN, "Open Font..."
IDS_ERROR, "Ошибка"
IDS_ERROR_NOMEM, "Недостаточно памяти, чтобы завершить операцию."
IDS_ERROR_NOFONT, "%1 не является корректным файлом шрифта."
IDS_ERROR_NOCLASS, "Невозможно инициализировать класс окна."
IDS_ERROR_BADCMD, "Не указан файл шрифта.\nСинтаксис:\n fontview.exe <файл_шрифта>"
END

View file

@ -7,12 +7,12 @@ LANGUAGE LANG_SLOVAK, SUBLANG_DEFAULT
STRINGTABLE DISCARDABLE
BEGIN
IDS_QUIT, "Hotovo"
IDS_INSTALL, "Install"
IDS_PRINT, "Tlačiť"
IDS_STRING, "Kŕdeľ ďatľov učí koňa žrať kôru. 1234567890"
IDS_OPEN, "Open Font..."
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 <súbor písiem>"
END

View file

@ -9,12 +9,12 @@ LANGUAGE LANG_SWEDISH, SUBLANG_NEUTRAL
STRINGTABLE DISCARDABLE
BEGIN
IDS_QUIT, "Avsluta"
IDS_INSTALL, "Install"
IDS_PRINT, "Skriv ut"
IDS_STRING, "Jackdaws love my big sphinx of quartz. 1234567890"
IDS_OPEN, "Open Font..."
IDS_ERROR, "Fel"
IDS_ERROR_NOMEM, "Det er inte nog minne för att slutföre operationen."
IDS_ERROR_NOFONT, "Filen %1 är inte en giltig typsnittsfil."
IDS_ERROR_NOCLASS, "Kunde inte initialisera Windows klassen."
IDS_ERROR_BADCMD, "Ingen typsnittsfil är angiven.\nSyntaxs:\n fontview.exe <typsnittsfil>"
END

View file

@ -10,12 +10,12 @@ LANGUAGE LANG_UKRAINIAN, SUBLANG_DEFAULT
STRINGTABLE DISCARDABLE
BEGIN
IDS_QUIT, "Вихід"
IDS_INSTALL, "Install"
IDS_PRINT, "Друк"
IDS_STRING, "Чуєш їх, доцю, га? Кумедна ж ти, прощайся без ґольфів! 1234567890"
IDS_OPEN, "Open Font..."
IDS_ERROR, "Помилка"
IDS_ERROR_NOMEM, "Недостатньо пам'яті для завершення операції."
IDS_ERROR_NOFONT, "Файл %1 не є коректним файлом шрифту."
IDS_ERROR_NOCLASS, "Неможливо ініціалізувати віконний клас."
IDS_ERROR_BADCMD, "Не вказаний файл шрифту.\nСинтаксис:\n fontview.exe <файл_шрифту>"
END

View file

@ -10,12 +10,12 @@ LANGUAGE LANG_CHINESE, SUBLANG_CHINESE_SIMPLIFIED
STRINGTABLE DISCARDABLE
BEGIN
IDS_QUIT, "结束"
IDS_INSTALL, "Install"
IDS_PRINT, "列印"
IDS_STRING, "ReactOS 给所有人一个自由的操作系统1234567890"
IDS_OPEN, "Open Font..."
IDS_ERROR, "错误"
IDS_ERROR_NOMEM, "没有足够的内存来完成操作。"
IDS_ERROR_NOFONT, "1不是一个有效的字体档案。"
IDS_ERROR_NOCLASS, "窗口无法初始化。"
IDS_ERROR_BADCMD, "没有提供字体文件。\n语法\n fontview.exe <字体档案>"
END

View file

@ -10,12 +10,12 @@ LANGUAGE LANG_CHINESE, SUBLANG_CHINESE_TRADITIONAL
STRINGTABLE DISCARDABLE
BEGIN
IDS_QUIT, "結束"
IDS_INSTALL, "Install"
IDS_PRINT, "列印"
IDS_STRING, "ReactOS 給所有人一個自由的操作系統! 1234567890"
IDS_OPEN, "Open Font..."
IDS_ERROR, "錯誤"
IDS_ERROR_NOMEM, "沒有足夠的記憶體來完成操作。"
IDS_ERROR_NOFONT, "%1 不是一個有效的字體檔案。"
IDS_ERROR_NOCLASS, "窗口無法初始化。"
IDS_ERROR_BADCMD, "沒有提供字體文件。\n語法\n fontview.exe <字體檔案>"
END

View file

@ -3,11 +3,11 @@
#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_INSTALL 500
#define IDS_PRINT 501
#define IDS_STRING 502
#define IDS_OPEN 503
#define IDS_CHARSLOWER 700
#define IDS_CHARSUPPER 701