]> git.saurik.com Git - wxWidgets.git/commitdiff
native wxBitmapComboBox implementation for MSW (patch 1941399)
authorVadim Zeitlin <vadim@wxwidgets.org>
Sat, 17 May 2008 22:43:00 +0000 (22:43 +0000)
committerVadim Zeitlin <vadim@wxwidgets.org>
Sat, 17 May 2008 22:43:00 +0000 (22:43 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@53626 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

18 files changed:
Makefile.in
build/bakefiles/files.bkl
build/msw/makefile.bcc
build/msw/makefile.gcc
build/msw/makefile.vc
build/msw/makefile.wat
build/msw/wx_adv.dsp
build/msw/wx_core.dsp
build/msw/wx_vc7_adv.vcproj
build/msw/wx_vc7_core.vcproj
build/msw/wx_vc8_adv.vcproj
build/msw/wx_vc8_core.vcproj
include/wx/bmpcbox.h
include/wx/generic/bmpcbox.h
include/wx/msw/bmpcbox.h [new file with mode: 0644]
src/common/bmpcboxcmn.cpp [new file with mode: 0644]
src/generic/bmpcboxg.cpp
src/msw/bmpcbox.cpp [new file with mode: 0644]

index 6e58ef585b60e6cb2f951c7cc56a12ce628cd46f..23481bfcd54f93e6851ff0f49830e877f7278447 100644 (file)
@@ -3015,11 +3015,18 @@ COND_TOOLKIT_GTK_TOOLKIT_VERSION_2_ADVANCED_PLATFORM_NATIVE_HDR =  \
        wx/gtk/dataview.h \
        wx/gtk/hyperlink.h
 @COND_TOOLKIT_GTK_TOOLKIT_VERSION_2@ADVANCED_PLATFORM_NATIVE_HDR = $(COND_TOOLKIT_GTK_TOOLKIT_VERSION_2_ADVANCED_PLATFORM_NATIVE_HDR)
-@COND_TOOLKIT_MSW@ADVANCED_PLATFORM_NATIVE_HDR = \
-@COND_TOOLKIT_MSW@     wx/msw/calctrl.h wx/msw/datecontrols.h wx/msw/datectrl.h
-@COND_TOOLKIT_WINCE@ADVANCED_PLATFORM_NATIVE_HDR = \
-@COND_TOOLKIT_WINCE@   wx/msw/calctrl.h wx/msw/datecontrols.h \
-@COND_TOOLKIT_WINCE@   wx/msw/datectrl.h
+COND_TOOLKIT_MSW_ADVANCED_PLATFORM_NATIVE_HDR =  \
+       wx/msw/bmpcbox.h \
+       wx/msw/calctrl.h \
+       wx/msw/datecontrols.h \
+       wx/msw/datectrl.h
+@COND_TOOLKIT_MSW@ADVANCED_PLATFORM_NATIVE_HDR = $(COND_TOOLKIT_MSW_ADVANCED_PLATFORM_NATIVE_HDR)
+COND_TOOLKIT_WINCE_ADVANCED_PLATFORM_NATIVE_HDR =  \
+       wx/msw/bmpcbox.h \
+       wx/msw/calctrl.h \
+       wx/msw/datecontrols.h \
+       wx/msw/datectrl.h
+@COND_TOOLKIT_WINCE@ADVANCED_PLATFORM_NATIVE_HDR = $(COND_TOOLKIT_WINCE_ADVANCED_PLATFORM_NATIVE_HDR)
 COND_WXUNIV_0_ADVANCED_HDR =  \
        wx/aboutdlg.h \
        wx/animate.h \
@@ -5323,6 +5330,7 @@ COND_TOOLKIT_X11___LOWLEVEL_SRC_OBJECTS_1 =  \
 @COND_TOOLKIT_X11@__LOWLEVEL_SRC_OBJECTS_1 = $(COND_TOOLKIT_X11___LOWLEVEL_SRC_OBJECTS_1)
 COND_WXUNIV_0___ADVANCED_SRC_OBJECTS =  \
        monodll_animatecmn.o \
+       monodll_bmpcboxcmn.o \
        monodll_calctrlcmn.o \
        monodll_datavcmn.o \
        monodll_hyperlnkcmn.o \
@@ -5350,6 +5358,7 @@ COND_WXUNIV_0___ADVANCED_SRC_OBJECTS =  \
 @COND_WXUNIV_0@__ADVANCED_SRC_OBJECTS = $(COND_WXUNIV_0___ADVANCED_SRC_OBJECTS)
 COND_WXUNIV_1___ADVANCED_SRC_OBJECTS =  \
        monodll_animatecmn.o \
+       monodll_bmpcboxcmn.o \
        monodll_calctrlcmn.o \
        monodll_datavcmn.o \
        monodll_hyperlnkcmn.o \
@@ -5382,12 +5391,18 @@ COND_TOOLKIT_GTK_TOOLKIT_VERSION_2___ADVANCED_PLATFORM_NATIVE_SRC_OBJECTS =  \
        monodll_dataview.o \
        monodll_hyperlink.o
 @COND_TOOLKIT_GTK_TOOLKIT_VERSION_2@__ADVANCED_PLATFORM_NATIVE_SRC_OBJECTS = $(COND_TOOLKIT_GTK_TOOLKIT_VERSION_2___ADVANCED_PLATFORM_NATIVE_SRC_OBJECTS)
-@COND_TOOLKIT_MSW@__ADVANCED_PLATFORM_NATIVE_SRC_OBJECTS \
-@COND_TOOLKIT_MSW@     = monodll_calctrl.o monodll_datecontrols.o \
-@COND_TOOLKIT_MSW@     monodll_datectrl.o
-@COND_TOOLKIT_WINCE@__ADVANCED_PLATFORM_NATIVE_SRC_OBJECTS \
-@COND_TOOLKIT_WINCE@   = monodll_calctrl.o monodll_datecontrols.o \
-@COND_TOOLKIT_WINCE@   monodll_datectrl.o
+COND_TOOLKIT_MSW___ADVANCED_PLATFORM_NATIVE_SRC_OBJECTS =  \
+       monodll_bmpcbox.o \
+       monodll_calctrl.o \
+       monodll_datecontrols.o \
+       monodll_datectrl.o
+@COND_TOOLKIT_MSW@__ADVANCED_PLATFORM_NATIVE_SRC_OBJECTS = $(COND_TOOLKIT_MSW___ADVANCED_PLATFORM_NATIVE_SRC_OBJECTS)
+COND_TOOLKIT_WINCE___ADVANCED_PLATFORM_NATIVE_SRC_OBJECTS =  \
+       monodll_bmpcbox.o \
+       monodll_calctrl.o \
+       monodll_datecontrols.o \
+       monodll_datectrl.o
+@COND_TOOLKIT_WINCE@__ADVANCED_PLATFORM_NATIVE_SRC_OBJECTS = $(COND_TOOLKIT_WINCE___ADVANCED_PLATFORM_NATIVE_SRC_OBJECTS)
 @COND_TOOLKIT_COCOA@__MEDIA_PLATFORM_SRC_OBJECTS = monodll_mediactrl.o
 @COND_TOOLKIT_GTK@__MEDIA_PLATFORM_SRC_OBJECTS = monodll_mediactrl.o 
 @COND_TOOLKIT_MAC@__MEDIA_PLATFORM_SRC_OBJECTS = monodll_mediactrl.o
@@ -7238,6 +7253,7 @@ COND_TOOLKIT_X11___LOWLEVEL_SRC_OBJECTS_3 =  \
 @COND_TOOLKIT_X11@__LOWLEVEL_SRC_OBJECTS_3 = $(COND_TOOLKIT_X11___LOWLEVEL_SRC_OBJECTS_3)
 COND_WXUNIV_0___ADVANCED_SRC_OBJECTS_1 =  \
        monolib_animatecmn.o \
+       monolib_bmpcboxcmn.o \
        monolib_calctrlcmn.o \
        monolib_datavcmn.o \
        monolib_hyperlnkcmn.o \
@@ -7265,6 +7281,7 @@ COND_WXUNIV_0___ADVANCED_SRC_OBJECTS_1 =  \
 @COND_WXUNIV_0@__ADVANCED_SRC_OBJECTS_1 = $(COND_WXUNIV_0___ADVANCED_SRC_OBJECTS_1)
 COND_WXUNIV_1___ADVANCED_SRC_OBJECTS_1 =  \
        monolib_animatecmn.o \
+       monolib_bmpcboxcmn.o \
        monolib_calctrlcmn.o \
        monolib_datavcmn.o \
        monolib_hyperlnkcmn.o \
@@ -7297,12 +7314,18 @@ COND_TOOLKIT_GTK_TOOLKIT_VERSION_2___ADVANCED_PLATFORM_NATIVE_SRC_OBJECTS_1 =  \
        monolib_dataview.o \
        monolib_hyperlink.o
 @COND_TOOLKIT_GTK_TOOLKIT_VERSION_2@__ADVANCED_PLATFORM_NATIVE_SRC_OBJECTS_1 = $(COND_TOOLKIT_GTK_TOOLKIT_VERSION_2___ADVANCED_PLATFORM_NATIVE_SRC_OBJECTS_1)
-@COND_TOOLKIT_MSW@__ADVANCED_PLATFORM_NATIVE_SRC_OBJECTS_1 \
-@COND_TOOLKIT_MSW@     = monolib_calctrl.o monolib_datecontrols.o \
-@COND_TOOLKIT_MSW@     monolib_datectrl.o
-@COND_TOOLKIT_WINCE@__ADVANCED_PLATFORM_NATIVE_SRC_OBJECTS_1 \
-@COND_TOOLKIT_WINCE@   = monolib_calctrl.o monolib_datecontrols.o \
-@COND_TOOLKIT_WINCE@   monolib_datectrl.o
+COND_TOOLKIT_MSW___ADVANCED_PLATFORM_NATIVE_SRC_OBJECTS_1 =  \
+       monolib_bmpcbox.o \
+       monolib_calctrl.o \
+       monolib_datecontrols.o \
+       monolib_datectrl.o
+@COND_TOOLKIT_MSW@__ADVANCED_PLATFORM_NATIVE_SRC_OBJECTS_1 = $(COND_TOOLKIT_MSW___ADVANCED_PLATFORM_NATIVE_SRC_OBJECTS_1)
+COND_TOOLKIT_WINCE___ADVANCED_PLATFORM_NATIVE_SRC_OBJECTS_1 =  \
+       monolib_bmpcbox.o \
+       monolib_calctrl.o \
+       monolib_datecontrols.o \
+       monolib_datectrl.o
+@COND_TOOLKIT_WINCE@__ADVANCED_PLATFORM_NATIVE_SRC_OBJECTS_1 = $(COND_TOOLKIT_WINCE___ADVANCED_PLATFORM_NATIVE_SRC_OBJECTS_1)
 @COND_TOOLKIT_COCOA@__MEDIA_PLATFORM_SRC_OBJECTS_1 = monolib_mediactrl.o
 @COND_TOOLKIT_GTK@__MEDIA_PLATFORM_SRC_OBJECTS_1 = monolib_mediactrl.o 
 @COND_TOOLKIT_MAC@__MEDIA_PLATFORM_SRC_OBJECTS_1 = monolib_mediactrl.o
@@ -10990,6 +11013,7 @@ COND_USE_SOSYMLINKS_1___advdll___so_symlinks_uninst_cmd = rm -f \
 @COND_PLATFORM_WIN32_1@__advdll___win32rc = advdll_version_rc.o
 COND_WXUNIV_0___ADVANCED_SRC_OBJECTS_2 =  \
        advdll_animatecmn.o \
+       advdll_bmpcboxcmn.o \
        advdll_calctrlcmn.o \
        advdll_datavcmn.o \
        advdll_hyperlnkcmn.o \
@@ -11017,6 +11041,7 @@ COND_WXUNIV_0___ADVANCED_SRC_OBJECTS_2 =  \
 @COND_WXUNIV_0@__ADVANCED_SRC_OBJECTS_2 = $(COND_WXUNIV_0___ADVANCED_SRC_OBJECTS_2)
 COND_WXUNIV_1___ADVANCED_SRC_OBJECTS_2 =  \
        advdll_animatecmn.o \
+       advdll_bmpcboxcmn.o \
        advdll_calctrlcmn.o \
        advdll_datavcmn.o \
        advdll_hyperlnkcmn.o \
@@ -11050,11 +11075,11 @@ COND_TOOLKIT_GTK_TOOLKIT_VERSION_2___ADVANCED_PLATFORM_NATIVE_SRC_OBJECTS_2 =  \
        advdll_hyperlink.o
 @COND_TOOLKIT_GTK_TOOLKIT_VERSION_2@__ADVANCED_PLATFORM_NATIVE_SRC_OBJECTS_2 = $(COND_TOOLKIT_GTK_TOOLKIT_VERSION_2___ADVANCED_PLATFORM_NATIVE_SRC_OBJECTS_2)
 @COND_TOOLKIT_MSW@__ADVANCED_PLATFORM_NATIVE_SRC_OBJECTS_2 \
-@COND_TOOLKIT_MSW@     = advdll_calctrl.o advdll_datecontrols.o \
+@COND_TOOLKIT_MSW@     = advdll_bmpcbox.o advdll_calctrl.o advdll_datecontrols.o \
 @COND_TOOLKIT_MSW@     advdll_datectrl.o
 @COND_TOOLKIT_WINCE@__ADVANCED_PLATFORM_NATIVE_SRC_OBJECTS_2 \
-@COND_TOOLKIT_WINCE@   = advdll_calctrl.o advdll_datecontrols.o \
-@COND_TOOLKIT_WINCE@   advdll_datectrl.o
+@COND_TOOLKIT_WINCE@   = advdll_bmpcbox.o advdll_calctrl.o \
+@COND_TOOLKIT_WINCE@   advdll_datecontrols.o advdll_datectrl.o
 @COND_PLATFORM_UNIX_1_USE_PLUGINS_0@__PLUGIN_ADV_SRC_OBJECTS_2 \
 @COND_PLATFORM_UNIX_1_USE_PLUGINS_0@   = advdll_sound_sdl.o
 COND_MONOLITHIC_0_SHARED_0_USE_GUI_1___advlib___depname = \
@@ -11071,6 +11096,7 @@ COND_MONOLITHIC_0_SHARED_0_USE_GUI_1___advlib___depname = \
 @COND_USE_PCH_1@       = .pch/wxprec_advlib/wx/wxprec.h.gch
 COND_WXUNIV_0___ADVANCED_SRC_OBJECTS_3 =  \
        advlib_animatecmn.o \
+       advlib_bmpcboxcmn.o \
        advlib_calctrlcmn.o \
        advlib_datavcmn.o \
        advlib_hyperlnkcmn.o \
@@ -11098,6 +11124,7 @@ COND_WXUNIV_0___ADVANCED_SRC_OBJECTS_3 =  \
 @COND_WXUNIV_0@__ADVANCED_SRC_OBJECTS_3 = $(COND_WXUNIV_0___ADVANCED_SRC_OBJECTS_3)
 COND_WXUNIV_1___ADVANCED_SRC_OBJECTS_3 =  \
        advlib_animatecmn.o \
+       advlib_bmpcboxcmn.o \
        advlib_calctrlcmn.o \
        advlib_datavcmn.o \
        advlib_hyperlnkcmn.o \
@@ -11131,11 +11158,11 @@ COND_TOOLKIT_GTK_TOOLKIT_VERSION_2___ADVANCED_PLATFORM_NATIVE_SRC_OBJECTS_3 =  \
        advlib_hyperlink.o
 @COND_TOOLKIT_GTK_TOOLKIT_VERSION_2@__ADVANCED_PLATFORM_NATIVE_SRC_OBJECTS_3 = $(COND_TOOLKIT_GTK_TOOLKIT_VERSION_2___ADVANCED_PLATFORM_NATIVE_SRC_OBJECTS_3)
 @COND_TOOLKIT_MSW@__ADVANCED_PLATFORM_NATIVE_SRC_OBJECTS_3 \
-@COND_TOOLKIT_MSW@     = advlib_calctrl.o advlib_datecontrols.o \
+@COND_TOOLKIT_MSW@     = advlib_bmpcbox.o advlib_calctrl.o advlib_datecontrols.o \
 @COND_TOOLKIT_MSW@     advlib_datectrl.o
 @COND_TOOLKIT_WINCE@__ADVANCED_PLATFORM_NATIVE_SRC_OBJECTS_3 \
-@COND_TOOLKIT_WINCE@   = advlib_calctrl.o advlib_datecontrols.o \
-@COND_TOOLKIT_WINCE@   advlib_datectrl.o
+@COND_TOOLKIT_WINCE@   = advlib_bmpcbox.o advlib_calctrl.o \
+@COND_TOOLKIT_WINCE@   advlib_datecontrols.o advlib_datectrl.o
 @COND_PLATFORM_UNIX_1_USE_PLUGINS_0@__PLUGIN_ADV_SRC_OBJECTS_3 \
 @COND_PLATFORM_UNIX_1_USE_PLUGINS_0@   = advlib_sound_sdl.o
 @COND_SHARED_1@____wxadv_namedll_DEP = $(__advdll___depname)
@@ -17887,6 +17914,9 @@ monodll_sound_sdl.o: $(srcdir)/src/unix/sound_sdl.cpp $(MONODLL_ODEP)
 @COND_USE_GUI_1@monodll_animatecmn.o: $(srcdir)/src/common/animatecmn.cpp $(MONODLL_ODEP)
 @COND_USE_GUI_1@       $(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/common/animatecmn.cpp
 
+@COND_USE_GUI_1@monodll_bmpcboxcmn.o: $(srcdir)/src/common/bmpcboxcmn.cpp $(MONODLL_ODEP)
+@COND_USE_GUI_1@       $(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/common/bmpcboxcmn.cpp
+
 @COND_USE_GUI_1@monodll_calctrlcmn.o: $(srcdir)/src/common/calctrlcmn.cpp $(MONODLL_ODEP)
 @COND_USE_GUI_1@       $(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/common/calctrlcmn.cpp
 
@@ -18109,6 +18139,12 @@ monodll_sound_sdl.o: $(srcdir)/src/unix/sound_sdl.cpp $(MONODLL_ODEP)
 @COND_TOOLKIT_WINCE_USE_GUI_1_WXUNIV_0@monodll_calctrl.o: $(srcdir)/src/msw/calctrl.cpp $(MONODLL_ODEP)
 @COND_TOOLKIT_WINCE_USE_GUI_1_WXUNIV_0@        $(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/msw/calctrl.cpp
 
+@COND_TOOLKIT_MSW_USE_GUI_1_WXUNIV_0@monodll_bmpcbox.o: $(srcdir)/src/msw/bmpcbox.cpp $(MONODLL_ODEP)
+@COND_TOOLKIT_MSW_USE_GUI_1_WXUNIV_0@  $(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/msw/bmpcbox.cpp
+
+@COND_TOOLKIT_WINCE_USE_GUI_1_WXUNIV_0@monodll_bmpcbox.o: $(srcdir)/src/msw/bmpcbox.cpp $(MONODLL_ODEP)
+@COND_TOOLKIT_WINCE_USE_GUI_1_WXUNIV_0@        $(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/msw/bmpcbox.cpp
+
 @COND_TOOLKIT_MSW_USE_GUI_1_WXUNIV_0@monodll_datecontrols.o: $(srcdir)/src/msw/datecontrols.cpp $(MONODLL_ODEP)
 @COND_TOOLKIT_MSW_USE_GUI_1_WXUNIV_0@  $(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/msw/datecontrols.cpp
 
@@ -22429,6 +22465,9 @@ monolib_sound_sdl.o: $(srcdir)/src/unix/sound_sdl.cpp $(MONOLIB_ODEP)
 @COND_USE_GUI_1@monolib_animatecmn.o: $(srcdir)/src/common/animatecmn.cpp $(MONOLIB_ODEP)
 @COND_USE_GUI_1@       $(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/common/animatecmn.cpp
 
+@COND_USE_GUI_1@monolib_bmpcboxcmn.o: $(srcdir)/src/common/bmpcboxcmn.cpp $(MONOLIB_ODEP)
+@COND_USE_GUI_1@       $(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/common/bmpcboxcmn.cpp
+
 @COND_USE_GUI_1@monolib_calctrlcmn.o: $(srcdir)/src/common/calctrlcmn.cpp $(MONOLIB_ODEP)
 @COND_USE_GUI_1@       $(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/common/calctrlcmn.cpp
 
@@ -22651,6 +22690,12 @@ monolib_sound_sdl.o: $(srcdir)/src/unix/sound_sdl.cpp $(MONOLIB_ODEP)
 @COND_TOOLKIT_WINCE_USE_GUI_1_WXUNIV_0@monolib_calctrl.o: $(srcdir)/src/msw/calctrl.cpp $(MONOLIB_ODEP)
 @COND_TOOLKIT_WINCE_USE_GUI_1_WXUNIV_0@        $(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/msw/calctrl.cpp
 
+@COND_TOOLKIT_MSW_USE_GUI_1_WXUNIV_0@monolib_bmpcbox.o: $(srcdir)/src/msw/bmpcbox.cpp $(MONOLIB_ODEP)
+@COND_TOOLKIT_MSW_USE_GUI_1_WXUNIV_0@  $(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/msw/bmpcbox.cpp
+
+@COND_TOOLKIT_WINCE_USE_GUI_1_WXUNIV_0@monolib_bmpcbox.o: $(srcdir)/src/msw/bmpcbox.cpp $(MONOLIB_ODEP)
+@COND_TOOLKIT_WINCE_USE_GUI_1_WXUNIV_0@        $(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/msw/bmpcbox.cpp
+
 @COND_TOOLKIT_MSW_USE_GUI_1_WXUNIV_0@monolib_datecontrols.o: $(srcdir)/src/msw/datecontrols.cpp $(MONOLIB_ODEP)
 @COND_TOOLKIT_MSW_USE_GUI_1_WXUNIV_0@  $(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/msw/datecontrols.cpp
 
@@ -30610,6 +30655,9 @@ advdll_sound_sdl.o: $(srcdir)/src/unix/sound_sdl.cpp $(ADVDLL_ODEP)
 advdll_animatecmn.o: $(srcdir)/src/common/animatecmn.cpp $(ADVDLL_ODEP)
        $(CXXC) -c -o $@ $(ADVDLL_CXXFLAGS) $(srcdir)/src/common/animatecmn.cpp
 
+advdll_bmpcboxcmn.o: $(srcdir)/src/common/bmpcboxcmn.cpp $(ADVDLL_ODEP)
+       $(CXXC) -c -o $@ $(ADVDLL_CXXFLAGS) $(srcdir)/src/common/bmpcboxcmn.cpp
+
 advdll_calctrlcmn.o: $(srcdir)/src/common/calctrlcmn.cpp $(ADVDLL_ODEP)
        $(CXXC) -c -o $@ $(ADVDLL_CXXFLAGS) $(srcdir)/src/common/calctrlcmn.cpp
 
@@ -30862,6 +30910,12 @@ advdll_wizard.o: $(srcdir)/src/generic/wizard.cpp $(ADVDLL_ODEP)
 @COND_TOOLKIT_WINCE_WXUNIV_0@advdll_calctrl.o: $(srcdir)/src/msw/calctrl.cpp $(ADVDLL_ODEP)
 @COND_TOOLKIT_WINCE_WXUNIV_0@  $(CXXC) -c -o $@ $(ADVDLL_CXXFLAGS) $(srcdir)/src/msw/calctrl.cpp
 
+@COND_TOOLKIT_MSW_WXUNIV_0@advdll_bmpcbox.o: $(srcdir)/src/msw/bmpcbox.cpp $(ADVDLL_ODEP)
+@COND_TOOLKIT_MSW_WXUNIV_0@    $(CXXC) -c -o $@ $(ADVDLL_CXXFLAGS) $(srcdir)/src/msw/bmpcbox.cpp
+
+@COND_TOOLKIT_WINCE_WXUNIV_0@advdll_bmpcbox.o: $(srcdir)/src/msw/bmpcbox.cpp $(ADVDLL_ODEP)
+@COND_TOOLKIT_WINCE_WXUNIV_0@  $(CXXC) -c -o $@ $(ADVDLL_CXXFLAGS) $(srcdir)/src/msw/bmpcbox.cpp
+
 @COND_TOOLKIT_MSW_WXUNIV_0@advdll_datecontrols.o: $(srcdir)/src/msw/datecontrols.cpp $(ADVDLL_ODEP)
 @COND_TOOLKIT_MSW_WXUNIV_0@    $(CXXC) -c -o $@ $(ADVDLL_CXXFLAGS) $(srcdir)/src/msw/datecontrols.cpp
 
@@ -30886,6 +30940,9 @@ advlib_sound_sdl.o: $(srcdir)/src/unix/sound_sdl.cpp $(ADVLIB_ODEP)
 advlib_animatecmn.o: $(srcdir)/src/common/animatecmn.cpp $(ADVLIB_ODEP)
        $(CXXC) -c -o $@ $(ADVLIB_CXXFLAGS) $(srcdir)/src/common/animatecmn.cpp
 
+advlib_bmpcboxcmn.o: $(srcdir)/src/common/bmpcboxcmn.cpp $(ADVLIB_ODEP)
+       $(CXXC) -c -o $@ $(ADVLIB_CXXFLAGS) $(srcdir)/src/common/bmpcboxcmn.cpp
+
 advlib_calctrlcmn.o: $(srcdir)/src/common/calctrlcmn.cpp $(ADVLIB_ODEP)
        $(CXXC) -c -o $@ $(ADVLIB_CXXFLAGS) $(srcdir)/src/common/calctrlcmn.cpp
 
@@ -31138,6 +31195,12 @@ advlib_wizard.o: $(srcdir)/src/generic/wizard.cpp $(ADVLIB_ODEP)
 @COND_TOOLKIT_WINCE_WXUNIV_0@advlib_calctrl.o: $(srcdir)/src/msw/calctrl.cpp $(ADVLIB_ODEP)
 @COND_TOOLKIT_WINCE_WXUNIV_0@  $(CXXC) -c -o $@ $(ADVLIB_CXXFLAGS) $(srcdir)/src/msw/calctrl.cpp
 
+@COND_TOOLKIT_MSW_WXUNIV_0@advlib_bmpcbox.o: $(srcdir)/src/msw/bmpcbox.cpp $(ADVLIB_ODEP)
+@COND_TOOLKIT_MSW_WXUNIV_0@    $(CXXC) -c -o $@ $(ADVLIB_CXXFLAGS) $(srcdir)/src/msw/bmpcbox.cpp
+
+@COND_TOOLKIT_WINCE_WXUNIV_0@advlib_bmpcbox.o: $(srcdir)/src/msw/bmpcbox.cpp $(ADVLIB_ODEP)
+@COND_TOOLKIT_WINCE_WXUNIV_0@  $(CXXC) -c -o $@ $(ADVLIB_CXXFLAGS) $(srcdir)/src/msw/bmpcbox.cpp
+
 @COND_TOOLKIT_MSW_WXUNIV_0@advlib_datecontrols.o: $(srcdir)/src/msw/datecontrols.cpp $(ADVLIB_ODEP)
 @COND_TOOLKIT_MSW_WXUNIV_0@    $(CXXC) -c -o $@ $(ADVLIB_CXXFLAGS) $(srcdir)/src/msw/datecontrols.cpp
 
index 3fba3992647a8b4d0e2604d60d94c9d009f643ff..738b28084a43248115112f4731d9b9340b8ba315 100644 (file)
@@ -2817,6 +2817,7 @@ IMPORTANT: please read docs/tech/tn0016.txt before modifying this file!
 
 <set var="ADVANCED_CMN_SRC" hints="files">
     src/common/animatecmn.cpp
+    src/common/bmpcboxcmn.cpp
     src/common/calctrlcmn.cpp
     src/common/datavcmn.cpp
     src/common/hyperlnkcmn.cpp
@@ -2899,11 +2900,13 @@ IMPORTANT: please read docs/tech/tn0016.txt before modifying this file!
 
 <!-- not used with wxUniv -->
 <set var="ADVANCED_MSW_NATIVE_SRC" hints="files">
+    src/msw/bmpcbox.cpp
     src/msw/calctrl.cpp
     src/msw/datecontrols.cpp
     src/msw/datectrl.cpp
 </set>
 <set var="ADVANCED_MSW_NATIVE_HDR" hints="files">
+    wx/msw/bmpcbox.h
     wx/msw/calctrl.h
     wx/msw/datecontrols.h
     wx/msw/datectrl.h
index 73512c957df637f78713fe9d7054cb8492d5ab50..5ae94d5ec8caee2feda519941ce9c146c54d7694 100644 (file)
@@ -1938,6 +1938,7 @@ ____CORE_SRC_FILENAMES_OBJECTS =  \
 !if "$(WXUNIV)" == "0"
 ____ADVANCED_SRC_FILENAMES_OBJECTS =  \
        $(OBJS)\monodll_animatecmn.obj \
+       $(OBJS)\monodll_bmpcboxcmn.obj \
        $(OBJS)\monodll_calctrlcmn.obj \
        $(OBJS)\monodll_datavcmn.obj \
        $(OBJS)\monodll_hyperlnkcmn.obj \
@@ -1967,6 +1968,7 @@ ____ADVANCED_SRC_FILENAMES_OBJECTS =  \
        $(OBJS)\monodll_sound.obj \
        $(OBJS)\monodll_taskbar.obj \
        $(OBJS)\monodll_joystick.obj \
+       $(OBJS)\monodll_bmpcbox.obj \
        $(OBJS)\monodll_calctrl.obj \
        $(OBJS)\monodll_datecontrols.obj \
        $(OBJS)\monodll_datectrl.obj
@@ -1974,6 +1976,7 @@ ____ADVANCED_SRC_FILENAMES_OBJECTS =  \
 !if "$(WXUNIV)" == "1"
 ____ADVANCED_SRC_FILENAMES_OBJECTS =  \
        $(OBJS)\monodll_animatecmn.obj \
+       $(OBJS)\monodll_bmpcboxcmn.obj \
        $(OBJS)\monodll_calctrlcmn.obj \
        $(OBJS)\monodll_datavcmn.obj \
        $(OBJS)\monodll_hyperlnkcmn.obj \
@@ -2588,6 +2591,7 @@ ____CORE_SRC_FILENAMES_1_OBJECTS =  \
 !if "$(WXUNIV)" == "0"
 ____ADVANCED_SRC_FILENAMES_1_OBJECTS =  \
        $(OBJS)\monolib_animatecmn.obj \
+       $(OBJS)\monolib_bmpcboxcmn.obj \
        $(OBJS)\monolib_calctrlcmn.obj \
        $(OBJS)\monolib_datavcmn.obj \
        $(OBJS)\monolib_hyperlnkcmn.obj \
@@ -2617,6 +2621,7 @@ ____ADVANCED_SRC_FILENAMES_1_OBJECTS =  \
        $(OBJS)\monolib_sound.obj \
        $(OBJS)\monolib_taskbar.obj \
        $(OBJS)\monolib_joystick.obj \
+       $(OBJS)\monolib_bmpcbox.obj \
        $(OBJS)\monolib_calctrl.obj \
        $(OBJS)\monolib_datecontrols.obj \
        $(OBJS)\monolib_datectrl.obj
@@ -2624,6 +2629,7 @@ ____ADVANCED_SRC_FILENAMES_1_OBJECTS =  \
 !if "$(WXUNIV)" == "1"
 ____ADVANCED_SRC_FILENAMES_1_OBJECTS =  \
        $(OBJS)\monolib_animatecmn.obj \
+       $(OBJS)\monolib_bmpcboxcmn.obj \
        $(OBJS)\monolib_calctrlcmn.obj \
        $(OBJS)\monolib_datavcmn.obj \
        $(OBJS)\monolib_hyperlnkcmn.obj \
@@ -3630,6 +3636,7 @@ __advdll___depname = \
 !if "$(WXUNIV)" == "0"
 ____ADVANCED_SRC_FILENAMES_2_OBJECTS =  \
        $(OBJS)\advdll_animatecmn.obj \
+       $(OBJS)\advdll_bmpcboxcmn.obj \
        $(OBJS)\advdll_calctrlcmn.obj \
        $(OBJS)\advdll_datavcmn.obj \
        $(OBJS)\advdll_hyperlnkcmn.obj \
@@ -3659,6 +3666,7 @@ ____ADVANCED_SRC_FILENAMES_2_OBJECTS =  \
        $(OBJS)\advdll_sound.obj \
        $(OBJS)\advdll_taskbar.obj \
        $(OBJS)\advdll_joystick.obj \
+       $(OBJS)\advdll_bmpcbox.obj \
        $(OBJS)\advdll_calctrl.obj \
        $(OBJS)\advdll_datecontrols.obj \
        $(OBJS)\advdll_datectrl.obj
@@ -3666,6 +3674,7 @@ ____ADVANCED_SRC_FILENAMES_2_OBJECTS =  \
 !if "$(WXUNIV)" == "1"
 ____ADVANCED_SRC_FILENAMES_2_OBJECTS =  \
        $(OBJS)\advdll_animatecmn.obj \
+       $(OBJS)\advdll_bmpcboxcmn.obj \
        $(OBJS)\advdll_calctrlcmn.obj \
        $(OBJS)\advdll_datavcmn.obj \
        $(OBJS)\advdll_hyperlnkcmn.obj \
@@ -3704,6 +3713,7 @@ __advlib___depname = \
 !if "$(WXUNIV)" == "0"
 ____ADVANCED_SRC_FILENAMES_3_OBJECTS =  \
        $(OBJS)\advlib_animatecmn.obj \
+       $(OBJS)\advlib_bmpcboxcmn.obj \
        $(OBJS)\advlib_calctrlcmn.obj \
        $(OBJS)\advlib_datavcmn.obj \
        $(OBJS)\advlib_hyperlnkcmn.obj \
@@ -3733,6 +3743,7 @@ ____ADVANCED_SRC_FILENAMES_3_OBJECTS =  \
        $(OBJS)\advlib_sound.obj \
        $(OBJS)\advlib_taskbar.obj \
        $(OBJS)\advlib_joystick.obj \
+       $(OBJS)\advlib_bmpcbox.obj \
        $(OBJS)\advlib_calctrl.obj \
        $(OBJS)\advlib_datecontrols.obj \
        $(OBJS)\advlib_datectrl.obj
@@ -3740,6 +3751,7 @@ ____ADVANCED_SRC_FILENAMES_3_OBJECTS =  \
 !if "$(WXUNIV)" == "1"
 ____ADVANCED_SRC_FILENAMES_3_OBJECTS =  \
        $(OBJS)\advlib_animatecmn.obj \
+       $(OBJS)\advlib_bmpcboxcmn.obj \
        $(OBJS)\advlib_calctrlcmn.obj \
        $(OBJS)\advlib_datavcmn.obj \
        $(OBJS)\advlib_hyperlnkcmn.obj \
@@ -5677,6 +5689,9 @@ $(OBJS)\monodll_mono.obj: ..\..\src\univ\themes\mono.cpp
 $(OBJS)\monodll_win32.obj: ..\..\src\univ\themes\win32.cpp
        $(CXX) -q -c -P -o$@ $(MONODLL_CXXFLAGS) ..\..\src\univ\themes\win32.cpp
 
+$(OBJS)\monodll_bmpcbox.obj: ..\..\src\msw\bmpcbox.cpp
+       $(CXX) -q -c -P -o$@ $(MONODLL_CXXFLAGS) ..\..\src\msw\bmpcbox.cpp
+
 $(OBJS)\monodll_calctrl.obj: ..\..\src\msw\calctrl.cpp
        $(CXX) -q -c -P -o$@ $(MONODLL_CXXFLAGS) ..\..\src\msw\calctrl.cpp
 
@@ -7187,6 +7202,11 @@ $(OBJS)\monodll_animatecmn.obj: ..\..\src\common\animatecmn.cpp
        $(CXX) -q -c -P -o$@ $(MONODLL_CXXFLAGS) ..\..\src\common\animatecmn.cpp
 !endif
 
+!if "$(USE_GUI)" == "1"
+$(OBJS)\monodll_bmpcboxcmn.obj: ..\..\src\common\bmpcboxcmn.cpp
+       $(CXX) -q -c -P -o$@ $(MONODLL_CXXFLAGS) ..\..\src\common\bmpcboxcmn.cpp
+!endif
+
 !if "$(USE_GUI)" == "1"
 $(OBJS)\monodll_calctrlcmn.obj: ..\..\src\common\calctrlcmn.cpp
        $(CXX) -q -c -P -o$@ $(MONODLL_CXXFLAGS) ..\..\src\common\calctrlcmn.cpp
@@ -7814,6 +7834,9 @@ $(OBJS)\monolib_mono.obj: ..\..\src\univ\themes\mono.cpp
 $(OBJS)\monolib_win32.obj: ..\..\src\univ\themes\win32.cpp
        $(CXX) -q -c -P -o$@ $(MONOLIB_CXXFLAGS) ..\..\src\univ\themes\win32.cpp
 
+$(OBJS)\monolib_bmpcbox.obj: ..\..\src\msw\bmpcbox.cpp
+       $(CXX) -q -c -P -o$@ $(MONOLIB_CXXFLAGS) ..\..\src\msw\bmpcbox.cpp
+
 $(OBJS)\monolib_calctrl.obj: ..\..\src\msw\calctrl.cpp
        $(CXX) -q -c -P -o$@ $(MONOLIB_CXXFLAGS) ..\..\src\msw\calctrl.cpp
 
@@ -9324,6 +9347,11 @@ $(OBJS)\monolib_animatecmn.obj: ..\..\src\common\animatecmn.cpp
        $(CXX) -q -c -P -o$@ $(MONOLIB_CXXFLAGS) ..\..\src\common\animatecmn.cpp
 !endif
 
+!if "$(USE_GUI)" == "1"
+$(OBJS)\monolib_bmpcboxcmn.obj: ..\..\src\common\bmpcboxcmn.cpp
+       $(CXX) -q -c -P -o$@ $(MONOLIB_CXXFLAGS) ..\..\src\common\bmpcboxcmn.cpp
+!endif
+
 !if "$(USE_GUI)" == "1"
 $(OBJS)\monolib_calctrlcmn.obj: ..\..\src\common\calctrlcmn.cpp
        $(CXX) -q -c -P -o$@ $(MONOLIB_CXXFLAGS) ..\..\src\common\calctrlcmn.cpp
@@ -12847,6 +12875,9 @@ $(OBJS)\advdll_dummy.obj: ..\..\src\common\dummy.cpp
 $(OBJS)\advdll_version.res: ..\..\src\msw\version.rc
        brcc32 -32 -r -fo$@ -i$(BCCDIR)\include    -d__WXMSW__ $(__WXUNIV_DEFINE_p_54) $(__DEBUG_DEFINE_p_53) $(__EXCEPTIONS_DEFINE_p_53) $(__RTTI_DEFINE_p_53) $(__THREAD_DEFINE_p_53) $(__UNICODE_DEFINE_p_54) $(__MSLU_DEFINE_p_53) $(__GFXCTX_DEFINE_p_53) -i$(SETUPHDIR) -i..\..\include -dWXBUILDING -dWXDLLNAME=wx$(PORTNAME)$(WXUNIVNAME)$(WX_VERSION_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_adv_bcc$(VENDORTAG)  -i..\..\src\tiff\libtiff -i..\..\src\jpeg -i..\..\src\png -i..\..\src\zlib -i..\..\src\regex -i..\..\src\expat\lib -dWXUSINGDLL -dWXMAKINGDLL_ADV ..\..\src\msw\version.rc
 
+$(OBJS)\advdll_bmpcbox.obj: ..\..\src\msw\bmpcbox.cpp
+       $(CXX) -q -c -P -o$@ $(ADVDLL_CXXFLAGS) ..\..\src\msw\bmpcbox.cpp
+
 $(OBJS)\advdll_calctrl.obj: ..\..\src\msw\calctrl.cpp
        $(CXX) -q -c -P -o$@ $(ADVDLL_CXXFLAGS) ..\..\src\msw\calctrl.cpp
 
@@ -12859,6 +12890,9 @@ $(OBJS)\advdll_datectrl.obj: ..\..\src\msw\datectrl.cpp
 $(OBJS)\advdll_animatecmn.obj: ..\..\src\common\animatecmn.cpp
        $(CXX) -q -c -P -o$@ $(ADVDLL_CXXFLAGS) ..\..\src\common\animatecmn.cpp
 
+$(OBJS)\advdll_bmpcboxcmn.obj: ..\..\src\common\bmpcboxcmn.cpp
+       $(CXX) -q -c -P -o$@ $(ADVDLL_CXXFLAGS) ..\..\src\common\bmpcboxcmn.cpp
+
 $(OBJS)\advdll_calctrlcmn.obj: ..\..\src\common\calctrlcmn.cpp
        $(CXX) -q -c -P -o$@ $(ADVDLL_CXXFLAGS) ..\..\src\common\calctrlcmn.cpp
 
@@ -12954,6 +12988,9 @@ $(OBJS)\advdll_joystick.obj: ..\..\src\msw\joystick.cpp
 $(OBJS)\advlib_dummy.obj: ..\..\src\common\dummy.cpp
        $(CXX) -q -c -P -o$@ $(ADVLIB_CXXFLAGS) -H ..\..\src\common\dummy.cpp
 
+$(OBJS)\advlib_bmpcbox.obj: ..\..\src\msw\bmpcbox.cpp
+       $(CXX) -q -c -P -o$@ $(ADVLIB_CXXFLAGS) ..\..\src\msw\bmpcbox.cpp
+
 $(OBJS)\advlib_calctrl.obj: ..\..\src\msw\calctrl.cpp
        $(CXX) -q -c -P -o$@ $(ADVLIB_CXXFLAGS) ..\..\src\msw\calctrl.cpp
 
@@ -12966,6 +13003,9 @@ $(OBJS)\advlib_datectrl.obj: ..\..\src\msw\datectrl.cpp
 $(OBJS)\advlib_animatecmn.obj: ..\..\src\common\animatecmn.cpp
        $(CXX) -q -c -P -o$@ $(ADVLIB_CXXFLAGS) ..\..\src\common\animatecmn.cpp
 
+$(OBJS)\advlib_bmpcboxcmn.obj: ..\..\src\common\bmpcboxcmn.cpp
+       $(CXX) -q -c -P -o$@ $(ADVLIB_CXXFLAGS) ..\..\src\common\bmpcboxcmn.cpp
+
 $(OBJS)\advlib_calctrlcmn.obj: ..\..\src\common\calctrlcmn.cpp
        $(CXX) -q -c -P -o$@ $(ADVLIB_CXXFLAGS) ..\..\src\common\calctrlcmn.cpp
 
index 4fc642b0e371bb7d4912c6ff3d11d1af2d5aa33b..0d4ae695fad30296310dafcc8a62236b88c72dbe 100644 (file)
@@ -1958,6 +1958,7 @@ endif
 ifeq ($(WXUNIV),0)
 ____ADVANCED_SRC_FILENAMES_OBJECTS =  \
        $(OBJS)\monodll_animatecmn.o \
+       $(OBJS)\monodll_bmpcboxcmn.o \
        $(OBJS)\monodll_calctrlcmn.o \
        $(OBJS)\monodll_datavcmn.o \
        $(OBJS)\monodll_hyperlnkcmn.o \
@@ -1987,6 +1988,7 @@ ____ADVANCED_SRC_FILENAMES_OBJECTS =  \
        $(OBJS)\monodll_sound.o \
        $(OBJS)\monodll_taskbar.o \
        $(OBJS)\monodll_joystick.o \
+       $(OBJS)\monodll_bmpcbox.o \
        $(OBJS)\monodll_calctrl.o \
        $(OBJS)\monodll_datecontrols.o \
        $(OBJS)\monodll_datectrl.o
@@ -1994,6 +1996,7 @@ endif
 ifeq ($(WXUNIV),1)
 ____ADVANCED_SRC_FILENAMES_OBJECTS =  \
        $(OBJS)\monodll_animatecmn.o \
+       $(OBJS)\monodll_bmpcboxcmn.o \
        $(OBJS)\monodll_calctrlcmn.o \
        $(OBJS)\monodll_datavcmn.o \
        $(OBJS)\monodll_hyperlnkcmn.o \
@@ -2614,6 +2617,7 @@ endif
 ifeq ($(WXUNIV),0)
 ____ADVANCED_SRC_FILENAMES_1_OBJECTS =  \
        $(OBJS)\monolib_animatecmn.o \
+       $(OBJS)\monolib_bmpcboxcmn.o \
        $(OBJS)\monolib_calctrlcmn.o \
        $(OBJS)\monolib_datavcmn.o \
        $(OBJS)\monolib_hyperlnkcmn.o \
@@ -2643,6 +2647,7 @@ ____ADVANCED_SRC_FILENAMES_1_OBJECTS =  \
        $(OBJS)\monolib_sound.o \
        $(OBJS)\monolib_taskbar.o \
        $(OBJS)\monolib_joystick.o \
+       $(OBJS)\monolib_bmpcbox.o \
        $(OBJS)\monolib_calctrl.o \
        $(OBJS)\monolib_datecontrols.o \
        $(OBJS)\monolib_datectrl.o
@@ -2650,6 +2655,7 @@ endif
 ifeq ($(WXUNIV),1)
 ____ADVANCED_SRC_FILENAMES_1_OBJECTS =  \
        $(OBJS)\monolib_animatecmn.o \
+       $(OBJS)\monolib_bmpcboxcmn.o \
        $(OBJS)\monolib_calctrlcmn.o \
        $(OBJS)\monolib_datavcmn.o \
        $(OBJS)\monolib_hyperlnkcmn.o \
@@ -3684,6 +3690,7 @@ endif
 ifeq ($(WXUNIV),0)
 ____ADVANCED_SRC_FILENAMES_2_OBJECTS =  \
        $(OBJS)\advdll_animatecmn.o \
+       $(OBJS)\advdll_bmpcboxcmn.o \
        $(OBJS)\advdll_calctrlcmn.o \
        $(OBJS)\advdll_datavcmn.o \
        $(OBJS)\advdll_hyperlnkcmn.o \
@@ -3713,6 +3720,7 @@ ____ADVANCED_SRC_FILENAMES_2_OBJECTS =  \
        $(OBJS)\advdll_sound.o \
        $(OBJS)\advdll_taskbar.o \
        $(OBJS)\advdll_joystick.o \
+       $(OBJS)\advdll_bmpcbox.o \
        $(OBJS)\advdll_calctrl.o \
        $(OBJS)\advdll_datecontrols.o \
        $(OBJS)\advdll_datectrl.o
@@ -3720,6 +3728,7 @@ endif
 ifeq ($(WXUNIV),1)
 ____ADVANCED_SRC_FILENAMES_2_OBJECTS =  \
        $(OBJS)\advdll_animatecmn.o \
+       $(OBJS)\advdll_bmpcboxcmn.o \
        $(OBJS)\advdll_calctrlcmn.o \
        $(OBJS)\advdll_datavcmn.o \
        $(OBJS)\advdll_hyperlnkcmn.o \
@@ -3762,6 +3771,7 @@ endif
 ifeq ($(WXUNIV),0)
 ____ADVANCED_SRC_FILENAMES_3_OBJECTS =  \
        $(OBJS)\advlib_animatecmn.o \
+       $(OBJS)\advlib_bmpcboxcmn.o \
        $(OBJS)\advlib_calctrlcmn.o \
        $(OBJS)\advlib_datavcmn.o \
        $(OBJS)\advlib_hyperlnkcmn.o \
@@ -3791,6 +3801,7 @@ ____ADVANCED_SRC_FILENAMES_3_OBJECTS =  \
        $(OBJS)\advlib_sound.o \
        $(OBJS)\advlib_taskbar.o \
        $(OBJS)\advlib_joystick.o \
+       $(OBJS)\advlib_bmpcbox.o \
        $(OBJS)\advlib_calctrl.o \
        $(OBJS)\advlib_datecontrols.o \
        $(OBJS)\advlib_datectrl.o
@@ -3798,6 +3809,7 @@ endif
 ifeq ($(WXUNIV),1)
 ____ADVANCED_SRC_FILENAMES_3_OBJECTS =  \
        $(OBJS)\advlib_animatecmn.o \
+       $(OBJS)\advlib_bmpcboxcmn.o \
        $(OBJS)\advlib_calctrlcmn.o \
        $(OBJS)\advlib_datavcmn.o \
        $(OBJS)\advlib_hyperlnkcmn.o \
@@ -5819,6 +5831,9 @@ $(OBJS)\monodll_mono.o: ../../src/univ/themes/mono.cpp
 $(OBJS)\monodll_win32.o: ../../src/univ/themes/win32.cpp
        $(CXX) -c -o $@ $(MONODLL_CXXFLAGS) $(CPPDEPS) $<
 
+$(OBJS)\monodll_bmpcbox.o: ../../src/msw/bmpcbox.cpp
+       $(CXX) -c -o $@ $(MONODLL_CXXFLAGS) $(CPPDEPS) $<
+
 $(OBJS)\monodll_calctrl.o: ../../src/msw/calctrl.cpp
        $(CXX) -c -o $@ $(MONODLL_CXXFLAGS) $(CPPDEPS) $<
 
@@ -7441,6 +7456,11 @@ $(OBJS)\monodll_animatecmn.o: ../../src/common/animatecmn.cpp
        $(CXX) -c -o $@ $(MONODLL_CXXFLAGS) $(CPPDEPS) $<
 endif
 
+ifeq ($(USE_GUI),1)
+$(OBJS)\monodll_bmpcboxcmn.o: ../../src/common/bmpcboxcmn.cpp
+       $(CXX) -c -o $@ $(MONODLL_CXXFLAGS) $(CPPDEPS) $<
+endif
+
 ifeq ($(USE_GUI),1)
 $(OBJS)\monodll_calctrlcmn.o: ../../src/common/calctrlcmn.cpp
        $(CXX) -c -o $@ $(MONODLL_CXXFLAGS) $(CPPDEPS) $<
@@ -8070,6 +8090,9 @@ $(OBJS)\monolib_mono.o: ../../src/univ/themes/mono.cpp
 $(OBJS)\monolib_win32.o: ../../src/univ/themes/win32.cpp
        $(CXX) -c -o $@ $(MONOLIB_CXXFLAGS) $(CPPDEPS) $<
 
+$(OBJS)\monolib_bmpcbox.o: ../../src/msw/bmpcbox.cpp
+       $(CXX) -c -o $@ $(MONOLIB_CXXFLAGS) $(CPPDEPS) $<
+
 $(OBJS)\monolib_calctrl.o: ../../src/msw/calctrl.cpp
        $(CXX) -c -o $@ $(MONOLIB_CXXFLAGS) $(CPPDEPS) $<
 
@@ -9692,6 +9715,11 @@ $(OBJS)\monolib_animatecmn.o: ../../src/common/animatecmn.cpp
        $(CXX) -c -o $@ $(MONOLIB_CXXFLAGS) $(CPPDEPS) $<
 endif
 
+ifeq ($(USE_GUI),1)
+$(OBJS)\monolib_bmpcboxcmn.o: ../../src/common/bmpcboxcmn.cpp
+       $(CXX) -c -o $@ $(MONOLIB_CXXFLAGS) $(CPPDEPS) $<
+endif
+
 ifeq ($(USE_GUI),1)
 $(OBJS)\monolib_calctrlcmn.o: ../../src/common/calctrlcmn.cpp
        $(CXX) -c -o $@ $(MONOLIB_CXXFLAGS) $(CPPDEPS) $<
@@ -13441,6 +13469,9 @@ $(OBJS)\advdll_dummy.o: ../../src/common/dummy.cpp
 $(OBJS)\advdll_version_rc.o: ../../src/msw/version.rc
        windres --use-temp-file -i$< -o$@    --define __WXMSW__ $(__WXUNIV_DEFINE_p_54) $(__DEBUG_DEFINE_p_53) $(__EXCEPTIONS_DEFINE_p_53) $(__RTTI_DEFINE_p_53) $(__THREAD_DEFINE_p_53) $(__UNICODE_DEFINE_p_54) $(__MSLU_DEFINE_p_53) $(__GFXCTX_DEFINE_p_53) --include-dir $(SETUPHDIR) --include-dir ../../include --define WXBUILDING --define WXDLLNAME=wx$(PORTNAME)$(WXUNIVNAME)$(WX_VERSION_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_adv_gcc$(VENDORTAG)  --include-dir ../../src/tiff/libtiff --include-dir ../../src/jpeg --include-dir ../../src/png --include-dir ../../src/zlib --include-dir ../../src/regex --include-dir ../../src/expat/lib --define WXUSINGDLL --define WXMAKINGDLL_ADV
 
+$(OBJS)\advdll_bmpcbox.o: ../../src/msw/bmpcbox.cpp
+       $(CXX) -c -o $@ $(ADVDLL_CXXFLAGS) $(CPPDEPS) $<
+
 $(OBJS)\advdll_calctrl.o: ../../src/msw/calctrl.cpp
        $(CXX) -c -o $@ $(ADVDLL_CXXFLAGS) $(CPPDEPS) $<
 
@@ -13453,6 +13484,9 @@ $(OBJS)\advdll_datectrl.o: ../../src/msw/datectrl.cpp
 $(OBJS)\advdll_animatecmn.o: ../../src/common/animatecmn.cpp
        $(CXX) -c -o $@ $(ADVDLL_CXXFLAGS) $(CPPDEPS) $<
 
+$(OBJS)\advdll_bmpcboxcmn.o: ../../src/common/bmpcboxcmn.cpp
+       $(CXX) -c -o $@ $(ADVDLL_CXXFLAGS) $(CPPDEPS) $<
+
 $(OBJS)\advdll_calctrlcmn.o: ../../src/common/calctrlcmn.cpp
        $(CXX) -c -o $@ $(ADVDLL_CXXFLAGS) $(CPPDEPS) $<
 
@@ -13548,6 +13582,9 @@ $(OBJS)\advdll_joystick.o: ../../src/msw/joystick.cpp
 $(OBJS)\advlib_dummy.o: ../../src/common/dummy.cpp
        $(CXX) -c -o $@ $(ADVLIB_CXXFLAGS) $(CPPDEPS) $<
 
+$(OBJS)\advlib_bmpcbox.o: ../../src/msw/bmpcbox.cpp
+       $(CXX) -c -o $@ $(ADVLIB_CXXFLAGS) $(CPPDEPS) $<
+
 $(OBJS)\advlib_calctrl.o: ../../src/msw/calctrl.cpp
        $(CXX) -c -o $@ $(ADVLIB_CXXFLAGS) $(CPPDEPS) $<
 
@@ -13560,6 +13597,9 @@ $(OBJS)\advlib_datectrl.o: ../../src/msw/datectrl.cpp
 $(OBJS)\advlib_animatecmn.o: ../../src/common/animatecmn.cpp
        $(CXX) -c -o $@ $(ADVLIB_CXXFLAGS) $(CPPDEPS) $<
 
+$(OBJS)\advlib_bmpcboxcmn.o: ../../src/common/bmpcboxcmn.cpp
+       $(CXX) -c -o $@ $(ADVLIB_CXXFLAGS) $(CPPDEPS) $<
+
 $(OBJS)\advlib_calctrlcmn.o: ../../src/common/calctrlcmn.cpp
        $(CXX) -c -o $@ $(ADVLIB_CXXFLAGS) $(CPPDEPS) $<
 
index f0aeb488f59920fc9972cc1c94919d5df66cc6ae..65ae2f601aa4eacd85d45825c5eea2e7b780b8b1 100644 (file)
@@ -2112,6 +2112,7 @@ ____CORE_SRC_FILENAMES_OBJECTS =  \
 !if "$(WXUNIV)" == "0"
 ____ADVANCED_SRC_FILENAMES_OBJECTS =  \
        $(OBJS)\monodll_animatecmn.obj \
+       $(OBJS)\monodll_bmpcboxcmn.obj \
        $(OBJS)\monodll_calctrlcmn.obj \
        $(OBJS)\monodll_datavcmn.obj \
        $(OBJS)\monodll_hyperlnkcmn.obj \
@@ -2141,6 +2142,7 @@ ____ADVANCED_SRC_FILENAMES_OBJECTS =  \
        $(OBJS)\monodll_sound.obj \
        $(OBJS)\monodll_taskbar.obj \
        $(OBJS)\monodll_joystick.obj \
+       $(OBJS)\monodll_bmpcbox.obj \
        $(OBJS)\monodll_calctrl.obj \
        $(OBJS)\monodll_datecontrols.obj \
        $(OBJS)\monodll_datectrl.obj
@@ -2148,6 +2150,7 @@ ____ADVANCED_SRC_FILENAMES_OBJECTS =  \
 !if "$(WXUNIV)" == "1"
 ____ADVANCED_SRC_FILENAMES_OBJECTS =  \
        $(OBJS)\monodll_animatecmn.obj \
+       $(OBJS)\monodll_bmpcboxcmn.obj \
        $(OBJS)\monodll_calctrlcmn.obj \
        $(OBJS)\monodll_datavcmn.obj \
        $(OBJS)\monodll_hyperlnkcmn.obj \
@@ -2768,6 +2771,7 @@ ____CORE_SRC_FILENAMES_1_OBJECTS =  \
 !if "$(WXUNIV)" == "0"
 ____ADVANCED_SRC_FILENAMES_1_OBJECTS =  \
        $(OBJS)\monolib_animatecmn.obj \
+       $(OBJS)\monolib_bmpcboxcmn.obj \
        $(OBJS)\monolib_calctrlcmn.obj \
        $(OBJS)\monolib_datavcmn.obj \
        $(OBJS)\monolib_hyperlnkcmn.obj \
@@ -2797,6 +2801,7 @@ ____ADVANCED_SRC_FILENAMES_1_OBJECTS =  \
        $(OBJS)\monolib_sound.obj \
        $(OBJS)\monolib_taskbar.obj \
        $(OBJS)\monolib_joystick.obj \
+       $(OBJS)\monolib_bmpcbox.obj \
        $(OBJS)\monolib_calctrl.obj \
        $(OBJS)\monolib_datecontrols.obj \
        $(OBJS)\monolib_datectrl.obj
@@ -2804,6 +2809,7 @@ ____ADVANCED_SRC_FILENAMES_1_OBJECTS =  \
 !if "$(WXUNIV)" == "1"
 ____ADVANCED_SRC_FILENAMES_1_OBJECTS =  \
        $(OBJS)\monolib_animatecmn.obj \
+       $(OBJS)\monolib_bmpcboxcmn.obj \
        $(OBJS)\monolib_calctrlcmn.obj \
        $(OBJS)\monolib_datavcmn.obj \
        $(OBJS)\monolib_hyperlnkcmn.obj \
@@ -3852,6 +3858,7 @@ __RUNTIME_LIBS_208 = $(__THREADSFLAG)
 !if "$(WXUNIV)" == "0"
 ____ADVANCED_SRC_FILENAMES_2_OBJECTS =  \
        $(OBJS)\advdll_animatecmn.obj \
+       $(OBJS)\advdll_bmpcboxcmn.obj \
        $(OBJS)\advdll_calctrlcmn.obj \
        $(OBJS)\advdll_datavcmn.obj \
        $(OBJS)\advdll_hyperlnkcmn.obj \
@@ -3881,6 +3888,7 @@ ____ADVANCED_SRC_FILENAMES_2_OBJECTS =  \
        $(OBJS)\advdll_sound.obj \
        $(OBJS)\advdll_taskbar.obj \
        $(OBJS)\advdll_joystick.obj \
+       $(OBJS)\advdll_bmpcbox.obj \
        $(OBJS)\advdll_calctrl.obj \
        $(OBJS)\advdll_datecontrols.obj \
        $(OBJS)\advdll_datectrl.obj
@@ -3888,6 +3896,7 @@ ____ADVANCED_SRC_FILENAMES_2_OBJECTS =  \
 !if "$(WXUNIV)" == "1"
 ____ADVANCED_SRC_FILENAMES_2_OBJECTS =  \
        $(OBJS)\advdll_animatecmn.obj \
+       $(OBJS)\advdll_bmpcboxcmn.obj \
        $(OBJS)\advdll_calctrlcmn.obj \
        $(OBJS)\advdll_datavcmn.obj \
        $(OBJS)\advdll_hyperlnkcmn.obj \
@@ -3932,6 +3941,7 @@ __RUNTIME_LIBS_221 = $(__THREADSFLAG)
 !if "$(WXUNIV)" == "0"
 ____ADVANCED_SRC_FILENAMES_3_OBJECTS =  \
        $(OBJS)\advlib_animatecmn.obj \
+       $(OBJS)\advlib_bmpcboxcmn.obj \
        $(OBJS)\advlib_calctrlcmn.obj \
        $(OBJS)\advlib_datavcmn.obj \
        $(OBJS)\advlib_hyperlnkcmn.obj \
@@ -3961,6 +3971,7 @@ ____ADVANCED_SRC_FILENAMES_3_OBJECTS =  \
        $(OBJS)\advlib_sound.obj \
        $(OBJS)\advlib_taskbar.obj \
        $(OBJS)\advlib_joystick.obj \
+       $(OBJS)\advlib_bmpcbox.obj \
        $(OBJS)\advlib_calctrl.obj \
        $(OBJS)\advlib_datecontrols.obj \
        $(OBJS)\advlib_datectrl.obj
@@ -3968,6 +3979,7 @@ ____ADVANCED_SRC_FILENAMES_3_OBJECTS =  \
 !if "$(WXUNIV)" == "1"
 ____ADVANCED_SRC_FILENAMES_3_OBJECTS =  \
        $(OBJS)\advlib_animatecmn.obj \
+       $(OBJS)\advlib_bmpcboxcmn.obj \
        $(OBJS)\advlib_calctrlcmn.obj \
        $(OBJS)\advlib_datavcmn.obj \
        $(OBJS)\advlib_hyperlnkcmn.obj \
@@ -6009,6 +6021,9 @@ $(OBJS)\monodll_mono.obj: ..\..\src\univ\themes\mono.cpp
 $(OBJS)\monodll_win32.obj: ..\..\src\univ\themes\win32.cpp
        $(CXX) /c /nologo /TP /Fo$@ $(MONODLL_CXXFLAGS) ..\..\src\univ\themes\win32.cpp
 
+$(OBJS)\monodll_bmpcbox.obj: ..\..\src\msw\bmpcbox.cpp
+       $(CXX) /c /nologo /TP /Fo$@ $(MONODLL_CXXFLAGS) ..\..\src\msw\bmpcbox.cpp
+
 $(OBJS)\monodll_calctrl.obj: ..\..\src\msw\calctrl.cpp
        $(CXX) /c /nologo /TP /Fo$@ $(MONODLL_CXXFLAGS) ..\..\src\msw\calctrl.cpp
 
@@ -7519,6 +7534,11 @@ $(OBJS)\monodll_animatecmn.obj: ..\..\src\common\animatecmn.cpp
        $(CXX) /c /nologo /TP /Fo$@ $(MONODLL_CXXFLAGS) ..\..\src\common\animatecmn.cpp
 !endif
 
+!if "$(USE_GUI)" == "1"
+$(OBJS)\monodll_bmpcboxcmn.obj: ..\..\src\common\bmpcboxcmn.cpp
+       $(CXX) /c /nologo /TP /Fo$@ $(MONODLL_CXXFLAGS) ..\..\src\common\bmpcboxcmn.cpp
+!endif
+
 !if "$(USE_GUI)" == "1"
 $(OBJS)\monodll_calctrlcmn.obj: ..\..\src\common\calctrlcmn.cpp
        $(CXX) /c /nologo /TP /Fo$@ $(MONODLL_CXXFLAGS) ..\..\src\common\calctrlcmn.cpp
@@ -8146,6 +8166,9 @@ $(OBJS)\monolib_mono.obj: ..\..\src\univ\themes\mono.cpp
 $(OBJS)\monolib_win32.obj: ..\..\src\univ\themes\win32.cpp
        $(CXX) /c /nologo /TP /Fo$@ $(MONOLIB_CXXFLAGS) ..\..\src\univ\themes\win32.cpp
 
+$(OBJS)\monolib_bmpcbox.obj: ..\..\src\msw\bmpcbox.cpp
+       $(CXX) /c /nologo /TP /Fo$@ $(MONOLIB_CXXFLAGS) ..\..\src\msw\bmpcbox.cpp
+
 $(OBJS)\monolib_calctrl.obj: ..\..\src\msw\calctrl.cpp
        $(CXX) /c /nologo /TP /Fo$@ $(MONOLIB_CXXFLAGS) ..\..\src\msw\calctrl.cpp
 
@@ -9656,6 +9679,11 @@ $(OBJS)\monolib_animatecmn.obj: ..\..\src\common\animatecmn.cpp
        $(CXX) /c /nologo /TP /Fo$@ $(MONOLIB_CXXFLAGS) ..\..\src\common\animatecmn.cpp
 !endif
 
+!if "$(USE_GUI)" == "1"
+$(OBJS)\monolib_bmpcboxcmn.obj: ..\..\src\common\bmpcboxcmn.cpp
+       $(CXX) /c /nologo /TP /Fo$@ $(MONOLIB_CXXFLAGS) ..\..\src\common\bmpcboxcmn.cpp
+!endif
+
 !if "$(USE_GUI)" == "1"
 $(OBJS)\monolib_calctrlcmn.obj: ..\..\src\common\calctrlcmn.cpp
        $(CXX) /c /nologo /TP /Fo$@ $(MONOLIB_CXXFLAGS) ..\..\src\common\calctrlcmn.cpp
@@ -13179,6 +13207,9 @@ $(OBJS)\advdll_dummy.obj: ..\..\src\common\dummy.cpp
 $(OBJS)\advdll_version.res: ..\..\src\msw\version.rc
        rc /fo$@  /d WIN32 $(____DEBUGRUNTIME_4) $(__NO_VC_CRTDBG_p_60)  /d __WXMSW__ $(__WXUNIV_DEFINE_p_54) $(__DEBUG_DEFINE_p_53) $(__EXCEPTIONS_DEFINE_p_53) $(__RTTI_DEFINE_p_53) $(__THREAD_DEFINE_p_53) $(__UNICODE_DEFINE_p_54) $(__MSLU_DEFINE_p_53) $(__GFXCTX_DEFINE_p_53) /i $(SETUPHDIR) /i ..\..\include /d WXBUILDING /d WXDLLNAME=wx$(PORTNAME)$(WXUNIVNAME)$(WX_VERSION_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_adv_vc$(VENDORTAG)  /i ..\..\src\tiff\libtiff /i ..\..\src\jpeg /i ..\..\src\png /i ..\..\src\zlib /i ..\..\src\regex /i ..\..\src\expat\lib /d WXUSINGDLL /d WXMAKINGDLL_ADV ..\..\src\msw\version.rc
 
+$(OBJS)\advdll_bmpcbox.obj: ..\..\src\msw\bmpcbox.cpp
+       $(CXX) /c /nologo /TP /Fo$@ $(ADVDLL_CXXFLAGS) ..\..\src\msw\bmpcbox.cpp
+
 $(OBJS)\advdll_calctrl.obj: ..\..\src\msw\calctrl.cpp
        $(CXX) /c /nologo /TP /Fo$@ $(ADVDLL_CXXFLAGS) ..\..\src\msw\calctrl.cpp
 
@@ -13191,6 +13222,9 @@ $(OBJS)\advdll_datectrl.obj: ..\..\src\msw\datectrl.cpp
 $(OBJS)\advdll_animatecmn.obj: ..\..\src\common\animatecmn.cpp
        $(CXX) /c /nologo /TP /Fo$@ $(ADVDLL_CXXFLAGS) ..\..\src\common\animatecmn.cpp
 
+$(OBJS)\advdll_bmpcboxcmn.obj: ..\..\src\common\bmpcboxcmn.cpp
+       $(CXX) /c /nologo /TP /Fo$@ $(ADVDLL_CXXFLAGS) ..\..\src\common\bmpcboxcmn.cpp
+
 $(OBJS)\advdll_calctrlcmn.obj: ..\..\src\common\calctrlcmn.cpp
        $(CXX) /c /nologo /TP /Fo$@ $(ADVDLL_CXXFLAGS) ..\..\src\common\calctrlcmn.cpp
 
@@ -13286,6 +13320,9 @@ $(OBJS)\advdll_joystick.obj: ..\..\src\msw\joystick.cpp
 $(OBJS)\advlib_dummy.obj: ..\..\src\common\dummy.cpp
        $(CXX) /c /nologo /TP /Fo$@ $(ADVLIB_CXXFLAGS) /Ycwx/wxprec.h ..\..\src\common\dummy.cpp
 
+$(OBJS)\advlib_bmpcbox.obj: ..\..\src\msw\bmpcbox.cpp
+       $(CXX) /c /nologo /TP /Fo$@ $(ADVLIB_CXXFLAGS) ..\..\src\msw\bmpcbox.cpp
+
 $(OBJS)\advlib_calctrl.obj: ..\..\src\msw\calctrl.cpp
        $(CXX) /c /nologo /TP /Fo$@ $(ADVLIB_CXXFLAGS) ..\..\src\msw\calctrl.cpp
 
@@ -13298,6 +13335,9 @@ $(OBJS)\advlib_datectrl.obj: ..\..\src\msw\datectrl.cpp
 $(OBJS)\advlib_animatecmn.obj: ..\..\src\common\animatecmn.cpp
        $(CXX) /c /nologo /TP /Fo$@ $(ADVLIB_CXXFLAGS) ..\..\src\common\animatecmn.cpp
 
+$(OBJS)\advlib_bmpcboxcmn.obj: ..\..\src\common\bmpcboxcmn.cpp
+       $(CXX) /c /nologo /TP /Fo$@ $(ADVLIB_CXXFLAGS) ..\..\src\common\bmpcboxcmn.cpp
+
 $(OBJS)\advlib_calctrlcmn.obj: ..\..\src\common\calctrlcmn.cpp
        $(CXX) /c /nologo /TP /Fo$@ $(ADVLIB_CXXFLAGS) ..\..\src\common\calctrlcmn.cpp
 
index 7805036bc943bc0485e44eb97afcf2d7adbaea7a..612a93b73296830d8027a0e188f6f063cf65038f 100644 (file)
@@ -678,6 +678,7 @@ ____ADVANCED_SRC_FILENAMES_OBJECTS =
 !ifeq WXUNIV 0
 ____ADVANCED_SRC_FILENAMES_OBJECTS =  &
        $(OBJS)\monodll_animatecmn.obj &
+       $(OBJS)\monodll_bmpcboxcmn.obj &
        $(OBJS)\monodll_calctrlcmn.obj &
        $(OBJS)\monodll_datavcmn.obj &
        $(OBJS)\monodll_hyperlnkcmn.obj &
@@ -707,6 +708,7 @@ ____ADVANCED_SRC_FILENAMES_OBJECTS =  &
        $(OBJS)\monodll_sound.obj &
        $(OBJS)\monodll_taskbar.obj &
        $(OBJS)\monodll_joystick.obj &
+       $(OBJS)\monodll_bmpcbox.obj &
        $(OBJS)\monodll_calctrl.obj &
        $(OBJS)\monodll_datecontrols.obj &
        $(OBJS)\monodll_datectrl.obj
@@ -714,6 +716,7 @@ ____ADVANCED_SRC_FILENAMES_OBJECTS =  &
 !ifeq WXUNIV 1
 ____ADVANCED_SRC_FILENAMES_OBJECTS =  &
        $(OBJS)\monodll_animatecmn.obj &
+       $(OBJS)\monodll_bmpcboxcmn.obj &
        $(OBJS)\monodll_calctrlcmn.obj &
        $(OBJS)\monodll_datavcmn.obj &
        $(OBJS)\monodll_hyperlnkcmn.obj &
@@ -1339,6 +1342,7 @@ ____ADVANCED_SRC_FILENAMES_1_OBJECTS =
 !ifeq WXUNIV 0
 ____ADVANCED_SRC_FILENAMES_1_OBJECTS =  &
        $(OBJS)\monolib_animatecmn.obj &
+       $(OBJS)\monolib_bmpcboxcmn.obj &
        $(OBJS)\monolib_calctrlcmn.obj &
        $(OBJS)\monolib_datavcmn.obj &
        $(OBJS)\monolib_hyperlnkcmn.obj &
@@ -1368,6 +1372,7 @@ ____ADVANCED_SRC_FILENAMES_1_OBJECTS =  &
        $(OBJS)\monolib_sound.obj &
        $(OBJS)\monolib_taskbar.obj &
        $(OBJS)\monolib_joystick.obj &
+       $(OBJS)\monolib_bmpcbox.obj &
        $(OBJS)\monolib_calctrl.obj &
        $(OBJS)\monolib_datecontrols.obj &
        $(OBJS)\monolib_datectrl.obj
@@ -1375,6 +1380,7 @@ ____ADVANCED_SRC_FILENAMES_1_OBJECTS =  &
 !ifeq WXUNIV 1
 ____ADVANCED_SRC_FILENAMES_1_OBJECTS =  &
        $(OBJS)\monolib_animatecmn.obj &
+       $(OBJS)\monolib_bmpcboxcmn.obj &
        $(OBJS)\monolib_calctrlcmn.obj &
        $(OBJS)\monolib_datavcmn.obj &
        $(OBJS)\monolib_hyperlnkcmn.obj &
@@ -2425,6 +2431,7 @@ ____ADVANCED_SRC_FILENAMES_2_OBJECTS =
 !ifeq WXUNIV 0
 ____ADVANCED_SRC_FILENAMES_2_OBJECTS =  &
        $(OBJS)\advdll_animatecmn.obj &
+       $(OBJS)\advdll_bmpcboxcmn.obj &
        $(OBJS)\advdll_calctrlcmn.obj &
        $(OBJS)\advdll_datavcmn.obj &
        $(OBJS)\advdll_hyperlnkcmn.obj &
@@ -2454,6 +2461,7 @@ ____ADVANCED_SRC_FILENAMES_2_OBJECTS =  &
        $(OBJS)\advdll_sound.obj &
        $(OBJS)\advdll_taskbar.obj &
        $(OBJS)\advdll_joystick.obj &
+       $(OBJS)\advdll_bmpcbox.obj &
        $(OBJS)\advdll_calctrl.obj &
        $(OBJS)\advdll_datecontrols.obj &
        $(OBJS)\advdll_datectrl.obj
@@ -2461,6 +2469,7 @@ ____ADVANCED_SRC_FILENAMES_2_OBJECTS =  &
 !ifeq WXUNIV 1
 ____ADVANCED_SRC_FILENAMES_2_OBJECTS =  &
        $(OBJS)\advdll_animatecmn.obj &
+       $(OBJS)\advdll_bmpcboxcmn.obj &
        $(OBJS)\advdll_calctrlcmn.obj &
        $(OBJS)\advdll_datavcmn.obj &
        $(OBJS)\advdll_hyperlnkcmn.obj &
@@ -2505,6 +2514,7 @@ ____ADVANCED_SRC_FILENAMES_3_OBJECTS =
 !ifeq WXUNIV 0
 ____ADVANCED_SRC_FILENAMES_3_OBJECTS =  &
        $(OBJS)\advlib_animatecmn.obj &
+       $(OBJS)\advlib_bmpcboxcmn.obj &
        $(OBJS)\advlib_calctrlcmn.obj &
        $(OBJS)\advlib_datavcmn.obj &
        $(OBJS)\advlib_hyperlnkcmn.obj &
@@ -2534,6 +2544,7 @@ ____ADVANCED_SRC_FILENAMES_3_OBJECTS =  &
        $(OBJS)\advlib_sound.obj &
        $(OBJS)\advlib_taskbar.obj &
        $(OBJS)\advlib_joystick.obj &
+       $(OBJS)\advlib_bmpcbox.obj &
        $(OBJS)\advlib_calctrl.obj &
        $(OBJS)\advlib_datecontrols.obj &
        $(OBJS)\advlib_datectrl.obj
@@ -2541,6 +2552,7 @@ ____ADVANCED_SRC_FILENAMES_3_OBJECTS =  &
 !ifeq WXUNIV 1
 ____ADVANCED_SRC_FILENAMES_3_OBJECTS =  &
        $(OBJS)\advlib_animatecmn.obj &
+       $(OBJS)\advlib_bmpcboxcmn.obj &
        $(OBJS)\advlib_calctrlcmn.obj &
        $(OBJS)\advlib_datavcmn.obj &
        $(OBJS)\advlib_hyperlnkcmn.obj &
@@ -6051,6 +6063,9 @@ $(OBJS)\monodll_mono.obj :  .AUTODEPEND ..\..\src\univ\themes\mono.cpp
 $(OBJS)\monodll_win32.obj :  .AUTODEPEND ..\..\src\univ\themes\win32.cpp
        $(CXX) -bt=nt -zq -fo=$^@ $(MONODLL_CXXFLAGS) $<
 
+$(OBJS)\monodll_bmpcbox.obj :  .AUTODEPEND ..\..\src\msw\bmpcbox.cpp
+       $(CXX) -bt=nt -zq -fo=$^@ $(MONODLL_CXXFLAGS) $<
+
 $(OBJS)\monodll_calctrl.obj :  .AUTODEPEND ..\..\src\msw\calctrl.cpp
        $(CXX) -bt=nt -zq -fo=$^@ $(MONODLL_CXXFLAGS) $<
 
@@ -7673,6 +7688,11 @@ $(OBJS)\monodll_animatecmn.obj :  .AUTODEPEND ..\..\src\common\animatecmn.cpp
        $(CXX) -bt=nt -zq -fo=$^@ $(MONODLL_CXXFLAGS) $<
 !endif
 
+!ifeq USE_GUI 1
+$(OBJS)\monodll_bmpcboxcmn.obj :  .AUTODEPEND ..\..\src\common\bmpcboxcmn.cpp
+       $(CXX) -bt=nt -zq -fo=$^@ $(MONODLL_CXXFLAGS) $<
+!endif
+
 !ifeq USE_GUI 1
 $(OBJS)\monodll_calctrlcmn.obj :  .AUTODEPEND ..\..\src\common\calctrlcmn.cpp
        $(CXX) -bt=nt -zq -fo=$^@ $(MONODLL_CXXFLAGS) $<
@@ -8302,6 +8322,9 @@ $(OBJS)\monolib_mono.obj :  .AUTODEPEND ..\..\src\univ\themes\mono.cpp
 $(OBJS)\monolib_win32.obj :  .AUTODEPEND ..\..\src\univ\themes\win32.cpp
        $(CXX) -bt=nt -zq -fo=$^@ $(MONOLIB_CXXFLAGS) $<
 
+$(OBJS)\monolib_bmpcbox.obj :  .AUTODEPEND ..\..\src\msw\bmpcbox.cpp
+       $(CXX) -bt=nt -zq -fo=$^@ $(MONOLIB_CXXFLAGS) $<
+
 $(OBJS)\monolib_calctrl.obj :  .AUTODEPEND ..\..\src\msw\calctrl.cpp
        $(CXX) -bt=nt -zq -fo=$^@ $(MONOLIB_CXXFLAGS) $<
 
@@ -9924,6 +9947,11 @@ $(OBJS)\monolib_animatecmn.obj :  .AUTODEPEND ..\..\src\common\animatecmn.cpp
        $(CXX) -bt=nt -zq -fo=$^@ $(MONOLIB_CXXFLAGS) $<
 !endif
 
+!ifeq USE_GUI 1
+$(OBJS)\monolib_bmpcboxcmn.obj :  .AUTODEPEND ..\..\src\common\bmpcboxcmn.cpp
+       $(CXX) -bt=nt -zq -fo=$^@ $(MONOLIB_CXXFLAGS) $<
+!endif
+
 !ifeq USE_GUI 1
 $(OBJS)\monolib_calctrlcmn.obj :  .AUTODEPEND ..\..\src\common\calctrlcmn.cpp
        $(CXX) -bt=nt -zq -fo=$^@ $(MONOLIB_CXXFLAGS) $<
@@ -13673,6 +13701,9 @@ $(OBJS)\advdll_dummy.obj :  .AUTODEPEND ..\..\src\common\dummy.cpp
 $(OBJS)\advdll_version.res :  .AUTODEPEND ..\..\src\msw\version.rc
        wrc -q -ad -bt=nt -r -fo=$^@    -d__WXMSW__ $(__WXUNIV_DEFINE_p) $(__DEBUG_DEFINE_p) $(__EXCEPTIONS_DEFINE_p) $(__RTTI_DEFINE_p) $(__THREAD_DEFINE_p) $(__UNICODE_DEFINE_p)  $(__GFXCTX_DEFINE_p) -i=$(SETUPHDIR) -i=..\..\include -dWXBUILDING -dWXDLLNAME=wx$(PORTNAME)$(WXUNIVNAME)$(WX_VERSION_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_adv_wat$(VENDORTAG)  -i=..\..\src\tiff\libtiff -i=..\..\src\jpeg -i=..\..\src\png -i=..\..\src\zlib -i=..\..\src\regex -i=..\..\src\expat\lib -dWXUSINGDLL -dWXMAKINGDLL_ADV $<
 
+$(OBJS)\advdll_bmpcbox.obj :  .AUTODEPEND ..\..\src\msw\bmpcbox.cpp
+       $(CXX) -bt=nt -zq -fo=$^@ $(ADVDLL_CXXFLAGS) $<
+
 $(OBJS)\advdll_calctrl.obj :  .AUTODEPEND ..\..\src\msw\calctrl.cpp
        $(CXX) -bt=nt -zq -fo=$^@ $(ADVDLL_CXXFLAGS) $<
 
@@ -13685,6 +13716,9 @@ $(OBJS)\advdll_datectrl.obj :  .AUTODEPEND ..\..\src\msw\datectrl.cpp
 $(OBJS)\advdll_animatecmn.obj :  .AUTODEPEND ..\..\src\common\animatecmn.cpp
        $(CXX) -bt=nt -zq -fo=$^@ $(ADVDLL_CXXFLAGS) $<
 
+$(OBJS)\advdll_bmpcboxcmn.obj :  .AUTODEPEND ..\..\src\common\bmpcboxcmn.cpp
+       $(CXX) -bt=nt -zq -fo=$^@ $(ADVDLL_CXXFLAGS) $<
+
 $(OBJS)\advdll_calctrlcmn.obj :  .AUTODEPEND ..\..\src\common\calctrlcmn.cpp
        $(CXX) -bt=nt -zq -fo=$^@ $(ADVDLL_CXXFLAGS) $<
 
@@ -13780,6 +13814,9 @@ $(OBJS)\advdll_joystick.obj :  .AUTODEPEND ..\..\src\msw\joystick.cpp
 $(OBJS)\advlib_dummy.obj :  .AUTODEPEND ..\..\src\common\dummy.cpp
        $(CXX) -bt=nt -zq -fo=$^@ $(ADVLIB_CXXFLAGS) $<
 
+$(OBJS)\advlib_bmpcbox.obj :  .AUTODEPEND ..\..\src\msw\bmpcbox.cpp
+       $(CXX) -bt=nt -zq -fo=$^@ $(ADVLIB_CXXFLAGS) $<
+
 $(OBJS)\advlib_calctrl.obj :  .AUTODEPEND ..\..\src\msw\calctrl.cpp
        $(CXX) -bt=nt -zq -fo=$^@ $(ADVLIB_CXXFLAGS) $<
 
@@ -13792,6 +13829,9 @@ $(OBJS)\advlib_datectrl.obj :  .AUTODEPEND ..\..\src\msw\datectrl.cpp
 $(OBJS)\advlib_animatecmn.obj :  .AUTODEPEND ..\..\src\common\animatecmn.cpp
        $(CXX) -bt=nt -zq -fo=$^@ $(ADVLIB_CXXFLAGS) $<
 
+$(OBJS)\advlib_bmpcboxcmn.obj :  .AUTODEPEND ..\..\src\common\bmpcboxcmn.cpp
+       $(CXX) -bt=nt -zq -fo=$^@ $(ADVLIB_CXXFLAGS) $<
+
 $(OBJS)\advlib_calctrlcmn.obj :  .AUTODEPEND ..\..\src\common\calctrlcmn.cpp
        $(CXX) -bt=nt -zq -fo=$^@ $(ADVLIB_CXXFLAGS) $<
 
index ec7c9583b0ef24a036b95205068e13a906436aa8..f43cd8c0e3cc36e6540e4acdd17f139409a024aa 100644 (file)
@@ -248,6 +248,10 @@ SOURCE=..\..\src\common\animatecmn.cpp
 # End Source File\r
 # Begin Source File\r
 \r
+SOURCE=..\..\src\common\bmpcboxcmn.cpp\r
+# End Source File\r
+# Begin Source File\r
+\r
 SOURCE=..\..\src\common\calctrlcmn.cpp\r
 # End Source File\r
 # Begin Source File\r
@@ -278,6 +282,41 @@ SOURCE=..\..\src\msw\aboutdlg.cpp
 # End Source File\r
 # Begin Source File\r
 \r
+SOURCE=..\..\src\msw\bmpcbox.cpp\r
+\r
+!IF  "$(CFG)" == "adv - Win32 DLL Universal Release"\r
+\r
+# PROP Exclude_From_Build 1\r
+\r
+!ELSEIF  "$(CFG)" == "adv - Win32 DLL Universal Debug"\r
+\r
+# PROP Exclude_From_Build 1\r
+\r
+!ELSEIF  "$(CFG)" == "adv - Win32 DLL Release"\r
+\r
+\r
+!ELSEIF  "$(CFG)" == "adv - Win32 DLL Debug"\r
+\r
+\r
+!ELSEIF  "$(CFG)" == "adv - Win32 Universal Release"\r
+\r
+# PROP Exclude_From_Build 1\r
+\r
+!ELSEIF  "$(CFG)" == "adv - Win32 Universal Debug"\r
+\r
+# PROP Exclude_From_Build 1\r
+\r
+!ELSEIF  "$(CFG)" == "adv - Win32 Release"\r
+\r
+\r
+!ELSEIF  "$(CFG)" == "adv - Win32 Debug"\r
+\r
+\r
+!ENDIF\r
+\r
+# End Source File\r
+# Begin Source File\r
+\r
 SOURCE=..\..\src\msw\calctrl.cpp\r
 \r
 !IF  "$(CFG)" == "adv - Win32 DLL Universal Release"\r
@@ -695,6 +734,10 @@ InputPath=..\..\include\wx\univ\setup.h
 # PROP Default_Filter ""\r
 # Begin Source File\r
 \r
+SOURCE=..\..\include\wx\msw\bmpcbox.h\r
+# End Source File\r
+# Begin Source File\r
+\r
 SOURCE=..\..\include\wx\msw\calctrl.h\r
 # End Source File\r
 # Begin Source File\r
index 6bd40f472b45923ef4081fd1ce4903353ebf0c9d..d3d96d7148cd5eb6a2bd2e038bb378d74723da51 100644 (file)
@@ -4688,6 +4688,10 @@ SOURCE=..\..\include\wx\msw\bmpbuttn.h
 # End Source File\r
 # Begin Source File\r
 \r
+SOURCE=..\..\include\wx\msw\bmpcbox.h\r
+# End Source File\r
+# Begin Source File\r
+\r
 SOURCE=..\..\include\wx\msw\brush.h\r
 # End Source File\r
 # Begin Source File\r
index bd8937706967bf74c4305360fc461ec20b2e2ae3..55d67b1f984d6b259d60fa23e236da7cf07c375a 100644 (file)
                        UniqueIdentifier="{A6A5C30D-BDB6-5050-906D-10A96065136C}">\r
                        <File\r
                                RelativePath="..\..\src\common\animatecmn.cpp"/>\r
+                       <File\r
+                               RelativePath="..\..\src\common\bmpcboxcmn.cpp"/>\r
                        <File\r
                                RelativePath="..\..\src\common\calctrlcmn.cpp"/>\r
                        <File\r
                        UniqueIdentifier="{D030D8C2-53EE-5B96-8F89-D78157B06140}">\r
                        <File\r
                                RelativePath="..\..\src\msw\aboutdlg.cpp"/>\r
+                       <File\r
+                               RelativePath="..\..\src\msw\bmpcbox.cpp">\r
+                               <FileConfiguration\r
+                                       Name="DLL Universal Release|Win32"\r
+                                       ExcludedFromBuild="true"/>\r
+                               <FileConfiguration\r
+                                       Name="DLL Universal Debug|Win32"\r
+                                       ExcludedFromBuild="true"/>\r
+                               <FileConfiguration\r
+                                       Name="Universal Release|Win32"\r
+                                       ExcludedFromBuild="true"/>\r
+                               <FileConfiguration\r
+                                       Name="Universal Debug|Win32"\r
+                                       ExcludedFromBuild="true"/>\r
+                       </File>\r
                        <File\r
                                RelativePath="..\..\src\msw\calctrl.cpp">\r
                                <FileConfiguration\r
                <Filter\r
                        Name="MSW Headers"\r
                        UniqueIdentifier="{5AFFF20E-29F9-512B-B80A-7DC45976CDAC}">\r
+                       <File\r
+                               RelativePath="..\..\include\wx\msw\bmpcbox.h"/>\r
                        <File\r
                                RelativePath="..\..\include\wx\msw\calctrl.h"/>\r
                        <File\r
index 1f9e530e44195755a8be088696ed6aabda86f5bf..ab86868fa0da8d03463612e7bc4fcf0f4b277d96 100644 (file)
                                RelativePath="..\..\include\wx\msw\bitmap.h"/>\r
                        <File\r
                                RelativePath="..\..\include\wx\msw\bmpbuttn.h"/>\r
+                       <File\r
+                               RelativePath="..\..\include\wx\msw\bmpcbox.h"/>\r
                        <File\r
                                RelativePath="..\..\include\wx\msw\brush.h"/>\r
                        <File\r
index 9502e8062ec122867d4b5c6d956097249276230b..a4dfed1f1648eec562d0a445aa802a153097fdea 100644 (file)
                        <File\r
                                RelativePath="..\..\src\common\animatecmn.cpp"\r
                        />\r
+                       <File\r
+                               RelativePath="..\..\src\common\bmpcboxcmn.cpp"\r
+                       />\r
                        <File\r
                                RelativePath="..\..\src\common\calctrlcmn.cpp"\r
                        />\r
                        <File\r
                                RelativePath="..\..\src\msw\aboutdlg.cpp"\r
                        />\r
+                       <File\r
+                               RelativePath="..\..\src\msw\bmpcbox.cpp"\r
+                               >\r
+                               <FileConfiguration\r
+                                       Name="DLL Universal Release|Win32"\r
+                                       ExcludedFromBuild="true"\r
+                               />\r
+                               <FileConfiguration\r
+                                       Name="DLL Universal Debug|Win32"\r
+                                       ExcludedFromBuild="true"\r
+                               />\r
+                               <FileConfiguration\r
+                                       Name="Universal Release|Win32"\r
+                                       ExcludedFromBuild="true"\r
+                               />\r
+                               <FileConfiguration\r
+                                       Name="Universal Debug|Win32"\r
+                                       ExcludedFromBuild="true"\r
+                               />\r
+                       </File>\r
                        <File\r
                                RelativePath="..\..\src\msw\calctrl.cpp"\r
                                >\r
                        Name="MSW Headers"\r
                        UniqueIdentifier="{5AFFF20E-29F9-512B-B80A-7DC45976CDAC}"\r
                        >\r
+                       <File\r
+                               RelativePath="..\..\include\wx\msw\bmpcbox.h"\r
+                       />\r
                        <File\r
                                RelativePath="..\..\include\wx\msw\calctrl.h"\r
                        />\r
index 13612de558ee9a7abb99f7a3dcad29d16545fc18..4312207174b176dea79673ec451c12a76a1c6961 100644 (file)
                        <File\r
                                RelativePath="..\..\include\wx\msw\bmpbuttn.h"\r
                        />\r
+                       <File\r
+                               RelativePath="..\..\include\wx\msw\bmpcbox.h"\r
+                       />\r
                        <File\r
                                RelativePath="..\..\include\wx\msw\brush.h"\r
                        />\r
index 2de65ac579b672e7009ec7d68913c8a8382c99b3..7c28127e958d3976b1e63bd25526730a8ce806c8 100644 (file)
 
 #include "wx/bitmap.h"
 
+// Define wxBITMAPCOMBOBOX_OWNERDRAWN_BASED for platforms which
+// wxBitmapComboBox implementation utilizes ownerdrawn combobox
+// (either native or generic).
+#if 1
+    #define wxBITMAPCOMBOBOX_OWNERDRAWN_BASED
+#endif
 
 extern WXDLLIMPEXP_DATA_ADV(const wxChar) wxBitmapComboBoxNameStr[];
 
@@ -27,22 +33,85 @@ class WXDLLIMPEXP_ADV wxBitmapComboBoxBase
 {
 public:
     // ctors and such
-    wxBitmapComboBoxBase() { }
+    wxBitmapComboBoxBase() { Init(); }
 
     virtual ~wxBitmapComboBoxBase() { }
 
-    // Returns the image of the item with the given index.
-    virtual wxBitmap GetItemBitmap(unsigned int n) const = 0;
-
     // Sets the image for the given item.
     virtual void SetItemBitmap(unsigned int n, const wxBitmap& bitmap) = 0;
 
+#if !defined(wxBITMAPCOMBOBOX_OWNERDRAWN_BASED)
+
+    // Returns the image of the item with the given index.
+    virtual wxBitmap GetItemBitmap(unsigned int n) const = 0;
+
     // Returns size of the image used in list
     virtual wxSize GetBitmapSize() const = 0;
+
+private:
+    void Init() {}
+
+#else // wxBITMAPCOMBOBOX_OWNERDRAWN_BASED
+
+    // Returns the image of the item with the given index.
+    virtual wxBitmap GetItemBitmap(unsigned int n) const;
+
+    // Returns size of the image used in list
+    virtual wxSize GetBitmapSize() const
+    {
+        return m_usedImgSize;
+    }
+
+protected:
+
+    // Returns pointer to the combobox item container
+    virtual wxItemContainer* GetItemContainer() = 0;
+
+    // Return pointer to the owner-drawn combobox control
+    virtual wxWindow* GetControl() = 0;
+
+    // wxItemContainer functions
+    void BCBDoClear();
+    void BCBDoDeleteOneItem(unsigned int n);
+
+    void DoSetItemBitmap(unsigned int n, const wxBitmap& bitmap);
+
+    void DrawBackground(wxDC& dc, const wxRect& rect, int item, int flags) const;
+    void DrawItem(wxDC& dc, const wxRect& rect, int item, const wxString& text,
+                  int flags) const;
+    wxCoord MeasureItem(size_t item) const;
+
+    // Returns true if image size was affected
+    virtual bool OnAddBitmap(const wxBitmap& bitmap);
+
+    // Recalculates amount of empty space needed in front of text
+    // in control itself. Returns number that can be passed to
+    // wxOwnerDrawnComboBox::SetCustomPaintWidth() and similar
+    // functions.
+    virtual int DetermineIndent();
+
+    void UpdateInternals();
+
+    wxArrayPtrVoid      m_bitmaps;  // Images associated with items
+    wxSize              m_usedImgSize;  // Size of bitmaps
+
+    int                 m_imgAreaWidth;  // Width and height of area next to text field
+    int                 m_fontHeight;
+    int                 m_indent;
+
+private:
+    void Init();
+#endif // !wxBITMAPCOMBOBOX_OWNERDRAWN_BASED/wxBITMAPCOMBOBOX_OWNERDRAWN_BASED
 };
 
 
-#include "wx/generic/bmpcbox.h"
+#if defined(__WXUNIVERSAL__)
+    #include "wx/generic/bmpcbox.h"
+#elif defined(__WXMSW__)
+    #include "wx/msw/bmpcbox.h"
+#else
+    #include "wx/generic/bmpcbox.h"
+#endif
 
 #endif // wxUSE_BITMAPCOMBOBOX
 
index e192470c4e8aca47301acf97dea8c085a4d4cae1..d0e616d40a853ce73816206ecfe1214696c7ef2e 100644 (file)
@@ -98,21 +98,9 @@ public:
     int Insert(const wxString& item, const wxBitmap& bitmap,
                unsigned int pos, wxClientData *clientData);
 
-    // Returns size of image used in list.
-    virtual wxSize GetBitmapSize() const
-    {
-        return m_usedImgSize;
-    }
-
-    // Returns the image of the item with the given index.
-    virtual wxBitmap GetItemBitmap(unsigned int n) const;
-
     // Sets the image for the given item.
     virtual void SetItemBitmap(unsigned int n, const wxBitmap& bitmap);
 
-    virtual void DoClear();
-    virtual void DoDeleteOneItem(unsigned int n);
-
 protected:
 
     virtual void OnDrawBackground(wxDC& dc, const wxRect& rect, int item, int flags) const;
@@ -120,38 +108,26 @@ protected:
     virtual wxCoord OnMeasureItem(size_t item) const;
     virtual wxCoord OnMeasureItemWidth(size_t item) const;
 
-    virtual int DoInsertItems(const wxArrayStringsAdapter & items,
-                              unsigned int pos,
-                              void **clientData, wxClientDataType type);
-
-    virtual bool SetFont(const wxFont& font);
-
-    virtual wxSize DoGetBestSize() const;
-
     // Event handlers
     void OnSize(wxSizeEvent& event);
 
-    // Recalculates amount of empty space needed in front of
-    // text in control itself.
-    void DetermineIndent();
-
-    bool OnAddBitmap(const wxBitmap& bitmap);
-
-    // Adds image to position - called in Append/Insert before
-    // string is added.
-    bool DoInsertBitmap(const wxBitmap& image, unsigned int pos);
+    virtual wxSize DoGetBestSize() const;
+    virtual bool SetFont(const wxFont& font);
 
+    virtual wxItemContainer* GetItemContainer() { return this; }
+    virtual wxWindow* GetControl() { return this; }
 
-    wxArrayPtrVoid      m_bitmaps;  // Images associated with items
-    wxSize              m_usedImgSize;  // Size of bitmaps
+    // wxItemContainer implementation
+    virtual int DoInsertItems(const wxArrayStringsAdapter & items,
+                              unsigned int pos,
+                              void **clientData, wxClientDataType type);
+    virtual void DoClear();
+    virtual void DoDeleteOneItem(unsigned int n);
 
 private:
-    int                 m_imgAreaWidth;  // Width and height of area next to text field
-    int                 m_fontHeight;
     bool                m_inResize;
 
     void Init();
-    void PostCreate();
 
     DECLARE_EVENT_TABLE()
 
diff --git a/include/wx/msw/bmpcbox.h b/include/wx/msw/bmpcbox.h
new file mode 100644 (file)
index 0000000..b2c7e90
--- /dev/null
@@ -0,0 +1,135 @@
+/////////////////////////////////////////////////////////////////////////////
+// Name:        wx/msw/bmpcbox.h
+// Purpose:     wxBitmapComboBox
+// Author:      Jaakko Salli
+// Created:     2008-04-06
+// RCS-ID:      $Id:$
+// Copyright:   (c) 2008 Jaakko Salli
+// Licence:     wxWindows licence
+/////////////////////////////////////////////////////////////////////////////
+
+#ifndef _WX_MSW_BMPCBOX_H_
+#define _WX_MSW_BMPCBOX_H_
+
+
+#include "wx/combobox.h"
+
+
+// ----------------------------------------------------------------------------
+// wxBitmapComboBox: a wxComboBox that allows images to be shown
+// in front of string items.
+// ----------------------------------------------------------------------------
+
+class WXDLLIMPEXP_ADV wxBitmapComboBox : public wxComboBox,
+                                         public wxBitmapComboBoxBase
+{
+public:
+    // ctors and such
+    wxBitmapComboBox() : wxComboBox(), wxBitmapComboBoxBase()
+    {
+        Init();
+    }
+
+    wxBitmapComboBox(wxWindow *parent,
+                     wxWindowID id = wxID_ANY,
+                     const wxString& value = wxEmptyString,
+                     const wxPoint& pos = wxDefaultPosition,
+                     const wxSize& size = wxDefaultSize,
+                     int n = 0,
+                     const wxString choices[] = NULL,
+                     long style = 0,
+                     const wxValidator& validator = wxDefaultValidator,
+                     const wxString& name = wxBitmapComboBoxNameStr)
+        : wxComboBox(),
+          wxBitmapComboBoxBase()
+    {
+        Init();
+
+        (void)Create(parent, id, value, pos, size, n,
+                     choices, style, validator, name);
+    }
+
+    wxBitmapComboBox(wxWindow *parent,
+                     wxWindowID id,
+                     const wxString& value,
+                     const wxPoint& pos,
+                     const wxSize& size,
+                     const wxArrayString& choices,
+                     long style,
+                     const wxValidator& validator = wxDefaultValidator,
+                     const wxString& name = wxBitmapComboBoxNameStr);
+
+    bool Create(wxWindow *parent,
+                wxWindowID id,
+                const wxString& value,
+                const wxPoint& pos,
+                const wxSize& size,
+                int n,
+                const wxString choices[],
+                long style = 0,
+                const wxValidator& validator = wxDefaultValidator,
+                const wxString& name = wxBitmapComboBoxNameStr);
+
+    bool Create(wxWindow *parent,
+                wxWindowID id,
+                const wxString& value,
+                const wxPoint& pos,
+                const wxSize& size,
+                const wxArrayString& choices,
+                long style = 0,
+                const wxValidator& validator = wxDefaultValidator,
+                const wxString& name = wxBitmapComboBoxNameStr);
+
+    virtual ~wxBitmapComboBox();
+
+    // Sets the image for the given item.
+    virtual void SetItemBitmap(unsigned int n, const wxBitmap& bitmap);
+
+    // Adds item with image to the end of the combo box.
+    int Append(const wxString& item, const wxBitmap& bitmap = wxNullBitmap);
+    int Append(const wxString& item, const wxBitmap& bitmap, void *clientData);
+    int Append(const wxString& item, const wxBitmap& bitmap, wxClientData *clientData);
+
+    // Inserts item with image into the list before pos. Not valid for wxCB_SORT
+    // styles, use Append instead.
+    int Insert(const wxString& item, const wxBitmap& bitmap, unsigned int pos);
+    int Insert(const wxString& item, const wxBitmap& bitmap,
+               unsigned int pos, void *clientData);
+    int Insert(const wxString& item, const wxBitmap& bitmap,
+               unsigned int pos, wxClientData *clientData);
+
+protected:
+
+    WXDWORD MSWGetStyle(long style, WXDWORD *exstyle) const;
+    virtual bool MSWOnDraw(WXDRAWITEMSTRUCT *item);
+    virtual bool MSWOnMeasure(WXMEASUREITEMSTRUCT *item);
+
+    // Event handlers
+    void OnSize(wxSizeEvent& event);
+
+    virtual bool SetFont(const wxFont& font);
+
+    virtual wxItemContainer* GetItemContainer() { return this; }
+    virtual wxWindow* GetControl() { return this; }
+
+    // wxItemContainer implementation
+    virtual int DoInsertItems(const wxArrayStringsAdapter & items,
+                              unsigned int pos,
+                              void **clientData, wxClientDataType type);
+    virtual void DoClear();
+    virtual void DoDeleteOneItem(unsigned int n);
+
+    virtual bool OnAddBitmap(const wxBitmap& bitmap);
+    void RecreateControl();
+
+private:
+    void Init();
+
+    bool m_inResize;
+
+    DECLARE_EVENT_TABLE()
+
+    DECLARE_DYNAMIC_CLASS(wxBitmapComboBox)
+};
+
+#endif // _WX_MSW_BMPCBOX_H_
diff --git a/src/common/bmpcboxcmn.cpp b/src/common/bmpcboxcmn.cpp
new file mode 100644 (file)
index 0000000..71b37ab
--- /dev/null
@@ -0,0 +1,242 @@
+/////////////////////////////////////////////////////////////////////////////
+// Name:        src/common/bmpcboxcmn.cpp
+// Purpose:     wxBitmapComboBox
+// Author:      Jaakko Salli
+// Created:     2008-04-09
+// RCS-ID:      $Id:$
+// Copyright:   (c) 2008 Jaakko Salli
+// Licence:     wxWindows licence
+/////////////////////////////////////////////////////////////////////////////
+
+// ============================================================================
+// declarations
+// ============================================================================
+
+// ----------------------------------------------------------------------------
+// headers
+// ----------------------------------------------------------------------------
+
+#include "wx/wxprec.h"
+
+#ifdef __BORLANDC__
+    #pragma hdrstop
+#endif
+
+#include "wx/bmpcbox.h"
+
+#if wxUSE_BITMAPCOMBOBOX
+
+#ifndef WX_PRECOMP
+    #include "wx/log.h"
+#endif
+
+#include "wx/settings.h"
+
+// For wxODCB_XXX flags
+#include "wx/odcombo.h"
+
+
+const wxChar wxBitmapComboBoxNameStr[] = wxT("bitmapComboBox");
+
+#if defined(wxBITMAPCOMBOBOX_OWNERDRAWN_BASED)
+
+#define IMAGE_SPACING_RIGHT         4  // Space left of image
+
+#define IMAGE_SPACING_LEFT          4  // Space right of image, left of text
+
+#define EXTRA_FONT_HEIGHT           0  // Add to increase min. height of list items
+
+#define wxBCB_DEFAULT_ITEM_HEIGHT  13
+
+
+// This macros allows wxArrayPtrVoid to be used in more convenient manner
+#define GetBitmapPtr(n)     ((wxBitmap*)m_bitmaps[n])
+
+
+// ----------------------------------------------------------------------------
+// Initialization
+// ----------------------------------------------------------------------------
+
+void wxBitmapComboBoxBase::Init()
+{
+    m_fontHeight = 0;
+    m_imgAreaWidth = 0;
+    m_indent = 0;
+    m_usedImgSize = wxSize(-1, -1);
+}
+
+void wxBitmapComboBoxBase::UpdateInternals()
+{
+    m_fontHeight = GetControl()->GetCharHeight() + EXTRA_FONT_HEIGHT;
+
+    while ( m_bitmaps.GetCount() < GetItemContainer()->GetCount() )
+        m_bitmaps.Add( new wxBitmap() );
+}
+
+// ----------------------------------------------------------------------------
+// Item manipulation
+// ----------------------------------------------------------------------------
+
+void wxBitmapComboBoxBase::DoSetItemBitmap(unsigned int n, const wxBitmap& bitmap)
+{
+    wxCHECK_RET( n < m_bitmaps.size(), "invalid item index" );
+    *GetBitmapPtr(n) = bitmap;
+}
+
+wxBitmap wxBitmapComboBoxBase::GetItemBitmap(unsigned int n) const
+{
+    wxCHECK_MSG( n < m_bitmaps.size(), wxNullBitmap, "invalid item index" );
+    return *GetBitmapPtr(n);
+}
+
+// ----------------------------------------------------------------------------
+// wxItemContainer methods
+// ----------------------------------------------------------------------------
+
+void wxBitmapComboBoxBase::BCBDoClear()
+{
+    for ( unsigned i = 0; i < m_bitmaps.size(); i++ )
+        delete GetBitmapPtr(i);
+
+    m_bitmaps.Empty();
+
+    m_usedImgSize.x = -1;
+    m_usedImgSize.y = -1;
+
+    DetermineIndent();
+}
+
+void wxBitmapComboBoxBase::BCBDoDeleteOneItem(unsigned int n)
+{
+    delete GetBitmapPtr(n);
+    m_bitmaps.RemoveAt(n);
+}
+
+// ----------------------------------------------------------------------------
+// Preparation and Calculations
+// ----------------------------------------------------------------------------
+
+bool wxBitmapComboBoxBase::OnAddBitmap(const wxBitmap& bitmap)
+{
+    if ( bitmap.IsOk() )
+    {
+        int width = bitmap.GetWidth();
+        int height = bitmap.GetHeight();
+
+        if ( m_usedImgSize.x < 0 )
+        {
+            // If size not yet determined, get it from this image.
+            m_usedImgSize.x = width;
+            m_usedImgSize.y = height;
+
+            // Adjust control size to vertically fit the bitmap
+            wxWindow* ctrl = GetControl();
+            ctrl->InvalidateBestSize();
+            wxSize newSz = ctrl->GetBestSize();
+            wxSize sz = ctrl->GetSize();
+            if ( newSz.y > sz.y )
+                ctrl->SetSize(sz.x, newSz.y);
+            else
+                DetermineIndent();
+        }
+
+        wxCHECK_MSG( width == m_usedImgSize.x && height == m_usedImgSize.y,
+                     false,
+                     "you can only add images of same size" );
+
+        return true;
+    }
+
+    return false;
+}
+
+int wxBitmapComboBoxBase::DetermineIndent()
+{
+    // Recalculate amount of empty space needed in front of
+    // text in control itself.
+    int indent = m_imgAreaWidth = 0;
+
+    if ( m_usedImgSize.x > 0 )
+    {
+        indent = m_usedImgSize.x + IMAGE_SPACING_LEFT + IMAGE_SPACING_RIGHT;
+        m_imgAreaWidth = indent;
+
+        indent -= 3;
+    }
+
+    return indent;
+}
+
+// ----------------------------------------------------------------------------
+// Item drawing and measuring
+// ----------------------------------------------------------------------------
+
+void wxBitmapComboBoxBase::DrawBackground(wxDC& dc,
+                                          const wxRect& rect,
+                                          int WXUNUSED(item),
+                                          int flags) const
+{
+    if ( flags & wxODCB_PAINTING_SELECTED )
+    {
+        const int vSizeDec = 0;  // Vertical size reduction of selection rectangle edges
+
+        dc.SetTextForeground(wxSystemSettings::GetColour(wxSYS_COLOUR_HIGHLIGHTTEXT));
+
+        wxColour selCol = wxSystemSettings::GetColour(wxSYS_COLOUR_HIGHLIGHT);
+        dc.SetPen(selCol);
+        dc.SetBrush(selCol);
+        dc.DrawRectangle(rect.x,
+                         rect.y+vSizeDec,
+                         rect.width,
+                         rect.height-(vSizeDec*2));
+    }
+    else
+    {
+        dc.SetTextForeground(wxSystemSettings::GetColour(wxSYS_COLOUR_WINDOWTEXT));
+
+        wxColour selCol = wxSystemSettings::GetColour(wxSYS_COLOUR_WINDOW);
+        dc.SetPen(selCol);
+        dc.SetBrush(selCol);
+        dc.DrawRectangle(rect);
+    }
+}
+
+void wxBitmapComboBoxBase::DrawItem(wxDC& dc,
+                                    const wxRect& rect,
+                                    int item,
+                                    const wxString& text,
+                                    int WXUNUSED(flags)) const
+{
+    const wxBitmap& bmp = *GetBitmapPtr(item);
+    if ( bmp.IsOk() )
+    {
+        wxCoord w = bmp.GetWidth();
+        wxCoord h = bmp.GetHeight();
+
+        // Draw the image centered
+        dc.DrawBitmap(bmp,
+                      rect.x + (m_usedImgSize.x-w)/2 + IMAGE_SPACING_LEFT,
+                      rect.y + (rect.height-h)/2,
+                      true);
+    }
+
+    if ( text.length() )
+        dc.DrawText(text,
+                    rect.x + m_imgAreaWidth + 1,
+                    rect.y + (rect.height-dc.GetCharHeight())/2);
+}
+
+wxCoord wxBitmapComboBoxBase::MeasureItem(size_t WXUNUSED(item)) const
+{
+    if ( m_usedImgSize.y >= 0 )
+    {
+        int imgHeightArea = m_usedImgSize.y + 2;
+        return imgHeightArea > m_fontHeight ? imgHeightArea : m_fontHeight;
+    }
+    
+    return wxBCB_DEFAULT_ITEM_HEIGHT;
+}
+
+#endif // wxBITMAPCOMBOBOX_OWNERDRAWN_BASED
+
+#endif // wxUSE_BITMAPCOMBOBOX
index a9b1eb0a3ec0212c8c27ee7ccaa14c7428ad2dd9..ce14a4708f451658a59d32964bf12ae9c36201e0 100644 (file)
 #endif
 
 
-const wxChar wxBitmapComboBoxNameStr[] = wxT("bitmapComboBox");
-
-
-// These macros allow wxArrayPtrVoid to be used in more convenient manner
-#define GetBitmapPtr(n)     ((wxBitmap*)m_bitmaps[n])
-
-
-#define IMAGE_SPACING_RIGHT         4  // Space left of image
-
-#define IMAGE_SPACING_LEFT          4  // Space right of image, left of text
-
-#define IMAGE_SPACING_VERTICAL      2  // Space top and bottom of image
-
 #define IMAGE_SPACING_CTRL_VERTICAL 7  // Spacing used in control size calculation
 
-#define EXTRA_FONT_HEIGHT           0  // Add to increase min. height of list items
-
 
 // ============================================================================
 // implementation
@@ -74,8 +59,6 @@ IMPLEMENT_DYNAMIC_CLASS(wxBitmapComboBox, wxOwnerDrawnComboBox)
 
 void wxBitmapComboBox::Init()
 {
-    m_fontHeight = 0;
-    m_imgAreaWidth = 0;
     m_inResize = false;
 }
 
@@ -114,7 +97,7 @@ bool wxBitmapComboBox::Create(wxWindow *parent,
         return false;
     }
 
-    PostCreate();
+    UpdateInternals();
 
     return true;
 }
@@ -138,19 +121,11 @@ bool wxBitmapComboBox::Create(wxWindow *parent,
         return false;
     }
 
-    PostCreate();
+    UpdateInternals();
 
     return true;
 }
 
-void wxBitmapComboBox::PostCreate()
-{
-    m_fontHeight = GetCharHeight() + EXTRA_FONT_HEIGHT;
-
-    while ( m_bitmaps.GetCount() < GetCount() )
-        m_bitmaps.Add( new wxBitmap() );
-}
-
 wxBitmapComboBox::~wxBitmapComboBox()
 {
     Clear();
@@ -162,20 +137,13 @@ wxBitmapComboBox::~wxBitmapComboBox()
 
 void wxBitmapComboBox::SetItemBitmap(unsigned int n, const wxBitmap& bitmap)
 {
-    wxCHECK_RET( n < GetCount(), wxT("invalid item index") );
     OnAddBitmap(bitmap);
-    *GetBitmapPtr(n) = bitmap;
+    DoSetItemBitmap(n, bitmap);
 
     if ( (int)n == GetSelection() )
         Refresh();
 }
 
-wxBitmap wxBitmapComboBox::GetItemBitmap(unsigned int n) const
-{
-    wxCHECK_MSG( n < GetCount(), wxNullBitmap, wxT("invalid item index") );
-    return *GetBitmapPtr(n);
-}
-
 int wxBitmapComboBox::DoInsertItems(const wxArrayStringsAdapter & items,
                                     unsigned int pos,
                                     void **clientData, wxClientDataType type)
@@ -185,7 +153,7 @@ int wxBitmapComboBox::DoInsertItems(const wxArrayStringsAdapter & items,
 
     m_bitmaps.Alloc(countNew);
 
-    for ( unsigned int i = 0; i < numItems; ++i )
+    for ( unsigned int i = 0; i < numItems; i++ )
     {
         m_bitmaps.Insert(new wxBitmap(wxNullBitmap), pos + i);
     }
@@ -195,13 +163,10 @@ int wxBitmapComboBox::DoInsertItems(const wxArrayStringsAdapter & items,
 
     if ( index == wxNOT_FOUND )
     {
-        for ( int i = countNew - GetCount(); i > 0; --i )
-        {
-            wxBitmap *bmp = GetBitmapPtr(pos);
-            m_bitmaps.RemoveAt(pos);
-            delete bmp;
-        }
+        for ( int i = numItems-1; i >= 0; i-- )
+            BCBDoDeleteOneItem(pos + i);
     }
+
     return index;
 }
 
@@ -259,83 +224,22 @@ int wxBitmapComboBox::Insert(const wxString& item, const wxBitmap& bitmap,
     return n;
 }
 
-bool wxBitmapComboBox::OnAddBitmap(const wxBitmap& bitmap)
-{
-    if ( bitmap.Ok() )
-    {
-        int width = bitmap.GetWidth();
-        int height = bitmap.GetHeight();
-
-        if ( m_usedImgSize.x <= 0 )
-        {
-            //
-            // If size not yet determined, get it from this image.
-            m_usedImgSize.x = width;
-            m_usedImgSize.y = height;
-
-            InvalidateBestSize();
-            wxSize newSz = GetBestSize();
-            wxSize sz = GetSize();
-            if ( newSz.y > sz.y )
-                SetSize(sz.x, newSz.y);
-            else
-                DetermineIndent();
-        }
-
-        wxCHECK_MSG(width == m_usedImgSize.x && height == m_usedImgSize.y,
-                    false,
-                    wxT("you can only add images of same size"));
-    }
-
-    return true;
-}
-
 void wxBitmapComboBox::DoClear()
 {
     wxOwnerDrawnComboBox::DoClear();
-
-    unsigned int i;
-
-    for ( i=0; i<m_bitmaps.size(); i++ )
-        delete GetBitmapPtr(i);
-
-    m_bitmaps.Empty();
-
-    m_usedImgSize.x = 0;
-    m_usedImgSize.y = 0;
-
-    DetermineIndent();
+    wxBitmapComboBoxBase::BCBDoClear();
 }
 
 void wxBitmapComboBox::DoDeleteOneItem(unsigned int n)
 {
     wxOwnerDrawnComboBox::DoDeleteOneItem(n);
-    delete GetBitmapPtr(n);
-    m_bitmaps.RemoveAt(n);
+    wxBitmapComboBoxBase::BCBDoDeleteOneItem(n);
 }
 
 // ----------------------------------------------------------------------------
 // wxBitmapComboBox event handlers and such
 // ----------------------------------------------------------------------------
 
-void wxBitmapComboBox::DetermineIndent()
-{
-    //
-    // Recalculate amount of empty space needed in front of
-    // text in control itself.
-    int indent = m_imgAreaWidth = 0;
-
-    if ( m_usedImgSize.x > 0 )
-    {
-        indent = m_usedImgSize.x + IMAGE_SPACING_LEFT + IMAGE_SPACING_RIGHT;
-        m_imgAreaWidth = indent;
-
-        indent -= 3;
-    }
-
-    SetCustomPaintWidth(indent);
-}
-
 void wxBitmapComboBox::OnSize(wxSizeEvent& event)
 {
     // Prevent infinite looping
@@ -353,13 +257,17 @@ wxSize wxBitmapComboBox::DoGetBestSize() const
 {
     wxSize sz = wxOwnerDrawnComboBox::DoGetBestSize();
 
-    // Scale control to match height of highest image.
-    int h2 = m_usedImgSize.y + IMAGE_SPACING_CTRL_VERTICAL;
+    if ( HasFlag(wxCB_READONLY) )
+    {
+        // Scale control to match height of highest image.
+        int h2 = m_usedImgSize.y + IMAGE_SPACING_CTRL_VERTICAL;
 
-    if ( h2 > sz.y )
-        sz.y = h2;
+        if ( h2 > sz.y )
+            sz.y = h2;
+
+        CacheBestSize(sz);
+    }
 
-    CacheBestSize(sz);
     return sz;
 }
 
@@ -370,7 +278,7 @@ wxSize wxBitmapComboBox::DoGetBestSize() const
 bool wxBitmapComboBox::SetFont(const wxFont& font)
 {
     bool res = wxOwnerDrawnComboBox::SetFont(font);
-    m_fontHeight = GetCharHeight() + EXTRA_FONT_HEIGHT;
+    UpdateInternals();
     return res;
 }
 
@@ -392,28 +300,7 @@ void wxBitmapComboBox::OnDrawBackground(wxDC& dc,
         return;
     }
 
-    //
-    // Just paint simple selection background under where is text
-    // (ie. emulate what MSW image choice does).
-    //
-
-    int xPos = 0;  // Starting x of selection rectangle
-    const int vSizeDec = 1;  // Vertical size reduction of selection rectangle edges
-
-    xPos = GetCustomPaintWidth() + 2;
-
-    wxCoord x, y;
-    GetTextExtent(GetString(item), &x, &y, 0, 0);
-
-    dc.SetTextForeground(wxSystemSettings::GetColour(wxSYS_COLOUR_HIGHLIGHTTEXT));
-
-    wxColour selCol = wxSystemSettings::GetColour(wxSYS_COLOUR_HIGHLIGHT);
-    dc.SetPen(selCol);
-    dc.SetBrush(selCol);
-    dc.DrawRectangle(rect.x+xPos,
-                     rect.y+vSizeDec,
-                     x + 4,
-                     rect.height-(vSizeDec*2));
+    wxBitmapComboBoxBase::DrawBackground(dc, rect, item, flags);
 }
 
 void wxBitmapComboBox::OnDrawItem(wxDC& dc,
@@ -423,7 +310,6 @@ void wxBitmapComboBox::OnDrawItem(wxDC& dc,
 {
     wxString text;
     int imgAreaWidth = m_imgAreaWidth;
-    bool drawText;
 
     if ( imgAreaWidth == 0 )
     {
@@ -434,40 +320,20 @@ void wxBitmapComboBox::OnDrawItem(wxDC& dc,
     if ( flags & wxODCB_PAINTING_CONTROL )
     {
         text = GetValue();
-        if ( HasFlag(wxCB_READONLY) )
-            drawText = true;
-        else
-            drawText = false;
+        if ( !HasFlag(wxCB_READONLY) )
+            text.clear();
     }
     else
     {
         text = GetString(item);
-        drawText = true;
-    }
-
-    const wxBitmap& bmp = *GetBitmapPtr(item);
-    if ( bmp.Ok() )
-    {
-        wxCoord w = bmp.GetWidth();
-        wxCoord h = bmp.GetHeight();
-
-        // Draw the image centered
-        dc.DrawBitmap(bmp,
-                      rect.x + (m_usedImgSize.x-w)/2 + IMAGE_SPACING_LEFT,
-                      rect.y + (rect.height-h)/2,
-                      true);
     }
-
-    if ( drawText )
-        dc.DrawText(GetString(item),
-                    rect.x + imgAreaWidth + 1,
-                    rect.y + (rect.height-dc.GetCharHeight())/2);
+    
+    wxBitmapComboBoxBase::DrawItem(dc, rect, item, text, flags);
 }
 
-wxCoord wxBitmapComboBox::OnMeasureItem(size_t WXUNUSED(item)) const
+wxCoord wxBitmapComboBox::OnMeasureItem(size_t item) const
 {
-    int imgHeightArea = m_usedImgSize.y + 2;
-    return imgHeightArea > m_fontHeight ? imgHeightArea : m_fontHeight;
+    return wxBitmapComboBoxBase::MeasureItem(item);
 }
 
 wxCoord wxBitmapComboBox::OnMeasureItemWidth(size_t item) const
diff --git a/src/msw/bmpcbox.cpp b/src/msw/bmpcbox.cpp
new file mode 100644 (file)
index 0000000..03383ee
--- /dev/null
@@ -0,0 +1,387 @@
+/////////////////////////////////////////////////////////////////////////////
+// Name:        src/msw/bmpcboxg.cpp
+// Purpose:     wxBitmapComboBox
+// Author:      Jaakko Salli
+// Created:     2008-04-06
+// RCS-ID:      $Id:$
+// Copyright:   (c) 2008 Jaakko Salli
+// Licence:     wxWindows licence
+/////////////////////////////////////////////////////////////////////////////
+
+// ============================================================================
+// declarations
+// ============================================================================
+
+// ----------------------------------------------------------------------------
+// headers
+// ----------------------------------------------------------------------------
+
+#include "wx/wxprec.h"
+
+#ifdef __BORLANDC__
+    #pragma hdrstop
+#endif
+
+#if wxUSE_BITMAPCOMBOBOX
+
+#include "wx/bmpcbox.h"
+
+#ifndef WX_PRECOMP
+    #include "wx/log.h"
+#endif
+
+#include "wx/settings.h"
+
+#include "wx/msw/dcclient.h"
+#include "wx/msw/private.h"
+
+// For wxODCB_XXX flags
+#include "wx/odcombo.h"
+
+
+#define IMAGE_SPACING_CTRL_VERTICAL 7  // Spacing used in control size calculation
+
+
+// ============================================================================
+// implementation
+// ============================================================================
+
+
+BEGIN_EVENT_TABLE(wxBitmapComboBox, wxComboBox)
+    EVT_SIZE(wxBitmapComboBox::OnSize)
+END_EVENT_TABLE()
+
+
+IMPLEMENT_DYNAMIC_CLASS(wxBitmapComboBox, wxComboBox)
+
+
+// ----------------------------------------------------------------------------
+// wxBitmapComboBox creation
+// ----------------------------------------------------------------------------
+
+void wxBitmapComboBox::Init()
+{
+    m_inResize = false;
+}
+
+wxBitmapComboBox::wxBitmapComboBox(wxWindow *parent,
+                                  wxWindowID id,
+                                  const wxString& value,
+                                  const wxPoint& pos,
+                                  const wxSize& size,
+                                  const wxArrayString& choices,
+                                  long style,
+                                  const wxValidator& validator,
+                                  const wxString& name)
+    : wxComboBox(),
+      wxBitmapComboBoxBase()
+{
+    Init();
+
+    Create(parent,id,value,pos,size,choices,style,validator,name);
+}
+
+bool wxBitmapComboBox::Create(wxWindow *parent,
+                              wxWindowID id,
+                              const wxString& value,
+                              const wxPoint& pos,
+                              const wxSize& size,
+                              const wxArrayString& choices,
+                              long style,
+                              const wxValidator& validator,
+                              const wxString& name)
+{
+    wxCArrayString chs(choices);
+    return Create(parent, id, value, pos, size, chs.GetCount(),
+                  chs.GetStrings(), style, validator, name);
+}
+
+bool wxBitmapComboBox::Create(wxWindow *parent,
+                              wxWindowID id,
+                              const wxString& value,
+                              const wxPoint& pos,
+                              const wxSize& size,
+                              int n,
+                              const wxString choices[],
+                              long style,
+                              const wxValidator& validator,
+                              const wxString& name)
+{
+    if ( !wxComboBox::Create(parent, id, value, pos, size,
+                             n, choices, style, validator, name) )
+        return false;
+
+    UpdateInternals();
+
+    return true;
+}
+
+WXDWORD wxBitmapComboBox::MSWGetStyle(long style, WXDWORD *exstyle) const
+{
+    return wxComboBox::MSWGetStyle(style, exstyle) | CBS_OWNERDRAWFIXED | CBS_HASSTRINGS;
+}
+
+void wxBitmapComboBox::RecreateControl()
+{
+    //
+    // Recreate control so that WM_MEASUREITEM gets called again.
+    // Can't use CBS_OWNERDRAWVARIABLE because it has odd
+    // mouse-wheel behaviour.
+    //
+    wxString value = GetValue();
+    wxPoint pos = GetPosition();
+    wxSize size = GetSize();
+    wxArrayString strings = GetStrings();
+
+    wxComboBox::DoClear();
+
+    HWND hwnd = GetHwnd();
+    DissociateHandle();
+    ::DestroyWindow(hwnd);
+
+    if ( !MSWCreateControl(wxT("COMBOBOX"), value, pos, size) )
+        return;
+
+    // initialize the controls contents
+    for ( unsigned int i = 0; i < strings.size(); i++ )
+    {
+        wxComboBox::Append(strings[i]);
+    }
+
+    // and make sure it has the same attributes as before
+    if ( m_hasFont )
+    {
+        // calling SetFont(m_font) would do nothing as the code would
+        // notice that the font didn't change, so force it to believe
+        // that it did
+        wxFont font = m_font;
+        m_font = wxNullFont;
+        SetFont(font);
+    }
+
+    if ( m_hasFgCol )
+    {
+        wxColour colFg = m_foregroundColour;
+        m_foregroundColour = wxNullColour;
+        SetForegroundColour(colFg);
+    }
+
+    if ( m_hasBgCol )
+    {
+        wxColour colBg = m_backgroundColour;
+        m_backgroundColour = wxNullColour;
+        SetBackgroundColour(colBg);
+    }
+    else
+    {
+        SetBackgroundColour(wxSystemSettings::GetColour(wxSYS_COLOUR_WINDOW));
+    }
+}
+
+wxBitmapComboBox::~wxBitmapComboBox()
+{
+    Clear();
+}
+
+// ----------------------------------------------------------------------------
+// Item manipulation
+// ----------------------------------------------------------------------------
+
+void wxBitmapComboBox::SetItemBitmap(unsigned int n, const wxBitmap& bitmap)
+{
+    OnAddBitmap(bitmap);
+    DoSetItemBitmap(n, bitmap);
+
+    if ( (int)n == GetSelection() )
+        Refresh();
+}
+
+int wxBitmapComboBox::Append(const wxString& item, const wxBitmap& bitmap)
+{
+    OnAddBitmap(bitmap);
+    const int n = wxComboBox::Append(item);
+    if ( n != wxNOT_FOUND )
+        DoSetItemBitmap(n, bitmap);
+    return n;
+}
+
+int wxBitmapComboBox::Append(const wxString& item, const wxBitmap& bitmap,
+                             void *clientData)
+{
+    OnAddBitmap(bitmap);
+    const int n = wxComboBox::Append(item, clientData);
+    if ( n != wxNOT_FOUND )
+        DoSetItemBitmap(n, bitmap);
+    return n;
+}
+
+int wxBitmapComboBox::Append(const wxString& item, const wxBitmap& bitmap,
+                             wxClientData *clientData)
+{
+    OnAddBitmap(bitmap);
+    const int n = wxComboBox::Append(item, clientData);
+    if ( n != wxNOT_FOUND )
+        DoSetItemBitmap(n, bitmap);
+    return n;
+}
+
+int wxBitmapComboBox::Insert(const wxString& item,
+                             const wxBitmap& bitmap,
+                             unsigned int pos)
+{
+    OnAddBitmap(bitmap);
+    const int n = wxComboBox::Insert(item, pos);
+    if ( n != wxNOT_FOUND )
+        DoSetItemBitmap(n, bitmap);
+    return n;
+}
+
+int wxBitmapComboBox::Insert(const wxString& item, const wxBitmap& bitmap,
+                             unsigned int pos, wxClientData *clientData)
+{
+    OnAddBitmap(bitmap);
+    const int n = wxComboBox::Insert(item, pos, clientData);
+    if ( n != wxNOT_FOUND )
+        DoSetItemBitmap(n, bitmap);
+    return n;
+}
+
+int wxBitmapComboBox::DoInsertItems(const wxArrayStringsAdapter & items,
+                                    unsigned int pos,
+                                    void **clientData, wxClientDataType type)
+{
+    const unsigned int numItems = items.GetCount();
+    const unsigned int countNew = GetCount() + numItems;
+
+    m_bitmaps.Alloc(countNew);
+
+    for ( unsigned int i = 0; i < numItems; i++ )
+    {
+        m_bitmaps.Insert(new wxBitmap(wxNullBitmap), pos + i);
+    }
+
+    const int index = wxComboBox::DoInsertItems(items, pos,
+                                                clientData, type);
+
+    if ( index == wxNOT_FOUND )
+    {
+        for ( int i = numItems-1; i >= 0; i-- )
+            BCBDoDeleteOneItem(pos + i);
+    }
+
+    return index;
+}
+
+bool wxBitmapComboBox::OnAddBitmap(const wxBitmap& bitmap)
+{
+    if ( wxBitmapComboBoxBase::OnAddBitmap(bitmap) )
+    {
+        // Need to recreate control for a new measureitem call?
+        int prevItemHeight = ::SendMessage(GetHwnd(), CB_GETITEMHEIGHT, 0, 0);
+
+        if ( prevItemHeight != MeasureItem(0) )
+            RecreateControl();
+
+        return true;
+    }
+    
+    return false;
+}
+
+void wxBitmapComboBox::DoClear()
+{
+    wxComboBox::DoClear();
+    wxBitmapComboBoxBase::BCBDoClear();
+}
+
+void wxBitmapComboBox::DoDeleteOneItem(unsigned int n)
+{
+    wxComboBox::DoDeleteOneItem(n);
+    wxBitmapComboBoxBase::BCBDoDeleteOneItem(n);
+}
+
+// ----------------------------------------------------------------------------
+// wxBitmapComboBox event handlers and such
+// ----------------------------------------------------------------------------
+
+void wxBitmapComboBox::OnSize(wxSizeEvent& event)
+{
+    // Prevent infinite looping
+    if ( !m_inResize )
+    {
+        m_inResize = true;
+        DetermineIndent();
+        m_inResize = false;
+    }
+
+    event.Skip();
+}
+
+// ----------------------------------------------------------------------------
+// wxBitmapComboBox miscellaneous
+// ----------------------------------------------------------------------------
+
+bool wxBitmapComboBox::SetFont(const wxFont& font)
+{
+    bool res = wxComboBox::SetFont(font);
+    UpdateInternals();
+    return res;
+}
+
+// ----------------------------------------------------------------------------
+// wxBitmapComboBox item drawing and measuring
+// ----------------------------------------------------------------------------
+
+bool wxBitmapComboBox::MSWOnDraw(WXDRAWITEMSTRUCT *item)
+{
+    LPDRAWITEMSTRUCT lpDrawItem = (LPDRAWITEMSTRUCT) item;
+    int pos = lpDrawItem->itemID;
+
+    // Draw default for item -1, which means 'focus rect only'
+    if ( pos == -1 )
+        return FALSE;
+
+    int flags = 0;                
+    if ( lpDrawItem->itemState & ODS_COMBOBOXEDIT )
+        flags |= wxODCB_PAINTING_CONTROL;
+    if ( lpDrawItem->itemState & ODS_SELECTED )
+        flags |= wxODCB_PAINTING_SELECTED;
+
+    wxString text;
+
+    if ( flags & wxODCB_PAINTING_CONTROL )
+    {
+        text = GetValue();
+        if ( !HasFlag(wxCB_READONLY) )
+            text.clear();
+    }
+    else
+    {
+        text = GetString(pos);
+    }
+
+    wxPaintDCEx dc(this, lpDrawItem->hDC);
+    wxRect rect = wxRectFromRECT(lpDrawItem->rcItem);
+    wxBitmapComboBoxBase::DrawBackground(dc, rect, pos, flags);
+    wxBitmapComboBoxBase::DrawItem(dc, rect, pos, text, flags);
+
+    // If the item has the focus, draw focus rectangle.
+    // Commented out since regular combo box doesn't
+    // seem to do it either.
+    //if ( lpDrawItem->itemState & ODS_FOCUS )
+    //    DrawFocusRect(lpDrawItem->hDC, &lpDrawItem->rcItem);
+
+    return TRUE;
+}
+
+bool wxBitmapComboBox::MSWOnMeasure(WXMEASUREITEMSTRUCT *item)
+{
+    LPMEASUREITEMSTRUCT lpMeasureItem = (LPMEASUREITEMSTRUCT) item;
+    int pos = lpMeasureItem->itemID;
+
+    lpMeasureItem->itemHeight = wxBitmapComboBoxBase::MeasureItem(pos);
+
+    return TRUE;
+}
+
+#endif // wxUSE_BITMAPCOMBOBOX