wxComboControl and wxOwnerDrawnComboBox (patch 1479938)

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@39113 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin
2006-05-08 23:42:45 +00:00
parent cd4e32afe7
commit a340b80d8a
27 changed files with 6416 additions and 581 deletions

View File

@@ -2148,6 +2148,7 @@ COND_TOOLKIT_MSW_GUI_HDR = \
wx/msw/clipbrd.h \
wx/msw/colordlg.h \
wx/msw/colour.h \
wx/msw/combo.h \
wx/msw/combobox.h \
wx/msw/control.h \
wx/msw/cursor.h \
@@ -2247,7 +2248,6 @@ COND_TOOLKIT_MSW_GUI_HDR = \
wx/msw/checklst.h \
wx/msw/fdrepdlg.h \
wx/msw/fontdlg.h \
wx/msw/helpbest.h \
wx/msw/ole/automtn.h \
wx/msw/ole/uuid.h
@COND_TOOLKIT_MSW@GUI_HDR = $(COND_TOOLKIT_MSW_GUI_HDR)
@@ -2339,6 +2339,7 @@ COND_TOOLKIT_WINCE_GUI_HDR = \
wx/msw/clipbrd.h \
wx/msw/colordlg.h \
wx/msw/colour.h \
wx/msw/combo.h \
wx/msw/combobox.h \
wx/msw/control.h \
wx/msw/cursor.h \
@@ -2491,6 +2492,7 @@ COND_WXUNIV_0_ADVANCED_HDR = \
wx/grid.h \
wx/joystick.h \
wx/laywin.h \
wx/odcombo.h \
wx/propdlg.h \
wx/sashwin.h \
wx/sound.h \
@@ -2529,6 +2531,7 @@ COND_WXUNIV_1_ADVANCED_HDR = \
wx/grid.h \
wx/joystick.h \
wx/laywin.h \
wx/odcombo.h \
wx/propdlg.h \
wx/sashwin.h \
wx/sound.h \
@@ -2608,6 +2611,7 @@ COND_USE_GUI_1_ALL_GUI_HEADERS = \
wx/choicdlg.h \
wx/choice.h \
wx/cmndata.h \
wx/combo.h \
wx/combobox.h \
wx/control.h \
wx/ctrlsub.h \
@@ -2629,6 +2633,7 @@ COND_USE_GUI_1_ALL_GUI_HEADERS = \
wx/generic/accel.h \
wx/generic/choicdgg.h \
wx/generic/colrdlgg.h \
wx/generic/combo.h \
wx/generic/dcpsg.h \
wx/generic/dirctrlg.h \
wx/generic/dragimgg.h \
@@ -2796,6 +2801,7 @@ COND_USE_GUI_1_ALL_GUI_HEADERS = \
wx/html/winpars.h \
wx/wxhtml.h \
wx/htmllbox.h \
wx/msw/helpbest.h \
$(OPENGL_HDR) \
wx/debugrpt.h \
wx/dbgrid.h \
@@ -3139,6 +3145,7 @@ COND_USE_GUI_1_WXUNIV_0___CORE_SRC_OBJECTS = \
monodll_choiccmn.o \
monodll_clipcmn.o \
monodll_colourcmn.o \
monodll_combocmn.o \
monodll_cmdproc.o \
monodll_cmndata.o \
monodll_containr.o \
@@ -3209,6 +3216,7 @@ COND_USE_GUI_1_WXUNIV_0___CORE_SRC_OBJECTS = \
monodll_busyinfo.o \
monodll_choicdgg.o \
monodll_choicbkg.o \
monodll_combog.o \
monodll_dcpsg.o \
monodll_dirctrlg.o \
monodll_dragimgg.o \
@@ -3291,6 +3299,7 @@ COND_USE_GUI_1_WXUNIV_1___CORE_SRC_OBJECTS = \
monodll_choiccmn.o \
monodll_clipcmn.o \
monodll_colourcmn.o \
monodll_combocmn.o \
monodll_cmdproc.o \
monodll_cmndata.o \
monodll_containr.o \
@@ -3361,6 +3370,7 @@ COND_USE_GUI_1_WXUNIV_1___CORE_SRC_OBJECTS = \
monodll_busyinfo.o \
monodll_choicdgg.o \
monodll_choicbkg.o \
monodll_combog.o \
monodll_dcpsg.o \
monodll_dirctrlg.o \
monodll_dragimgg.o \
@@ -3989,6 +3999,7 @@ COND_TOOLKIT_MSW___GUI_SRC_OBJECTS = \
monodll_checkbox.o \
monodll_choice.o \
monodll_colordlg.o \
monodll_combo.o \
monodll_combobox.o \
monodll_control.o \
monodll_dialog.o \
@@ -4122,6 +4133,7 @@ COND_TOOLKIT_WINCE___GUI_SRC_OBJECTS = \
monodll_checkbox.o \
monodll_choice.o \
monodll_colordlg.o \
monodll_combo.o \
monodll_combobox.o \
monodll_control.o \
monodll_dialog.o \
@@ -4450,6 +4462,7 @@ COND_WXUNIV_0___ADVANCED_SRC_OBJECTS = \
monodll_gridsel.o \
monodll_helpext.o \
monodll_laywin.o \
monodll_odcombo.o \
monodll_propdlg.o \
monodll_sashwin.o \
monodll_splash.o \
@@ -4474,6 +4487,7 @@ COND_WXUNIV_1___ADVANCED_SRC_OBJECTS = \
monodll_gridsel.o \
monodll_helpext.o \
monodll_laywin.o \
monodll_odcombo.o \
monodll_propdlg.o \
monodll_sashwin.o \
monodll_splash.o \
@@ -4766,6 +4780,7 @@ COND_USE_GUI_1_WXUNIV_0___CORE_SRC_OBJECTS_1 = \
monolib_choiccmn.o \
monolib_clipcmn.o \
monolib_colourcmn.o \
monolib_combocmn.o \
monolib_cmdproc.o \
monolib_cmndata.o \
monolib_containr.o \
@@ -4836,6 +4851,7 @@ COND_USE_GUI_1_WXUNIV_0___CORE_SRC_OBJECTS_1 = \
monolib_busyinfo.o \
monolib_choicdgg.o \
monolib_choicbkg.o \
monolib_combog.o \
monolib_dcpsg.o \
monolib_dirctrlg.o \
monolib_dragimgg.o \
@@ -4918,6 +4934,7 @@ COND_USE_GUI_1_WXUNIV_1___CORE_SRC_OBJECTS_1 = \
monolib_choiccmn.o \
monolib_clipcmn.o \
monolib_colourcmn.o \
monolib_combocmn.o \
monolib_cmdproc.o \
monolib_cmndata.o \
monolib_containr.o \
@@ -4988,6 +5005,7 @@ COND_USE_GUI_1_WXUNIV_1___CORE_SRC_OBJECTS_1 = \
monolib_busyinfo.o \
monolib_choicdgg.o \
monolib_choicbkg.o \
monolib_combog.o \
monolib_dcpsg.o \
monolib_dirctrlg.o \
monolib_dragimgg.o \
@@ -5617,6 +5635,7 @@ COND_TOOLKIT_MSW___GUI_SRC_OBJECTS_1 = \
monolib_checkbox.o \
monolib_choice.o \
monolib_colordlg.o \
monolib_combo.o \
monolib_combobox.o \
monolib_control.o \
monolib_dialog.o \
@@ -5750,6 +5769,7 @@ COND_TOOLKIT_WINCE___GUI_SRC_OBJECTS_1 = \
monolib_checkbox.o \
monolib_choice.o \
monolib_colordlg.o \
monolib_combo.o \
monolib_combobox.o \
monolib_control.o \
monolib_dialog.o \
@@ -6079,6 +6099,7 @@ COND_WXUNIV_0___ADVANCED_SRC_OBJECTS_1 = \
monolib_gridsel.o \
monolib_helpext.o \
monolib_laywin.o \
monolib_odcombo.o \
monolib_propdlg.o \
monolib_sashwin.o \
monolib_splash.o \
@@ -6103,6 +6124,7 @@ COND_WXUNIV_1___ADVANCED_SRC_OBJECTS_1 = \
monolib_gridsel.o \
monolib_helpext.o \
monolib_laywin.o \
monolib_odcombo.o \
monolib_propdlg.o \
monolib_sashwin.o \
monolib_splash.o \
@@ -6627,6 +6649,7 @@ COND_USE_GUI_1_WXUNIV_0___CORE_SRC_OBJECTS_2 = \
coredll_choiccmn.o \
coredll_clipcmn.o \
coredll_colourcmn.o \
coredll_combocmn.o \
coredll_cmdproc.o \
coredll_cmndata.o \
coredll_containr.o \
@@ -6697,6 +6720,7 @@ COND_USE_GUI_1_WXUNIV_0___CORE_SRC_OBJECTS_2 = \
coredll_busyinfo.o \
coredll_choicdgg.o \
coredll_choicbkg.o \
coredll_combog.o \
coredll_dcpsg.o \
coredll_dirctrlg.o \
coredll_dragimgg.o \
@@ -6779,6 +6803,7 @@ COND_USE_GUI_1_WXUNIV_1___CORE_SRC_OBJECTS_2 = \
coredll_choiccmn.o \
coredll_clipcmn.o \
coredll_colourcmn.o \
coredll_combocmn.o \
coredll_cmdproc.o \
coredll_cmndata.o \
coredll_containr.o \
@@ -6849,6 +6874,7 @@ COND_USE_GUI_1_WXUNIV_1___CORE_SRC_OBJECTS_2 = \
coredll_busyinfo.o \
coredll_choicdgg.o \
coredll_choicbkg.o \
coredll_combog.o \
coredll_dcpsg.o \
coredll_dirctrlg.o \
coredll_dragimgg.o \
@@ -7478,6 +7504,7 @@ COND_TOOLKIT_MSW___GUI_SRC_OBJECTS_2 = \
coredll_checkbox.o \
coredll_choice.o \
coredll_colordlg.o \
coredll_combo.o \
coredll_combobox.o \
coredll_control.o \
coredll_dialog.o \
@@ -7611,6 +7638,7 @@ COND_TOOLKIT_WINCE___GUI_SRC_OBJECTS_2 = \
coredll_checkbox.o \
coredll_choice.o \
coredll_colordlg.o \
coredll_combo.o \
coredll_combobox.o \
coredll_control.o \
coredll_dialog.o \
@@ -7960,6 +7988,7 @@ COND_USE_GUI_1_WXUNIV_0___CORE_SRC_OBJECTS_3 = \
corelib_choiccmn.o \
corelib_clipcmn.o \
corelib_colourcmn.o \
corelib_combocmn.o \
corelib_cmdproc.o \
corelib_cmndata.o \
corelib_containr.o \
@@ -8030,6 +8059,7 @@ COND_USE_GUI_1_WXUNIV_0___CORE_SRC_OBJECTS_3 = \
corelib_busyinfo.o \
corelib_choicdgg.o \
corelib_choicbkg.o \
corelib_combog.o \
corelib_dcpsg.o \
corelib_dirctrlg.o \
corelib_dragimgg.o \
@@ -8112,6 +8142,7 @@ COND_USE_GUI_1_WXUNIV_1___CORE_SRC_OBJECTS_3 = \
corelib_choiccmn.o \
corelib_clipcmn.o \
corelib_colourcmn.o \
corelib_combocmn.o \
corelib_cmdproc.o \
corelib_cmndata.o \
corelib_containr.o \
@@ -8182,6 +8213,7 @@ COND_USE_GUI_1_WXUNIV_1___CORE_SRC_OBJECTS_3 = \
corelib_busyinfo.o \
corelib_choicdgg.o \
corelib_choicbkg.o \
corelib_combog.o \
corelib_dcpsg.o \
corelib_dirctrlg.o \
corelib_dragimgg.o \
@@ -8811,6 +8843,7 @@ COND_TOOLKIT_MSW___GUI_SRC_OBJECTS_3 = \
corelib_checkbox.o \
corelib_choice.o \
corelib_colordlg.o \
corelib_combo.o \
corelib_combobox.o \
corelib_control.o \
corelib_dialog.o \
@@ -8944,6 +8977,7 @@ COND_TOOLKIT_WINCE___GUI_SRC_OBJECTS_3 = \
corelib_checkbox.o \
corelib_choice.o \
corelib_colordlg.o \
corelib_combo.o \
corelib_combobox.o \
corelib_control.o \
corelib_dialog.o \
@@ -9319,6 +9353,7 @@ COND_WXUNIV_0___ADVANCED_SRC_OBJECTS_2 = \
advdll_gridsel.o \
advdll_helpext.o \
advdll_laywin.o \
advdll_odcombo.o \
advdll_propdlg.o \
advdll_sashwin.o \
advdll_splash.o \
@@ -9343,6 +9378,7 @@ COND_WXUNIV_1___ADVANCED_SRC_OBJECTS_2 = \
advdll_gridsel.o \
advdll_helpext.o \
advdll_laywin.o \
advdll_odcombo.o \
advdll_propdlg.o \
advdll_sashwin.o \
advdll_splash.o \
@@ -9382,6 +9418,7 @@ COND_WXUNIV_0___ADVANCED_SRC_OBJECTS_3 = \
advlib_gridsel.o \
advlib_helpext.o \
advlib_laywin.o \
advlib_odcombo.o \
advlib_propdlg.o \
advlib_sashwin.o \
advlib_splash.o \
@@ -9406,6 +9443,7 @@ COND_WXUNIV_1___ADVANCED_SRC_OBJECTS_3 = \
advlib_gridsel.o \
advlib_helpext.o \
advlib_laywin.o \
advlib_odcombo.o \
advlib_propdlg.o \
advlib_sashwin.o \
advlib_splash.o \
@@ -14328,6 +14366,12 @@ monodll_sound_sdl.o: $(srcdir)/src/unix/sound_sdl.cpp $(MONODLL_ODEP)
@COND_USE_GUI_1_WXUNIV_1@monodll_toolbar.o: $(srcdir)/src/univ/toolbar.cpp $(MONODLL_ODEP)
@COND_USE_GUI_1_WXUNIV_1@ $(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/univ/toolbar.cpp
@COND_TOOLKIT_MSW_USE_GUI_1_WXUNIV_0@monodll_combo.o: $(srcdir)/src/msw/combo.cpp $(MONODLL_ODEP)
@COND_TOOLKIT_MSW_USE_GUI_1_WXUNIV_0@ $(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/msw/combo.cpp
@COND_TOOLKIT_WINCE_USE_GUI_1_WXUNIV_0@monodll_combo.o: $(srcdir)/src/msw/combo.cpp $(MONODLL_ODEP)
@COND_TOOLKIT_WINCE_USE_GUI_1_WXUNIV_0@ $(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/msw/combo.cpp
@COND_TOOLKIT_MSW_USE_GUI_1_WXUNIV_0@monodll_dragimag.o: $(srcdir)/src/msw/dragimag.cpp $(MONODLL_ODEP)
@COND_TOOLKIT_MSW_USE_GUI_1_WXUNIV_0@ $(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/msw/dragimag.cpp
@@ -14487,6 +14531,9 @@ monodll_sound_sdl.o: $(srcdir)/src/unix/sound_sdl.cpp $(MONODLL_ODEP)
@COND_USE_GUI_1@monodll_colourcmn.o: $(srcdir)/src/common/colourcmn.cpp $(MONODLL_ODEP)
@COND_USE_GUI_1@ $(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/common/colourcmn.cpp
@COND_USE_GUI_1@monodll_combocmn.o: $(srcdir)/src/common/combocmn.cpp $(MONODLL_ODEP)
@COND_USE_GUI_1@ $(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/common/combocmn.cpp
@COND_USE_GUI_1@monodll_cmdproc.o: $(srcdir)/src/common/cmdproc.cpp $(MONODLL_ODEP)
@COND_USE_GUI_1@ $(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/common/cmdproc.cpp
@@ -14697,6 +14744,9 @@ monodll_sound_sdl.o: $(srcdir)/src/unix/sound_sdl.cpp $(MONODLL_ODEP)
@COND_USE_GUI_1@monodll_choicbkg.o: $(srcdir)/src/generic/choicbkg.cpp $(MONODLL_ODEP)
@COND_USE_GUI_1@ $(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/generic/choicbkg.cpp
@COND_USE_GUI_1@monodll_combog.o: $(srcdir)/src/generic/combog.cpp $(MONODLL_ODEP)
@COND_USE_GUI_1@ $(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/generic/combog.cpp
@COND_USE_GUI_1@monodll_dcpsg.o: $(srcdir)/src/generic/dcpsg.cpp $(MONODLL_ODEP)
@COND_USE_GUI_1@ $(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/generic/dcpsg.cpp
@@ -14790,6 +14840,9 @@ monodll_sound_sdl.o: $(srcdir)/src/unix/sound_sdl.cpp $(MONODLL_ODEP)
@COND_USE_GUI_1@monodll_laywin.o: $(srcdir)/src/generic/laywin.cpp $(MONODLL_ODEP)
@COND_USE_GUI_1@ $(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/generic/laywin.cpp
@COND_USE_GUI_1@monodll_odcombo.o: $(srcdir)/src/generic/odcombo.cpp $(MONODLL_ODEP)
@COND_USE_GUI_1@ $(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/generic/odcombo.cpp
@COND_USE_GUI_1@monodll_propdlg.o: $(srcdir)/src/generic/propdlg.cpp $(MONODLL_ODEP)
@COND_USE_GUI_1@ $(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/generic/propdlg.cpp
@@ -18123,6 +18176,12 @@ monolib_sound_sdl.o: $(srcdir)/src/unix/sound_sdl.cpp $(MONOLIB_ODEP)
@COND_USE_GUI_1_WXUNIV_1@monolib_toolbar.o: $(srcdir)/src/univ/toolbar.cpp $(MONOLIB_ODEP)
@COND_USE_GUI_1_WXUNIV_1@ $(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/univ/toolbar.cpp
@COND_TOOLKIT_MSW_USE_GUI_1_WXUNIV_0@monolib_combo.o: $(srcdir)/src/msw/combo.cpp $(MONOLIB_ODEP)
@COND_TOOLKIT_MSW_USE_GUI_1_WXUNIV_0@ $(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/msw/combo.cpp
@COND_TOOLKIT_WINCE_USE_GUI_1_WXUNIV_0@monolib_combo.o: $(srcdir)/src/msw/combo.cpp $(MONOLIB_ODEP)
@COND_TOOLKIT_WINCE_USE_GUI_1_WXUNIV_0@ $(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/msw/combo.cpp
@COND_TOOLKIT_MSW_USE_GUI_1_WXUNIV_0@monolib_dragimag.o: $(srcdir)/src/msw/dragimag.cpp $(MONOLIB_ODEP)
@COND_TOOLKIT_MSW_USE_GUI_1_WXUNIV_0@ $(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/msw/dragimag.cpp
@@ -18282,6 +18341,9 @@ monolib_sound_sdl.o: $(srcdir)/src/unix/sound_sdl.cpp $(MONOLIB_ODEP)
@COND_USE_GUI_1@monolib_colourcmn.o: $(srcdir)/src/common/colourcmn.cpp $(MONOLIB_ODEP)
@COND_USE_GUI_1@ $(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/common/colourcmn.cpp
@COND_USE_GUI_1@monolib_combocmn.o: $(srcdir)/src/common/combocmn.cpp $(MONOLIB_ODEP)
@COND_USE_GUI_1@ $(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/common/combocmn.cpp
@COND_USE_GUI_1@monolib_cmdproc.o: $(srcdir)/src/common/cmdproc.cpp $(MONOLIB_ODEP)
@COND_USE_GUI_1@ $(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/common/cmdproc.cpp
@@ -18492,6 +18554,9 @@ monolib_sound_sdl.o: $(srcdir)/src/unix/sound_sdl.cpp $(MONOLIB_ODEP)
@COND_USE_GUI_1@monolib_choicbkg.o: $(srcdir)/src/generic/choicbkg.cpp $(MONOLIB_ODEP)
@COND_USE_GUI_1@ $(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/generic/choicbkg.cpp
@COND_USE_GUI_1@monolib_combog.o: $(srcdir)/src/generic/combog.cpp $(MONOLIB_ODEP)
@COND_USE_GUI_1@ $(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/generic/combog.cpp
@COND_USE_GUI_1@monolib_dcpsg.o: $(srcdir)/src/generic/dcpsg.cpp $(MONOLIB_ODEP)
@COND_USE_GUI_1@ $(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/generic/dcpsg.cpp
@@ -18585,6 +18650,9 @@ monolib_sound_sdl.o: $(srcdir)/src/unix/sound_sdl.cpp $(MONOLIB_ODEP)
@COND_USE_GUI_1@monolib_laywin.o: $(srcdir)/src/generic/laywin.cpp $(MONOLIB_ODEP)
@COND_USE_GUI_1@ $(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/generic/laywin.cpp
@COND_USE_GUI_1@monolib_odcombo.o: $(srcdir)/src/generic/odcombo.cpp $(MONOLIB_ODEP)
@COND_USE_GUI_1@ $(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/generic/odcombo.cpp
@COND_USE_GUI_1@monolib_propdlg.o: $(srcdir)/src/generic/propdlg.cpp $(MONOLIB_ODEP)
@COND_USE_GUI_1@ $(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/generic/propdlg.cpp
@@ -22338,6 +22406,12 @@ coredll_win32.o: $(srcdir)/src/univ/themes/win32.cpp $(COREDLL_ODEP)
@COND_USE_GUI_1_WXUNIV_1@coredll_toolbar.o: $(srcdir)/src/univ/toolbar.cpp $(COREDLL_ODEP)
@COND_USE_GUI_1_WXUNIV_1@ $(CXXC) -c -o $@ $(COREDLL_CXXFLAGS) $(srcdir)/src/univ/toolbar.cpp
@COND_TOOLKIT_MSW_USE_GUI_1_WXUNIV_0@coredll_combo.o: $(srcdir)/src/msw/combo.cpp $(COREDLL_ODEP)
@COND_TOOLKIT_MSW_USE_GUI_1_WXUNIV_0@ $(CXXC) -c -o $@ $(COREDLL_CXXFLAGS) $(srcdir)/src/msw/combo.cpp
@COND_TOOLKIT_WINCE_USE_GUI_1_WXUNIV_0@coredll_combo.o: $(srcdir)/src/msw/combo.cpp $(COREDLL_ODEP)
@COND_TOOLKIT_WINCE_USE_GUI_1_WXUNIV_0@ $(CXXC) -c -o $@ $(COREDLL_CXXFLAGS) $(srcdir)/src/msw/combo.cpp
@COND_TOOLKIT_MSW_USE_GUI_1_WXUNIV_0@coredll_dragimag.o: $(srcdir)/src/msw/dragimag.cpp $(COREDLL_ODEP)
@COND_TOOLKIT_MSW_USE_GUI_1_WXUNIV_0@ $(CXXC) -c -o $@ $(COREDLL_CXXFLAGS) $(srcdir)/src/msw/dragimag.cpp
@@ -22464,6 +22538,9 @@ coredll_win32.o: $(srcdir)/src/univ/themes/win32.cpp $(COREDLL_ODEP)
@COND_USE_GUI_1@coredll_colourcmn.o: $(srcdir)/src/common/colourcmn.cpp $(COREDLL_ODEP)
@COND_USE_GUI_1@ $(CXXC) -c -o $@ $(COREDLL_CXXFLAGS) $(srcdir)/src/common/colourcmn.cpp
@COND_USE_GUI_1@coredll_combocmn.o: $(srcdir)/src/common/combocmn.cpp $(COREDLL_ODEP)
@COND_USE_GUI_1@ $(CXXC) -c -o $@ $(COREDLL_CXXFLAGS) $(srcdir)/src/common/combocmn.cpp
@COND_USE_GUI_1@coredll_cmdproc.o: $(srcdir)/src/common/cmdproc.cpp $(COREDLL_ODEP)
@COND_USE_GUI_1@ $(CXXC) -c -o $@ $(COREDLL_CXXFLAGS) $(srcdir)/src/common/cmdproc.cpp
@@ -22674,6 +22751,9 @@ coredll_win32.o: $(srcdir)/src/univ/themes/win32.cpp $(COREDLL_ODEP)
@COND_USE_GUI_1@coredll_choicbkg.o: $(srcdir)/src/generic/choicbkg.cpp $(COREDLL_ODEP)
@COND_USE_GUI_1@ $(CXXC) -c -o $@ $(COREDLL_CXXFLAGS) $(srcdir)/src/generic/choicbkg.cpp
@COND_USE_GUI_1@coredll_combog.o: $(srcdir)/src/generic/combog.cpp $(COREDLL_ODEP)
@COND_USE_GUI_1@ $(CXXC) -c -o $@ $(COREDLL_CXXFLAGS) $(srcdir)/src/generic/combog.cpp
@COND_USE_GUI_1@coredll_dcpsg.o: $(srcdir)/src/generic/dcpsg.cpp $(COREDLL_ODEP)
@COND_USE_GUI_1@ $(CXXC) -c -o $@ $(COREDLL_CXXFLAGS) $(srcdir)/src/generic/dcpsg.cpp
@@ -25113,6 +25193,12 @@ corelib_win32.o: $(srcdir)/src/univ/themes/win32.cpp $(CORELIB_ODEP)
@COND_USE_GUI_1_WXUNIV_1@corelib_toolbar.o: $(srcdir)/src/univ/toolbar.cpp $(CORELIB_ODEP)
@COND_USE_GUI_1_WXUNIV_1@ $(CXXC) -c -o $@ $(CORELIB_CXXFLAGS) $(srcdir)/src/univ/toolbar.cpp
@COND_TOOLKIT_MSW_USE_GUI_1_WXUNIV_0@corelib_combo.o: $(srcdir)/src/msw/combo.cpp $(CORELIB_ODEP)
@COND_TOOLKIT_MSW_USE_GUI_1_WXUNIV_0@ $(CXXC) -c -o $@ $(CORELIB_CXXFLAGS) $(srcdir)/src/msw/combo.cpp
@COND_TOOLKIT_WINCE_USE_GUI_1_WXUNIV_0@corelib_combo.o: $(srcdir)/src/msw/combo.cpp $(CORELIB_ODEP)
@COND_TOOLKIT_WINCE_USE_GUI_1_WXUNIV_0@ $(CXXC) -c -o $@ $(CORELIB_CXXFLAGS) $(srcdir)/src/msw/combo.cpp
@COND_TOOLKIT_MSW_USE_GUI_1_WXUNIV_0@corelib_dragimag.o: $(srcdir)/src/msw/dragimag.cpp $(CORELIB_ODEP)
@COND_TOOLKIT_MSW_USE_GUI_1_WXUNIV_0@ $(CXXC) -c -o $@ $(CORELIB_CXXFLAGS) $(srcdir)/src/msw/dragimag.cpp
@@ -25239,6 +25325,9 @@ corelib_win32.o: $(srcdir)/src/univ/themes/win32.cpp $(CORELIB_ODEP)
@COND_USE_GUI_1@corelib_colourcmn.o: $(srcdir)/src/common/colourcmn.cpp $(CORELIB_ODEP)
@COND_USE_GUI_1@ $(CXXC) -c -o $@ $(CORELIB_CXXFLAGS) $(srcdir)/src/common/colourcmn.cpp
@COND_USE_GUI_1@corelib_combocmn.o: $(srcdir)/src/common/combocmn.cpp $(CORELIB_ODEP)
@COND_USE_GUI_1@ $(CXXC) -c -o $@ $(CORELIB_CXXFLAGS) $(srcdir)/src/common/combocmn.cpp
@COND_USE_GUI_1@corelib_cmdproc.o: $(srcdir)/src/common/cmdproc.cpp $(CORELIB_ODEP)
@COND_USE_GUI_1@ $(CXXC) -c -o $@ $(CORELIB_CXXFLAGS) $(srcdir)/src/common/cmdproc.cpp
@@ -25449,6 +25538,9 @@ corelib_win32.o: $(srcdir)/src/univ/themes/win32.cpp $(CORELIB_ODEP)
@COND_USE_GUI_1@corelib_choicbkg.o: $(srcdir)/src/generic/choicbkg.cpp $(CORELIB_ODEP)
@COND_USE_GUI_1@ $(CXXC) -c -o $@ $(CORELIB_CXXFLAGS) $(srcdir)/src/generic/choicbkg.cpp
@COND_USE_GUI_1@corelib_combog.o: $(srcdir)/src/generic/combog.cpp $(CORELIB_ODEP)
@COND_USE_GUI_1@ $(CXXC) -c -o $@ $(CORELIB_CXXFLAGS) $(srcdir)/src/generic/combog.cpp
@COND_USE_GUI_1@corelib_dcpsg.o: $(srcdir)/src/generic/dcpsg.cpp $(CORELIB_ODEP)
@COND_USE_GUI_1@ $(CXXC) -c -o $@ $(CORELIB_CXXFLAGS) $(srcdir)/src/generic/dcpsg.cpp
@@ -25548,6 +25640,9 @@ advdll_helpext.o: $(srcdir)/src/generic/helpext.cpp $(ADVDLL_ODEP)
advdll_laywin.o: $(srcdir)/src/generic/laywin.cpp $(ADVDLL_ODEP)
$(CXXC) -c -o $@ $(ADVDLL_CXXFLAGS) $(srcdir)/src/generic/laywin.cpp
advdll_odcombo.o: $(srcdir)/src/generic/odcombo.cpp $(ADVDLL_ODEP)
$(CXXC) -c -o $@ $(ADVDLL_CXXFLAGS) $(srcdir)/src/generic/odcombo.cpp
advdll_propdlg.o: $(srcdir)/src/generic/propdlg.cpp $(ADVDLL_ODEP)
$(CXXC) -c -o $@ $(ADVDLL_CXXFLAGS) $(srcdir)/src/generic/propdlg.cpp
@@ -25725,6 +25820,9 @@ advlib_helpext.o: $(srcdir)/src/generic/helpext.cpp $(ADVLIB_ODEP)
advlib_laywin.o: $(srcdir)/src/generic/laywin.cpp $(ADVLIB_ODEP)
$(CXXC) -c -o $@ $(ADVLIB_CXXFLAGS) $(srcdir)/src/generic/laywin.cpp
advlib_odcombo.o: $(srcdir)/src/generic/odcombo.cpp $(ADVLIB_ODEP)
$(CXXC) -c -o $@ $(ADVLIB_CXXFLAGS) $(srcdir)/src/generic/odcombo.cpp
advlib_propdlg.o: $(srcdir)/src/generic/propdlg.cpp $(ADVLIB_ODEP)
$(CXXC) -c -o $@ $(ADVLIB_CXXFLAGS) $(srcdir)/src/generic/propdlg.cpp

View File

@@ -553,6 +553,7 @@ IMPORTANT: please read docs/tech/tn0016.txt before modifying this file!
src/common/choiccmn.cpp
src/common/clipcmn.cpp
src/common/colourcmn.cpp
src/common/combocmn.cpp
src/common/cmdproc.cpp
src/common/cmndata.cpp
src/common/containr.cpp
@@ -623,6 +624,7 @@ IMPORTANT: please read docs/tech/tn0016.txt before modifying this file!
src/generic/busyinfo.cpp
src/generic/choicdgg.cpp
src/generic/choicbkg.cpp
src/generic/combog.cpp
src/generic/dcpsg.cpp
src/generic/dirctrlg.cpp
src/generic/dragimgg.cpp
@@ -654,6 +656,7 @@ IMPORTANT: please read docs/tech/tn0016.txt before modifying this file!
wx/choicdlg.h
wx/choice.h
wx/cmndata.h
wx/combo.h
wx/combobox.h
wx/control.h
wx/ctrlsub.h
@@ -675,6 +678,7 @@ IMPORTANT: please read docs/tech/tn0016.txt before modifying this file!
wx/generic/accel.h
wx/generic/choicdgg.h
wx/generic/colrdlgg.h
wx/generic/combo.h
wx/generic/dcpsg.h
wx/generic/dirctrlg.h
wx/generic/dragimgg.h
@@ -1481,6 +1485,7 @@ IMPORTANT: please read docs/tech/tn0016.txt before modifying this file!
src/msw/checkbox.cpp
src/msw/choice.cpp
src/msw/colordlg.cpp
src/msw/combo.cpp
src/msw/combobox.cpp
src/msw/control.cpp
src/msw/dialog.cpp
@@ -1532,6 +1537,7 @@ IMPORTANT: please read docs/tech/tn0016.txt before modifying this file!
wx/msw/clipbrd.h
wx/msw/colordlg.h
wx/msw/colour.h
wx/msw/combo.h
wx/msw/combobox.h
wx/msw/control.h
wx/msw/cursor.h
@@ -2518,6 +2524,7 @@ IMPORTANT: please read docs/tech/tn0016.txt before modifying this file!
src/generic/gridsel.cpp
src/generic/helpext.cpp
src/generic/laywin.cpp
src/generic/odcombo.cpp
src/generic/propdlg.cpp
src/generic/sashwin.cpp
src/generic/splash.cpp
@@ -2551,6 +2558,7 @@ IMPORTANT: please read docs/tech/tn0016.txt before modifying this file!
wx/grid.h
wx/joystick.h
wx/laywin.h
wx/odcombo.h
wx/propdlg.h
wx/sashwin.h
wx/sound.h

View File

@@ -1203,6 +1203,7 @@ ____CORE_SRC_FILENAMES_OBJECTS = \
$(OBJS)\monodll_checkbox.obj \
$(OBJS)\monodll_choice.obj \
$(OBJS)\monodll_colordlg.obj \
$(OBJS)\monodll_combo.obj \
$(OBJS)\monodll_combobox.obj \
$(OBJS)\monodll_control.obj \
$(OBJS)\monodll_dialog.obj \
@@ -1252,6 +1253,7 @@ ____CORE_SRC_FILENAMES_OBJECTS = \
$(OBJS)\monodll_choiccmn.obj \
$(OBJS)\monodll_clipcmn.obj \
$(OBJS)\monodll_colourcmn.obj \
$(OBJS)\monodll_combocmn.obj \
$(OBJS)\monodll_cmdproc.obj \
$(OBJS)\monodll_cmndata.obj \
$(OBJS)\monodll_containr.obj \
@@ -1322,6 +1324,7 @@ ____CORE_SRC_FILENAMES_OBJECTS = \
$(OBJS)\monodll_busyinfo.obj \
$(OBJS)\monodll_choicdgg.obj \
$(OBJS)\monodll_choicbkg.obj \
$(OBJS)\monodll_combog.obj \
$(OBJS)\monodll_dcpsg.obj \
$(OBJS)\monodll_dirctrlg.obj \
$(OBJS)\monodll_dragimgg.obj \
@@ -1452,6 +1455,7 @@ ____CORE_SRC_FILENAMES_OBJECTS = \
$(OBJS)\monodll_choiccmn.obj \
$(OBJS)\monodll_clipcmn.obj \
$(OBJS)\monodll_colourcmn.obj \
$(OBJS)\monodll_combocmn.obj \
$(OBJS)\monodll_cmdproc.obj \
$(OBJS)\monodll_cmndata.obj \
$(OBJS)\monodll_containr.obj \
@@ -1522,6 +1526,7 @@ ____CORE_SRC_FILENAMES_OBJECTS = \
$(OBJS)\monodll_busyinfo.obj \
$(OBJS)\monodll_choicdgg.obj \
$(OBJS)\monodll_choicbkg.obj \
$(OBJS)\monodll_combog.obj \
$(OBJS)\monodll_dcpsg.obj \
$(OBJS)\monodll_dirctrlg.obj \
$(OBJS)\monodll_dragimgg.obj \
@@ -1556,6 +1561,7 @@ ____ADVANCED_SRC_FILENAMES_OBJECTS = \
$(OBJS)\monodll_gridsel.obj \
$(OBJS)\monodll_helpext.obj \
$(OBJS)\monodll_laywin.obj \
$(OBJS)\monodll_odcombo.obj \
$(OBJS)\monodll_propdlg.obj \
$(OBJS)\monodll_sashwin.obj \
$(OBJS)\monodll_splash.obj \
@@ -1584,6 +1590,7 @@ ____ADVANCED_SRC_FILENAMES_OBJECTS = \
$(OBJS)\monodll_gridsel.obj \
$(OBJS)\monodll_helpext.obj \
$(OBJS)\monodll_laywin.obj \
$(OBJS)\monodll_odcombo.obj \
$(OBJS)\monodll_propdlg.obj \
$(OBJS)\monodll_sashwin.obj \
$(OBJS)\monodll_splash.obj \
@@ -1744,6 +1751,7 @@ ____CORE_SRC_FILENAMES_1_OBJECTS = \
$(OBJS)\monolib_checkbox.obj \
$(OBJS)\monolib_choice.obj \
$(OBJS)\monolib_colordlg.obj \
$(OBJS)\monolib_combo.obj \
$(OBJS)\monolib_combobox.obj \
$(OBJS)\monolib_control.obj \
$(OBJS)\monolib_dialog.obj \
@@ -1793,6 +1801,7 @@ ____CORE_SRC_FILENAMES_1_OBJECTS = \
$(OBJS)\monolib_choiccmn.obj \
$(OBJS)\monolib_clipcmn.obj \
$(OBJS)\monolib_colourcmn.obj \
$(OBJS)\monolib_combocmn.obj \
$(OBJS)\monolib_cmdproc.obj \
$(OBJS)\monolib_cmndata.obj \
$(OBJS)\monolib_containr.obj \
@@ -1863,6 +1872,7 @@ ____CORE_SRC_FILENAMES_1_OBJECTS = \
$(OBJS)\monolib_busyinfo.obj \
$(OBJS)\monolib_choicdgg.obj \
$(OBJS)\monolib_choicbkg.obj \
$(OBJS)\monolib_combog.obj \
$(OBJS)\monolib_dcpsg.obj \
$(OBJS)\monolib_dirctrlg.obj \
$(OBJS)\monolib_dragimgg.obj \
@@ -1993,6 +2003,7 @@ ____CORE_SRC_FILENAMES_1_OBJECTS = \
$(OBJS)\monolib_choiccmn.obj \
$(OBJS)\monolib_clipcmn.obj \
$(OBJS)\monolib_colourcmn.obj \
$(OBJS)\monolib_combocmn.obj \
$(OBJS)\monolib_cmdproc.obj \
$(OBJS)\monolib_cmndata.obj \
$(OBJS)\monolib_containr.obj \
@@ -2063,6 +2074,7 @@ ____CORE_SRC_FILENAMES_1_OBJECTS = \
$(OBJS)\monolib_busyinfo.obj \
$(OBJS)\monolib_choicdgg.obj \
$(OBJS)\monolib_choicbkg.obj \
$(OBJS)\monolib_combog.obj \
$(OBJS)\monolib_dcpsg.obj \
$(OBJS)\monolib_dirctrlg.obj \
$(OBJS)\monolib_dragimgg.obj \
@@ -2097,6 +2109,7 @@ ____ADVANCED_SRC_FILENAMES_1_OBJECTS = \
$(OBJS)\monolib_gridsel.obj \
$(OBJS)\monolib_helpext.obj \
$(OBJS)\monolib_laywin.obj \
$(OBJS)\monolib_odcombo.obj \
$(OBJS)\monolib_propdlg.obj \
$(OBJS)\monolib_sashwin.obj \
$(OBJS)\monolib_splash.obj \
@@ -2125,6 +2138,7 @@ ____ADVANCED_SRC_FILENAMES_1_OBJECTS = \
$(OBJS)\monolib_gridsel.obj \
$(OBJS)\monolib_helpext.obj \
$(OBJS)\monolib_laywin.obj \
$(OBJS)\monolib_odcombo.obj \
$(OBJS)\monolib_propdlg.obj \
$(OBJS)\monolib_sashwin.obj \
$(OBJS)\monolib_splash.obj \
@@ -2218,6 +2232,7 @@ ____CORE_SRC_FILENAMES_2_OBJECTS = \
$(OBJS)\coredll_checkbox.obj \
$(OBJS)\coredll_choice.obj \
$(OBJS)\coredll_colordlg.obj \
$(OBJS)\coredll_combo.obj \
$(OBJS)\coredll_combobox.obj \
$(OBJS)\coredll_control.obj \
$(OBJS)\coredll_dialog.obj \
@@ -2267,6 +2282,7 @@ ____CORE_SRC_FILENAMES_2_OBJECTS = \
$(OBJS)\coredll_choiccmn.obj \
$(OBJS)\coredll_clipcmn.obj \
$(OBJS)\coredll_colourcmn.obj \
$(OBJS)\coredll_combocmn.obj \
$(OBJS)\coredll_cmdproc.obj \
$(OBJS)\coredll_cmndata.obj \
$(OBJS)\coredll_containr.obj \
@@ -2337,6 +2353,7 @@ ____CORE_SRC_FILENAMES_2_OBJECTS = \
$(OBJS)\coredll_busyinfo.obj \
$(OBJS)\coredll_choicdgg.obj \
$(OBJS)\coredll_choicbkg.obj \
$(OBJS)\coredll_combog.obj \
$(OBJS)\coredll_dcpsg.obj \
$(OBJS)\coredll_dirctrlg.obj \
$(OBJS)\coredll_dragimgg.obj \
@@ -2467,6 +2484,7 @@ ____CORE_SRC_FILENAMES_2_OBJECTS = \
$(OBJS)\coredll_choiccmn.obj \
$(OBJS)\coredll_clipcmn.obj \
$(OBJS)\coredll_colourcmn.obj \
$(OBJS)\coredll_combocmn.obj \
$(OBJS)\coredll_cmdproc.obj \
$(OBJS)\coredll_cmndata.obj \
$(OBJS)\coredll_containr.obj \
@@ -2537,6 +2555,7 @@ ____CORE_SRC_FILENAMES_2_OBJECTS = \
$(OBJS)\coredll_busyinfo.obj \
$(OBJS)\coredll_choicdgg.obj \
$(OBJS)\coredll_choicbkg.obj \
$(OBJS)\coredll_combog.obj \
$(OBJS)\coredll_dcpsg.obj \
$(OBJS)\coredll_dirctrlg.obj \
$(OBJS)\coredll_dragimgg.obj \
@@ -2621,6 +2640,7 @@ ____CORE_SRC_FILENAMES_3_OBJECTS = \
$(OBJS)\corelib_checkbox.obj \
$(OBJS)\corelib_choice.obj \
$(OBJS)\corelib_colordlg.obj \
$(OBJS)\corelib_combo.obj \
$(OBJS)\corelib_combobox.obj \
$(OBJS)\corelib_control.obj \
$(OBJS)\corelib_dialog.obj \
@@ -2670,6 +2690,7 @@ ____CORE_SRC_FILENAMES_3_OBJECTS = \
$(OBJS)\corelib_choiccmn.obj \
$(OBJS)\corelib_clipcmn.obj \
$(OBJS)\corelib_colourcmn.obj \
$(OBJS)\corelib_combocmn.obj \
$(OBJS)\corelib_cmdproc.obj \
$(OBJS)\corelib_cmndata.obj \
$(OBJS)\corelib_containr.obj \
@@ -2740,6 +2761,7 @@ ____CORE_SRC_FILENAMES_3_OBJECTS = \
$(OBJS)\corelib_busyinfo.obj \
$(OBJS)\corelib_choicdgg.obj \
$(OBJS)\corelib_choicbkg.obj \
$(OBJS)\corelib_combog.obj \
$(OBJS)\corelib_dcpsg.obj \
$(OBJS)\corelib_dirctrlg.obj \
$(OBJS)\corelib_dragimgg.obj \
@@ -2870,6 +2892,7 @@ ____CORE_SRC_FILENAMES_3_OBJECTS = \
$(OBJS)\corelib_choiccmn.obj \
$(OBJS)\corelib_clipcmn.obj \
$(OBJS)\corelib_colourcmn.obj \
$(OBJS)\corelib_combocmn.obj \
$(OBJS)\corelib_cmdproc.obj \
$(OBJS)\corelib_cmndata.obj \
$(OBJS)\corelib_containr.obj \
@@ -2940,6 +2963,7 @@ ____CORE_SRC_FILENAMES_3_OBJECTS = \
$(OBJS)\corelib_busyinfo.obj \
$(OBJS)\corelib_choicdgg.obj \
$(OBJS)\corelib_choicbkg.obj \
$(OBJS)\corelib_combog.obj \
$(OBJS)\corelib_dcpsg.obj \
$(OBJS)\corelib_dirctrlg.obj \
$(OBJS)\corelib_dragimgg.obj \
@@ -2978,6 +3002,7 @@ ____ADVANCED_SRC_FILENAMES_2_OBJECTS = \
$(OBJS)\advdll_gridsel.obj \
$(OBJS)\advdll_helpext.obj \
$(OBJS)\advdll_laywin.obj \
$(OBJS)\advdll_odcombo.obj \
$(OBJS)\advdll_propdlg.obj \
$(OBJS)\advdll_sashwin.obj \
$(OBJS)\advdll_splash.obj \
@@ -3006,6 +3031,7 @@ ____ADVANCED_SRC_FILENAMES_2_OBJECTS = \
$(OBJS)\advdll_gridsel.obj \
$(OBJS)\advdll_helpext.obj \
$(OBJS)\advdll_laywin.obj \
$(OBJS)\advdll_odcombo.obj \
$(OBJS)\advdll_propdlg.obj \
$(OBJS)\advdll_sashwin.obj \
$(OBJS)\advdll_splash.obj \
@@ -3037,6 +3063,7 @@ ____ADVANCED_SRC_FILENAMES_3_OBJECTS = \
$(OBJS)\advlib_gridsel.obj \
$(OBJS)\advlib_helpext.obj \
$(OBJS)\advlib_laywin.obj \
$(OBJS)\advlib_odcombo.obj \
$(OBJS)\advlib_propdlg.obj \
$(OBJS)\advlib_sashwin.obj \
$(OBJS)\advlib_splash.obj \
@@ -3065,6 +3092,7 @@ ____ADVANCED_SRC_FILENAMES_3_OBJECTS = \
$(OBJS)\advlib_gridsel.obj \
$(OBJS)\advlib_helpext.obj \
$(OBJS)\advlib_laywin.obj \
$(OBJS)\advlib_odcombo.obj \
$(OBJS)\advlib_propdlg.obj \
$(OBJS)\advlib_sashwin.obj \
$(OBJS)\advlib_splash.obj \
@@ -4334,6 +4362,9 @@ $(OBJS)\monodll_urlmsw.obj: ..\..\src\msw\urlmsw.cpp
$(OBJS)\monodll_colordlg.obj: ..\..\src\msw\colordlg.cpp
$(CXX) -q -c -P -o$@ $(MONODLL_CXXFLAGS) $**
$(OBJS)\monodll_combo.obj: ..\..\src\msw\combo.cpp
$(CXX) -q -c -P -o$@ $(MONODLL_CXXFLAGS) $**
$(OBJS)\monodll_dirdlg.obj: ..\..\src\msw\dirdlg.cpp
$(CXX) -q -c -P -o$@ $(MONODLL_CXXFLAGS) $**
@@ -5249,6 +5280,11 @@ $(OBJS)\monodll_colourcmn.obj: ..\..\src\common\colourcmn.cpp
$(CXX) -q -c -P -o$@ $(MONODLL_CXXFLAGS) $**
!endif
!if "$(USE_GUI)" == "1"
$(OBJS)\monodll_combocmn.obj: ..\..\src\common\combocmn.cpp
$(CXX) -q -c -P -o$@ $(MONODLL_CXXFLAGS) $**
!endif
!if "$(USE_GUI)" == "1"
$(OBJS)\monodll_cmdproc.obj: ..\..\src\common\cmdproc.cpp
$(CXX) -q -c -P -o$@ $(MONODLL_CXXFLAGS) $**
@@ -5599,6 +5635,11 @@ $(OBJS)\monodll_choicbkg.obj: ..\..\src\generic\choicbkg.cpp
$(CXX) -q -c -P -o$@ $(MONODLL_CXXFLAGS) $**
!endif
!if "$(USE_GUI)" == "1"
$(OBJS)\monodll_combog.obj: ..\..\src\generic\combog.cpp
$(CXX) -q -c -P -o$@ $(MONODLL_CXXFLAGS) $**
!endif
!if "$(USE_GUI)" == "1"
$(OBJS)\monodll_dcpsg.obj: ..\..\src\generic\dcpsg.cpp
$(CXX) -q -c -P -o$@ $(MONODLL_CXXFLAGS) $**
@@ -5754,6 +5795,11 @@ $(OBJS)\monodll_laywin.obj: ..\..\src\generic\laywin.cpp
$(CXX) -q -c -P -o$@ $(MONODLL_CXXFLAGS) $**
!endif
!if "$(USE_GUI)" == "1"
$(OBJS)\monodll_odcombo.obj: ..\..\src\generic\odcombo.cpp
$(CXX) -q -c -P -o$@ $(MONODLL_CXXFLAGS) $**
!endif
!if "$(USE_GUI)" == "1"
$(OBJS)\monodll_propdlg.obj: ..\..\src\generic\propdlg.cpp
$(CXX) -q -c -P -o$@ $(MONODLL_CXXFLAGS) $**
@@ -6100,6 +6146,9 @@ $(OBJS)\monolib_urlmsw.obj: ..\..\src\msw\urlmsw.cpp
$(OBJS)\monolib_colordlg.obj: ..\..\src\msw\colordlg.cpp
$(CXX) -q -c -P -o$@ $(MONOLIB_CXXFLAGS) $**
$(OBJS)\monolib_combo.obj: ..\..\src\msw\combo.cpp
$(CXX) -q -c -P -o$@ $(MONOLIB_CXXFLAGS) $**
$(OBJS)\monolib_dirdlg.obj: ..\..\src\msw\dirdlg.cpp
$(CXX) -q -c -P -o$@ $(MONOLIB_CXXFLAGS) $**
@@ -7015,6 +7064,11 @@ $(OBJS)\monolib_colourcmn.obj: ..\..\src\common\colourcmn.cpp
$(CXX) -q -c -P -o$@ $(MONOLIB_CXXFLAGS) $**
!endif
!if "$(USE_GUI)" == "1"
$(OBJS)\monolib_combocmn.obj: ..\..\src\common\combocmn.cpp
$(CXX) -q -c -P -o$@ $(MONOLIB_CXXFLAGS) $**
!endif
!if "$(USE_GUI)" == "1"
$(OBJS)\monolib_cmdproc.obj: ..\..\src\common\cmdproc.cpp
$(CXX) -q -c -P -o$@ $(MONOLIB_CXXFLAGS) $**
@@ -7365,6 +7419,11 @@ $(OBJS)\monolib_choicbkg.obj: ..\..\src\generic\choicbkg.cpp
$(CXX) -q -c -P -o$@ $(MONOLIB_CXXFLAGS) $**
!endif
!if "$(USE_GUI)" == "1"
$(OBJS)\monolib_combog.obj: ..\..\src\generic\combog.cpp
$(CXX) -q -c -P -o$@ $(MONOLIB_CXXFLAGS) $**
!endif
!if "$(USE_GUI)" == "1"
$(OBJS)\monolib_dcpsg.obj: ..\..\src\generic\dcpsg.cpp
$(CXX) -q -c -P -o$@ $(MONOLIB_CXXFLAGS) $**
@@ -7520,6 +7579,11 @@ $(OBJS)\monolib_laywin.obj: ..\..\src\generic\laywin.cpp
$(CXX) -q -c -P -o$@ $(MONOLIB_CXXFLAGS) $**
!endif
!if "$(USE_GUI)" == "1"
$(OBJS)\monolib_odcombo.obj: ..\..\src\generic\odcombo.cpp
$(CXX) -q -c -P -o$@ $(MONOLIB_CXXFLAGS) $**
!endif
!if "$(USE_GUI)" == "1"
$(OBJS)\monolib_propdlg.obj: ..\..\src\generic\propdlg.cpp
$(CXX) -q -c -P -o$@ $(MONOLIB_CXXFLAGS) $**
@@ -8178,6 +8242,9 @@ $(OBJS)\coredll_volume.obj: ..\..\src\msw\volume.cpp
$(OBJS)\coredll_colordlg.obj: ..\..\src\msw\colordlg.cpp
$(CXX) -q -c -P -o$@ $(COREDLL_CXXFLAGS) $**
$(OBJS)\coredll_combo.obj: ..\..\src\msw\combo.cpp
$(CXX) -q -c -P -o$@ $(COREDLL_CXXFLAGS) $**
$(OBJS)\coredll_dirdlg.obj: ..\..\src\msw\dirdlg.cpp
$(CXX) -q -c -P -o$@ $(COREDLL_CXXFLAGS) $**
@@ -8850,6 +8917,11 @@ $(OBJS)\coredll_colourcmn.obj: ..\..\src\common\colourcmn.cpp
$(CXX) -q -c -P -o$@ $(COREDLL_CXXFLAGS) $**
!endif
!if "$(USE_GUI)" == "1"
$(OBJS)\coredll_combocmn.obj: ..\..\src\common\combocmn.cpp
$(CXX) -q -c -P -o$@ $(COREDLL_CXXFLAGS) $**
!endif
!if "$(USE_GUI)" == "1"
$(OBJS)\coredll_cmdproc.obj: ..\..\src\common\cmdproc.cpp
$(CXX) -q -c -P -o$@ $(COREDLL_CXXFLAGS) $**
@@ -9200,6 +9272,11 @@ $(OBJS)\coredll_choicbkg.obj: ..\..\src\generic\choicbkg.cpp
$(CXX) -q -c -P -o$@ $(COREDLL_CXXFLAGS) $**
!endif
!if "$(USE_GUI)" == "1"
$(OBJS)\coredll_combog.obj: ..\..\src\generic\combog.cpp
$(CXX) -q -c -P -o$@ $(COREDLL_CXXFLAGS) $**
!endif
!if "$(USE_GUI)" == "1"
$(OBJS)\coredll_dcpsg.obj: ..\..\src\generic\dcpsg.cpp
$(CXX) -q -c -P -o$@ $(COREDLL_CXXFLAGS) $**
@@ -9332,6 +9409,9 @@ $(OBJS)\corelib_volume.obj: ..\..\src\msw\volume.cpp
$(OBJS)\corelib_colordlg.obj: ..\..\src\msw\colordlg.cpp
$(CXX) -q -c -P -o$@ $(CORELIB_CXXFLAGS) $**
$(OBJS)\corelib_combo.obj: ..\..\src\msw\combo.cpp
$(CXX) -q -c -P -o$@ $(CORELIB_CXXFLAGS) $**
$(OBJS)\corelib_dirdlg.obj: ..\..\src\msw\dirdlg.cpp
$(CXX) -q -c -P -o$@ $(CORELIB_CXXFLAGS) $**
@@ -10004,6 +10084,11 @@ $(OBJS)\corelib_colourcmn.obj: ..\..\src\common\colourcmn.cpp
$(CXX) -q -c -P -o$@ $(CORELIB_CXXFLAGS) $**
!endif
!if "$(USE_GUI)" == "1"
$(OBJS)\corelib_combocmn.obj: ..\..\src\common\combocmn.cpp
$(CXX) -q -c -P -o$@ $(CORELIB_CXXFLAGS) $**
!endif
!if "$(USE_GUI)" == "1"
$(OBJS)\corelib_cmdproc.obj: ..\..\src\common\cmdproc.cpp
$(CXX) -q -c -P -o$@ $(CORELIB_CXXFLAGS) $**
@@ -10354,6 +10439,11 @@ $(OBJS)\corelib_choicbkg.obj: ..\..\src\generic\choicbkg.cpp
$(CXX) -q -c -P -o$@ $(CORELIB_CXXFLAGS) $**
!endif
!if "$(USE_GUI)" == "1"
$(OBJS)\corelib_combog.obj: ..\..\src\generic\combog.cpp
$(CXX) -q -c -P -o$@ $(CORELIB_CXXFLAGS) $**
!endif
!if "$(USE_GUI)" == "1"
$(OBJS)\corelib_dcpsg.obj: ..\..\src\generic\dcpsg.cpp
$(CXX) -q -c -P -o$@ $(CORELIB_CXXFLAGS) $**
@@ -10498,6 +10588,9 @@ $(OBJS)\advdll_helpext.obj: ..\..\src\generic\helpext.cpp
$(OBJS)\advdll_laywin.obj: ..\..\src\generic\laywin.cpp
$(CXX) -q -c -P -o$@ $(ADVDLL_CXXFLAGS) $**
$(OBJS)\advdll_odcombo.obj: ..\..\src\generic\odcombo.cpp
$(CXX) -q -c -P -o$@ $(ADVDLL_CXXFLAGS) $**
$(OBJS)\advdll_propdlg.obj: ..\..\src\generic\propdlg.cpp
$(CXX) -q -c -P -o$@ $(ADVDLL_CXXFLAGS) $**
@@ -10576,6 +10669,9 @@ $(OBJS)\advlib_helpext.obj: ..\..\src\generic\helpext.cpp
$(OBJS)\advlib_laywin.obj: ..\..\src\generic\laywin.cpp
$(CXX) -q -c -P -o$@ $(ADVLIB_CXXFLAGS) $**
$(OBJS)\advlib_odcombo.obj: ..\..\src\generic\odcombo.cpp
$(CXX) -q -c -P -o$@ $(ADVLIB_CXXFLAGS) $**
$(OBJS)\advlib_propdlg.obj: ..\..\src\generic\propdlg.cpp
$(CXX) -q -c -P -o$@ $(ADVLIB_CXXFLAGS) $**

View File

@@ -1214,6 +1214,7 @@ ____CORE_SRC_FILENAMES_OBJECTS = \
$(OBJS)\monodll_checkbox.o \
$(OBJS)\monodll_choice.o \
$(OBJS)\monodll_colordlg.o \
$(OBJS)\monodll_combo.o \
$(OBJS)\monodll_combobox.o \
$(OBJS)\monodll_control.o \
$(OBJS)\monodll_dialog.o \
@@ -1263,6 +1264,7 @@ ____CORE_SRC_FILENAMES_OBJECTS = \
$(OBJS)\monodll_choiccmn.o \
$(OBJS)\monodll_clipcmn.o \
$(OBJS)\monodll_colourcmn.o \
$(OBJS)\monodll_combocmn.o \
$(OBJS)\monodll_cmdproc.o \
$(OBJS)\monodll_cmndata.o \
$(OBJS)\monodll_containr.o \
@@ -1333,6 +1335,7 @@ ____CORE_SRC_FILENAMES_OBJECTS = \
$(OBJS)\monodll_busyinfo.o \
$(OBJS)\monodll_choicdgg.o \
$(OBJS)\monodll_choicbkg.o \
$(OBJS)\monodll_combog.o \
$(OBJS)\monodll_dcpsg.o \
$(OBJS)\monodll_dirctrlg.o \
$(OBJS)\monodll_dragimgg.o \
@@ -1465,6 +1468,7 @@ ____CORE_SRC_FILENAMES_OBJECTS = \
$(OBJS)\monodll_choiccmn.o \
$(OBJS)\monodll_clipcmn.o \
$(OBJS)\monodll_colourcmn.o \
$(OBJS)\monodll_combocmn.o \
$(OBJS)\monodll_cmdproc.o \
$(OBJS)\monodll_cmndata.o \
$(OBJS)\monodll_containr.o \
@@ -1535,6 +1539,7 @@ ____CORE_SRC_FILENAMES_OBJECTS = \
$(OBJS)\monodll_busyinfo.o \
$(OBJS)\monodll_choicdgg.o \
$(OBJS)\monodll_choicbkg.o \
$(OBJS)\monodll_combog.o \
$(OBJS)\monodll_dcpsg.o \
$(OBJS)\monodll_dirctrlg.o \
$(OBJS)\monodll_dragimgg.o \
@@ -1570,6 +1575,7 @@ ____ADVANCED_SRC_FILENAMES_OBJECTS = \
$(OBJS)\monodll_gridsel.o \
$(OBJS)\monodll_helpext.o \
$(OBJS)\monodll_laywin.o \
$(OBJS)\monodll_odcombo.o \
$(OBJS)\monodll_propdlg.o \
$(OBJS)\monodll_sashwin.o \
$(OBJS)\monodll_splash.o \
@@ -1598,6 +1604,7 @@ ____ADVANCED_SRC_FILENAMES_OBJECTS = \
$(OBJS)\monodll_gridsel.o \
$(OBJS)\monodll_helpext.o \
$(OBJS)\monodll_laywin.o \
$(OBJS)\monodll_odcombo.o \
$(OBJS)\monodll_propdlg.o \
$(OBJS)\monodll_sashwin.o \
$(OBJS)\monodll_splash.o \
@@ -1761,6 +1768,7 @@ ____CORE_SRC_FILENAMES_1_OBJECTS = \
$(OBJS)\monolib_checkbox.o \
$(OBJS)\monolib_choice.o \
$(OBJS)\monolib_colordlg.o \
$(OBJS)\monolib_combo.o \
$(OBJS)\monolib_combobox.o \
$(OBJS)\monolib_control.o \
$(OBJS)\monolib_dialog.o \
@@ -1810,6 +1818,7 @@ ____CORE_SRC_FILENAMES_1_OBJECTS = \
$(OBJS)\monolib_choiccmn.o \
$(OBJS)\monolib_clipcmn.o \
$(OBJS)\monolib_colourcmn.o \
$(OBJS)\monolib_combocmn.o \
$(OBJS)\monolib_cmdproc.o \
$(OBJS)\monolib_cmndata.o \
$(OBJS)\monolib_containr.o \
@@ -1880,6 +1889,7 @@ ____CORE_SRC_FILENAMES_1_OBJECTS = \
$(OBJS)\monolib_busyinfo.o \
$(OBJS)\monolib_choicdgg.o \
$(OBJS)\monolib_choicbkg.o \
$(OBJS)\monolib_combog.o \
$(OBJS)\monolib_dcpsg.o \
$(OBJS)\monolib_dirctrlg.o \
$(OBJS)\monolib_dragimgg.o \
@@ -2012,6 +2022,7 @@ ____CORE_SRC_FILENAMES_1_OBJECTS = \
$(OBJS)\monolib_choiccmn.o \
$(OBJS)\monolib_clipcmn.o \
$(OBJS)\monolib_colourcmn.o \
$(OBJS)\monolib_combocmn.o \
$(OBJS)\monolib_cmdproc.o \
$(OBJS)\monolib_cmndata.o \
$(OBJS)\monolib_containr.o \
@@ -2082,6 +2093,7 @@ ____CORE_SRC_FILENAMES_1_OBJECTS = \
$(OBJS)\monolib_busyinfo.o \
$(OBJS)\monolib_choicdgg.o \
$(OBJS)\monolib_choicbkg.o \
$(OBJS)\monolib_combog.o \
$(OBJS)\monolib_dcpsg.o \
$(OBJS)\monolib_dirctrlg.o \
$(OBJS)\monolib_dragimgg.o \
@@ -2117,6 +2129,7 @@ ____ADVANCED_SRC_FILENAMES_1_OBJECTS = \
$(OBJS)\monolib_gridsel.o \
$(OBJS)\monolib_helpext.o \
$(OBJS)\monolib_laywin.o \
$(OBJS)\monolib_odcombo.o \
$(OBJS)\monolib_propdlg.o \
$(OBJS)\monolib_sashwin.o \
$(OBJS)\monolib_splash.o \
@@ -2145,6 +2158,7 @@ ____ADVANCED_SRC_FILENAMES_1_OBJECTS = \
$(OBJS)\monolib_gridsel.o \
$(OBJS)\monolib_helpext.o \
$(OBJS)\monolib_laywin.o \
$(OBJS)\monolib_odcombo.o \
$(OBJS)\monolib_propdlg.o \
$(OBJS)\monolib_sashwin.o \
$(OBJS)\monolib_splash.o \
@@ -2251,6 +2265,7 @@ ____CORE_SRC_FILENAMES_2_OBJECTS = \
$(OBJS)\coredll_checkbox.o \
$(OBJS)\coredll_choice.o \
$(OBJS)\coredll_colordlg.o \
$(OBJS)\coredll_combo.o \
$(OBJS)\coredll_combobox.o \
$(OBJS)\coredll_control.o \
$(OBJS)\coredll_dialog.o \
@@ -2300,6 +2315,7 @@ ____CORE_SRC_FILENAMES_2_OBJECTS = \
$(OBJS)\coredll_choiccmn.o \
$(OBJS)\coredll_clipcmn.o \
$(OBJS)\coredll_colourcmn.o \
$(OBJS)\coredll_combocmn.o \
$(OBJS)\coredll_cmdproc.o \
$(OBJS)\coredll_cmndata.o \
$(OBJS)\coredll_containr.o \
@@ -2370,6 +2386,7 @@ ____CORE_SRC_FILENAMES_2_OBJECTS = \
$(OBJS)\coredll_busyinfo.o \
$(OBJS)\coredll_choicdgg.o \
$(OBJS)\coredll_choicbkg.o \
$(OBJS)\coredll_combog.o \
$(OBJS)\coredll_dcpsg.o \
$(OBJS)\coredll_dirctrlg.o \
$(OBJS)\coredll_dragimgg.o \
@@ -2502,6 +2519,7 @@ ____CORE_SRC_FILENAMES_2_OBJECTS = \
$(OBJS)\coredll_choiccmn.o \
$(OBJS)\coredll_clipcmn.o \
$(OBJS)\coredll_colourcmn.o \
$(OBJS)\coredll_combocmn.o \
$(OBJS)\coredll_cmdproc.o \
$(OBJS)\coredll_cmndata.o \
$(OBJS)\coredll_containr.o \
@@ -2572,6 +2590,7 @@ ____CORE_SRC_FILENAMES_2_OBJECTS = \
$(OBJS)\coredll_busyinfo.o \
$(OBJS)\coredll_choicdgg.o \
$(OBJS)\coredll_choicbkg.o \
$(OBJS)\coredll_combog.o \
$(OBJS)\coredll_dcpsg.o \
$(OBJS)\coredll_dirctrlg.o \
$(OBJS)\coredll_dragimgg.o \
@@ -2662,6 +2681,7 @@ ____CORE_SRC_FILENAMES_3_OBJECTS = \
$(OBJS)\corelib_checkbox.o \
$(OBJS)\corelib_choice.o \
$(OBJS)\corelib_colordlg.o \
$(OBJS)\corelib_combo.o \
$(OBJS)\corelib_combobox.o \
$(OBJS)\corelib_control.o \
$(OBJS)\corelib_dialog.o \
@@ -2711,6 +2731,7 @@ ____CORE_SRC_FILENAMES_3_OBJECTS = \
$(OBJS)\corelib_choiccmn.o \
$(OBJS)\corelib_clipcmn.o \
$(OBJS)\corelib_colourcmn.o \
$(OBJS)\corelib_combocmn.o \
$(OBJS)\corelib_cmdproc.o \
$(OBJS)\corelib_cmndata.o \
$(OBJS)\corelib_containr.o \
@@ -2781,6 +2802,7 @@ ____CORE_SRC_FILENAMES_3_OBJECTS = \
$(OBJS)\corelib_busyinfo.o \
$(OBJS)\corelib_choicdgg.o \
$(OBJS)\corelib_choicbkg.o \
$(OBJS)\corelib_combog.o \
$(OBJS)\corelib_dcpsg.o \
$(OBJS)\corelib_dirctrlg.o \
$(OBJS)\corelib_dragimgg.o \
@@ -2913,6 +2935,7 @@ ____CORE_SRC_FILENAMES_3_OBJECTS = \
$(OBJS)\corelib_choiccmn.o \
$(OBJS)\corelib_clipcmn.o \
$(OBJS)\corelib_colourcmn.o \
$(OBJS)\corelib_combocmn.o \
$(OBJS)\corelib_cmdproc.o \
$(OBJS)\corelib_cmndata.o \
$(OBJS)\corelib_containr.o \
@@ -2983,6 +3006,7 @@ ____CORE_SRC_FILENAMES_3_OBJECTS = \
$(OBJS)\corelib_busyinfo.o \
$(OBJS)\corelib_choicdgg.o \
$(OBJS)\corelib_choicbkg.o \
$(OBJS)\corelib_combog.o \
$(OBJS)\corelib_dcpsg.o \
$(OBJS)\corelib_dirctrlg.o \
$(OBJS)\corelib_dragimgg.o \
@@ -3026,6 +3050,7 @@ ____ADVANCED_SRC_FILENAMES_2_OBJECTS = \
$(OBJS)\advdll_gridsel.o \
$(OBJS)\advdll_helpext.o \
$(OBJS)\advdll_laywin.o \
$(OBJS)\advdll_odcombo.o \
$(OBJS)\advdll_propdlg.o \
$(OBJS)\advdll_sashwin.o \
$(OBJS)\advdll_splash.o \
@@ -3054,6 +3079,7 @@ ____ADVANCED_SRC_FILENAMES_2_OBJECTS = \
$(OBJS)\advdll_gridsel.o \
$(OBJS)\advdll_helpext.o \
$(OBJS)\advdll_laywin.o \
$(OBJS)\advdll_odcombo.o \
$(OBJS)\advdll_propdlg.o \
$(OBJS)\advdll_sashwin.o \
$(OBJS)\advdll_splash.o \
@@ -3089,6 +3115,7 @@ ____ADVANCED_SRC_FILENAMES_3_OBJECTS = \
$(OBJS)\advlib_gridsel.o \
$(OBJS)\advlib_helpext.o \
$(OBJS)\advlib_laywin.o \
$(OBJS)\advlib_odcombo.o \
$(OBJS)\advlib_propdlg.o \
$(OBJS)\advlib_sashwin.o \
$(OBJS)\advlib_splash.o \
@@ -3117,6 +3144,7 @@ ____ADVANCED_SRC_FILENAMES_3_OBJECTS = \
$(OBJS)\advlib_gridsel.o \
$(OBJS)\advlib_helpext.o \
$(OBJS)\advlib_laywin.o \
$(OBJS)\advlib_odcombo.o \
$(OBJS)\advlib_propdlg.o \
$(OBJS)\advlib_sashwin.o \
$(OBJS)\advlib_splash.o \
@@ -4438,6 +4466,9 @@ $(OBJS)\monodll_urlmsw.o: ../../src/msw/urlmsw.cpp
$(OBJS)\monodll_colordlg.o: ../../src/msw/colordlg.cpp
$(CXX) -c -o $@ $(MONODLL_CXXFLAGS) $(CPPDEPS) $<
$(OBJS)\monodll_combo.o: ../../src/msw/combo.cpp
$(CXX) -c -o $@ $(MONODLL_CXXFLAGS) $(CPPDEPS) $<
$(OBJS)\monodll_dirdlg.o: ../../src/msw/dirdlg.cpp
$(CXX) -c -o $@ $(MONODLL_CXXFLAGS) $(CPPDEPS) $<
@@ -5453,6 +5484,11 @@ $(OBJS)\monodll_colourcmn.o: ../../src/common/colourcmn.cpp
$(CXX) -c -o $@ $(MONODLL_CXXFLAGS) $(CPPDEPS) $<
endif
ifeq ($(USE_GUI),1)
$(OBJS)\monodll_combocmn.o: ../../src/common/combocmn.cpp
$(CXX) -c -o $@ $(MONODLL_CXXFLAGS) $(CPPDEPS) $<
endif
ifeq ($(USE_GUI),1)
$(OBJS)\monodll_cmdproc.o: ../../src/common/cmdproc.cpp
$(CXX) -c -o $@ $(MONODLL_CXXFLAGS) $(CPPDEPS) $<
@@ -5803,6 +5839,11 @@ $(OBJS)\monodll_choicbkg.o: ../../src/generic/choicbkg.cpp
$(CXX) -c -o $@ $(MONODLL_CXXFLAGS) $(CPPDEPS) $<
endif
ifeq ($(USE_GUI),1)
$(OBJS)\monodll_combog.o: ../../src/generic/combog.cpp
$(CXX) -c -o $@ $(MONODLL_CXXFLAGS) $(CPPDEPS) $<
endif
ifeq ($(USE_GUI),1)
$(OBJS)\monodll_dcpsg.o: ../../src/generic/dcpsg.cpp
$(CXX) -c -o $@ $(MONODLL_CXXFLAGS) $(CPPDEPS) $<
@@ -5958,6 +5999,11 @@ $(OBJS)\monodll_laywin.o: ../../src/generic/laywin.cpp
$(CXX) -c -o $@ $(MONODLL_CXXFLAGS) $(CPPDEPS) $<
endif
ifeq ($(USE_GUI),1)
$(OBJS)\monodll_odcombo.o: ../../src/generic/odcombo.cpp
$(CXX) -c -o $@ $(MONODLL_CXXFLAGS) $(CPPDEPS) $<
endif
ifeq ($(USE_GUI),1)
$(OBJS)\monodll_propdlg.o: ../../src/generic/propdlg.cpp
$(CXX) -c -o $@ $(MONODLL_CXXFLAGS) $(CPPDEPS) $<
@@ -6304,6 +6350,9 @@ $(OBJS)\monolib_urlmsw.o: ../../src/msw/urlmsw.cpp
$(OBJS)\monolib_colordlg.o: ../../src/msw/colordlg.cpp
$(CXX) -c -o $@ $(MONOLIB_CXXFLAGS) $(CPPDEPS) $<
$(OBJS)\monolib_combo.o: ../../src/msw/combo.cpp
$(CXX) -c -o $@ $(MONOLIB_CXXFLAGS) $(CPPDEPS) $<
$(OBJS)\monolib_dirdlg.o: ../../src/msw/dirdlg.cpp
$(CXX) -c -o $@ $(MONOLIB_CXXFLAGS) $(CPPDEPS) $<
@@ -7319,6 +7368,11 @@ $(OBJS)\monolib_colourcmn.o: ../../src/common/colourcmn.cpp
$(CXX) -c -o $@ $(MONOLIB_CXXFLAGS) $(CPPDEPS) $<
endif
ifeq ($(USE_GUI),1)
$(OBJS)\monolib_combocmn.o: ../../src/common/combocmn.cpp
$(CXX) -c -o $@ $(MONOLIB_CXXFLAGS) $(CPPDEPS) $<
endif
ifeq ($(USE_GUI),1)
$(OBJS)\monolib_cmdproc.o: ../../src/common/cmdproc.cpp
$(CXX) -c -o $@ $(MONOLIB_CXXFLAGS) $(CPPDEPS) $<
@@ -7669,6 +7723,11 @@ $(OBJS)\monolib_choicbkg.o: ../../src/generic/choicbkg.cpp
$(CXX) -c -o $@ $(MONOLIB_CXXFLAGS) $(CPPDEPS) $<
endif
ifeq ($(USE_GUI),1)
$(OBJS)\monolib_combog.o: ../../src/generic/combog.cpp
$(CXX) -c -o $@ $(MONOLIB_CXXFLAGS) $(CPPDEPS) $<
endif
ifeq ($(USE_GUI),1)
$(OBJS)\monolib_dcpsg.o: ../../src/generic/dcpsg.cpp
$(CXX) -c -o $@ $(MONOLIB_CXXFLAGS) $(CPPDEPS) $<
@@ -7824,6 +7883,11 @@ $(OBJS)\monolib_laywin.o: ../../src/generic/laywin.cpp
$(CXX) -c -o $@ $(MONOLIB_CXXFLAGS) $(CPPDEPS) $<
endif
ifeq ($(USE_GUI),1)
$(OBJS)\monolib_odcombo.o: ../../src/generic/odcombo.cpp
$(CXX) -c -o $@ $(MONOLIB_CXXFLAGS) $(CPPDEPS) $<
endif
ifeq ($(USE_GUI),1)
$(OBJS)\monolib_propdlg.o: ../../src/generic/propdlg.cpp
$(CXX) -c -o $@ $(MONOLIB_CXXFLAGS) $(CPPDEPS) $<
@@ -8482,6 +8546,9 @@ $(OBJS)\coredll_volume.o: ../../src/msw/volume.cpp
$(OBJS)\coredll_colordlg.o: ../../src/msw/colordlg.cpp
$(CXX) -c -o $@ $(COREDLL_CXXFLAGS) $(CPPDEPS) $<
$(OBJS)\coredll_combo.o: ../../src/msw/combo.cpp
$(CXX) -c -o $@ $(COREDLL_CXXFLAGS) $(CPPDEPS) $<
$(OBJS)\coredll_dirdlg.o: ../../src/msw/dirdlg.cpp
$(CXX) -c -o $@ $(COREDLL_CXXFLAGS) $(CPPDEPS) $<
@@ -9254,6 +9321,11 @@ $(OBJS)\coredll_colourcmn.o: ../../src/common/colourcmn.cpp
$(CXX) -c -o $@ $(COREDLL_CXXFLAGS) $(CPPDEPS) $<
endif
ifeq ($(USE_GUI),1)
$(OBJS)\coredll_combocmn.o: ../../src/common/combocmn.cpp
$(CXX) -c -o $@ $(COREDLL_CXXFLAGS) $(CPPDEPS) $<
endif
ifeq ($(USE_GUI),1)
$(OBJS)\coredll_cmdproc.o: ../../src/common/cmdproc.cpp
$(CXX) -c -o $@ $(COREDLL_CXXFLAGS) $(CPPDEPS) $<
@@ -9604,6 +9676,11 @@ $(OBJS)\coredll_choicbkg.o: ../../src/generic/choicbkg.cpp
$(CXX) -c -o $@ $(COREDLL_CXXFLAGS) $(CPPDEPS) $<
endif
ifeq ($(USE_GUI),1)
$(OBJS)\coredll_combog.o: ../../src/generic/combog.cpp
$(CXX) -c -o $@ $(COREDLL_CXXFLAGS) $(CPPDEPS) $<
endif
ifeq ($(USE_GUI),1)
$(OBJS)\coredll_dcpsg.o: ../../src/generic/dcpsg.cpp
$(CXX) -c -o $@ $(COREDLL_CXXFLAGS) $(CPPDEPS) $<
@@ -9736,6 +9813,9 @@ $(OBJS)\corelib_volume.o: ../../src/msw/volume.cpp
$(OBJS)\corelib_colordlg.o: ../../src/msw/colordlg.cpp
$(CXX) -c -o $@ $(CORELIB_CXXFLAGS) $(CPPDEPS) $<
$(OBJS)\corelib_combo.o: ../../src/msw/combo.cpp
$(CXX) -c -o $@ $(CORELIB_CXXFLAGS) $(CPPDEPS) $<
$(OBJS)\corelib_dirdlg.o: ../../src/msw/dirdlg.cpp
$(CXX) -c -o $@ $(CORELIB_CXXFLAGS) $(CPPDEPS) $<
@@ -10508,6 +10588,11 @@ $(OBJS)\corelib_colourcmn.o: ../../src/common/colourcmn.cpp
$(CXX) -c -o $@ $(CORELIB_CXXFLAGS) $(CPPDEPS) $<
endif
ifeq ($(USE_GUI),1)
$(OBJS)\corelib_combocmn.o: ../../src/common/combocmn.cpp
$(CXX) -c -o $@ $(CORELIB_CXXFLAGS) $(CPPDEPS) $<
endif
ifeq ($(USE_GUI),1)
$(OBJS)\corelib_cmdproc.o: ../../src/common/cmdproc.cpp
$(CXX) -c -o $@ $(CORELIB_CXXFLAGS) $(CPPDEPS) $<
@@ -10858,6 +10943,11 @@ $(OBJS)\corelib_choicbkg.o: ../../src/generic/choicbkg.cpp
$(CXX) -c -o $@ $(CORELIB_CXXFLAGS) $(CPPDEPS) $<
endif
ifeq ($(USE_GUI),1)
$(OBJS)\corelib_combog.o: ../../src/generic/combog.cpp
$(CXX) -c -o $@ $(CORELIB_CXXFLAGS) $(CPPDEPS) $<
endif
ifeq ($(USE_GUI),1)
$(OBJS)\corelib_dcpsg.o: ../../src/generic/dcpsg.cpp
$(CXX) -c -o $@ $(CORELIB_CXXFLAGS) $(CPPDEPS) $<
@@ -11002,6 +11092,9 @@ $(OBJS)\advdll_helpext.o: ../../src/generic/helpext.cpp
$(OBJS)\advdll_laywin.o: ../../src/generic/laywin.cpp
$(CXX) -c -o $@ $(ADVDLL_CXXFLAGS) $(CPPDEPS) $<
$(OBJS)\advdll_odcombo.o: ../../src/generic/odcombo.cpp
$(CXX) -c -o $@ $(ADVDLL_CXXFLAGS) $(CPPDEPS) $<
$(OBJS)\advdll_propdlg.o: ../../src/generic/propdlg.cpp
$(CXX) -c -o $@ $(ADVDLL_CXXFLAGS) $(CPPDEPS) $<
@@ -11080,6 +11173,9 @@ $(OBJS)\advlib_helpext.o: ../../src/generic/helpext.cpp
$(OBJS)\advlib_laywin.o: ../../src/generic/laywin.cpp
$(CXX) -c -o $@ $(ADVLIB_CXXFLAGS) $(CPPDEPS) $<
$(OBJS)\advlib_odcombo.o: ../../src/generic/odcombo.cpp
$(CXX) -c -o $@ $(ADVLIB_CXXFLAGS) $(CPPDEPS) $<
$(OBJS)\advlib_propdlg.o: ../../src/generic/propdlg.cpp
$(CXX) -c -o $@ $(ADVLIB_CXXFLAGS) $(CPPDEPS) $<

View File

@@ -1362,6 +1362,7 @@ ____CORE_SRC_FILENAMES_OBJECTS = \
$(OBJS)\monodll_checkbox.obj \
$(OBJS)\monodll_choice.obj \
$(OBJS)\monodll_colordlg.obj \
$(OBJS)\monodll_combo.obj \
$(OBJS)\monodll_combobox.obj \
$(OBJS)\monodll_control.obj \
$(OBJS)\monodll_dialog.obj \
@@ -1411,6 +1412,7 @@ ____CORE_SRC_FILENAMES_OBJECTS = \
$(OBJS)\monodll_choiccmn.obj \
$(OBJS)\monodll_clipcmn.obj \
$(OBJS)\monodll_colourcmn.obj \
$(OBJS)\monodll_combocmn.obj \
$(OBJS)\monodll_cmdproc.obj \
$(OBJS)\monodll_cmndata.obj \
$(OBJS)\monodll_containr.obj \
@@ -1481,6 +1483,7 @@ ____CORE_SRC_FILENAMES_OBJECTS = \
$(OBJS)\monodll_busyinfo.obj \
$(OBJS)\monodll_choicdgg.obj \
$(OBJS)\monodll_choicbkg.obj \
$(OBJS)\monodll_combog.obj \
$(OBJS)\monodll_dcpsg.obj \
$(OBJS)\monodll_dirctrlg.obj \
$(OBJS)\monodll_dragimgg.obj \
@@ -1611,6 +1614,7 @@ ____CORE_SRC_FILENAMES_OBJECTS = \
$(OBJS)\monodll_choiccmn.obj \
$(OBJS)\monodll_clipcmn.obj \
$(OBJS)\monodll_colourcmn.obj \
$(OBJS)\monodll_combocmn.obj \
$(OBJS)\monodll_cmdproc.obj \
$(OBJS)\monodll_cmndata.obj \
$(OBJS)\monodll_containr.obj \
@@ -1681,6 +1685,7 @@ ____CORE_SRC_FILENAMES_OBJECTS = \
$(OBJS)\monodll_busyinfo.obj \
$(OBJS)\monodll_choicdgg.obj \
$(OBJS)\monodll_choicbkg.obj \
$(OBJS)\monodll_combog.obj \
$(OBJS)\monodll_dcpsg.obj \
$(OBJS)\monodll_dirctrlg.obj \
$(OBJS)\monodll_dragimgg.obj \
@@ -1715,6 +1720,7 @@ ____ADVANCED_SRC_FILENAMES_OBJECTS = \
$(OBJS)\monodll_gridsel.obj \
$(OBJS)\monodll_helpext.obj \
$(OBJS)\monodll_laywin.obj \
$(OBJS)\monodll_odcombo.obj \
$(OBJS)\monodll_propdlg.obj \
$(OBJS)\monodll_sashwin.obj \
$(OBJS)\monodll_splash.obj \
@@ -1743,6 +1749,7 @@ ____ADVANCED_SRC_FILENAMES_OBJECTS = \
$(OBJS)\monodll_gridsel.obj \
$(OBJS)\monodll_helpext.obj \
$(OBJS)\monodll_laywin.obj \
$(OBJS)\monodll_odcombo.obj \
$(OBJS)\monodll_propdlg.obj \
$(OBJS)\monodll_sashwin.obj \
$(OBJS)\monodll_splash.obj \
@@ -1909,6 +1916,7 @@ ____CORE_SRC_FILENAMES_1_OBJECTS = \
$(OBJS)\monolib_checkbox.obj \
$(OBJS)\monolib_choice.obj \
$(OBJS)\monolib_colordlg.obj \
$(OBJS)\monolib_combo.obj \
$(OBJS)\monolib_combobox.obj \
$(OBJS)\monolib_control.obj \
$(OBJS)\monolib_dialog.obj \
@@ -1958,6 +1966,7 @@ ____CORE_SRC_FILENAMES_1_OBJECTS = \
$(OBJS)\monolib_choiccmn.obj \
$(OBJS)\monolib_clipcmn.obj \
$(OBJS)\monolib_colourcmn.obj \
$(OBJS)\monolib_combocmn.obj \
$(OBJS)\monolib_cmdproc.obj \
$(OBJS)\monolib_cmndata.obj \
$(OBJS)\monolib_containr.obj \
@@ -2028,6 +2037,7 @@ ____CORE_SRC_FILENAMES_1_OBJECTS = \
$(OBJS)\monolib_busyinfo.obj \
$(OBJS)\monolib_choicdgg.obj \
$(OBJS)\monolib_choicbkg.obj \
$(OBJS)\monolib_combog.obj \
$(OBJS)\monolib_dcpsg.obj \
$(OBJS)\monolib_dirctrlg.obj \
$(OBJS)\monolib_dragimgg.obj \
@@ -2158,6 +2168,7 @@ ____CORE_SRC_FILENAMES_1_OBJECTS = \
$(OBJS)\monolib_choiccmn.obj \
$(OBJS)\monolib_clipcmn.obj \
$(OBJS)\monolib_colourcmn.obj \
$(OBJS)\monolib_combocmn.obj \
$(OBJS)\monolib_cmdproc.obj \
$(OBJS)\monolib_cmndata.obj \
$(OBJS)\monolib_containr.obj \
@@ -2228,6 +2239,7 @@ ____CORE_SRC_FILENAMES_1_OBJECTS = \
$(OBJS)\monolib_busyinfo.obj \
$(OBJS)\monolib_choicdgg.obj \
$(OBJS)\monolib_choicbkg.obj \
$(OBJS)\monolib_combog.obj \
$(OBJS)\monolib_dcpsg.obj \
$(OBJS)\monolib_dirctrlg.obj \
$(OBJS)\monolib_dragimgg.obj \
@@ -2262,6 +2274,7 @@ ____ADVANCED_SRC_FILENAMES_1_OBJECTS = \
$(OBJS)\monolib_gridsel.obj \
$(OBJS)\monolib_helpext.obj \
$(OBJS)\monolib_laywin.obj \
$(OBJS)\monolib_odcombo.obj \
$(OBJS)\monolib_propdlg.obj \
$(OBJS)\monolib_sashwin.obj \
$(OBJS)\monolib_splash.obj \
@@ -2290,6 +2303,7 @@ ____ADVANCED_SRC_FILENAMES_1_OBJECTS = \
$(OBJS)\monolib_gridsel.obj \
$(OBJS)\monolib_helpext.obj \
$(OBJS)\monolib_laywin.obj \
$(OBJS)\monolib_odcombo.obj \
$(OBJS)\monolib_propdlg.obj \
$(OBJS)\monolib_sashwin.obj \
$(OBJS)\monolib_splash.obj \
@@ -2413,6 +2427,7 @@ ____CORE_SRC_FILENAMES_2_OBJECTS = \
$(OBJS)\coredll_checkbox.obj \
$(OBJS)\coredll_choice.obj \
$(OBJS)\coredll_colordlg.obj \
$(OBJS)\coredll_combo.obj \
$(OBJS)\coredll_combobox.obj \
$(OBJS)\coredll_control.obj \
$(OBJS)\coredll_dialog.obj \
@@ -2462,6 +2477,7 @@ ____CORE_SRC_FILENAMES_2_OBJECTS = \
$(OBJS)\coredll_choiccmn.obj \
$(OBJS)\coredll_clipcmn.obj \
$(OBJS)\coredll_colourcmn.obj \
$(OBJS)\coredll_combocmn.obj \
$(OBJS)\coredll_cmdproc.obj \
$(OBJS)\coredll_cmndata.obj \
$(OBJS)\coredll_containr.obj \
@@ -2532,6 +2548,7 @@ ____CORE_SRC_FILENAMES_2_OBJECTS = \
$(OBJS)\coredll_busyinfo.obj \
$(OBJS)\coredll_choicdgg.obj \
$(OBJS)\coredll_choicbkg.obj \
$(OBJS)\coredll_combog.obj \
$(OBJS)\coredll_dcpsg.obj \
$(OBJS)\coredll_dirctrlg.obj \
$(OBJS)\coredll_dragimgg.obj \
@@ -2662,6 +2679,7 @@ ____CORE_SRC_FILENAMES_2_OBJECTS = \
$(OBJS)\coredll_choiccmn.obj \
$(OBJS)\coredll_clipcmn.obj \
$(OBJS)\coredll_colourcmn.obj \
$(OBJS)\coredll_combocmn.obj \
$(OBJS)\coredll_cmdproc.obj \
$(OBJS)\coredll_cmndata.obj \
$(OBJS)\coredll_containr.obj \
@@ -2732,6 +2750,7 @@ ____CORE_SRC_FILENAMES_2_OBJECTS = \
$(OBJS)\coredll_busyinfo.obj \
$(OBJS)\coredll_choicdgg.obj \
$(OBJS)\coredll_choicbkg.obj \
$(OBJS)\coredll_combog.obj \
$(OBJS)\coredll_dcpsg.obj \
$(OBJS)\coredll_dirctrlg.obj \
$(OBJS)\coredll_dragimgg.obj \
@@ -2822,6 +2841,7 @@ ____CORE_SRC_FILENAMES_3_OBJECTS = \
$(OBJS)\corelib_checkbox.obj \
$(OBJS)\corelib_choice.obj \
$(OBJS)\corelib_colordlg.obj \
$(OBJS)\corelib_combo.obj \
$(OBJS)\corelib_combobox.obj \
$(OBJS)\corelib_control.obj \
$(OBJS)\corelib_dialog.obj \
@@ -2871,6 +2891,7 @@ ____CORE_SRC_FILENAMES_3_OBJECTS = \
$(OBJS)\corelib_choiccmn.obj \
$(OBJS)\corelib_clipcmn.obj \
$(OBJS)\corelib_colourcmn.obj \
$(OBJS)\corelib_combocmn.obj \
$(OBJS)\corelib_cmdproc.obj \
$(OBJS)\corelib_cmndata.obj \
$(OBJS)\corelib_containr.obj \
@@ -2941,6 +2962,7 @@ ____CORE_SRC_FILENAMES_3_OBJECTS = \
$(OBJS)\corelib_busyinfo.obj \
$(OBJS)\corelib_choicdgg.obj \
$(OBJS)\corelib_choicbkg.obj \
$(OBJS)\corelib_combog.obj \
$(OBJS)\corelib_dcpsg.obj \
$(OBJS)\corelib_dirctrlg.obj \
$(OBJS)\corelib_dragimgg.obj \
@@ -3071,6 +3093,7 @@ ____CORE_SRC_FILENAMES_3_OBJECTS = \
$(OBJS)\corelib_choiccmn.obj \
$(OBJS)\corelib_clipcmn.obj \
$(OBJS)\corelib_colourcmn.obj \
$(OBJS)\corelib_combocmn.obj \
$(OBJS)\corelib_cmdproc.obj \
$(OBJS)\corelib_cmndata.obj \
$(OBJS)\corelib_containr.obj \
@@ -3141,6 +3164,7 @@ ____CORE_SRC_FILENAMES_3_OBJECTS = \
$(OBJS)\corelib_busyinfo.obj \
$(OBJS)\corelib_choicdgg.obj \
$(OBJS)\corelib_choicbkg.obj \
$(OBJS)\corelib_combog.obj \
$(OBJS)\corelib_dcpsg.obj \
$(OBJS)\corelib_dirctrlg.obj \
$(OBJS)\corelib_dragimgg.obj \
@@ -3185,6 +3209,7 @@ ____ADVANCED_SRC_FILENAMES_2_OBJECTS = \
$(OBJS)\advdll_gridsel.obj \
$(OBJS)\advdll_helpext.obj \
$(OBJS)\advdll_laywin.obj \
$(OBJS)\advdll_odcombo.obj \
$(OBJS)\advdll_propdlg.obj \
$(OBJS)\advdll_sashwin.obj \
$(OBJS)\advdll_splash.obj \
@@ -3213,6 +3238,7 @@ ____ADVANCED_SRC_FILENAMES_2_OBJECTS = \
$(OBJS)\advdll_gridsel.obj \
$(OBJS)\advdll_helpext.obj \
$(OBJS)\advdll_laywin.obj \
$(OBJS)\advdll_odcombo.obj \
$(OBJS)\advdll_propdlg.obj \
$(OBJS)\advdll_sashwin.obj \
$(OBJS)\advdll_splash.obj \
@@ -3250,6 +3276,7 @@ ____ADVANCED_SRC_FILENAMES_3_OBJECTS = \
$(OBJS)\advlib_gridsel.obj \
$(OBJS)\advlib_helpext.obj \
$(OBJS)\advlib_laywin.obj \
$(OBJS)\advlib_odcombo.obj \
$(OBJS)\advlib_propdlg.obj \
$(OBJS)\advlib_sashwin.obj \
$(OBJS)\advlib_splash.obj \
@@ -3278,6 +3305,7 @@ ____ADVANCED_SRC_FILENAMES_3_OBJECTS = \
$(OBJS)\advlib_gridsel.obj \
$(OBJS)\advlib_helpext.obj \
$(OBJS)\advlib_laywin.obj \
$(OBJS)\advlib_odcombo.obj \
$(OBJS)\advlib_propdlg.obj \
$(OBJS)\advlib_sashwin.obj \
$(OBJS)\advlib_splash.obj \
@@ -4643,6 +4671,9 @@ $(OBJS)\monodll_urlmsw.obj: ..\..\src\msw\urlmsw.cpp
$(OBJS)\monodll_colordlg.obj: ..\..\src\msw\colordlg.cpp
$(CXX) /c /nologo /TP /Fo$@ $(MONODLL_CXXFLAGS) $**
$(OBJS)\monodll_combo.obj: ..\..\src\msw\combo.cpp
$(CXX) /c /nologo /TP /Fo$@ $(MONODLL_CXXFLAGS) $**
$(OBJS)\monodll_dirdlg.obj: ..\..\src\msw\dirdlg.cpp
$(CXX) /c /nologo /TP /Fo$@ $(MONODLL_CXXFLAGS) $**
@@ -5558,6 +5589,11 @@ $(OBJS)\monodll_colourcmn.obj: ..\..\src\common\colourcmn.cpp
$(CXX) /c /nologo /TP /Fo$@ $(MONODLL_CXXFLAGS) $**
!endif
!if "$(USE_GUI)" == "1"
$(OBJS)\monodll_combocmn.obj: ..\..\src\common\combocmn.cpp
$(CXX) /c /nologo /TP /Fo$@ $(MONODLL_CXXFLAGS) $**
!endif
!if "$(USE_GUI)" == "1"
$(OBJS)\monodll_cmdproc.obj: ..\..\src\common\cmdproc.cpp
$(CXX) /c /nologo /TP /Fo$@ $(MONODLL_CXXFLAGS) $**
@@ -5908,6 +5944,11 @@ $(OBJS)\monodll_choicbkg.obj: ..\..\src\generic\choicbkg.cpp
$(CXX) /c /nologo /TP /Fo$@ $(MONODLL_CXXFLAGS) $**
!endif
!if "$(USE_GUI)" == "1"
$(OBJS)\monodll_combog.obj: ..\..\src\generic\combog.cpp
$(CXX) /c /nologo /TP /Fo$@ $(MONODLL_CXXFLAGS) $**
!endif
!if "$(USE_GUI)" == "1"
$(OBJS)\monodll_dcpsg.obj: ..\..\src\generic\dcpsg.cpp
$(CXX) /c /nologo /TP /Fo$@ $(MONODLL_CXXFLAGS) $**
@@ -6063,6 +6104,11 @@ $(OBJS)\monodll_laywin.obj: ..\..\src\generic\laywin.cpp
$(CXX) /c /nologo /TP /Fo$@ $(MONODLL_CXXFLAGS) $**
!endif
!if "$(USE_GUI)" == "1"
$(OBJS)\monodll_odcombo.obj: ..\..\src\generic\odcombo.cpp
$(CXX) /c /nologo /TP /Fo$@ $(MONODLL_CXXFLAGS) $**
!endif
!if "$(USE_GUI)" == "1"
$(OBJS)\monodll_propdlg.obj: ..\..\src\generic\propdlg.cpp
$(CXX) /c /nologo /TP /Fo$@ $(MONODLL_CXXFLAGS) $**
@@ -6409,6 +6455,9 @@ $(OBJS)\monolib_urlmsw.obj: ..\..\src\msw\urlmsw.cpp
$(OBJS)\monolib_colordlg.obj: ..\..\src\msw\colordlg.cpp
$(CXX) /c /nologo /TP /Fo$@ $(MONOLIB_CXXFLAGS) $**
$(OBJS)\monolib_combo.obj: ..\..\src\msw\combo.cpp
$(CXX) /c /nologo /TP /Fo$@ $(MONOLIB_CXXFLAGS) $**
$(OBJS)\monolib_dirdlg.obj: ..\..\src\msw\dirdlg.cpp
$(CXX) /c /nologo /TP /Fo$@ $(MONOLIB_CXXFLAGS) $**
@@ -7324,6 +7373,11 @@ $(OBJS)\monolib_colourcmn.obj: ..\..\src\common\colourcmn.cpp
$(CXX) /c /nologo /TP /Fo$@ $(MONOLIB_CXXFLAGS) $**
!endif
!if "$(USE_GUI)" == "1"
$(OBJS)\monolib_combocmn.obj: ..\..\src\common\combocmn.cpp
$(CXX) /c /nologo /TP /Fo$@ $(MONOLIB_CXXFLAGS) $**
!endif
!if "$(USE_GUI)" == "1"
$(OBJS)\monolib_cmdproc.obj: ..\..\src\common\cmdproc.cpp
$(CXX) /c /nologo /TP /Fo$@ $(MONOLIB_CXXFLAGS) $**
@@ -7674,6 +7728,11 @@ $(OBJS)\monolib_choicbkg.obj: ..\..\src\generic\choicbkg.cpp
$(CXX) /c /nologo /TP /Fo$@ $(MONOLIB_CXXFLAGS) $**
!endif
!if "$(USE_GUI)" == "1"
$(OBJS)\monolib_combog.obj: ..\..\src\generic\combog.cpp
$(CXX) /c /nologo /TP /Fo$@ $(MONOLIB_CXXFLAGS) $**
!endif
!if "$(USE_GUI)" == "1"
$(OBJS)\monolib_dcpsg.obj: ..\..\src\generic\dcpsg.cpp
$(CXX) /c /nologo /TP /Fo$@ $(MONOLIB_CXXFLAGS) $**
@@ -7829,6 +7888,11 @@ $(OBJS)\monolib_laywin.obj: ..\..\src\generic\laywin.cpp
$(CXX) /c /nologo /TP /Fo$@ $(MONOLIB_CXXFLAGS) $**
!endif
!if "$(USE_GUI)" == "1"
$(OBJS)\monolib_odcombo.obj: ..\..\src\generic\odcombo.cpp
$(CXX) /c /nologo /TP /Fo$@ $(MONOLIB_CXXFLAGS) $**
!endif
!if "$(USE_GUI)" == "1"
$(OBJS)\monolib_propdlg.obj: ..\..\src\generic\propdlg.cpp
$(CXX) /c /nologo /TP /Fo$@ $(MONOLIB_CXXFLAGS) $**
@@ -8487,6 +8551,9 @@ $(OBJS)\coredll_volume.obj: ..\..\src\msw\volume.cpp
$(OBJS)\coredll_colordlg.obj: ..\..\src\msw\colordlg.cpp
$(CXX) /c /nologo /TP /Fo$@ $(COREDLL_CXXFLAGS) $**
$(OBJS)\coredll_combo.obj: ..\..\src\msw\combo.cpp
$(CXX) /c /nologo /TP /Fo$@ $(COREDLL_CXXFLAGS) $**
$(OBJS)\coredll_dirdlg.obj: ..\..\src\msw\dirdlg.cpp
$(CXX) /c /nologo /TP /Fo$@ $(COREDLL_CXXFLAGS) $**
@@ -9159,6 +9226,11 @@ $(OBJS)\coredll_colourcmn.obj: ..\..\src\common\colourcmn.cpp
$(CXX) /c /nologo /TP /Fo$@ $(COREDLL_CXXFLAGS) $**
!endif
!if "$(USE_GUI)" == "1"
$(OBJS)\coredll_combocmn.obj: ..\..\src\common\combocmn.cpp
$(CXX) /c /nologo /TP /Fo$@ $(COREDLL_CXXFLAGS) $**
!endif
!if "$(USE_GUI)" == "1"
$(OBJS)\coredll_cmdproc.obj: ..\..\src\common\cmdproc.cpp
$(CXX) /c /nologo /TP /Fo$@ $(COREDLL_CXXFLAGS) $**
@@ -9509,6 +9581,11 @@ $(OBJS)\coredll_choicbkg.obj: ..\..\src\generic\choicbkg.cpp
$(CXX) /c /nologo /TP /Fo$@ $(COREDLL_CXXFLAGS) $**
!endif
!if "$(USE_GUI)" == "1"
$(OBJS)\coredll_combog.obj: ..\..\src\generic\combog.cpp
$(CXX) /c /nologo /TP /Fo$@ $(COREDLL_CXXFLAGS) $**
!endif
!if "$(USE_GUI)" == "1"
$(OBJS)\coredll_dcpsg.obj: ..\..\src\generic\dcpsg.cpp
$(CXX) /c /nologo /TP /Fo$@ $(COREDLL_CXXFLAGS) $**
@@ -9641,6 +9718,9 @@ $(OBJS)\corelib_volume.obj: ..\..\src\msw\volume.cpp
$(OBJS)\corelib_colordlg.obj: ..\..\src\msw\colordlg.cpp
$(CXX) /c /nologo /TP /Fo$@ $(CORELIB_CXXFLAGS) $**
$(OBJS)\corelib_combo.obj: ..\..\src\msw\combo.cpp
$(CXX) /c /nologo /TP /Fo$@ $(CORELIB_CXXFLAGS) $**
$(OBJS)\corelib_dirdlg.obj: ..\..\src\msw\dirdlg.cpp
$(CXX) /c /nologo /TP /Fo$@ $(CORELIB_CXXFLAGS) $**
@@ -10313,6 +10393,11 @@ $(OBJS)\corelib_colourcmn.obj: ..\..\src\common\colourcmn.cpp
$(CXX) /c /nologo /TP /Fo$@ $(CORELIB_CXXFLAGS) $**
!endif
!if "$(USE_GUI)" == "1"
$(OBJS)\corelib_combocmn.obj: ..\..\src\common\combocmn.cpp
$(CXX) /c /nologo /TP /Fo$@ $(CORELIB_CXXFLAGS) $**
!endif
!if "$(USE_GUI)" == "1"
$(OBJS)\corelib_cmdproc.obj: ..\..\src\common\cmdproc.cpp
$(CXX) /c /nologo /TP /Fo$@ $(CORELIB_CXXFLAGS) $**
@@ -10663,6 +10748,11 @@ $(OBJS)\corelib_choicbkg.obj: ..\..\src\generic\choicbkg.cpp
$(CXX) /c /nologo /TP /Fo$@ $(CORELIB_CXXFLAGS) $**
!endif
!if "$(USE_GUI)" == "1"
$(OBJS)\corelib_combog.obj: ..\..\src\generic\combog.cpp
$(CXX) /c /nologo /TP /Fo$@ $(CORELIB_CXXFLAGS) $**
!endif
!if "$(USE_GUI)" == "1"
$(OBJS)\corelib_dcpsg.obj: ..\..\src\generic\dcpsg.cpp
$(CXX) /c /nologo /TP /Fo$@ $(CORELIB_CXXFLAGS) $**
@@ -10807,6 +10897,9 @@ $(OBJS)\advdll_helpext.obj: ..\..\src\generic\helpext.cpp
$(OBJS)\advdll_laywin.obj: ..\..\src\generic\laywin.cpp
$(CXX) /c /nologo /TP /Fo$@ $(ADVDLL_CXXFLAGS) $**
$(OBJS)\advdll_odcombo.obj: ..\..\src\generic\odcombo.cpp
$(CXX) /c /nologo /TP /Fo$@ $(ADVDLL_CXXFLAGS) $**
$(OBJS)\advdll_propdlg.obj: ..\..\src\generic\propdlg.cpp
$(CXX) /c /nologo /TP /Fo$@ $(ADVDLL_CXXFLAGS) $**
@@ -10885,6 +10978,9 @@ $(OBJS)\advlib_helpext.obj: ..\..\src\generic\helpext.cpp
$(OBJS)\advlib_laywin.obj: ..\..\src\generic\laywin.cpp
$(CXX) /c /nologo /TP /Fo$@ $(ADVLIB_CXXFLAGS) $**
$(OBJS)\advlib_odcombo.obj: ..\..\src\generic\odcombo.cpp
$(CXX) /c /nologo /TP /Fo$@ $(ADVLIB_CXXFLAGS) $**
$(OBJS)\advlib_propdlg.obj: ..\..\src\generic\propdlg.cpp
$(CXX) /c /nologo /TP /Fo$@ $(ADVLIB_CXXFLAGS) $**

View File

@@ -239,6 +239,7 @@ ____CORE_SRC_FILENAMES_OBJECTS = &
$(OBJS)\monodll_checkbox.obj &
$(OBJS)\monodll_choice.obj &
$(OBJS)\monodll_colordlg.obj &
$(OBJS)\monodll_combo.obj &
$(OBJS)\monodll_combobox.obj &
$(OBJS)\monodll_control.obj &
$(OBJS)\monodll_dialog.obj &
@@ -288,6 +289,7 @@ ____CORE_SRC_FILENAMES_OBJECTS = &
$(OBJS)\monodll_choiccmn.obj &
$(OBJS)\monodll_clipcmn.obj &
$(OBJS)\monodll_colourcmn.obj &
$(OBJS)\monodll_combocmn.obj &
$(OBJS)\monodll_cmdproc.obj &
$(OBJS)\monodll_cmndata.obj &
$(OBJS)\monodll_containr.obj &
@@ -358,6 +360,7 @@ ____CORE_SRC_FILENAMES_OBJECTS = &
$(OBJS)\monodll_busyinfo.obj &
$(OBJS)\monodll_choicdgg.obj &
$(OBJS)\monodll_choicbkg.obj &
$(OBJS)\monodll_combog.obj &
$(OBJS)\monodll_dcpsg.obj &
$(OBJS)\monodll_dirctrlg.obj &
$(OBJS)\monodll_dragimgg.obj &
@@ -490,6 +493,7 @@ ____CORE_SRC_FILENAMES_OBJECTS = &
$(OBJS)\monodll_choiccmn.obj &
$(OBJS)\monodll_clipcmn.obj &
$(OBJS)\monodll_colourcmn.obj &
$(OBJS)\monodll_combocmn.obj &
$(OBJS)\monodll_cmdproc.obj &
$(OBJS)\monodll_cmndata.obj &
$(OBJS)\monodll_containr.obj &
@@ -560,6 +564,7 @@ ____CORE_SRC_FILENAMES_OBJECTS = &
$(OBJS)\monodll_busyinfo.obj &
$(OBJS)\monodll_choicdgg.obj &
$(OBJS)\monodll_choicbkg.obj &
$(OBJS)\monodll_combog.obj &
$(OBJS)\monodll_dcpsg.obj &
$(OBJS)\monodll_dirctrlg.obj &
$(OBJS)\monodll_dragimgg.obj &
@@ -596,6 +601,7 @@ ____ADVANCED_SRC_FILENAMES_OBJECTS = &
$(OBJS)\monodll_gridsel.obj &
$(OBJS)\monodll_helpext.obj &
$(OBJS)\monodll_laywin.obj &
$(OBJS)\monodll_odcombo.obj &
$(OBJS)\monodll_propdlg.obj &
$(OBJS)\monodll_sashwin.obj &
$(OBJS)\monodll_splash.obj &
@@ -624,6 +630,7 @@ ____ADVANCED_SRC_FILENAMES_OBJECTS = &
$(OBJS)\monodll_gridsel.obj &
$(OBJS)\monodll_helpext.obj &
$(OBJS)\monodll_laywin.obj &
$(OBJS)\monodll_odcombo.obj &
$(OBJS)\monodll_propdlg.obj &
$(OBJS)\monodll_sashwin.obj &
$(OBJS)\monodll_splash.obj &
@@ -790,6 +797,7 @@ ____CORE_SRC_FILENAMES_1_OBJECTS = &
$(OBJS)\monolib_checkbox.obj &
$(OBJS)\monolib_choice.obj &
$(OBJS)\monolib_colordlg.obj &
$(OBJS)\monolib_combo.obj &
$(OBJS)\monolib_combobox.obj &
$(OBJS)\monolib_control.obj &
$(OBJS)\monolib_dialog.obj &
@@ -839,6 +847,7 @@ ____CORE_SRC_FILENAMES_1_OBJECTS = &
$(OBJS)\monolib_choiccmn.obj &
$(OBJS)\monolib_clipcmn.obj &
$(OBJS)\monolib_colourcmn.obj &
$(OBJS)\monolib_combocmn.obj &
$(OBJS)\monolib_cmdproc.obj &
$(OBJS)\monolib_cmndata.obj &
$(OBJS)\monolib_containr.obj &
@@ -909,6 +918,7 @@ ____CORE_SRC_FILENAMES_1_OBJECTS = &
$(OBJS)\monolib_busyinfo.obj &
$(OBJS)\monolib_choicdgg.obj &
$(OBJS)\monolib_choicbkg.obj &
$(OBJS)\monolib_combog.obj &
$(OBJS)\monolib_dcpsg.obj &
$(OBJS)\monolib_dirctrlg.obj &
$(OBJS)\monolib_dragimgg.obj &
@@ -1041,6 +1051,7 @@ ____CORE_SRC_FILENAMES_1_OBJECTS = &
$(OBJS)\monolib_choiccmn.obj &
$(OBJS)\monolib_clipcmn.obj &
$(OBJS)\monolib_colourcmn.obj &
$(OBJS)\monolib_combocmn.obj &
$(OBJS)\monolib_cmdproc.obj &
$(OBJS)\monolib_cmndata.obj &
$(OBJS)\monolib_containr.obj &
@@ -1111,6 +1122,7 @@ ____CORE_SRC_FILENAMES_1_OBJECTS = &
$(OBJS)\monolib_busyinfo.obj &
$(OBJS)\monolib_choicdgg.obj &
$(OBJS)\monolib_choicbkg.obj &
$(OBJS)\monolib_combog.obj &
$(OBJS)\monolib_dcpsg.obj &
$(OBJS)\monolib_dirctrlg.obj &
$(OBJS)\monolib_dragimgg.obj &
@@ -1147,6 +1159,7 @@ ____ADVANCED_SRC_FILENAMES_1_OBJECTS = &
$(OBJS)\monolib_gridsel.obj &
$(OBJS)\monolib_helpext.obj &
$(OBJS)\monolib_laywin.obj &
$(OBJS)\monolib_odcombo.obj &
$(OBJS)\monolib_propdlg.obj &
$(OBJS)\monolib_sashwin.obj &
$(OBJS)\monolib_splash.obj &
@@ -1175,6 +1188,7 @@ ____ADVANCED_SRC_FILENAMES_1_OBJECTS = &
$(OBJS)\monolib_gridsel.obj &
$(OBJS)\monolib_helpext.obj &
$(OBJS)\monolib_laywin.obj &
$(OBJS)\monolib_odcombo.obj &
$(OBJS)\monolib_propdlg.obj &
$(OBJS)\monolib_sashwin.obj &
$(OBJS)\monolib_splash.obj &
@@ -1287,6 +1301,7 @@ ____CORE_SRC_FILENAMES_2_OBJECTS = &
$(OBJS)\coredll_checkbox.obj &
$(OBJS)\coredll_choice.obj &
$(OBJS)\coredll_colordlg.obj &
$(OBJS)\coredll_combo.obj &
$(OBJS)\coredll_combobox.obj &
$(OBJS)\coredll_control.obj &
$(OBJS)\coredll_dialog.obj &
@@ -1336,6 +1351,7 @@ ____CORE_SRC_FILENAMES_2_OBJECTS = &
$(OBJS)\coredll_choiccmn.obj &
$(OBJS)\coredll_clipcmn.obj &
$(OBJS)\coredll_colourcmn.obj &
$(OBJS)\coredll_combocmn.obj &
$(OBJS)\coredll_cmdproc.obj &
$(OBJS)\coredll_cmndata.obj &
$(OBJS)\coredll_containr.obj &
@@ -1406,6 +1422,7 @@ ____CORE_SRC_FILENAMES_2_OBJECTS = &
$(OBJS)\coredll_busyinfo.obj &
$(OBJS)\coredll_choicdgg.obj &
$(OBJS)\coredll_choicbkg.obj &
$(OBJS)\coredll_combog.obj &
$(OBJS)\coredll_dcpsg.obj &
$(OBJS)\coredll_dirctrlg.obj &
$(OBJS)\coredll_dragimgg.obj &
@@ -1538,6 +1555,7 @@ ____CORE_SRC_FILENAMES_2_OBJECTS = &
$(OBJS)\coredll_choiccmn.obj &
$(OBJS)\coredll_clipcmn.obj &
$(OBJS)\coredll_colourcmn.obj &
$(OBJS)\coredll_combocmn.obj &
$(OBJS)\coredll_cmdproc.obj &
$(OBJS)\coredll_cmndata.obj &
$(OBJS)\coredll_containr.obj &
@@ -1608,6 +1626,7 @@ ____CORE_SRC_FILENAMES_2_OBJECTS = &
$(OBJS)\coredll_busyinfo.obj &
$(OBJS)\coredll_choicdgg.obj &
$(OBJS)\coredll_choicbkg.obj &
$(OBJS)\coredll_combog.obj &
$(OBJS)\coredll_dcpsg.obj &
$(OBJS)\coredll_dirctrlg.obj &
$(OBJS)\coredll_dragimgg.obj &
@@ -1700,6 +1719,7 @@ ____CORE_SRC_FILENAMES_3_OBJECTS = &
$(OBJS)\corelib_checkbox.obj &
$(OBJS)\corelib_choice.obj &
$(OBJS)\corelib_colordlg.obj &
$(OBJS)\corelib_combo.obj &
$(OBJS)\corelib_combobox.obj &
$(OBJS)\corelib_control.obj &
$(OBJS)\corelib_dialog.obj &
@@ -1749,6 +1769,7 @@ ____CORE_SRC_FILENAMES_3_OBJECTS = &
$(OBJS)\corelib_choiccmn.obj &
$(OBJS)\corelib_clipcmn.obj &
$(OBJS)\corelib_colourcmn.obj &
$(OBJS)\corelib_combocmn.obj &
$(OBJS)\corelib_cmdproc.obj &
$(OBJS)\corelib_cmndata.obj &
$(OBJS)\corelib_containr.obj &
@@ -1819,6 +1840,7 @@ ____CORE_SRC_FILENAMES_3_OBJECTS = &
$(OBJS)\corelib_busyinfo.obj &
$(OBJS)\corelib_choicdgg.obj &
$(OBJS)\corelib_choicbkg.obj &
$(OBJS)\corelib_combog.obj &
$(OBJS)\corelib_dcpsg.obj &
$(OBJS)\corelib_dirctrlg.obj &
$(OBJS)\corelib_dragimgg.obj &
@@ -1951,6 +1973,7 @@ ____CORE_SRC_FILENAMES_3_OBJECTS = &
$(OBJS)\corelib_choiccmn.obj &
$(OBJS)\corelib_clipcmn.obj &
$(OBJS)\corelib_colourcmn.obj &
$(OBJS)\corelib_combocmn.obj &
$(OBJS)\corelib_cmdproc.obj &
$(OBJS)\corelib_cmndata.obj &
$(OBJS)\corelib_containr.obj &
@@ -2021,6 +2044,7 @@ ____CORE_SRC_FILENAMES_3_OBJECTS = &
$(OBJS)\corelib_busyinfo.obj &
$(OBJS)\corelib_choicdgg.obj &
$(OBJS)\corelib_choicbkg.obj &
$(OBJS)\corelib_combog.obj &
$(OBJS)\corelib_dcpsg.obj &
$(OBJS)\corelib_dirctrlg.obj &
$(OBJS)\corelib_dragimgg.obj &
@@ -2066,6 +2090,7 @@ ____ADVANCED_SRC_FILENAMES_2_OBJECTS = &
$(OBJS)\advdll_gridsel.obj &
$(OBJS)\advdll_helpext.obj &
$(OBJS)\advdll_laywin.obj &
$(OBJS)\advdll_odcombo.obj &
$(OBJS)\advdll_propdlg.obj &
$(OBJS)\advdll_sashwin.obj &
$(OBJS)\advdll_splash.obj &
@@ -2094,6 +2119,7 @@ ____ADVANCED_SRC_FILENAMES_2_OBJECTS = &
$(OBJS)\advdll_gridsel.obj &
$(OBJS)\advdll_helpext.obj &
$(OBJS)\advdll_laywin.obj &
$(OBJS)\advdll_odcombo.obj &
$(OBJS)\advdll_propdlg.obj &
$(OBJS)\advdll_sashwin.obj &
$(OBJS)\advdll_splash.obj &
@@ -2131,6 +2157,7 @@ ____ADVANCED_SRC_FILENAMES_3_OBJECTS = &
$(OBJS)\advlib_gridsel.obj &
$(OBJS)\advlib_helpext.obj &
$(OBJS)\advlib_laywin.obj &
$(OBJS)\advlib_odcombo.obj &
$(OBJS)\advlib_propdlg.obj &
$(OBJS)\advlib_sashwin.obj &
$(OBJS)\advlib_splash.obj &
@@ -2159,6 +2186,7 @@ ____ADVANCED_SRC_FILENAMES_3_OBJECTS = &
$(OBJS)\advlib_gridsel.obj &
$(OBJS)\advlib_helpext.obj &
$(OBJS)\advlib_laywin.obj &
$(OBJS)\advlib_odcombo.obj &
$(OBJS)\advlib_propdlg.obj &
$(OBJS)\advlib_sashwin.obj &
$(OBJS)\advlib_splash.obj &
@@ -4638,6 +4666,9 @@ $(OBJS)\monodll_urlmsw.obj : .AUTODEPEND ..\..\src\msw\urlmsw.cpp
$(OBJS)\monodll_colordlg.obj : .AUTODEPEND ..\..\src\msw\colordlg.cpp
$(CXX) -bt=nt -zq -fo=$^@ $(MONODLL_CXXFLAGS) $<
$(OBJS)\monodll_combo.obj : .AUTODEPEND ..\..\src\msw\combo.cpp
$(CXX) -bt=nt -zq -fo=$^@ $(MONODLL_CXXFLAGS) $<
$(OBJS)\monodll_dirdlg.obj : .AUTODEPEND ..\..\src\msw\dirdlg.cpp
$(CXX) -bt=nt -zq -fo=$^@ $(MONODLL_CXXFLAGS) $<
@@ -5653,6 +5684,11 @@ $(OBJS)\monodll_colourcmn.obj : .AUTODEPEND ..\..\src\common\colourcmn.cpp
$(CXX) -bt=nt -zq -fo=$^@ $(MONODLL_CXXFLAGS) $<
!endif
!ifeq USE_GUI 1
$(OBJS)\monodll_combocmn.obj : .AUTODEPEND ..\..\src\common\combocmn.cpp
$(CXX) -bt=nt -zq -fo=$^@ $(MONODLL_CXXFLAGS) $<
!endif
!ifeq USE_GUI 1
$(OBJS)\monodll_cmdproc.obj : .AUTODEPEND ..\..\src\common\cmdproc.cpp
$(CXX) -bt=nt -zq -fo=$^@ $(MONODLL_CXXFLAGS) $<
@@ -6003,6 +6039,11 @@ $(OBJS)\monodll_choicbkg.obj : .AUTODEPEND ..\..\src\generic\choicbkg.cpp
$(CXX) -bt=nt -zq -fo=$^@ $(MONODLL_CXXFLAGS) $<
!endif
!ifeq USE_GUI 1
$(OBJS)\monodll_combog.obj : .AUTODEPEND ..\..\src\generic\combog.cpp
$(CXX) -bt=nt -zq -fo=$^@ $(MONODLL_CXXFLAGS) $<
!endif
!ifeq USE_GUI 1
$(OBJS)\monodll_dcpsg.obj : .AUTODEPEND ..\..\src\generic\dcpsg.cpp
$(CXX) -bt=nt -zq -fo=$^@ $(MONODLL_CXXFLAGS) $<
@@ -6158,6 +6199,11 @@ $(OBJS)\monodll_laywin.obj : .AUTODEPEND ..\..\src\generic\laywin.cpp
$(CXX) -bt=nt -zq -fo=$^@ $(MONODLL_CXXFLAGS) $<
!endif
!ifeq USE_GUI 1
$(OBJS)\monodll_odcombo.obj : .AUTODEPEND ..\..\src\generic\odcombo.cpp
$(CXX) -bt=nt -zq -fo=$^@ $(MONODLL_CXXFLAGS) $<
!endif
!ifeq USE_GUI 1
$(OBJS)\monodll_propdlg.obj : .AUTODEPEND ..\..\src\generic\propdlg.cpp
$(CXX) -bt=nt -zq -fo=$^@ $(MONODLL_CXXFLAGS) $<
@@ -6504,6 +6550,9 @@ $(OBJS)\monolib_urlmsw.obj : .AUTODEPEND ..\..\src\msw\urlmsw.cpp
$(OBJS)\monolib_colordlg.obj : .AUTODEPEND ..\..\src\msw\colordlg.cpp
$(CXX) -bt=nt -zq -fo=$^@ $(MONOLIB_CXXFLAGS) $<
$(OBJS)\monolib_combo.obj : .AUTODEPEND ..\..\src\msw\combo.cpp
$(CXX) -bt=nt -zq -fo=$^@ $(MONOLIB_CXXFLAGS) $<
$(OBJS)\monolib_dirdlg.obj : .AUTODEPEND ..\..\src\msw\dirdlg.cpp
$(CXX) -bt=nt -zq -fo=$^@ $(MONOLIB_CXXFLAGS) $<
@@ -7519,6 +7568,11 @@ $(OBJS)\monolib_colourcmn.obj : .AUTODEPEND ..\..\src\common\colourcmn.cpp
$(CXX) -bt=nt -zq -fo=$^@ $(MONOLIB_CXXFLAGS) $<
!endif
!ifeq USE_GUI 1
$(OBJS)\monolib_combocmn.obj : .AUTODEPEND ..\..\src\common\combocmn.cpp
$(CXX) -bt=nt -zq -fo=$^@ $(MONOLIB_CXXFLAGS) $<
!endif
!ifeq USE_GUI 1
$(OBJS)\monolib_cmdproc.obj : .AUTODEPEND ..\..\src\common\cmdproc.cpp
$(CXX) -bt=nt -zq -fo=$^@ $(MONOLIB_CXXFLAGS) $<
@@ -7869,6 +7923,11 @@ $(OBJS)\monolib_choicbkg.obj : .AUTODEPEND ..\..\src\generic\choicbkg.cpp
$(CXX) -bt=nt -zq -fo=$^@ $(MONOLIB_CXXFLAGS) $<
!endif
!ifeq USE_GUI 1
$(OBJS)\monolib_combog.obj : .AUTODEPEND ..\..\src\generic\combog.cpp
$(CXX) -bt=nt -zq -fo=$^@ $(MONOLIB_CXXFLAGS) $<
!endif
!ifeq USE_GUI 1
$(OBJS)\monolib_dcpsg.obj : .AUTODEPEND ..\..\src\generic\dcpsg.cpp
$(CXX) -bt=nt -zq -fo=$^@ $(MONOLIB_CXXFLAGS) $<
@@ -8024,6 +8083,11 @@ $(OBJS)\monolib_laywin.obj : .AUTODEPEND ..\..\src\generic\laywin.cpp
$(CXX) -bt=nt -zq -fo=$^@ $(MONOLIB_CXXFLAGS) $<
!endif
!ifeq USE_GUI 1
$(OBJS)\monolib_odcombo.obj : .AUTODEPEND ..\..\src\generic\odcombo.cpp
$(CXX) -bt=nt -zq -fo=$^@ $(MONOLIB_CXXFLAGS) $<
!endif
!ifeq USE_GUI 1
$(OBJS)\monolib_propdlg.obj : .AUTODEPEND ..\..\src\generic\propdlg.cpp
$(CXX) -bt=nt -zq -fo=$^@ $(MONOLIB_CXXFLAGS) $<
@@ -8682,6 +8746,9 @@ $(OBJS)\coredll_volume.obj : .AUTODEPEND ..\..\src\msw\volume.cpp
$(OBJS)\coredll_colordlg.obj : .AUTODEPEND ..\..\src\msw\colordlg.cpp
$(CXX) -bt=nt -zq -fo=$^@ $(COREDLL_CXXFLAGS) $<
$(OBJS)\coredll_combo.obj : .AUTODEPEND ..\..\src\msw\combo.cpp
$(CXX) -bt=nt -zq -fo=$^@ $(COREDLL_CXXFLAGS) $<
$(OBJS)\coredll_dirdlg.obj : .AUTODEPEND ..\..\src\msw\dirdlg.cpp
$(CXX) -bt=nt -zq -fo=$^@ $(COREDLL_CXXFLAGS) $<
@@ -9454,6 +9521,11 @@ $(OBJS)\coredll_colourcmn.obj : .AUTODEPEND ..\..\src\common\colourcmn.cpp
$(CXX) -bt=nt -zq -fo=$^@ $(COREDLL_CXXFLAGS) $<
!endif
!ifeq USE_GUI 1
$(OBJS)\coredll_combocmn.obj : .AUTODEPEND ..\..\src\common\combocmn.cpp
$(CXX) -bt=nt -zq -fo=$^@ $(COREDLL_CXXFLAGS) $<
!endif
!ifeq USE_GUI 1
$(OBJS)\coredll_cmdproc.obj : .AUTODEPEND ..\..\src\common\cmdproc.cpp
$(CXX) -bt=nt -zq -fo=$^@ $(COREDLL_CXXFLAGS) $<
@@ -9804,6 +9876,11 @@ $(OBJS)\coredll_choicbkg.obj : .AUTODEPEND ..\..\src\generic\choicbkg.cpp
$(CXX) -bt=nt -zq -fo=$^@ $(COREDLL_CXXFLAGS) $<
!endif
!ifeq USE_GUI 1
$(OBJS)\coredll_combog.obj : .AUTODEPEND ..\..\src\generic\combog.cpp
$(CXX) -bt=nt -zq -fo=$^@ $(COREDLL_CXXFLAGS) $<
!endif
!ifeq USE_GUI 1
$(OBJS)\coredll_dcpsg.obj : .AUTODEPEND ..\..\src\generic\dcpsg.cpp
$(CXX) -bt=nt -zq -fo=$^@ $(COREDLL_CXXFLAGS) $<
@@ -9936,6 +10013,9 @@ $(OBJS)\corelib_volume.obj : .AUTODEPEND ..\..\src\msw\volume.cpp
$(OBJS)\corelib_colordlg.obj : .AUTODEPEND ..\..\src\msw\colordlg.cpp
$(CXX) -bt=nt -zq -fo=$^@ $(CORELIB_CXXFLAGS) $<
$(OBJS)\corelib_combo.obj : .AUTODEPEND ..\..\src\msw\combo.cpp
$(CXX) -bt=nt -zq -fo=$^@ $(CORELIB_CXXFLAGS) $<
$(OBJS)\corelib_dirdlg.obj : .AUTODEPEND ..\..\src\msw\dirdlg.cpp
$(CXX) -bt=nt -zq -fo=$^@ $(CORELIB_CXXFLAGS) $<
@@ -10708,6 +10788,11 @@ $(OBJS)\corelib_colourcmn.obj : .AUTODEPEND ..\..\src\common\colourcmn.cpp
$(CXX) -bt=nt -zq -fo=$^@ $(CORELIB_CXXFLAGS) $<
!endif
!ifeq USE_GUI 1
$(OBJS)\corelib_combocmn.obj : .AUTODEPEND ..\..\src\common\combocmn.cpp
$(CXX) -bt=nt -zq -fo=$^@ $(CORELIB_CXXFLAGS) $<
!endif
!ifeq USE_GUI 1
$(OBJS)\corelib_cmdproc.obj : .AUTODEPEND ..\..\src\common\cmdproc.cpp
$(CXX) -bt=nt -zq -fo=$^@ $(CORELIB_CXXFLAGS) $<
@@ -11058,6 +11143,11 @@ $(OBJS)\corelib_choicbkg.obj : .AUTODEPEND ..\..\src\generic\choicbkg.cpp
$(CXX) -bt=nt -zq -fo=$^@ $(CORELIB_CXXFLAGS) $<
!endif
!ifeq USE_GUI 1
$(OBJS)\corelib_combog.obj : .AUTODEPEND ..\..\src\generic\combog.cpp
$(CXX) -bt=nt -zq -fo=$^@ $(CORELIB_CXXFLAGS) $<
!endif
!ifeq USE_GUI 1
$(OBJS)\corelib_dcpsg.obj : .AUTODEPEND ..\..\src\generic\dcpsg.cpp
$(CXX) -bt=nt -zq -fo=$^@ $(CORELIB_CXXFLAGS) $<
@@ -11202,6 +11292,9 @@ $(OBJS)\advdll_helpext.obj : .AUTODEPEND ..\..\src\generic\helpext.cpp
$(OBJS)\advdll_laywin.obj : .AUTODEPEND ..\..\src\generic\laywin.cpp
$(CXX) -bt=nt -zq -fo=$^@ $(ADVDLL_CXXFLAGS) $<
$(OBJS)\advdll_odcombo.obj : .AUTODEPEND ..\..\src\generic\odcombo.cpp
$(CXX) -bt=nt -zq -fo=$^@ $(ADVDLL_CXXFLAGS) $<
$(OBJS)\advdll_propdlg.obj : .AUTODEPEND ..\..\src\generic\propdlg.cpp
$(CXX) -bt=nt -zq -fo=$^@ $(ADVDLL_CXXFLAGS) $<
@@ -11280,6 +11373,9 @@ $(OBJS)\advlib_helpext.obj : .AUTODEPEND ..\..\src\generic\helpext.cpp
$(OBJS)\advlib_laywin.obj : .AUTODEPEND ..\..\src\generic\laywin.cpp
$(CXX) -bt=nt -zq -fo=$^@ $(ADVLIB_CXXFLAGS) $<
$(OBJS)\advlib_odcombo.obj : .AUTODEPEND ..\..\src\generic\odcombo.cpp
$(CXX) -bt=nt -zq -fo=$^@ $(ADVLIB_CXXFLAGS) $<
$(OBJS)\advlib_propdlg.obj : .AUTODEPEND ..\..\src\generic\propdlg.cpp
$(CXX) -bt=nt -zq -fo=$^@ $(ADVLIB_CXXFLAGS) $<

View File

@@ -648,6 +648,10 @@ SOURCE=..\..\src\generic\laywin.cpp
# End Source File
# Begin Source File
SOURCE=..\..\src\generic\odcombo.cpp
# End Source File
# Begin Source File
SOURCE=..\..\src\generic\propdlg.cpp
# End Source File
# Begin Source File
@@ -1205,6 +1209,10 @@ SOURCE=..\..\include\wx\laywin.h
# End Source File
# Begin Source File
SOURCE=..\..\include\wx\odcombo.h
# End Source File
# Begin Source File
SOURCE=..\..\include\wx\propdlg.h
# End Source File
# Begin Source File

View File

@@ -1319,6 +1319,10 @@ SOURCE=..\..\include\wx\msw\registry.h
# End Source File
# Begin Source File
SOURCE=..\..\include\wx\msw\seh.h
# End Source File
# Begin Source File
SOURCE=..\..\include\wx\msw\stackwalk.h
# End Source File
# Begin Source File

View File

@@ -496,6 +496,10 @@ SOURCE=..\..\src\common\colourcmn.cpp
# End Source File
# Begin Source File
SOURCE=..\..\src\common\combocmn.cpp
# End Source File
# Begin Source File
SOURCE=..\..\src\common\containr.cpp
# End Source File
# Begin Source File
@@ -1308,6 +1312,69 @@ SOURCE=..\..\src\msw\colour.cpp
# End Source File
# Begin Source File
SOURCE=..\..\src\msw\combo.cpp
!IF "$(CFG)" == "core - Win32 DLL Universal Unicode Release"
# PROP Exclude_From_Build 1
!ELSEIF "$(CFG)" == "core - Win32 DLL Universal Unicode Debug"
# PROP Exclude_From_Build 1
!ELSEIF "$(CFG)" == "core - Win32 DLL Universal Release"
# PROP Exclude_From_Build 1
!ELSEIF "$(CFG)" == "core - Win32 DLL Universal Debug"
# PROP Exclude_From_Build 1
!ELSEIF "$(CFG)" == "core - Win32 DLL Unicode Release"
!ELSEIF "$(CFG)" == "core - Win32 DLL Unicode Debug"
!ELSEIF "$(CFG)" == "core - Win32 DLL Release"
!ELSEIF "$(CFG)" == "core - Win32 DLL Debug"
!ELSEIF "$(CFG)" == "core - Win32 Universal Unicode Release"
# PROP Exclude_From_Build 1
!ELSEIF "$(CFG)" == "core - Win32 Universal Unicode Debug"
# PROP Exclude_From_Build 1
!ELSEIF "$(CFG)" == "core - Win32 Universal Release"
# PROP Exclude_From_Build 1
!ELSEIF "$(CFG)" == "core - Win32 Universal Debug"
# PROP Exclude_From_Build 1
!ELSEIF "$(CFG)" == "core - Win32 Unicode Release"
!ELSEIF "$(CFG)" == "core - Win32 Unicode Debug"
!ELSEIF "$(CFG)" == "core - Win32 Release"
!ELSEIF "$(CFG)" == "core - Win32 Debug"
!ENDIF
# End Source File
# Begin Source File
SOURCE=..\..\src\msw\combobox.cpp
!IF "$(CFG)" == "core - Win32 DLL Universal Unicode Release"
@@ -4089,6 +4156,10 @@ SOURCE=..\..\src\generic\colrdlgg.cpp
# End Source File
# Begin Source File
SOURCE=..\..\src\generic\combog.cpp
# End Source File
# Begin Source File
SOURCE=..\..\src\generic\dcpsg.cpp
# End Source File
# Begin Source File
@@ -7484,6 +7555,10 @@ SOURCE=..\..\include\wx\msw\colour.h
# End Source File
# Begin Source File
SOURCE=..\..\include\wx\msw\combo.h
# End Source File
# Begin Source File
SOURCE=..\..\include\wx\msw\combobox.h
# End Source File
# Begin Source File
@@ -7987,6 +8062,10 @@ SOURCE=..\..\include\wx\generic\colrdlgg.h
# End Source File
# Begin Source File
SOURCE=..\..\include\wx\generic\combo.h
# End Source File
# Begin Source File
SOURCE=..\..\include\wx\generic\dataview.h
# End Source File
# Begin Source File
@@ -8439,6 +8518,10 @@ SOURCE=..\..\include\wx\colour.h
# End Source File
# Begin Source File
SOURCE=..\..\include\wx\combo.h
# End Source File
# Begin Source File
SOURCE=..\..\include\wx\combobox.h
# End Source File
# Begin Source File
@@ -8771,6 +8854,10 @@ SOURCE=..\..\include\wx\numdlg.h
# End Source File
# Begin Source File
SOURCE=..\..\include\wx\odcombo.h
# End Source File
# Begin Source File
SOURCE=..\..\include\wx\ownerdrw.h
# End Source File
# Begin Source File

View File

@@ -1051,6 +1051,10 @@ SOURCE=..\..\include\wx\msw\genrcdefs.h
!ENDIF
# End Source File
# Begin Source File
SOURCE=..\..\include\wx\msw\helpbest.h
# End Source File
# End Group
# Begin Group "wxHTML Headers"

633
include/wx/combo.h Normal file
View File

@@ -0,0 +1,633 @@
///////////////////////////////////////////////////////////////////////////////
// Name: wx/combo.h
// Purpose: wxComboControl declaration
// Author: Jaakko Salli
// Modified by:
// Created: Apr-30-2006
// RCS-ID: $Id$
// Copyright: (c) Jaakko Salli
// Licence: wxWindows licence
///////////////////////////////////////////////////////////////////////////////
#ifndef _WX_COMBOCONTROL_H_BASE_
#define _WX_COMBOCONTROL_H_BASE_
/*
A few words about all the classes defined in this file are probably in
order: why do we need extra wxComboControl and wxComboPopup classes?
This is because a traditional combobox is a combination of a text control
(with a button allowing to open the pop down list) with a listbox and
wxComboBox class is exactly such control, however we want to also have other
combinations - in fact, we want to allow anything at all to be used as pop
down list, not just a wxListBox.
So we define a base wxComboControl which can use any control as pop down
list and wxComboBox deriving from it which implements the standard wxWidgets
combobox API. wxComboControl needs to be told somehow which control to use
and this is done by SetPopupControl(). However, we need something more than
just a wxControl in this method as, for example, we need to call
SetSelection("initial text value") and wxControl doesn't have such method.
So we also need a wxComboPopup which is just a very simple interface which
must be implemented by a control to be usable as a popup.
We couldn't derive wxComboPopup from wxControl as this would make it
impossible to have a class deriving from both wxListBx and from it, so
instead it is just a mix-in.
*/
#include "wx/defs.h"
#if wxUSE_COMBOCONTROL
#include "wx/textctrl.h"
#include "wx/button.h"
#include "wx/combobox.h"
#include "wx/renderer.h" // this is needed for wxCONTROL_XXX flags
class WXDLLEXPORT wxComboPopup;
//
// New window styles for wxComboControlBase
//
enum
{
// Double-clicking a read-only combo triggers call to popup's OnComboPopup.
// In wxOwnerDrawnComboBox, for instance, it cycles item.
wxCC_SPECIAL_DCLICK = 0x0100,
// Use keyboard behaviour alternate to platform default:
// Up an down keys will show popup instead of cycling value.
wxCC_ALT_KEYS = 0x0200,
// Dropbutton acts like standard push button.
wxCC_STD_BUTTON = 0x0400,
};
// wxComboControl internal flags
enum
{
// First those that can be passed to Customize.
// It is Windows style for all flags to be clear.
// Button is preferred outside the border (GTK style)
wxCC_BUTTON_OUTSIDE_BORDER = 0x0001,
// Show popup on mouse up instead of mouse down (which is the Windows style)
wxCC_POPUP_ON_MOUSE_UP = 0x0002,
// All text is not automatically selected on click
wxCC_NO_TEXT_AUTO_SELECT = 0x0004,
// Internal use: signals creation is complete
wxCC_IFLAG_CREATED = 0x0100,
// Internal use: really put button outside
wxCC_IFLAG_BUTTON_OUTSIDE = 0x0200,
// Internal use: SetTextIndent has been called
wxCC_IFLAG_INDENT_SET = 0x0400,
// Internal use: Set wxTAB_TRAVERSAL to parent when popup is dismissed
wxCC_IFLAG_PARENT_TAB_TRAVERSAL = 0x0800,
};
// Flags used by PreprocessMouseEvent and HandleButtonMouseEvent
enum
{
wxCC_MF_ON_BUTTON = 0x0001, // cursor is on dropbutton area
};
// Namespace for wxComboControl feature flags
struct wxComboControlFeatures
{
enum
{
MovableButton = 0x0001, // Button can be on either side of control
BitmapButton = 0x0002, // Button may be replaced with bitmap
ButtonSpacing = 0x0004, // Button can have spacing from the edge
// of the control
TextIndent = 0x0008, // SetTextIndent can be used
PaintControl = 0x0010, // Combo control itself can be custom painted
PaintWritable = 0x0020, // A variable-width area in front of writable
// combo control's textctrl can be custom
// painted
Borderless = 0x0040, // wxNO_BORDER window style works
// There are no feature flags for...
// PushButtonBitmapBackground - if its in wxRendererNative, then it should be
// not an issue to have it automatically under the bitmap.
All = MovableButton|BitmapButton|
ButtonSpacing|TextIndent|
PaintControl|PaintWritable|
Borderless,
};
};
class WXDLLEXPORT wxComboControlBase : public wxControl
{
friend class wxComboPopup;
public:
// ctors and such
wxComboControlBase() : wxControl() { Init(); }
bool Create(wxWindow *parent,
wxWindowID id,
const wxString& value,
const wxPoint& pos,
const wxSize& size,
long style,
const wxValidator& validator,
const wxString& name);
virtual ~wxComboControlBase();
// show/hide popup window
virtual void ShowPopup();
virtual void HidePopup();
// Override for totally custom combo action
virtual void OnButtonClick();
// return true if the popup is currently shown
bool IsPopupShown() const { return m_isPopupShown; }
// set interface class instance derived from wxComboPopup
void SetPopupControl( wxComboPopup* iface );
// get interface class instance derived from wxComboPopup
wxComboPopup* GetPopup() const { return m_popupInterface; }
// get the popup window containing the popup control
wxWindow *GetPopupWindow() const { return m_winPopup; }
// get the popup control/panel in window
wxWindow *GetPopupControl() const { return m_popup; }
// Get the text control which is part of the combobox.
wxTextCtrl *GetTextCtrl() const { return m_text; }
// get the dropdown button which is part of the combobox
// note: its not necessarily a wxButton or wxBitmapButton
wxWindow *GetButton() const { return m_btn; }
// forward these methods to all subcontrols
virtual bool Enable(bool enable = true);
virtual bool Show(bool show = true);
virtual bool SetFont(const wxFont& font);
#if wxUSE_TOOLTIPS
virtual void DoSetToolTip( wxToolTip *tip );
#endif
// wxTextCtrl methods - for readonly combo they should return
// without errors.
virtual wxString GetValue() const;
virtual void SetValue(const wxString& value);
virtual void Copy();
virtual void Cut();
virtual void Paste();
virtual void SetInsertionPoint(long pos);
virtual void SetInsertionPointEnd();
virtual long GetInsertionPoint() const;
virtual long GetLastPosition() const;
virtual void Replace(long from, long to, const wxString& value);
virtual void Remove(long from, long to);
virtual void SetSelection(long from, long to);
virtual void Undo();
//
// Popup customization methods
//
// Sets minimum width of the popup. If wider than combo control, it will extend to the left.
// Remarks:
// * Value -1 indicates the default.
// * Custom popup may choose to ignore this (wxOwnerDrawnComboBox does not).
void SetPopupMinWidth( int width )
{
m_widthMinPopup = width;
}
// Sets preferred maximum height of the popup.
// Remarks:
// * Value -1 indicates the default.
// * Custom popup may choose to ignore this (wxOwnerDrawnComboBox does not).
void SetPopupMaxHeight( int height )
{
m_heightPopup = height;
}
// Extends popup size horizontally, relative to the edges of the combo control.
// Remarks:
// * Popup minimum width may override extLeft (ie. it has higher precedence).
// * Values 0 indicate default.
// * Custom popup may not take this fully into account (wxOwnerDrawnComboBox takes).
void SetPopupExtents( int extLeft, int extRight )
{
m_extLeft = extLeft;
m_extRight = extRight;
}
// Set width, in pixels, of custom paint area in writable combo.
// In read-only, used to indicate area that is not covered by the
// focus rectangle (which may or may not be drawn, depending on the
// popup type).
void SetCustomPaintWidth( int width );
int GetCustomPaintWidth() const { return m_widthCustomPaint; }
// Set side of the control to which the popup will align itself.
// Valid values are wxLEFT, wxRIGHT and 0. The default value 0 wmeans
// that the side of the button will be used.
void SetPopupAnchor( int anchorSide )
{
m_anchorSide = anchorSide;
}
// Set position of dropdown button.
// width: 0 > for specific custom width, negative to adjust to smaller than default
// height: 0 > for specific custom height, negative to adjust to smaller than default
// side: wxLEFT or wxRIGHT, indicates on which side the button will be placed.
// spacingX: empty space on sides of the button. Default is 0.
// Remarks:
// There is no spacingY - the button will be centered vertically.
void SetButtonPosition( int width = 0, int height = 0, int side = wxRIGHT,
int spacingX = 0 /*, int spacingY = 0*/ );
//
// Sets dropbutton to be drawn with custom bitmaps.
//
// bmpNormal: drawn when cursor is not on button
// blankButtonBg: Draw blank button background below the image.
// NOTE! This is only properly supported on platforms with appropriate
// method in wxRendererNative.
// bmpPressed: drawn when button is depressed
// bmpHover: drawn when cursor hovers on button. This is ignored on platforms
// that do not generally display hover differently.
// bmpDisabled: drawn when combobox is disabled.
void SetButtonBitmaps( const wxBitmap& bmpNormal,
bool blankButtonBg = false,
const wxBitmap& bmpPressed = wxNullBitmap,
const wxBitmap& bmpHover = wxNullBitmap,
const wxBitmap& bmpDisabled = wxNullBitmap );
//
// This will set the space in pixels between left edge of the control and the
// text, regardless whether control is read-only (ie. no wxTextCtrl) or not.
// Platform-specific default can be set with value-1.
// Remarks
// * This method may do nothing on some native implementations.
void SetTextIndent( int indent );
// Returns actual indentation in pixels.
wxCoord GetTextIndent() const
{
return m_absIndent;
}
//
// Utilies needed by the popups or native implementations
//
// Draws focus background (on combo control) in a way typical on platform.
// Unless you plan to paint your own focus indicator, you should always call this
// in your wxComboPopup::PaintComboControl implementation.
// In addition, it sets pen and text colour to what looks good and proper
// against the background.
// flags: wxRendererNative flags: wxCONTROL_ISSUBMENU: is drawing a list item instead of combo control
// wxCONTROL_SELECTED: list item is selected
// wxCONTROL_DISABLED: control/item is disabled
virtual void DrawFocusBackground( wxDC& dc, const wxRect& rect, int flags );
// Returns true if focus indicator should be drawn.
bool ShouldDrawFocus() const
{
const wxWindow* curFocus = FindFocus();
return ( !m_isPopupShown &&
(curFocus == this || (m_btn && curFocus == m_btn)) &&
(m_windowStyle & wxCB_READONLY) );
}
// These methods return references to appropriate dropbutton bitmaps
const wxBitmap& GetBitmapNormal() const { return m_bmpNormal; }
const wxBitmap& GetBitmapPressed() const { return m_bmpPressed; }
const wxBitmap& GetBitmapHover() const { return m_bmpHover; }
const wxBitmap& GetBitmapDisabled() const { return m_bmpDisabled; }
// Return internal flags
wxUint32 GetInternalFlags() const { return m_iFlags; }
// Return true if Create has finished
bool IsCreated() const { return m_iFlags & wxCC_IFLAG_CREATED ? true : false; }
// Popup may use these as callbacks to measure and draw list items.
// (wxOwnerDrawnComboBox uses these, obviously)
// item: -1 means item is the combo control itself
// flags: wxCC_PAINTING_CONTROL is set if painting to combo control instead of list
// return value: OnDrawListItem must return true if it did anything
virtual bool OnDrawListItem( wxDC& dc, const wxRect& rect, int item, int flags );
// Return item height, or -1 for text height (default)
virtual wxCoord OnMeasureListItem( int item );
// Return item width, or -1 for calculating from text extent (default)
virtual wxCoord OnMeasureListItemWidth( int item );
// NOTE:
// I basicly needed to add callback methods into wxComboControlBase - otherwise it
// will not be easily possible to use wxVListBoxComboPopup from simultaneously existing
// wxComboControl and wxGenericComboControl (since some native implementations
// might not have all the features, I really would like to have this options).
// common code to be called on popup hide/dismiss
void OnPopupDismiss();
protected:
//
// Override these for customization purposes
//
// called from wxSizeEvent handler
virtual void OnResize() = 0;
// Return native text identation (for pure text, not textctrl)
virtual wxCoord GetNativeTextIndent() const;
// Called in syscolourchanged handler and base create
virtual void OnThemeChange();
// Creates wxTextCtrl.
// extraStyle: Extra style parameters
void CreateTextCtrl( int extraStyle, const wxValidator& validator );
// Installs standard input handler to combo (and optionally to the textctrl)
void InstallInputHandlers( bool alsoTextCtrl = true );
// Draws dropbutton. Using wxRenderer or bitmaps, as appropriate.
void DrawButton( wxDC& dc, const wxRect& rect, bool paintBg = true );
// Call if cursor is on button area or mouse is captured for the button.
//bool HandleButtonMouseEvent( wxMouseEvent& event, bool isInside );
bool HandleButtonMouseEvent( wxMouseEvent& event, int flags );
// Conversion to double-clicks and some basic filtering
// returns true if event was consumed or filtered (event type is also set to 0 in this case)
//bool PreprocessMouseEvent( wxMouseEvent& event, bool isOnButtonArea );
bool PreprocessMouseEvent( wxMouseEvent& event, int flags );
//
// This will handle left_down and left_dclick events outside button in a Windows-like manner.
// If you need alternate behaviour, it is recommended you manipulate and filter events to it
// instead of building your own handling routine (for reference, on wxEVT_LEFT_DOWN it will
// toggle popup and on wxEVT_LEFT_DCLICK it will do the same or run the popup's dclick method,
// if defined - you should pass events of other types of it for common processing).
void HandleNormalMouseEvent( wxMouseEvent& event );
// Creates popup window, calls interface->Create(), etc
void CreatePopup();
// override the base class virtuals involved in geometry calculations
virtual void DoMoveWindow(int x, int y, int width, int height);
virtual wxSize DoGetBestSize() const;
// Recalculates button and textctrl areas. Called when size or button setup change.
// btnWidth: default/calculated width of the dropbutton. 0 means unchanged,
// just recalculate.
void CalculateAreas( int btnWidth = 0 );
// Standard textctrl positioning routine. Just give it platform-dependant
// textctrl coordinate adjustment.
void PositionTextCtrl( int textCtrlXAdjust, int textCtrlYAdjust );
// event handlers
void OnSizeEvent( wxSizeEvent& event );
void OnFocusEvent(wxFocusEvent& event);
void OnTextCtrlEvent(wxCommandEvent& event);
void OnSysColourChanged(wxSysColourChangedEvent& event);
// Set customization flags (directs how wxComboControlBase helpers behave)
void Customize( wxUint32 flags ) { m_iFlags |= flags; }
// Dispatches size event and refreshes
void RecalcAndRefresh();
// Used by OnPaints of derived classes
wxBitmap& GetBufferBitmap(const wxSize& sz) const;
// This is used when m_text is hidden (readonly).
wxString m_valueString;
// the text control and button we show all the time
wxTextCtrl* m_text;
wxWindow* m_btn;
// wxPopupWindow or similar containing the window managed by the interface.
wxWindow* m_winPopup;
// the popup control/panel
wxWindow* m_popup;
// popup interface
wxComboPopup* m_popupInterface;
// this is for this control itself
wxEvtHandler* m_extraEvtHandler;
// this is for text
wxEvtHandler* m_textEvtHandler;
// this is for the top level window
wxEvtHandler* m_toplevEvtHandler;
// this is for the control in popup
wxEvtHandler* m_popupExtraHandler;
// needed for "instant" double-click handling
wxLongLong m_timeLastMouseUp;
// used to prevent immediate re-popupping incase closed popup
// by clicking on the combo control (needed because of inconsistent
// transient implementation across platforms).
wxLongLong m_timeCanAcceptClick;
// how much popup should expand to the left/right of the control
wxCoord m_extLeft;
wxCoord m_extRight;
// minimum popup width
wxCoord m_widthMinPopup;
// preferred popup height
wxCoord m_heightPopup;
// how much of writable combo is custom-paint by callback?
// also used to indicate area that is not covered by "blue"
// selection indicator.
wxCoord m_widthCustomPaint;
// absolute text indentation, in pixels
wxCoord m_absIndent;
// side on which the popup is aligned
int m_anchorSide;
// Width of the "fake" border
wxCoord m_widthCustomBorder;
// The button and textctrl click/paint areas
wxRect m_tcArea;
wxRect m_btnArea;
// current button state (uses renderer flags)
int m_btnState;
// button position
int m_btnWid;
int m_btnHei;
int m_btnSide;
int m_btnSpacingX;
// last default button width
int m_btnWidDefault;
// custom dropbutton bitmaps
wxBitmap m_bmpNormal;
wxBitmap m_bmpPressed;
wxBitmap m_bmpHover;
wxBitmap m_bmpDisabled;
// area used by the button
wxSize m_btnSize;
// platform-dependant customization and other flags
wxUint32 m_iFlags;
// draw blank button background under bitmap?
bool m_blankButtonBg;
// is the popup window currenty shown?
bool m_isPopupShown;
// Set to 1 on mouse down, 0 on mouse up. Used to eliminate down-less mouse ups.
bool m_downReceived;
private:
void Init();
DECLARE_EVENT_TABLE()
DECLARE_ABSTRACT_CLASS(wxComboControlBase)
};
// ----------------------------------------------------------------------------
// wxComboPopup is the interface which must be implemented by a control to be
// used as a popup by wxComboControl
// ----------------------------------------------------------------------------
// wxComboPopup internal flags
enum
{
wxCP_IFLAG_CREATED = 0x0001, // Set by wxComboControlBase after Create is called
};
class WXDLLEXPORT wxComboPopup
{
friend class wxComboControlBase;
public:
wxComboPopup(wxComboControlBase *combo)
{
m_combo = combo;
m_iFlags = 0;
}
virtual ~wxComboPopup();
// Create the popup child control.
// Return true for success.
virtual bool Create(wxWindow* parent) = 0;
// We must have an associated control which is subclassed by the combobox.
virtual wxWindow *GetControl() = 0;
// Called immediately after the popup is shown
virtual void OnPopup();
// Called when popup is dismissed
virtual void OnDismiss();
// Called just prior to displaying popup.
// Default implementation does nothing.
virtual void SetStringValue( const wxString& value );
// Gets displayed string representation of the value.
virtual wxString GetStringValue() const = 0;
// This is called to custom paint in the combo control itself (ie. not the popup).
// Default implementation draws value as string.
virtual void PaintComboControl( wxDC& dc, const wxRect& rect );
// Receives key events from the parent wxComboControl.
// Events not handled should be skipped, as usual.
virtual void OnComboKeyEvent( wxKeyEvent& event );
// Implement if you need to support special action when user
// double-clicks on the parent wxComboControl.
virtual void OnComboDoubleClick();
// Return final size of popup. Called on every popup, just prior to OnShow.
// minWidth = preferred minimum width for window
// prefHeight = preferred height. Only applies if > 0,
// maxHeight = max height for window, as limited by screen size
// and should only be rounded down, if necessary.
virtual wxSize GetAdjustedSize( int minWidth, int prefHeight, int maxHeight );
// Return true if you want delay call to Create until the popup is shown
// for the first time. It is more efficient, but note that it is often
// more convenient to have the control created immediately.
// Default returns false.
virtual bool LazyCreate();
//
// Utilies
//
// Hides the popup
void Dismiss();
// Returns true if Create has been called.
bool IsCreated() const
{
return (m_iFlags & wxCP_IFLAG_CREATED) ? true : false;
}
protected:
wxComboControlBase* m_combo;
wxUint32 m_iFlags;
};
// ----------------------------------------------------------------------------
// include the platform-dependent header defining the real class
// ----------------------------------------------------------------------------
#if defined(__WXUNIVERSAL__)
// No native universal (but it must still be first in the list)
#elif defined(__WXMSW__)
#include "wx/msw/combo.h"
#endif
// Any ports may need generic as an alternative
#include "wx/generic/combo.h"
#endif // wxUSE_COMBOCONTROL
#endif
// _WX_COMBOCONTROL_H_BASE_

135
include/wx/generic/combo.h Normal file
View File

@@ -0,0 +1,135 @@
/////////////////////////////////////////////////////////////////////////////
// Name: wx/generic/combo.h
// Purpose: Generic wxComboControl
// Author: Jaakko Salli
// Modified by:
// Created: Apr-30-2006
// RCS-ID: $Id$
// Copyright: (c) Jaakko Salli
// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
#ifndef _WX_GENERIC_COMBOCONTROL_H_
#define _WX_GENERIC_COMBOCONTROL_H_
#if wxUSE_COMBOCONTROL
// Only define generic if native doesn't have all the features
#if !defined(wxCOMBOCONTROL_FULLY_FEATURED)
// ----------------------------------------------------------------------------
// Generic wxComboControl
// ----------------------------------------------------------------------------
#if defined(__WXUNIVERSAL__)
// all actions of single line text controls are supported
// popup/dismiss the choice window
#define wxACTION_COMBOBOX_POPUP _T("popup")
#define wxACTION_COMBOBOX_DISMISS _T("dismiss")
#endif
class WXDLLEXPORT wxGenericComboControl : public wxComboControlBase
{
public:
// ctors and such
wxGenericComboControl() : wxComboControlBase() { Init(); }
wxGenericComboControl(wxWindow *parent,
wxWindowID id = wxID_ANY,
const wxString& value = wxEmptyString,
const wxPoint& pos = wxDefaultPosition,
const wxSize& size = wxDefaultSize,
long style = 0,
const wxValidator& validator = wxDefaultValidator,
const wxString& name = wxComboBoxNameStr)
: wxComboControlBase()
{
Init();
(void)Create(parent, id, value, pos, size, style, validator, name);
}
bool Create(wxWindow *parent,
wxWindowID id = wxID_ANY,
const wxString& value = wxEmptyString,
const wxPoint& pos = wxDefaultPosition,
const wxSize& size = wxDefaultSize,
long style = 0,
const wxValidator& validator = wxDefaultValidator,
const wxString& name = wxComboBoxNameStr);
virtual ~wxGenericComboControl();
static int GetFeatures() { return wxComboControlFeatures::All; }
#if defined(__WXUNIVERSAL__)
// we have our own input handler and our own actions
virtual bool PerformAction(const wxControlAction& action,
long numArg = 0l,
const wxString& strArg = wxEmptyString);
#endif
protected:
// Mandatory virtuals
virtual void OnResize();
// Event handlers
void OnPaintEvent( wxPaintEvent& event );
void OnMouseEvent( wxMouseEvent& event );
private:
void Init();
DECLARE_EVENT_TABLE()
DECLARE_DYNAMIC_CLASS(wxGenericComboControl)
};
#ifndef _WX_COMBOCONTROL_H_
// If native wxComboControl was not defined, then prepare a simple
// front-end so that wxRTTI works as expected.
class WXDLLEXPORT wxComboControl : public wxGenericComboControl
{
public:
wxComboControl() : wxGenericComboControl() {}
wxComboControl(wxWindow *parent,
wxWindowID id = wxID_ANY,
const wxString& value = wxEmptyString,
const wxPoint& pos = wxDefaultPosition,
const wxSize& size = wxDefaultSize,
long style = 0,
const wxValidator& validator = wxDefaultValidator,
const wxString& name = wxComboBoxNameStr)
: wxGenericComboControl()
{
(void)Create(parent, id, value, pos, size, style, validator, name);
}
virtual ~wxComboControl() {}
protected:
private:
DECLARE_DYNAMIC_CLASS(wxComboControl)
};
#endif // _WX_COMBOCONTROL_H_
#else
#define wxGenericComboControl wxComboControl
#endif // !defined(wxCOMBOCONTROL_FULLY_FEATURED)
#endif // wxUSE_COMBOCONTROL
#endif
// _WX_GENERIC_COMBOCONTROL_H_

86
include/wx/msw/combo.h Normal file
View File

@@ -0,0 +1,86 @@
/////////////////////////////////////////////////////////////////////////////
// Name: wx/msw/combo.h
// Purpose: wxComboControl class
// Author: Jaakko Salli
// Modified by:
// Created: Apr-30-2006
// RCS-ID: $Id$
// Copyright: (c) Jaakko Salli
// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
#ifndef _WX_COMBOCONTROL_H_
#define _WX_COMBOCONTROL_H_
// NB: Definition of _WX_COMBOCONTROL_H_ is used in wx/generic/combo.h to
// determine whether there is native wxComboControl, so make sure you
// use it in all native wxComboControls.
#if wxUSE_COMBOCONTROL
// ----------------------------------------------------------------------------
// Native wxComboControl
// ----------------------------------------------------------------------------
// Define this only if native implementation includes all features
#define wxCOMBOCONTROL_FULLY_FEATURED
class WXDLLEXPORT wxComboControl : public wxComboControlBase
{
public:
// ctors and such
wxComboControl() : wxComboControlBase() { Init(); }
wxComboControl(wxWindow *parent,
wxWindowID id = wxID_ANY,
const wxString& value = wxEmptyString,
const wxPoint& pos = wxDefaultPosition,
const wxSize& size = wxDefaultSize,
long style = 0,
const wxValidator& validator = wxDefaultValidator,
const wxString& name = wxComboBoxNameStr)
: wxComboControlBase()
{
Init();
(void)Create(parent, id, value, pos, size, style, validator, name);
}
bool Create(wxWindow *parent,
wxWindowID id = wxID_ANY,
const wxString& value = wxEmptyString,
const wxPoint& pos = wxDefaultPosition,
const wxSize& size = wxDefaultSize,
long style = 0,
const wxValidator& validator = wxDefaultValidator,
const wxString& name = wxComboBoxNameStr);
virtual ~wxComboControl();
virtual void DrawFocusBackground( wxDC& dc, const wxRect& rect, int flags );
static int GetFeatures() { return wxComboControlFeatures::All; }
protected:
// customization
virtual void OnResize();
virtual wxCoord GetNativeTextIndent() const;
virtual void OnThemeChange();
// event handlers
void OnPaintEvent( wxPaintEvent& event );
void OnMouseEvent( wxMouseEvent& event );
private:
void Init();
DECLARE_EVENT_TABLE()
DECLARE_DYNAMIC_CLASS(wxComboControl)
};
#endif // wxUSE_COMBOCONTROL
#endif
// _WX_COMBOCONTROL_H_

267
include/wx/odcombo.h Normal file
View File

@@ -0,0 +1,267 @@
/////////////////////////////////////////////////////////////////////////////
// Name: wx/odcombo.h
// Purpose: wxOwnerDrawnComboBox and wxVListBoxPopup
// Author: Jaakko Salli
// Modified by:
// Created: Apr-30-2006
// RCS-ID: $Id$
// Copyright: (c) Jaakko Salli
// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
#ifndef _WX_ODCOMBO_H_
#define _WX_ODCOMBO_H_
#include "wx/defs.h"
#if wxUSE_OWNERDRAWNCOMBOBOX
#include "wx/combo.h"
#include "wx/ctrlsub.h"
#include "wx/vlbox.h"
//
// New window styles for wxOwnerDrawnComboBox
//
enum
{
// Double-clicking cycles item if wxCB_READONLY is also used.
wxODCB_DCLICK_CYCLES = wxCC_SPECIAL_DCLICK,
// If used, control itself is not custom paint using callback.
// Even if this is not used, writable combo is never custom paint
// until SetCustomPaintWidth is called
wxODCB_STD_CONTROL_PAINT = 0x1000
};
//
// Callback flags
//
enum
{
// when set, we are painting the selected item in control,
// not in the popup
wxCC_PAINTING_CONTROL = 0x0001
};
// ----------------------------------------------------------------------------
// wxVListBoxComboPopup is a wxVListBox customized to act as a popup control.
//
// Notes:
// wxOwnerDrawnComboBox uses this as its popup. However, it always derives
// from native wxComboControl. If you need to use this popup with
// wxGenericComboControl, then remember that vast majority of item manipulation
// functionality is implemented in the wxVListBoxComboPopup class itself.
//
// ----------------------------------------------------------------------------
class WXDLLEXPORT wxVListBoxComboPopup : public wxVListBox, public wxComboPopup
{
friend class wxOwnerDrawnComboBox;
public:
// ctor and dtor
wxVListBoxComboPopup(wxComboControlBase* combo);
virtual ~wxVListBoxComboPopup();
// required virtuals
virtual bool Create(wxWindow* parent);
virtual wxWindow *GetControl() { return this; }
virtual void SetStringValue( const wxString& value );
virtual wxString GetStringValue() const;
// more customization
virtual void OnPopup();
virtual wxSize GetAdjustedSize( int minWidth, int prefHeight, int maxHeight );
virtual void PaintComboControl( wxDC& dc, const wxRect& rect );
virtual void OnComboKeyEvent( wxKeyEvent& event );
virtual void OnComboDoubleClick();
virtual bool LazyCreate();
// Item management
void SetSelection( int item );
void Insert( const wxString& item, int pos );
int Append(const wxString& item);
void Clear();
void Delete( unsigned int item );
void SetItemClientData(unsigned int n, void* clientData, wxClientDataType clientDataItemsType);
void *GetItemClientData(unsigned int n) const;
void SetString( int item, const wxString& str );
wxString GetString( int item ) const;
unsigned int GetCount() const;
int FindString(const wxString& s) const;
void Populate( int n, const wxString choices[] );
void ClearClientDatas();
// helpers
int GetItemAtPosition( const wxPoint& pos ) { return HitTest(pos); }
wxCoord GetTotalHeight() const { return EstimateTotalHeight(); }
wxCoord GetLineHeight(int line) const { return OnGetLineHeight(line); }
protected:
// Called by OnComboDoubleClick and OnComboKeyEvent
bool HandleKey( int keycode, bool saturate );
// sends combobox select event from the parent combo control
void SendComboBoxEvent();
// Re-calculates width for given item
void CheckWidth( int pos );
// wxVListBox implementation
virtual void OnDrawItem(wxDC& dc, const wxRect& rect, size_t n) const;
virtual wxCoord OnMeasureItem(size_t n) const;
void OnDrawBackground(wxDC& dc, const wxRect& rect, size_t n) const;
// filter mouse move events happening outside the list box
// move selection with cursor
void OnMouseMove(wxMouseEvent& event);
void OnMouseWheel(wxMouseEvent& event);
void OnKey(wxKeyEvent& event);
void OnLeftClick(wxMouseEvent& event);
wxArrayString m_strings;
wxArrayPtrVoid m_clientDatas;
wxArrayInt m_widths; // cached line widths
wxFont m_font;
int m_value; // selection
int m_itemHover; // on which item the cursor is
int m_widestWidth; // width of widest item thus far
int m_avgCharWidth;
int m_baseImageWidth; // how much per item drawn in addition to text
int m_itemHeight; // default item height (calculate from font size
// and used in the absence of callback)
wxClientDataType m_clientDataItemsType;
private:
// has the mouse been released on this control?
bool m_clicked;
DECLARE_EVENT_TABLE()
};
// ----------------------------------------------------------------------------
// wxOwnerDrawnComboBox: a generic wxComboBox that allows custom paint items
// in addition to many other types of customization already allowed by
// the wxComboControl.
// ----------------------------------------------------------------------------
class WXDLLEXPORT wxOwnerDrawnComboBox : public wxComboControl, public wxItemContainer
{
friend class wxComboPopupWindow;
friend class wxComboControlBase;
public:
// ctors and such
wxOwnerDrawnComboBox() : wxComboControl() { Init(); }
wxOwnerDrawnComboBox(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 = wxComboBoxNameStr)
: wxComboControl()
{
Init();
(void)Create(parent, id, value, pos, size, n,
choices, style, validator, name);
}
bool Create(wxWindow *parent,
wxWindowID id,
const wxString& value = wxEmptyString,
const wxPoint& pos = wxDefaultPosition,
const wxSize& size = wxDefaultSize,
long style = 0,
const wxValidator& validator = wxDefaultValidator,
const wxString& name = wxComboBoxNameStr);
wxOwnerDrawnComboBox(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 = wxComboBoxNameStr);
bool Create(wxWindow *parent,
wxWindowID id,
const wxString& value = wxEmptyString,
const wxPoint& pos = wxDefaultPosition,
const wxSize& size = wxDefaultSize,
int n = 0,
const wxString choices[] = (const wxString *) NULL,
long style = 0,
const wxValidator& validator = wxDefaultValidator,
const wxString& name = wxComboBoxNameStr);
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 = wxComboBoxNameStr);
virtual ~wxOwnerDrawnComboBox();
// wxControlWithItems methods
virtual void Clear();
virtual void Delete(unsigned int n);
virtual unsigned int GetCount() const;
virtual wxString GetString(unsigned int n) const;
virtual void SetString(unsigned int n, const wxString& s);
virtual int FindString(const wxString& s) const;
virtual void Select(int n);
virtual int GetSelection() const;
void SetSelection(int n) { Select(n); }
wxCONTROL_ITEMCONTAINER_CLIENTDATAOBJECT_RECAST
protected:
// clears all allocated client datas
void ClearClientDatas();
virtual int DoAppend(const wxString& item);
virtual int DoInsert(const wxString& item, unsigned int pos);
virtual void DoSetItemClientData(unsigned int n, void* clientData);
virtual void* DoGetItemClientData(unsigned int n) const;
virtual void DoSetItemClientObject(unsigned int n, wxClientData* clientData);
virtual wxClientData* DoGetItemClientObject(unsigned int n) const;
// overload m_popupInterface member so we can access specific popup interface easier
wxVListBoxComboPopup* m_popupInterface;
private:
void Init();
DECLARE_EVENT_TABLE()
DECLARE_DYNAMIC_CLASS(wxOwnerDrawnComboBox)
};
#endif // wxUSE_OWNERDRAWNCOMBOBOX
#endif
// _WX_ODCOMBO_H_

16
samples/combo/combo.bkl Normal file
View File

@@ -0,0 +1,16 @@
<?xml version="1.0" ?>
<!-- $Id: -->
<makefile>
<include file="../../build/bakefiles/common_samples.bkl"/>
<exe id="combo" template="wx_sample" template_append="wx_append">
<sources>combo.cpp</sources>
<wx-lib>core</wx-lib>
<wx-lib>base</wx-lib>
<wx-lib>adv</wx-lib>
<uid type="creatorid">wx06</uid>
</exe>
</makefile>

990
samples/combo/combo.cpp Normal file
View File

@@ -0,0 +1,990 @@
/////////////////////////////////////////////////////////////////////////////
// Name: combo.cpp
// Purpose: wxComboControl sample
// Author: Jaakko Salli
// Modified by:
// Created: Apr-30-2006
// RCS-ID: $Id$
// Copyright: (c) Jaakko Salli
// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
// ============================================================================
// declarations
// ============================================================================
// ----------------------------------------------------------------------------
// headers
// ----------------------------------------------------------------------------
// For compilers that support precompilation, includes "wx/wx.h".
#include "wx/wxprec.h"
#ifdef __BORLANDC__
#pragma hdrstop
#endif
// for all others, include the necessary headers (this file is usually all you
// need because it includes almost all "standard" wxWidgets headers)
#ifndef WX_PRECOMP
#include "wx/wx.h"
#endif
#if !wxUSE_COMBOCONTROL
#error "Please set wxUSE_COMBOCONTROL to 1 and rebuild the library."
#endif
#include "wx/image.h"
#include "wx/combo.h"
#include "wx/odcombo.h"
// ----------------------------------------------------------------------------
// resources
// ----------------------------------------------------------------------------
// the application icon (under Windows and OS/2 it is in resources and even
// though we could still include the XPM here it would be unused)
#if !defined(__WXMSW__) && !defined(__WXPM__)
#include "../sample.xpm"
#endif
// ----------------------------------------------------------------------------
// private classes
// ----------------------------------------------------------------------------
// Define a new application type, each program should derive a class from wxApp
class MyApp : public wxApp
{
public:
// override base class virtuals
// ----------------------------
// this one is called on application startup and is a good place for the app
// initialization (doing it here and not in the ctor allows to have an error
// return: if OnInit() returns false, the application terminates)
virtual bool OnInit();
};
// Define a new frame type: this is going to be our main frame
class MyFrame : public wxFrame
{
public:
// ctor and dtor
MyFrame(const wxString& title);
~MyFrame();
// event handlers (these functions should _not_ be virtual)
void OnQuit(wxCommandEvent& event);
void OnAbout(wxCommandEvent& event);
// log wxComboControl events
void OnComboBoxUpdate( wxCommandEvent& event );
protected:
wxTextCtrl* m_logWin;
wxLog* m_logOld;
private:
// any class wishing to process wxWidgets events must use this macro
DECLARE_EVENT_TABLE()
};
// ----------------------------------------------------------------------------
// constants
// ----------------------------------------------------------------------------
// IDs for the controls and the menu commands
enum
{
// menu items
ComboControl_Quit = wxID_EXIT,
// it is important for the id corresponding to the "About" command to have
// this standard value as otherwise it won't be handled properly under Mac
// (where it is special and put into the "Apple" menu)
ComboControl_About = wxID_ABOUT
};
// ----------------------------------------------------------------------------
// event tables and other macros for wxWidgets
// ----------------------------------------------------------------------------
// the event tables connect the wxWidgets events with the functions (event
// handlers) which process them. It can be also done at run-time, but for the
// simple menu events like this the static method is much simpler.
BEGIN_EVENT_TABLE(MyFrame, wxFrame)
EVT_TEXT(wxID_ANY,MyFrame::OnComboBoxUpdate)
EVT_COMBOBOX(wxID_ANY,MyFrame::OnComboBoxUpdate)
EVT_MENU(ComboControl_Quit, MyFrame::OnQuit)
EVT_MENU(ComboControl_About, MyFrame::OnAbout)
END_EVENT_TABLE()
// Create a new application object: this macro will allow wxWidgets to create
// the application object during program execution (it's better than using a
// static object for many reasons) and also implements the accessor function
// wxGetApp() which will return the reference of the right type (i.e. MyApp and
// not wxApp)
IMPLEMENT_APP(MyApp)
// ============================================================================
// implementation
// ============================================================================
// ----------------------------------------------------------------------------
// the application class
// ----------------------------------------------------------------------------
// 'Main program' equivalent: the program execution "starts" here
bool MyApp::OnInit()
{
// create the main application window
MyFrame *frame = new MyFrame(_T("wxComboControl Sample"));
// and show it (the frames, unlike simple controls, are not shown when
// created initially)
frame->Show(true);
// success: wxApp::OnRun() will be called which will enter the main message
// loop and the application will run. If we returned false here, the
// application would exit immediately.
return true;
}
// ----------------------------------------------------------------------------
// wxListView Custom popup interface
// ----------------------------------------------------------------------------
#include <wx/listctrl.h>
class ListViewComboPopup : public wxListView, public wxComboPopup
{
public:
ListViewComboPopup(wxComboControlBase* combo)
: wxListView(), wxComboPopup(combo)
{
m_value = -1;
m_itemHere = -1; // hot item in list
}
virtual bool Create( wxWindow* parent )
{
return wxListView::Create(parent,1,
wxPoint(0,0),wxDefaultSize,
wxLC_LIST|wxLC_SINGLE_SEL|
wxLC_SORT_ASCENDING|wxSIMPLE_BORDER);
}
virtual wxWindow *GetControl() { return this; }
virtual void SetStringValue( const wxString& s )
{
int n = wxListView::FindItem(-1,s);
if ( n >= 0 && n < GetItemCount() )
wxListView::Select(n);
}
virtual wxString GetStringValue() const
{
if ( m_value >= 0 )
return wxListView::GetItemText(m_value);
return wxEmptyString;
}
//
// Popup event handlers
//
// Mouse hot-tracking
void OnMouseMove(wxMouseEvent& event)
{
// Move selection to cursor if it is inside the popup
int resFlags;
int itemHere = HitTest(event.GetPosition(),resFlags);
if ( itemHere >= 0 )
{
wxListView::Select(itemHere,true);
m_itemHere = itemHere;
}
event.Skip();
}
// On mouse left, set the value and close the popup
void OnMouseClick(wxMouseEvent& WXUNUSED(event))
{
m_value = m_itemHere;
// TODO: Send event
Dismiss();
}
//
// Utilies for item manipulation
//
void AddSelection( const wxString& selstr )
{
wxListView::InsertItem(GetItemCount(),selstr);
}
protected:
int m_value; // current item index
int m_itemHere; // hot item in popup
private:
DECLARE_EVENT_TABLE()
};
BEGIN_EVENT_TABLE(ListViewComboPopup, wxListView)
EVT_MOTION(ListViewComboPopup::OnMouseMove)
// NOTE: Left down event is used instead of left up right now
// since MSW wxListCtrl doesn't seem to emit left ups
// consistently.
EVT_LEFT_DOWN(ListViewComboPopup::OnMouseClick)
END_EVENT_TABLE()
// ----------------------------------------------------------------------------
// wxTreeCtrl Custom popup interface
// ----------------------------------------------------------------------------
#include <wx/treectrl.h>
class TreeCtrlComboPopup : public wxTreeCtrl, public wxComboPopup
{
public:
TreeCtrlComboPopup(wxComboControlBase* combo)
: wxTreeCtrl(), wxComboPopup(combo)
{
}
virtual bool Create( wxWindow* parent )
{
return wxTreeCtrl::Create(parent,1,
wxPoint(0,0),wxDefaultSize,
wxTR_HIDE_ROOT|wxTR_HAS_BUTTONS|
wxTR_SINGLE|wxTR_LINES_AT_ROOT|
wxSIMPLE_BORDER);
}
virtual void OnShow()
{
// make sure selected item is visible
if ( m_value.IsOk() )
EnsureVisible(m_value);
}
virtual wxSize GetAdjustedSize( int minWidth,
int WXUNUSED(prefHeight),
int maxHeight )
{
return wxSize(wxMax(300,minWidth),wxMin(250,maxHeight));
}
virtual wxWindow *GetControl() { return this; }
// Needed by SetStringValue
wxTreeItemId FindItemByText( wxTreeItemId parent, const wxString& text )
{
wxTreeItemIdValue cookie;
wxTreeItemId child = GetFirstChild(parent,cookie);
while ( child.IsOk() )
{
if ( GetItemText(child) == text )
{
return child;
}
if ( ItemHasChildren(child) )
{
wxTreeItemId found = FindItemByText(child,text);
if ( found.IsOk() )
return found;
}
child = GetNextChild(parent,cookie);
}
return wxTreeItemId();
}
virtual void SetStringValue( const wxString& s )
{
wxTreeItemId root = GetRootItem();
if ( !root.IsOk() )
return;
wxTreeItemId found = FindItemByText(root,s);
if ( found.IsOk() )
{
m_value = m_itemHere = found;
wxTreeCtrl::SelectItem(found);
}
}
virtual wxString GetStringValue() const
{
if ( m_value.IsOk() )
return wxTreeCtrl::GetItemText(m_value);
return wxEmptyString;
}
//
// Popup event handlers
//
// Mouse hot-tracking
void OnMouseMove(wxMouseEvent& event)
{
int resFlags;
wxTreeItemId itemHere = HitTest(event.GetPosition(),resFlags);
if ( itemHere.IsOk() && (resFlags & wxTREE_HITTEST_ONITEMLABEL) )
{
wxTreeCtrl::SelectItem(itemHere,true);
m_itemHere = itemHere;
}
event.Skip();
}
// On mouse left, set the value and close the popup
void OnMouseClick(wxMouseEvent& event)
{
int resFlags;
wxTreeItemId itemHere = HitTest(event.GetPosition(),resFlags);
if ( itemHere.IsOk() && (resFlags & wxTREE_HITTEST_ONITEMLABEL) )
{
m_itemHere = itemHere;
m_value = itemHere;
Dismiss();
// TODO: Send event
}
event.Skip();
}
protected:
wxTreeItemId m_value; // current item index
wxTreeItemId m_itemHere; // hot item in popup
private:
DECLARE_EVENT_TABLE()
};
BEGIN_EVENT_TABLE(TreeCtrlComboPopup, wxTreeCtrl)
EVT_MOTION(TreeCtrlComboPopup::OnMouseMove)
// NOTE: Left down event is used instead of left up right now
// since MSW wxTreeCtrl doesn't seem to emit left ups
// consistently.
EVT_LEFT_DOWN(TreeCtrlComboPopup::OnMouseClick)
END_EVENT_TABLE()
// ----------------------------------------------------------------------------
// wxOwnerDrawnComboBox with custom paint list items
// ----------------------------------------------------------------------------
class wxPenStyleComboBox : public wxOwnerDrawnComboBox
{
public:
virtual bool OnDrawListItem( wxDC& dc, const wxRect& rect, int item, int flags )
{
wxRect r(rect);
r.Deflate(3);
r.height -= 2;
int pen_style = wxSOLID;
if ( item == 1 )
pen_style = wxTRANSPARENT;
else if ( item == 2 )
pen_style = wxDOT;
else if ( item == 3 )
pen_style = wxLONG_DASH;
else if ( item == 4 )
pen_style = wxSHORT_DASH;
else if ( item == 5 )
pen_style = wxDOT_DASH;
else if ( item == 6 )
pen_style = wxBDIAGONAL_HATCH;
else if ( item == 7 )
pen_style = wxCROSSDIAG_HATCH;
else if ( item == 8 )
pen_style = wxFDIAGONAL_HATCH;
else if ( item == 9 )
pen_style = wxCROSS_HATCH;
else if ( item == 10 )
pen_style = wxHORIZONTAL_HATCH;
else if ( item == 11 )
pen_style = wxVERTICAL_HATCH;
wxPen pen( dc.GetTextForeground(), 3, pen_style );
// Get text colour as pen colour
dc.SetPen ( pen );
if ( !(flags & wxCC_PAINTING_CONTROL) )
{
dc.DrawText(GetString( item ),
r.x + 3,
(r.y + 0) + ( (r.height/2) - dc.GetCharHeight() )/2
);
dc.DrawLine( r.x+5, r.y+((r.height/4)*3), r.x+r.width - 5, r.y+((r.height/4)*3) );
/*
dc.SetBrush( *wxTRANSPARENT_BRUSH );
dc.DrawRectangle( r );
dc.DrawText(GetString( item ),
r.x + 3,
(r.y + 0) + ( (r.height) - dc.GetCharHeight() )/2
);
*/
}
else
{
dc.DrawLine( r.x+5, r.y+r.height/2, r.x+r.width - 5, r.y+r.height/2 );
}
return true;
}
virtual wxCoord OnMeasureListItem( int WXUNUSED(item) )
{
return 24;
}
virtual wxCoord OnMeasureListItemWidth( int WXUNUSED(item) )
{
return -1; // default - will be measured from text width
}
};
// ----------------------------------------------------------------------------
// wxComboControl with entirely custom button action (opens file dialog)
// ----------------------------------------------------------------------------
class wxFileSelectorCombo : public wxComboControl
{
public:
wxFileSelectorCombo() : wxComboControl() { Init(); }
wxFileSelectorCombo(wxWindow *parent,
wxWindowID id = wxID_ANY,
const wxString& value = wxEmptyString,
const wxPoint& pos = wxDefaultPosition,
const wxSize& size = wxDefaultSize,
long style = 0,
const wxValidator& validator = wxDefaultValidator,
const wxString& name = wxComboBoxNameStr)
: wxComboControl()
{
Init();
Create(parent,id,value,
pos,size,
// Style flag wxCC_STD_BUTTON makes the button
// behave more like a standard push button.
style | wxCC_STD_BUTTON,
validator,name);
//
// Prepare custom button bitmap (just '...' text)
wxMemoryDC dc;
wxBitmap bmp(12,16);
dc.SelectObject(bmp);
// Draw transparent background
wxColour magic(255,0,255);
wxBrush magicBrush(magic);
dc.SetBrush( magicBrush );
dc.SetPen( *wxTRANSPARENT_PEN );
dc.DrawRectangle(0,0,bmp.GetWidth(),bmp.GetHeight());
// Draw text
wxString str = wxT("...");
int w,h;
dc.GetTextExtent(str, &w, &h, 0, 0);
dc.DrawText(str, (bmp.GetWidth()-w)/2, (bmp.GetHeight()-h)/2);
dc.SelectObject( wxNullBitmap );
// Finalize transparency with a mask
wxMask *mask = new wxMask( bmp, magic );
bmp.SetMask( mask );
SetButtonBitmaps(bmp,true);
}
virtual void OnButtonClick()
{
// Show standard wxFileDialog on button click
wxFileDialog dlg(this,
wxT("Choose File"),
wxEmptyString,
GetValue(),
wxT("All files (*.*)|*.*"),
wxOPEN);
if ( dlg.ShowModal() == wxID_OK )
{
SetValue(dlg.GetPath());
}
}
private:
void Init()
{
// Initialize member variables here
}
};
// ----------------------------------------------------------------------------
// main frame
// ----------------------------------------------------------------------------
// frame constructor
MyFrame::MyFrame(const wxString& title)
: wxFrame(NULL, wxID_ANY, title)
{
wxBoxSizer* topSizer;
wxBoxSizer* topRowSizer;
wxBoxSizer* colSizer;
wxBoxSizer* rowSizer;
wxStaticBoxSizer* groupSizer;
// set the frame icon
SetIcon(wxICON(sample));
#if wxUSE_MENUS
// create a menu bar
wxMenu *fileMenu = new wxMenu;
// the "About" item should be in the help menu
wxMenu *helpMenu = new wxMenu;
helpMenu->Append(ComboControl_About, _T("&About...\tF1"), _T("Show about dialog"));
fileMenu->Append(ComboControl_Quit, _T("E&xit\tAlt-X"), _T("Quit this program"));
// now append the freshly created menu to the menu bar...
wxMenuBar *menuBar = new wxMenuBar();
menuBar->Append(fileMenu, _T("&File"));
menuBar->Append(helpMenu, _T("&Help"));
// ... and attach this menu bar to the frame
SetMenuBar(menuBar);
#endif // wxUSE_MENUS
wxPanel* panel = new wxPanel(this);
// Prepare log window right away since it shows EVT_TEXTs
m_logWin = new wxTextCtrl( panel, 105, wxEmptyString, wxDefaultPosition,
wxSize(-1,125), wxTE_MULTILINE|wxFULL_REPAINT_ON_RESIZE );
m_logWin->SetEditable(false);
wxLogTextCtrl* logger = new wxLogTextCtrl( m_logWin );
m_logOld = logger->SetActiveTarget( logger );
logger->SetTimestamp( NULL );
topSizer = new wxBoxSizer( wxVERTICAL );
topRowSizer = new wxBoxSizer( wxHORIZONTAL );
colSizer = new wxBoxSizer( wxVERTICAL );
// Make sure GetFeatures is implemented
int features = wxComboControl::GetFeatures();
wxLogDebug(wxT("wxComboControl features: 0x%X (all features: 0x%X)"),
features,wxComboControlFeatures::All);
wxComboBox* cb;
wxComboControl* cc;
wxGenericComboControl* gcc;
wxOwnerDrawnComboBox* odc;
// Create common strings array
wxArrayString arrItems;
arrItems.Add( wxT("Solid") );
arrItems.Add( wxT("Transparent") );
arrItems.Add( wxT("Dot") );
arrItems.Add( wxT("Long Dash") );
arrItems.Add( wxT("Short Dash") );
arrItems.Add( wxT("Dot Dash") );
arrItems.Add( wxT("Backward Diagonal Hatch") );
arrItems.Add( wxT("Cross-diagonal Hatch") );
arrItems.Add( wxT("Forward Diagonal Hatch") );
arrItems.Add( wxT("Cross Hatch") );
arrItems.Add( wxT("Horizontal Hatch") );
arrItems.Add( wxT("Vertical Hatch") );
int border = 4;
//
// Show some wxOwnerDrawComboBoxes for comparison
//
rowSizer = new wxBoxSizer(wxHORIZONTAL);
groupSizer = new wxStaticBoxSizer(new wxStaticBox(panel,wxID_ANY,wxT(" wxOwnerDrawnComboBox ")),
wxVERTICAL);
groupSizer->Add( new wxStaticText(panel,wxID_ANY,wxT("Writable, sorted:")), 0,
wxALIGN_CENTER_VERTICAL|wxRIGHT|wxEXPAND, border );
odc = new wxOwnerDrawnComboBox(panel,wxID_ANY,wxEmptyString,
wxDefaultPosition, wxDefaultSize,
arrItems,
wxCB_SORT // wxNO_BORDER|wxCB_READONLY
);
odc->Append(wxT("H - Appended Item")); // test sorting in append
odc->SetValue(wxT("Dot Dash"));
groupSizer->Add( odc, 1, wxALIGN_CENTER_VERTICAL|wxEXPAND|wxALL, border );
//
// Readonly ODComboBox
groupSizer->Add( new wxStaticText(panel,wxID_ANY,wxT("Read-only:")), 0,
wxALIGN_CENTER_VERTICAL|wxRIGHT, border );
odc = new wxOwnerDrawnComboBox(panel,wxID_ANY,wxEmptyString,
wxDefaultPosition, wxDefaultSize,
arrItems,
wxCB_SORT|wxCB_READONLY // wxNO_BORDER|wxCB_READONLY
);
odc->SetValue(wxT("Dot Dash"));
groupSizer->Add( odc, 1, wxALIGN_CENTER_VERTICAL|wxEXPAND|wxALL, border );
//
// Disabled ODComboBox
groupSizer->Add( new wxStaticText(panel,wxID_ANY,wxT("Disabled:")), 0,
wxALIGN_CENTER_VERTICAL|wxRIGHT, border );
odc = new wxOwnerDrawnComboBox(panel,wxID_ANY,wxEmptyString,
wxDefaultPosition, wxDefaultSize,
arrItems,
wxCB_SORT|wxCB_READONLY // wxNO_BORDER|wxCB_READONLY
);
odc->SetValue(wxT("Dot Dash"));
odc->Enable(false);
groupSizer->Add( odc, 1, wxALIGN_CENTER_VERTICAL|wxEXPAND|wxALL, border );
rowSizer->Add( groupSizer, 1, wxEXPAND|wxALL, border );
groupSizer = new wxStaticBoxSizer(new wxStaticBox(panel,wxID_ANY,wxT(" wxComboBox ")),
wxVERTICAL);
//
// wxComboBox
//
groupSizer->Add( new wxStaticText(panel,wxID_ANY,wxT("Writable, sorted:")), 0,
wxALIGN_CENTER_VERTICAL|wxRIGHT|wxEXPAND, border );
cb = new wxComboBox(panel,wxID_ANY,wxEmptyString,
wxDefaultPosition, wxDefaultSize,
arrItems,
wxCB_SORT // wxNO_BORDER|wxCB_READONLY
);
cb->Append(wxT("H - Appended Item")); // test sorting in append
cb->SetValue(wxT("Dot Dash"));
groupSizer->Add( cb, 1, wxALIGN_CENTER_VERTICAL|wxEXPAND|wxALL, border );
//
// Readonly wxComboBox
groupSizer->Add( new wxStaticText(panel,wxID_ANY,wxT("Read-only:")), 0,
wxALIGN_CENTER_VERTICAL|wxRIGHT, border );
cb = new wxComboBox(panel,wxID_ANY,wxEmptyString,
wxDefaultPosition, wxDefaultSize,
arrItems,
wxCB_SORT|wxCB_READONLY // wxNO_BORDER|wxCB_READONLY
);
cb->SetValue(wxT("Dot Dash"));
groupSizer->Add( cb, 1, wxALIGN_CENTER_VERTICAL|wxEXPAND|wxALL, border );
//
// Disabled wxComboBox
groupSizer->Add( new wxStaticText(panel,wxID_ANY,wxT("Disabled:")), 0,
wxALIGN_CENTER_VERTICAL|wxRIGHT, border );
cb = new wxComboBox(panel,wxID_ANY,wxEmptyString,
wxDefaultPosition, wxDefaultSize,
arrItems,
wxCB_SORT|wxCB_READONLY // wxNO_BORDER|wxCB_READONLY
);
cb->SetValue(wxT("Dot Dash"));
cb->Enable(false);
groupSizer->Add( cb, 1, wxALIGN_CENTER_VERTICAL|wxEXPAND|wxALL, border );
rowSizer->Add( groupSizer, 1, wxEXPAND|wxALL, border );
colSizer->Add( rowSizer, 1, wxEXPAND|wxALL, border );
//
// Pen selector ODComboBox with application painted items
//
rowSizer = new wxBoxSizer ( wxHORIZONTAL );
rowSizer->Add( new wxStaticText(panel,wxID_ANY,
wxT("OwnerDrawnComboBox with Custom Paint Items and Button Placing:")), 1,
wxALIGN_CENTER_VERTICAL|wxRIGHT, 4 );
colSizer->Add( rowSizer, 0, wxEXPAND|wxALL, 5 );
rowSizer = new wxBoxSizer ( wxHORIZONTAL );
// When defining derivative class for callbacks, we need
// to use two-stage creation (or redefine the common wx
// constructor).
odc = new wxPenStyleComboBox();
odc->Create(panel,wxID_ANY,wxEmptyString,
wxDefaultPosition, wxDefaultSize,
arrItems,
wxCB_READONLY //wxNO_BORDER | wxCB_READONLY
);
//m_odc->SetCustomPaintWidth( 60 );
odc->SetSelection(0);
odc->SetButtonPosition(-2, // width adjustment
-6, // height adjustment
wxLEFT, // side
2 // horizontal spacing
);
rowSizer->Add( odc, 1, wxALIGN_CENTER_VERTICAL|wxALL, 4 );
rowSizer->AddStretchSpacer(1);
colSizer->Add( rowSizer, 0, wxEXPAND|wxALL, 5 );
//
// List View wxComboControl
//
rowSizer = new wxBoxSizer ( wxHORIZONTAL );
rowSizer->Add( new wxStaticText(panel,wxID_ANY,wxT("List View wxComboControl:")), 1,
wxALIGN_CENTER_VERTICAL|wxRIGHT, 4 );
rowSizer->Add( new wxStaticText(panel,wxID_ANY,wxT("Tree Ctrl wxGenericComboControl:")), 1,
wxALIGN_CENTER_VERTICAL|wxRIGHT, 4 );
colSizer->Add( rowSizer, 0, wxEXPAND|wxALL, 5 );
rowSizer = new wxBoxSizer ( wxHORIZONTAL );
cc = new wxComboControl(panel,2,wxEmptyString,
wxDefaultPosition, wxDefaultSize);
cc->SetPopupMinWidth(300);
ListViewComboPopup* iface = new ListViewComboPopup(cc);
cc->SetPopupControl(iface);
iface->AddSelection( wxT("Cabbage") );
iface->AddSelection( wxT("Potato") );
iface->AddSelection( wxT("Onion") );
iface->AddSelection( wxT("Carrot") );
iface->AddSelection( wxT("Cauliflower") );
iface->AddSelection( wxT("Bean") );
iface->AddSelection( wxT("Raddish") );
iface->AddSelection( wxT("Banana") );
iface->AddSelection( wxT("Apple") );
iface->AddSelection( wxT("Orange") );
iface->AddSelection( wxT("Kiwi") );
iface->AddSelection( wxT("Strawberry") );
iface->AddSelection( wxT("Cucumber") );
iface->AddSelection( wxT("Blackberry") );
iface->AddSelection( wxT("Melon") );
iface->AddSelection( wxT("Cherry") );
iface->AddSelection( wxT("Pea") );
iface->AddSelection( wxT("Pear") );
rowSizer->Add( cc, 1, wxALIGN_CENTER_VERTICAL|wxALL, 5 );
//
// Tree Ctrl wxComboControl
//
// Note that we test that wxGenericComboControl works
gcc = new wxGenericComboControl(panel,wxID_ANY,wxEmptyString,
wxDefaultPosition, wxDefaultSize);
// Set popup interface right away, otherwise some of the calls
// below may fail
TreeCtrlComboPopup* tcPopup = new TreeCtrlComboPopup(gcc);
gcc->SetPopupControl(tcPopup);
// Add items using wxTreeCtrl methods directly
wxTreeItemId rootId = tcPopup->AddRoot(wxT("<hidden_root>"));
wxTreeItemId groupId;
groupId = tcPopup->AppendItem(rootId,wxT("Controls"));
tcPopup->AppendItem(groupId,wxT("wxButton"));
tcPopup->AppendItem(groupId,wxT("wxCheckBox"));
tcPopup->AppendItem(groupId,wxT("wxListCtrl"));
tcPopup->AppendItem(groupId,wxT("wxStaticBox"));
tcPopup->AppendItem(groupId,wxT("wxStaticText"));
tcPopup->AppendItem(groupId,wxT("wxTextCtrl"));
tcPopup->AppendItem(groupId,wxT("wxTreeCtrl"));
groupId = tcPopup->AppendItem(rootId,wxT("Dialogs"));
tcPopup->AppendItem(groupId,wxT("wxDirDialog"));
tcPopup->AppendItem(groupId,wxT("wxFileDialog"));
tcPopup->AppendItem(groupId,wxT("wxWizard"));
gcc->SetValue(wxT("wxStaticBox"));
// Move button to left - it makes more sense for a tree ctrl
gcc->SetButtonPosition(0, // width adjustment
0, // height adjustment
wxLEFT, // side
0 // horizontal spacing
);
rowSizer->Add( gcc, 1, wxALIGN_CENTER_VERTICAL|wxALL, 5 );
colSizer->Add( rowSizer, 0, wxEXPAND|wxALL, 5 );
#if wxUSE_IMAGE
wxInitAllImageHandlers();
//
// Custom Dropbutton Bitmaps
// (second one uses blank button background)
//
rowSizer = new wxBoxSizer ( wxHORIZONTAL );
rowSizer->Add( new wxStaticText(panel,wxID_ANY,
wxT("OwnerDrawnComboBox with simple dropbutton graphics:")), 1,
wxALIGN_CENTER_VERTICAL|wxRIGHT, 4 );
colSizer->Add( rowSizer, 0, wxEXPAND|wxALL, 5 );
rowSizer = new wxBoxSizer ( wxHORIZONTAL );
odc = new wxOwnerDrawnComboBox(panel,wxID_ANY,wxEmptyString,
wxDefaultPosition, wxDefaultSize,
arrItems,
(long)0 // wxCB_SORT // wxNO_BORDER | wxCB_READONLY
);
wxOwnerDrawnComboBox* odc2;
odc2 = new wxOwnerDrawnComboBox(panel,wxID_ANY,wxEmptyString,
wxDefaultPosition, wxDefaultSize,
arrItems,
(long)0 // wxCB_SORT // wxNO_BORDER | wxCB_READONLY
);
// Load images from disk
wxImage imgNormal(wxT("dropbutn.png"));
wxImage imgPressed(wxT("dropbutp.png"));
wxImage imgHover(wxT("dropbuth.png"));
if ( imgNormal.Ok() && imgPressed.Ok() && imgHover.Ok() )
{
wxBitmap bmpNormal(imgNormal);
wxBitmap bmpPressed(imgPressed);
wxBitmap bmpHover(imgHover);
odc->SetButtonBitmaps(bmpNormal,false,bmpPressed,bmpHover);
odc2->SetButtonBitmaps(bmpNormal,true,bmpPressed,bmpHover);
}
else
wxLogError(wxT("Dropbutton images not found"));
//odc2->SetButtonPosition(0, // width adjustment
// 0, // height adjustment
// wxLEFT, // side
// 0 // horizontal spacing
// );
rowSizer->Add( odc, 1, wxALIGN_CENTER_VERTICAL|wxALL, 4 );
rowSizer->Add( odc2, 1, wxALIGN_CENTER_VERTICAL|wxALL, 4 );
colSizer->Add( rowSizer, 0, wxEXPAND|wxALL, 5 );
#endif
//
// wxComboControl with totally custom button action (open file dialog)
//
rowSizer = new wxBoxSizer ( wxHORIZONTAL );
rowSizer->Add( new wxStaticText(panel,wxID_ANY,
wxT("wxComboControl with custom button action:")), 1,
wxALIGN_CENTER_VERTICAL|wxRIGHT, 4 );
colSizer->Add( rowSizer, 0, wxEXPAND|wxALL, 5 );
rowSizer = new wxBoxSizer ( wxHORIZONTAL );
wxFileSelectorCombo* fsc;
fsc = new wxFileSelectorCombo(panel,wxID_ANY,wxEmptyString,
wxDefaultPosition, wxDefaultSize,
(long)0
);
rowSizer->Add( fsc, 1, wxALIGN_CENTER_VERTICAL|wxALL, 4 );
colSizer->Add( rowSizer, 0, wxEXPAND|wxALL, 5 );
topRowSizer->Add( colSizer, 1, wxALL, 2 );
topRowSizer->Add( m_logWin, 1, wxEXPAND|wxALL, 5 );
topSizer->Add( topRowSizer, 1, wxEXPAND );
panel->SetSizer( topSizer );
topSizer->SetSizeHints( panel );
SetSize(740,480);
Centre();
}
MyFrame::~MyFrame()
{
delete wxLog::SetActiveTarget(m_logOld);
}
// event handlers
void MyFrame::OnComboBoxUpdate( wxCommandEvent& event )
{
// Don't show messages for the log output window (it'll crash)
if ( event.GetId() == 105 )
return;
if ( event.GetEventType() == wxEVT_COMMAND_COMBOBOX_SELECTED )
wxLogDebug(wxT("EVT_COMBOBOX(id=%i,selection=%i)"),event.GetId(),event.GetSelection());
else if ( event.GetEventType() == wxEVT_COMMAND_TEXT_UPDATED )
wxLogDebug(wxT("EVT_TEXT(id=%i,string=\"%s\")"),event.GetId(),event.GetString().c_str());
}
void MyFrame::OnQuit(wxCommandEvent& WXUNUSED(event))
{
// true is to force the frame to close
Close(true);
}
void MyFrame::OnAbout(wxCommandEvent& WXUNUSED(event))
{
wxMessageBox(wxString::Format(
_T("Welcome to %s!\n")
_T("\n")
_T("This is the wxWidgets wxComboControl sample\n")
_T("running under %s."),
wxVERSION_STRING,
wxGetOsDescription().c_str()
),
_T("About wxComboControl sample"),
wxOK | wxICON_INFORMATION,
this);
}

BIN
samples/combo/dropbuth.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 371 B

BIN
samples/combo/dropbutn.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 237 B

BIN
samples/combo/dropbutp.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 366 B

View File

@@ -15,6 +15,7 @@
<subproject id="caret" template="sub"/>
<subproject id="checklst" template="sub"/>
<subproject id="config" template="sub"/>
<subproject id="combo" template="sub"/>
<subproject id="console" template="sub"/>
<subproject id="controls" template="sub"/>
<subproject id="db" template="sub"/>

1944
src/common/combocmn.cpp Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -436,7 +436,7 @@ void wxPopupComboWindow::PositionNearCombo()
void wxPopupComboWindow::OnDismiss()
{
m_combo->OnDismiss();
m_combo->OnPopupDismiss();
}
void wxPopupComboWindow::OnKeyDown(wxKeyEvent& event)

364
src/generic/combog.cpp Normal file
View File

@@ -0,0 +1,364 @@
/////////////////////////////////////////////////////////////////////////////
// Name: combog.cpp
// Purpose: Generic wxComboControl
// Author: Jaakko Salli
// Modified by:
// Created: Apr-30-2006
// RCS-ID: $Id$
// Copyright: (c) 2005 Jaakko Salli
// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
// ============================================================================
// declarations
// ============================================================================
// ----------------------------------------------------------------------------
// headers
// ----------------------------------------------------------------------------
#include "wx/wxprec.h"
#ifdef __BORLANDC__
#pragma hdrstop
#endif
#if wxUSE_COMBOCONTROL
#ifndef WX_PRECOMP
#include "wx/log.h"
#include "wx/combobox.h"
#include "wx/dcclient.h"
#include "wx/settings.h"
#endif
#include "wx/dcbuffer.h"
#include "wx/combo.h"
// ----------------------------------------------------------------------------
// Some constant adjustments to make the generic more bearable
#if defined(__WXUNIVERSAL__)
#define TEXTCTRLXADJUST 0 // position adjustment for wxTextCtrl, with zero indent
#define TEXTCTRLYADJUST 0
#define TEXTXADJUST 0 // how much is read-only text's x adjusted
#define DEFAULT_DROPBUTTON_WIDTH 19
#elif defined(__WXMSW__)
#define TEXTCTRLXADJUST 2 // position adjustment for wxTextCtrl, with zero indent
#define TEXTCTRLYADJUST 3
#define TEXTXADJUST 0 // how much is read-only text's x adjusted
#define DEFAULT_DROPBUTTON_WIDTH 17
#elif defined(__WXGTK__)
#define TEXTCTRLXADJUST -1 // position adjustment for wxTextCtrl, with zero indent
#define TEXTCTRLYADJUST 0
#define TEXTXADJUST 1 // how much is read-only text's x adjusted
#define DEFAULT_DROPBUTTON_WIDTH 23
#elif defined(__WXMAC__)
#define TEXTCTRLXADJUST 0 // position adjustment for wxTextCtrl, with zero indent
#define TEXTCTRLYADJUST 0
#define TEXTXADJUST 0 // how much is read-only text's x adjusted
#define DEFAULT_DROPBUTTON_WIDTH 19
#else
#define TEXTCTRLXADJUST 0 // position adjustment for wxTextCtrl, with zero indent
#define TEXTCTRLYADJUST 0
#define TEXTXADJUST 0 // how much is read-only text's x adjusted
#define DEFAULT_DROPBUTTON_WIDTH 19
#endif
// ============================================================================
// implementation
// ============================================================================
// Only implement if no native or it wasn't fully featured
#ifndef wxCOMBOCONTROL_FULLY_FEATURED
// ----------------------------------------------------------------------------
// wxGenericComboControl
// ----------------------------------------------------------------------------
BEGIN_EVENT_TABLE(wxGenericComboControl, wxComboControlBase)
EVT_PAINT(wxGenericComboControl::OnPaintEvent)
EVT_MOUSE_EVENTS(wxGenericComboControl::OnMouseEvent)
END_EVENT_TABLE()
IMPLEMENT_DYNAMIC_CLASS(wxGenericComboControl, wxComboControlBase)
void wxGenericComboControl::Init()
{
}
bool wxGenericComboControl::Create(wxWindow *parent,
wxWindowID id,
const wxString& value,
const wxPoint& pos,
const wxSize& size,
long style,
const wxValidator& validator,
const wxString& name)
{
// Set border
long border = style & wxBORDER_MASK;
if ( !border )
{
#if defined(__WXUNIVERSAL__)
border = wxBORDER_SIMPLE;
#elif defined(__WXMSW__)
// For XP, have 1-width custom border, for older version use sunken
if ( wxUxThemeEngine::GetIfActive() )
{
border = wxBORDER_NONE;
m_widthCustomBorder = 1;
}
else
border = wxBORDER_SUNKEN;
#elif defined(__WXGTK__)
border = wxBORDER_NONE;
//m_widthCustomBorder = 2;
m_widthCustomBorder = 1;
#else
border = wxBORDER_SIMPLE;
#endif
style = (style & ~(wxBORDER_MASK)) | border;
}
#if defined(__WXGTK__)
Customize( wxCC_BUTTON_OUTSIDE_BORDER |
wxCC_NO_TEXT_AUTO_SELECT );
#endif
if ( style & wxCC_STD_BUTTON )
m_iFlags |= wxCC_POPUP_ON_MOUSE_UP;
// create main window
if ( !wxComboControlBase::Create(parent,
id,
value,
wxDefaultPosition,
wxDefaultSize,
style | wxFULL_REPAINT_ON_RESIZE,
wxDefaultValidator,
name) )
return false;
// Create textctrl, if necessary
CreateTextCtrl( wxNO_BORDER, validator );
// Add keyboard input handlers for main control and textctrl
InstallInputHandlers( true );
// Set background
SetBackgroundStyle( wxBG_STYLE_CUSTOM ); // for double-buffering
// SetSize should be called last
SetSize(pos.x,pos.y,size.x,size.y);
return true;
}
wxGenericComboControl::~wxGenericComboControl()
{
}
void wxGenericComboControl::OnResize()
{
// Recalculates button and textctrl areas
CalculateAreas(DEFAULT_DROPBUTTON_WIDTH);
#if 0
// Move separate button control, if any, to correct position
if ( m_btn )
{
wxSize sz = GetClientSize();
m_btn->SetSize( m_btnArea.x + m_btnSpacingX,
(sz.y-m_btnSize.y)/2,
m_btnSize.x,
m_btnSize.y );
}
#endif
// Move textctrl, if any, accordingly
PositionTextCtrl( TEXTCTRLXADJUST, TEXTCTRLYADJUST );
}
void wxGenericComboControl::OnPaintEvent( wxPaintEvent& WXUNUSED(event) )
{
wxSize sz = GetClientSize();
wxBufferedPaintDC dc(this,GetBufferBitmap(sz));
const wxRect& rectb = m_btnArea;
wxRect rect = m_tcArea;
// artificial simple border
if ( m_widthCustomBorder )
{
int customBorder = m_widthCustomBorder;
// Set border colour
wxPen pen1( wxSystemSettings::GetColour(wxSYS_COLOUR_GRAYTEXT),
customBorder,
wxSOLID );
dc.SetPen( pen1 );
// area around both controls
wxRect rect2(0,0,sz.x,sz.y);
if ( m_iFlags & wxCC_IFLAG_BUTTON_OUTSIDE )
{
rect2 = m_tcArea;
if ( customBorder == 1 )
{
rect2.Inflate(1);
}
else
{
#ifdef __WXGTK__
rect2.x -= 1;
rect2.y -= 1;
#else
rect2.x -= customBorder;
rect2.y -= customBorder;
#endif
rect2.width += 1 + customBorder;
rect2.height += 1 + customBorder;
}
}
dc.SetBrush( *wxTRANSPARENT_BRUSH );
dc.DrawRectangle(rect2);
}
wxColour winCol = GetBackgroundColour();
dc.SetBrush(winCol);
dc.SetPen(winCol);
//wxLogDebug(wxT("hei: %i tcy: %i tchei: %i"),GetClientSize().y,m_tcArea.y,m_tcArea.height);
//wxLogDebug(wxT("btnx: %i tcx: %i tcwid: %i"),m_btnArea.x,m_tcArea.x,m_tcArea.width);
// clear main background
dc.DrawRectangle(rect);
if ( !m_btn )
// Standard button rendering
DrawButton(dc,rectb,true);
// paint required portion on the control
if ( !m_text || m_widthCustomPaint )
{
wxASSERT( m_widthCustomPaint >= 0 );
// this is intentionally here to allow drawed rectangle's
// right edge to be hidden
if ( m_text )
rect.width = m_widthCustomPaint;
dc.SetFont( GetFont() );
dc.SetClippingRegion(rect);
m_popupInterface->PaintComboControl(dc,rect);
}
}
void wxGenericComboControl::OnMouseEvent( wxMouseEvent& event )
{
bool isOnButtonArea = m_btnArea.Inside(event.m_x,event.m_y);
int handlerFlags = isOnButtonArea ? wxCC_MF_ON_BUTTON : 0;
// Preprocessing fabricates double-clicks and prevents
// (it may also do other common things in future)
if ( PreprocessMouseEvent(event,handlerFlags) )
return;
if ( (m_windowStyle & (wxCC_SPECIAL_DCLICK|wxCB_READONLY)) == wxCB_READONLY )
{
// if no textctrl and no special double-click, then the entire control acts
// as a button
handlerFlags |= wxCC_MF_ON_BUTTON;
if ( HandleButtonMouseEvent(event,handlerFlags) )
return;
}
else
{
if ( isOnButtonArea || HasCapture() )
{
if ( HandleButtonMouseEvent(event,handlerFlags) )
return;
}
else if ( m_btnState )
{
// otherwise need to clear the hover status
m_btnState = 0;
RefreshRect(m_btnArea);
}
}
//
// This will handle left_down and left_dclick events outside button in a Windows/GTK-like manner.
// See header file for further information on this method.
HandleNormalMouseEvent(event);
}
#ifdef __WXUNIVERSAL__
bool wxGenericComboControl::PerformAction(const wxControlAction& action,
long numArg,
const wxString& strArg)
{
bool processed = false;
if ( action == wxACTION_COMBOBOX_POPUP )
{
if ( !m_isPopupShown )
{
ShowPopup();
processed = true;
}
}
else if ( action == wxACTION_COMBOBOX_DISMISS )
{
if ( m_isPopupShown )
{
HidePopup();
processed = true;
}
}
if ( !processed )
{
// pass along
return wxControl::PerformAction(action, numArg, strArg);
}
return true;
}
#endif // __WXUNIVERSAL__
// If native wxComboControl was not defined, then prepare a simple
// front-end so that wxRTTI works as expected.
#ifndef _WX_COMBOCONTROL_H_
IMPLEMENT_DYNAMIC_CLASS(wxComboControl, wxGenericComboControl)
#endif
#endif // !wxCOMBOCONTROL_FULLY_FEATURED
#endif // wxUSE_COMBOCONTROL

737
src/generic/odcombo.cpp Normal file
View File

@@ -0,0 +1,737 @@
/////////////////////////////////////////////////////////////////////////////
// Name: odcombo.cpp
// Purpose: wxOwnerDrawnComboBox, wxVListBoxComboPopup
// Author: Jaakko Salli
// Modified by:
// Created: Apr-30-2006
// RCS-ID: $Id$
// Copyright: (c) 2005 Jaakko Salli
// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
// ============================================================================
// declarations
// ============================================================================
// ----------------------------------------------------------------------------
// headers
// ----------------------------------------------------------------------------
#include "wx/wxprec.h"
#ifdef __BORLANDC__
#pragma hdrstop
#endif
#if wxUSE_OWNERDRAWNCOMBOBOX
#ifndef WX_PRECOMP
#include "wx/log.h"
#include "wx/combobox.h"
#include "wx/dcclient.h"
#include "wx/settings.h"
#include "wx/dialog.h"
#endif
#include "wx/combo.h"
#include "wx/odcombo.h"
// ============================================================================
// implementation
// ============================================================================
// ----------------------------------------------------------------------------
// wxVListBoxComboPopup is a wxVListBox customized to act as a popup control
//
// ----------------------------------------------------------------------------
BEGIN_EVENT_TABLE(wxVListBoxComboPopup, wxVListBox)
EVT_MOTION(wxVListBoxComboPopup::OnMouseMove)
EVT_KEY_DOWN(wxVListBoxComboPopup::OnKey)
EVT_LEFT_UP(wxVListBoxComboPopup::OnLeftClick)
END_EVENT_TABLE()
wxVListBoxComboPopup::wxVListBoxComboPopup(wxComboControlBase* combo)
: wxVListBox(),
wxComboPopup(combo)
{
m_widestWidth = 0;
m_avgCharWidth = 0;
m_baseImageWidth = 0;
m_itemHeight = 0;
m_value = -1;
m_itemHover = -1;
m_clientDataItemsType = wxClientData_None;
}
bool wxVListBoxComboPopup::Create(wxWindow* parent)
{
if ( !wxVListBox::Create(parent,
wxID_ANY,
wxDefaultPosition,
wxDefaultSize,
wxBORDER_SIMPLE | wxLB_INT_HEIGHT | wxWANTS_CHARS) )
return false;
wxASSERT( GetParent()->GetParent() );
SetFont( GetParent()->GetParent()->GetFont() );
wxVListBox::SetItemCount(m_strings.GetCount());
// TODO: Move this to SetFont
m_itemHeight = GetCharHeight() + 0;
return true;
}
wxVListBoxComboPopup::~wxVListBoxComboPopup()
{
Clear();
}
bool wxVListBoxComboPopup::LazyCreate()
{
// NB: There is a bug with wxVListBox that can be avoided by creating
// it later (bug causes empty space to be shown if initial selection
// is at the end of a list longer than the control can show at once).
return true;
}
// paint the control itself
void wxVListBoxComboPopup::PaintComboControl( wxDC& dc, const wxRect& rect )
{
if ( !(m_combo->GetWindowStyle() & wxODCB_STD_CONTROL_PAINT) )
{
m_combo->DrawFocusBackground(dc,rect,0);
if ( m_value >= 0 )
{
if ( m_combo->OnDrawListItem(dc,rect,m_value,wxCC_PAINTING_CONTROL) )
return;
}
}
wxComboPopup::PaintComboControl(dc,rect);
}
void wxVListBoxComboPopup::OnDrawItem(wxDC& dc, const wxRect& rect, size_t n) const
{
dc.SetFont( m_font );
bool isHilited = GetSelection() == (int) n;
// Set correct text colour for selected items
// (must always set the correct colour - atleast GTK may have lost it
// in between calls).
if ( isHilited )
dc.SetTextForeground( wxSystemSettings::GetColour(wxSYS_COLOUR_HIGHLIGHTTEXT) );
else
dc.SetTextForeground( wxSystemSettings::GetColour(wxSYS_COLOUR_WINDOWTEXT) );
if ( !m_combo->OnDrawListItem(dc,rect,(int)n,0) )
dc.DrawText( GetString(n), rect.x + 2, rect.y );
}
wxCoord wxVListBoxComboPopup::OnMeasureItem(size_t n) const
{
int itemHeight = m_combo->OnMeasureListItem(n);
if ( itemHeight < 0 )
itemHeight = m_itemHeight;
return itemHeight;
}
void wxVListBoxComboPopup::OnDrawBackground(wxDC& dc, const wxRect& rect, size_t n) const
{
// we need to render selected and current items differently
if ( IsCurrent(n) )
{
m_combo->DrawFocusBackground( dc, rect, wxCONTROL_ISSUBMENU|wxCONTROL_SELECTED );
}
//else: do nothing for the normal items
}
void wxVListBoxComboPopup::SendComboBoxEvent()
{
wxCommandEvent evt(wxEVT_COMMAND_COMBOBOX_SELECTED,m_combo->GetId());
int selection = m_value;
evt.SetEventObject(m_combo);
evt.SetInt(selection);
// Set client data, if any
if ( selection >= 0 && (int)m_clientDatas.GetCount() > selection )
{
void* clientData = m_clientDatas[selection];
if ( m_clientDataItemsType == wxClientData_Object )
evt.SetClientObject((wxClientData*)clientData);
else
evt.SetClientData(clientData);
}
m_combo->GetEventHandler()->AddPendingEvent(evt);
}
// returns true if key was consumed
bool wxVListBoxComboPopup::HandleKey( int keycode, bool saturate )
{
int value = m_value;
int itemCount = GetCount();
if ( keycode == WXK_DOWN || keycode == WXK_RIGHT )
{
value++;
}
else if ( keycode == WXK_UP || keycode == WXK_LEFT )
{
value--;
}
else if ( keycode == WXK_PAGEDOWN )
{
value+=10;
}
else if ( keycode == WXK_PAGEUP )
{
value-=10;
}
/*
else if ( keycode == WXK_END )
{
value = itemCount-1;
}
else if ( keycode == WXK_HOME )
{
value = 0;
}
*/
else
return false;
if ( saturate )
{
if ( value >= itemCount )
value = itemCount - 1;
else if ( value < 0 )
value = 0;
}
else
{
if ( value >= itemCount )
value -= itemCount;
else if ( value < 0 )
value += itemCount;
}
if ( value == m_value )
// Even if value was same, don't skip the event
// (good for consistency)
return true;
m_value = value;
wxString valStr;
if ( value >= 0 )
m_combo->SetValue(m_strings[value]);
SendComboBoxEvent();
return true;
}
void wxVListBoxComboPopup::OnComboDoubleClick()
{
// Cycle on dclick (disable saturation to allow true cycling).
if ( !::wxGetKeyState(WXK_SHIFT) )
HandleKey(WXK_DOWN,false);
else
HandleKey(WXK_UP,false);
}
void wxVListBoxComboPopup::OnComboKeyEvent( wxKeyEvent& event )
{
// Saturated key movement on
if ( !HandleKey(event.GetKeyCode(),true) )
event.Skip();
}
void wxVListBoxComboPopup::OnPopup()
{
// *must* set value after size is set (this is because of a vlbox bug)
wxVListBox::SetSelection(m_value);
}
void wxVListBoxComboPopup::OnMouseMove(wxMouseEvent& event)
{
// Move selection to cursor if it is inside the popup
int itemHere = GetItemAtPosition(event.GetPosition());
if ( itemHere >= 0 )
wxVListBox::SetSelection(itemHere);
event.Skip();
}
void wxVListBoxComboPopup::OnLeftClick(wxMouseEvent& WXUNUSED(event))
{
m_value = wxVListBox::GetSelection();
Dismiss();
SendComboBoxEvent();
}
void wxVListBoxComboPopup::OnKey(wxKeyEvent& event)
{
// Select item if ENTER is pressed
if ( event.GetKeyCode() == WXK_RETURN || event.GetKeyCode() == WXK_NUMPAD_ENTER )
{
m_value = wxVListBox::GetSelection();
Dismiss();
SendComboBoxEvent();
}
// Hide popup if ESC is pressed
else if ( event.GetKeyCode() == WXK_ESCAPE )
Dismiss();
else
event.Skip();
}
void wxVListBoxComboPopup::CheckWidth( int pos )
{
wxCoord x = m_combo->OnMeasureListItemWidth(pos);
if ( x < 0 )
{
if ( !m_font.Ok() )
m_font = m_combo->GetFont();
wxCoord y;
m_combo->GetTextExtent(m_strings[pos], &x, &y, 0, 0, &m_font);
x += 4;
}
if ( m_widestWidth < x )
{
m_widestWidth = x;
}
}
void wxVListBoxComboPopup::Insert( const wxString& item, int pos )
{
// Need to change selection?
wxString strValue;
if ( !(m_combo->GetWindowStyle() & wxCB_READONLY) &&
m_combo->GetValue() == item )
m_value = pos;
m_strings.Insert(item,pos);
if ( IsCreated() )
wxVListBox::SetItemCount( wxVListBox::GetItemCount()+1 );
// Calculate width
CheckWidth(pos);
}
int wxVListBoxComboPopup::Append(const wxString& item)
{
int pos = (int)m_strings.GetCount();
if ( m_combo->GetWindowStyle() & wxCB_SORT )
{
// Find position
// TODO: Could be optimized with binary search
wxArrayString strings = m_strings;
unsigned int i;
for ( i=0; i<strings.GetCount(); i++ )
{
if ( item.Cmp(strings.Item(i)) < 0 )
{
pos = (int)i;
break;
}
}
}
Insert(item,pos);
return pos;
}
void wxVListBoxComboPopup::Clear()
{
wxASSERT(m_combo);
m_strings.Empty();
ClearClientDatas();
if ( IsCreated() )
wxVListBox::SetItemCount(0);
}
void wxVListBoxComboPopup::ClearClientDatas()
{
if ( m_clientDataItemsType == wxClientData_Object )
{
size_t i;
for ( i=0; i<m_clientDatas.GetCount(); i++ )
delete (wxClientData*) m_clientDatas[i];
}
m_clientDatas.Empty();
}
void wxVListBoxComboPopup::SetItemClientData( unsigned int n,
void* clientData,
wxClientDataType clientDataItemsType )
{
// It should be sufficient to update this variable only here
m_clientDataItemsType = clientDataItemsType;
m_clientDatas.SetCount(n+1,NULL);
m_clientDatas[n] = clientData;
}
void* wxVListBoxComboPopup::GetItemClientData(unsigned int n) const
{
if ( m_clientDatas.GetCount() > n )
return m_clientDatas[n];
return NULL;
}
void wxVListBoxComboPopup::Delete( unsigned int item )
{
// Remove client data, if set
if ( m_clientDatas.GetCount() )
{
if ( m_clientDataItemsType == wxClientData_Object )
delete (wxClientData*) m_clientDatas[item];
m_clientDatas.RemoveAt(item);
}
m_strings.RemoveAt(item);
if ( IsCreated() )
wxVListBox::SetItemCount( wxVListBox::GetItemCount()-1 );
}
int wxVListBoxComboPopup::FindString(const wxString& s) const
{
return m_strings.Index(s);
}
unsigned int wxVListBoxComboPopup::GetCount() const
{
return m_strings.GetCount();
}
wxString wxVListBoxComboPopup::GetString( int item ) const
{
return m_strings[item];
}
void wxVListBoxComboPopup::SetString( int item, const wxString& str )
{
m_strings[item] = str;
}
wxString wxVListBoxComboPopup::GetStringValue() const
{
if ( m_value >= 0 )
return m_strings[m_value];
return wxEmptyString;
}
void wxVListBoxComboPopup::SetSelection( int item )
{
// This seems to be necessary (2.5.3 w/ MingW atleast)
if ( item < -1 || item >= (int)m_strings.GetCount() )
item = -1;
m_value = item;
if ( IsCreated() )
wxVListBox::SetSelection(item);
}
void wxVListBoxComboPopup::SetStringValue( const wxString& value )
{
int index = m_strings.Index(value);
m_value = index;
if ( index >= -1 && index < (int)wxVListBox::GetItemCount() )
wxVListBox::SetSelection(index);
}
wxSize wxVListBoxComboPopup::GetAdjustedSize( int minWidth, int prefHeight, int maxHeight )
{
int height = 250;
if ( m_strings.GetCount() )
{
if ( prefHeight > 0 )
height = prefHeight;
if ( height > maxHeight )
height = maxHeight;
int totalHeight = GetTotalHeight(); // + 3;
if ( height >= totalHeight )
{
height = totalHeight;
}
else
{
// Adjust height to a multiple of the height of the first item
// NB: Calculations that take variable height into account
// are unnecessary.
int fih = GetLineHeight(0);
int shown = height/fih;
height = shown * fih;
}
}
else
height = 50;
// Take scrollbar into account in width calculations
int widestWidth = m_widestWidth + wxSystemSettings::GetMetric(wxSYS_VSCROLL_X);
return wxSize(minWidth > widestWidth ? minWidth : widestWidth,
height+2);
}
void wxVListBoxComboPopup::Populate( int n, const wxString choices[] )
{
int i;
for ( i=0; i<n; i++ )
{
const wxString& item = choices[i];
m_strings.Add(item);
CheckWidth(i);
}
if ( IsCreated() )
wxVListBox::SetItemCount(n);
// Sort the initial choices
if ( m_combo->GetWindowStyle() & wxCB_SORT )
m_strings.Sort();
// Find initial selection
wxString strValue = m_combo->GetValue();
if ( strValue.Length() )
m_value = m_strings.Index(strValue);
}
// ----------------------------------------------------------------------------
// wxOwnerDrawnComboBox
// ----------------------------------------------------------------------------
BEGIN_EVENT_TABLE(wxOwnerDrawnComboBox, wxComboControl)
END_EVENT_TABLE()
IMPLEMENT_DYNAMIC_CLASS2(wxOwnerDrawnComboBox, wxComboControl, wxControlWithItems)
void wxOwnerDrawnComboBox::Init()
{
}
bool wxOwnerDrawnComboBox::Create(wxWindow *parent,
wxWindowID id,
const wxString& value,
const wxPoint& pos,
const wxSize& size,
long style,
const wxValidator& validator,
const wxString& name)
{
return wxComboControl::Create(parent,id,value,pos,size,style,validator,name);
}
wxOwnerDrawnComboBox::wxOwnerDrawnComboBox(wxWindow *parent,
wxWindowID id,
const wxString& value,
const wxPoint& pos,
const wxSize& size,
const wxArrayString& choices,
long style,
const wxValidator& validator,
const wxString& name)
: wxComboControl()
{
Init();
Create(parent,id,value,pos,size,choices,style, validator, name);
}
bool wxOwnerDrawnComboBox::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 wxOwnerDrawnComboBox::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 ( !Create(parent, id, value, pos, size, style,
validator, name) )
{
return false;
}
wxVListBoxComboPopup* iface = new wxVListBoxComboPopup(this);
SetPopupControl(iface);
// m_popupInterface has been overridden as wxVListBoxComboPopup
m_popupInterface = iface;
// Add initial choices to the wxVListBox
iface->Populate(n,choices);
return true;
}
wxOwnerDrawnComboBox::~wxOwnerDrawnComboBox()
{
if ( m_popupInterface )
m_popupInterface->ClearClientDatas();
}
// ----------------------------------------------------------------------------
// wxOwnerDrawnComboBox item manipulation methods
// ----------------------------------------------------------------------------
void wxOwnerDrawnComboBox::Clear()
{
wxASSERT( m_popupInterface );
m_popupInterface->Clear();
GetTextCtrl()->SetValue(wxEmptyString);
}
void wxOwnerDrawnComboBox::Delete(unsigned int n)
{
wxCHECK_RET( (n >= 0) && (n < GetCount()), _T("invalid index in wxOwnerDrawnComboBox::Delete") );
if ( GetSelection() == (int) n )
SetValue(wxEmptyString);
m_popupInterface->Delete(n);
}
unsigned int wxOwnerDrawnComboBox::GetCount() const
{
wxASSERT( m_popupInterface );
return m_popupInterface->GetCount();
}
wxString wxOwnerDrawnComboBox::GetString(unsigned int n) const
{
wxCHECK_MSG( (n >= 0) && (n < GetCount()), wxEmptyString, _T("invalid index in wxOwnerDrawnComboBox::GetString") );
return m_popupInterface->GetString(n);
}
void wxOwnerDrawnComboBox::SetString(unsigned int n, const wxString& s)
{
wxCHECK_RET( (n >= 0) && (n < GetCount()), _T("invalid index in wxOwnerDrawnComboBox::SetString") );
m_popupInterface->SetString(n,s);
}
int wxOwnerDrawnComboBox::FindString(const wxString& s) const
{
wxASSERT( m_popupInterface );
return m_popupInterface->FindString(s);
}
void wxOwnerDrawnComboBox::Select(int n)
{
wxCHECK_RET( (n >= -1) && (n < (int)GetCount()), _T("invalid index in wxOwnerDrawnComboBox::Select") );
wxASSERT( m_popupInterface );
m_popupInterface->SetSelection(n);
wxString str;
if ( n >= 0 )
str = m_popupInterface->GetString(n);
// Refresh text portion in control
if ( m_text )
m_text->SetValue( str );
else
m_valueString = str;
Refresh();
}
int wxOwnerDrawnComboBox::GetSelection() const
{
wxASSERT( m_popupInterface );
return m_popupInterface->GetSelection();
}
int wxOwnerDrawnComboBox::DoAppend(const wxString& item)
{
wxASSERT( m_popupInterface );
return m_popupInterface->Append(item);
}
int wxOwnerDrawnComboBox::DoInsert(const wxString& item, unsigned int pos)
{
wxCHECK_MSG(!(GetWindowStyle() & wxCB_SORT), -1, wxT("can't insert into sorted list"));
wxCHECK_MSG((pos>=0) && (pos<=GetCount()), -1, wxT("invalid index"));
m_popupInterface->Insert(item,pos);
return pos;
}
void wxOwnerDrawnComboBox::DoSetItemClientData(unsigned int n, void* clientData)
{
wxASSERT(m_popupInterface);
m_popupInterface->SetItemClientData(n,clientData,m_clientDataItemsType);
}
void* wxOwnerDrawnComboBox::DoGetItemClientData(unsigned int n) const
{
wxASSERT(m_popupInterface);
return m_popupInterface->GetItemClientData(n);
}
void wxOwnerDrawnComboBox::DoSetItemClientObject(unsigned int n, wxClientData* clientData)
{
DoSetItemClientData(n, (void*) clientData);
}
wxClientData* wxOwnerDrawnComboBox::DoGetItemClientObject(unsigned int n) const
{
return (wxClientData*) DoGetItemClientData(n);
}
#endif // wxUSE_OWNERDRAWNCOMBOBOX

521
src/msw/combo.cpp Normal file
View File

@@ -0,0 +1,521 @@
/////////////////////////////////////////////////////////////////////////////
// Name: combo.cpp
// Purpose: wxMSW wxComboControl
// Author: Jaakko Salli
// Modified by:
// Created: Apr-30-2006
// RCS-ID: $Id$
// Copyright: (c) 2005 Jaakko Salli
// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
// ============================================================================
// declarations
// ============================================================================
// ----------------------------------------------------------------------------
// headers
// ----------------------------------------------------------------------------
#include "wx/wxprec.h"
#ifdef __BORLANDC__
#pragma hdrstop
#endif
#if wxUSE_COMBOCONTROL
#ifndef WX_PRECOMP
#include "wx/log.h"
#include "wx/combobox.h"
#include "wx/dcclient.h"
#include "wx/settings.h"
#include "wx/dialog.h"
#endif
#include "wx/dcbuffer.h"
#include "wx/combo.h"
#include "wx/msw/uxtheme.h"
// Change to #if 1 to include tmschema.h for easier testing of theme
// parameters.
#if 0
#include <tmschema.h>
#else
//----------------------------------
#define EP_EDITTEXT 1
#define ETS_NORMAL 1
#define ETS_HOT 2
#define ETS_SELECTED 3
#define ETS_DISABLED 4
#define ETS_FOCUSED 5
#define ETS_READONLY 6
#define ETS_ASSIST 7
#define TMT_FILLCOLOR 3802
#define TMT_TEXTCOLOR 3803
#define TMT_BORDERCOLOR 3801
#define TMT_EDGEFILLCOLOR 3808
//----------------------------------
#endif
#define NATIVE_TEXT_INDENT_XP 4
#define NATIVE_TEXT_INDENT_CLASSIC 2
#define TEXTCTRLXADJUST_XP 1
#define TEXTCTRLYADJUST_XP 3
#define TEXTCTRLXADJUST_CLASSIC 1
#define TEXTCTRLYADJUST_CLASSIC 2
// ============================================================================
// implementation
// ============================================================================
BEGIN_EVENT_TABLE(wxComboControl, wxComboControlBase)
EVT_PAINT(wxComboControl::OnPaintEvent)
EVT_MOUSE_EVENTS(wxComboControl::OnMouseEvent)
END_EVENT_TABLE()
IMPLEMENT_DYNAMIC_CLASS(wxComboControl, wxComboControlBase)
void wxComboControl::Init()
{
}
bool wxComboControl::Create(wxWindow *parent,
wxWindowID id,
const wxString& value,
const wxPoint& pos,
const wxSize& size,
long style,
const wxValidator& validator,
const wxString& name)
{
// Set border
long border = style & wxBORDER_MASK;
wxUxThemeEngine* theme = wxUxThemeEngine::GetIfActive();
if ( !border )
{
// For XP, have 1-width custom border, for older version use sunken
if ( theme )
{
border = wxBORDER_NONE;
m_widthCustomBorder = 1;
}
else
border = wxBORDER_SUNKEN;
style = (style & ~(wxBORDER_MASK)) | border;
}
// create main window
if ( !wxComboControlBase::Create(parent,
id,
value,
wxDefaultPosition,
wxDefaultSize,
style | wxFULL_REPAINT_ON_RESIZE,
wxDefaultValidator,
name) )
return false;
if ( style & wxCC_STD_BUTTON )
m_iFlags |= wxCC_POPUP_ON_MOUSE_UP;
// Create textctrl, if necessary
CreateTextCtrl( wxNO_BORDER, validator );
// Add keyboard input handlers for main control and textctrl
InstallInputHandlers( true );
// Prepare background for double-buffering
SetBackgroundStyle( wxBG_STYLE_CUSTOM );
// SetSize should be called last
SetSize(pos.x,pos.y,size.x,size.y);
return true;
}
wxComboControl::~wxComboControl()
{
}
void wxComboControl::OnThemeChange()
{
wxUxThemeEngine* theme = wxUxThemeEngine::GetIfActive();
if ( theme )
{
wxUxThemeHandle hTheme(this, L"COMBOBOX");
COLORREF col;
theme->GetThemeColor(hTheme,EP_EDITTEXT,ETS_NORMAL,TMT_FILLCOLOR,&col);
SetBackgroundColour(wxRGBToColour(col));
theme->GetThemeColor(hTheme,EP_EDITTEXT,ETS_NORMAL,TMT_TEXTCOLOR,&col);
SetForegroundColour(wxRGBToColour(col));
}
else
{
SetBackgroundColour(wxSystemSettings::GetColour(wxSYS_COLOUR_WINDOW));
SetForegroundColour(wxSystemSettings::GetColour(wxSYS_COLOUR_WINDOWTEXT));
}
}
void wxComboControl::OnResize()
{
//
// Recalculates button and textctrl areas
int textCtrlXAdjust;
int textCtrlYAdjust;
if ( wxUxThemeEngine::GetIfActive() )
{
textCtrlXAdjust = TEXTCTRLXADJUST_XP;
textCtrlYAdjust = TEXTCTRLYADJUST_XP;
}
else
{
textCtrlXAdjust = TEXTCTRLXADJUST_CLASSIC;
textCtrlYAdjust = TEXTCTRLYADJUST_CLASSIC;
}
// Technically Classic Windows style combo has more narrow button,
// but the native renderer doesn't paint it well like that.
int btnWidth = 17;
CalculateAreas(btnWidth);
// Position textctrl using standard routine
PositionTextCtrl(textCtrlXAdjust,textCtrlYAdjust);
}
// Draws non-XP GUI dotted line around the focus area
static void wxMSWDrawFocusRect( wxDC& dc, const wxRect& rect )
{
#if !defined(__WXWINCE__)
/*
RECT mswRect;
mswRect.left = rect.x;
mswRect.top = rect.y;
mswRect.right = rect.x + rect.width;
mswRect.bottom = rect.y + rect.height;
HDC hdc = (HDC) dc.GetHDC();
SetMapMode(hdc,MM_TEXT); // Just in case...
DrawFocusRect(hdc,&mswRect);
*/
// FIXME: Use DrawFocusRect code above (currently it draws solid line
// for caption focus but works ok for other stuff).
// Also, this code below may not work in future wx versions, since
// it employs wxCAP_BUTT hack to have line of width 1.
dc.SetLogicalFunction(wxINVERT);
wxPen pen(*wxBLACK,1,wxDOT);
pen.SetCap(wxCAP_BUTT);
dc.SetPen(pen);
dc.SetBrush(*wxTRANSPARENT_BRUSH);
dc.DrawRectangle(rect);
dc.SetLogicalFunction(wxCOPY);
#else
dc.SetLogicalFunction(wxINVERT);
dc.SetPen(wxPen(*wxBLACK,1,wxDOT));
dc.SetBrush(*wxTRANSPARENT_BRUSH);
dc.DrawRectangle(rect);
dc.SetLogicalFunction(wxCOPY);
#endif
}
// draw focus background on area in a way typical on platform
void wxComboControl::DrawFocusBackground( wxDC& dc, const wxRect& rect, int flags )
{
wxUxThemeEngine* theme = (wxUxThemeEngine*) NULL;
wxUxThemeHandle hTheme(this, L"COMBOBOX");
//COLORREF cref;
wxSize sz = GetClientSize();
bool isEnabled;
bool isFocused; // also selected
// For smaller size control (and for disabled background) use less spacing
int focusSpacingX;
int focusSpacingY;
if ( !(flags & wxCONTROL_ISSUBMENU) )
{
// Drawing control
isEnabled = IsEnabled();
isFocused = ShouldDrawFocus();
// Windows-style: for smaller size control (and for disabled background) use less spacing
if ( hTheme )
{
// WinXP Theme
focusSpacingX = isEnabled ? 2 : 1;
focusSpacingY = sz.y > (GetCharHeight()+2) && isEnabled ? 2 : 1;
}
else
{
// Classic Theme
if ( isEnabled )
{
focusSpacingX = 1;
focusSpacingY = 1;
}
else
{
focusSpacingX = 0;
focusSpacingY = 0;
}
}
}
else
{
// Drawing a list item
isEnabled = true; // they are never disabled
isFocused = flags & wxCONTROL_SELECTED ? true : false;
focusSpacingX = 0;
focusSpacingY = 0;
}
// Set the background sub-rectangle for selection, disabled etc
wxRect selRect(rect);
selRect.y += focusSpacingY;
selRect.height -= (focusSpacingY*2);
selRect.x += m_widthCustomPaint + focusSpacingX;
selRect.width -= m_widthCustomPaint + (focusSpacingX*2);
if ( hTheme )
theme = wxUxThemeEngine::GetIfActive();
wxColour bgCol;
bool drawDottedEdge = false;
if ( isEnabled )
{
// If popup is hidden and this control is focused,
// then draw the focus-indicator (selbgcolor background etc.).
if ( isFocused )
{
#if 0
// TODO: Proper theme color getting (JMS: I don't know which parts/colors to use,
// those below don't work)
if ( hTheme )
{
theme->GetThemeColor(hTheme,EP_EDITTEXT,ETS_SELECTED,TMT_TEXTCOLOR,&cref);
dc.SetTextForeground( wxRGBToColour(cref) );
theme->GetThemeColor(hTheme,EP_EDITTEXT,ETS_SELECTED,TMT_FILLCOLOR,&cref);
bgCol = wxRGBToColour(cref);
}
else
#endif
{
dc.SetTextForeground( wxSystemSettings::GetColour(wxSYS_COLOUR_HIGHLIGHTTEXT) );
bgCol = wxSystemSettings::GetColour(wxSYS_COLOUR_HIGHLIGHT);
if ( m_windowStyle & wxCB_READONLY )
drawDottedEdge = true;
}
}
else
{
/*if ( hTheme )
{
theme->GetThemeColor(hTheme,EP_EDITTEXT,ETS_NORMAL,TMT_TEXTCOLOR,&cref);
dc.SetTextForeground( wxRGBToColour(cref) );
theme->GetThemeColor(hTheme,EP_EDITTEXT,ETS_NORMAL,TMT_FILLCOLOR,&cref);
bgCol = wxRGBToColour(cref);
}
else
{*/
dc.SetTextForeground( wxSystemSettings::GetColour(wxSYS_COLOUR_WINDOWTEXT) );
bgCol = GetBackgroundColour();
//}
}
}
else
{
/*if ( hTheme )
{
theme->GetThemeColor(hTheme,EP_EDITTEXT,ETS_DISABLED,TMT_TEXTCOLOR,&cref);
dc.SetTextForeground( wxRGBToColour(cref) );
theme->GetThemeColor(hTheme,EP_EDITTEXT,ETS_DISABLED,TMT_EDGEFILLCOLOR,&cref);
bgCol = wxRGBToColour(cref);
}
else
{*/
dc.SetTextForeground( wxSystemSettings::GetColour(wxSYS_COLOUR_GRAYTEXT) );
bgCol = wxSystemSettings::GetColour(wxSYS_COLOUR_BTNFACE);
//}
}
dc.SetBrush(bgCol);
dc.SetPen(bgCol);
dc.DrawRectangle(selRect);
if ( drawDottedEdge )
wxMSWDrawFocusRect(dc,selRect);
}
void wxComboControl::OnPaintEvent( wxPaintEvent& WXUNUSED(event) )
{
// TODO: Convert drawing in this function to Windows API Code
wxSize sz = GetClientSize();
wxBufferedPaintDC dc(this,GetBufferBitmap(sz));
const wxRect& rectb = m_btnArea;
wxRect rect = m_tcArea;
bool isEnabled = IsEnabled();
wxColour bgCol = GetBackgroundColour();
wxColour fgCol;
wxUxThemeEngine* theme = NULL;
wxUxThemeHandle hTheme(this, L"COMBOBOX");
int etsState;
// area around both controls
wxRect rect2(0,0,sz.x,sz.y);
if ( m_iFlags & wxCC_IFLAG_BUTTON_OUTSIDE )
{
rect2 = m_tcArea;
rect2.Inflate(1);
}
// Use theme to draw border on XP
if ( hTheme )
{
theme = wxUxThemeEngine::GetIfActive();
COLORREF cref;
// Select correct border colour
if ( !isEnabled )
etsState = ETS_DISABLED;
else
etsState = ETS_NORMAL;
if ( m_widthCustomBorder )
{
theme->GetThemeColor(hTheme,EP_EDITTEXT,etsState,TMT_BORDERCOLOR,&cref);
// Set border colour
dc.SetPen( wxRGBToColour(cref) );
dc.SetBrush( *wxTRANSPARENT_BRUSH );
dc.DrawRectangle(rect2);
}
theme->GetThemeColor(hTheme,EP_EDITTEXT,etsState,TMT_TEXTCOLOR,&cref);
fgCol = wxRGBToColour(cref);
}
else
{
// draw regular background
fgCol = GetForegroundColour();
}
rect2.Deflate(m_widthCustomBorder);
dc.SetBrush(bgCol);
dc.SetPen(bgCol);
// clear main background
dc.DrawRectangle(rect);
// Button background with theme?
bool drawButBg = true;
if ( hTheme && m_blankButtonBg )
{
RECT r;
wxCopyRectToRECT(rectb, r);
// Draw parent background if needed (since button looks like its out of
// the combo, this is preferred).
theme->DrawThemeParentBackground(GetHwndOf(this),
GetHdcOf(dc),
&r);
drawButBg = false;
}
// Standard button rendering
DrawButton(dc,rectb,drawButBg);
// paint required portion on the control
if ( !m_text || m_widthCustomPaint )
{
wxASSERT( m_widthCustomPaint >= 0 );
// this is intentionally here to allow drawed rectangle's
// right edge to be hidden
if ( m_text )
rect.width = m_widthCustomPaint;
dc.SetFont( GetFont() );
dc.SetClippingRegion(rect);
m_popupInterface->PaintComboControl(dc,rect);
}
}
void wxComboControl::OnMouseEvent( wxMouseEvent& event )
{
bool isOnButtonArea = m_btnArea.Inside(event.m_x,event.m_y);
int handlerFlags = isOnButtonArea ? wxCC_MF_ON_BUTTON : 0;
// Preprocessing fabricates double-clicks and prevents
// (it may also do other common things in future)
if ( PreprocessMouseEvent(event,isOnButtonArea) )
return;
if ( (m_windowStyle & (wxCC_SPECIAL_DCLICK|wxCB_READONLY)) == wxCB_READONLY )
{
// if no textctrl and no special double-click, then the entire control acts
// as a button
handlerFlags |= wxCC_MF_ON_BUTTON;
if ( HandleButtonMouseEvent(event,handlerFlags) )
return;
}
else
{
if ( isOnButtonArea || HasCapture() )
{
if ( HandleButtonMouseEvent(event,handlerFlags) )
return;
}
else if ( m_btnState )
{
// otherwise need to clear the hover status
m_btnState = 0;
RefreshRect(m_btnArea);
}
}
//
// This will handle left_down and left_dclick events outside button in a Windows-like manner.
// See header file for further information on this method.
HandleNormalMouseEvent(event);
}
wxCoord wxComboControl::GetNativeTextIndent() const
{
if ( wxUxThemeEngine::GetIfActive() )
return NATIVE_TEXT_INDENT_XP;
return NATIVE_TEXT_INDENT_CLASSIC;
}
#endif // wxUSE_COMBOCONTROL

View File

@@ -38,72 +38,12 @@
#endif
#include "wx/tooltip.h"
#include "wx/popupwin.h"
#include "wx/combo.h"
#include "wx/univ/renderer.h"
#include "wx/univ/inphand.h"
#include "wx/univ/theme.h"
/*
The keyboard event flow:
1. they always come to the text ctrl
2. it forwards the ones it doesn't process to the wxComboControl
3. which passes them to the popup window if it is popped up
*/
// constants
// ----------------------------------------------------------------------------
// the margin between the text control and the combo button
static const wxCoord g_comboMargin = 2;
// ----------------------------------------------------------------------------
// wxComboButton is just a normal button except that it sends commands to the
// combobox and not its parent
// ----------------------------------------------------------------------------
class wxComboButton : public wxBitmapButton
{
public:
wxComboButton(wxComboControl *combo)
: wxBitmapButton(combo->GetParent(), wxID_ANY, wxNullBitmap,
wxDefaultPosition, wxDefaultSize,
wxBORDER_NONE | wxBU_EXACTFIT)
{
m_combo = combo;
wxBitmap bmpNormal, bmpFocus, bmpPressed, bmpDisabled;
GetRenderer()->GetComboBitmaps(&bmpNormal,
&bmpFocus,
&bmpPressed,
&bmpDisabled);
SetBitmapLabel(bmpNormal);
SetBitmapFocus(bmpFocus.Ok() ? bmpFocus : bmpNormal);
SetBitmapSelected(bmpPressed.Ok() ? bmpPressed : bmpNormal);
SetBitmapDisabled(bmpDisabled.Ok() ? bmpDisabled : bmpNormal);
SetBestSize(wxDefaultSize);
}
protected:
void OnButton(wxCommandEvent& WXUNUSED(event)) { m_combo->ShowPopup(); }
virtual wxSize DoGetBestClientSize() const
{
const wxBitmap& bmp = GetBitmapLabel();
return wxSize(bmp.GetWidth(), bmp.GetHeight());
}
private:
wxComboControl *m_combo;
DECLARE_EVENT_TABLE()
};
// ----------------------------------------------------------------------------
// wxComboListBox is a listbox modified to be used as a popup window in a
@@ -114,14 +54,16 @@ class wxComboListBox : public wxListBox, public wxComboPopup
{
public:
// ctor and dtor
wxComboListBox(wxComboControl *combo, int style = 0);
wxComboListBox(wxComboControlBase *combo);
virtual ~wxComboListBox();
// implement wxComboPopup methods
virtual bool SetSelection(const wxString& s);
virtual wxControl *GetControl() { return this; }
virtual void OnShow();
virtual wxCoord GetBestWidth() const;
virtual bool Create(wxWindow* parent);
virtual void SetStringValue(const wxString& s);
virtual wxString GetStringValue() const;
virtual wxWindow *GetControl() { return this; }
virtual void OnPopup();
virtual wxSize GetAdjustedSize(int minWidth, int prefHeight, int maxHeight);
// fix virtual function hiding
virtual void SetSelection(int n) { DoSetSelection(n, true); }
@@ -133,45 +75,10 @@ public:
const wxString& strArg);
protected:
// we shouldn't return height too big from here
virtual wxSize DoGetBestClientSize() const;
// filter mouse move events happening outside the list box
void OnMouseMove(wxMouseEvent& event);
// set m_clicked value from here
void OnLeftUp(wxMouseEvent& event);
// called whenever the user selects or activates a listbox item
void OnSelect(wxCommandEvent& event);
private:
// has the mouse been released on this control?
bool m_clicked;
DECLARE_EVENT_TABLE()
};
// ----------------------------------------------------------------------------
// wxComboTextCtrl is a simple text ctrl which forwards
// wxEVT_COMMAND_TEXT_UPDATED events and all key events to the combobox
// ----------------------------------------------------------------------------
class wxComboTextCtrl : public wxTextCtrl
{
public:
wxComboTextCtrl(wxComboControl *combo,
const wxString& value,
long style,
const wxValidator& validator);
protected:
void OnKey(wxKeyEvent& event);
void OnText(wxCommandEvent& event);
private:
wxComboControl *m_combo;
DECLARE_EVENT_TABLE()
};
@@ -179,361 +86,60 @@ private:
// event tables and such
// ----------------------------------------------------------------------------
BEGIN_EVENT_TABLE(wxComboButton, wxButton)
EVT_BUTTON(wxID_ANY, wxComboButton::OnButton)
END_EVENT_TABLE()
BEGIN_EVENT_TABLE(wxComboListBox, wxListBox)
EVT_LISTBOX(wxID_ANY, wxComboListBox::OnSelect)
EVT_LISTBOX_DCLICK(wxID_ANY, wxComboListBox::OnSelect)
EVT_MOTION(wxComboListBox::OnMouseMove)
EVT_LEFT_UP(wxComboListBox::OnLeftUp)
END_EVENT_TABLE()
BEGIN_EVENT_TABLE(wxComboControl, wxControl)
EVT_KEY_DOWN(wxComboControl::OnKey)
EVT_KEY_UP(wxComboControl::OnKey)
END_EVENT_TABLE()
BEGIN_EVENT_TABLE(wxComboTextCtrl, wxTextCtrl)
EVT_KEY_DOWN(wxComboTextCtrl::OnKey)
EVT_KEY_UP(wxComboTextCtrl::OnKey)
EVT_TEXT(wxID_ANY, wxComboTextCtrl::OnText)
END_EVENT_TABLE()
IMPLEMENT_DYNAMIC_CLASS(wxComboBox, wxControl)
IMPLEMENT_DYNAMIC_CLASS2(wxComboBox, wxControl, wxComboControl)
// ============================================================================
// implementation
// ============================================================================
// ----------------------------------------------------------------------------
// wxComboControl creation
// ----------------------------------------------------------------------------
void wxComboControl::Init()
{
m_popup = (wxComboPopup *)NULL;
m_winPopup = (wxPopupComboWindow *)NULL;
m_isPopupShown = false;
m_btn = NULL;
m_text = NULL;
}
bool wxComboControl::Create(wxWindow *parent,
wxWindowID id,
const wxString& value,
const wxPoint& pos,
const wxSize& size,
long style,
const wxValidator& validator,
const wxString& name)
{
// first create our own window, i.e. the one which will contain all
// subcontrols
style &= ~wxBORDER_NONE;
style |= wxBORDER_SUNKEN;
if ( !wxControl::Create(parent, id, pos, size, style, validator, name) )
return false;
// create the text control and the button as our siblings (*not* children),
// don't care about size/position here - they will be set in DoMoveWindow()
m_btn = new wxComboButton(this);
m_text = new wxComboTextCtrl(this,
value,
style & wxCB_READONLY ? wxTE_READONLY : 0,
validator);
// for compatibility with the other ports, the height specified is the
// combined height of the combobox itself and the popup
if ( size.y == wxDefaultCoord )
{
// ok, use default height for popup too
m_heightPopup = wxDefaultCoord;
}
else
{
m_heightPopup = size.y - DoGetBestSize().y;
}
SetBestSize(size);
Move(pos);
// create the popup window immediately here to allow creating the controls
// with parent == GetPopupWindow() from the derived class ctor
m_winPopup = new wxPopupComboWindow(this);
// have to disable this window to avoid interfering it with message
// processing to the text and the button... but pretend it is enabled to
// make IsEnabled() return true
wxControl::Enable(false); // don't use non virtual Disable() here!
m_isEnabled = true;
CreateInputHandler(wxINP_HANDLER_COMBOBOX);
return true;
}
wxComboControl::~wxComboControl()
{
// as the button and the text control are the parent's children and not
// ours, we have to delete them manually - they are not deleted
// automatically by wxWidgets when we're deleted
delete m_btn;
delete m_text;
delete m_winPopup;
}
// ----------------------------------------------------------------------------
// geometry stuff
// ----------------------------------------------------------------------------
void wxComboControl::DoSetSize(int x, int y,
int width, int WXUNUSED(height),
int sizeFlags)
{
// combo height is always fixed
wxControl::DoSetSize(x, y, width, DoGetBestSize().y, sizeFlags);
}
wxSize wxComboControl::DoGetBestClientSize() const
{
wxSize sizeBtn = m_btn->GetBestSize(),
sizeText = m_text->GetBestSize();
wxCoord widthPopup = 0;
if (m_popup)
{
widthPopup = m_popup->GetBestWidth();
}
return wxSize(wxMax(sizeText.x + g_comboMargin + sizeBtn.x, widthPopup),
wxMax(sizeBtn.y, sizeText.y));
}
void wxComboControl::DoMoveWindow(int x, int y, int width, int height)
{
wxControl::DoMoveWindow(x, y, width, height);
// position the subcontrols inside the client area
wxRect rectBorders = GetRenderer()->GetBorderDimensions(GetBorder());
x += rectBorders.x;
y += rectBorders.y;
width -= rectBorders.x + rectBorders.width;
height -= rectBorders.y + rectBorders.height;
wxSize sizeBtn = m_btn->GetBestSize();
wxCoord wText = width - sizeBtn.x;
wxPoint p = GetParent() ? GetParent()->GetClientAreaOrigin() : wxPoint(0,0);
m_text->SetSize(x - p.x, y - p.y, wText, height);
m_btn->SetSize(x - p.x + wText, y - p.y, sizeBtn.x, height);
}
// ----------------------------------------------------------------------------
// operations
// ----------------------------------------------------------------------------
bool wxComboControl::Enable(bool enable)
{
if ( !wxControl::Enable(enable) )
return false;
m_btn->Enable(enable);
m_text->Enable(enable);
return true;
}
bool wxComboControl::Show(bool show)
{
if ( !wxControl::Show(show) )
return false;
if (m_btn)
m_btn->Show(show);
if (m_text)
m_text->Show(show);
return true;
}
#if wxUSE_TOOLTIPS
void wxComboControl::DoSetToolTip(wxToolTip *tooltip)
{
wxControl::DoSetToolTip(tooltip);
// Set tool tip for button and text box
if (m_text && m_btn)
{
if (tooltip)
{
const wxString &tip = tooltip->GetTip();
m_text->SetToolTip(tip);
m_btn->SetToolTip(tip);
}
else
{
m_text->SetToolTip(NULL);
m_btn->SetToolTip(NULL);
}
}
}
#endif // wxUSE_TOOLTIPS
// ----------------------------------------------------------------------------
// popup window handling
// ----------------------------------------------------------------------------
void wxComboControl::SetPopupControl(wxComboPopup *popup)
{
m_popup = popup;
}
void wxComboControl::ShowPopup()
{
wxCHECK_RET( m_popup, _T("no popup to show in wxComboControl") );
wxCHECK_RET( !IsPopupShown(), _T("popup window already shown") );
wxControl *control = m_popup->GetControl();
// size and position the popup window correctly
m_winPopup->SetSize(GetSize().x,
m_heightPopup == wxDefaultCoord ? control->GetBestSize().y
: m_heightPopup);
wxSize sizePopup = m_winPopup->GetClientSize();
control->SetSize(0, 0, sizePopup.x, sizePopup.y);
// some controls don't accept the size we give then: e.g. a listbox may
// require more space to show its last row
wxSize sizeReal = control->GetSize();
if ( sizeReal != sizePopup )
{
m_winPopup->SetClientSize(sizeReal);
}
m_winPopup->PositionNearCombo();
// show it
m_popup->OnShow();
m_winPopup->Popup(m_text);
m_text->SelectAll();
m_popup->SetSelection(m_text->GetValue());
m_isPopupShown = true;
}
void wxComboControl::HidePopup()
{
wxCHECK_RET( m_popup, _T("no popup to hide in wxComboControl") );
wxCHECK_RET( IsPopupShown(), _T("popup window not shown") );
m_winPopup->Dismiss();
m_isPopupShown = false;
}
void wxComboControl::OnSelect(const wxString& value)
{
m_text->SetValue(value);
m_text->SelectAll();
OnDismiss();
}
void wxComboControl::OnDismiss()
{
HidePopup();
m_text->SetFocus();
}
// ----------------------------------------------------------------------------
// wxComboTextCtrl
// ----------------------------------------------------------------------------
wxComboTextCtrl::wxComboTextCtrl(wxComboControl *combo,
const wxString& value,
long style,
const wxValidator& validator)
: wxTextCtrl(combo->GetParent(), wxID_ANY, value,
wxDefaultPosition, wxDefaultSize,
wxBORDER_NONE | style,
validator)
{
m_combo = combo;
}
void wxComboTextCtrl::OnText(wxCommandEvent& event)
{
if ( m_combo->IsPopupShown() )
{
m_combo->GetPopupControl()->SetSelection(GetValue());
}
// we need to make a copy of the event to have the correct originating
// object and id
wxCommandEvent event2 = event;
event2.SetEventObject(m_combo);
event2.SetId(m_combo->GetId());
// there is a small incompatibility with wxMSW here: the combobox gets the
// event before the text control in our case which corresponds to SMW
// CBN_EDITUPDATE notification and not CBN_EDITCHANGE one wxMSW currently
// uses
//
// if this is really a problem, we can play games with the event handlers
// to circumvent this
(void)m_combo->ProcessEvent(event2);
event.Skip();
}
// pass the keys we don't process to the combo first
void wxComboTextCtrl::OnKey(wxKeyEvent& event)
{
switch ( event.GetKeyCode() )
{
case WXK_RETURN:
// the popup control gets it first but only if it is shown
if ( !m_combo->IsPopupShown() )
break;
//else: fall through
case WXK_UP:
case WXK_DOWN:
case WXK_ESCAPE:
case WXK_PAGEDOWN:
case WXK_PAGEUP:
(void)m_combo->ProcessEvent(event);
return;
}
event.Skip();
}
// ----------------------------------------------------------------------------
// wxComboListBox
// ----------------------------------------------------------------------------
wxComboListBox::wxComboListBox(wxComboControl *combo, int style)
: wxListBox(combo->GetPopupWindow(), wxID_ANY,
wxDefaultPosition, wxDefaultSize,
0, NULL,
wxBORDER_SIMPLE | wxLB_INT_HEIGHT | style),
wxComboListBox::wxComboListBox(wxComboControlBase *combo)
: wxListBox(),
wxComboPopup(combo)
{
}
bool wxComboListBox::Create(wxWindow* parent)
{
if ( !wxListBox::Create(parent, wxID_ANY,
wxDefaultPosition, wxDefaultSize,
0, NULL,
wxBORDER_SIMPLE | wxLB_INT_HEIGHT |
m_combo->GetWindowStyle() & wxCB_SORT ? wxLB_SORT : 0) )
return false;
// we don't react to the mouse events outside the window at all
StopAutoScrolling();
return true;
}
wxComboListBox::~wxComboListBox()
{
}
bool wxComboListBox::SetSelection(const wxString& value)
wxString wxComboListBox::GetStringValue() const
{
return wxListBox::GetStringSelection();
}
void wxComboListBox::SetStringValue(const wxString& value)
{
if ( !value.empty() )
wxListBox::SetStringSelection(value);
else
wxListBox::SetSelection(-1);
/*
// PRE-GLOBAL WXCOMBOCONTROL CODE:
// FindItem() would just find the current item for an empty string (it
// always matches), but we want to show the first one in such case
if ( value.empty() )
@@ -547,36 +153,12 @@ bool wxComboListBox::SetSelection(const wxString& value)
else if ( !FindItem(value) )
{
// no match att all
return false;
}
return true;
*/
}
void wxComboListBox::OnSelect(wxCommandEvent& event)
void wxComboListBox::OnPopup()
{
if ( m_clicked )
{
// first update the combo and close the listbox
m_combo->OnSelect(event.GetString());
// next let the user code have the event
// all fields are already filled by the listbox, just change the event
// type and send it to the combo
wxCommandEvent event2 = event;
event2.SetEventType(wxEVT_COMMAND_COMBOBOX_SELECTED);
event2.SetEventObject(m_combo);
event2.SetId(m_combo->GetId());
m_combo->ProcessEvent(event2);
}
//else: ignore the events resulting from just moving the mouse initially
}
void wxComboListBox::OnShow()
{
// nobody clicked us yet
m_clicked = false;
}
bool wxComboListBox::PerformAction(const wxControlAction& action,
@@ -598,50 +180,26 @@ bool wxComboListBox::PerformAction(const wxControlAction& action,
void wxComboListBox::OnLeftUp(wxMouseEvent& event)
{
// we should dismiss the combo now
m_clicked = true;
// first update the combo and close the listbox
Dismiss();
m_combo->SetValue(wxListBox::GetStringSelection());
// next let the user code have the event
wxCommandEvent evt(wxEVT_COMMAND_COMBOBOX_SELECTED,m_combo->GetId());
evt.SetInt(wxListBox::GetSelection());
evt.SetEventObject(m_combo);
m_combo->ProcessEvent(evt);
event.Skip();
}
void wxComboListBox::OnMouseMove(wxMouseEvent& event)
wxSize wxComboListBox::GetAdjustedSize(int minWidth,
int WXUNUSED(prefHeight),
int maxHeight)
{
// while a wxComboListBox is shown, it always has capture, so if it doesn't
// we're about to go away anyhow (normally this shouldn't happen at all,
// but I don't put assert here as it just might do on other platforms and
// it doesn't break anything anyhow)
if ( this == wxWindow::GetCapture() )
{
if ( HitTest(event.GetPosition()) == wxHT_WINDOW_INSIDE )
{
event.Skip();
}
//else: popup shouldn't react to the mouse motions outside it, it only
// captures the mouse to be able to detect when it must be
// dismissed, so don't call Skip()
}
}
wxCoord wxComboListBox::GetBestWidth() const
{
wxSize size = wxListBox::GetBestSize();
return size.x;
}
wxSize wxComboListBox::DoGetBestClientSize() const
{
// don't return size too big or we risk to not fit on the screen
wxSize size = wxListBox::DoGetBestClientSize();
wxCoord hChar = GetCharHeight();
int nLines = size.y / hChar;
// 10 is the same limit as used by wxMSW
if ( nLines > 10 )
{
size.y = 10*hChar;
}
return size;
wxSize bestSize = wxListBox::GetBestSize();
return wxSize(wxMax(bestSize.x,minWidth),
wxMin(bestSize.y,maxHeight));
}
// ----------------------------------------------------------------------------
@@ -701,13 +259,12 @@ bool wxComboBox::Create(wxWindow *parent,
return false;
}
wxComboListBox *combolbox =
new wxComboListBox(this, style & wxCB_SORT ? wxLB_SORT : 0);
wxComboListBox *combolbox = new wxComboListBox(this);
SetPopupControl(combolbox);
m_lbox = combolbox;
m_lbox->Set(n, choices);
SetPopupControl(combolbox);
return true;
}
@@ -721,67 +278,71 @@ wxComboBox::~wxComboBox()
wxString wxComboBox::GetValue() const
{
return GetText()->GetValue();
return wxComboControl::GetValue();
}
void wxComboBox::SetValue(const wxString& value)
{
GetText()->SetValue(value);
wxComboControl::SetValue(value);
}
void wxComboBox::Copy()
{
GetText()->Copy();
if ( GetTextCtrl() ) GetTextCtrl()->Copy();
}
void wxComboBox::Cut()
{
GetText()->Cut();
if ( GetTextCtrl() ) GetTextCtrl()->Cut();
}
void wxComboBox::Paste()
{
GetText()->Paste();
if ( GetTextCtrl() ) GetTextCtrl()->Paste();
}
void wxComboBox::SetInsertionPoint(long pos)
{
GetText()->SetInsertionPoint(pos);
if ( GetTextCtrl() ) GetTextCtrl()->SetInsertionPoint(pos);
}
void wxComboBox::SetInsertionPointEnd()
{
GetText()->SetInsertionPointEnd();
if ( GetTextCtrl() ) GetTextCtrl()->SetInsertionPointEnd();
}
long wxComboBox::GetInsertionPoint() const
{
return GetText()->GetInsertionPoint();
if ( GetTextCtrl() )
return GetTextCtrl()->GetInsertionPoint();
return -1;
}
wxTextPos wxComboBox::GetLastPosition() const
{
return GetText()->GetLastPosition();
if ( GetTextCtrl() )
return GetTextCtrl()->GetLastPosition();
return -1;
}
void wxComboBox::Replace(long from, long to, const wxString& value)
{
GetText()->Replace(from, to, value);
if ( GetTextCtrl() ) GetTextCtrl()->Replace(from, to, value);
}
void wxComboBox::Remove(long from, long to)
{
GetText()->Remove(from, to);
if ( GetTextCtrl() ) GetTextCtrl()->Remove(from, to);
}
void wxComboBox::SetSelection(long from, long to)
{
GetText()->SetSelection(from, to);
if ( GetTextCtrl() ) GetTextCtrl()->SetSelection(from, to);
}
void wxComboBox::SetEditable(bool editable)
{
GetText()->SetEditable(editable);
if ( GetTextCtrl() ) GetTextCtrl()->SetEditable(editable);
}
// ----------------------------------------------------------------------------
@@ -791,7 +352,7 @@ void wxComboBox::SetEditable(bool editable)
void wxComboBox::Clear()
{
GetLBox()->Clear();
GetText()->SetValue(wxEmptyString);
if ( GetTextCtrl() ) GetTextCtrl()->SetValue(wxEmptyString);
}
void wxComboBox::Delete(unsigned int n)
@@ -799,7 +360,7 @@ void wxComboBox::Delete(unsigned int n)
wxCHECK_RET( IsValid(n), _T("invalid index in wxComboBox::Delete") );
if (GetSelection() == (int)n)
GetText()->SetValue(wxEmptyString);
if ( GetTextCtrl() ) GetTextCtrl()->SetValue(wxEmptyString);
GetLBox()->Delete(n);
}
@@ -833,7 +394,7 @@ void wxComboBox::SetSelection(int n)
wxCHECK_RET( IsValid(n), _T("invalid index in wxComboBox::Select") );
GetLBox()->SetSelection(n);
GetText()->SetValue(GetLBox()->GetString(n));
if ( GetTextCtrl() ) GetTextCtrl()->SetValue(GetLBox()->GetString(n));
}
int wxComboBox::GetSelection() const
@@ -845,7 +406,7 @@ int wxComboBox::GetSelection() const
// Why oh why is this done this way?
// It is not because the value displayed in the text can be found
// in the list that it is the item that is selected!
return FindString(GetText()->GetValue());
return FindString(if ( GetTextCtrl() ) GetTextCtrl()->GetValue());
#endif
}
@@ -888,38 +449,38 @@ wxClientData* wxComboBox::DoGetItemClientObject(unsigned int n) const
bool wxComboBox::IsEditable() const
{
return GetText() != NULL && (!HasFlag(wxCB_READONLY) || GetText()->IsEditable());
return GetTextCtrl() != NULL && (!HasFlag(wxCB_READONLY) || GetTextCtrl()->IsEditable() );
}
void wxComboBox::Undo()
{
if (IsEditable())
GetText()->Undo();
if ( GetTextCtrl() ) GetTextCtrl()->Undo();
}
void wxComboBox::Redo()
{
if (IsEditable())
GetText()->Redo();
if ( GetTextCtrl() ) GetTextCtrl()->Redo();
}
void wxComboBox::SelectAll()
{
GetText()->SelectAll();
if ( GetTextCtrl() ) GetTextCtrl()->SelectAll();
}
bool wxComboBox::CanCopy() const
{
if (GetText() != NULL)
return GetText()->CanCopy();
if (GetTextCtrl() != NULL)
return GetTextCtrl()->CanCopy();
else
return false;
}
bool wxComboBox::CanCut() const
{
if (GetText() != NULL)
return GetText()->CanCut();
if (GetTextCtrl() != NULL)
return GetTextCtrl()->CanCut();
else
return false;
}
@@ -927,7 +488,7 @@ bool wxComboBox::CanCut() const
bool wxComboBox::CanPaste() const
{
if (IsEditable())
return GetText()->CanPaste();
return GetTextCtrl()->CanPaste();
else
return false;
}
@@ -935,7 +496,7 @@ bool wxComboBox::CanPaste() const
bool wxComboBox::CanUndo() const
{
if (IsEditable())
return GetText()->CanUndo();
return GetTextCtrl()->CanUndo();
else
return false;
}
@@ -943,62 +504,12 @@ bool wxComboBox::CanUndo() const
bool wxComboBox::CanRedo() const
{
if (IsEditable())
return GetText()->CanRedo();
return GetTextCtrl()->CanRedo();
else
return false;
}
// ----------------------------------------------------------------------------
// input handling
// ----------------------------------------------------------------------------
void wxComboControl::OnKey(wxKeyEvent& event)
{
if ( m_isPopupShown )
{
// pass it to the popped up control
(void)m_popup->GetControl()->ProcessEvent(event);
}
else // no popup
{
event.Skip();
}
}
bool wxComboControl::PerformAction(const wxControlAction& action,
long numArg,
const wxString& strArg)
{
bool processed = false;
if ( action == wxACTION_COMBOBOX_POPUP )
{
if ( !m_isPopupShown )
{
ShowPopup();
processed = true;
}
}
else if ( action == wxACTION_COMBOBOX_DISMISS )
{
if ( m_isPopupShown )
{
HidePopup();
processed = true;
}
}
if ( !processed )
{
// pass along
return wxControl::PerformAction(action, numArg, strArg);
}
return true;
}
// ----------------------------------------------------------------------------
// wxStdComboBoxInputHandler
// ----------------------------------------------------------------------------
@@ -1037,4 +548,5 @@ bool wxStdComboBoxInputHandler::HandleKey(wxInputConsumer *consumer,
return wxStdInputHandler::HandleKey(consumer, event, pressed);
}
#endif // wxUSE_COMBOBOX

View File

@@ -357,6 +357,10 @@ SOURCE=.\common\colourcmn.cpp
# End Source File
# Begin Source File
SOURCE=.\common\combocmn.cpp
# End Source File
# Begin Source File
SOURCE=.\common\config.cpp
# End Source File
# Begin Source File
@@ -938,6 +942,10 @@ SOURCE=.\generic\choicdgg.cpp
# End Source File
# Begin Source File
SOURCE=.\generic\combog.cpp
# End Source File
# Begin Source File
SOURCE=.\generic\datavgen.cpp
# End Source File
# Begin Source File
@@ -998,6 +1006,10 @@ SOURCE=.\generic\numdlgg.cpp
# End Source File
# Begin Source File
SOURCE=.\generic\odcombo.cpp
# End Source File
# Begin Source File
SOURCE=.\generic\panelg.cpp
# End Source File
# Begin Source File
@@ -1238,6 +1250,10 @@ SOURCE=.\msw\colour.cpp
# End Source File
# Begin Source File
SOURCE=.\msw\combo.cpp
# End Source File
# Begin Source File
SOURCE=.\msw\combobox.cpp
# End Source File
# Begin Source File
@@ -2123,6 +2139,10 @@ SOURCE=..\include\wx\colour.h
# End Source File
# Begin Source File
SOURCE=..\include\wx\combo.h
# End Source File
# Begin Source File
SOURCE=..\include\wx\combobox.h
# End Source File
# Begin Source File
@@ -2691,6 +2711,10 @@ SOURCE=..\include\wx\object.h
# End Source File
# Begin Source File
SOURCE=..\include\wx\odcombo.h
# End Source File
# Begin Source File
SOURCE=..\include\wx\ownerdrw.h
# End Source File
# Begin Source File
@@ -3419,6 +3443,10 @@ SOURCE=..\include\wx\msw\colour.h
# End Source File
# Begin Source File
SOURCE=..\include\wx\msw\combo.h
# End Source File
# Begin Source File
SOURCE=..\include\wx\msw\combobox.h
# End Source File
# Begin Source File
@@ -3711,6 +3739,10 @@ SOURCE=..\include\wx\msw\scrolbar.h
# End Source File
# Begin Source File
SOURCE=..\include\wx\msw\seh.h
# End Source File
# Begin Source File
SOURCE=..\include\wx\msw\setup0.h
# End Source File
# Begin Source File
@@ -3851,6 +3883,10 @@ SOURCE=..\include\wx\generic\colrdlgg.h
# End Source File
# Begin Source File
SOURCE=..\include\wx\generic\combo.h
# End Source File
# Begin Source File
SOURCE=..\include\wx\generic\dataview.h
# End Source File
# Begin Source File