Index: reactos/base/applications/fontview/display.c =================================================================== --- reactos/base/applications/fontview/display.c (revision 73479) +++ reactos/base/applications/fontview/display.c (working copy) @@ -162,7 +162,7 @@ } static LRESULT -Display_SetTypeFace(HWND hwnd, PEXTLOGFONTW pExtLogFont) +Display_SetTypeFace(HWND hwnd, PLOGFONTW pLogFont) { DISPLAYDATA* pData; TEXTMETRIC tm; @@ -171,16 +171,20 @@ SCROLLINFO si; int i; LOGFONTW logfont; + BOOL fOpenType; + BYTE Buffer[512]; + LPOUTLINETEXTMETRICW pOTM = (LPOUTLINETEXTMETRICW)Buffer; + LPWSTR pch; /* Set the new type face name */ pData = (DISPLAYDATA*)GetWindowLongPtr(hwnd, GWLP_USERDATA); - _snwprintf(pData->szTypeFaceName, LF_FULLFACESIZE, pExtLogFont->elfFullName); + lstrcpynW(pData->szTypeFaceName, pLogFont->lfFaceName, LF_FULLFACESIZE); /* Create the new fonts */ hDC = GetDC(hwnd); DeleteObject(pData->hCharSetFont); - logfont = pExtLogFont->elfLogFont; + logfont = *pLogFont; logfont.lfHeight = -MulDiv(16, GetDeviceCaps(GetDC(NULL), LOGPIXELSY), 72); pData->hCharSetFont = CreateFontIndirectW(&logfont); @@ -189,8 +193,19 @@ GetTextMetrics(hDC, &tm); if (tm.tmPitchAndFamily & TMPF_TRUETYPE) { - BOOL fOpenType = FALSE; + if (GetOutlineTextMetricsW(hDC, sizeof(Buffer), pOTM)) + { + LPBYTE pb = Buffer; + pb += (WORD)(DWORD_PTR)pOTM->otmpStyleName; + pch = (LPWSTR)pb; + if (*pch) + { + lstrcatW(pData->szTypeFaceName, L" "); + lstrcatW(pData->szTypeFaceName, pch); + } + } + fOpenType = FALSE; EnumFontFamiliesExW(hDC, &logfont, EnumFontFamProcW, (LPARAM)&fOpenType, 0); @@ -252,11 +267,10 @@ 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"}; + LOGFONTW LogFont = {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"}; /* Create data structure */ pData = malloc(sizeof(DISPLAYDATA)); @@ -270,13 +284,13 @@ pData->nSizes[i] = nSizes[i]; } - pData->hCaptionFont = CreateFontIndirectW(&ExtLogFont.elfLogFont); - ExtLogFont.elfLogFont.lfHeight = 12; - pData->hSizeFont = CreateFontIndirectW(&ExtLogFont.elfLogFont); + pData->hCaptionFont = CreateFontIndirectW(&LogFont); + LogFont.lfHeight = 12; + pData->hSizeFont = CreateFontIndirectW(&LogFont); Display_SetString(hwnd, (LPARAM)L"Jackdaws love my big sphinx of quartz. 1234567890"); - Display_SetTypeFace(hwnd, &ExtLogFont); + Display_SetTypeFace(hwnd, &LogFont); return 0; } @@ -520,7 +534,7 @@ return Display_OnVScroll(hwnd, wParam); case FVM_SETTYPEFACE: - return Display_SetTypeFace(hwnd, (PEXTLOGFONTW)lParam); + return Display_SetTypeFace(hwnd, (PLOGFONTW)lParam); case FVM_SETSTRING: return Display_SetString(hwnd, lParam); Index: reactos/base/applications/fontview/fontview.c =================================================================== --- reactos/base/applications/fontview/fontview.c (revision 73479) +++ reactos/base/applications/fontview/fontview.c (working copy) @@ -29,9 +29,12 @@ #include "fontview.h" #include "resource.h" -HINSTANCE g_hInstance; -EXTLOGFONTW g_ExtLogFontW; -LPCWSTR g_fileName; +HINSTANCE g_hInstance; +INT g_FontIndex = 0; +INT g_NumFonts; +LOGFONTW g_LogFonts[16]; +const INT g_MaxFonts = (INT)(sizeof(g_LogFonts) / sizeof(g_LogFonts[0])); +LPCWSTR g_fileName; static const WCHAR g_szFontViewClassName[] = L"FontViewWClass"; @@ -93,6 +96,7 @@ int nCmdShow) { int argc; + INT I; WCHAR** argv; WCHAR szFileName[MAX_PATH] = L""; DWORD dwSize; @@ -161,19 +165,26 @@ } /* Get the font name */ - dwSize = sizeof(g_ExtLogFontW.elfFullName); - if (!GetFontResourceInfoW(fileName, &dwSize, g_ExtLogFontW.elfFullName, 1)) - { - ErrorMsgBox(0, IDS_ERROR_NOFONT, fileName); - return -1; - } + dwSize = sizeof(g_LogFonts); + ZeroMemory(g_LogFonts, sizeof(g_LogFonts)); + if (!GetFontResourceInfoW(fileName, &dwSize, g_LogFonts, 2)) + { + ErrorMsgBox(0, IDS_ERROR_NOFONT, fileName); + return -1; + } + g_NumFonts = 0; + for (I = 0; I < g_MaxFonts; ++I) + { + if (g_LogFonts[I].lfFaceName[0] == 0) + break; - dwSize = sizeof(LOGFONTW); - if (!GetFontResourceInfoW(fileName, &dwSize, &g_ExtLogFontW.elfLogFont, 2)) - { - ErrorMsgBox(0, IDS_ERROR_NOFONT, fileName); - return -1; - } + ++g_NumFonts; + } + if (g_NumFonts == 0) + { + MessageBoxA(NULL, "No fonts", NULL, MB_ICONERROR); + return -2; + } if (!Display_InitClass(hThisInstance)) { @@ -206,7 +217,7 @@ hMainWnd = CreateWindowExW( 0, /* Extended possibilities for variation */ g_szFontViewClassName, /* Classname */ - g_ExtLogFontW.elfFullName,/* Title Text */ + g_LogFonts[0].lfFaceName, /* Title Text */ WS_OVERLAPPEDWINDOW, /* default window */ CW_USEDEFAULT, /* Windows decides the position */ CW_USEDEFAULT, /* where the window ends up on the screen */ @@ -237,7 +248,9 @@ WCHAR szQuit[MAX_BUTTONNAME]; WCHAR szPrint[MAX_BUTTONNAME]; WCHAR szString[MAX_STRING]; - HWND hDisplay, hButtonInstall, hButtonPrint; + WCHAR szPrevious[MAX_STRING]; + WCHAR szNext[MAX_STRING]; + HWND hDisplay, hButtonInstall, hButtonPrint, hButtonPrev, hButtonNext; /* create the display window */ hDisplay = CreateWindowExW( @@ -258,10 +271,6 @@ 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 install button */ LoadStringW(g_hInstance, IDS_INSTALL, szQuit, MAX_BUTTONNAME); hButtonInstall = CreateWindowExW( @@ -298,6 +307,51 @@ ); SendMessage(hButtonPrint, WM_SETFONT, (WPARAM)GetStockObject(DEFAULT_GUI_FONT), (LPARAM)TRUE); + /* Create the previous button */ + LoadStringW(g_hInstance, IDS_PREVIOUS, szPrevious, MAX_BUTTONNAME); + hButtonPrev = CreateWindowExW( + 0, /* Extended style */ + L"button", /* Classname */ + szPrevious, /* 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_PREV, /* Identifier */ + g_hInstance, /* Program Instance handler */ + NULL /* Window Creation data */ + ); + SendMessage(hButtonPrev, WM_SETFONT, (WPARAM)GetStockObject(DEFAULT_GUI_FONT), (LPARAM)TRUE); + + /* Create the next button */ + LoadStringW(g_hInstance, IDS_NEXT, szNext, MAX_BUTTONNAME); + hButtonNext = CreateWindowExW( + 0, /* Extended style */ + L"button", /* Classname */ + szNext, /* 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_NEXT, /* Identifier */ + g_hInstance, /* Program Instance handler */ + NULL /* Window Creation data */ + ); + SendMessage(hButtonNext, WM_SETFONT, (WPARAM)GetStockObject(DEFAULT_GUI_FONT), (LPARAM)TRUE); + + EnableWindow(hButtonPrev, FALSE); + if (g_NumFonts <= 1) + EnableWindow(hButtonNext, FALSE); + + /* Init the display window with the font name */ + g_FontIndex = 0; + SendMessage(hDisplay, FVM_SETTYPEFACE, 0, (LPARAM)&g_LogFonts[g_FontIndex]); + ShowWindow(hDisplay, SW_SHOWNORMAL); + return 0; } @@ -304,12 +358,33 @@ static LRESULT MainWnd_OnSize(HWND hwnd) { - RECT rc; + RECT rc; + HWND hInstall, hPrint, hPrev, hNext, hDisplay; + HDWP hDWP; - 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); + GetClientRect(hwnd, &rc); + hDWP = BeginDeferWindowPos(5); + + hInstall = GetDlgItem(hwnd, IDC_INSTALL); + DeferWindowPos(hDWP, hInstall, NULL, BUTTON_POS_X, BUTTON_POS_Y, BUTTON_WIDTH, BUTTON_HEIGHT, SWP_NOZORDER); + + hPrint = GetDlgItem(hwnd, IDC_PRINT); + DeferWindowPos(hDWP, hPrint, NULL, BUTTON_POS_X + BUTTON_WIDTH + BUTTON_PADDING, BUTTON_POS_Y, BUTTON_WIDTH, BUTTON_HEIGHT, SWP_NOZORDER); + + hPrev = GetDlgItem(hwnd, IDC_PREV); + DeferWindowPos(hDWP, hPrev, NULL, rc.right - (BUTTON_WIDTH * 2 + BUTTON_PADDING + BUTTON_POS_X), BUTTON_POS_Y, BUTTON_WIDTH, BUTTON_HEIGHT, SWP_NOZORDER); + + hNext = GetDlgItem(hwnd, IDC_NEXT); + DeferWindowPos(hDWP, hNext, NULL, rc.right - (BUTTON_WIDTH + BUTTON_POS_X), BUTTON_POS_Y, BUTTON_WIDTH, BUTTON_HEIGHT, SWP_NOZORDER); + + hDisplay = GetDlgItem(hwnd, IDC_DISPLAY); + DeferWindowPos(hDWP, hDisplay, NULL, 0, HEADER_SIZE, rc.right, rc.bottom - HEADER_SIZE, SWP_NOZORDER); + + EndDeferWindowPos(hDWP); + + InvalidateRect(hwnd, NULL, TRUE); + return 0; } @@ -349,6 +424,42 @@ return 0; } +static LRESULT +MainWnd_OnPrev(HWND hwnd) +{ + HWND hDisplay; + if (g_FontIndex > 0) + { + --g_FontIndex; + EnableWindow(GetDlgItem(hwnd, IDC_NEXT), TRUE); + if (g_FontIndex == 0) + EnableWindow(GetDlgItem(hwnd, IDC_PREV), FALSE); + + hDisplay = GetDlgItem(hwnd, IDC_DISPLAY); + SendMessage(hDisplay, FVM_SETTYPEFACE, 0, (LPARAM)&g_LogFonts[g_FontIndex]); + InvalidateRect(hDisplay, NULL, TRUE); + } + return 0; +} + +static LRESULT +MainWnd_OnNext(HWND hwnd) +{ + HWND hDisplay; + if (g_FontIndex + 1 < g_NumFonts) + { + ++g_FontIndex; + EnableWindow(GetDlgItem(hwnd, IDC_PREV), TRUE); + if (g_FontIndex == g_NumFonts - 1) + EnableWindow(GetDlgItem(hwnd, IDC_NEXT), FALSE); + + hDisplay = GetDlgItem(hwnd, IDC_DISPLAY); + SendMessage(hDisplay, FVM_SETTYPEFACE, 0, (LPARAM)&g_LogFonts[g_FontIndex]); + InvalidateRect(hDisplay, NULL, TRUE); + } + return 0; +} + LRESULT CALLBACK MainWndProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam) { @@ -368,11 +479,15 @@ { case IDC_INSTALL: return MainWnd_OnInstall(hwnd); - break; case IDC_PRINT: return Display_OnPrint(hwnd); - break; + + case IDC_PREV: + return MainWnd_OnPrev(hwnd); + + case IDC_NEXT: + return MainWnd_OnNext(hwnd); } break; Index: reactos/base/applications/fontview/fontview.h =================================================================== --- reactos/base/applications/fontview/fontview.h (revision 73479) +++ reactos/base/applications/fontview/fontview.h (working copy) @@ -8,11 +8,17 @@ #define BUTTON_POS_Y 8 #define BUTTON_WIDTH 72 #define BUTTON_HEIGHT 21 +#define BUTTON_PADDING 8 #define IDC_INSTALL 1001 #define IDC_PRINT 1002 #define IDC_DISPLAY 1003 +#define IDC_PREV 1004 +#define IDC_NEXT 1005 LRESULT CALLBACK MainWndProc(HWND, UINT, WPARAM, LPARAM); BOOL LoadFont(LPWSTR lpCmdLine); + +extern INT g_FontIndex; +extern INT g_NumFonts; Index: reactos/base/applications/fontview/lang/bg-BG.rc =================================================================== --- reactos/base/applications/fontview/lang/bg-BG.rc (revision 73479) +++ reactos/base/applications/fontview/lang/bg-BG.rc (working copy) @@ -10,9 +10,12 @@ IDS_ERROR_NOMEM "Няма достатъчно място за завършване на действието." IDS_ERROR_NOFONT "%1 не е редовен шрифтов файл." IDS_ERROR_NOCLASS "Неуспешно изпълнение на класа на прозореца." - IDS_FILTER_LIST "All Supported Fonts (*.ttf;*.fon;*.otf)\0*.ttf;*.fon;*.otf\0\ + IDS_FILTER_LIST "All Supported Fonts (*.ttf;*.ttc;*.fon;*.fnt;*.otf;*.otc)\0*.ttf;*.ttc;*.fon;*.fnt;*.otf;*.otc\0\ TrueType Font (*.ttf)\0*.ttf\0\ -OpenType Font (*.otf)\0*.otf\0\ -Font File (*.fon)\0*.fon\0\ +TrueType Font Collection (*.ttc)\0*.ttc\0\ +OpenType Font (*.otf;*.otc)\0*.otf;*.otc\0\ +Font File (*.fon;*.fnt)\0*.fon;*.fnt\0\ All Files (*.*)\0*.*\0" + IDS_PREVIOUS "< Previous" + IDS_NEXT "Next >" END Index: reactos/base/applications/fontview/lang/cs-CZ.rc =================================================================== --- reactos/base/applications/fontview/lang/cs-CZ.rc (revision 73479) +++ reactos/base/applications/fontview/lang/cs-CZ.rc (working copy) @@ -10,9 +10,12 @@ IDS_ERROR_NOMEM "K dokončení operace není dostatek paměti." IDS_ERROR_NOFONT "Soubor %1 není platným souborem písma." IDS_ERROR_NOCLASS "Inicializace okna aplikace selhala." - IDS_FILTER_LIST "All Supported Fonts (*.ttf;*.fon;*.otf)\0*.ttf;*.fon;*.otf\0\ + IDS_FILTER_LIST "All Supported Fonts (*.ttf;*.ttc;*.fon;*.fnt;*.otf;*.otc)\0*.ttf;*.ttc;*.fon;*.fnt;*.otf;*.otc\0\ TrueType Font (*.ttf)\0*.ttf\0\ -OpenType Font (*.otf)\0*.otf\0\ -Font File (*.fon)\0*.fon\0\ +TrueType Font Collection (*.ttc)\0*.ttc\0\ +OpenType Font (*.otf;*.otc)\0*.otf;*.otc\0\ +Font File (*.fon;*.fnt)\0*.fon;*.fnt\0\ All Files (*.*)\0*.*\0" + IDS_PREVIOUS "< Previous" + IDS_NEXT "Next >" END Index: reactos/base/applications/fontview/lang/de-DE.rc =================================================================== --- reactos/base/applications/fontview/lang/de-DE.rc (revision 73479) +++ reactos/base/applications/fontview/lang/de-DE.rc (working copy) @@ -10,9 +10,12 @@ 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_FILTER_LIST "All Supported Fonts (*.ttf;*.fon;*.otf)\0*.ttf;*.fon;*.otf\0\ + IDS_FILTER_LIST "All Supported Fonts (*.ttf;*.ttc;*.fon;*.fnt;*.otf;*.otc)\0*.ttf;*.ttc;*.fon;*.fnt;*.otf;*.otc\0\ TrueType Font (*.ttf)\0*.ttf\0\ -OpenType Font (*.otf)\0*.otf\0\ -Font File (*.fon)\0*.fon\0\ +TrueType Font Collection (*.ttc)\0*.ttc\0\ +OpenType Font (*.otf;*.otc)\0*.otf;*.otc\0\ +Font File (*.fon;*.fnt)\0*.fon;*.fnt\0\ All Files (*.*)\0*.*\0" + IDS_PREVIOUS "< Previous" + IDS_NEXT "Next >" END Index: reactos/base/applications/fontview/lang/en-US.rc =================================================================== --- reactos/base/applications/fontview/lang/en-US.rc (revision 73479) +++ reactos/base/applications/fontview/lang/en-US.rc (working copy) @@ -10,9 +10,12 @@ 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_FILTER_LIST "All Supported Fonts (*.ttf;*.fon;*.otf)\0*.ttf;*.fon;*.otf\0\ + IDS_FILTER_LIST "All Supported Fonts (*.ttf;*.ttc;*.fon;*.fnt;*.otf;*.otc)\0*.ttf;*.ttc;*.fon;*.fnt;*.otf;*.otc\0\ TrueType Font (*.ttf)\0*.ttf\0\ -OpenType Font (*.otf)\0*.otf\0\ -Font File (*.fon)\0*.fon\0\ +TrueType Font Collection (*.ttc)\0*.ttc\0\ +OpenType Font (*.otf;*.otc)\0*.otf;*.otc\0\ +Font File (*.fon;*.fnt)\0*.fon;*.fnt\0\ All Files (*.*)\0*.*\0" + IDS_PREVIOUS "< Previous" + IDS_NEXT "Next >" END Index: reactos/base/applications/fontview/lang/es-ES.rc =================================================================== --- reactos/base/applications/fontview/lang/es-ES.rc (revision 73479) +++ reactos/base/applications/fontview/lang/es-ES.rc (working copy) @@ -12,9 +12,12 @@ IDS_ERROR_NOMEM "No hay memoria suficiente para completar la operación." IDS_ERROR_NOFONT "El archivo %1 no es un archivo de fuente válido." IDS_ERROR_NOCLASS "No es posible iniciar la clase de ventana." - IDS_FILTER_LIST "All Supported Fonts (*.ttf;*.fon;*.otf)\0*.ttf;*.fon;*.otf\0\ + IDS_FILTER_LIST "All Supported Fonts (*.ttf;*.ttc;*.fon;*.fnt;*.otf;*.otc)\0*.ttf;*.ttc;*.fon;*.fnt;*.otf;*.otc\0\ TrueType Font (*.ttf)\0*.ttf\0\ -OpenType Font (*.otf)\0*.otf\0\ -Font File (*.fon)\0*.fon\0\ +TrueType Font Collection (*.ttc)\0*.ttc\0\ +OpenType Font (*.otf;*.otc)\0*.otf;*.otc\0\ +Font File (*.fon;*.fnt)\0*.fon;*.fnt\0\ All Files (*.*)\0*.*\0" + IDS_PREVIOUS "< Previous" + IDS_NEXT "Next >" END Index: reactos/base/applications/fontview/lang/fr-FR.rc =================================================================== --- reactos/base/applications/fontview/lang/fr-FR.rc (revision 73479) +++ reactos/base/applications/fontview/lang/fr-FR.rc (working copy) @@ -10,9 +10,12 @@ 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_FILTER_LIST "All Supported Fonts (*.ttf;*.fon;*.otf)\0*.ttf;*.fon;*.otf\0\ + IDS_FILTER_LIST "All Supported Fonts (*.ttf;*.ttc;*.fon;*.fnt;*.otf;*.otc)\0*.ttf;*.ttc;*.fon;*.fnt;*.otf;*.otc\0\ TrueType Font (*.ttf)\0*.ttf\0\ -OpenType Font (*.otf)\0*.otf\0\ -Font File (*.fon)\0*.fon\0\ +TrueType Font Collection (*.ttc)\0*.ttc\0\ +OpenType Font (*.otf;*.otc)\0*.otf;*.otc\0\ +Font File (*.fon;*.fnt)\0*.fon;*.fnt\0\ All Files (*.*)\0*.*\0" + IDS_PREVIOUS "< Previous" + IDS_NEXT "Next >" END Index: reactos/base/applications/fontview/lang/he-IL.rc =================================================================== --- reactos/base/applications/fontview/lang/he-IL.rc (revision 73479) +++ reactos/base/applications/fontview/lang/he-IL.rc (working copy) @@ -12,9 +12,12 @@ IDS_ERROR_NOMEM "אין מספיק זיכרון כדי להשלים את הפעולה." IDS_ERROR_NOFONT "הקובץ %1 אינו קובץ גופנים חוקי." IDS_ERROR_NOCLASS "Could not initialize window class." - IDS_FILTER_LIST "All Supported Fonts (*.ttf;*.fon;*.otf)\0*.ttf;*.fon;*.otf\0\ + IDS_FILTER_LIST "All Supported Fonts (*.ttf;*.ttc;*.fon;*.fnt;*.otf;*.otc)\0*.ttf;*.ttc;*.fon;*.fnt;*.otf;*.otc\0\ TrueType Font (*.ttf)\0*.ttf\0\ -OpenType Font (*.otf)\0*.otf\0\ -Font File (*.fon)\0*.fon\0\ +TrueType Font Collection (*.ttc)\0*.ttc\0\ +OpenType Font (*.otf;*.otc)\0*.otf;*.otc\0\ +Font File (*.fon;*.fnt)\0*.fon;*.fnt\0\ All Files (*.*)\0*.*\0" + IDS_PREVIOUS "< Previous" + IDS_NEXT "Next >" END Index: reactos/base/applications/fontview/lang/it-IT.rc =================================================================== --- reactos/base/applications/fontview/lang/it-IT.rc (revision 73479) +++ reactos/base/applications/fontview/lang/it-IT.rc (working copy) @@ -10,9 +10,12 @@ IDS_ERROR_NOMEM "Memoria insufficiente per completare l'operazione." IDS_ERROR_NOFONT "Il file% 1 non è un file di origine valido." IDS_ERROR_NOCLASS "Impossibile avviare la classe." - IDS_FILTER_LIST "All Supported Fonts (*.ttf;*.fon;*.otf)\0*.ttf;*.fon;*.otf\0\ + IDS_FILTER_LIST "All Supported Fonts (*.ttf;*.ttc;*.fon;*.fnt;*.otf;*.otc)\0*.ttf;*.ttc;*.fon;*.fnt;*.otf;*.otc\0\ TrueType Font (*.ttf)\0*.ttf\0\ -OpenType Font (*.otf)\0*.otf\0\ -Font File (*.fon)\0*.fon\0\ +TrueType Font Collection (*.ttc)\0*.ttc\0\ +OpenType Font (*.otf;*.otc)\0*.otf;*.otc\0\ +Font File (*.fon;*.fnt)\0*.fon;*.fnt\0\ All Files (*.*)\0*.*\0" + IDS_PREVIOUS "< Previous" + IDS_NEXT "Next >" END Index: reactos/base/applications/fontview/lang/lt-LT.rc =================================================================== --- reactos/base/applications/fontview/lang/lt-LT.rc (revision 73479) +++ reactos/base/applications/fontview/lang/lt-LT.rc (working copy) @@ -12,9 +12,12 @@ 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_FILTER_LIST "All Supported Fonts (*.ttf;*.fon;*.otf)\0*.ttf;*.fon;*.otf\0\ + IDS_FILTER_LIST "All Supported Fonts (*.ttf;*.ttc;*.fon;*.fnt;*.otf;*.otc)\0*.ttf;*.ttc;*.fon;*.fnt;*.otf;*.otc\0\ TrueType Font (*.ttf)\0*.ttf\0\ -OpenType Font (*.otf)\0*.otf\0\ -Font File (*.fon)\0*.fon\0\ +TrueType Font Collection (*.ttc)\0*.ttc\0\ +OpenType Font (*.otf;*.otc)\0*.otf;*.otc\0\ +Font File (*.fon;*.fnt)\0*.fon;*.fnt\0\ All Files (*.*)\0*.*\0" + IDS_PREVIOUS "< Previous" + IDS_NEXT "Next >" END Index: reactos/base/applications/fontview/lang/ms-MY.rc =================================================================== --- reactos/base/applications/fontview/lang/ms-MY.rc (revision 73479) +++ reactos/base/applications/fontview/lang/ms-MY.rc (working copy) @@ -12,9 +12,12 @@ IDS_ERROR_NOMEM "Terdapat tidak cukup ingatan untuk melengkapkan operasi ini." IDS_ERROR_NOFONT "Fail %1 bukanlah fail fon yang sah." IDS_ERROR_NOCLASS "Tidak dapat mengawalkan kelas tetingkap." - IDS_FILTER_LIST "Semuanya disokong fon (*.ttf;*.fon;*.otf)\0*.ttf;*.fon;*.otf\0\ -Fon TrueType (*.ttf)\0*.ttf\0\ -Fon OpenType (*.otf)\0*.otf\0\ -Fail fon (*.fon)\0*.fon\0\ -Semua fail (*.*)\0*.*\0" + IDS_FILTER_LIST "Semuanya disokong fon (*.ttf;*.ttc;*.fon;*.fnt;*.otf;*.otc)\0*.ttf;*.ttc;*.fon;*.fnt;*.otf;*.otc\0\ +TrueType Font (*.ttf)\0*.ttf\0\ +TrueType Font Collection (*.ttc)\0*.ttc\0\ +OpenType Font (*.otf;*.otc)\0*.otf;*.otc\0\ +Font File (*.fon;*.fnt)\0*.fon;*.fnt\0\ +All Files (*.*)\0*.*\0" + IDS_PREVIOUS "< Previous" + IDS_NEXT "Next >" END Index: reactos/base/applications/fontview/lang/no-NO.rc =================================================================== --- reactos/base/applications/fontview/lang/no-NO.rc (revision 73479) +++ reactos/base/applications/fontview/lang/no-NO.rc (working copy) @@ -10,9 +10,12 @@ 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_FILTER_LIST "All Supported Fonts (*.ttf;*.fon;*.otf)\0*.ttf;*.fon;*.otf\0\ + IDS_FILTER_LIST "All Supported Fonts (*.ttf;*.ttc;*.fon;*.fnt;*.otf;*.otc)\0*.ttf;*.ttc;*.fon;*.fnt;*.otf;*.otc\0\ TrueType Font (*.ttf)\0*.ttf\0\ -OpenType Font (*.otf)\0*.otf\0\ -Font File (*.fon)\0*.fon\0\ +TrueType Font Collection (*.ttc)\0*.ttc\0\ +OpenType Font (*.otf;*.otc)\0*.otf;*.otc\0\ +Font File (*.fon;*.fnt)\0*.fon;*.fnt\0\ All Files (*.*)\0*.*\0" + IDS_PREVIOUS "< Previous" + IDS_NEXT "Next >" END Index: reactos/base/applications/fontview/lang/pl-PL.rc =================================================================== --- reactos/base/applications/fontview/lang/pl-PL.rc (revision 73479) +++ reactos/base/applications/fontview/lang/pl-PL.rc (working copy) @@ -18,9 +18,12 @@ 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_FILTER_LIST "All Supported Fonts (*.ttf;*.fon;*.otf)\0*.ttf;*.fon;*.otf\0\ + IDS_FILTER_LIST "All Supported Fonts (*.ttf;*.ttc;*.fon;*.fnt;*.otf;*.otc)\0*.ttf;*.ttc;*.fon;*.fnt;*.otf;*.otc\0\ TrueType Font (*.ttf)\0*.ttf\0\ -OpenType Font (*.otf)\0*.otf\0\ -Font File (*.fon)\0*.fon\0\ +TrueType Font Collection (*.ttc)\0*.ttc\0\ +OpenType Font (*.otf;*.otc)\0*.otf;*.otc\0\ +Font File (*.fon;*.fnt)\0*.fon;*.fnt\0\ All Files (*.*)\0*.*\0" + IDS_PREVIOUS "< Previous" + IDS_NEXT "Next >" END Index: reactos/base/applications/fontview/lang/pt-BR.rc =================================================================== --- reactos/base/applications/fontview/lang/pt-BR.rc (revision 73479) +++ reactos/base/applications/fontview/lang/pt-BR.rc (working copy) @@ -12,9 +12,12 @@ 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_FILTER_LIST "All Supported Fonts (*.ttf;*.fon;*.otf)\0*.ttf;*.fon;*.otf\0\ + IDS_FILTER_LIST "All Supported Fonts (*.ttf;*.ttc;*.fon;*.fnt;*.otf;*.otc)\0*.ttf;*.ttc;*.fon;*.fnt;*.otf;*.otc\0\ TrueType Font (*.ttf)\0*.ttf\0\ -OpenType Font (*.otf)\0*.otf\0\ -Font File (*.fon)\0*.fon\0\ +TrueType Font Collection (*.ttc)\0*.ttc\0\ +OpenType Font (*.otf;*.otc)\0*.otf;*.otc\0\ +Font File (*.fon;*.fnt)\0*.fon;*.fnt\0\ All Files (*.*)\0*.*\0" + IDS_PREVIOUS "< Previous" + IDS_NEXT "Next >" END Index: reactos/base/applications/fontview/lang/ro-RO.rc =================================================================== --- reactos/base/applications/fontview/lang/ro-RO.rc (revision 73479) +++ reactos/base/applications/fontview/lang/ro-RO.rc (working copy) @@ -12,9 +12,12 @@ 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 "Clasa de ferestre nu a putut fi inițializată." - IDS_FILTER_LIST "Toate fonturile recunoscute (*.ttf;*.fon;*.otf)\0*.ttf;*.fon;*.otf\0\ + IDS_FILTER_LIST "Toate fonturile recunoscute (*.ttf;*.ttc;*.fon;*.fnt;*.otf;*.otc)\0*.ttf;.ttc;*.fon;*.otf;*.otc\0\ Fonturi de tip TrueType (*.ttf)\0*.ttf\0\ -Fonturi de tip OpenType (*.otf)\0*.otf\0\ -Fișiere de tip Font (*.fon)\0*.fon\0\ +TrueType Font Collection (*.ttc)\0*.ttc\0\ +Fonturi de tip OpenType (*.otf;*.otc)\0*.otf;*.otc\0\ +Fișiere de tip Font (*.fon;*.fnt)\0*.fon;*.fnt\0\ Orice fișier (*.*)\0*.*\0" + IDS_PREVIOUS "< Previous" + IDS_NEXT "Next >" END Index: reactos/base/applications/fontview/lang/ru-RU.rc =================================================================== --- reactos/base/applications/fontview/lang/ru-RU.rc (revision 73479) +++ reactos/base/applications/fontview/lang/ru-RU.rc (working copy) @@ -12,9 +12,12 @@ IDS_ERROR_NOMEM "Недостаточно памяти для выполнения операции." IDS_ERROR_NOFONT "%1 не является корректным файлом шрифта." IDS_ERROR_NOCLASS "Невозможно инициализировать класс окна." - IDS_FILTER_LIST "Все поддерживаемые шрифты (*.ttf;*.fon;*.otf)\0*.ttf;*.fon;*.otf\0\ + IDS_FILTER_LIST "Все поддерживаемые шрифты (*.ttf;*.ttc;*.fon;*.fnt;*.otf;*.otc)\0*.ttf;*.ttc;*.fon;*.fnt;*.otf;*.otc\0\ TrueType шрифты (*.ttf)\0*.ttf\0\ -OpenType шрифты (*.otf)\0*.otf\0\ -Файлы шрифтов (*.fon)\0*.fon\0\ +TrueType Font Collection (*.ttc)\0*.ttc\0\ +OpenType шрифты (*.otf;*.otc)\0*.otf;*.otc\0\ +Файлы шрифтов (*.fon;*.fnt)\0*.fon;*.fnt\0\ Все файлы (*.*)\0*.*\0" + IDS_PREVIOUS "< Previous" + IDS_NEXT "Next >" END Index: reactos/base/applications/fontview/lang/sk-SK.rc =================================================================== --- reactos/base/applications/fontview/lang/sk-SK.rc (revision 73479) +++ reactos/base/applications/fontview/lang/sk-SK.rc (working copy) @@ -15,9 +15,12 @@ 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_FILTER_LIST "All Supported Fonts (*.ttf;*.fon;*.otf)\0*.ttf;*.fon;*.otf\0\ + IDS_FILTER_LIST "All Supported Fonts (*.ttf;*.ttc;*.fon;*.fnt;*.otf;*.otc)\0*.ttf;*.ttc;*.fon;*.fnt;*.otf;*.otc\0\ TrueType Font (*.ttf)\0*.ttf\0\ -OpenType Font (*.otf)\0*.otf\0\ -Font File (*.fon)\0*.fon\0\ +TrueType Font Collection (*.ttc)\0*.ttc\0\ +OpenType Font (*.otf;*.otc)\0*.otf;*.otc\0\ +Font File (*.fon;*.fnt)\0*.fon;*.fnt\0\ All Files (*.*)\0*.*\0" + IDS_PREVIOUS "< Previous" + IDS_NEXT "Next >" END Index: reactos/base/applications/fontview/lang/sq-AL.rc =================================================================== --- reactos/base/applications/fontview/lang/sq-AL.rc (revision 73479) +++ reactos/base/applications/fontview/lang/sq-AL.rc (working copy) @@ -14,9 +14,12 @@ IDS_ERROR_NOMEM "Nuk ka memorie të mjaftueshme për të përfunduar operacionin." IDS_ERROR_NOFONT "Dokumenti %1 nuk është një font i vlefshem." IDS_ERROR_NOCLASS "Nuk mund të fillojë dritaren e klases." - IDS_FILTER_LIST "All Supported Fonts (*.ttf;*.fon;*.otf)\0*.ttf;*.fon;*.otf\0\ + IDS_FILTER_LIST "All Supported Fonts (*.ttf;*.ttc;*.fon;*.fnt;*.otf;*.otc)\0*.ttf;*.ttc;*.fon;*.fnt;*.otf;*.otc\0\ TrueType Font (*.ttf)\0*.ttf\0\ -OpenType Font (*.otf)\0*.otf\0\ -Font File (*.fon)\0*.fon\0\ +TrueType Font Collection (*.ttc)\0*.ttc\0\ +OpenType Font (*.otf;*.otc)\0*.otf;*.otc\0\ +Font File (*.fon;*.fnt)\0*.fon;*.fnt\0\ All Files (*.*)\0*.*\0" + IDS_PREVIOUS "< Previous" + IDS_NEXT "Next >" END Index: reactos/base/applications/fontview/lang/sv-SE.rc =================================================================== --- reactos/base/applications/fontview/lang/sv-SE.rc (revision 73479) +++ reactos/base/applications/fontview/lang/sv-SE.rc (working copy) @@ -17,9 +17,12 @@ 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_FILTER_LIST "All Supported Fonts (*.ttf;*.fon;*.otf)\0*.ttf;*.fon;*.otf\0\ + IDS_FILTER_LIST "All Supported Fonts (*.ttf;*.ttc;*.fon;*.fnt;*.otf;*.otc)\0*.ttf;*.ttc;*.fon;*.fnt;*.otf;*.otc\0\ TrueType Font (*.ttf)\0*.ttf\0\ -OpenType Font (*.otf)\0*.otf\0\ -Font File (*.fon)\0*.fon\0\ +TrueType Font Collection (*.ttc)\0*.ttc\0\ +OpenType Font (*.otf;*.otc)\0*.otf;*.otc\0\ +Font File (*.fon;*.fnt)\0*.fon;*.fnt\0\ All Files (*.*)\0*.*\0" + IDS_PREVIOUS "< Previous" + IDS_NEXT "Next >" END Index: reactos/base/applications/fontview/lang/tr-TR.rc =================================================================== --- reactos/base/applications/fontview/lang/tr-TR.rc (revision 73479) +++ reactos/base/applications/fontview/lang/tr-TR.rc (working copy) @@ -11,9 +11,12 @@ IDS_ERROR_NOMEM "Bu işlemi bitirmek için yeterli bellek yok." IDS_ERROR_NOFONT "%1 kütüğü, geçerli bir yazı tipi kütüğü değil." IDS_ERROR_NOCLASS "Pencere sınıfı başlatılamadı." - IDS_FILTER_LIST "Tüm Desteklenen Yazı Tipleri (*.ttf, *.fon, *.otf)\0*.ttf;*.fon;*.otf\0\ + IDS_FILTER_LIST "Tüm Desteklenen Yazı Tipleri (*.ttf;*.ttc;*.fon;*.fnt;*.otf;*.otc)\0*.ttf;*.ttc;*.fon;*.fnt;*.otf;*.otc\0\ TrueType Yazı Tipi (*.ttf)\0*.ttf\0\ -OpenType Yazı Tipi (*.otf)\0*.otf\0\ -Yazı Tipi Kütüğü (*.fon)\0*.fon\0\ +TrueType Font Collection (*.ttc)\0*.ttc\0\ +OpenType Yazı Tipi (*.otf;*.otc)\0*.otf;*.otc\0\ +Yazı Tipi Kütüğü (*.fon;*.fnt)\0*.fon;*.fnt\0\ Tüm Kütükler (*.*)\0*.*\0" + IDS_PREVIOUS "< Previous" + IDS_NEXT "Next >" END Index: reactos/base/applications/fontview/lang/uk-UA.rc =================================================================== --- reactos/base/applications/fontview/lang/uk-UA.rc (revision 73479) +++ reactos/base/applications/fontview/lang/uk-UA.rc (working copy) @@ -18,9 +18,12 @@ IDS_ERROR_NOMEM "Недостатньо пам'яті для завершення операції." IDS_ERROR_NOFONT "Файл %1 не є коректним файлом шрифту." IDS_ERROR_NOCLASS "Неможливо ініціалізувати віконний клас." - IDS_FILTER_LIST "All Supported Fonts (*.ttf;*.fon;*.otf)\0*.ttf;*.fon;*.otf\0\ + IDS_FILTER_LIST "All Supported Fonts (*.ttf;*.ttc;*.fon;*.fnt;*.otf;*.otc)\0*.ttf;*.ttc;*.fon;*.fnt;*.otf;*.otc\0\ TrueType Font (*.ttf)\0*.ttf\0\ -OpenType Font (*.otf)\0*.otf\0\ -Font File (*.fon)\0*.fon\0\ +TrueType Font Collection (*.ttc)\0*.ttc\0\ +OpenType Font (*.otf;*.otc)\0*.otf;*.otc\0\ +Font File (*.fon;*.fnt)\0*.fon;*.fnt\0\ All Files (*.*)\0*.*\0" + IDS_PREVIOUS "< Previous" + IDS_NEXT "Next >" END Index: reactos/base/applications/fontview/lang/zh-CN.rc =================================================================== --- reactos/base/applications/fontview/lang/zh-CN.rc (revision 73479) +++ reactos/base/applications/fontview/lang/zh-CN.rc (working copy) @@ -18,9 +18,12 @@ IDS_ERROR_NOMEM "没有足够的内存来完成操作。" IDS_ERROR_NOFONT "%1不是一个有效的字体档案。" IDS_ERROR_NOCLASS "窗口无法初始化。" - IDS_FILTER_LIST "支持所有的字体 (*.ttf;*.fon;*.otf)\0*.ttf;*.fon;*.otf\0\ + IDS_FILTER_LIST "支持所有的字体 (*.ttf;*.ttc;*.fon;*.fnt;*.otf;*.otc)\0*.ttf;*.ttc;*.fon;*.fnt;*.otf;*.otc\0\ TrueType 字体 (*.ttf)\0*.ttf\0\ -OpenType 字体 (*.otf)\0*.otf\0\ -字体文件 (*.fon)\0*.fon\0\ +TrueType Font Collection (*.ttc)\0*.ttc\0\ +OpenType 字体 (*.otf;*.otc)\0*.otf;*.otc\0\ +字体文件 (*.fon;*.fnt)\0*.fon;*.fnt\0\ 所有文件 (*.*)\0*.*\0" + IDS_PREVIOUS "< Previous" + IDS_NEXT "Next >" END Index: reactos/base/applications/fontview/lang/zh-TW.rc =================================================================== --- reactos/base/applications/fontview/lang/zh-TW.rc (revision 73479) +++ reactos/base/applications/fontview/lang/zh-TW.rc (working copy) @@ -18,9 +18,12 @@ IDS_ERROR_NOMEM "沒有足夠的記憶體來完成操作。" IDS_ERROR_NOFONT "%1 不是一個有效的字體檔案。" IDS_ERROR_NOCLASS "窗口無法初始化。" - IDS_FILTER_LIST "所有支援的字體 (*.ttf;*.fon;*.otf)\0*.ttf;*.fon;*.otf\0\ + IDS_FILTER_LIST "所有支援的字體 (*.ttf;*.ttc;*.fon;*.fnt;*.otf;*.otc)\0*.ttf;*.ttc;*.fon;*.fnt;*.otf;*.otc\0\ TrueType 字體 (*.ttf)\0*.ttf\0\ -OpenType 字體 (*.otf)\0*.otf\0\ -字體檔 (*.fon)\0*.fon\0\ +TrueType Font Collection (*.ttc)\0*.ttc\0\ +OpenType 字體 (*.otf;*.otc)\0*.otf;*.otc\0\ +字體檔 (*.fon;*.fnt)\0*.fon;*.fnt\0\ 所有檔 (*.*)\0*.*\0" + IDS_PREVIOUS "< Previous" + IDS_NEXT "Next >" END Index: reactos/base/applications/fontview/resource.h =================================================================== --- reactos/base/applications/fontview/resource.h (revision 73479) +++ reactos/base/applications/fontview/resource.h (working copy) @@ -15,4 +15,7 @@ #define IDS_CHARSUPPER 701 #define IDS_SPECIALCHARS 702 +#define IDS_PREVIOUS 800 +#define IDS_NEXT 801 + #define IDI_TT 800