mirror of
git://source.winehq.org/git/wine.git
synced 2024-10-31 10:41:12 +00:00
Add sample texts for all missing character sets (or explain why some
don't have it). Put the complete text in one place and remove the glue code. Change the 2D array that holds the texts by a array of pointer to 1D character arrays to save space.
This commit is contained in:
parent
d72bd7ec2e
commit
2c142af1aa
1 changed files with 42 additions and 34 deletions
|
@ -58,35 +58,45 @@ BOOL16 CALLBACK FormatCharDlgProc16(HWND16 hDlg, UINT16 message, WPARAM16 wParam
|
|||
*/
|
||||
|
||||
#define CI(cs) ((IDS_CHARSET_##cs)-IDS_CHARSET_ANSI)
|
||||
#define SAMPLE_EXTLEN 10
|
||||
|
||||
static const WCHAR SAMPLE_LANG_TEXT[][SAMPLE_EXTLEN]={
|
||||
{'Y','y','Z','z',0}, /* Western and default */
|
||||
{0}, /* Symbol */
|
||||
{0}, /* Shift JIS */
|
||||
{0}, /* Hangul */
|
||||
{0}, /* GB2312 */
|
||||
{0}, /* BIG5 */
|
||||
{0}, /* Greek */
|
||||
{0}, /* Turkish */
|
||||
{0x05e0, 0x05e1, 0x05e9, 0x05ea, 0}, /* Hebrew */
|
||||
{0}, /* Arabic */
|
||||
{0}, /* Baltic */
|
||||
{0}, /* Vietnamese */
|
||||
{0}, /* Russian */
|
||||
{0}, /* East European */
|
||||
{0}, /* Thai */
|
||||
{0}, /* Johab */
|
||||
{0}, /* Mac */
|
||||
{0}, /* OEM */
|
||||
{0}, /* VISCII */
|
||||
{0}, /* TCVN */
|
||||
{0}, /* KOI-8 */
|
||||
{0}, /* ISO-8859-3 */
|
||||
{0}, /* ISO-8859-4 */
|
||||
{0}, /* ISO-8859-10 */
|
||||
{0} /* Celtic */
|
||||
};
|
||||
|
||||
static const WCHAR stWestern[]={'A','a','B','b','Y','y','Z','z',0}; /* Western and default */
|
||||
static const WCHAR stSymbol[]={'S','y','m','b','o','l',0}; /* Symbol */
|
||||
static const WCHAR stShiftJis[]={'A','a',0x3042,0x3041,0x30a2,0x30a1,0x4e9c,0x5b87,0}; /* Shift JIS */
|
||||
static const WCHAR stHangul[]={0xac00,0xb098,0xb2e4,'A','a','B','Y','y','Z','z',0}; /* Hangul */
|
||||
static const WCHAR stGB2312[]={0x5fae,0x8f6f,0x4e2d,0x6587,0x8f6f,0x4ef6,0}; /* GB2312 */
|
||||
static const WCHAR stBIG5[]={0x4e2d,0x6587,0x5b57,0x578b,0x7bc4,0x4f8b,0}; /* BIG5 */
|
||||
static const WCHAR stGreek[]={'A','a','B','b',0x0391,0x03b1,0x0392,0x03b2,0}; /* Greek */
|
||||
static const WCHAR stTurkish[]={'A','a','B','b',0x011e,0x011f,0x015e,0x015f,0}; /* Turkish */
|
||||
static const WCHAR stHebrew[]={'A','a','B','b',0x05e0,0x05e1,0x05e9,0x05ea,0}; /* Hebrew */
|
||||
static const WCHAR stArabic[]={'A','a','B','b',0x0627,0x0628,0x062c,0x062f,0x0647,0x0648,0x0632,0};/* Arabic */
|
||||
static const WCHAR stBaltic[]={'A','a','B','b','Y','y','Z','z',0}; /* Baltic */
|
||||
static const WCHAR stVietname[]={'A','a','B','b',0x01a0,0x01a1,0x01af,0x01b0,0}; /* Vietnamese */
|
||||
static const WCHAR stCyrillic[]={'A','a','B','b',0x0411,0x0431,0x0424,0x0444,0}; /* Cyrillic */
|
||||
static const WCHAR stEastEur[]={'A','a','B','b',0xc1,0xe1,0xd4,0xf4,0}; /* East European */
|
||||
static const WCHAR stThai[]={'A','a','B','b',0x0e2d,0x0e31,0x0e01,0x0e29,0x0e23,0x0e44,0x0e17,0x0e22,0}; /* Thai */
|
||||
static const WCHAR stJohab[]={0xac00,0xb098,0xb2e4,'A','a','B','Y','y','Z','z',0}; /* Johab */
|
||||
static const WCHAR stMac[]={'A','a','B','b','Y','y','Z','z',0}; /* Mac */
|
||||
static const WCHAR stOEM[]={'A','a','B','b',0xf8,0xf1,0xfd,0}; /* OEM */
|
||||
/* the following character sets actually behave different (Win2K observation):
|
||||
* the sample string is 'sticky': it uses the sample string of the previous
|
||||
* selected character set. That behaviour looks like some default, which is
|
||||
* not (yet) implemented. */
|
||||
static const WCHAR stVISCII[]={'A','a','B','b',0}; /* VISCII */
|
||||
static const WCHAR stTCVN[]={'A','a','B','b',0}; /* TCVN */
|
||||
static const WCHAR stKOI8[]={'A','a','B','b',0}; /* KOI-8 */
|
||||
static const WCHAR stIso88593[]={'A','a','B','b',0}; /* ISO-8859-3 */
|
||||
static const WCHAR stIso88594[]={'A','a','B','b',0}; /* ISO-8859-4 */
|
||||
static const WCHAR stIso885910[]={'A','a','B','b',0}; /* ISO-8859-10 */
|
||||
static const WCHAR stCeltic[]={'A','a','B','b',0};/* Celtic */
|
||||
|
||||
static const WCHAR *sample_lang_text[]={
|
||||
stWestern,stSymbol,stShiftJis,stHangul,stGB2312,
|
||||
stBIG5,stGreek,stTurkish,stHebrew,stArabic,
|
||||
stBaltic,stVietname,stCyrillic,stEastEur,stThai,
|
||||
stJohab,stMac,stOEM,stVISCII,stTCVN,
|
||||
stKOI8,stIso88593,stIso88594,stIso885910,stCeltic};
|
||||
|
||||
|
||||
static const int CHARSET_ORDER[256]={
|
||||
CI(ANSI), 0, CI(SYMBOL), 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
|
@ -1037,9 +1047,7 @@ static LRESULT CFn_WMPaint(HWND hDlg, WPARAM wParam, LPARAM lParam,
|
|||
HPEN hOrigPen;
|
||||
HFONT hOrigFont;
|
||||
COLORREF rgbPrev;
|
||||
WCHAR sample[SAMPLE_EXTLEN+5]={'A','a','B','b'};
|
||||
LOGFONTA lf = *(lpcf->lpLogFont);
|
||||
/* Always start with this basic sample */
|
||||
|
||||
MapWindowPoints( 0, hDlg, (LPPOINT) &info.rcWindow, 2);
|
||||
hdc=BeginPaint( hDlg, &ps );
|
||||
|
@ -1057,8 +1065,6 @@ static LRESULT CFn_WMPaint(HWND hDlg, WPARAM wParam, LPARAM lParam,
|
|||
DeleteObject(SelectObject( hdc, hOrigPen ));
|
||||
|
||||
/* Draw the sample text itself */
|
||||
lstrcatW(sample, SAMPLE_LANG_TEXT[CHARSET_ORDER[lpcf->lpLogFont->lfCharSet]] );
|
||||
|
||||
info.rcWindow.right--;
|
||||
info.rcWindow.bottom--;
|
||||
info.rcWindow.top++;
|
||||
|
@ -1066,8 +1072,10 @@ static LRESULT CFn_WMPaint(HWND hDlg, WPARAM wParam, LPARAM lParam,
|
|||
lf.lfHeight = MulDiv(lf.lfHeight, GetDeviceCaps(hdc, LOGPIXELSY), 72);
|
||||
hOrigFont = SelectObject( hdc, CreateFontIndirectA( &lf ) );
|
||||
rgbPrev=SetTextColor( hdc, lpcf->rgbColors );
|
||||
|
||||
DrawTextW( hdc, sample, -1, &info.rcWindow, DT_CENTER|DT_VCENTER|DT_SINGLELINE );
|
||||
|
||||
DrawTextW( hdc,
|
||||
sample_lang_text[CHARSET_ORDER[lpcf->lpLogFont->lfCharSet]],
|
||||
-1, &info.rcWindow, DT_CENTER|DT_VCENTER|DT_SINGLELINE );
|
||||
|
||||
EndPaint( hDlg, &ps );
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue