moved wxMGL's font management code to common so that it can be reused by wxDFB; implemented wxDFB part

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@43550 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Václav Slavík
2006-11-20 20:45:57 +00:00
parent 9e1fc0e428
commit d7ae4a6264
22 changed files with 1293 additions and 467 deletions

View File

@@ -1845,7 +1845,6 @@ COND_TOOLKIT_MGL_LOWLEVEL_HDR = \
wx/mgl/dcmemory.h \ wx/mgl/dcmemory.h \
wx/mgl/dcscreen.h \ wx/mgl/dcscreen.h \
wx/mgl/font.h \ wx/mgl/font.h \
wx/mgl/fontutil.h \
wx/mgl/palette.h \ wx/mgl/palette.h \
wx/mgl/pen.h \ wx/mgl/pen.h \
wx/mgl/popupwin.h \ wx/mgl/popupwin.h \
@@ -3716,6 +3715,7 @@ COND_USE_GUI_1_WXUNIV_1___CORE_SRC_OBJECTS = \
@COND_TOOLKIT_COCOA@__LOWLEVEL_SRC_OBJECTS = \ @COND_TOOLKIT_COCOA@__LOWLEVEL_SRC_OBJECTS = \
@COND_TOOLKIT_COCOA@ monodll_gsockosx.o monodll_hid.o monodll_utilsexc_cf.o @COND_TOOLKIT_COCOA@ monodll_gsockosx.o monodll_hid.o monodll_utilsexc_cf.o
COND_TOOLKIT_DFB___LOWLEVEL_SRC_OBJECTS = \ COND_TOOLKIT_DFB___LOWLEVEL_SRC_OBJECTS = \
monodll_fontmgrcmn.o \
monodll_caret.o \ monodll_caret.o \
monodll_colour.o \ monodll_colour.o \
monodll_icon.o \ monodll_icon.o \
@@ -3733,6 +3733,7 @@ COND_TOOLKIT_DFB___LOWLEVEL_SRC_OBJECTS = \
monodll_evtloop.o \ monodll_evtloop.o \
monodll_font.o \ monodll_font.o \
monodll_fontenum.o \ monodll_fontenum.o \
monodll_fontmgr.o \
monodll_overlay.o \ monodll_overlay.o \
monodll_pen.o \ monodll_pen.o \
monodll_region.o \ monodll_region.o \
@@ -3824,6 +3825,7 @@ COND_TOOLKIT_GTK_TOOLKIT_VERSION_2___LOWLEVEL_SRC_OBJECTS = \
@COND_TOOLKIT_GTK_TOOLKIT_VERSION_2@__LOWLEVEL_SRC_OBJECTS = $(COND_TOOLKIT_GTK_TOOLKIT_VERSION_2___LOWLEVEL_SRC_OBJECTS) @COND_TOOLKIT_GTK_TOOLKIT_VERSION_2@__LOWLEVEL_SRC_OBJECTS = $(COND_TOOLKIT_GTK_TOOLKIT_VERSION_2___LOWLEVEL_SRC_OBJECTS)
@COND_TOOLKIT_MAC@__LOWLEVEL_SRC_OBJECTS = $(__MAC_LOWLEVEL_SRC_OBJECTS) @COND_TOOLKIT_MAC@__LOWLEVEL_SRC_OBJECTS = $(__MAC_LOWLEVEL_SRC_OBJECTS)
COND_TOOLKIT_MGL___LOWLEVEL_SRC_OBJECTS = \ COND_TOOLKIT_MGL___LOWLEVEL_SRC_OBJECTS = \
monodll_fontmgrcmn.o \
monodll_caret.o \ monodll_caret.o \
monodll_colour.o \ monodll_colour.o \
monodll_icon.o \ monodll_icon.o \
@@ -3844,6 +3846,7 @@ COND_TOOLKIT_MGL___LOWLEVEL_SRC_OBJECTS = \
monodll_evtloop.o \ monodll_evtloop.o \
monodll_font.o \ monodll_font.o \
monodll_fontenum.o \ monodll_fontenum.o \
monodll_fontmgr.o \
monodll_fontutil.o \ monodll_fontutil.o \
monodll_palette.o \ monodll_palette.o \
monodll_pen.o \ monodll_pen.o \
@@ -4542,6 +4545,7 @@ COND_TOOLKIT_WINCE___GUI_SRC_OBJECTS = \
@COND_TOOLKIT_COCOA@__LOWLEVEL_SRC_OBJECTS_1 = \ @COND_TOOLKIT_COCOA@__LOWLEVEL_SRC_OBJECTS_1 = \
@COND_TOOLKIT_COCOA@ monodll_gsockosx.o monodll_hid.o monodll_utilsexc_cf.o @COND_TOOLKIT_COCOA@ monodll_gsockosx.o monodll_hid.o monodll_utilsexc_cf.o
COND_TOOLKIT_DFB___LOWLEVEL_SRC_OBJECTS_1 = \ COND_TOOLKIT_DFB___LOWLEVEL_SRC_OBJECTS_1 = \
monodll_fontmgrcmn.o \
monodll_caret.o \ monodll_caret.o \
monodll_colour.o \ monodll_colour.o \
monodll_icon.o \ monodll_icon.o \
@@ -4559,6 +4563,7 @@ COND_TOOLKIT_DFB___LOWLEVEL_SRC_OBJECTS_1 = \
monodll_evtloop.o \ monodll_evtloop.o \
monodll_font.o \ monodll_font.o \
monodll_fontenum.o \ monodll_fontenum.o \
monodll_fontmgr.o \
monodll_overlay.o \ monodll_overlay.o \
monodll_pen.o \ monodll_pen.o \
monodll_region.o \ monodll_region.o \
@@ -4650,6 +4655,7 @@ COND_TOOLKIT_GTK_TOOLKIT_VERSION_2___LOWLEVEL_SRC_OBJECTS_1 = \
@COND_TOOLKIT_GTK_TOOLKIT_VERSION_2@__LOWLEVEL_SRC_OBJECTS_1 = $(COND_TOOLKIT_GTK_TOOLKIT_VERSION_2___LOWLEVEL_SRC_OBJECTS_1) @COND_TOOLKIT_GTK_TOOLKIT_VERSION_2@__LOWLEVEL_SRC_OBJECTS_1 = $(COND_TOOLKIT_GTK_TOOLKIT_VERSION_2___LOWLEVEL_SRC_OBJECTS_1)
@COND_TOOLKIT_MAC@__LOWLEVEL_SRC_OBJECTS_1 = $(__MAC_LOWLEVEL_SRC_OBJECTS) @COND_TOOLKIT_MAC@__LOWLEVEL_SRC_OBJECTS_1 = $(__MAC_LOWLEVEL_SRC_OBJECTS)
COND_TOOLKIT_MGL___LOWLEVEL_SRC_OBJECTS_1 = \ COND_TOOLKIT_MGL___LOWLEVEL_SRC_OBJECTS_1 = \
monodll_fontmgrcmn.o \
monodll_caret.o \ monodll_caret.o \
monodll_colour.o \ monodll_colour.o \
monodll_icon.o \ monodll_icon.o \
@@ -4670,6 +4676,7 @@ COND_TOOLKIT_MGL___LOWLEVEL_SRC_OBJECTS_1 = \
monodll_evtloop.o \ monodll_evtloop.o \
monodll_font.o \ monodll_font.o \
monodll_fontenum.o \ monodll_fontenum.o \
monodll_fontmgr.o \
monodll_fontutil.o \ monodll_fontutil.o \
monodll_palette.o \ monodll_palette.o \
monodll_pen.o \ monodll_pen.o \
@@ -5480,6 +5487,7 @@ COND_USE_GUI_1_WXUNIV_1___CORE_SRC_OBJECTS_1 = \
@COND_TOOLKIT_COCOA@__LOWLEVEL_SRC_OBJECTS_2 = \ @COND_TOOLKIT_COCOA@__LOWLEVEL_SRC_OBJECTS_2 = \
@COND_TOOLKIT_COCOA@ monolib_gsockosx.o monolib_hid.o monolib_utilsexc_cf.o @COND_TOOLKIT_COCOA@ monolib_gsockosx.o monolib_hid.o monolib_utilsexc_cf.o
COND_TOOLKIT_DFB___LOWLEVEL_SRC_OBJECTS_2 = \ COND_TOOLKIT_DFB___LOWLEVEL_SRC_OBJECTS_2 = \
monolib_fontmgrcmn.o \
monolib_caret.o \ monolib_caret.o \
monolib_colour.o \ monolib_colour.o \
monolib_icon.o \ monolib_icon.o \
@@ -5497,6 +5505,7 @@ COND_TOOLKIT_DFB___LOWLEVEL_SRC_OBJECTS_2 = \
monolib_evtloop.o \ monolib_evtloop.o \
monolib_font.o \ monolib_font.o \
monolib_fontenum.o \ monolib_fontenum.o \
monolib_fontmgr.o \
monolib_overlay.o \ monolib_overlay.o \
monolib_pen.o \ monolib_pen.o \
monolib_region.o \ monolib_region.o \
@@ -5589,6 +5598,7 @@ COND_TOOLKIT_GTK_TOOLKIT_VERSION_2___LOWLEVEL_SRC_OBJECTS_2 = \
@COND_TOOLKIT_MAC@__LOWLEVEL_SRC_OBJECTS_2 = \ @COND_TOOLKIT_MAC@__LOWLEVEL_SRC_OBJECTS_2 = \
@COND_TOOLKIT_MAC@ $(__MAC_LOWLEVEL_SRC_OBJECTS_0) @COND_TOOLKIT_MAC@ $(__MAC_LOWLEVEL_SRC_OBJECTS_0)
COND_TOOLKIT_MGL___LOWLEVEL_SRC_OBJECTS_2 = \ COND_TOOLKIT_MGL___LOWLEVEL_SRC_OBJECTS_2 = \
monolib_fontmgrcmn.o \
monolib_caret.o \ monolib_caret.o \
monolib_colour.o \ monolib_colour.o \
monolib_icon.o \ monolib_icon.o \
@@ -5609,6 +5619,7 @@ COND_TOOLKIT_MGL___LOWLEVEL_SRC_OBJECTS_2 = \
monolib_evtloop.o \ monolib_evtloop.o \
monolib_font.o \ monolib_font.o \
monolib_fontenum.o \ monolib_fontenum.o \
monolib_fontmgr.o \
monolib_fontutil.o \ monolib_fontutil.o \
monolib_palette.o \ monolib_palette.o \
monolib_pen.o \ monolib_pen.o \
@@ -6307,6 +6318,7 @@ COND_TOOLKIT_WINCE___GUI_SRC_OBJECTS_1 = \
@COND_TOOLKIT_COCOA@__LOWLEVEL_SRC_OBJECTS_3 = \ @COND_TOOLKIT_COCOA@__LOWLEVEL_SRC_OBJECTS_3 = \
@COND_TOOLKIT_COCOA@ monolib_gsockosx.o monolib_hid.o monolib_utilsexc_cf.o @COND_TOOLKIT_COCOA@ monolib_gsockosx.o monolib_hid.o monolib_utilsexc_cf.o
COND_TOOLKIT_DFB___LOWLEVEL_SRC_OBJECTS_3 = \ COND_TOOLKIT_DFB___LOWLEVEL_SRC_OBJECTS_3 = \
monolib_fontmgrcmn.o \
monolib_caret.o \ monolib_caret.o \
monolib_colour.o \ monolib_colour.o \
monolib_icon.o \ monolib_icon.o \
@@ -6324,6 +6336,7 @@ COND_TOOLKIT_DFB___LOWLEVEL_SRC_OBJECTS_3 = \
monolib_evtloop.o \ monolib_evtloop.o \
monolib_font.o \ monolib_font.o \
monolib_fontenum.o \ monolib_fontenum.o \
monolib_fontmgr.o \
monolib_overlay.o \ monolib_overlay.o \
monolib_pen.o \ monolib_pen.o \
monolib_region.o \ monolib_region.o \
@@ -6416,6 +6429,7 @@ COND_TOOLKIT_GTK_TOOLKIT_VERSION_2___LOWLEVEL_SRC_OBJECTS_3 = \
@COND_TOOLKIT_MAC@__LOWLEVEL_SRC_OBJECTS_3 = \ @COND_TOOLKIT_MAC@__LOWLEVEL_SRC_OBJECTS_3 = \
@COND_TOOLKIT_MAC@ $(__MAC_LOWLEVEL_SRC_OBJECTS_0) @COND_TOOLKIT_MAC@ $(__MAC_LOWLEVEL_SRC_OBJECTS_0)
COND_TOOLKIT_MGL___LOWLEVEL_SRC_OBJECTS_3 = \ COND_TOOLKIT_MGL___LOWLEVEL_SRC_OBJECTS_3 = \
monolib_fontmgrcmn.o \
monolib_caret.o \ monolib_caret.o \
monolib_colour.o \ monolib_colour.o \
monolib_icon.o \ monolib_icon.o \
@@ -6436,6 +6450,7 @@ COND_TOOLKIT_MGL___LOWLEVEL_SRC_OBJECTS_3 = \
monolib_evtloop.o \ monolib_evtloop.o \
monolib_font.o \ monolib_font.o \
monolib_fontenum.o \ monolib_fontenum.o \
monolib_fontmgr.o \
monolib_fontutil.o \ monolib_fontutil.o \
monolib_palette.o \ monolib_palette.o \
monolib_pen.o \ monolib_pen.o \
@@ -7474,6 +7489,7 @@ COND_USE_GUI_1_WXUNIV_1___CORE_SRC_OBJECTS_2 = \
@COND_TOOLKIT_COCOA@__LOWLEVEL_SRC_OBJECTS_4 = \ @COND_TOOLKIT_COCOA@__LOWLEVEL_SRC_OBJECTS_4 = \
@COND_TOOLKIT_COCOA@ coredll_gsockosx.o coredll_hid.o coredll_utilsexc_cf.o @COND_TOOLKIT_COCOA@ coredll_gsockosx.o coredll_hid.o coredll_utilsexc_cf.o
COND_TOOLKIT_DFB___LOWLEVEL_SRC_OBJECTS_4 = \ COND_TOOLKIT_DFB___LOWLEVEL_SRC_OBJECTS_4 = \
coredll_fontmgrcmn.o \
coredll_caret.o \ coredll_caret.o \
coredll_colour.o \ coredll_colour.o \
coredll_icon.o \ coredll_icon.o \
@@ -7491,6 +7507,7 @@ COND_TOOLKIT_DFB___LOWLEVEL_SRC_OBJECTS_4 = \
coredll_evtloop.o \ coredll_evtloop.o \
coredll_font.o \ coredll_font.o \
coredll_fontenum.o \ coredll_fontenum.o \
coredll_fontmgr.o \
coredll_overlay.o \ coredll_overlay.o \
coredll_pen.o \ coredll_pen.o \
coredll_region.o \ coredll_region.o \
@@ -7583,6 +7600,7 @@ COND_TOOLKIT_GTK_TOOLKIT_VERSION_2___LOWLEVEL_SRC_OBJECTS_4 = \
@COND_TOOLKIT_MAC@__LOWLEVEL_SRC_OBJECTS_4 = \ @COND_TOOLKIT_MAC@__LOWLEVEL_SRC_OBJECTS_4 = \
@COND_TOOLKIT_MAC@ $(__MAC_LOWLEVEL_SRC_OBJECTS_8) @COND_TOOLKIT_MAC@ $(__MAC_LOWLEVEL_SRC_OBJECTS_8)
COND_TOOLKIT_MGL___LOWLEVEL_SRC_OBJECTS_4 = \ COND_TOOLKIT_MGL___LOWLEVEL_SRC_OBJECTS_4 = \
coredll_fontmgrcmn.o \
coredll_caret.o \ coredll_caret.o \
coredll_colour.o \ coredll_colour.o \
coredll_icon.o \ coredll_icon.o \
@@ -7603,6 +7621,7 @@ COND_TOOLKIT_MGL___LOWLEVEL_SRC_OBJECTS_4 = \
coredll_evtloop.o \ coredll_evtloop.o \
coredll_font.o \ coredll_font.o \
coredll_fontenum.o \ coredll_fontenum.o \
coredll_fontmgr.o \
coredll_fontutil.o \ coredll_fontutil.o \
coredll_palette.o \ coredll_palette.o \
coredll_pen.o \ coredll_pen.o \
@@ -8301,6 +8320,7 @@ COND_TOOLKIT_WINCE___GUI_SRC_OBJECTS_2 = \
@COND_TOOLKIT_COCOA@__LOWLEVEL_SRC_OBJECTS_5 = \ @COND_TOOLKIT_COCOA@__LOWLEVEL_SRC_OBJECTS_5 = \
@COND_TOOLKIT_COCOA@ coredll_gsockosx.o coredll_hid.o coredll_utilsexc_cf.o @COND_TOOLKIT_COCOA@ coredll_gsockosx.o coredll_hid.o coredll_utilsexc_cf.o
COND_TOOLKIT_DFB___LOWLEVEL_SRC_OBJECTS_5 = \ COND_TOOLKIT_DFB___LOWLEVEL_SRC_OBJECTS_5 = \
coredll_fontmgrcmn.o \
coredll_caret.o \ coredll_caret.o \
coredll_colour.o \ coredll_colour.o \
coredll_icon.o \ coredll_icon.o \
@@ -8318,6 +8338,7 @@ COND_TOOLKIT_DFB___LOWLEVEL_SRC_OBJECTS_5 = \
coredll_evtloop.o \ coredll_evtloop.o \
coredll_font.o \ coredll_font.o \
coredll_fontenum.o \ coredll_fontenum.o \
coredll_fontmgr.o \
coredll_overlay.o \ coredll_overlay.o \
coredll_pen.o \ coredll_pen.o \
coredll_region.o \ coredll_region.o \
@@ -8410,6 +8431,7 @@ COND_TOOLKIT_GTK_TOOLKIT_VERSION_2___LOWLEVEL_SRC_OBJECTS_5 = \
@COND_TOOLKIT_MAC@__LOWLEVEL_SRC_OBJECTS_5 = \ @COND_TOOLKIT_MAC@__LOWLEVEL_SRC_OBJECTS_5 = \
@COND_TOOLKIT_MAC@ $(__MAC_LOWLEVEL_SRC_OBJECTS_8) @COND_TOOLKIT_MAC@ $(__MAC_LOWLEVEL_SRC_OBJECTS_8)
COND_TOOLKIT_MGL___LOWLEVEL_SRC_OBJECTS_5 = \ COND_TOOLKIT_MGL___LOWLEVEL_SRC_OBJECTS_5 = \
coredll_fontmgrcmn.o \
coredll_caret.o \ coredll_caret.o \
coredll_colour.o \ coredll_colour.o \
coredll_icon.o \ coredll_icon.o \
@@ -8430,6 +8452,7 @@ COND_TOOLKIT_MGL___LOWLEVEL_SRC_OBJECTS_5 = \
coredll_evtloop.o \ coredll_evtloop.o \
coredll_font.o \ coredll_font.o \
coredll_fontenum.o \ coredll_fontenum.o \
coredll_fontmgr.o \
coredll_fontutil.o \ coredll_fontutil.o \
coredll_palette.o \ coredll_palette.o \
coredll_pen.o \ coredll_pen.o \
@@ -8912,6 +8935,7 @@ COND_USE_GUI_1_WXUNIV_1___CORE_SRC_OBJECTS_3 = \
@COND_TOOLKIT_COCOA@__LOWLEVEL_SRC_OBJECTS_6 = \ @COND_TOOLKIT_COCOA@__LOWLEVEL_SRC_OBJECTS_6 = \
@COND_TOOLKIT_COCOA@ corelib_gsockosx.o corelib_hid.o corelib_utilsexc_cf.o @COND_TOOLKIT_COCOA@ corelib_gsockosx.o corelib_hid.o corelib_utilsexc_cf.o
COND_TOOLKIT_DFB___LOWLEVEL_SRC_OBJECTS_6 = \ COND_TOOLKIT_DFB___LOWLEVEL_SRC_OBJECTS_6 = \
corelib_fontmgrcmn.o \
corelib_caret.o \ corelib_caret.o \
corelib_colour.o \ corelib_colour.o \
corelib_icon.o \ corelib_icon.o \
@@ -8929,6 +8953,7 @@ COND_TOOLKIT_DFB___LOWLEVEL_SRC_OBJECTS_6 = \
corelib_evtloop.o \ corelib_evtloop.o \
corelib_font.o \ corelib_font.o \
corelib_fontenum.o \ corelib_fontenum.o \
corelib_fontmgr.o \
corelib_overlay.o \ corelib_overlay.o \
corelib_pen.o \ corelib_pen.o \
corelib_region.o \ corelib_region.o \
@@ -9021,6 +9046,7 @@ COND_TOOLKIT_GTK_TOOLKIT_VERSION_2___LOWLEVEL_SRC_OBJECTS_6 = \
@COND_TOOLKIT_MAC@__LOWLEVEL_SRC_OBJECTS_6 = \ @COND_TOOLKIT_MAC@__LOWLEVEL_SRC_OBJECTS_6 = \
@COND_TOOLKIT_MAC@ $(__MAC_LOWLEVEL_SRC_OBJECTS_9) @COND_TOOLKIT_MAC@ $(__MAC_LOWLEVEL_SRC_OBJECTS_9)
COND_TOOLKIT_MGL___LOWLEVEL_SRC_OBJECTS_6 = \ COND_TOOLKIT_MGL___LOWLEVEL_SRC_OBJECTS_6 = \
corelib_fontmgrcmn.o \
corelib_caret.o \ corelib_caret.o \
corelib_colour.o \ corelib_colour.o \
corelib_icon.o \ corelib_icon.o \
@@ -9041,6 +9067,7 @@ COND_TOOLKIT_MGL___LOWLEVEL_SRC_OBJECTS_6 = \
corelib_evtloop.o \ corelib_evtloop.o \
corelib_font.o \ corelib_font.o \
corelib_fontenum.o \ corelib_fontenum.o \
corelib_fontmgr.o \
corelib_fontutil.o \ corelib_fontutil.o \
corelib_palette.o \ corelib_palette.o \
corelib_pen.o \ corelib_pen.o \
@@ -9739,6 +9766,7 @@ COND_TOOLKIT_WINCE___GUI_SRC_OBJECTS_3 = \
@COND_TOOLKIT_COCOA@__LOWLEVEL_SRC_OBJECTS_7 = \ @COND_TOOLKIT_COCOA@__LOWLEVEL_SRC_OBJECTS_7 = \
@COND_TOOLKIT_COCOA@ corelib_gsockosx.o corelib_hid.o corelib_utilsexc_cf.o @COND_TOOLKIT_COCOA@ corelib_gsockosx.o corelib_hid.o corelib_utilsexc_cf.o
COND_TOOLKIT_DFB___LOWLEVEL_SRC_OBJECTS_7 = \ COND_TOOLKIT_DFB___LOWLEVEL_SRC_OBJECTS_7 = \
corelib_fontmgrcmn.o \
corelib_caret.o \ corelib_caret.o \
corelib_colour.o \ corelib_colour.o \
corelib_icon.o \ corelib_icon.o \
@@ -9756,6 +9784,7 @@ COND_TOOLKIT_DFB___LOWLEVEL_SRC_OBJECTS_7 = \
corelib_evtloop.o \ corelib_evtloop.o \
corelib_font.o \ corelib_font.o \
corelib_fontenum.o \ corelib_fontenum.o \
corelib_fontmgr.o \
corelib_overlay.o \ corelib_overlay.o \
corelib_pen.o \ corelib_pen.o \
corelib_region.o \ corelib_region.o \
@@ -9848,6 +9877,7 @@ COND_TOOLKIT_GTK_TOOLKIT_VERSION_2___LOWLEVEL_SRC_OBJECTS_7 = \
@COND_TOOLKIT_MAC@__LOWLEVEL_SRC_OBJECTS_7 = \ @COND_TOOLKIT_MAC@__LOWLEVEL_SRC_OBJECTS_7 = \
@COND_TOOLKIT_MAC@ $(__MAC_LOWLEVEL_SRC_OBJECTS_9) @COND_TOOLKIT_MAC@ $(__MAC_LOWLEVEL_SRC_OBJECTS_9)
COND_TOOLKIT_MGL___LOWLEVEL_SRC_OBJECTS_7 = \ COND_TOOLKIT_MGL___LOWLEVEL_SRC_OBJECTS_7 = \
corelib_fontmgrcmn.o \
corelib_caret.o \ corelib_caret.o \
corelib_colour.o \ corelib_colour.o \
corelib_icon.o \ corelib_icon.o \
@@ -9868,6 +9898,7 @@ COND_TOOLKIT_MGL___LOWLEVEL_SRC_OBJECTS_7 = \
corelib_evtloop.o \ corelib_evtloop.o \
corelib_font.o \ corelib_font.o \
corelib_fontenum.o \ corelib_fontenum.o \
corelib_fontmgr.o \
corelib_fontutil.o \ corelib_fontutil.o \
corelib_palette.o \ corelib_palette.o \
corelib_pen.o \ corelib_pen.o \
@@ -14747,6 +14778,12 @@ monodll_sound_sdl.o: $(srcdir)/src/unix/sound_sdl.cpp $(MONODLL_ODEP)
@COND_TOOLKIT_X11_USE_GUI_1@monodll_reparent.o: $(srcdir)/src/x11/reparent.cpp $(MONODLL_ODEP) @COND_TOOLKIT_X11_USE_GUI_1@monodll_reparent.o: $(srcdir)/src/x11/reparent.cpp $(MONODLL_ODEP)
@COND_TOOLKIT_X11_USE_GUI_1@ $(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/x11/reparent.cpp @COND_TOOLKIT_X11_USE_GUI_1@ $(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/x11/reparent.cpp
@COND_TOOLKIT_MGL_USE_GUI_1@monodll_fontmgrcmn.o: $(srcdir)/src/common/fontmgrcmn.cpp $(MONODLL_ODEP)
@COND_TOOLKIT_MGL_USE_GUI_1@ $(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/common/fontmgrcmn.cpp
@COND_TOOLKIT_DFB_USE_GUI_1@monodll_fontmgrcmn.o: $(srcdir)/src/common/fontmgrcmn.cpp $(MONODLL_ODEP)
@COND_TOOLKIT_DFB_USE_GUI_1@ $(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/common/fontmgrcmn.cpp
@COND_TOOLKIT_MGL_USE_GUI_1@monodll_mask.o: $(srcdir)/src/generic/mask.cpp $(MONODLL_ODEP) @COND_TOOLKIT_MGL_USE_GUI_1@monodll_mask.o: $(srcdir)/src/generic/mask.cpp $(MONODLL_ODEP)
@COND_TOOLKIT_MGL_USE_GUI_1@ $(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/generic/mask.cpp @COND_TOOLKIT_MGL_USE_GUI_1@ $(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/generic/mask.cpp
@@ -14756,6 +14793,12 @@ monodll_sound_sdl.o: $(srcdir)/src/unix/sound_sdl.cpp $(MONODLL_ODEP)
@COND_TOOLKIT_MGL_USE_GUI_1@monodll_dirmgl.o: $(srcdir)/src/mgl/dirmgl.cpp $(MONODLL_ODEP) @COND_TOOLKIT_MGL_USE_GUI_1@monodll_dirmgl.o: $(srcdir)/src/mgl/dirmgl.cpp $(MONODLL_ODEP)
@COND_TOOLKIT_MGL_USE_GUI_1@ $(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/mgl/dirmgl.cpp @COND_TOOLKIT_MGL_USE_GUI_1@ $(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/mgl/dirmgl.cpp
@COND_TOOLKIT_MGL_USE_GUI_1@monodll_fontmgr.o: $(srcdir)/src/mgl/fontmgr.cpp $(MONODLL_ODEP)
@COND_TOOLKIT_MGL_USE_GUI_1@ $(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/mgl/fontmgr.cpp
@COND_TOOLKIT_DFB_USE_GUI_1@monodll_fontmgr.o: $(srcdir)/src/dfb/fontmgr.cpp $(MONODLL_ODEP)
@COND_TOOLKIT_DFB_USE_GUI_1@ $(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/dfb/fontmgr.cpp
@COND_TOOLKIT_DFB_USE_GUI_1@monodll_overlay.o: $(srcdir)/src/dfb/overlay.cpp $(MONODLL_ODEP) @COND_TOOLKIT_DFB_USE_GUI_1@monodll_overlay.o: $(srcdir)/src/dfb/overlay.cpp $(MONODLL_ODEP)
@COND_TOOLKIT_DFB_USE_GUI_1@ $(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/dfb/overlay.cpp @COND_TOOLKIT_DFB_USE_GUI_1@ $(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/dfb/overlay.cpp
@@ -18839,6 +18882,12 @@ monolib_sound_sdl.o: $(srcdir)/src/unix/sound_sdl.cpp $(MONOLIB_ODEP)
@COND_TOOLKIT_X11_USE_GUI_1@monolib_reparent.o: $(srcdir)/src/x11/reparent.cpp $(MONOLIB_ODEP) @COND_TOOLKIT_X11_USE_GUI_1@monolib_reparent.o: $(srcdir)/src/x11/reparent.cpp $(MONOLIB_ODEP)
@COND_TOOLKIT_X11_USE_GUI_1@ $(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/x11/reparent.cpp @COND_TOOLKIT_X11_USE_GUI_1@ $(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/x11/reparent.cpp
@COND_TOOLKIT_MGL_USE_GUI_1@monolib_fontmgrcmn.o: $(srcdir)/src/common/fontmgrcmn.cpp $(MONOLIB_ODEP)
@COND_TOOLKIT_MGL_USE_GUI_1@ $(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/common/fontmgrcmn.cpp
@COND_TOOLKIT_DFB_USE_GUI_1@monolib_fontmgrcmn.o: $(srcdir)/src/common/fontmgrcmn.cpp $(MONOLIB_ODEP)
@COND_TOOLKIT_DFB_USE_GUI_1@ $(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/common/fontmgrcmn.cpp
@COND_TOOLKIT_MGL_USE_GUI_1@monolib_mask.o: $(srcdir)/src/generic/mask.cpp $(MONOLIB_ODEP) @COND_TOOLKIT_MGL_USE_GUI_1@monolib_mask.o: $(srcdir)/src/generic/mask.cpp $(MONOLIB_ODEP)
@COND_TOOLKIT_MGL_USE_GUI_1@ $(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/generic/mask.cpp @COND_TOOLKIT_MGL_USE_GUI_1@ $(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/generic/mask.cpp
@@ -18848,6 +18897,12 @@ monolib_sound_sdl.o: $(srcdir)/src/unix/sound_sdl.cpp $(MONOLIB_ODEP)
@COND_TOOLKIT_MGL_USE_GUI_1@monolib_dirmgl.o: $(srcdir)/src/mgl/dirmgl.cpp $(MONOLIB_ODEP) @COND_TOOLKIT_MGL_USE_GUI_1@monolib_dirmgl.o: $(srcdir)/src/mgl/dirmgl.cpp $(MONOLIB_ODEP)
@COND_TOOLKIT_MGL_USE_GUI_1@ $(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/mgl/dirmgl.cpp @COND_TOOLKIT_MGL_USE_GUI_1@ $(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/mgl/dirmgl.cpp
@COND_TOOLKIT_MGL_USE_GUI_1@monolib_fontmgr.o: $(srcdir)/src/mgl/fontmgr.cpp $(MONOLIB_ODEP)
@COND_TOOLKIT_MGL_USE_GUI_1@ $(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/mgl/fontmgr.cpp
@COND_TOOLKIT_DFB_USE_GUI_1@monolib_fontmgr.o: $(srcdir)/src/dfb/fontmgr.cpp $(MONOLIB_ODEP)
@COND_TOOLKIT_DFB_USE_GUI_1@ $(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/dfb/fontmgr.cpp
@COND_TOOLKIT_DFB_USE_GUI_1@monolib_overlay.o: $(srcdir)/src/dfb/overlay.cpp $(MONOLIB_ODEP) @COND_TOOLKIT_DFB_USE_GUI_1@monolib_overlay.o: $(srcdir)/src/dfb/overlay.cpp $(MONOLIB_ODEP)
@COND_TOOLKIT_DFB_USE_GUI_1@ $(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/dfb/overlay.cpp @COND_TOOLKIT_DFB_USE_GUI_1@ $(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/dfb/overlay.cpp
@@ -23312,6 +23367,12 @@ coredll_win32.o: $(srcdir)/src/univ/themes/win32.cpp $(COREDLL_ODEP)
@COND_TOOLKIT_X11_USE_GUI_1@coredll_reparent.o: $(srcdir)/src/x11/reparent.cpp $(COREDLL_ODEP) @COND_TOOLKIT_X11_USE_GUI_1@coredll_reparent.o: $(srcdir)/src/x11/reparent.cpp $(COREDLL_ODEP)
@COND_TOOLKIT_X11_USE_GUI_1@ $(CXXC) -c -o $@ $(COREDLL_CXXFLAGS) $(srcdir)/src/x11/reparent.cpp @COND_TOOLKIT_X11_USE_GUI_1@ $(CXXC) -c -o $@ $(COREDLL_CXXFLAGS) $(srcdir)/src/x11/reparent.cpp
@COND_TOOLKIT_MGL_USE_GUI_1@coredll_fontmgrcmn.o: $(srcdir)/src/common/fontmgrcmn.cpp $(COREDLL_ODEP)
@COND_TOOLKIT_MGL_USE_GUI_1@ $(CXXC) -c -o $@ $(COREDLL_CXXFLAGS) $(srcdir)/src/common/fontmgrcmn.cpp
@COND_TOOLKIT_DFB_USE_GUI_1@coredll_fontmgrcmn.o: $(srcdir)/src/common/fontmgrcmn.cpp $(COREDLL_ODEP)
@COND_TOOLKIT_DFB_USE_GUI_1@ $(CXXC) -c -o $@ $(COREDLL_CXXFLAGS) $(srcdir)/src/common/fontmgrcmn.cpp
@COND_TOOLKIT_MGL_USE_GUI_1@coredll_mask.o: $(srcdir)/src/generic/mask.cpp $(COREDLL_ODEP) @COND_TOOLKIT_MGL_USE_GUI_1@coredll_mask.o: $(srcdir)/src/generic/mask.cpp $(COREDLL_ODEP)
@COND_TOOLKIT_MGL_USE_GUI_1@ $(CXXC) -c -o $@ $(COREDLL_CXXFLAGS) $(srcdir)/src/generic/mask.cpp @COND_TOOLKIT_MGL_USE_GUI_1@ $(CXXC) -c -o $@ $(COREDLL_CXXFLAGS) $(srcdir)/src/generic/mask.cpp
@@ -23321,6 +23382,12 @@ coredll_win32.o: $(srcdir)/src/univ/themes/win32.cpp $(COREDLL_ODEP)
@COND_TOOLKIT_MGL_USE_GUI_1@coredll_dirmgl.o: $(srcdir)/src/mgl/dirmgl.cpp $(COREDLL_ODEP) @COND_TOOLKIT_MGL_USE_GUI_1@coredll_dirmgl.o: $(srcdir)/src/mgl/dirmgl.cpp $(COREDLL_ODEP)
@COND_TOOLKIT_MGL_USE_GUI_1@ $(CXXC) -c -o $@ $(COREDLL_CXXFLAGS) $(srcdir)/src/mgl/dirmgl.cpp @COND_TOOLKIT_MGL_USE_GUI_1@ $(CXXC) -c -o $@ $(COREDLL_CXXFLAGS) $(srcdir)/src/mgl/dirmgl.cpp
@COND_TOOLKIT_MGL_USE_GUI_1@coredll_fontmgr.o: $(srcdir)/src/mgl/fontmgr.cpp $(COREDLL_ODEP)
@COND_TOOLKIT_MGL_USE_GUI_1@ $(CXXC) -c -o $@ $(COREDLL_CXXFLAGS) $(srcdir)/src/mgl/fontmgr.cpp
@COND_TOOLKIT_DFB_USE_GUI_1@coredll_fontmgr.o: $(srcdir)/src/dfb/fontmgr.cpp $(COREDLL_ODEP)
@COND_TOOLKIT_DFB_USE_GUI_1@ $(CXXC) -c -o $@ $(COREDLL_CXXFLAGS) $(srcdir)/src/dfb/fontmgr.cpp
@COND_TOOLKIT_DFB_USE_GUI_1@coredll_overlay.o: $(srcdir)/src/dfb/overlay.cpp $(COREDLL_ODEP) @COND_TOOLKIT_DFB_USE_GUI_1@coredll_overlay.o: $(srcdir)/src/dfb/overlay.cpp $(COREDLL_ODEP)
@COND_TOOLKIT_DFB_USE_GUI_1@ $(CXXC) -c -o $@ $(COREDLL_CXXFLAGS) $(srcdir)/src/dfb/overlay.cpp @COND_TOOLKIT_DFB_USE_GUI_1@ $(CXXC) -c -o $@ $(COREDLL_CXXFLAGS) $(srcdir)/src/dfb/overlay.cpp
@@ -26240,6 +26307,12 @@ corelib_win32.o: $(srcdir)/src/univ/themes/win32.cpp $(CORELIB_ODEP)
@COND_TOOLKIT_X11_USE_GUI_1@corelib_reparent.o: $(srcdir)/src/x11/reparent.cpp $(CORELIB_ODEP) @COND_TOOLKIT_X11_USE_GUI_1@corelib_reparent.o: $(srcdir)/src/x11/reparent.cpp $(CORELIB_ODEP)
@COND_TOOLKIT_X11_USE_GUI_1@ $(CXXC) -c -o $@ $(CORELIB_CXXFLAGS) $(srcdir)/src/x11/reparent.cpp @COND_TOOLKIT_X11_USE_GUI_1@ $(CXXC) -c -o $@ $(CORELIB_CXXFLAGS) $(srcdir)/src/x11/reparent.cpp
@COND_TOOLKIT_MGL_USE_GUI_1@corelib_fontmgrcmn.o: $(srcdir)/src/common/fontmgrcmn.cpp $(CORELIB_ODEP)
@COND_TOOLKIT_MGL_USE_GUI_1@ $(CXXC) -c -o $@ $(CORELIB_CXXFLAGS) $(srcdir)/src/common/fontmgrcmn.cpp
@COND_TOOLKIT_DFB_USE_GUI_1@corelib_fontmgrcmn.o: $(srcdir)/src/common/fontmgrcmn.cpp $(CORELIB_ODEP)
@COND_TOOLKIT_DFB_USE_GUI_1@ $(CXXC) -c -o $@ $(CORELIB_CXXFLAGS) $(srcdir)/src/common/fontmgrcmn.cpp
@COND_TOOLKIT_MGL_USE_GUI_1@corelib_mask.o: $(srcdir)/src/generic/mask.cpp $(CORELIB_ODEP) @COND_TOOLKIT_MGL_USE_GUI_1@corelib_mask.o: $(srcdir)/src/generic/mask.cpp $(CORELIB_ODEP)
@COND_TOOLKIT_MGL_USE_GUI_1@ $(CXXC) -c -o $@ $(CORELIB_CXXFLAGS) $(srcdir)/src/generic/mask.cpp @COND_TOOLKIT_MGL_USE_GUI_1@ $(CXXC) -c -o $@ $(CORELIB_CXXFLAGS) $(srcdir)/src/generic/mask.cpp
@@ -26249,6 +26322,12 @@ corelib_win32.o: $(srcdir)/src/univ/themes/win32.cpp $(CORELIB_ODEP)
@COND_TOOLKIT_MGL_USE_GUI_1@corelib_dirmgl.o: $(srcdir)/src/mgl/dirmgl.cpp $(CORELIB_ODEP) @COND_TOOLKIT_MGL_USE_GUI_1@corelib_dirmgl.o: $(srcdir)/src/mgl/dirmgl.cpp $(CORELIB_ODEP)
@COND_TOOLKIT_MGL_USE_GUI_1@ $(CXXC) -c -o $@ $(CORELIB_CXXFLAGS) $(srcdir)/src/mgl/dirmgl.cpp @COND_TOOLKIT_MGL_USE_GUI_1@ $(CXXC) -c -o $@ $(CORELIB_CXXFLAGS) $(srcdir)/src/mgl/dirmgl.cpp
@COND_TOOLKIT_MGL_USE_GUI_1@corelib_fontmgr.o: $(srcdir)/src/mgl/fontmgr.cpp $(CORELIB_ODEP)
@COND_TOOLKIT_MGL_USE_GUI_1@ $(CXXC) -c -o $@ $(CORELIB_CXXFLAGS) $(srcdir)/src/mgl/fontmgr.cpp
@COND_TOOLKIT_DFB_USE_GUI_1@corelib_fontmgr.o: $(srcdir)/src/dfb/fontmgr.cpp $(CORELIB_ODEP)
@COND_TOOLKIT_DFB_USE_GUI_1@ $(CXXC) -c -o $@ $(CORELIB_CXXFLAGS) $(srcdir)/src/dfb/fontmgr.cpp
@COND_TOOLKIT_DFB_USE_GUI_1@corelib_overlay.o: $(srcdir)/src/dfb/overlay.cpp $(CORELIB_ODEP) @COND_TOOLKIT_DFB_USE_GUI_1@corelib_overlay.o: $(srcdir)/src/dfb/overlay.cpp $(CORELIB_ODEP)
@COND_TOOLKIT_DFB_USE_GUI_1@ $(CXXC) -c -o $@ $(CORELIB_CXXFLAGS) $(srcdir)/src/dfb/overlay.cpp @COND_TOOLKIT_DFB_USE_GUI_1@ $(CXXC) -c -o $@ $(CORELIB_CXXFLAGS) $(srcdir)/src/dfb/overlay.cpp

View File

@@ -1747,6 +1747,7 @@ IMPORTANT: please read docs/tech/tn0016.txt before modifying this file!
<!-- ====================================================================== --> <!-- ====================================================================== -->
<set var="MGL_LOWLEVEL_SRC" hints="files"> <set var="MGL_LOWLEVEL_SRC" hints="files">
src/common/fontmgrcmn.cpp
src/generic/caret.cpp src/generic/caret.cpp
src/generic/colour.cpp src/generic/colour.cpp
src/generic/icon.cpp src/generic/icon.cpp
@@ -1767,6 +1768,7 @@ IMPORTANT: please read docs/tech/tn0016.txt before modifying this file!
src/mgl/evtloop.cpp src/mgl/evtloop.cpp
src/mgl/font.cpp src/mgl/font.cpp
src/mgl/fontenum.cpp src/mgl/fontenum.cpp
src/mgl/fontmgr.cpp
src/mgl/fontutil.cpp src/mgl/fontutil.cpp
src/mgl/palette.cpp src/mgl/palette.cpp
src/mgl/pen.cpp src/mgl/pen.cpp
@@ -1794,7 +1796,6 @@ IMPORTANT: please read docs/tech/tn0016.txt before modifying this file!
wx/mgl/dcmemory.h wx/mgl/dcmemory.h
wx/mgl/dcscreen.h wx/mgl/dcscreen.h
wx/mgl/font.h wx/mgl/font.h
wx/mgl/fontutil.h
wx/mgl/palette.h wx/mgl/palette.h
wx/mgl/pen.h wx/mgl/pen.h
wx/mgl/popupwin.h wx/mgl/popupwin.h
@@ -1810,6 +1811,7 @@ IMPORTANT: please read docs/tech/tn0016.txt before modifying this file!
<!-- ====================================================================== --> <!-- ====================================================================== -->
<set var="DFB_LOWLEVEL_SRC" hints="files"> <set var="DFB_LOWLEVEL_SRC" hints="files">
src/common/fontmgrcmn.cpp
src/generic/caret.cpp src/generic/caret.cpp
src/generic/colour.cpp src/generic/colour.cpp
src/generic/icon.cpp src/generic/icon.cpp
@@ -1828,6 +1830,7 @@ IMPORTANT: please read docs/tech/tn0016.txt before modifying this file!
src/dfb/evtloop.cpp src/dfb/evtloop.cpp
src/dfb/font.cpp src/dfb/font.cpp
src/dfb/fontenum.cpp src/dfb/fontenum.cpp
src/dfb/fontmgr.cpp
src/dfb/overlay.cpp src/dfb/overlay.cpp
src/dfb/pen.cpp src/dfb/pen.cpp
src/dfb/region.cpp src/dfb/region.cpp

26
configure vendored
View File

@@ -12560,7 +12560,7 @@ echo "${ECHO_T}$ac_cv_c_compiler_gnu" >&6
GCC=`test $ac_compiler_gnu = yes && echo yes` GCC=`test $ac_compiler_gnu = yes && echo yes`
ac_test_CFLAGS=${CFLAGS+set} ac_test_CFLAGS=${CFLAGS+set}
ac_save_CFLAGS=$CFLAGS ac_save_CFLAGS=$CFLAGS
CFLAGS="-g" CFLAGS="$CFLAGS -g"
echo "$as_me:$LINENO: checking whether $CC accepts -g" >&5 echo "$as_me:$LINENO: checking whether $CC accepts -g" >&5
echo $ECHO_N "checking whether $CC accepts -g... $ECHO_C" >&6 echo $ECHO_N "checking whether $CC accepts -g... $ECHO_C" >&6
if test "${ac_cv_prog_cc_g+set}" = set; then if test "${ac_cv_prog_cc_g+set}" = set; then
@@ -13032,7 +13032,7 @@ fi
unset ac_cv_prog_cc_g unset ac_cv_prog_cc_g
ac_test_CFLAGS=${CFLAGS+set} ac_test_CFLAGS=${CFLAGS+set}
ac_save_CFLAGS=$CFLAGS ac_save_CFLAGS=$CFLAGS
CFLAGS="-g" CFLAGS="$CFLAGS -g"
echo "$as_me:$LINENO: checking whether $CC accepts -g" >&5 echo "$as_me:$LINENO: checking whether $CC accepts -g" >&5
echo $ECHO_N "checking whether $CC accepts -g... $ECHO_C" >&6 echo $ECHO_N "checking whether $CC accepts -g... $ECHO_C" >&6
if test "${ac_cv_prog_cc_g+set}" = set; then if test "${ac_cv_prog_cc_g+set}" = set; then
@@ -14197,9 +14197,9 @@ if test "$ac_test_CXXFLAGS" = set; then
CXXFLAGS=$ac_save_CXXFLAGS CXXFLAGS=$ac_save_CXXFLAGS
elif test $ac_cv_prog_cxx_g = yes; then elif test $ac_cv_prog_cxx_g = yes; then
if test "$GXX" = yes; then if test "$GXX" = yes; then
CXXFLAGS="-g -O2" CXXFLAGS="$CXXFLAGS -g -O2"
else else
CXXFLAGS="-g" CXXFLAGS="$CXXFLAGS -g"
fi fi
else else
if test "$GXX" = yes; then if test "$GXX" = yes; then
@@ -14462,7 +14462,7 @@ fi
unset ac_cv_prog_cc_g unset ac_cv_prog_cc_g
ac_test_CFLAGS=${CFLAGS+set} ac_test_CFLAGS=${CFLAGS+set}
ac_save_CFLAGS=$CFLAGS ac_save_CFLAGS=$CFLAGS
CFLAGS="-g" CFLAGS="$CFLAGS -g"
echo "$as_me:$LINENO: checking whether $CC accepts -g" >&5 echo "$as_me:$LINENO: checking whether $CC accepts -g" >&5
echo $ECHO_N "checking whether $CC accepts -g... $ECHO_C" >&6 echo $ECHO_N "checking whether $CC accepts -g... $ECHO_C" >&6
if test "${ac_cv_prog_cc_g+set}" = set; then if test "${ac_cv_prog_cc_g+set}" = set; then
@@ -29048,12 +29048,12 @@ if test -n "$PKG_CONFIG"; then
pkg_cv_DIRECTFB_CFLAGS="$DIRECTFB_CFLAGS" pkg_cv_DIRECTFB_CFLAGS="$DIRECTFB_CFLAGS"
else else
if test -n "$PKG_CONFIG" && \ if test -n "$PKG_CONFIG" && \
{ (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"directfb >= 0.9.22\"") >&5 { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"directfb >= 0.9.23\"") >&5
($PKG_CONFIG --exists --print-errors "directfb >= 0.9.22") 2>&5 ($PKG_CONFIG --exists --print-errors "directfb >= 0.9.23") 2>&5
ac_status=$? ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; then (exit $ac_status); }; then
pkg_cv_DIRECTFB_CFLAGS=`$PKG_CONFIG --cflags "directfb >= 0.9.22" 2>/dev/null` pkg_cv_DIRECTFB_CFLAGS=`$PKG_CONFIG --cflags "directfb >= 0.9.23" 2>/dev/null`
else else
pkg_failed=yes pkg_failed=yes
fi fi
@@ -29066,12 +29066,12 @@ if test -n "$PKG_CONFIG"; then
pkg_cv_DIRECTFB_LIBS="$DIRECTFB_LIBS" pkg_cv_DIRECTFB_LIBS="$DIRECTFB_LIBS"
else else
if test -n "$PKG_CONFIG" && \ if test -n "$PKG_CONFIG" && \
{ (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"directfb >= 0.9.22\"") >&5 { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"directfb >= 0.9.23\"") >&5
($PKG_CONFIG --exists --print-errors "directfb >= 0.9.22") 2>&5 ($PKG_CONFIG --exists --print-errors "directfb >= 0.9.23") 2>&5
ac_status=$? ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5 echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; then (exit $ac_status); }; then
pkg_cv_DIRECTFB_LIBS=`$PKG_CONFIG --libs "directfb >= 0.9.22" 2>/dev/null` pkg_cv_DIRECTFB_LIBS=`$PKG_CONFIG --libs "directfb >= 0.9.23" 2>/dev/null`
else else
pkg_failed=yes pkg_failed=yes
fi fi
@@ -29090,9 +29090,9 @@ else
_pkg_short_errors_supported=no _pkg_short_errors_supported=no
fi fi
if test $_pkg_short_errors_supported = yes; then if test $_pkg_short_errors_supported = yes; then
DIRECTFB_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "directfb >= 0.9.22"` DIRECTFB_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "directfb >= 0.9.23"`
else else
DIRECTFB_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "directfb >= 0.9.22"` DIRECTFB_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "directfb >= 0.9.23"`
fi fi
# Put the nasty error message in config.log where it belongs # Put the nasty error message in config.log where it belongs
echo "$DIRECTFB_PKG_ERRORS" >&5 echo "$DIRECTFB_PKG_ERRORS" >&5

View File

@@ -3282,7 +3282,7 @@ libraries returned by 'pkg-config gtk+-2.0 --libs' or 'gtk-config
PKG_PROG_PKG_CONFIG() PKG_PROG_PKG_CONFIG()
PKG_CHECK_MODULES(DIRECTFB, PKG_CHECK_MODULES(DIRECTFB,
[directfb >= 0.9.22], [directfb >= 0.9.23],
[ [
wxUSE_UNIVERSAL="yes" wxUSE_UNIVERSAL="yes"
TOOLKIT_INCLUDE="$DIRECTFB_CFLAGS" TOOLKIT_INCLUDE="$DIRECTFB_CFLAGS"

View File

@@ -17,4 +17,8 @@
# error "wxDirectFB cannot be built without wxUniversal" # error "wxDirectFB cannot be built without wxUniversal"
#endif #endif
#if !wxUSE_CONFIG
# error "wxFileConfig is required by wxDFB port"
#endif
#endif /* _WX_DFB_CHKCONF_H_ */ #endif /* _WX_DFB_CHKCONF_H_ */

View File

@@ -169,6 +169,8 @@ protected:
int fillStyle = wxODDEVEN_RULE); int fillStyle = wxODDEVEN_RULE);
// implementation from now on: // implementation from now on:
protected:
wxIDirectFBFontPtr GetCurrentFont() const;
private: private:
// Unified implementation of DrawIcon, DrawBitmap and Blit: // Unified implementation of DrawIcon, DrawBitmap and Blit:

View File

@@ -63,8 +63,12 @@ public:
virtual void SetUnderlined(bool underlined); virtual void SetUnderlined(bool underlined);
virtual void SetEncoding(wxFontEncoding encoding); virtual void SetEncoding(wxFontEncoding encoding);
// Unofficial API, don't use
virtual void SetNoAntiAliasing(bool no = true);
virtual bool GetNoAntiAliasing() const;
// implementation from now on: // implementation from now on:
wxIDirectFBFontPtr GetDirectFBFont() const; wxIDirectFBFontPtr GetDirectFBFont(bool antialiased) const;
protected: protected:
// ref counting code // ref counting code

View File

@@ -0,0 +1,83 @@
/////////////////////////////////////////////////////////////////////////////
// Name: wx/dfb/private/fontmgr.h
// Purpose: font management for wxDFB
// Author: Vaclav Slavik
// Created: 2006-11-18
// RCS-ID: $Id$
// Copyright: (c) 2001-2002 SciTech Software, Inc. (www.scitechsoft.com)
// (c) 2006 REA Elektronik GmbH
// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
#ifndef _WX_DFB_PRIVATE_FONTMGR_H_
#define _WX_DFB_PRIVATE_FONTMGR_H_
#include "wx/dfb/wrapdfb.h"
class wxFileConfig;
class wxFontInstance : public wxFontInstanceBase
{
public:
wxFontInstance(float ptSize, bool aa, const wxString& filename);
wxIDirectFBFontPtr GetDirectFBFont() const { return m_font; }
private:
wxIDirectFBFontPtr m_font;
};
class wxFontFace : public wxFontFaceBase
{
public:
wxFontFace(const wxString& filename) : m_fileName(filename) {}
protected:
wxFontInstance *CreateFontInstance(float ptSize, bool aa);
private:
wxString m_fileName;
};
class wxFontBundle : public wxFontBundleBase
{
public:
wxFontBundle(const wxString& name,
const wxString& fileRegular,
const wxString& fileBold,
const wxString& fileItalic,
const wxString& fileBoldItalic,
bool isFixed);
/// Returns name of the family
virtual wxString GetName() const { return m_name; }
virtual bool IsFixed() const { return m_isFixed; }
private:
wxString m_name;
bool m_isFixed;
};
class wxFontsManager : public wxFontsManagerBase
{
public:
wxFontsManager() { AddAllFonts(); }
virtual wxString GetDefaultFacename(wxFontFamily family) const
{
return m_defaultFacenames[family];
}
private:
// adds all fonts using AddBundle()
void AddAllFonts();
void AddFont(const wxString& dir, const wxString& name, wxFileConfig& cfg);
void SetDefaultFonts(wxFileConfig& cfg);
private:
// default facenames
wxString m_defaultFacenames[wxFONTFAMILY_MAX];
};
#endif // _WX_DFB_PRIVATE_FONTMGR_H_

View File

@@ -17,6 +17,7 @@
wxDFB_DECLARE_INTERFACE(IDirectFB); wxDFB_DECLARE_INTERFACE(IDirectFB);
wxDFB_DECLARE_INTERFACE(IDirectFBDisplayLayer); wxDFB_DECLARE_INTERFACE(IDirectFBDisplayLayer);
wxDFB_DECLARE_INTERFACE(IDirectFBFont);
wxDFB_DECLARE_INTERFACE(IDirectFBWindow); wxDFB_DECLARE_INTERFACE(IDirectFBWindow);
wxDFB_DECLARE_INTERFACE(IDirectFBSurface); wxDFB_DECLARE_INTERFACE(IDirectFBSurface);
wxDFB_DECLARE_INTERFACE(IDirectFBPalette); wxDFB_DECLARE_INTERFACE(IDirectFBPalette);

View File

@@ -239,12 +239,4 @@ extern bool wxTestFontEncoding(const wxNativeEncodingInfo& info);
#include "wx/unix/fontutil.h" #include "wx/unix/fontutil.h"
#endif // X || GDK #endif // X || GDK
// ----------------------------------------------------------------------------
// font-related functions (MGL)
// ----------------------------------------------------------------------------
#ifdef __WXMGL__
#include "wx/mgl/fontutil.h"
#endif // __WXMGL__
#endif // _WX_FONTUTIL_H_ #endif // _WX_FONTUTIL_H_

View File

@@ -79,6 +79,10 @@ public:
virtual void SetUnderlined(bool underlined); virtual void SetUnderlined(bool underlined);
virtual void SetEncoding(wxFontEncoding encoding); virtual void SetEncoding(wxFontEncoding encoding);
// Unofficial API, don't use
virtual void SetNoAntiAliasing(bool no = true);
virtual bool GetNoAntiAliasing() const;
struct font_t *GetMGLfont_t(float scale, bool antialiased); struct font_t *GetMGLfont_t(float scale, bool antialiased);
protected: protected:

View File

@@ -1,124 +0,0 @@
/////////////////////////////////////////////////////////////////////////////
// Name: wx/mgl/fontutil.h
// Purpose: font-related helper functions for MGL
// Author: Vaclav Slavik
// Created: 2001/05/01
// RCS-ID: $Id$
// Copyright: (c) 2001-2002 SciTech Software, Inc. (www.scitechsoft.com)
// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
#ifndef _WX_MGL_FONTUTIL_H_
#define _WX_MGL_FONTUTIL_H_
#include "wx/list.h"
struct font_info_t;
struct font_lib_t;
struct font_t;
class wxMGLFontInstance;
class wxMGLFontInstanceList;
class wxMGLFontLibrary;
class wxMGLFontFamily;
enum
{
wxFONTFACE_REGULAR = 0,
wxFONTFACE_ITALIC = 1,
wxFONTFACE_BOLD = 2, // = (regular | bold)
wxFONTFACE_BOLD_ITALIC = 3, // = (italic | bold)
wxFONTFACE_MAX
};
// structure representing particular loaded font instance:
class wxMGLFontInstance
{
public:
wxMGLFontInstance(wxMGLFontLibrary *fontLib, float pt, bool slant, bool aa);
~wxMGLFontInstance();
struct font_t *GetMGLfont_t() const { return m_font; }
float GetPt() const { return m_pt; }
bool GetSlant() const { return m_slant; }
bool GetAA() const { return m_aa; }
private:
wxMGLFontLibrary *m_fontLib;
font_t *m_font;
float m_pt;
bool m_slant;
bool m_aa;
};
// structure representing loaded font library:
class wxMGLFontLibrary
{
public:
wxMGLFontLibrary(const wxString& filename, int type, wxMGLFontFamily *parentFamily);
~wxMGLFontLibrary();
wxMGLFontInstance *GetFontInstance(wxFont *font, float scale, bool aa);
wxMGLFontFamily *GetFamily() const { return m_family; }
void IncRef();
void DecRef();
struct font_lib_t *GetMGLfont_lib_t() const { return m_fontLib; }
private:
font_lib_t *m_fontLib;
int m_type;
wxString m_fileName;
size_t m_refs;
wxMGLFontInstanceList *m_instances;
wxMGLFontFamily *m_family;
};
// structure representing native MGL font family
class wxMGLFontFamily : public wxObject
{
public:
wxMGLFontFamily(const font_info_t *info);
virtual ~wxMGLFontFamily();
wxString GetName() const { return m_name; }
const font_info_t *GetInfo() const { return m_fontInfo; }
bool HasFace(int type) const;
wxMGLFontLibrary *GetLibrary(int type) const
{ return m_fontLibs[type]; }
private:
wxString m_name;
const font_info_t *m_fontInfo;
wxMGLFontLibrary *m_fontLibs[wxFONTFACE_MAX];
};
WX_DECLARE_LIST(wxMGLFontFamily, wxMGLFontFamilyList);
class wxFontsManager
{
public:
wxFontsManager();
~wxFontsManager();
void AddFamily(const font_info_t *info);
// return info about font with given name:
wxMGLFontFamily *GetFamily(const wxString& name) const;
// return list of all families
wxMGLFontFamilyList *GetFamilyList() { return m_list; }
wxMGLFontLibrary *GetFontLibrary(wxFont *font);
private:
wxHashTable *m_hash;
wxMGLFontFamilyList *m_list;
};
extern wxFontsManager *wxTheFontsManager;
#endif // _WX_MGL_FONTUTIL_H_

View File

@@ -0,0 +1,77 @@
/////////////////////////////////////////////////////////////////////////////
// Name: wx/mgl/private/fontmgr.h
// Purpose: font management for MGL
// Author: Vaclav Slavik
// Created: 2006-11-18
// RCS-ID: $Id$
// Copyright: (c) 2001-2002 SciTech Software, Inc. (www.scitechsoft.com)
// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
#ifndef _WX_MGL_PRIVATE_FONTMGR_H_
#define _WX_MGL_PRIVATE_FONTMGR_H_
struct font_info_t;
struct font_lib_t;
struct font_t;
class wxFontInstance : public wxFontInstanceBase
{
public:
wxFontInstance(float ptSize, bool aa, font_lib_t *fontLib);
virtual ~wxFontInstance();
struct font_t *GetMGLfont_t() const { return m_font; }
private:
font_t *m_font;
};
class wxFontFace : public wxFontFaceBase
{
public:
wxFontFace(const wxString& filename)
: m_fontLib(NULL), m_fileName(filename) {}
virtual void Acquire();
virtual void Release();
virtual wxFontInstance *GetFontInstance(float ptSize, bool aa);
protected:
wxFontInstance *CreateFontInstance(float ptSize, bool aa);
private:
font_lib_t *m_fontLib;
wxString m_fileName;
};
class wxFontBundle : public wxFontBundleBase
{
public:
wxFontBundle(const font_info_t *fontInfo);
virtual wxString GetName() const
{ return wxString::FromAscii(m_fontInfo->familyName); }
virtual bool IsFixed() const { return m_fontInfo->isFixed; }
const font_info_t *GetInfo() const { return m_fontInfo; }
private:
const font_info_t *m_fontInfo;
};
class wxFontsManager : public wxFontsManagerBase
{
public:
wxFontsManager() { AddAllFonts(); }
virtual wxString GetDefaultFacename(wxFontFamily family) const;
private:
// adds all fonts using AddBundle()
void AddAllFonts();
};
#endif // _WX_MGL_PRIVATE_FONTMGR_H_

View File

@@ -0,0 +1,255 @@
/////////////////////////////////////////////////////////////////////////////
// Name: wx/private/fontmgr.h
// Purpose: font management for ports that don't have their own
// Author: Vaclav Slavik
// Created: 2006-11-18
// RCS-ID: $Id$
// Copyright: (c) 2001-2002 SciTech Software, Inc. (www.scitechsoft.com)
// (c) 2006 REA Elektronik GmbH
// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
#ifndef _WX_PRIVATE_FONTMGR_H_
#define _WX_PRIVATE_FONTMGR_H_
#include "wx/list.h"
#include "wx/fontutil.h"
class wxFontsManager;
class wxFontInstance;
class wxFontInstanceList;
class wxFontFace;
class wxFontBundle;
class wxFontBundleHash;
class wxFontMgrFontRefData;
WX_DECLARE_LIST(wxFontBundle, wxFontBundleList);
/**
This class represents single font face with set parameters (point size,
antialiasing).
*/
class wxFontInstanceBase
{
protected:
wxFontInstanceBase(float ptSize, bool aa) : m_ptSize(ptSize), m_aa(aa) {}
virtual ~wxFontInstanceBase() {}
public:
float GetPointSize() const { return m_ptSize; }
bool IsAntiAliased() const { return m_aa; }
protected:
float m_ptSize;
bool m_aa;
};
/// This class represents loaded font face (bundle+weight+italics).
class wxFontFaceBase
{
protected:
/// Ctor. Creates object with reference count = 0, Acquire() must be
/// called after the object is created.
wxFontFaceBase();
virtual ~wxFontFaceBase();
public:
/// Increases reference count of the face
virtual void Acquire();
/**
Decreases reference count of the face. Call this when you no longer
use the object returned by wxFontBundle. Note that this doesn't destroy
the object, but only optionally shuts it down, so it's possible to
call Acquire() and Release() more than once.
*/
virtual void Release();
/**
Returns instance of the font at given size.
@param ptSize point size of the font to create; note that this is
a float and not integer, it should be wxFont's point
size multipled by wxDC's scale factor
@param aa should the font be antialiased?
*/
virtual wxFontInstance *GetFontInstance(float ptSize, bool aa);
protected:
/// Called to create a new instance of the font by GetFontInstance() if
/// it wasn't found it cache.
virtual wxFontInstance *CreateFontInstance(float ptSize, bool aa) = 0;
protected:
unsigned m_refCnt;
wxFontInstanceList *m_instances;
};
/**
This class represents font bundle. Font bundle is set of faces that have
the same name, but differ in weight and italics.
*/
class wxFontBundleBase
{
public:
wxFontBundleBase();
virtual ~wxFontBundleBase();
/// Returns name of the bundle
virtual wxString GetName() const = 0;
/// Returns true if the font is fixe-width
virtual bool IsFixed() const = 0;
/// Type of faces in the bundle
enum FaceType
{
// NB: values of these constants are set so that it's possible to
// make OR-combinations of them and still get valid enum element
FaceType_Regular = 0,
FaceType_Italic = 1,
FaceType_Bold = 2,
FaceType_BoldItalic = FaceType_Italic | FaceType_Bold,
FaceType_Max
};
/// Returns true if the given face is available
bool HasFace(FaceType type) const { return m_faces[type] != NULL; }
/**
Returns font face object that can be used to render font of given type.
Note that this method can only be called if HasFace(type) returns true.
Acquire() was called on the returned object, you must call Release()
when you stop using it.
*/
wxFontFace *GetFace(FaceType type) const;
/**
Returns font face object that can be used to render given font.
Acquire() was called on the returned object, you must call Release()
when you stop using it.
*/
wxFontFace *GetFaceForFont(const wxFontMgrFontRefData& font) const;
protected:
wxFontFace *m_faces[FaceType_Max];
};
/**
Base class for wxFontsManager class, which manages the list of all
available fonts and their loaded instances.
*/
class wxFontsManagerBase
{
protected:
wxFontsManagerBase();
virtual ~wxFontsManagerBase();
public:
/// Returns the font manager singleton, creating it if it doesn't exist
static wxFontsManager *Get();
/// Called by wxApp to shut down the manager
static void CleanUp();
/// Returns list of all available font bundles
const wxFontBundleList& GetBundles() const { return *m_list; }
/**
Returns object representing font bundle with the given name.
The returned object is owned by wxFontsManager, you must not delete it.
*/
wxFontBundle *GetBundle(const wxString& name) const;
/**
Returns object representing font bundle that can be used to render
given font.
The returned object is owned by wxFontsManager, you must not delete it.
*/
wxFontBundle *GetBundleForFont(const wxFontMgrFontRefData& font) const;
/// This method must be called by derived
void AddBundle(wxFontBundle *bundle);
/// Returns default facename for given wxFont family
virtual wxString GetDefaultFacename(wxFontFamily family) const = 0;
private:
wxFontBundleHash *m_hash;
wxFontBundleList *m_list;
protected:
static wxFontsManager *ms_instance;
};
#if defined(__WXMGL__)
#include "wx/mgl/private/fontmgr.h"
#elif defined(__WXDFB__)
#include "wx/dfb/private/fontmgr.h"
#endif
/// wxFontMgrFontRefData implementation using wxFontsManager classes
struct wxFontMgrFontRefData : public wxObjectRefData
{
public:
wxFontMgrFontRefData(int size = wxDEFAULT,
int family = wxDEFAULT,
int style = wxDEFAULT,
int weight = wxDEFAULT,
bool underlined = false,
const wxString& faceName = wxEmptyString,
wxFontEncoding encoding = wxFONTENCODING_DEFAULT);
wxFontMgrFontRefData(const wxFontMgrFontRefData& data);
~wxFontMgrFontRefData();
wxFontBundle *GetFontBundle() const;
wxFontInstance *GetFontInstance(float scale, bool antialiased) const;
bool IsFixedWidth() const { return GetFontBundle()->IsFixed(); }
const wxNativeFontInfo *GetNativeFontInfo() const { return &m_info; }
int GetPointSize() const { return m_info.pointSize; }
wxString GetFaceName() const { return m_info.faceName; }
int GetFamily() const { return m_info.family; }
int GetStyle() const { return m_info.style; }
int GetWeight() const { return m_info.weight; }
bool GetUnderlined() const { return m_info.underlined; }
wxFontEncoding GetEncoding() const { return m_info.encoding; }
void SetPointSize(int pointSize);
void SetFamily(int family);
void SetStyle(int style);
void SetWeight(int weight);
void SetFaceName(const wxString& faceName);
void SetUnderlined(bool underlined);
void SetEncoding(wxFontEncoding encoding);
// Unofficial API, don't use
void SetNoAntiAliasing(bool no);
bool GetNoAntiAliasing() const { return m_noAA; }
private:
void EnsureValidFont();
wxNativeFontInfo m_info;
bool m_noAA;
wxFontFace *m_fontFace;
wxFontBundle *m_fontBundle;
bool m_fontValid;
};
#endif // _WX_PRIVATE_FONTMGR_H_

345
src/common/fontmgrcmn.cpp Normal file
View File

@@ -0,0 +1,345 @@
/////////////////////////////////////////////////////////////////////////////
// Name: src/common/fontmgrcmn.cpp
// Purpose: font management for ports that don't have their own
// Author: Vaclav Slavik
// Created: 2006-11-18
// RCS-ID: $Id$
// Copyright: (c) 2001-2002 SciTech Software, Inc. (www.scitechsoft.com)
// (c) 2006 REA Elektronik GmbH
// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
// For compilers that support precompilation, includes "wx.h".
#include "wx/wxprec.h"
#ifdef __BORLANDC__
#pragma hdrstop
#endif
#include "wx/private/fontmgr.h"
#include "wx/listimpl.cpp"
#include "wx/hashmap.h"
WX_DECLARE_LIST(wxFontInstance, wxFontInstanceList);
WX_DEFINE_LIST(wxFontInstanceList)
WX_DEFINE_LIST(wxFontBundleList)
WX_DECLARE_HASH_MAP(wxString, wxFontBundle*,
wxStringHash, wxStringEqual,
wxFontBundleHash);
// ============================================================================
// implementation
// ============================================================================
// ----------------------------------------------------------------------------
// wxFontFaceBase
// ----------------------------------------------------------------------------
wxFontFaceBase::wxFontFaceBase()
: m_refCnt(0)
{
m_instances = new wxFontInstanceList;
m_instances->DeleteContents(true);
}
wxFontFaceBase::~wxFontFaceBase()
{
delete m_instances;
}
void wxFontFaceBase::Acquire()
{
m_refCnt++;
}
void wxFontFaceBase::Release()
{
if ( --m_refCnt == 0 )
{
m_instances->Clear();
}
}
wxFontInstance *wxFontFaceBase::GetFontInstance(float ptSize, bool aa)
{
wxASSERT_MSG( m_refCnt > 0, _T("font library not loaded!") );
wxFontInstance *i;
wxFontInstanceList::Node *node;
for ( node = m_instances->GetFirst(); node; node = node->GetNext() )
{
i = node->GetData();
if ( i->GetPointSize() == ptSize && i->IsAntiAliased() == aa )
return i;
}
i = CreateFontInstance(ptSize, aa);
m_instances->Append(i);
return i;
}
// ----------------------------------------------------------------------------
// wxFontBundleBase
// ----------------------------------------------------------------------------
wxFontBundleBase::wxFontBundleBase()
{
for (int i = 0; i < FaceType_Max; i++)
m_faces[i] = NULL;
}
wxFontBundleBase::~wxFontBundleBase()
{
for (int i = 0; i < FaceType_Max; i++)
delete m_faces[i];
}
wxFontFace *wxFontBundleBase::GetFace(FaceType type) const
{
wxFontFace *f = m_faces[type];
wxCHECK_MSG( f, NULL, _T("no such face in font bundle") );
f->Acquire();
return f;
}
wxFontFace *
wxFontBundleBase::GetFaceForFont(const wxFontMgrFontRefData& font) const
{
wxASSERT_MSG( font.GetFaceName().empty() || font.GetFaceName() == GetName(),
_T("calling GetFaceForFont for incompatible font") );
int type = FaceType_Regular;
if ( font.GetWeight() == wxBOLD )
type |= FaceType_Bold;
// FIXME -- this should read "if ( font->GetStyle() == wxITALIC )",
// but since MGL neither DFB supports slant, we try to display it with
// italic face (better than nothing...)
if ( font.GetStyle() == wxITALIC || font.GetStyle() == wxSLANT )
{
if ( HasFace((FaceType)(type | FaceType_Italic)) )
type |= FaceType_Italic;
}
if ( !HasFace((FaceType)type) )
{
for (int i = 0; i < FaceType_Max; i++)
{
if ( HasFace((FaceType)i) )
return GetFace((FaceType)i);
}
wxFAIL_MSG( _T("no face") );
return NULL;
}
return GetFace((FaceType)type);
}
// ----------------------------------------------------------------------------
// wxFontsManagerBase
// ----------------------------------------------------------------------------
wxFontsManager *wxFontsManagerBase::ms_instance = NULL;
wxFontsManagerBase::wxFontsManagerBase()
{
m_hash = new wxFontBundleHash();
m_list = new wxFontBundleList;
m_list->DeleteContents(true);
}
wxFontsManagerBase::~wxFontsManagerBase()
{
delete m_hash;
delete m_list;
}
/* static */
wxFontsManager *wxFontsManagerBase::Get()
{
if ( !ms_instance )
ms_instance = new wxFontsManager();
return ms_instance;
}
/* static */
void wxFontsManagerBase::CleanUp()
{
wxDELETE(ms_instance);
}
wxFontBundle *wxFontsManagerBase::GetBundle(const wxString& name) const
{
return (*m_hash)[name.Lower()];
}
wxFontBundle *
wxFontsManagerBase::GetBundleForFont(const wxFontMgrFontRefData& font) const
{
wxFontBundle *bundle = NULL;
wxString facename = font.GetFaceName();
if ( !facename.empty() )
bundle = GetBundle(facename);
if ( !bundle )
{
facename = GetDefaultFacename((wxFontFamily)font.GetFamily());
if ( !facename.empty() )
bundle = GetBundle(facename);
}
if ( !bundle )
{
if ( m_list->GetFirst() )
bundle = m_list->GetFirst()->GetData();
else
wxFAIL_MSG(wxT("Fatal error, no fonts available!"));
}
return bundle;
}
void wxFontsManagerBase::AddBundle(wxFontBundle *bundle)
{
(*m_hash)[bundle->GetName().Lower()] = bundle;
m_list->Append(bundle);
}
// ----------------------------------------------------------------------------
// wxFontMgrFontRefData
// ----------------------------------------------------------------------------
wxFontMgrFontRefData::wxFontMgrFontRefData(int size,
int family,
int style,
int weight,
bool underlined,
const wxString& faceName,
wxFontEncoding encoding)
{
if ( family == wxDEFAULT )
family = wxSWISS;
if ( style == wxDEFAULT )
style = wxNORMAL;
if ( weight == wxDEFAULT )
weight = wxNORMAL;
if ( size == wxDEFAULT )
size = 12;
m_info.family = (wxFontFamily)family;
m_info.faceName = faceName;
m_info.style = (wxFontStyle)style;
m_info.weight = (wxFontWeight)weight;
m_info.pointSize = size;
m_info.underlined = underlined;
m_info.encoding = encoding;
m_noAA = false;
m_fontFace = NULL;
m_fontBundle = NULL;
m_fontValid = false;
}
wxFontMgrFontRefData::wxFontMgrFontRefData(const wxFontMgrFontRefData& data)
{
m_info = data.m_info;
m_noAA = data.m_noAA;
m_fontFace = data.m_fontFace;
m_fontBundle = data.m_fontBundle;
m_fontValid = data.m_fontValid;
if ( m_fontFace )
m_fontFace->Acquire();
}
wxFontMgrFontRefData::~wxFontMgrFontRefData()
{
if ( m_fontFace )
m_fontFace->Release();
}
wxFontBundle *wxFontMgrFontRefData::GetFontBundle() const
{
wxConstCast(this, wxFontMgrFontRefData)->EnsureValidFont();
return m_fontBundle;
}
wxFontInstance *
wxFontMgrFontRefData::GetFontInstance(float scale, bool antialiased) const
{
wxConstCast(this, wxFontMgrFontRefData)->EnsureValidFont();
return m_fontFace->GetFontInstance(m_info.pointSize * scale,
antialiased && !m_noAA);
}
void wxFontMgrFontRefData::SetPointSize(int pointSize)
{
m_info.pointSize = pointSize;
m_fontValid = false;
}
void wxFontMgrFontRefData::SetFamily(int family)
{
m_info.family = (wxFontFamily)family;
m_fontValid = false;
}
void wxFontMgrFontRefData::SetStyle(int style)
{
m_info.style = (wxFontStyle)style;
m_fontValid = false;
}
void wxFontMgrFontRefData::SetWeight(int weight)
{
m_info.weight = (wxFontWeight)weight;
m_fontValid = false;
}
void wxFontMgrFontRefData::SetFaceName(const wxString& faceName)
{
m_info.faceName = faceName;
m_fontValid = false;
}
void wxFontMgrFontRefData::SetUnderlined(bool underlined)
{
m_info.underlined = underlined;
m_fontValid = false;
}
void wxFontMgrFontRefData::SetEncoding(wxFontEncoding encoding)
{
m_info.encoding = encoding;
m_fontValid = false;
}
void wxFontMgrFontRefData::SetNoAntiAliasing(bool no)
{
m_noAA = no;
}
void wxFontMgrFontRefData::EnsureValidFont()
{
if ( !m_fontValid )
{
wxFontFace *old = m_fontFace;
m_fontBundle = wxFontsManager::Get()->GetBundleForFont(*this);
m_fontFace = m_fontBundle->GetFaceForFont(*this);
if ( old )
old->Release();
}
}

View File

@@ -20,6 +20,7 @@
#include "wx/evtloop.h" #include "wx/evtloop.h"
#include "wx/dfb/private.h" #include "wx/dfb/private.h"
#include "wx/private/fontmgr.h"
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
// wxApp initialization // wxApp initialization
@@ -57,6 +58,8 @@ void wxApp::CleanUp()
{ {
wxAppBase::CleanUp(); wxAppBase::CleanUp();
wxFontsManager::CleanUp();
wxEventLoop::CleanUp(); wxEventLoop::CleanUp();
wxIDirectFB::CleanUp(); wxIDirectFB::CleanUp();
} }

View File

@@ -390,10 +390,21 @@ void wxDC::SetFont(const wxFont& font)
wxFont f(font.Ok() ? font : DEFAULT_FONT); wxFont f(font.Ok() ? font : DEFAULT_FONT);
if ( !m_surface->SetFont(f.GetDirectFBFont()) ) wxFont oldfont(m_font);
return;
m_font = f; m_font = f;
if ( !m_surface->SetFont(GetCurrentFont()) )
{
m_font = oldfont;
return;
}
}
wxIDirectFBFontPtr wxDC::GetCurrentFont() const
{
bool aa = (GetDepth() > 8);
return m_font.GetDirectFBFont(aa);
} }
void wxDC::SetBackground(const wxBrush& brush) void wxDC::SetBackground(const wxBrush& brush)
@@ -450,7 +461,7 @@ wxCoord wxDC::GetCharHeight() const
wxCHECK_MSG( m_font.Ok(), -1, wxT("no font selected") ); wxCHECK_MSG( m_font.Ok(), -1, wxT("no font selected") );
int h = -1; int h = -1;
m_font.GetDirectFBFont()->GetHeight(&h); GetCurrentFont()->GetHeight(&h);
return YDEV2LOGREL(h); return YDEV2LOGREL(h);
} }
@@ -460,7 +471,7 @@ wxCoord wxDC::GetCharWidth() const
wxCHECK_MSG( m_font.Ok(), -1, wxT("no font selected") ); wxCHECK_MSG( m_font.Ok(), -1, wxT("no font selected") );
int w = -1; int w = -1;
m_font.GetDirectFBFont()->GetStringWidth("H", 1, &w); GetCurrentFont()->GetStringWidth("H", 1, &w);
// VS: YDEV is corrent, it should *not* be XDEV, because font's are only // VS: YDEV is corrent, it should *not* be XDEV, because font's are only
// scaled according to m_scaleY // scaled according to m_scaleY
return YDEV2LOGREL(w); return YDEV2LOGREL(w);
@@ -483,7 +494,7 @@ void wxDC::DoGetTextExtent(const wxString& string, wxCoord *x, wxCoord *y,
wxCoord xx = 0, yy = 0; wxCoord xx = 0, yy = 0;
DFBRectangle rect; DFBRectangle rect;
wxIDirectFBFontPtr f = m_font.GetDirectFBFont(); wxIDirectFBFontPtr f = GetCurrentFont();
if ( f->GetStringExtents(wxSTR_TO_DFB(string), -1, &rect, NULL) ) if ( f->GetStringExtents(wxSTR_TO_DFB(string), -1, &rect, NULL) )
{ {

217
src/dfb/fontmgr.cpp Normal file
View File

@@ -0,0 +1,217 @@
/////////////////////////////////////////////////////////////////////////////
// Name: src/dfb/fontmgr.cpp
// Purpose: font management for wxDFB
// Author: Vaclav Slavik
// Created: 2006-11-18
// RCS-ID: $Id$
// Copyright: (c) 2001-2002 SciTech Software, Inc. (www.scitechsoft.com)
// (c) 2006 REA Elektronik GmbH
// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
// For compilers that support precompilation, includes "wx.h".
#include "wx/wxprec.h"
#ifdef __BORLANDC__
#pragma hdrstop
#endif
#include "wx/fileconf.h"
#include "wx/filename.h"
#include "wx/private/fontmgr.h"
#include "wx/dfb/wrapdfb.h"
// ============================================================================
// implementation
// ============================================================================
// ----------------------------------------------------------------------------
// wxFontInstance
// ----------------------------------------------------------------------------
wxFontInstance::wxFontInstance(float ptSize, bool aa,
const wxString& filename)
: wxFontInstanceBase(ptSize, aa)
{
int scrSizePx, scrSizeMM;
wxDisplaySize(NULL, &scrSizePx);
wxDisplaySizeMM(NULL, &scrSizeMM);
double dpi = (scrSizePx / (scrSizeMM * mm2inches));
// NB: DFB's fract_height value is 32bit integer with the last 6 bit
// representing fractional value, hence the multiplication by 64;
// 1pt=1/72inch, hence "/ 72"
int pixSize = int(ptSize * dpi * 64 / 72);
DFBFontDescription desc;
desc.flags = (DFBFontDescriptionFlags)(
DFDESC_ATTRIBUTES | DFDESC_FRACT_HEIGHT);
desc.attributes = aa ? DFFA_NONE : DFFA_MONOCHROME;
desc.fract_height = pixSize;
m_font = wxIDirectFB::Get()->CreateFont(filename.fn_str(), &desc);
wxASSERT_MSG( m_font, _T("cannot create font instance") );
}
// ----------------------------------------------------------------------------
// wxFontFace
// ----------------------------------------------------------------------------
wxFontInstance *wxFontFace::CreateFontInstance(float ptSize, bool aa)
{
return new wxFontInstance(ptSize, aa, m_fileName);
}
// ----------------------------------------------------------------------------
// wxFontBundle
// ----------------------------------------------------------------------------
wxFontBundle::wxFontBundle(const wxString& name,
const wxString& fileRegular,
const wxString& fileBold,
const wxString& fileItalic,
const wxString& fileBoldItalic,
bool isFixed)
{
m_name = name;
m_isFixed = isFixed;
if ( !fileRegular.empty() )
m_faces[FaceType_Regular] = new wxFontFace(fileRegular);
if ( !fileItalic.empty() )
m_faces[FaceType_Italic] = new wxFontFace(fileItalic);
if ( !fileBold.empty() )
m_faces[FaceType_Bold] = new wxFontFace(fileBold);
if ( !fileBoldItalic.empty() )
m_faces[FaceType_BoldItalic] = new wxFontFace(fileBoldItalic);
}
// ----------------------------------------------------------------------------
// wxFontsManager
// ----------------------------------------------------------------------------
/*
The code below parses font configuration file ${WXDFB_FONTDIR}/FontsIndex.
By default, the directory is $prefix/share/wx/fonts, but can be ovewritten
by setting WXDFB_FONTDIR environment variable.
The file is standard wxFileConfig file text file. Each toplevel group
specifies one font bundle, font's name is the name of group. Group's entries
look like this:
[Font Name]
# font files (at least one of them must be present):
Regular=RegularFaceFile.ttf
Italic=ItalicFaceFile.ttf
Bold=BoldFaceFile.ttf
BoldItalic=BoldItalicFaceFile.ttf
# optional tag indicating this font is fixed-with (default is false):
IsFixed=1
Additionally, there may be DefaultXXX entries at the toplevel for every
family XXX and a Default entry that is shortcut for setting all families'
default, their value is name of the default font:
# optional tags indicating the default font for given family:
DefaultDecorative=Font Name
DefaultRoman=Font Name
DefaultScript=Font Name
DefaultSwiss=Font Name
DefaultModern=Font Name
DefaultTeletype=Font Name
# indicate the font that is default for all families (optional):
Default=Font Name
*/
void wxFontsManager::AddAllFonts()
{
wxString dir = _T(wxINSTALL_PREFIX "/share/wx/fonts");
wxGetEnv(_T("WXDFB_FONTDIR"), &dir);
wxString indexFile = dir + _T("/FontsIndex");
if ( !wxFileName::FileExists(indexFile) )
{
wxLogWarning(_("No fonts found in %s"), dir.c_str());
return;
}
wxLogTrace(_T("font"), _T("adding fonts from %s"), dir.c_str());
wxFileConfig cfg(wxEmptyString, wxEmptyString,
indexFile, wxEmptyString,
wxCONFIG_USE_LOCAL_FILE);
long i;
wxString name;
for ( bool cont = cfg.GetFirstGroup(name, i);
cont;
cont = cfg.GetNextGroup(name, i) )
{
AddFont(dir, name, cfg);
}
// set default fonts for families:
SetDefaultFonts(cfg);
}
static wxString
ReadFilePath(const wxString& name, const wxString& dir, wxFileConfig& cfg)
{
wxString p = cfg.Read(name, wxEmptyString);
if ( p.empty() || wxFileName(p).IsAbsolute() )
return p;
return dir + _T("/") + p;
}
void wxFontsManager::AddFont(const wxString& dir,
const wxString& name,
wxFileConfig& cfg)
{
wxLogTrace(_T("font"), _T("adding font '%s'"), name.c_str());
wxConfigPathChanger ch(&cfg, wxString::Format(_T("/%s/"), name.c_str()));
AddBundle
(
new wxFontBundle
(
name,
ReadFilePath(_T("Regular"), dir, cfg),
ReadFilePath(_T("Italic"), dir, cfg),
ReadFilePath(_T("Bold"), dir, cfg),
ReadFilePath(_T("BoldItalic"), dir, cfg),
cfg.Read(_T("IsFixed"), (long)false)
)
);
}
void wxFontsManager::SetDefaultFonts(wxFileConfig& cfg)
{
wxString name;
if ( cfg.Read(_T("Default"), &name) )
{
m_defaultFacenames[wxFONTFAMILY_DECORATIVE] =
m_defaultFacenames[wxFONTFAMILY_ROMAN] =
m_defaultFacenames[wxFONTFAMILY_SCRIPT] =
m_defaultFacenames[wxFONTFAMILY_SWISS] =
m_defaultFacenames[wxFONTFAMILY_MODERN] =
m_defaultFacenames[wxFONTFAMILY_TELETYPE] = name;
}
if ( cfg.Read(_T("DefaultDecorative"), &name) )
m_defaultFacenames[wxFONTFAMILY_DECORATIVE] = name;
if ( cfg.Read(_T("DefaultRoman"), &name) )
m_defaultFacenames[wxFONTFAMILY_ROMAN] = name;
if ( cfg.Read(_T("DefaultScript"), &name) )
m_defaultFacenames[wxFONTFAMILY_SCRIPT] = name;
if ( cfg.Read(_T("DefaultSwiss"), &name) )
m_defaultFacenames[wxFONTFAMILY_SWISS] = name;
if ( cfg.Read(_T("DefaultModern"), &name) )
m_defaultFacenames[wxFONTFAMILY_MODERN] = name;
if ( cfg.Read(_T("DefaultTeletype"), &name) )
m_defaultFacenames[wxFONTFAMILY_TELETYPE] = name;
}

View File

@@ -32,6 +32,7 @@
#include "wx/univ/colschem.h" #include "wx/univ/colschem.h"
#include "wx/sysopt.h" #include "wx/sysopt.h"
#include "wx/mgl/private.h" #include "wx/mgl/private.h"
#include "wx/private/fontmgr.h"
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
// wxApp::Exit() // wxApp::Exit()
@@ -283,14 +284,8 @@ bool wxApp::Initialize(int& argc, wxChar **argv)
return false; return false;
} }
// must do it before calling wxAppBase::Initialize(), because fonts are
// needed by stock lists which are created there
wxTheFontsManager = new wxFontsManager;
if ( !wxAppBase::Initialize(argc, argv) ) if ( !wxAppBase::Initialize(argc, argv) )
{ {
delete wxTheFontsManager;
wxTheFontsManager = NULL;
MGL_exit(); MGL_exit();
return false; return false;
} }
@@ -313,8 +308,7 @@ struct wxMGLFinalCleanup: public wxModule
void OnExit() void OnExit()
{ {
delete wxTheFontsManager; wxFontsManager::CleanUp();
wxTheFontsManager = (wxFontsManager*) NULL;
wxDestroyMGL_WM(); wxDestroyMGL_WM();
MGL_exit(); MGL_exit();

View File

@@ -32,6 +32,7 @@
#include "wx/encinfo.h" #include "wx/encinfo.h"
#include "wx/fontutil.h" #include "wx/fontutil.h"
#include "wx/private/fontmgr.h"
#include <mgraph.h> #include <mgraph.h>
@@ -48,19 +49,19 @@ bool wxFontEnumerator::EnumerateFacenames(wxFontEncoding encoding,
bool fixedWidthOnly) bool fixedWidthOnly)
{ {
bool found = false; bool found = false;
wxMGLFontFamilyList *list = wxTheFontsManager->GetFamilyList(); const wxFontBundleList& list = wxFontsManager::Get()->GetBundles();
wxMGLFontFamilyList::Node *node; wxFontBundleList::Node *node;
wxMGLFontFamily *f = NULL; wxFontBundle *f = NULL;
wxNativeEncodingInfo info; wxNativeEncodingInfo info;
if ( encoding != wxFONTENCODING_SYSTEM ) if ( encoding != wxFONTENCODING_SYSTEM )
wxGetNativeFontEncoding(encoding, &info); wxGetNativeFontEncoding(encoding, &info);
for (node = list->GetFirst(); node; node = node->GetNext()) for (node = list.GetFirst(); node; node = node->GetNext())
{ {
f = node->GetData(); f = node->GetData();
info.facename = f->GetName(); info.facename = f->GetName();
if ( (!fixedWidthOnly || f->GetInfo()->isFixed) && if ( (!fixedWidthOnly || f->IsFixed()) &&
(encoding == wxFONTENCODING_SYSTEM || wxTestFontEncoding(info)) ) (encoding == wxFONTENCODING_SYSTEM || wxTestFontEncoding(info)) )
{ {
found = true; found = true;

169
src/mgl/fontmgr.cpp Normal file
View File

@@ -0,0 +1,169 @@
/////////////////////////////////////////////////////////////////////////////
// Name: src/mgl/fontmgr.cpp
// Purpose: font management for wxMGL
// Author: Vaclav Slavik
// Created: 2006-11-18
// RCS-ID: $Id$
// Copyright: (c) 2001-2002 SciTech Software, Inc. (www.scitechsoft.com)
// (c) 2006 REA Elektronik GmbH
// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
// For compilers that support precompilation, includes "wx.h".
#include "wx/wxprec.h"
#ifdef __BORLANDC__
#pragma hdrstop
#endif
#include "wx/private/fontmgr.h"
#include "wx/sysopt.h"
#include <mgraph.h>
static int gs_antialiasingThreshold = -1;
// ============================================================================
// implementation
// ============================================================================
// ----------------------------------------------------------------------------
// wxFontInstance
// ----------------------------------------------------------------------------
wxFontInstance::wxFontInstance(float ptSize, bool aa, font_lib_t *fontLib)
: wxFontInstanceBase(ptSize, aa)
{
m_font = MGL_loadFontInstance(fontLib, ptSize, 0.0, 0.0, aa);
wxASSERT_MSG( m_font, _T("cannot create font instance") );
}
wxFontInstance::~wxFontInstance()
{
if ( m_font )
MGL_unloadFontInstance(m_font);
}
// ----------------------------------------------------------------------------
// wxFontFace
// ----------------------------------------------------------------------------
void wxFontFace::Acquire()
{
wxFontFaceBase::Acquire();
if ( m_refCnt == 1 )
{
wxCHECK_RET( m_fontLib == NULL, _T("font lib already created") );
wxLogTrace("mgl_font", "opening library '%s'", m_fileName.mb_str());
m_fontLib = MGL_openFontLib(m_fileName.fn_str());
}
}
void wxFontFace::Release()
{
wxFontFaceBase::Release();
if ( m_refCnt == 0 )
{
wxCHECK_RET( m_fontLib != NULL, _T("font lib not created") );
wxLogTrace("mgl_font", "closing library '%s'", m_fileName.mb_str());
MGL_closeFontLib(m_fontLib);
m_fontLib = NULL;
}
}
wxFontInstance *wxFontFace::GetFontInstance(float ptSize, bool aa)
{
if ( gs_antialiasingThreshold == -1 )
{
gs_antialiasingThreshold = 10;
#if wxUSE_SYSTEM_OPTIONS
if ( wxSystemOptions::HasOption(wxT("mgl.aa-threshold")) )
gs_antialiasingThreshold =
wxSystemOptions::GetOptionInt(wxT("mgl.aa-threshold"));
wxLogTrace("mgl_font", "AA threshold set to %i", gs_antialiasingThreshold);
#endif
}
// Small characters don't look good when antialiased with the algorithm
// that FreeType uses (mere 2x2 supersampling), so lets disable AA
// completely for small fonts. Bitmap fonts are not antialiased either.
if ( ptSize <= gs_antialiasingThreshold ||
m_fontLib->fontLibType == MGL_BITMAPFONT_LIB )
{
aa = false;
}
return wxFontFaceBase::GetFontInstance(ptSize, aa);
}
wxFontInstance *wxFontFace::CreateFontInstance(float ptSize, bool aa)
{
wxASSERT_MSG( m_fontLib, _T("font library not loaded!") );
return new wxFontInstance(ptSize, aa, m_fontLib);
}
// ----------------------------------------------------------------------------
// wxFontBundle
// ----------------------------------------------------------------------------
wxFontBundle::wxFontBundle(const font_info_t *info)
: m_fontInfo(info)
{
if ( info->regularFace[0] != '\0' )
m_faces[FaceType_Regular] = new wxFontFace(info->regularFace);
if ( info->italicFace[0] != '\0' )
m_faces[FaceType_Italic] = new wxFontFace(info->italicFace);
if ( info->boldFace[0] != '\0' )
m_faces[FaceType_Bold] = new wxFontFace(info->boldFace);
if ( info->boldItalicFace[0] != '\0' )
m_faces[FaceType_BoldItalic] = new wxFontFace(info->boldItalicFace);
wxLogTrace("mgl_font", "new family '%s' (r=%s, i=%s, b=%s, bi=%s)\n",
info->familyName, info->regularFace, info->italicFace,
info->boldFace, info->boldItalicFace);
}
// ----------------------------------------------------------------------------
// wxFontsManager
// ----------------------------------------------------------------------------
wxString wxFontsManager::GetDefaultFacename(wxFontFamily family) const
{
switch ( family )
{
case wxSCRIPT:
return _T("Script");
case wxDECORATIVE:
return _T("Charter");
case wxROMAN:
return _T("Times");
case wxTELETYPE:
case wxMODERN:
return _T("Courier");
case wxSWISS:
case wxDEFAULT:
default:
return wxT("Helvetica");
}
}
static ibool MGLAPI enum_callback(const font_info_t *info, void *cookie)
{
wxFontsManager *db = (wxFontsManager*)cookie;
db->AddBundle(new wxFontBundle(info));
return TRUE;
}
void wxFontsManager::AddAllFonts()
{
MGL_enumerateFonts(enum_callback, (void*)this);
}

View File

@@ -28,6 +28,7 @@
#include "wx/listimpl.cpp" #include "wx/listimpl.cpp"
#include "wx/sysopt.h" #include "wx/sysopt.h"
#include "wx/mgl/private.h" #include "wx/mgl/private.h"
#include "wx/private/fontmgr.h"
#include <mgraph.h> #include <mgraph.h>
@@ -138,311 +139,16 @@ bool wxTestFontEncoding(const wxNativeEncodingInfo& info)
if ( !info.facename ) if ( !info.facename )
return true; return true;
wxMGLFontFamily *family = wxTheFontsManager->GetFamily(info.facename); wxFontBundle *bundle = wxFontsManager::Get()->GetBundle(info.facename);
if ( !family ) if ( !bundle )
return false; return false;
if ( family->GetInfo()->fontLibType == MGL_BITMAPFONT_LIB ) if ( bundle->GetInfo()->fontLibType == MGL_BITMAPFONT_LIB )
{
return (info.mglEncoding == MGL_ENCODING_ASCII || return (info.mglEncoding == MGL_ENCODING_ASCII ||
info.mglEncoding == MGL_ENCODING_ISO8859_1 || info.mglEncoding == MGL_ENCODING_ISO8859_1 ||
info.mglEncoding == MGL_ENCODING_ISO8859_15 || info.mglEncoding == MGL_ENCODING_ISO8859_15 ||
info.mglEncoding == MGL_ENCODING_CP1252); info.mglEncoding == MGL_ENCODING_CP1252);
}
else else
return true; return true;
} }
// ----------------------------------------------------------------------------
// wxFontFamily, wxMGLFontInstance, wxMGLFontLibrary
// ----------------------------------------------------------------------------
WX_DECLARE_LIST(wxMGLFontInstance, wxMGLFontInstanceList);
WX_DEFINE_LIST(wxMGLFontInstanceList)
WX_DEFINE_LIST(wxMGLFontFamilyList)
wxMGLFontInstance::wxMGLFontInstance(wxMGLFontLibrary *fontLib,
float pt, bool slant, bool aa)
{
m_fontLib = fontLib;
m_font = NULL;
m_pt = pt;
m_slant = slant;
m_aa = aa;
float slantAngle = m_slant ? 15.0 : 0.0;
wxLogTrace("mgl_font", "loading instance of '%s' slant=%i pt=%0.1f aa=%i",
m_fontLib->GetMGLfont_lib_t()->name, m_slant, m_pt, m_aa);
m_font = MGL_loadFontInstance(m_fontLib->GetMGLfont_lib_t(),
m_pt, slantAngle, 0.0, aa);
wxASSERT_MSG( m_font, wxT("Cannot create font instance.") );
}
wxMGLFontInstance::~wxMGLFontInstance()
{
wxLogTrace("mgl_font", "unloading instance of '%s' slant=%i pt=%0.1f aa=%i",
m_fontLib->GetMGLfont_lib_t()->name, m_slant, m_pt, m_aa);
if ( m_font )
MGL_unloadFontInstance(m_font);
}
wxMGLFontLibrary::wxMGLFontLibrary(const wxString& filename, int type,
wxMGLFontFamily *parentFamily)
{
m_family = parentFamily;
m_type = type;
m_fileName = filename;
m_refs = 0;
m_fontLib = NULL;
m_instances = new wxMGLFontInstanceList;
m_instances->DeleteContents(true);
}
wxMGLFontLibrary::~wxMGLFontLibrary()
{
wxLogTrace("mgl_font", "font library dtor '%s'", m_fileName.mb_str());
delete m_instances;
}
void wxMGLFontLibrary::IncRef()
{
wxLogTrace("mgl_font", "incRef(%u) '%s'", m_refs, m_fileName.c_str());
if ( m_refs++ == 0 )
{
wxLogTrace("mgl_font", "opening library '%s'", m_fileName.mb_str());
m_fontLib = MGL_openFontLib(m_fileName.mb_str());
}
}
void wxMGLFontLibrary::DecRef()
{
wxLogTrace("mgl_font", "decRef(%u) '%s'", m_refs, m_fileName.c_str());
if ( --m_refs == 0 )
{
wxLogTrace("mgl_font", "killing instances of '%s'", m_fileName.mb_str());
m_instances->Clear();
wxLogTrace("mgl_font", "closing library '%s'", m_fileName.mb_str());
MGL_closeFontLib(m_fontLib);
m_fontLib = NULL;
}
}
static int gs_antialiasingThreshold = -1;
wxMGLFontInstance *wxMGLFontLibrary::GetFontInstance(wxFont *font,
float scale, bool aa)
{
wxASSERT_MSG(m_refs > 0 && m_fontLib, wxT("font library not loaded!"));
wxString facename;
float pt = (float)font->GetPointSize() * scale;
if ( gs_antialiasingThreshold == -1 )
{
gs_antialiasingThreshold = 10;
#if wxUSE_SYSTEM_OPTIONS
if ( wxSystemOptions::HasOption(wxT("mgl.aa-threshold")) )
gs_antialiasingThreshold =
wxSystemOptions::GetOptionInt(wxT("mgl.aa-threshold"));
wxLogTrace("mgl_font", "AA threshold set to %i", gs_antialiasingThreshold);
#endif
}
// Small characters don't look good when antialiased with the algorithm
// that FreeType uses (mere 2x2 supersampling), so lets disable it AA
// completely for small fonts.
bool antialiased = false;
if (( pt > gs_antialiasingThreshold ) &&
( m_fontLib->fontLibType != MGL_BITMAPFONT_LIB ) )
antialiased = aa;
bool slant = (((m_type & wxFONTFACE_ITALIC) == 0) &&
(font->GetStyle() == wxSLANT || font->GetStyle() == wxITALIC));
// FIXME_MGL -- MGL does not yet support slant, although the API is there
slant = false;
wxLogTrace("mgl_font", "requested instance of '%s' slant=%i pt=%0.1f aa=%i",
m_fileName.mb_str(), slant, pt, antialiased);
wxMGLFontInstance *i;
wxMGLFontInstanceList::Node *node;
for (node = m_instances->GetFirst(); node; node = node->GetNext())
{
i = node->GetData();
if ( i->GetPt() == pt && i->GetSlant() == slant &&
i->GetAA() == antialiased )
{
wxLogTrace("mgl_font", " got from cache: slant=%i pt=%0.1f aa=%i",
i->GetSlant(), i->GetPt(), i->GetAA());
return i;
}
}
i = new wxMGLFontInstance(this, pt, slant, antialiased);
m_instances->Append(i);
return i;
}
wxMGLFontFamily::wxMGLFontFamily(const font_info_t *info)
{
m_name = info->familyName;
m_fontInfo = info;
if ( info->regularFace[0] == '\0' )
m_fontLibs[wxFONTFACE_REGULAR] = NULL;
else
m_fontLibs[wxFONTFACE_REGULAR] =
new wxMGLFontLibrary(info->regularFace, wxFONTFACE_REGULAR, this);
if ( info->italicFace[0] == '\0' )
m_fontLibs[wxFONTFACE_ITALIC] = NULL;
else
m_fontLibs[wxFONTFACE_ITALIC] =
new wxMGLFontLibrary(info->italicFace, wxFONTFACE_ITALIC, this);
if ( info->boldFace[0] == '\0' )
m_fontLibs[wxFONTFACE_BOLD] = NULL;
else
m_fontLibs[wxFONTFACE_BOLD] =
new wxMGLFontLibrary(info->boldFace, wxFONTFACE_BOLD, this);
if ( info->boldItalicFace[0] == '\0' )
m_fontLibs[wxFONTFACE_BOLD_ITALIC] = NULL;
else
m_fontLibs[wxFONTFACE_BOLD_ITALIC] =
new wxMGLFontLibrary(info->boldItalicFace, wxFONTFACE_BOLD_ITALIC, this);
wxLogTrace("mgl_font", "new family '%s' (r=%s, i=%s, b=%s, bi=%s)\n",
info->familyName, info->regularFace, info->italicFace,
info->boldFace, info->boldItalicFace);
}
wxMGLFontFamily::~wxMGLFontFamily()
{
for (size_t i = 0; i < wxFONTFACE_MAX; i++)
delete m_fontLibs[i];
}
bool wxMGLFontFamily::HasFace(int type) const
{
return (m_fontLibs[type] != NULL);
}
// ----------------------------------------------------------------------------
// wxFontsManager
// ----------------------------------------------------------------------------
wxMGLFontLibrary *wxFontsManager::GetFontLibrary(wxFont *font)
{
wxMGLFontFamily *family;
int type;
wxString facename = font->GetFaceName();
if ( !facename.empty() )
family = GetFamily(facename);
else
family = NULL;
if ( !family )
{
facename.Empty();
switch (font->GetFamily())
{
case wxSCRIPT:
facename = wxT("Script");
break;
case wxDECORATIVE:
facename = wxT("Charter");
break;
case wxROMAN:
facename = wxT("Times");
break;
case wxTELETYPE:
case wxMODERN:
facename = wxT("Courier");
break;
case wxSWISS:
facename = wxT("Helvetica");
break;
case wxDEFAULT:
default:
facename = wxT("Helvetica");
break;
}
family = GetFamily(facename);
if ( !family )
{
if ( m_list->GetFirst() )
family = m_list->GetFirst()->GetData();
else
wxFAIL_MSG(wxT("Fatal error, no fonts available!"));
}
}
type = wxFONTFACE_REGULAR;
if ( font->GetWeight() == wxBOLD )
type |= wxFONTFACE_BOLD;
// FIXME_MGL -- this should read "if ( font->GetStyle() == wxITALIC )",
// but since MGL does not yet support slant, we try to display it with
// italic face (better than nothing...)
if ( font->GetStyle() == wxITALIC || font->GetStyle() == wxSLANT )
{
if ( family->HasFace(type | wxFONTFACE_ITALIC) )
type |= wxFONTFACE_ITALIC;
}
if ( !family->HasFace(type) )
{
for (int i = 0; i < wxFONTFACE_MAX; i++)
if ( family->HasFace(i) )
{
type = i;
break;
}
}
return family->GetLibrary(type);
}
static ibool MGLAPI enum_callback(const font_info_t *info, void *cookie)
{
wxFontsManager *db = (wxFontsManager*)cookie;
db->AddFamily(info);
return TRUE;
}
wxFontsManager::wxFontsManager()
{
m_hash = new wxHashTable(wxKEY_STRING);
m_hash->DeleteContents(false);
m_list = new wxMGLFontFamilyList;
m_list->DeleteContents(true);
MGL_enumerateFonts(enum_callback, (void*)this);
}
wxFontsManager::~wxFontsManager()
{
delete m_hash;
delete m_list;
}
void wxFontsManager::AddFamily(const font_info_t *info)
{
wxMGLFontFamily *f = new wxMGLFontFamily(info);
m_hash->Put(f->GetName().Lower(), f);
m_list->Append(f);
}
wxMGLFontFamily *wxFontsManager::GetFamily(const wxString& name) const
{
return (wxMGLFontFamily*)m_hash->Get(name.Lower());
}
wxFontsManager *wxTheFontsManager = NULL;