mirror of
https://github.com/reactos/reactos.git
synced 2025-02-20 15:35:04 +00:00
[CHARMAP] Functionality Improvements and Bug Fixes (#2560)
- Resize the window slightly when compiled with REMOVE_ADVANCED to avoid deadspace at the bottom of the window. - Skip over the non-printable characters by starting with character ' ' + 1. - Instead of iterating over every cell, simply compute the cell x and y using the CellSize. - Modify behaviour of charmap to allow large character render on mouse move, only hiding the larger character on double click. - Simplify math for moving window to be on desktop. Added FIXME to highlight this doesn't work well on multi-monitor setups. Changed xPos and yPos to LONG since negative numbers are valid on multi-monitor setups. - Do not draw invalid glyphs on the map (can happen when switching fonts or filtering existing font). - Do not allow mouse-over of invalid glyphs. - Fix bug that caused the Help button to remain enabled as it was being modified before it was even created. - Do a better job at finding the correct glyph under the mouse. - Ensure the active cell is cleared correctly. - Invalidate the rect around the previously active cell to ensure it gets redrawn as inactive. - Fix bug from CORE-10518 (initial active cell was not being invalidated on scroll). - Do not try to copy a character to the output if there is no active cell selected. - Populate the advanced portion of the screen with several built-in code pages (the list is hardcoded so that we don't enumerate everything). - Add functionality to filter the character map by a code page (called a character set in this program). - Some fonts list 0x0000 as drawable, even when it isn't, so ignore any valid glyphs that contain it.
This commit is contained in:
parent
31e00140d3
commit
99dd292553
32 changed files with 241 additions and 20 deletions
|
@ -13,7 +13,7 @@
|
|||
#include <richedit.h>
|
||||
#include <winnls.h>
|
||||
|
||||
#define REMOVE_ADVANCED
|
||||
//#define REMOVE_ADVANCED
|
||||
|
||||
#define ID_ABOUT 0x1
|
||||
|
||||
|
@ -25,6 +25,55 @@ HICON hSmIcon;
|
|||
HICON hBgIcon;
|
||||
SETTINGS Settings;
|
||||
|
||||
static
|
||||
VOID
|
||||
FillCharacterSetComboList(HWND hwndCombo)
|
||||
{
|
||||
WCHAR szCharSetText[256];
|
||||
LPWSTR trimmedName;
|
||||
CPINFOEXW cpInfo;
|
||||
INT i;
|
||||
|
||||
if (LoadStringW(hInstance, IDS_UNICODE, szCharSetText, SIZEOF(szCharSetText)))
|
||||
{
|
||||
SendMessageW(hwndCombo,
|
||||
CB_ADDSTRING,
|
||||
0,
|
||||
(LPARAM)szCharSetText);
|
||||
}
|
||||
|
||||
for (i = 0; i < SIZEOF(codePages); i++)
|
||||
{
|
||||
if (GetCPInfoExW(codePages[i], 0, &cpInfo))
|
||||
{
|
||||
trimmedName = wcschr(cpInfo.CodePageName, L'(');
|
||||
if (!trimmedName)
|
||||
trimmedName = cpInfo.CodePageName;
|
||||
|
||||
SendMessageW(hwndCombo,
|
||||
CB_ADDSTRING,
|
||||
0,
|
||||
(LPARAM)trimmedName);
|
||||
}
|
||||
}
|
||||
|
||||
SendMessageW(hwndCombo, CB_SETCURSEL, 0, 0);
|
||||
}
|
||||
|
||||
static
|
||||
VOID
|
||||
FillGroupByComboList(HWND hwndCombo)
|
||||
{
|
||||
WCHAR szAllText[256];
|
||||
|
||||
if (LoadStringW(hInstance, IDS_ALL, szAllText, SIZEOF(szAllText)))
|
||||
{
|
||||
SendMessageW(hwndCombo, CB_ADDSTRING, 0, (LPARAM)szAllText);
|
||||
}
|
||||
|
||||
SendMessageW(hwndCombo, CB_SETCURSEL, 0, 0);
|
||||
}
|
||||
|
||||
/* Font-enumeration callback */
|
||||
static
|
||||
int
|
||||
|
@ -283,7 +332,7 @@ ChangeView(HWND hWnd)
|
|||
RECT rcPanelInt;
|
||||
RECT rcStatus;
|
||||
UINT DeX, DeY;
|
||||
UINT xPos, yPos;
|
||||
LONG xPos, yPos;
|
||||
UINT Width, Height;
|
||||
UINT DeskTopWidth, DeskTopHeight;
|
||||
#ifdef REMOVE_ADVANCED
|
||||
|
@ -325,11 +374,12 @@ ChangeView(HWND hWnd)
|
|||
Shrink the window height a bit here to accomodate for that lost control. */
|
||||
Height = rcCharmap.bottom + rcCopy.bottom + 10;
|
||||
#endif
|
||||
// FIXME: This fails on multi monitor setups
|
||||
if ((xPos + Width) > DeskTopWidth)
|
||||
xPos += DeskTopWidth - (xPos + Width);
|
||||
xPos = DeskTopWidth - Width;
|
||||
|
||||
if ((yPos + Height) > DeskTopHeight)
|
||||
yPos += DeskTopHeight - (yPos + Height);
|
||||
yPos = DeskTopHeight - Height;
|
||||
|
||||
MoveWindow(hWnd,
|
||||
xPos, yPos,
|
||||
|
@ -438,6 +488,26 @@ AdvancedDlgProc(HWND hDlg,
|
|||
case WM_INITDIALOG:
|
||||
return TRUE;
|
||||
|
||||
case WM_COMMAND:
|
||||
{
|
||||
switch (LOWORD(wParam))
|
||||
{
|
||||
case IDC_COMBO_CHARSET:
|
||||
if (HIWORD(wParam) == CBN_SELCHANGE)
|
||||
{
|
||||
INT idx = (INT)SendMessageW((HWND)lParam,
|
||||
CB_GETCURSEL,
|
||||
0, 0);
|
||||
SendMessageW(GetDlgItem(hCharmapDlg, IDC_FONTMAP),
|
||||
FM_SETCHARMAP,
|
||||
idx, 0);
|
||||
|
||||
EnableWindow(GetDlgItem(hAdvancedDlg, IDC_EDIT_UNICODE), idx == 0);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
default:
|
||||
return FALSE;
|
||||
}
|
||||
|
@ -456,11 +526,21 @@ PanelOnCreate(HWND hWnd, WPARAM wParam, LPARAM lParam)
|
|||
MAKEINTRESOURCE(IDD_CHARMAP),
|
||||
hWnd,
|
||||
CharMapDlgProc);
|
||||
|
||||
// For now, the Help push button is disabled because of lacking of HTML Help support
|
||||
EnableWindow(GetDlgItem(hCharmapDlg, IDC_CMHELP), FALSE);
|
||||
|
||||
#ifndef REMOVE_ADVANCED
|
||||
hAdvancedDlg = CreateDialog(hInstance,
|
||||
MAKEINTRESOURCE(IDD_ADVANCED),
|
||||
hWnd,
|
||||
AdvancedDlgProc);
|
||||
|
||||
FillCharacterSetComboList(GetDlgItem(hAdvancedDlg, IDC_COMBO_CHARSET));
|
||||
|
||||
FillGroupByComboList(GetDlgItem(hAdvancedDlg, IDC_COMBO_GROUPBY));
|
||||
EnableWindow(GetDlgItem(hAdvancedDlg, IDC_COMBO_GROUPBY), FALSE); // FIXME: Implement
|
||||
EnableWindow(GetDlgItem(hAdvancedDlg, IDC_BUTTON_SEARCH), FALSE); // FIXME: Implement
|
||||
#endif
|
||||
hStatusWnd = CreateWindow(STATUSCLASSNAME,
|
||||
NULL,
|
||||
|
@ -495,8 +575,6 @@ PanelWndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam)
|
|||
{
|
||||
switch (msg) {
|
||||
case WM_CREATE:
|
||||
// For now, the Help push button is disabled because of lacking of HTML Help support
|
||||
EnableWindow(GetDlgItem(hWnd, IDC_CMHELP), FALSE);
|
||||
return PanelOnCreate(hWnd, wParam, lParam);
|
||||
|
||||
case WM_CLOSE:
|
||||
|
|
|
@ -54,4 +54,6 @@ BEGIN
|
|||
IDS_LICENSE "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.\r\n\r\nThis 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.\r\n\r\nYou should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA."
|
||||
IDS_ABOUT "&За..."
|
||||
IDS_TITLE "Character Map"
|
||||
IDS_UNICODE "Unicode"
|
||||
IDS_ALL "All"
|
||||
END
|
||||
|
|
|
@ -51,4 +51,6 @@ BEGIN
|
|||
IDS_LICENSE "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.\r\n\r\nThis 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.\r\n\r\nYou should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA."
|
||||
IDS_ABOUT "&En quant a..."
|
||||
IDS_TITLE "Character Map"
|
||||
IDS_UNICODE "Unicode"
|
||||
IDS_ALL "All"
|
||||
END
|
||||
|
|
|
@ -56,4 +56,6 @@ BEGIN
|
|||
IDS_LICENSE "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.\r\n\r\nThis 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.\r\n\r\nYou should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA."
|
||||
IDS_ABOUT "&O programu..."
|
||||
IDS_TITLE "Mapa znaků"
|
||||
IDS_UNICODE "Unicode"
|
||||
IDS_ALL "All"
|
||||
END
|
||||
|
|
|
@ -51,4 +51,6 @@ BEGIN
|
|||
IDS_LICENSE "Dieses Programm ist kostenlos; Sie können es frei verteilen mit od. ohne Änderungen unter der GNU Lesser General Public License wie es von der Free Software Foundation veröffentlicht wurde; entweder Version 2.1 der Lizenz, oder eine spätere Version (ihrer Wahl).\r\n\r\nThis 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.\r\n\r\nYou should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA."
|
||||
IDS_ABOUT "Ü&ber..."
|
||||
IDS_TITLE "Zeichentabelle"
|
||||
IDS_UNICODE "Unicode"
|
||||
IDS_ALL "All"
|
||||
END
|
||||
|
|
|
@ -51,4 +51,6 @@ BEGIN
|
|||
IDS_LICENSE "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.\r\n\r\nThis 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.\r\n\r\nYou should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA."
|
||||
IDS_ABOUT "&Πληροφορίες..."
|
||||
IDS_TITLE "Character Map"
|
||||
IDS_UNICODE "Unicode"
|
||||
IDS_ALL "All"
|
||||
END
|
||||
|
|
|
@ -51,4 +51,6 @@ BEGIN
|
|||
IDS_LICENSE "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.\r\n\r\nThis 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.\r\n\r\nYou should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA."
|
||||
IDS_ABOUT "A&bout..."
|
||||
IDS_TITLE "Character Map"
|
||||
IDS_UNICODE "Unicode"
|
||||
IDS_ALL "All"
|
||||
END
|
||||
|
|
|
@ -54,4 +54,6 @@ BEGIN
|
|||
IDS_LICENSE "Este programa es software libre; puedes redistribuirlo y/o modificarlo bajo los términos de la GNU General Public License tal y como se publica por la Free Software Foundation; ya sea la versión 2 de la Licencia, o (bajo tu discreción) cualquier versión posterior.\r\n\r\nEste programa se distribuye con el fin de ser útil, pero viene SIN NINGUNA GARANTÍA; sin tan siquiera la garantía implícita de COMERCIALIZACIÓN o la de IDONEIDAD PARA UN PROPÓSITO CONCRETO. Para más información lee la GNU General Public License.\r\n\r\nDeberías de haber recibido una copia de la GNU General Public License con el programa; si no, puedes escribir a la Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 EE.UU."
|
||||
IDS_ABOUT "&Acerca de ..."
|
||||
IDS_TITLE "Mapa de caracteres"
|
||||
IDS_UNICODE "Unicode"
|
||||
IDS_ALL "All"
|
||||
END
|
||||
|
|
|
@ -51,4 +51,6 @@ BEGIN
|
|||
IDS_LICENSE "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.\r\n\r\nThis 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.\r\n\r\nYou should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA."
|
||||
IDS_ABOUT "T&eave..."
|
||||
IDS_TITLE "Märgistik"
|
||||
IDS_UNICODE "Unicode"
|
||||
IDS_ALL "All"
|
||||
END
|
||||
|
|
|
@ -51,4 +51,6 @@ BEGIN
|
|||
IDS_LICENSE "Ce programme est un logiciel libre ; vous pouvez le redistribuer et/ou le modifier tout en respectant les termes de la ""GNU General Public License"" publiée par la Free Software Foundation; dans sa version 2 (ou selon votre préférence) toute version ultérieure.\r\n\r\nCe programme est distribué dans l'espoir qu'il sera utile, cependant SANS GARANTIE D'AUCUNE SORTE ; sans même une garantie implicite de COMMERCIABILITÉ ou DE CONFORMITÉ À UNE UTILISATION PARTICULIÈRE. \r\n\r\nVoir la Licence Publique Générale GNU pour plus de détails. Vous devriez avoir reçu un exemplaire de la Licence Publique Générale GNU avec ce programme ; si ce n'est pas le cas, écrivez à la Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA."
|
||||
IDS_ABOUT "À propos..."
|
||||
IDS_TITLE "Table des Caractères"
|
||||
IDS_UNICODE "Unicode"
|
||||
IDS_ALL "Tous"
|
||||
END
|
||||
|
|
|
@ -55,4 +55,6 @@ BEGIN
|
|||
IDS_LICENSE "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.\r\n\r\nThis 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.\r\n\r\nYou should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA."
|
||||
IDS_ABOUT "&אודות..."
|
||||
IDS_TITLE "מפת תווים"
|
||||
IDS_UNICODE "Unicode"
|
||||
IDS_ALL "All"
|
||||
END
|
||||
|
|
|
@ -51,4 +51,6 @@ BEGIN
|
|||
IDS_LICENSE "Program ini adalah software bebas; anda dapat mendistribusikan dan/atau mengubahnya di bawah term GNU General Public License seperti dipublikasikan oleh Free Software Foundation; baik Lisensi versi 2, atau (menurut opini anda) setiap versi berikutnya.\r\n\r\nProgram ini didistribusikan dengan harapan ia akan berguna, tetapi TANPA JAMINAN APAPUN; bahkan tanpa jaminan berarti dari MERCANTABILITAS atau KECUKUPAN UNTUK KEPERLUAN TERTENTU. Lihat GNU General Public License untuk lebih jelasnya.\r\n\r\nAnda seharusnya menerima duplikat GNU General Public License bersamaan dengan program ini; jika tidak, tulis ke Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA."
|
||||
IDS_ABOUT "Te&ntang..."
|
||||
IDS_TITLE "Character Map"
|
||||
IDS_UNICODE "Unicode"
|
||||
IDS_ALL "All"
|
||||
END
|
||||
|
|
|
@ -51,4 +51,6 @@ BEGIN
|
|||
IDS_LICENSE "Questo programma è software libero; può redistribuirlo e/o modificarlo sotto\ni termini della licenza pubblica GNU come pubblicata dalla Free Software Foundation; sia la versione 2 sia una versione successiva (a sua scelta).\r\n\r\nQuesto programma è distribuito\nnella speranza che sia utile, ma SENZA ALCUNA GARANZIA; senza neanche la garanzia implicita\ndi NEGOZIABILITA' o APPLICABILITA' per un particolare scopo. Si veda la licenza generale pubblica GNU per maggiori dettagli.\r\n\r\nDovrebbe aver ricevuto una copia assieme a questo programma; se così non fosse, scriva alla Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA."
|
||||
IDS_ABOUT "&Informazioni su..."
|
||||
IDS_TITLE "Mappa caratteri"
|
||||
IDS_UNICODE "Unicode"
|
||||
IDS_ALL "All"
|
||||
END
|
||||
|
|
|
@ -51,4 +51,6 @@ BEGIN
|
|||
IDS_LICENSE "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.\r\n\r\nThis 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.\r\n\r\nYou should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA."
|
||||
IDS_ABOUT "バージョン情報(&B)..."
|
||||
IDS_TITLE "Character Map"
|
||||
IDS_UNICODE "Unicode"
|
||||
IDS_ALL "All"
|
||||
END
|
||||
|
|
|
@ -55,4 +55,6 @@ BEGIN
|
|||
IDS_LICENSE "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.\r\n\r\nThis 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.\r\n\r\nYou should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA."
|
||||
IDS_ABOUT "정보(&A)"
|
||||
IDS_TITLE "Character Map"
|
||||
IDS_UNICODE "Unicode"
|
||||
IDS_ALL "All"
|
||||
END
|
||||
|
|
|
@ -60,4 +60,6 @@ BEGIN
|
|||
IDS_LICENSE "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.\r\n\r\nThis 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.\r\n\r\nYou should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA."
|
||||
IDS_ABOUT "&Apie..."
|
||||
IDS_TITLE "Character Map"
|
||||
IDS_UNICODE "Unicode"
|
||||
IDS_ALL "All"
|
||||
END
|
||||
|
|
|
@ -51,4 +51,6 @@ BEGIN
|
|||
IDS_LICENSE "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.\r\n\r\nThis 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.\r\n\r\nYou should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA."
|
||||
IDS_ABOUT "Over..."
|
||||
IDS_TITLE "Character Map"
|
||||
IDS_UNICODE "Unicode"
|
||||
IDS_ALL "All"
|
||||
END
|
||||
|
|
|
@ -51,4 +51,6 @@ BEGIN
|
|||
IDS_LICENSE "Dette programmet er gratis programvare; du kan distribuere det og/eller endre det under betingelsene av GNU General Public License som er utgitt av Free Software Foundation; version 2 av lisensen, eller (etter din mening) alle senere versjoner.\r\n\r\nDette programmet er utgitt i håp for at det skal kunne brukes, men DET ER INGEN GARANTIER; uten heller forutsatt garantier av SALGBARHET eller SIKKETHET FOR EN ENKELTHET FORMÅL. Se på GNU General Public Lisensen for mere detaljer.\r\n\r\nDu skal ha motatt en kopi av GNU General Public Lisensen sammen med denne programmet; hvis du ikke har motatt det, skriv til Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA."
|
||||
IDS_ABOUT "O&m..."
|
||||
IDS_TITLE "Character Map"
|
||||
IDS_UNICODE "Unicode"
|
||||
IDS_ALL "All"
|
||||
END
|
||||
|
|
|
@ -60,4 +60,6 @@ BEGIN
|
|||
IDS_LICENSE "Niniejszy program jest wolnym oprogramowaniem; możesz go rozprowadzać dalej i/lub modyfikować na warunkach Powszechnej Licencji Publicznej GNU, wydanej przez Fundację Wolnego Oprogramowania - według wersji 2 tej Licencji lub (według twojego wyboru) którejś z późniejszych wersji.\r\n\r\nNiniejszy program rozpowszechniany jest z nadzieją, iż będzie on użyteczny - jednak BEZ JAKIEJKOLWIEK GWARANCJI, nawet domyślnej gwarancji PRZYDATNOŚCI HANDLOWEJ albo PRZYDATNOŚCI DO OKRESLONYCH ZASTOSOWAŃ. W celu uzyskania bliższych informacji sięgnij do Powszechnej Licencji Publicznej GNU.\r\n\r\nZ pewnością wraz z niniejszym programem otrzymałeś też egzemplarz Powszechnej Licencji Publicznej GNU (GNU General Public License); jeśli nie - napisz do Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA."
|
||||
IDS_ABOUT "&O programie..."
|
||||
IDS_TITLE "Tablica znaków"
|
||||
IDS_UNICODE "Unicode"
|
||||
IDS_ALL "All"
|
||||
END
|
||||
|
|
|
@ -51,4 +51,6 @@ BEGIN
|
|||
IDS_LICENSE "Este programa é software livre; você pode redistribuí-lo e/ou modificá-lo sob os termos da GNU General Public License conforme publicada pela Free Software Foundation; quer a versão 2 da licença, ou (conforme você escolha) qualquer versão posterior.\r\n\r\nEste programa é distribuído com a esperança de que seja útil, mas SEM QUALQUER GARANTIA; mesmo sem a garantia implícita de MERCANTIBILIDADE OU ADEQUAÇÃO A UM DETERMINADO PROPÓSITO. Para mais detalhes, veja a GNU General Public License.\r\n\r\nVocê deve ter recebido uma cópia da GNU General Public License juntamente com este programa; caso contrário, escreva para a Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA."
|
||||
IDS_ABOUT "So&bre..."
|
||||
IDS_TITLE "Mapa de Caracteres"
|
||||
IDS_UNICODE "Unicode"
|
||||
IDS_ALL "All"
|
||||
END
|
||||
|
|
|
@ -57,4 +57,6 @@ BEGIN
|
|||
IDS_LICENSE "Această aplicație este publică; fiind permisă modificarea și/sau (re)distribuția sa în termenii Licenței Publice Generale GNU publicată de Free Software Foundation; sau versiunea 2 a Licenței, sau (la alegere) a oricărei versiuni ulterioare.\r\n\r\nAceastă aplicație este distribuită doar în speranța de a fi utilă, FĂRĂ însă NICI O GARANȚIE; nici măcar cu garanția implicită a VANDABILITĂȚII sau a UTILITĂȚII ÎNTR-UN SCOP ANUME. Pentru mai multe detalii consultați Licența Publică Generală GNU.\r\n\r\nPuteți vedea această licență aici:\r\nhttp://www.gnu.org/licenses/gpl.html\r\n\r\nDe asemenea puteți consulta traduceri neoficiale ale acestei licențe aici:\r\nhttp://www.gnu.org/licenses/translations.html"
|
||||
IDS_ABOUT "&Despre…"
|
||||
IDS_TITLE "Hartă de caractere"
|
||||
IDS_UNICODE "Unicode"
|
||||
IDS_ALL "All"
|
||||
END
|
||||
|
|
|
@ -53,4 +53,6 @@ BEGIN
|
|||
IDS_LICENSE "Эта программа является свободно распространяемой; Вы можете распространять ее повторно и (или) изменять, соблюдая условия Открытого лицензионного соглашения GNU, опубликованного Фондом свободно распространяемого программного обеспечения; либо редакции 2 Соглашения, либо (на ваше усмотрение) любой редакции, выпущенной позже.\r\n\r\nЭта программа распространяется в надежде на то, что она окажется полезной, но БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ, включая подразумеваемую гарантию КАЧЕСТВА либо ПРИГОДНОСТИ ДЛЯ ОПРЕДЕЛЕННЫХ ЦЕЛЕЙ. Подробности содержатся в Открытом лицензионном соглашении GNU.\r\n\r\nВместе с этой программой должен распространяться экземпляр Открытого лицензионного соглашения GNU, если он отсутствует, сообщите об этом в Фонд свободно распространяемого программного обеспечения (Free Software Foundation, Inc.), 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA."
|
||||
IDS_ABOUT "&О программе..."
|
||||
IDS_TITLE "Таблица символов"
|
||||
IDS_UNICODE "Unicode"
|
||||
IDS_ALL "All"
|
||||
END
|
||||
|
|
|
@ -60,4 +60,6 @@ BEGIN
|
|||
IDS_LICENSE "Tento program je voľný softvér; môžete ho šíriť a/alebo modifikovať podľa podmienok GNU Všeobecnej verejnej licencie (GNU General Public License) ako bola zverejnená nadáciou Free Software Foundation; buď verzie 2 tejto licencie, alebo (podľa Vášho uváženia) niektorej neskoršej verzie.\r\n\r\nTento program je distribuovaný v nádeji, že bude užitočný, avšak BEZ AKEJKOĽVEK ZÁRUKY; rovnako bez záruky PREDAJNOSTI alebo VHODNOSTI PRE URČITÝ ÚČEL. Pre viac detailov si pozrite GNU Všeobecnú verejnú licenciu (GNU General Public License).\r\n\r\nKópiu Všeobecnej verejnej licencie GNU ste mali dostať spolu s týmto programom; ak nie, napíšte si o ňu na Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA."
|
||||
IDS_ABOUT "Č&o je Mapa znakov"
|
||||
IDS_TITLE "Character Map"
|
||||
IDS_UNICODE "Unicode"
|
||||
IDS_ALL "All"
|
||||
END
|
||||
|
|
|
@ -55,4 +55,6 @@ BEGIN
|
|||
IDS_LICENSE "Ky program eshte falas; ju mund ta shperndani ose modifikoni nen termat e liçenses publike te GNU nga Free Software Foundation; ose versionin 2 te Liçenses, ose (opsionet tend) versionet me te reja.\r\n\r\nKy program shperndahet me shpresen qe do te jete i nevojshem, POR PA ASNJE GARANCI; madje dhe pa nënkuptimin e garancisë së tregtimit apo përshtatshmerise për qëllim të veçantë. Shiko liçensen publike te GNU per me shume detaje.\r\n\r\nJu duhet te jeni paisur me nje kopje te liçenses GNU perkrah ketij programi; nese jo, shkruani Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA."
|
||||
IDS_ABOUT "R&reth..."
|
||||
IDS_TITLE "Karakter Map"
|
||||
IDS_UNICODE "Unicode"
|
||||
IDS_ALL "All"
|
||||
END
|
||||
|
|
|
@ -58,4 +58,6 @@ BEGIN
|
|||
IDS_LICENSE "Detta programmet är fri programvara; du kan distribuera det och/eller ändra det under villkoren enligt GNU General Public License som är utgivet av Free Software Foundation; version 2, eller (om du så önskar) alla senare versioner.\r\n\r\nDette programmet er utgivet i hopp om att det skall kunne användas, men DET FINNS INGA GARANTIER; även utan underförstådd garanti om SÄLJBARHET eller LÄMPLIGHET FÖR ETT VISST ÄNDAMÅL. Se på GNU General Public Licensen för mer detaljer.\r\n\r\nDu skall ha motagit en kopia av GNU General Public Licensen tillsammans med detta programmet; om du inte har fått det, skriv til Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA."
|
||||
IDS_ABOUT "O&m..."
|
||||
IDS_TITLE "Character Map"
|
||||
IDS_UNICODE "Unicode"
|
||||
IDS_ALL "All"
|
||||
END
|
||||
|
|
|
@ -53,4 +53,6 @@ BEGIN
|
|||
IDS_LICENSE "ÖNEMLİ: Aşağıdaki metin, özgün metnin resmî olmayan çevirisidir. Çeviri metniyle özgün metin arasında ayrım olabilir. Özgün metin, çeviri metninin altındadır.\r\n\r\n***\r\n\r\nBu izlence özgür yazılımdır; bunu, Özgür Yazılım Vakfı'nın yayımladığı GNU Umûmî Kamu Ruhsatı'nın, 2. sürümünün ya da daha sonraki bir sürümünün (Orası size bağlı.) şartları altında yeniden dağıtabilir veyâ değiştirebilirsiniz.\r\n\r\nBu izlence, kullanışlı olabileceği beklentisiyle dağıtılmıştır ancak bu izlencenin HİÇBİR GÜVENCESİ YOKTUR, SATILABİLİRLİĞİN ve BELİRLİ BİR AMACA UYGUNLUĞUN demek istenilen güvencesi bile. Daha çok bilgi için GNU Umûmî Kamu Ruhsatı'na bakınız.\r\n\r\nBu izlenceyle birlikte GNU Umûmî Kamu Ruhsatı'nın bir kopyasını almış olmalısınız, eğer yoksa Özgür Yazılım Vakfı AŞ'ye (51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 ABD) yazınız.\r\n\r\n***\r\n\r\nThis 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.\r\n\r\nThis 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.\r\n\r\nYou should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA."
|
||||
IDS_ABOUT "&Üzerine..."
|
||||
IDS_TITLE "Damga Eşlemi"
|
||||
IDS_UNICODE "Unicode"
|
||||
IDS_ALL "All"
|
||||
END
|
||||
|
|
|
@ -59,4 +59,6 @@ BEGIN
|
|||
IDS_LICENSE "Таблиця символів - вільне програмне забезпечення; Ви можете розповсюджувати її та змінювати, дотримуючись умови Відкритої ліцензійної угоди GNU, опублікованої Фондом вільного програмного забезпечення; або редакції 2 Угоди, або будь-якої редакції, випущеної пізніше.\r\n\r\nЦя програма розповсюджується в надії на те, що вона виявиться корисною, але БЕЗ БУДЬ-ЯКИХ ГАРАНТІЙ, включаючи УЯВНОЮ ГАРАНТІЄЮ ЯКОСТІ або ПРИДАТНОСТІ для певних цілей. Подробиці містяться у Відкритій ліцензійній угоді GNU.\r\n\r\nРазом з цією програмою повинен поширюватися примірник Відкритої ліцензійної угоди GNU. Якщо він відсутній, повідомте про це в Фонд вільного програмного забезпечення (Free Software Foundation, Inc.), 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA."
|
||||
IDS_ABOUT "&Про програму..."
|
||||
IDS_TITLE "Таблиця Cимволів"
|
||||
IDS_UNICODE "Unicode"
|
||||
IDS_ALL "All"
|
||||
END
|
||||
|
|
|
@ -59,4 +59,6 @@ BEGIN
|
|||
IDS_LICENSE "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.\r\n\r\nThis 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.\r\n\r\nYou 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."
|
||||
IDS_ABOUT "关于(&A)..."
|
||||
IDS_TITLE "字符映射表"
|
||||
IDS_UNICODE "Unicode"
|
||||
IDS_ALL "All"
|
||||
END
|
||||
|
|
|
@ -59,4 +59,6 @@ BEGIN
|
|||
IDS_LICENSE "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.\r\n\r\nThis 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.\r\n\r\nYou should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA."
|
||||
IDS_ABOUT "關於(&A)..."
|
||||
IDS_TITLE "字元對應表"
|
||||
IDS_UNICODE "Unicode"
|
||||
IDS_ALL "All"
|
||||
END
|
||||
|
|
|
@ -10,6 +10,7 @@
|
|||
#include "precomp.h"
|
||||
|
||||
#include <stdlib.h>
|
||||
#include <winnls.h>
|
||||
|
||||
static const WCHAR szMapWndClass[] = L"FontMapWnd";
|
||||
static const WCHAR szLrgCellWndClass[] = L"LrgCellWnd";
|
||||
|
@ -40,6 +41,7 @@ SetGrid(PMAP infoPtr)
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
static
|
||||
VOID
|
||||
DrawActiveCell(PMAP infoPtr,
|
||||
|
@ -111,6 +113,8 @@ FillGrid(PMAP infoPtr,
|
|||
for (y = 0; y < YCELLS; y++)
|
||||
for (x = 0; x < XCELLS; x++)
|
||||
{
|
||||
if (i >= infoPtr->NumValidGlyphs) break;
|
||||
|
||||
ch = (WCHAR)infoPtr->ValidGlyphs[i];
|
||||
|
||||
Cell = &infoPtr->Cells[y][x];
|
||||
|
@ -206,6 +210,38 @@ MoveLargeCell(PMAP infoPtr)
|
|||
}
|
||||
|
||||
|
||||
static
|
||||
VOID
|
||||
GetPossibleCharacters(WCHAR* ch, INT chLen, INT codePageIdx)
|
||||
{
|
||||
INT i, j;
|
||||
|
||||
memset(ch, 0, sizeof(ch[0]) * chLen);
|
||||
|
||||
if (codePageIdx <= 0 || codePageIdx > SIZEOF(codePages))
|
||||
{
|
||||
/* this is unicode, so just load up the first MAX_GLYPHS characters
|
||||
start at 0x21 to bypass whitespace characters */
|
||||
INT len = min(MAX_GLYPHS, chLen);
|
||||
for (i = 0x21, j = 0; i < len; i++)
|
||||
ch[j++] = (WCHAR)i;
|
||||
}
|
||||
else
|
||||
{
|
||||
/* This is a codepage, so use NLS to translate the first 256 characters */
|
||||
CHAR multiByteString[256] = { 0 };
|
||||
for (i = 0x21; i < SIZEOF(multiByteString); i++)
|
||||
multiByteString[i] = (CHAR)i;
|
||||
|
||||
if (!MultiByteToWideChar(codePages[codePageIdx - 1], 0, multiByteString, sizeof(multiByteString), ch, chLen))
|
||||
{
|
||||
/* Failed for some reason, so clear the array */
|
||||
memset(ch, 0, sizeof(ch[0]) * chLen);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
static
|
||||
VOID
|
||||
SetFont(PMAP infoPtr,
|
||||
|
@ -230,9 +266,9 @@ SetFont(PMAP infoPtr,
|
|||
infoPtr->CurrentFont.lfHeight = GetDeviceCaps(hdc, LOGPIXELSY) / 5;
|
||||
|
||||
infoPtr->CurrentFont.lfCharSet = DEFAULT_CHARSET;
|
||||
wcsncpy(infoPtr->CurrentFont.lfFaceName,
|
||||
lpFontName,
|
||||
sizeof(infoPtr->CurrentFont.lfFaceName) / sizeof(infoPtr->CurrentFont.lfFaceName[0]));
|
||||
lstrcpynW(infoPtr->CurrentFont.lfFaceName,
|
||||
lpFontName,
|
||||
SIZEOF(infoPtr->CurrentFont.lfFaceName));
|
||||
|
||||
infoPtr->hFont = CreateFontIndirectW(&infoPtr->CurrentFont);
|
||||
|
||||
|
@ -240,14 +276,17 @@ SetFont(PMAP infoPtr,
|
|||
NULL,
|
||||
TRUE);
|
||||
|
||||
if (infoPtr->pActiveCell)
|
||||
infoPtr->pActiveCell->bActive = FALSE;
|
||||
infoPtr->pActiveCell = &infoPtr->Cells[0][0];
|
||||
infoPtr->pActiveCell->bActive = TRUE;
|
||||
|
||||
// Get all the valid glyphs in this font
|
||||
|
||||
SelectObject(hdc, infoPtr->hFont);
|
||||
|
||||
for (i = 0; i < MAX_GLYPHS; i++)
|
||||
ch[i] = (WCHAR)i;
|
||||
// Get the code page associated with the selected 'character set'
|
||||
GetPossibleCharacters(ch, MAX_GLYPHS, infoPtr->CharMap);
|
||||
|
||||
if (GetGlyphIndicesW(hdc,
|
||||
ch,
|
||||
|
@ -256,9 +295,9 @@ SetFont(PMAP infoPtr,
|
|||
GGI_MARK_NONEXISTING_GLYPHS) != GDI_ERROR)
|
||||
{
|
||||
j = 0;
|
||||
for (i = ' ' + 1; i < MAX_GLYPHS; i++)
|
||||
for (i = 0; i < MAX_GLYPHS; i++)
|
||||
{
|
||||
if (out[i] != 0xffff)
|
||||
if (out[i] != 0xffff && out[i] != 0x0000 && ch[i] != 0x0000)
|
||||
{
|
||||
infoPtr->ValidGlyphs[j] = ch[i];
|
||||
j++;
|
||||
|
@ -312,10 +351,27 @@ OnClick(PMAP infoPtr,
|
|||
WORD ptx,
|
||||
WORD pty)
|
||||
{
|
||||
INT x, y;
|
||||
INT x, y, i;
|
||||
|
||||
x = ptx / max(1, infoPtr->CellSize.cx);
|
||||
y = pty / max(1, infoPtr->CellSize.cy);
|
||||
/*
|
||||
* Find the cell the mouse pointer is over.
|
||||
* Since each cell is the same size, this can be done quickly using CellSize.
|
||||
* Clamp to XCELLS - 1 and YCELLS - 1 because the map can sometimes be slightly
|
||||
* larger than infoPtr.CellSize * XCELLS , due to the map size being a non integer
|
||||
* multiple of infoPtr.CellSize .
|
||||
*/
|
||||
x = min(XCELLS - 1, ptx / max(1, infoPtr->CellSize.cx));
|
||||
y = min(YCELLS - 1, pty / max(1, infoPtr->CellSize.cy));
|
||||
|
||||
/* Make sure the mouse is within a valid glyph */
|
||||
i = XCELLS * infoPtr->iYStart + y * XCELLS + x;
|
||||
if (i >= infoPtr->NumValidGlyphs)
|
||||
{
|
||||
if (infoPtr->pActiveCell)
|
||||
infoPtr->pActiveCell->bActive = FALSE;
|
||||
infoPtr->pActiveCell = NULL;
|
||||
return;
|
||||
}
|
||||
|
||||
/* if the cell is not already active */
|
||||
if (!infoPtr->Cells[y][x].bActive)
|
||||
|
@ -447,6 +503,15 @@ OnVScroll(PMAP infoPtr,
|
|||
if (abs(iYDiff) < YCELLS)
|
||||
{
|
||||
RECT rect;
|
||||
|
||||
/* Invalidate the rect around the active cell since a new cell will become active */
|
||||
if (infoPtr->pActiveCell && infoPtr->pActiveCell->bActive)
|
||||
{
|
||||
InvalidateRect(infoPtr->hMapWnd,
|
||||
&infoPtr->pActiveCell->CellExt,
|
||||
TRUE);
|
||||
}
|
||||
|
||||
GetClientRect(infoPtr->hMapWnd, &rect);
|
||||
rect.top += 2;
|
||||
rect.bottom -= 2;
|
||||
|
@ -524,6 +589,7 @@ MapWndProc(HWND hwnd,
|
|||
{
|
||||
PMAP infoPtr;
|
||||
LRESULT Ret = 0;
|
||||
WCHAR lfFaceName[LF_FACESIZE];
|
||||
|
||||
infoPtr = (PMAP)GetWindowLongPtrW(hwnd,
|
||||
0);
|
||||
|
@ -564,6 +630,9 @@ MapWndProc(HWND hwnd,
|
|||
|
||||
case WM_LBUTTONDBLCLK:
|
||||
{
|
||||
if (!infoPtr->pActiveCell)
|
||||
break;
|
||||
|
||||
NotifyParentOfSelection(infoPtr,
|
||||
FM_SETCHAR,
|
||||
infoPtr->pActiveCell->ch);
|
||||
|
@ -588,6 +657,14 @@ MapWndProc(HWND hwnd,
|
|||
break;
|
||||
}
|
||||
|
||||
case FM_SETCHARMAP:
|
||||
infoPtr->CharMap = LOWORD(wParam);
|
||||
wcsncpy(lfFaceName,
|
||||
infoPtr->CurrentFont.lfFaceName,
|
||||
SIZEOF(lfFaceName));
|
||||
SetFont(infoPtr, lfFaceName);
|
||||
break;
|
||||
|
||||
case FM_SETFONT:
|
||||
SetFont(infoPtr, (LPWSTR)lParam);
|
||||
break;
|
||||
|
|
|
@ -19,10 +19,17 @@
|
|||
#define XLARGE 45
|
||||
#define YLARGE 25
|
||||
|
||||
#define FM_SETFONT (WM_USER + 1)
|
||||
#define FM_GETCHAR (WM_USER + 2)
|
||||
#define FM_SETCHAR (WM_USER + 3)
|
||||
#define FM_GETHFONT (WM_USER + 4)
|
||||
#define FM_SETFONT (WM_USER + 1)
|
||||
#define FM_GETCHAR (WM_USER + 2)
|
||||
#define FM_SETCHAR (WM_USER + 3)
|
||||
#define FM_GETHFONT (WM_USER + 4)
|
||||
#define FM_SETCHARMAP (WM_USER + 5)
|
||||
|
||||
// the code pages to display in the advanced 'character set' combobox
|
||||
static const UINT codePages[] = {
|
||||
864, 775, 863, 855, 737, 856, 862, 861, 852, 869, 850, 858, 865, 860, 866, 857, 437, // OEM code pages
|
||||
1256, 1257, 1250, 1251, 1253, 1255, 932, 949, 1252, 936, 874, 950, 1254, 1258 // ANSI code pages
|
||||
};
|
||||
|
||||
extern HINSTANCE hInstance;
|
||||
|
||||
|
@ -48,6 +55,7 @@ typedef struct _MAP
|
|||
LOGFONTW CurrentFont;
|
||||
INT iYStart;
|
||||
INT NumRows;
|
||||
INT CharMap;
|
||||
|
||||
USHORT ValidGlyphs[MAX_GLYPHS];
|
||||
USHORT NumValidGlyphs;
|
||||
|
|
|
@ -28,3 +28,5 @@
|
|||
#define IDS_LICENSE 1010
|
||||
#define IDS_ABOUT 1011
|
||||
#define IDS_TITLE 1012
|
||||
#define IDS_UNICODE 1013
|
||||
#define IDS_ALL 1014
|
||||
|
|
Loading…
Reference in a new issue