From 6f1a7da4b413f1eae4b88ccbfcf905be53246dc6 Mon Sep 17 00:00:00 2001 From: Rein Klazes Date: Wed, 3 Dec 2003 22:25:10 +0000 Subject: [PATCH] Implement combobox to select the font's character set. Bug fixes: handle WM_MEASUREITEM message; handle the WM_PAINT message in the 16bit font dialog, so it displays the sample string too. --- dlls/commdlg/cdlg_Ca.rc | 7 ++- dlls/commdlg/cdlg_Cn.rc | 7 ++- dlls/commdlg/cdlg_Da.rc | 7 ++- dlls/commdlg/cdlg_De.rc | 7 ++- dlls/commdlg/cdlg_En.rc | 7 ++- dlls/commdlg/cdlg_Es.rc | 7 ++- dlls/commdlg/cdlg_Fi.rc | 7 ++- dlls/commdlg/cdlg_Fr.rc | 7 ++- dlls/commdlg/cdlg_Hu.rc | 7 ++- dlls/commdlg/cdlg_It.rc | 7 ++- dlls/commdlg/cdlg_Ja.rc | 7 ++- dlls/commdlg/cdlg_Nl.rc | 9 ++-- dlls/commdlg/cdlg_Pl.rc | 9 +++- dlls/commdlg/cdlg_Pt.rc | 7 ++- dlls/commdlg/cdlg_Ru.rc | 7 ++- dlls/commdlg/cdlg_Si.rc | 7 ++- dlls/commdlg/cdlg_Sk.rc | 7 ++- dlls/commdlg/cdlg_Sv.rc | 7 ++- dlls/commdlg/cdlg_Wa.rc | 7 ++- dlls/commdlg/cdlg_Zh.rc | 7 ++- dlls/commdlg/fontdlg.c | 104 +++++++++++++++++++++++++++++---------- dlls/commdlg/fontdlg.h | 7 ++- dlls/commdlg/fontdlg16.c | 21 ++++---- 23 files changed, 197 insertions(+), 79 deletions(-) diff --git a/dlls/commdlg/cdlg_Ca.rc b/dlls/commdlg/cdlg_Ca.rc index 8d89ca168fa..4f4da809592 100644 --- a/dlls/commdlg/cdlg_Ca.rc +++ b/dlls/commdlg/cdlg_Ca.rc @@ -139,8 +139,11 @@ FONT 8, "Helv" LTEXT "&Color:", 1091 ,6,110,30,9 COMBOBOX 1139,6,120,84,100,CBS_DROPDOWNLIST | CBS_OWNERDRAWFIXED | CBS_HASSTRINGS | CBS_AUTOHSCROLL | WS_BORDER | WS_VSCROLL | WS_TABSTOP - GROUPBOX "Exemple",1073,98,72,160,49,WS_GROUP - CTEXT "AaBbYyZz",stc5,104,81,149,37,SS_NOPREFIX | NOT WS_VISIBLE + GROUPBOX "Exemple",grp2,98,72,120,36,WS_GROUP + CTEXT "AaBbYyZz",stc5,103,80,109,24,SS_NOPREFIX | NOT WS_VISIBLE + LTEXT "Scr&ipt (translate):",stc7 ,98,114,80,9 + COMBOBOX cmb5,98,124,120,10,CBS_DROPDOWNLIST |CBS_OWNERDRAWFIXED | CBS_HASSTRINGS | + CBS_AUTOHSCROLL | WS_VSCROLL | WS_TABSTOP } diff --git a/dlls/commdlg/cdlg_Cn.rc b/dlls/commdlg/cdlg_Cn.rc index b01cfa81edf..746e0e10b0c 100644 --- a/dlls/commdlg/cdlg_Cn.rc +++ b/dlls/commdlg/cdlg_Cn.rc @@ -139,8 +139,11 @@ FONT 8, "Helv" LTEXT "颜色(&C):", 1091 ,6,110,30,9 COMBOBOX cmb4,6,120,84,100,CBS_DROPDOWNLIST | CBS_OWNERDRAWFIXED | CBS_HASSTRINGS | CBS_AUTOHSCROLL | WS_BORDER | WS_VSCROLL | WS_TABSTOP - GROUPBOX "示例",1073,98,72,160,49,WS_GROUP - CTEXT "中文字体AaBbYyZz",1093,104,81,149,37,SS_NOPREFIX | WS_VISIBLE + GROUPBOX "示例",grp2,98,72,120,36,WS_GROUP + CTEXT "中文字体AaBbYyZz",stc5,103,80,109,24,SS_NOPREFIX | NOT WS_VISIBLE + LTEXT "Scr&ipt (translate):",stc7,98,114,80,9 + COMBOBOX cmb5,98,124,120,10,CBS_DROPDOWNLIST |CBS_OWNERDRAWFIXED | CBS_HASSTRINGS | + CBS_AUTOHSCROLL | WS_VSCROLL | WS_TABSTOP } diff --git a/dlls/commdlg/cdlg_Da.rc b/dlls/commdlg/cdlg_Da.rc index 9cabf9113a4..075e8bb2c9f 100644 --- a/dlls/commdlg/cdlg_Da.rc +++ b/dlls/commdlg/cdlg_Da.rc @@ -139,8 +139,11 @@ FONT 8, "Helv" LTEXT "&Farve:", 1091 ,6,110,30,9 COMBOBOX 1139,6,120,84,100,CBS_DROPDOWNLIST | CBS_OWNERDRAWFIXED | CBS_HASSTRINGS | CBS_AUTOHSCROLL | WS_BORDER | WS_VSCROLL | WS_TABSTOP - GROUPBOX "Eksempel",1073,98,72,160,49,WS_GROUP - CTEXT "AaBbYyZz",stc5,104,81,149,37,SS_NOPREFIX | NOT WS_VISIBLE + GROUPBOX "Eksempel",grp2,98,72,120,36,WS_GROUP + CTEXT "AaBbYyZz",stc5,103,80,109,24,SS_NOPREFIX | NOT WS_VISIBLE + LTEXT "Scr&ipt (translate):",stc7 ,98,114,80,9 + COMBOBOX cmb5,98,124,120,10,CBS_DROPDOWNLIST |CBS_OWNERDRAWFIXED | CBS_HASSTRINGS | + CBS_AUTOHSCROLL | WS_VSCROLL | WS_TABSTOP } diff --git a/dlls/commdlg/cdlg_De.rc b/dlls/commdlg/cdlg_De.rc index 1fb5f6d82af..db7f1a7b954 100644 --- a/dlls/commdlg/cdlg_De.rc +++ b/dlls/commdlg/cdlg_De.rc @@ -169,8 +169,11 @@ FONT 8, "Helv" LTEXT "&Farbe:", 1091 ,6,110,30,9 COMBOBOX 1139,6,120,84,100,CBS_DROPDOWNLIST | CBS_OWNERDRAWFIXED | CBS_HASSTRINGS | CBS_AUTOHSCROLL | WS_BORDER | WS_VSCROLL | WS_TABSTOP - GROUPBOX "Muster",1073,98,72,160,49,WS_GROUP - CTEXT "AaBbYyZz",stc5,104,81,149,37,SS_NOPREFIX | NOT WS_VISIBLE + GROUPBOX "Muster",grp2,98,72,120,36,WS_GROUP + CTEXT "AaBbYyZz",stc5,103,80,109,24,SS_NOPREFIX | NOT WS_VISIBLE + LTEXT "Scr&ipt (translate):",stc7 ,98,114,80,9 + COMBOBOX cmb5,98,124,120,10,CBS_DROPDOWNLIST |CBS_OWNERDRAWFIXED | CBS_HASSTRINGS | + CBS_AUTOHSCROLL | WS_VSCROLL | WS_TABSTOP } diff --git a/dlls/commdlg/cdlg_En.rc b/dlls/commdlg/cdlg_En.rc index fe89e5eaff2..0633fe3625e 100644 --- a/dlls/commdlg/cdlg_En.rc +++ b/dlls/commdlg/cdlg_En.rc @@ -139,8 +139,11 @@ FONT 8, "Helv" LTEXT "&Color:", stc4 ,6,110,30,9 COMBOBOX cmb4,6,120,84,100,CBS_DROPDOWNLIST | CBS_OWNERDRAWFIXED | CBS_HASSTRINGS | CBS_AUTOHSCROLL | WS_BORDER | WS_VSCROLL | WS_TABSTOP - GROUPBOX "Sample",grp2,98,72,160,49,WS_GROUP - CTEXT "AaBbYyZz",stc5,104,81,149,37,SS_NOPREFIX | NOT WS_VISIBLE + GROUPBOX "Sample",grp2,98,72,120,36,WS_GROUP + CTEXT "AaBbYyZz",stc5,103,80,109,24,SS_NOPREFIX | NOT WS_VISIBLE + LTEXT "Scr&ipt:",stc7 ,98,114,40,9 + COMBOBOX cmb5,98,124,120,10,CBS_DROPDOWNLIST |CBS_OWNERDRAWFIXED | CBS_HASSTRINGS | + CBS_AUTOHSCROLL | WS_VSCROLL | WS_TABSTOP } diff --git a/dlls/commdlg/cdlg_Es.rc b/dlls/commdlg/cdlg_Es.rc index 2cd1f25128f..72b798e0442 100644 --- a/dlls/commdlg/cdlg_Es.rc +++ b/dlls/commdlg/cdlg_Es.rc @@ -139,8 +139,11 @@ FONT 8, "Helv" LTEXT "&Color:", 1091 ,6,110,30,9 COMBOBOX 1139,6,120,84,100,CBS_DROPDOWNLIST | CBS_OWNERDRAWFIXED | CBS_HASSTRINGS | CBS_AUTOHSCROLL | WS_BORDER | WS_VSCROLL | WS_TABSTOP - GROUPBOX "Ejemplo",1073,98,72,160,49,WS_GROUP - CTEXT "AaBbYyZz疡",stc5,104,81,149,37,SS_NOPREFIX | NOT WS_VISIBLE + GROUPBOX "Ejemplo",grp2,98,72,120,36,WS_GROUP + CTEXT "AaBbYyZz疡",stc5,103,80,109,24,SS_NOPREFIX | NOT WS_VISIBLE + LTEXT "Scr&ipt (translate):",stc7 ,98,114,80,9 + COMBOBOX cmb5,98,124,120,10,CBS_DROPDOWNLIST |CBS_OWNERDRAWFIXED | CBS_HASSTRINGS | + CBS_AUTOHSCROLL | WS_VSCROLL | WS_TABSTOP } diff --git a/dlls/commdlg/cdlg_Fi.rc b/dlls/commdlg/cdlg_Fi.rc index 209b166b8a3..7fe34ae170f 100644 --- a/dlls/commdlg/cdlg_Fi.rc +++ b/dlls/commdlg/cdlg_Fi.rc @@ -139,8 +139,11 @@ FONT 8, "Helv" LTEXT "V&鋜i:", 1091 ,6,110,30,9 COMBOBOX 1139,6,120,84,100,CBS_DROPDOWNLIST | CBS_OWNERDRAWFIXED | CBS_HASSTRINGS | CBS_AUTOHSCROLL | WS_BORDER | WS_VSCROLL | WS_TABSTOP - GROUPBOX "N鋣te",1073,98,72,160,49,WS_GROUP - CTEXT "AaBbYyZz",stc5,104,81,149,37,SS_NOPREFIX | NOT WS_VISIBLE + GROUPBOX "N鋣te",grp2,98,72,120,36,WS_GROUP + CTEXT "AaBbYyZz",stc5,103,80,109,24,SS_NOPREFIX | NOT WS_VISIBLE + LTEXT "Scr&ipt (translate):",stc7 ,98,114,80,9 + COMBOBOX cmb5,98,124,120,10,CBS_DROPDOWNLIST |CBS_OWNERDRAWFIXED | CBS_HASSTRINGS | + CBS_AUTOHSCROLL | WS_VSCROLL | WS_TABSTOP } diff --git a/dlls/commdlg/cdlg_Fr.rc b/dlls/commdlg/cdlg_Fr.rc index 5e703b0e31e..2e2da92f8f2 100644 --- a/dlls/commdlg/cdlg_Fr.rc +++ b/dlls/commdlg/cdlg_Fr.rc @@ -142,8 +142,11 @@ FONT 8, "Helv" LTEXT "&Couleur:", stc4 ,6,110,30,9 COMBOBOX cmb4,6,120,84,100,CBS_DROPDOWNLIST | CBS_OWNERDRAWFIXED | CBS_HASSTRINGS | CBS_AUTOHSCROLL | WS_BORDER | WS_VSCROLL | WS_TABSTOP - GROUPBOX "Exemple",grp2,98,72,160,49,WS_GROUP - CTEXT "AaBbYyZz",stc5,104,81,149,37,SS_NOPREFIX | NOT WS_VISIBLE + GROUPBOX "Exemple",grp2,98,72,120,36,WS_GROUP + CTEXT "AaBbYyZz",stc5,103,80,109,24,SS_NOPREFIX | NOT WS_VISIBLE + LTEXT "Scr&ipt (translate):",stc7 ,98,114,80,9 + COMBOBOX cmb5,98,124,120,10,CBS_DROPDOWNLIST |CBS_OWNERDRAWFIXED | CBS_HASSTRINGS | + CBS_AUTOHSCROLL | WS_VSCROLL | WS_TABSTOP } diff --git a/dlls/commdlg/cdlg_Hu.rc b/dlls/commdlg/cdlg_Hu.rc index 105d5f71f72..6b4fba0ba79 100644 --- a/dlls/commdlg/cdlg_Hu.rc +++ b/dlls/commdlg/cdlg_Hu.rc @@ -138,8 +138,11 @@ FONT 8, "Helv" LTEXT "&Sz韓:", 1091 ,6,110,30,9 COMBOBOX 1139,6,120,84,100,CBS_DROPDOWNLIST | CBS_OWNERDRAWFIXED | CBS_HASSTRINGS | CBS_AUTOHSCROLL | WS_BORDER | WS_VSCROLL | WS_TABSTOP - GROUPBOX "Minta",1073,98,72,160,49,WS_GROUP - CTEXT "AaBbYyZz玲挣砷",stc5,104,81,149,37,SS_NOPREFIX | NOT WS_VISIBLE + GROUPBOX "Minta",grp2,98,72,120,36,WS_GROUP + CTEXT "AaBbYyZz玲挣砷",stc5,103,80,109,24,SS_NOPREFIX | NOT WS_VISIBLE + LTEXT "Scr&ipt (translate):",stc7 ,98,114,80,9 + COMBOBOX cmb5,98,124,120,10,CBS_DROPDOWNLIST |CBS_OWNERDRAWFIXED | CBS_HASSTRINGS | + CBS_AUTOHSCROLL | WS_VSCROLL | WS_TABSTOP } diff --git a/dlls/commdlg/cdlg_It.rc b/dlls/commdlg/cdlg_It.rc index 3c3d281a078..abe863cb45d 100644 --- a/dlls/commdlg/cdlg_It.rc +++ b/dlls/commdlg/cdlg_It.rc @@ -138,8 +138,11 @@ FONT 8, "Helv" LTEXT "&Colore:", 1091 ,6,110,30,9 COMBOBOX 1139,6,120,84,100,CBS_DROPDOWNLIST | CBS_OWNERDRAWFIXED | CBS_HASSTRINGS | CBS_AUTOHSCROLL | WS_BORDER | WS_VSCROLL | WS_TABSTOP - GROUPBOX "Esempio",1073,98,72,160,49,WS_GROUP - CTEXT "AaBbYyZz",stc5,104,81,149,37,SS_NOPREFIX | NOT WS_VISIBLE + GROUPBOX "Esempio",grp2,98,72,120,36,WS_GROUP + CTEXT "AaBbYyZz",stc5,103,80,109,24,SS_NOPREFIX | NOT WS_VISIBLE + LTEXT "Scr&ipt (translate):",stc7 ,98,114,80,9 + COMBOBOX cmb5,98,124,120,10,CBS_DROPDOWNLIST |CBS_OWNERDRAWFIXED | CBS_HASSTRINGS | + CBS_AUTOHSCROLL | WS_VSCROLL | WS_TABSTOP } CHOOSE_COLOR DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 300, 185 diff --git a/dlls/commdlg/cdlg_Ja.rc b/dlls/commdlg/cdlg_Ja.rc index 9baab0b4bd6..507fc536ddb 100644 --- a/dlls/commdlg/cdlg_Ja.rc +++ b/dlls/commdlg/cdlg_Ja.rc @@ -139,8 +139,11 @@ FONT 8, " LTEXT "怓(&C):", 1091 ,6,110,30,9 COMBOBOX 1139,6,120,84,100,CBS_DROPDOWNLIST | CBS_OWNERDRAWFIXED | CBS_HASSTRINGS | CBS_AUTOHSCROLL | WS_BORDER | WS_VSCROLL | WS_TABSTOP - GROUPBOX "僒儞僾儖",1073,98,72,160,49,WS_GROUP - CTEXT "AaBbYyZz",stc5,104,81,149,37,SS_NOPREFIX | NOT WS_VISIBLE + GROUPBOX "僒儞僾儖",grp2,98,72,120,36,WS_GROUP + CTEXT "AaBbYyZz",stc5,103,80,109,24,SS_NOPREFIX | NOT WS_VISIBLE + LTEXT "Scr&ipt (translate):",stc7 ,98,114,80,9 + COMBOBOX cmb5,98,124,120,10,CBS_DROPDOWNLIST |CBS_OWNERDRAWFIXED | CBS_HASSTRINGS | + CBS_AUTOHSCROLL | WS_VSCROLL | WS_TABSTOP } diff --git a/dlls/commdlg/cdlg_Nl.rc b/dlls/commdlg/cdlg_Nl.rc index aa69fd9da71..9c8e29f867c 100644 --- a/dlls/commdlg/cdlg_Nl.rc +++ b/dlls/commdlg/cdlg_Nl.rc @@ -137,10 +137,13 @@ FONT 8, "Helv" CHECKBOX "&Doorhalen", 1040, 10,82,50,10, BS_AUTOCHECKBOX | WS_TABSTOP CHECKBOX "&Onderstrepen", 1041, 10,94,50,10, BS_AUTOCHECKBOX LTEXT "&Kleur:", 1091 ,6,110,30,9 - COMBOBOX 1139,6,120,84,100,CBS_DROPDOWNLIST | CBS_OWNERDRAWFIXED | CBS_HASSTRINGS | + COMBOBOX cmb4,6,120,84,100,CBS_DROPDOWNLIST | CBS_OWNERDRAWFIXED | CBS_HASSTRINGS | CBS_AUTOHSCROLL | WS_BORDER | WS_VSCROLL | WS_TABSTOP - GROUPBOX "Voorbeeld",1073,98,72,160,49,WS_GROUP - CTEXT "AaBbYyZz",stc5,104,81,149,37,SS_NOPREFIX | NOT WS_VISIBLE + GROUPBOX "Voorbeeld",grp2,98,72,120,36,WS_GROUP + CTEXT "AaBbYyZz",stc5,103,80,109,24,SS_NOPREFIX | NOT WS_VISIBLE + LTEXT "Schr&ift:",stc7 ,98,114,40,9 + COMBOBOX cmb5,98,124,120,10,CBS_DROPDOWNLIST |CBS_OWNERDRAWFIXED | CBS_HASSTRINGS | + CBS_AUTOHSCROLL | WS_VSCROLL | WS_TABSTOP } diff --git a/dlls/commdlg/cdlg_Pl.rc b/dlls/commdlg/cdlg_Pl.rc index 68d137cd1fe..f0a99004b81 100644 --- a/dlls/commdlg/cdlg_Pl.rc +++ b/dlls/commdlg/cdlg_Pl.rc @@ -136,8 +136,13 @@ WS_VSCROLL | WS_TABSTOP | CBS_SIMPLE | CBS_SORT, 179,13,32,54 LTEXT "&Kolor:", 1091, 6,110,30,9, WS_CHILD | WS_VISIBLE | WS_GROUP CONTROL "", 1139, "COMBOBOX", CBS_DROPDOWNLIST | CBS_OWNERDRAWFIXED | CBS_HASSTRINGS | CBS_AUTOHSCROLL | WS_BORDER | WS_VSCROLL | WS_TABSTOP, 6,120,84,100 - CONTROL "Przyk砤d", 1073, "BUTTON", BS_GROUPBOX | WS_CHILD | WS_VISIBLE | WS_GROUP | WS_TABSTOP, 98,72,160,49 - CONTROL "AaBbYyZz\xB3", stc5, "STATIC", SS_NOPREFIX | NOT WS_VISIBLE, 104,81,149,37 +/* CONTROL "Przyk砤d", 1073, "BUTTON", BS_GROUPBOX | WS_CHILD | WS_VISIBLE | WS_GROUP | WS_TABSTOP, 98,72,160,49 + CONTROL "AaBbYyZz\xB3", stc5, "STATIC", SS_NOPREFIX | NOT WS_VISIBLE, 104,81,149,37 */ + GROUPBOX "Przyk砤d",grp2,98,72,120,36,WS_GROUP + CTEXT "AaBbYyZz\xB3",stc5,103,80,109,24,SS_NOPREFIX | NOT WS_VISIBLE + LTEXT "Scr&ipt (translate):",stc7 ,98,114,80,9 + COMBOBOX cmb5,98,124,120,10,CBS_DROPDOWNLIST |CBS_OWNERDRAWFIXED | CBS_HASSTRINGS | + CBS_AUTOHSCROLL | WS_VSCROLL | WS_TABSTOP END /* PUSHBUTTON "&Replace", 1024, 174, 21, 50, 14, WS_GROUP | WS_TABSTOP * PUSHBUTTON "Replace &All", 1025, 174, 38, 50, 14, WS_GROUP | WS_TABSTOP diff --git a/dlls/commdlg/cdlg_Pt.rc b/dlls/commdlg/cdlg_Pt.rc index da0d9ef1d93..4068d1f14fe 100644 --- a/dlls/commdlg/cdlg_Pt.rc +++ b/dlls/commdlg/cdlg_Pt.rc @@ -140,8 +140,11 @@ FONT 8, "Helv" LTEXT "&Cor:", 1091 ,6,110,30,9 COMBOBOX 1139,6,120,84,100,CBS_DROPDOWNLIST | CBS_OWNERDRAWFIXED | CBS_HASSTRINGS | CBS_AUTOHSCROLL | WS_BORDER | WS_VSCROLL | WS_TABSTOP - GROUPBOX "Amostra",1073,98,72,160,49,WS_GROUP - CTEXT "AaBbYyZz",stc5,104,81,149,37,SS_NOPREFIX | NOT WS_VISIBLE + GROUPBOX "Amostra",grp2,98,72,120,36,WS_GROUP + CTEXT "AaBbYyZz",stc5,103,80,109,24,SS_NOPREFIX | NOT WS_VISIBLE + LTEXT "Scr&ipt (translate):",stc7 ,98,114,80,9 + COMBOBOX cmb5,98,124,120,10,CBS_DROPDOWNLIST |CBS_OWNERDRAWFIXED | CBS_HASSTRINGS | + CBS_AUTOHSCROLL | WS_VSCROLL | WS_TABSTOP } diff --git a/dlls/commdlg/cdlg_Ru.rc b/dlls/commdlg/cdlg_Ru.rc index 769a025dde3..2a2eccf9746 100644 --- a/dlls/commdlg/cdlg_Ru.rc +++ b/dlls/commdlg/cdlg_Ru.rc @@ -139,8 +139,11 @@ FONT 8, "Ms Sans Serif" LTEXT "&忮:", 1091 ,6,110,30,9 COMBOBOX 1139,6,120,84,100,CBS_DROPDOWNLIST | CBS_OWNERDRAWFIXED | CBS_HASSTRINGS | CBS_AUTOHSCROLL | WS_BORDER | WS_VSCROLL | WS_TABSTOP - GROUPBOX "吾疣珏",1073,98,72,160,49,WS_GROUP - CTEXT "类玲AaBb",stc5,104,81,149,37,SS_NOPREFIX | NOT WS_VISIBLE + GROUPBOX "吾疣珏",grp2,98,72,120,36,WS_GROUP + CTEXT "类玲AaBb",stc5,103,80,109,24,SS_NOPREFIX | NOT WS_VISIBLE + LTEXT "Scr&ipt (translate):",stc7 ,98,114,80,9 + COMBOBOX cmb5,98,124,120,10,CBS_DROPDOWNLIST |CBS_OWNERDRAWFIXED | CBS_HASSTRINGS | + CBS_AUTOHSCROLL | WS_VSCROLL | WS_TABSTOP } diff --git a/dlls/commdlg/cdlg_Si.rc b/dlls/commdlg/cdlg_Si.rc index 61d68bda5e9..8987e3b6fb2 100644 --- a/dlls/commdlg/cdlg_Si.rc +++ b/dlls/commdlg/cdlg_Si.rc @@ -139,8 +139,11 @@ FONT 8, "MS Sans Serif" LTEXT "&Barva:", 1091 ,6,110,30,9 COMBOBOX cmb4,6,120,84,100,CBS_DROPDOWNLIST | CBS_OWNERDRAWFIXED | CBS_HASSTRINGS | CBS_AUTOHSCROLL | WS_BORDER | WS_VSCROLL | WS_TABSTOP - GROUPBOX "Vzorec",1073,98,72,160,49,WS_GROUP - CTEXT "AaBbYyZz",stc5,104,81,149,37,SS_NOPREFIX | NOT WS_VISIBLE + GROUPBOX "Vzorec",grp2,98,72,120,36,WS_GROUP + CTEXT "AaBbYyZz",stc5,103,80,109,24,SS_NOPREFIX | NOT WS_VISIBLE + LTEXT "Scr&ipt (translate):",stc7 ,98,114,80,9 + COMBOBOX cmb5,98,124,120,10,CBS_DROPDOWNLIST |CBS_OWNERDRAWFIXED | CBS_HASSTRINGS | + CBS_AUTOHSCROLL | WS_VSCROLL | WS_TABSTOP } diff --git a/dlls/commdlg/cdlg_Sk.rc b/dlls/commdlg/cdlg_Sk.rc index 9ef5d105d1a..7af94a090b3 100644 --- a/dlls/commdlg/cdlg_Sk.rc +++ b/dlls/commdlg/cdlg_Sk.rc @@ -141,8 +141,11 @@ FONT 8, "Helv" LTEXT "&Farba:", 1091 ,6,110,30,9 COMBOBOX 1139,6,120,84,100,CBS_DROPDOWNLIST | CBS_OWNERDRAWFIXED | CBS_HASSTRINGS | CBS_AUTOHSCROLL | WS_BORDER | WS_VSCROLL | WS_TABSTOP - GROUPBOX "Vzorka",1073,98,72,160,49,WS_GROUP - CTEXT "AaBbYyZz",stc5,104,81,149,37,SS_NOPREFIX | NOT WS_VISIBLE + GROUPBOX "Vzorka",grp2,98,72,120,36,WS_GROUP + CTEXT "AaBbYyZz",stc5,103,80,109,24,SS_NOPREFIX | NOT WS_VISIBLE + LTEXT "Scr&ipt (translate):",stc7 ,98,114,80,9 + COMBOBOX cmb5,98,124,120,10,CBS_DROPDOWNLIST |CBS_OWNERDRAWFIXED | CBS_HASSTRINGS | + CBS_AUTOHSCROLL | WS_VSCROLL | WS_TABSTOP } CHOOSE_COLOR DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 300, 185 diff --git a/dlls/commdlg/cdlg_Sv.rc b/dlls/commdlg/cdlg_Sv.rc index 1d0bb2756e2..9e33c319793 100644 --- a/dlls/commdlg/cdlg_Sv.rc +++ b/dlls/commdlg/cdlg_Sv.rc @@ -137,8 +137,11 @@ FONT 8, "Helv" LTEXT "&F鋜g:", 1091 ,6,110,30,9 COMBOBOX 1139,6,120,84,100,CBS_DROPDOWNLIST | CBS_OWNERDRAWFIXED | CBS_HASSTRINGS | CBS_AUTOHSCROLL | WS_BORDER | WS_VSCROLL | WS_TABSTOP - GROUPBOX "Test",1073,98,72,160,49,WS_GROUP - CTEXT "AaBbYyZz",stc5,104,81,149,37,SS_NOPREFIX | NOT WS_VISIBLE + GROUPBOX "Test",grp2,98,72,120,36,WS_GROUP + CTEXT "AaBbYyZz",stc5,103,80,109,24,SS_NOPREFIX | NOT WS_VISIBLE + LTEXT "Scr&ipt (translate):",stc7 ,98,114,80,9 + COMBOBOX cmb5,98,124,120,10,CBS_DROPDOWNLIST |CBS_OWNERDRAWFIXED | CBS_HASSTRINGS | + CBS_AUTOHSCROLL | WS_VSCROLL | WS_TABSTOP } diff --git a/dlls/commdlg/cdlg_Wa.rc b/dlls/commdlg/cdlg_Wa.rc index 0b0bed08ec2..5f828fe2707 100644 --- a/dlls/commdlg/cdlg_Wa.rc +++ b/dlls/commdlg/cdlg_Wa.rc @@ -144,8 +144,11 @@ FONT 8, "Helv" LTEXT "&Coleur:", 1091 ,6,110,30,9 COMBOBOX 1139,6,120,84,100,CBS_DROPDOWNLIST | CBS_OWNERDRAWFIXED | CBS_HASSTRINGS | CBS_AUTOHSCROLL | WS_BORDER | WS_VSCROLL | WS_TABSTOP - GROUPBOX "Egzimpe",1073,98,72,160,49,WS_GROUP - CTEXT "AaBbYyZz佩晴埯",stc5,104,81,149,37,SS_NOPREFIX | NOT WS_VISIBLE + GROUPBOX "Egzimpe",grp2,98,72,120,36,WS_GROUP + CTEXT "AaBbYyZz佩晴埯",stc5,103,80,109,24,SS_NOPREFIX | NOT WS_VISIBLE + LTEXT "Scr&ipt (translate):",stc7 ,98,114,80,9 + COMBOBOX cmb5,98,124,120,10,CBS_DROPDOWNLIST |CBS_OWNERDRAWFIXED | CBS_HASSTRINGS | + CBS_AUTOHSCROLL | WS_VSCROLL | WS_TABSTOP } diff --git a/dlls/commdlg/cdlg_Zh.rc b/dlls/commdlg/cdlg_Zh.rc index 4a88701fd38..49fc733d954 100644 --- a/dlls/commdlg/cdlg_Zh.rc +++ b/dlls/commdlg/cdlg_Zh.rc @@ -90,8 +90,11 @@ FONT 8, "Helv" LTEXT "色彩(&C):", 1091 ,6,110,30,9 COMBOBOX 1139,6,120,84,100,CBS_DROPDOWNLIST | CBS_OWNERDRAWFIXED | CBS_HASSTRINGS | CBS_AUTOHSCROLL | WS_BORDER | WS_VSCROLL | WS_TABSTOP - GROUPBOX "範例",1073,128,72,160,49,WS_GROUP - CTEXT "AaBbYyZz",stc5,134,81,149,37,SS_NOPREFIX | NOT WS_VISIBLE + GROUPBOX "範例",grp2,98,72,120,36,WS_GROUP + CTEXT "AaBbYyZz",stc5,103,80,109,24,SS_NOPREFIX | NOT WS_VISIBLE + LTEXT "Scr&ipt (translate):",stc7 ,98,114,80,9 + COMBOBOX cmb5,98,124,120,10,CBS_DROPDOWNLIST |CBS_OWNERDRAWFIXED | CBS_HASSTRINGS | + CBS_AUTOHSCROLL | WS_VSCROLL | WS_TABSTOP } diff --git a/dlls/commdlg/fontdlg.c b/dlls/commdlg/fontdlg.c index a473ba4030a..297d2a25578 100644 --- a/dlls/commdlg/fontdlg.c +++ b/dlls/commdlg/fontdlg.c @@ -417,15 +417,16 @@ INT AddFontFamily(const LOGFONTA *lplf, UINT nFontType, if (e) e->added++; - i=SendMessageA(hwnd, CB_ADDSTRING, 0, (LPARAM)lplf->lfFaceName); - if (i!=CB_ERR) - { - w=(lplf->lfCharSet << 8) | lplf->lfPitchAndFamily; - SendMessageA(hwnd, CB_SETITEMDATA, i, MAKELONG(nFontType,w)); - return 1 ; /* store some important font information */ + i=SendMessageA(hwnd, CB_FINDSTRINGEXACT, 0, (LPARAM)lplf->lfFaceName); + if (i == CB_ERR) { + i = SendMessageA(hwnd, CB_ADDSTRING, 0, (LPARAM)lplf->lfFaceName); + if( i != CB_ERR) { + w=(lplf->lfCharSet << 8) | lplf->lfPitchAndFamily; + /* store some important font information */ + SendMessageA(hwnd, CB_SETITEMDATA, i, MAKELONG(nFontType,w)); + } } - else - return 0; + return 1; } /************************************************************************* @@ -526,10 +527,13 @@ static int SetFontSizesToCombo3(HWND hwnd, LPCHOOSEFONTA lpcf) /*********************************************************************** * AddFontStyle [internal] */ -INT AddFontStyle(const LOGFONTA *lplf, UINT nFontType, - LPCHOOSEFONTA lpcf, HWND hcmb2, HWND hcmb3, HWND hDlg) +INT AddFontStyle( const ENUMLOGFONTEXA *lpElfex, UINT nFontType, + LPCHOOSEFONTA lpcf, HWND hcmb2, HWND hcmb3, HWND hDlg, + BOOL iswin16) { int i; + const LOGFONTA *lplf = &(lpElfex->elfLogFont); + HWND hcmb5; TRACE("(nFontType=%d)\n",nFontType); TRACE(" %s h=%ld w=%ld e=%ld o=%ld wg=%ld i=%d u=%d s=%d" @@ -553,9 +557,18 @@ INT AddFontStyle(const LOGFONTA *lplf, UINT nFontType, if (i) return 0; } + if( iswin16 || !( hcmb5 = GetDlgItem(hDlg, cmb5))) return 1; + i = SendMessageA( hcmb5, CB_FINDSTRINGEXACT, 0, + (LPARAM)lpElfex->elfScript); + if( i == CB_ERR) { + i = SendMessageA( hcmb5, CB_ADDSTRING, 0, + (LPARAM)lpElfex->elfScript); + if( i != CB_ERR) + SendMessageA( hcmb5, CB_SETITEMDATA, i, lplf->lfCharSet); + } return 1 ; - } + static INT CFn_FitFontSize( HWND hDlg, int points) { int i,n; @@ -598,18 +611,42 @@ static INT CFn_FitFontStyle( HWND hDlg, LONG packedstyle ) return ret; } + +static INT CFn_FitCharSet( HWND hDlg, int charset ) +{ + int i,n,cs; + /* look for fitting har set in combobox5 */ + n=SendDlgItemMessageA(hDlg, cmb5, CB_GETCOUNT, 0, 0); + for (i=0;ihWnd1; HWND hcmb3=s->hWnd2; HWND hDlg=GetParent(hcmb3); - return AddFontStyle(lpFont, dwFontType, s->lpcf32a, hcmb2, - hcmb3, hDlg); + return AddFontStyle( lpElfex, dwFontType, s->lpcf32a, + hcmb2, hcmb3, hDlg, FALSE); } /*********************************************************************** @@ -701,6 +738,7 @@ LRESULT CFn_WMInitDialog(HWND hDlg, WPARAM wParam, LPARAM lParam, if (j!=CB_ERR) { INT height = (lpcf->iPointSize + 5) / 10; + int charset = lpxx->lfCharSet; pstyle=MAKELONG(lpxx->lfWeight > FW_MEDIUM ? FW_BOLD:FW_NORMAL,lpxx->lfItalic !=0); SendDlgItemMessageA(hDlg, cmb1, CB_SETCURSEL, j, 0); SendMessageA(hDlg, WM_COMMAND, MAKEWPARAM(cmb1, CBN_SELCHANGE), @@ -710,6 +748,7 @@ LRESULT CFn_WMInitDialog(HWND hDlg, WPARAM wParam, LPARAM lParam, CFn_FitFontStyle(hDlg, pstyle); /* look for fitting font size in combobox3 */ CFn_FitFontSize(hDlg, height); + CFn_FitCharSet( hDlg, charset ); } } if (!init) @@ -824,6 +863,7 @@ LRESULT CFn_WMDrawItem(HWND hDlg, WPARAM wParam, LPARAM lParam) case cmb2: case cmb3: /* TRACE(commdlg,"WM_DRAWITEN cmb2,cmb3\n"); */ + case cmb5: SendMessageA(lpdi->hwndItem, CB_GETLBTEXT, lpdi->itemID, (LPARAM)buffer); TextOutA(lpdi->hDC, lpdi->rcItem.left, @@ -887,30 +927,38 @@ LRESULT CFn_WMCommand(HWND hDlg, WPARAM wParam, LPARAM lParam, { INT pointsize; /* save current pointsize */ LONG pstyle; /* save current style */ - int idx2, idx3; - idx3 = SendDlgItemMessageA(hDlg, cmb3, CB_GETCURSEL, 0, 0); + int charset; + int idx; + idx = SendDlgItemMessageA(hDlg, cmb3, CB_GETCURSEL, 0, 0); pointsize = (int)SendDlgItemMessageA( hDlg, cmb3, CB_GETITEMDATA, - idx3, 0); - idx2 = SendDlgItemMessageA(hDlg, cmb2, CB_GETCURSEL, 0, 0); - pstyle = SendDlgItemMessageA(hDlg, cmb2, CB_GETITEMDATA, idx2, 0); + idx, 0); + idx = SendDlgItemMessageA(hDlg, cmb2, CB_GETCURSEL, 0, 0); + pstyle = SendDlgItemMessageA(hDlg, cmb2, CB_GETITEMDATA, idx, 0); + idx = SendDlgItemMessageA(hDlg, cmb5, CB_GETCURSEL, 0, 0); + charset = SendDlgItemMessageA(hDlg, cmb5, CB_GETITEMDATA, idx, 0); SendDlgItemMessageA(hDlg, cmb2, CB_RESETCONTENT, 0, 0); SendDlgItemMessageA(hDlg, cmb3, CB_RESETCONTENT, 0, 0); + SendDlgItemMessageA(hDlg, cmb5, CB_RESETCONTENT, 0, 0); i=SendDlgItemMessageA(hDlg, cmb1, CB_GETCURSEL, 0, 0); if (i!=CB_ERR) { HCURSOR hcursor=SetCursor(LoadCursorA(0,(LPSTR)IDC_WAIT)); CFn_ENUMSTRUCT s; - char str[256]; + LOGFONTA enumlf; SendDlgItemMessageA(hDlg, cmb1, CB_GETLBTEXT, i, - (LPARAM)str); - TRACE("WM_COMMAND/cmb1 =>%s\n",str); + (LPARAM)enumlf.lfFaceName); + TRACE("WM_COMMAND/cmb1 =>%s\n",enumlf.lfFaceName); s.hWnd1=GetDlgItem(hDlg, cmb2); s.hWnd2=GetDlgItem(hDlg, cmb3); s.lpcf32a=lpcf; - EnumFontFamiliesA(hdc, str, FontStyleEnumProc, (LPARAM)&s); + enumlf.lfCharSet = DEFAULT_CHARSET; /* enum all charsets */ + enumlf.lfPitchAndFamily = 0; + EnumFontFamiliesExA(hdc, &enumlf, + (FONTENUMPROCA)FontStyleEnumProc, (LPARAM)&s, 0); CFn_FitFontStyle(hDlg, pstyle); - CFn_FitFontSize(hDlg, pointsize); + if( pointsize != CB_ERR) CFn_FitFontSize(hDlg, pointsize); + if( charset != CB_ERR) CFn_FitCharSet( hDlg, charset ); SetCursor(hcursor); } if (!((lpcf->Flags & CF_PRINTERFONTS) && lpcf->hDC)) @@ -927,6 +975,7 @@ LRESULT CFn_WMCommand(HWND hDlg, WPARAM wParam, LPARAM lParam, case chx2: case cmb2: case cmb3: + case cmb5: if (HIWORD(wParam)==CBN_SELCHANGE || HIWORD(wParam)== BN_CLICKED ) { char str[256]; @@ -964,6 +1013,9 @@ LRESULT CFn_WMCommand(HWND hDlg, WPARAM wParam, LPARAM lParam, lpxx->lfHeight=-LOWORD(SendDlgItemMessageA(hDlg, cmb3, CB_GETITEMDATA, i, 0)); else lpxx->lfHeight=0; + i=SendDlgItemMessageA(hDlg, cmb5, CB_GETCURSEL, 0, 0); + if (i!=CB_ERR) + lpxx->lfCharSet=SendDlgItemMessageA(hDlg, cmb5, CB_GETITEMDATA, i, 0); lpxx->lfStrikeOut=IsDlgButtonChecked(hDlg,chx1); lpxx->lfUnderline=IsDlgButtonChecked(hDlg,chx2); lpxx->lfWidth=lpxx->lfOrientation=lpxx->lfEscapement=0; @@ -1033,7 +1085,7 @@ LRESULT CFn_WMDestroy(HWND hwnd, WPARAM wParam, LPARAM lParam) return TRUE; } -static LRESULT CFn_WMPaint(HWND hDlg, WPARAM wParam, LPARAM lParam, +LRESULT CFn_WMPaint(HWND hDlg, WPARAM wParam, LPARAM lParam, LPCHOOSEFONTA lpcf ) { WINDOWINFO info; @@ -1094,7 +1146,7 @@ INT_PTR CALLBACK FormatCharDlgProcA(HWND hDlg, UINT uMsg, WPARAM wParam, if (uMsg!=WM_INITDIALOG) { lpcf=(LPCHOOSEFONTA)GetWindowLongA(hDlg, DWL_USER); - if (!lpcf) + if (!lpcf && uMsg != WM_MEASUREITEM) return FALSE; if (CFn_HookCallChk32(lpcf)) res=CallWindowProcA((WNDPROC)lpcf->lpfnHook, hDlg, uMsg, wParam, lParam); diff --git a/dlls/commdlg/fontdlg.h b/dlls/commdlg/fontdlg.h index 2f2ef6e6fd0..150878a88ea 100644 --- a/dlls/commdlg/fontdlg.h +++ b/dlls/commdlg/fontdlg.h @@ -45,8 +45,9 @@ typedef struct INT AddFontFamily(const LOGFONTA *lplf, UINT nFontType, LPCHOOSEFONTA lpcf, HWND hwnd, LPCFn_ENUMSTRUCT e); -INT AddFontStyle(const LOGFONTA *lplf, UINT nFontType, LPCHOOSEFONTA lpcf, - HWND hcmb2, HWND hcmb3, HWND hDlg); +INT AddFontStyle(const ENUMLOGFONTEXA *lpElfex, UINT nFontType, + LPCHOOSEFONTA lpcf, HWND hcmb2, + HWND hcmb3, HWND hDlg, BOOL iswin16); void _dump_cf_flags(DWORD cflags); LRESULT CFn_WMInitDialog(HWND hDlg, WPARAM wParam, LPARAM lParam, @@ -55,6 +56,8 @@ LRESULT CFn_WMMeasureItem(HWND hDlg, WPARAM wParam, LPARAM lParam); LRESULT CFn_WMDrawItem(HWND hDlg, WPARAM wParam, LPARAM lParam); LRESULT CFn_WMCommand(HWND hDlg, WPARAM wParam, LPARAM lParam, LPCHOOSEFONTA lpcf); +LRESULT CFn_WMPaint(HWND hDlg, WPARAM wParam, LPARAM lParam, + LPCHOOSEFONTA lpcf); LRESULT CFn_WMDestroy(HWND hwnd, WPARAM wParam, LPARAM lParam); #endif /* _WINE_FONTDLG_H */ diff --git a/dlls/commdlg/fontdlg16.c b/dlls/commdlg/fontdlg16.c index 61dd598efa7..cf334436d34 100644 --- a/dlls/commdlg/fontdlg16.c +++ b/dlls/commdlg/fontdlg16.c @@ -117,10 +117,10 @@ INT16 WINAPI FontStyleEnumProc16( SEGPTR logfont, SEGPTR metrics, HWND hDlg=GetParent(hcmb3); LPCHOOSEFONT16 lpcf=(LPCHOOSEFONT16)GetWindowLongA(hDlg, DWL_USER); LOGFONT16 *lplf = MapSL(logfont); - LOGFONTA lf32a; - FONT_LogFont16To32A(lplf, &lf32a); - return AddFontStyle(&lf32a, nFontType, (LPCHOOSEFONTA)lpcf->lpTemplateName, - hcmb2, hcmb3, hDlg); + ENUMLOGFONTEXA elf32a; + FONT_LogFont16To32A(lplf, &(elf32a.elfLogFont)); + return AddFontStyle(&elf32a, nFontType, (LPCHOOSEFONTA)lpcf->lpTemplateName, + hcmb2, hcmb3, hDlg, TRUE); } /*********************************************************************** @@ -257,12 +257,11 @@ BOOL16 CALLBACK FormatCharDlgProc16(HWND16 hDlg16, UINT16 message, { HWND hDlg = HWND_32(hDlg16); LPCHOOSEFONT16 lpcf; - LPCHOOSEFONTA lpcf32a; BOOL16 res=0; if (message!=WM_INITDIALOG) { lpcf=(LPCHOOSEFONT16)GetWindowLongA(hDlg, DWL_USER); - if (!lpcf) + if (!lpcf && message != WM_MEASUREITEM) return FALSE; if (CFn_HookCallChk(lpcf)) res=CallWindowProc16((WNDPROC16)lpcf->lpfnHook,hDlg16,message,wParam,lParam); @@ -272,8 +271,7 @@ BOOL16 CALLBACK FormatCharDlgProc16(HWND16 hDlg16, UINT16 message, else { lpcf=(LPCHOOSEFONT16)lParam; - lpcf32a=(LPCHOOSEFONTA)lpcf->lpTemplateName; - if (!CFn_WMInitDialog(hDlg, wParam, lParam, lpcf32a)) + if (!CFn_WMInitDialog(hDlg, wParam, lParam, (LPCHOOSEFONTA)lpcf->lpTemplateName)) { TRACE("CFn_WMInitDialog returned FALSE\n"); return FALSE; @@ -281,7 +279,6 @@ BOOL16 CALLBACK FormatCharDlgProc16(HWND16 hDlg16, UINT16 message, if (CFn_HookCallChk(lpcf)) return CallWindowProc16((WNDPROC16)lpcf->lpfnHook,hDlg16,WM_INITDIALOG,wParam,lParam); } - lpcf32a=(LPCHOOSEFONTA)lpcf->lpTemplateName; switch (message) { case WM_MEASUREITEM: @@ -316,7 +313,8 @@ BOOL16 CALLBACK FormatCharDlgProc16(HWND16 hDlg16, UINT16 message, } break; case WM_COMMAND: - res=CFn_WMCommand(hDlg, MAKEWPARAM( wParam, HIWORD(lParam) ), LOWORD(lParam), lpcf32a); + res=CFn_WMCommand(hDlg, MAKEWPARAM( wParam, HIWORD(lParam) ), LOWORD(lParam), + (LPCHOOSEFONTA)lpcf->lpTemplateName); break; case WM_DESTROY: res=CFn_WMDestroy(hDlg, wParam, lParam); @@ -325,6 +323,9 @@ BOOL16 CALLBACK FormatCharDlgProc16(HWND16 hDlg16, UINT16 message, TRACE("WM_CHOOSEFONT_GETLOGFONT lParam=%08lX\n", lParam); FIXME("current logfont back to caller\n"); break; + case WM_PAINT: + res= CFn_WMPaint(hDlg, wParam, lParam, (LPCHOOSEFONTA)lpcf->lpTemplateName); + break; } return res; }