PATCH: choosefont small fix
Marcus Meissner
marcus at jet.franken.de
Fri May 4 03:09:55 CDT 2001
Hi,
When we do not have a valid logfont structure to select fonts, the 'height'
and 'weight' fields were empty leading to problematic results.
I now select the resp. first weight and height available as default when
changing the fontname selection box.
Ciao, Marcus
Changelog:
debugoutput for flags, select first available height and weight
when selecting a font.
Index: fontdlg.c
===================================================================
RCS file: /home/wine/wine/dlls/commdlg/fontdlg.c,v
retrieving revision 1.29
diff -u -r1.29 fontdlg.c
--- fontdlg.c 2001/01/22 02:13:58 1.29
+++ fontdlg.c 2001/05/04 09:07:58
@@ -72,6 +72,50 @@
FONT_LogFont16To32A(MapSL(chf16->lpLogFont), chf32a->lpLogFont);
}
+struct {
+ int mask;
+ char *name;
+} cfflags[] = {
+#define XX(x) { x, #x },
+ XX(CF_SCREENFONTS)
+ XX(CF_PRINTERFONTS)
+ XX(CF_SHOWHELP)
+ XX(CF_ENABLEHOOK)
+ XX(CF_ENABLETEMPLATE)
+ XX(CF_ENABLETEMPLATEHANDLE)
+ XX(CF_INITTOLOGFONTSTRUCT)
+ XX(CF_USESTYLE)
+ XX(CF_EFFECTS)
+ XX(CF_APPLY)
+ XX(CF_ANSIONLY)
+ XX(CF_NOVECTORFONTS)
+ XX(CF_NOSIMULATIONS)
+ XX(CF_LIMITSIZE)
+ XX(CF_FIXEDPITCHONLY)
+ XX(CF_WYSIWYG)
+ XX(CF_FORCEFONTEXIST)
+ XX(CF_SCALABLEONLY)
+ XX(CF_TTONLY)
+ XX(CF_NOFACESEL)
+ XX(CF_NOSTYLESEL)
+ XX(CF_NOSIZESEL)
+ XX(CF_SELECTSCRIPT)
+ XX(CF_NOSCRIPTSEL)
+ XX(CF_NOVERTFONTS)
+#undef XX
+ {0,NULL},
+};
+
+static void
+_dump_cf_flags(DWORD cflags) {
+ int i;
+
+ for (i=0;cfflags[i].name;i++)
+ if (cfflags[i].mask & cflags)
+ MESSAGE("%s|",cfflags[i].name);
+ MESSAGE("\n");
+}
+
/***********************************************************************
* ChooseFont16 (COMMDLG.15)
@@ -95,6 +139,9 @@
TRACE("ChooseFont\n");
if (!lpChFont) return FALSE;
+ if (TRACE_ON(commdlg))
+ _dump_cf_flags(lpChFont->Flags);
+
if (lpChFont->Flags & CF_ENABLETEMPLATEHANDLE)
{
if (!(template = LockResource16( lpChFont->hInstance )))
@@ -212,6 +259,8 @@
COMDLG32_SetCommDlgExtendedError(CDERR_LOADRESFAILURE);
return FALSE;
}
+ if (TRACE_ON(commdlg))
+ _dump_cf_flags(lpChFont->Flags);
if (lpChFont->Flags & (CF_SELECTSCRIPT | CF_NOVERTFONTS | CF_ENABLETEMPLATE |
CF_ENABLETEMPLATEHANDLE)) FIXME(": unimplemented flag (ignored)\n");
@@ -230,6 +279,9 @@
LPCVOID template;
HANDLE hResInfo, hDlgTmpl;
+ if (TRACE_ON(commdlg))
+ _dump_cf_flags(lpChFont->Flags);
+
if (!(hResInfo = FindResourceA(COMMDLG_hInstance32, "CHOOSE_FONT", RT_DIALOGA)))
{
COMDLG32_SetCommDlgExtendedError(CDERR_FINDRESFAILURE);
@@ -802,6 +854,8 @@
s.hWnd2=GetDlgItem(hDlg, cmb3);
s.lpcf32a=lpcf;
EnumFontFamiliesA(hdc, str, FontStyleEnumProc, (LPARAM)&s);
+ SendDlgItemMessageA(hDlg,cmb2, CB_SETCURSEL, 0, 0);
+ SendDlgItemMessageA(hDlg,cmb3, CB_SETCURSEL, 0, 0);
SetCursor(hcursor);
}
if (!(lpcf->Flags & CF_PRINTERFONTS && lpcf->hDC))
More information about the wine-patches
mailing list