diff --git a/Makefile.in b/Makefile.in index fb031f6d7c..e9174f95fb 100644 --- a/Makefile.in +++ b/Makefile.in @@ -3759,6 +3759,7 @@ COND_WXUNIV_0_ADVANCED_HDR = \ wx/notifmsg.h \ wx/odcombo.h \ wx/propdlg.h \ + wx/richtooltip.h \ wx/sashwin.h \ wx/sound.h \ wx/splash.h \ @@ -3810,6 +3811,7 @@ COND_WXUNIV_1_ADVANCED_HDR = \ wx/notifmsg.h \ wx/odcombo.h \ wx/propdlg.h \ + wx/richtooltip.h \ wx/sashwin.h \ wx/sound.h \ wx/splash.h \ @@ -6143,6 +6145,7 @@ COND_WXUNIV_0___ADVANCED_SRC_OBJECTS = \ monodll_gridcmn.o \ monodll_hyperlnkcmn.o \ monodll_odcombocmn.o \ + monodll_richtooltipcmn.o \ monodll_aboutdlgg.o \ monodll_bannerwindow.o \ monodll_bmpcboxg.o \ @@ -6161,6 +6164,7 @@ COND_WXUNIV_0___ADVANCED_SRC_OBJECTS = \ monodll_notifmsgg.o \ monodll_odcombo.o \ monodll_propdlg.o \ + monodll_generic_richtooltip.o \ monodll_sashwin.o \ monodll_splash.o \ monodll_generic_timectrl.o \ @@ -6178,6 +6182,7 @@ COND_WXUNIV_1___ADVANCED_SRC_OBJECTS = \ monodll_gridcmn.o \ monodll_hyperlnkcmn.o \ monodll_odcombocmn.o \ + monodll_richtooltipcmn.o \ monodll_aboutdlgg.o \ monodll_bannerwindow.o \ monodll_bmpcboxg.o \ @@ -6196,6 +6201,7 @@ COND_WXUNIV_1___ADVANCED_SRC_OBJECTS = \ monodll_notifmsgg.o \ monodll_odcombo.o \ monodll_propdlg.o \ + monodll_generic_richtooltip.o \ monodll_sashwin.o \ monodll_splash.o \ monodll_generic_timectrl.o \ @@ -8097,6 +8103,7 @@ COND_WXUNIV_0___ADVANCED_SRC_OBJECTS_1 = \ monolib_gridcmn.o \ monolib_hyperlnkcmn.o \ monolib_odcombocmn.o \ + monolib_richtooltipcmn.o \ monolib_aboutdlgg.o \ monolib_bannerwindow.o \ monolib_bmpcboxg.o \ @@ -8115,6 +8122,7 @@ COND_WXUNIV_0___ADVANCED_SRC_OBJECTS_1 = \ monolib_notifmsgg.o \ monolib_odcombo.o \ monolib_propdlg.o \ + monolib_generic_richtooltip.o \ monolib_sashwin.o \ monolib_splash.o \ monolib_generic_timectrl.o \ @@ -8132,6 +8140,7 @@ COND_WXUNIV_1___ADVANCED_SRC_OBJECTS_1 = \ monolib_gridcmn.o \ monolib_hyperlnkcmn.o \ monolib_odcombocmn.o \ + monolib_richtooltipcmn.o \ monolib_aboutdlgg.o \ monolib_bannerwindow.o \ monolib_bmpcboxg.o \ @@ -8150,6 +8159,7 @@ COND_WXUNIV_1___ADVANCED_SRC_OBJECTS_1 = \ monolib_notifmsgg.o \ monolib_odcombo.o \ monolib_propdlg.o \ + monolib_generic_richtooltip.o \ monolib_sashwin.o \ monolib_splash.o \ monolib_generic_timectrl.o \ @@ -11893,6 +11903,7 @@ COND_WXUNIV_0___ADVANCED_SRC_OBJECTS_2 = \ advdll_gridcmn.o \ advdll_hyperlnkcmn.o \ advdll_odcombocmn.o \ + advdll_richtooltipcmn.o \ advdll_aboutdlgg.o \ advdll_bannerwindow.o \ advdll_bmpcboxg.o \ @@ -11911,6 +11922,7 @@ COND_WXUNIV_0___ADVANCED_SRC_OBJECTS_2 = \ advdll_notifmsgg.o \ advdll_odcombo.o \ advdll_propdlg.o \ + advdll_generic_richtooltip.o \ advdll_sashwin.o \ advdll_splash.o \ advdll_generic_timectrl.o \ @@ -11928,6 +11940,7 @@ COND_WXUNIV_1___ADVANCED_SRC_OBJECTS_2 = \ advdll_gridcmn.o \ advdll_hyperlnkcmn.o \ advdll_odcombocmn.o \ + advdll_richtooltipcmn.o \ advdll_aboutdlgg.o \ advdll_bannerwindow.o \ advdll_bmpcboxg.o \ @@ -11946,6 +11959,7 @@ COND_WXUNIV_1___ADVANCED_SRC_OBJECTS_2 = \ advdll_notifmsgg.o \ advdll_odcombo.o \ advdll_propdlg.o \ + advdll_generic_richtooltip.o \ advdll_sashwin.o \ advdll_splash.o \ advdll_generic_timectrl.o \ @@ -12007,6 +12021,7 @@ COND_WXUNIV_0___ADVANCED_SRC_OBJECTS_3 = \ advlib_gridcmn.o \ advlib_hyperlnkcmn.o \ advlib_odcombocmn.o \ + advlib_richtooltipcmn.o \ advlib_aboutdlgg.o \ advlib_bannerwindow.o \ advlib_bmpcboxg.o \ @@ -12025,6 +12040,7 @@ COND_WXUNIV_0___ADVANCED_SRC_OBJECTS_3 = \ advlib_notifmsgg.o \ advlib_odcombo.o \ advlib_propdlg.o \ + advlib_generic_richtooltip.o \ advlib_sashwin.o \ advlib_splash.o \ advlib_generic_timectrl.o \ @@ -12042,6 +12058,7 @@ COND_WXUNIV_1___ADVANCED_SRC_OBJECTS_3 = \ advlib_gridcmn.o \ advlib_hyperlnkcmn.o \ advlib_odcombocmn.o \ + advlib_richtooltipcmn.o \ advlib_aboutdlgg.o \ advlib_bannerwindow.o \ advlib_bmpcboxg.o \ @@ -12060,6 +12077,7 @@ COND_WXUNIV_1___ADVANCED_SRC_OBJECTS_3 = \ advlib_notifmsgg.o \ advlib_odcombo.o \ advlib_propdlg.o \ + advlib_generic_richtooltip.o \ advlib_sashwin.o \ advlib_splash.o \ advlib_generic_timectrl.o \ @@ -13348,6 +13366,7 @@ COND_TOOLKIT_MSW___ADVANCED_PLATFORM_SRC_OBJECTS = \ monodll_taskbarcmn.o \ monodll_msw_aboutdlg.o \ monodll_msw_notifmsg.o \ + monodll_msw_richtooltip.o \ monodll_msw_sound.o \ monodll_msw_taskbar.o \ monodll_msw_joystick.o @@ -13386,6 +13405,7 @@ COND_TOOLKIT_WINCE___ADVANCED_PLATFORM_SRC_OBJECTS = \ monodll_taskbarcmn.o \ monodll_msw_aboutdlg.o \ monodll_msw_notifmsg.o \ + monodll_msw_richtooltip.o \ monodll_msw_sound.o \ monodll_msw_taskbar.o @COND_TOOLKIT_WINCE@__ADVANCED_PLATFORM_SRC_OBJECTS = $(COND_TOOLKIT_WINCE___ADVANCED_PLATFORM_SRC_OBJECTS) @@ -13534,6 +13554,7 @@ COND_TOOLKIT_MSW___ADVANCED_PLATFORM_SRC_OBJECTS_0 = \ monolib_taskbarcmn.o \ monolib_msw_aboutdlg.o \ monolib_msw_notifmsg.o \ + monolib_msw_richtooltip.o \ monolib_msw_sound.o \ monolib_msw_taskbar.o \ monolib_msw_joystick.o @@ -13572,6 +13593,7 @@ COND_TOOLKIT_WINCE___ADVANCED_PLATFORM_SRC_OBJECTS_0 = \ monolib_taskbarcmn.o \ monolib_msw_aboutdlg.o \ monolib_msw_notifmsg.o \ + monolib_msw_richtooltip.o \ monolib_msw_sound.o \ monolib_msw_taskbar.o @COND_TOOLKIT_WINCE@__ADVANCED_PLATFORM_SRC_OBJECTS_0 = $(COND_TOOLKIT_WINCE___ADVANCED_PLATFORM_SRC_OBJECTS_0) @@ -13818,6 +13840,7 @@ COND_TOOLKIT_MSW___ADVANCED_PLATFORM_SRC_OBJECTS_8 = \ advdll_taskbarcmn.o \ advdll_msw_aboutdlg.o \ advdll_msw_notifmsg.o \ + advdll_msw_richtooltip.o \ advdll_msw_sound.o \ advdll_msw_taskbar.o \ advdll_msw_joystick.o @@ -13856,6 +13879,7 @@ COND_TOOLKIT_WINCE___ADVANCED_PLATFORM_SRC_OBJECTS_8 = \ advdll_taskbarcmn.o \ advdll_msw_aboutdlg.o \ advdll_msw_notifmsg.o \ + advdll_msw_richtooltip.o \ advdll_msw_sound.o \ advdll_msw_taskbar.o @COND_TOOLKIT_WINCE@__ADVANCED_PLATFORM_SRC_OBJECTS_8 = $(COND_TOOLKIT_WINCE___ADVANCED_PLATFORM_SRC_OBJECTS_8) @@ -13906,6 +13930,7 @@ COND_TOOLKIT_MSW___ADVANCED_PLATFORM_SRC_OBJECTS_9 = \ advlib_taskbarcmn.o \ advlib_msw_aboutdlg.o \ advlib_msw_notifmsg.o \ + advlib_msw_richtooltip.o \ advlib_msw_sound.o \ advlib_msw_taskbar.o \ advlib_msw_joystick.o @@ -13944,6 +13969,7 @@ COND_TOOLKIT_WINCE___ADVANCED_PLATFORM_SRC_OBJECTS_9 = \ advlib_taskbarcmn.o \ advlib_msw_aboutdlg.o \ advlib_msw_notifmsg.o \ + advlib_msw_richtooltip.o \ advlib_msw_sound.o \ advlib_msw_taskbar.o @COND_TOOLKIT_WINCE@__ADVANCED_PLATFORM_SRC_OBJECTS_9 = $(COND_TOOLKIT_WINCE___ADVANCED_PLATFORM_SRC_OBJECTS_9) @@ -20643,6 +20669,9 @@ monodll_sound_sdl.o: $(srcdir)/src/unix/sound_sdl.cpp $(MONODLL_ODEP) @COND_USE_GUI_1@monodll_odcombocmn.o: $(srcdir)/src/common/odcombocmn.cpp $(MONODLL_ODEP) @COND_USE_GUI_1@ $(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/common/odcombocmn.cpp +@COND_USE_GUI_1@monodll_richtooltipcmn.o: $(srcdir)/src/common/richtooltipcmn.cpp $(MONODLL_ODEP) +@COND_USE_GUI_1@ $(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/common/richtooltipcmn.cpp + @COND_USE_GUI_1@monodll_aboutdlgg.o: $(srcdir)/src/generic/aboutdlgg.cpp $(MONODLL_ODEP) @COND_USE_GUI_1@ $(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/generic/aboutdlgg.cpp @@ -20697,6 +20726,9 @@ monodll_sound_sdl.o: $(srcdir)/src/unix/sound_sdl.cpp $(MONODLL_ODEP) @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 +@COND_USE_GUI_1@monodll_generic_richtooltip.o: $(srcdir)/src/generic/richtooltip.cpp $(MONODLL_ODEP) +@COND_USE_GUI_1@ $(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/generic/richtooltip.cpp + @COND_USE_GUI_1@monodll_sashwin.o: $(srcdir)/src/generic/sashwin.cpp $(MONODLL_ODEP) @COND_USE_GUI_1@ $(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/generic/sashwin.cpp @@ -20757,6 +20789,12 @@ monodll_sound_sdl.o: $(srcdir)/src/unix/sound_sdl.cpp $(MONODLL_ODEP) @COND_TOOLKIT_WINCE_USE_GUI_1@monodll_msw_notifmsg.o: $(srcdir)/src/msw/notifmsg.cpp $(MONODLL_ODEP) @COND_TOOLKIT_WINCE_USE_GUI_1@ $(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/msw/notifmsg.cpp +@COND_TOOLKIT_MSW_USE_GUI_1@monodll_msw_richtooltip.o: $(srcdir)/src/msw/richtooltip.cpp $(MONODLL_ODEP) +@COND_TOOLKIT_MSW_USE_GUI_1@ $(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/msw/richtooltip.cpp + +@COND_TOOLKIT_WINCE_USE_GUI_1@monodll_msw_richtooltip.o: $(srcdir)/src/msw/richtooltip.cpp $(MONODLL_ODEP) +@COND_TOOLKIT_WINCE_USE_GUI_1@ $(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/msw/richtooltip.cpp + @COND_TOOLKIT_MSW_USE_GUI_1@monodll_msw_sound.o: $(srcdir)/src/msw/sound.cpp $(MONODLL_ODEP) @COND_TOOLKIT_MSW_USE_GUI_1@ $(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/msw/sound.cpp @@ -26016,6 +26054,9 @@ monolib_sound_sdl.o: $(srcdir)/src/unix/sound_sdl.cpp $(MONOLIB_ODEP) @COND_USE_GUI_1@monolib_odcombocmn.o: $(srcdir)/src/common/odcombocmn.cpp $(MONOLIB_ODEP) @COND_USE_GUI_1@ $(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/common/odcombocmn.cpp +@COND_USE_GUI_1@monolib_richtooltipcmn.o: $(srcdir)/src/common/richtooltipcmn.cpp $(MONOLIB_ODEP) +@COND_USE_GUI_1@ $(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/common/richtooltipcmn.cpp + @COND_USE_GUI_1@monolib_aboutdlgg.o: $(srcdir)/src/generic/aboutdlgg.cpp $(MONOLIB_ODEP) @COND_USE_GUI_1@ $(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/generic/aboutdlgg.cpp @@ -26070,6 +26111,9 @@ monolib_sound_sdl.o: $(srcdir)/src/unix/sound_sdl.cpp $(MONOLIB_ODEP) @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 +@COND_USE_GUI_1@monolib_generic_richtooltip.o: $(srcdir)/src/generic/richtooltip.cpp $(MONOLIB_ODEP) +@COND_USE_GUI_1@ $(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/generic/richtooltip.cpp + @COND_USE_GUI_1@monolib_sashwin.o: $(srcdir)/src/generic/sashwin.cpp $(MONOLIB_ODEP) @COND_USE_GUI_1@ $(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/generic/sashwin.cpp @@ -26130,6 +26174,12 @@ monolib_sound_sdl.o: $(srcdir)/src/unix/sound_sdl.cpp $(MONOLIB_ODEP) @COND_TOOLKIT_WINCE_USE_GUI_1@monolib_msw_notifmsg.o: $(srcdir)/src/msw/notifmsg.cpp $(MONOLIB_ODEP) @COND_TOOLKIT_WINCE_USE_GUI_1@ $(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/msw/notifmsg.cpp +@COND_TOOLKIT_MSW_USE_GUI_1@monolib_msw_richtooltip.o: $(srcdir)/src/msw/richtooltip.cpp $(MONOLIB_ODEP) +@COND_TOOLKIT_MSW_USE_GUI_1@ $(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/msw/richtooltip.cpp + +@COND_TOOLKIT_WINCE_USE_GUI_1@monolib_msw_richtooltip.o: $(srcdir)/src/msw/richtooltip.cpp $(MONOLIB_ODEP) +@COND_TOOLKIT_WINCE_USE_GUI_1@ $(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/msw/richtooltip.cpp + @COND_TOOLKIT_MSW_USE_GUI_1@monolib_msw_sound.o: $(srcdir)/src/msw/sound.cpp $(MONOLIB_ODEP) @COND_TOOLKIT_MSW_USE_GUI_1@ $(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/msw/sound.cpp @@ -35586,6 +35636,9 @@ advdll_hyperlnkcmn.o: $(srcdir)/src/common/hyperlnkcmn.cpp $(ADVDLL_ODEP) advdll_odcombocmn.o: $(srcdir)/src/common/odcombocmn.cpp $(ADVDLL_ODEP) $(CXXC) -c -o $@ $(ADVDLL_CXXFLAGS) $(srcdir)/src/common/odcombocmn.cpp +advdll_richtooltipcmn.o: $(srcdir)/src/common/richtooltipcmn.cpp $(ADVDLL_ODEP) + $(CXXC) -c -o $@ $(ADVDLL_CXXFLAGS) $(srcdir)/src/common/richtooltipcmn.cpp + advdll_aboutdlgg.o: $(srcdir)/src/generic/aboutdlgg.cpp $(ADVDLL_ODEP) $(CXXC) -c -o $@ $(ADVDLL_CXXFLAGS) $(srcdir)/src/generic/aboutdlgg.cpp @@ -35640,6 +35693,9 @@ advdll_odcombo.o: $(srcdir)/src/generic/odcombo.cpp $(ADVDLL_ODEP) advdll_propdlg.o: $(srcdir)/src/generic/propdlg.cpp $(ADVDLL_ODEP) $(CXXC) -c -o $@ $(ADVDLL_CXXFLAGS) $(srcdir)/src/generic/propdlg.cpp +advdll_generic_richtooltip.o: $(srcdir)/src/generic/richtooltip.cpp $(ADVDLL_ODEP) + $(CXXC) -c -o $@ $(ADVDLL_CXXFLAGS) $(srcdir)/src/generic/richtooltip.cpp + advdll_sashwin.o: $(srcdir)/src/generic/sashwin.cpp $(ADVDLL_ODEP) $(CXXC) -c -o $@ $(ADVDLL_CXXFLAGS) $(srcdir)/src/generic/sashwin.cpp @@ -35700,6 +35756,12 @@ advdll_wizard.o: $(srcdir)/src/generic/wizard.cpp $(ADVDLL_ODEP) @COND_TOOLKIT_WINCE@advdll_msw_notifmsg.o: $(srcdir)/src/msw/notifmsg.cpp $(ADVDLL_ODEP) @COND_TOOLKIT_WINCE@ $(CXXC) -c -o $@ $(ADVDLL_CXXFLAGS) $(srcdir)/src/msw/notifmsg.cpp +@COND_TOOLKIT_MSW@advdll_msw_richtooltip.o: $(srcdir)/src/msw/richtooltip.cpp $(ADVDLL_ODEP) +@COND_TOOLKIT_MSW@ $(CXXC) -c -o $@ $(ADVDLL_CXXFLAGS) $(srcdir)/src/msw/richtooltip.cpp + +@COND_TOOLKIT_WINCE@advdll_msw_richtooltip.o: $(srcdir)/src/msw/richtooltip.cpp $(ADVDLL_ODEP) +@COND_TOOLKIT_WINCE@ $(CXXC) -c -o $@ $(ADVDLL_CXXFLAGS) $(srcdir)/src/msw/richtooltip.cpp + @COND_TOOLKIT_MSW@advdll_msw_sound.o: $(srcdir)/src/msw/sound.cpp $(ADVDLL_ODEP) @COND_TOOLKIT_MSW@ $(CXXC) -c -o $@ $(ADVDLL_CXXFLAGS) $(srcdir)/src/msw/sound.cpp @@ -35961,6 +36023,9 @@ advlib_hyperlnkcmn.o: $(srcdir)/src/common/hyperlnkcmn.cpp $(ADVLIB_ODEP) advlib_odcombocmn.o: $(srcdir)/src/common/odcombocmn.cpp $(ADVLIB_ODEP) $(CXXC) -c -o $@ $(ADVLIB_CXXFLAGS) $(srcdir)/src/common/odcombocmn.cpp +advlib_richtooltipcmn.o: $(srcdir)/src/common/richtooltipcmn.cpp $(ADVLIB_ODEP) + $(CXXC) -c -o $@ $(ADVLIB_CXXFLAGS) $(srcdir)/src/common/richtooltipcmn.cpp + advlib_aboutdlgg.o: $(srcdir)/src/generic/aboutdlgg.cpp $(ADVLIB_ODEP) $(CXXC) -c -o $@ $(ADVLIB_CXXFLAGS) $(srcdir)/src/generic/aboutdlgg.cpp @@ -36015,6 +36080,9 @@ advlib_odcombo.o: $(srcdir)/src/generic/odcombo.cpp $(ADVLIB_ODEP) advlib_propdlg.o: $(srcdir)/src/generic/propdlg.cpp $(ADVLIB_ODEP) $(CXXC) -c -o $@ $(ADVLIB_CXXFLAGS) $(srcdir)/src/generic/propdlg.cpp +advlib_generic_richtooltip.o: $(srcdir)/src/generic/richtooltip.cpp $(ADVLIB_ODEP) + $(CXXC) -c -o $@ $(ADVLIB_CXXFLAGS) $(srcdir)/src/generic/richtooltip.cpp + advlib_sashwin.o: $(srcdir)/src/generic/sashwin.cpp $(ADVLIB_ODEP) $(CXXC) -c -o $@ $(ADVLIB_CXXFLAGS) $(srcdir)/src/generic/sashwin.cpp @@ -36075,6 +36143,12 @@ advlib_wizard.o: $(srcdir)/src/generic/wizard.cpp $(ADVLIB_ODEP) @COND_TOOLKIT_WINCE@advlib_msw_notifmsg.o: $(srcdir)/src/msw/notifmsg.cpp $(ADVLIB_ODEP) @COND_TOOLKIT_WINCE@ $(CXXC) -c -o $@ $(ADVLIB_CXXFLAGS) $(srcdir)/src/msw/notifmsg.cpp +@COND_TOOLKIT_MSW@advlib_msw_richtooltip.o: $(srcdir)/src/msw/richtooltip.cpp $(ADVLIB_ODEP) +@COND_TOOLKIT_MSW@ $(CXXC) -c -o $@ $(ADVLIB_CXXFLAGS) $(srcdir)/src/msw/richtooltip.cpp + +@COND_TOOLKIT_WINCE@advlib_msw_richtooltip.o: $(srcdir)/src/msw/richtooltip.cpp $(ADVLIB_ODEP) +@COND_TOOLKIT_WINCE@ $(CXXC) -c -o $@ $(ADVLIB_CXXFLAGS) $(srcdir)/src/msw/richtooltip.cpp + @COND_TOOLKIT_MSW@advlib_msw_sound.o: $(srcdir)/src/msw/sound.cpp $(ADVLIB_ODEP) @COND_TOOLKIT_MSW@ $(CXXC) -c -o $@ $(ADVLIB_CXXFLAGS) $(srcdir)/src/msw/sound.cpp diff --git a/build/bakefiles/files.bkl b/build/bakefiles/files.bkl index 1e73c71304..ad1aeda0e7 100644 --- a/build/bakefiles/files.bkl +++ b/build/bakefiles/files.bkl @@ -2961,6 +2961,7 @@ IMPORTANT: please read docs/tech/tn0016.txt before modifying this file! src/common/gridcmn.cpp src/common/hyperlnkcmn.cpp src/common/odcombocmn.cpp + src/common/richtooltipcmn.cpp src/generic/aboutdlgg.cpp src/generic/bannerwindow.cpp src/generic/bmpcboxg.cpp @@ -2979,6 +2980,7 @@ IMPORTANT: please read docs/tech/tn0016.txt before modifying this file! src/generic/notifmsgg.cpp src/generic/odcombo.cpp src/generic/propdlg.cpp + src/generic/richtooltip.cpp src/generic/sashwin.cpp src/generic/splash.cpp src/generic/timectrl.cpp @@ -3027,6 +3029,7 @@ IMPORTANT: please read docs/tech/tn0016.txt before modifying this file! wx/notifmsg.h wx/odcombo.h wx/propdlg.h + wx/richtooltip.h wx/sashwin.h wx/sound.h wx/splash.h @@ -3041,6 +3044,7 @@ IMPORTANT: please read docs/tech/tn0016.txt before modifying this file! src/common/taskbarcmn.cpp src/msw/aboutdlg.cpp src/msw/notifmsg.cpp + src/msw/richtooltip.cpp src/msw/sound.cpp src/msw/taskbar.cpp diff --git a/build/msw/makefile.bcc b/build/msw/makefile.bcc index d5711717d8..47b46c3e3c 100644 --- a/build/msw/makefile.bcc +++ b/build/msw/makefile.bcc @@ -2263,6 +2263,7 @@ ____ADVANCED_SRC_FILENAMES_OBJECTS = \ $(OBJS)\monodll_gridcmn.obj \ $(OBJS)\monodll_hyperlnkcmn.obj \ $(OBJS)\monodll_odcombocmn.obj \ + $(OBJS)\monodll_richtooltipcmn.obj \ $(OBJS)\monodll_aboutdlgg.obj \ $(OBJS)\monodll_bannerwindow.obj \ $(OBJS)\monodll_bmpcboxg.obj \ @@ -2281,6 +2282,7 @@ ____ADVANCED_SRC_FILENAMES_OBJECTS = \ $(OBJS)\monodll_notifmsgg.obj \ $(OBJS)\monodll_odcombo.obj \ $(OBJS)\monodll_propdlg.obj \ + $(OBJS)\monodll_generic_richtooltip.obj \ $(OBJS)\monodll_sashwin.obj \ $(OBJS)\monodll_splash.obj \ $(OBJS)\monodll_generic_timectrl.obj \ @@ -2290,6 +2292,7 @@ ____ADVANCED_SRC_FILENAMES_OBJECTS = \ $(OBJS)\monodll_taskbarcmn.obj \ $(OBJS)\monodll_aboutdlg.obj \ $(OBJS)\monodll_notifmsg.obj \ + $(OBJS)\monodll_msw_richtooltip.obj \ $(OBJS)\monodll_sound.obj \ $(OBJS)\monodll_taskbar.obj \ $(OBJS)\monodll_joystick.obj \ @@ -2312,6 +2315,7 @@ ____ADVANCED_SRC_FILENAMES_OBJECTS = \ $(OBJS)\monodll_gridcmn.obj \ $(OBJS)\monodll_hyperlnkcmn.obj \ $(OBJS)\monodll_odcombocmn.obj \ + $(OBJS)\monodll_richtooltipcmn.obj \ $(OBJS)\monodll_aboutdlgg.obj \ $(OBJS)\monodll_bannerwindow.obj \ $(OBJS)\monodll_bmpcboxg.obj \ @@ -2330,6 +2334,7 @@ ____ADVANCED_SRC_FILENAMES_OBJECTS = \ $(OBJS)\monodll_notifmsgg.obj \ $(OBJS)\monodll_odcombo.obj \ $(OBJS)\monodll_propdlg.obj \ + $(OBJS)\monodll_generic_richtooltip.obj \ $(OBJS)\monodll_sashwin.obj \ $(OBJS)\monodll_splash.obj \ $(OBJS)\monodll_generic_timectrl.obj \ @@ -2339,6 +2344,7 @@ ____ADVANCED_SRC_FILENAMES_OBJECTS = \ $(OBJS)\monodll_taskbarcmn.obj \ $(OBJS)\monodll_aboutdlg.obj \ $(OBJS)\monodll_notifmsg.obj \ + $(OBJS)\monodll_msw_richtooltip.obj \ $(OBJS)\monodll_sound.obj \ $(OBJS)\monodll_taskbar.obj \ $(OBJS)\monodll_joystick.obj \ @@ -3040,6 +3046,7 @@ ____ADVANCED_SRC_FILENAMES_1_OBJECTS = \ $(OBJS)\monolib_gridcmn.obj \ $(OBJS)\monolib_hyperlnkcmn.obj \ $(OBJS)\monolib_odcombocmn.obj \ + $(OBJS)\monolib_richtooltipcmn.obj \ $(OBJS)\monolib_aboutdlgg.obj \ $(OBJS)\monolib_bannerwindow.obj \ $(OBJS)\monolib_bmpcboxg.obj \ @@ -3058,6 +3065,7 @@ ____ADVANCED_SRC_FILENAMES_1_OBJECTS = \ $(OBJS)\monolib_notifmsgg.obj \ $(OBJS)\monolib_odcombo.obj \ $(OBJS)\monolib_propdlg.obj \ + $(OBJS)\monolib_generic_richtooltip.obj \ $(OBJS)\monolib_sashwin.obj \ $(OBJS)\monolib_splash.obj \ $(OBJS)\monolib_generic_timectrl.obj \ @@ -3067,6 +3075,7 @@ ____ADVANCED_SRC_FILENAMES_1_OBJECTS = \ $(OBJS)\monolib_taskbarcmn.obj \ $(OBJS)\monolib_aboutdlg.obj \ $(OBJS)\monolib_notifmsg.obj \ + $(OBJS)\monolib_msw_richtooltip.obj \ $(OBJS)\monolib_sound.obj \ $(OBJS)\monolib_taskbar.obj \ $(OBJS)\monolib_joystick.obj \ @@ -3089,6 +3098,7 @@ ____ADVANCED_SRC_FILENAMES_1_OBJECTS = \ $(OBJS)\monolib_gridcmn.obj \ $(OBJS)\monolib_hyperlnkcmn.obj \ $(OBJS)\monolib_odcombocmn.obj \ + $(OBJS)\monolib_richtooltipcmn.obj \ $(OBJS)\monolib_aboutdlgg.obj \ $(OBJS)\monolib_bannerwindow.obj \ $(OBJS)\monolib_bmpcboxg.obj \ @@ -3107,6 +3117,7 @@ ____ADVANCED_SRC_FILENAMES_1_OBJECTS = \ $(OBJS)\monolib_notifmsgg.obj \ $(OBJS)\monolib_odcombo.obj \ $(OBJS)\monolib_propdlg.obj \ + $(OBJS)\monolib_generic_richtooltip.obj \ $(OBJS)\monolib_sashwin.obj \ $(OBJS)\monolib_splash.obj \ $(OBJS)\monolib_generic_timectrl.obj \ @@ -3116,6 +3127,7 @@ ____ADVANCED_SRC_FILENAMES_1_OBJECTS = \ $(OBJS)\monolib_taskbarcmn.obj \ $(OBJS)\monolib_aboutdlg.obj \ $(OBJS)\monolib_notifmsg.obj \ + $(OBJS)\monolib_msw_richtooltip.obj \ $(OBJS)\monolib_sound.obj \ $(OBJS)\monolib_taskbar.obj \ $(OBJS)\monolib_joystick.obj \ @@ -4252,6 +4264,7 @@ ____ADVANCED_SRC_FILENAMES_2_OBJECTS = \ $(OBJS)\advdll_gridcmn.obj \ $(OBJS)\advdll_hyperlnkcmn.obj \ $(OBJS)\advdll_odcombocmn.obj \ + $(OBJS)\advdll_richtooltipcmn.obj \ $(OBJS)\advdll_aboutdlgg.obj \ $(OBJS)\advdll_bannerwindow.obj \ $(OBJS)\advdll_bmpcboxg.obj \ @@ -4270,6 +4283,7 @@ ____ADVANCED_SRC_FILENAMES_2_OBJECTS = \ $(OBJS)\advdll_notifmsgg.obj \ $(OBJS)\advdll_odcombo.obj \ $(OBJS)\advdll_propdlg.obj \ + $(OBJS)\advdll_generic_richtooltip.obj \ $(OBJS)\advdll_sashwin.obj \ $(OBJS)\advdll_splash.obj \ $(OBJS)\advdll_generic_timectrl.obj \ @@ -4279,6 +4293,7 @@ ____ADVANCED_SRC_FILENAMES_2_OBJECTS = \ $(OBJS)\advdll_taskbarcmn.obj \ $(OBJS)\advdll_aboutdlg.obj \ $(OBJS)\advdll_notifmsg.obj \ + $(OBJS)\advdll_msw_richtooltip.obj \ $(OBJS)\advdll_sound.obj \ $(OBJS)\advdll_taskbar.obj \ $(OBJS)\advdll_joystick.obj \ @@ -4301,6 +4316,7 @@ ____ADVANCED_SRC_FILENAMES_2_OBJECTS = \ $(OBJS)\advdll_gridcmn.obj \ $(OBJS)\advdll_hyperlnkcmn.obj \ $(OBJS)\advdll_odcombocmn.obj \ + $(OBJS)\advdll_richtooltipcmn.obj \ $(OBJS)\advdll_aboutdlgg.obj \ $(OBJS)\advdll_bannerwindow.obj \ $(OBJS)\advdll_bmpcboxg.obj \ @@ -4319,6 +4335,7 @@ ____ADVANCED_SRC_FILENAMES_2_OBJECTS = \ $(OBJS)\advdll_notifmsgg.obj \ $(OBJS)\advdll_odcombo.obj \ $(OBJS)\advdll_propdlg.obj \ + $(OBJS)\advdll_generic_richtooltip.obj \ $(OBJS)\advdll_sashwin.obj \ $(OBJS)\advdll_splash.obj \ $(OBJS)\advdll_generic_timectrl.obj \ @@ -4328,6 +4345,7 @@ ____ADVANCED_SRC_FILENAMES_2_OBJECTS = \ $(OBJS)\advdll_taskbarcmn.obj \ $(OBJS)\advdll_aboutdlg.obj \ $(OBJS)\advdll_notifmsg.obj \ + $(OBJS)\advdll_msw_richtooltip.obj \ $(OBJS)\advdll_sound.obj \ $(OBJS)\advdll_taskbar.obj \ $(OBJS)\advdll_joystick.obj \ @@ -4346,6 +4364,7 @@ ____ADVANCED_SRC_FILENAMES_3_OBJECTS = \ $(OBJS)\advlib_gridcmn.obj \ $(OBJS)\advlib_hyperlnkcmn.obj \ $(OBJS)\advlib_odcombocmn.obj \ + $(OBJS)\advlib_richtooltipcmn.obj \ $(OBJS)\advlib_aboutdlgg.obj \ $(OBJS)\advlib_bannerwindow.obj \ $(OBJS)\advlib_bmpcboxg.obj \ @@ -4364,6 +4383,7 @@ ____ADVANCED_SRC_FILENAMES_3_OBJECTS = \ $(OBJS)\advlib_notifmsgg.obj \ $(OBJS)\advlib_odcombo.obj \ $(OBJS)\advlib_propdlg.obj \ + $(OBJS)\advlib_generic_richtooltip.obj \ $(OBJS)\advlib_sashwin.obj \ $(OBJS)\advlib_splash.obj \ $(OBJS)\advlib_generic_timectrl.obj \ @@ -4373,6 +4393,7 @@ ____ADVANCED_SRC_FILENAMES_3_OBJECTS = \ $(OBJS)\advlib_taskbarcmn.obj \ $(OBJS)\advlib_aboutdlg.obj \ $(OBJS)\advlib_notifmsg.obj \ + $(OBJS)\advlib_msw_richtooltip.obj \ $(OBJS)\advlib_sound.obj \ $(OBJS)\advlib_taskbar.obj \ $(OBJS)\advlib_joystick.obj \ @@ -4395,6 +4416,7 @@ ____ADVANCED_SRC_FILENAMES_3_OBJECTS = \ $(OBJS)\advlib_gridcmn.obj \ $(OBJS)\advlib_hyperlnkcmn.obj \ $(OBJS)\advlib_odcombocmn.obj \ + $(OBJS)\advlib_richtooltipcmn.obj \ $(OBJS)\advlib_aboutdlgg.obj \ $(OBJS)\advlib_bannerwindow.obj \ $(OBJS)\advlib_bmpcboxg.obj \ @@ -4413,6 +4435,7 @@ ____ADVANCED_SRC_FILENAMES_3_OBJECTS = \ $(OBJS)\advlib_notifmsgg.obj \ $(OBJS)\advlib_odcombo.obj \ $(OBJS)\advlib_propdlg.obj \ + $(OBJS)\advlib_generic_richtooltip.obj \ $(OBJS)\advlib_sashwin.obj \ $(OBJS)\advlib_splash.obj \ $(OBJS)\advlib_generic_timectrl.obj \ @@ -4422,6 +4445,7 @@ ____ADVANCED_SRC_FILENAMES_3_OBJECTS = \ $(OBJS)\advlib_taskbarcmn.obj \ $(OBJS)\advlib_aboutdlg.obj \ $(OBJS)\advlib_notifmsg.obj \ + $(OBJS)\advlib_msw_richtooltip.obj \ $(OBJS)\advlib_sound.obj \ $(OBJS)\advlib_taskbar.obj \ $(OBJS)\advlib_joystick.obj \ @@ -8251,6 +8275,11 @@ $(OBJS)\monodll_odcombocmn.obj: ..\..\src\common\odcombocmn.cpp !endif !if "$(USE_GUI)" == "1" +$(OBJS)\monodll_richtooltipcmn.obj: ..\..\src\common\richtooltipcmn.cpp + $(CXX) -q -c -P -o$@ $(MONODLL_CXXFLAGS) ..\..\src\common\richtooltipcmn.cpp +!endif + +!if "$(USE_GUI)" == "1" $(OBJS)\monodll_aboutdlgg.obj: ..\..\src\generic\aboutdlgg.cpp $(CXX) -q -c -P -o$@ $(MONODLL_CXXFLAGS) ..\..\src\generic\aboutdlgg.cpp !endif @@ -8341,6 +8370,11 @@ $(OBJS)\monodll_propdlg.obj: ..\..\src\generic\propdlg.cpp !endif !if "$(USE_GUI)" == "1" +$(OBJS)\monodll_generic_richtooltip.obj: ..\..\src\generic\richtooltip.cpp + $(CXX) -q -c -P -o$@ $(MONODLL_CXXFLAGS) ..\..\src\generic\richtooltip.cpp +!endif + +!if "$(USE_GUI)" == "1" $(OBJS)\monodll_sashwin.obj: ..\..\src\generic\sashwin.cpp $(CXX) -q -c -P -o$@ $(MONODLL_CXXFLAGS) ..\..\src\generic\sashwin.cpp !endif @@ -8386,6 +8420,11 @@ $(OBJS)\monodll_notifmsg.obj: ..\..\src\msw\notifmsg.cpp !endif !if "$(USE_GUI)" == "1" +$(OBJS)\monodll_msw_richtooltip.obj: ..\..\src\msw\richtooltip.cpp + $(CXX) -q -c -P -o$@ $(MONODLL_CXXFLAGS) ..\..\src\msw\richtooltip.cpp +!endif + +!if "$(USE_GUI)" == "1" $(OBJS)\monodll_sound.obj: ..\..\src\msw\sound.cpp $(CXX) -q -c -P -o$@ $(MONODLL_CXXFLAGS) ..\..\src\msw\sound.cpp !endif @@ -10638,6 +10677,11 @@ $(OBJS)\monolib_odcombocmn.obj: ..\..\src\common\odcombocmn.cpp !endif !if "$(USE_GUI)" == "1" +$(OBJS)\monolib_richtooltipcmn.obj: ..\..\src\common\richtooltipcmn.cpp + $(CXX) -q -c -P -o$@ $(MONOLIB_CXXFLAGS) ..\..\src\common\richtooltipcmn.cpp +!endif + +!if "$(USE_GUI)" == "1" $(OBJS)\monolib_aboutdlgg.obj: ..\..\src\generic\aboutdlgg.cpp $(CXX) -q -c -P -o$@ $(MONOLIB_CXXFLAGS) ..\..\src\generic\aboutdlgg.cpp !endif @@ -10728,6 +10772,11 @@ $(OBJS)\monolib_propdlg.obj: ..\..\src\generic\propdlg.cpp !endif !if "$(USE_GUI)" == "1" +$(OBJS)\monolib_generic_richtooltip.obj: ..\..\src\generic\richtooltip.cpp + $(CXX) -q -c -P -o$@ $(MONOLIB_CXXFLAGS) ..\..\src\generic\richtooltip.cpp +!endif + +!if "$(USE_GUI)" == "1" $(OBJS)\monolib_sashwin.obj: ..\..\src\generic\sashwin.cpp $(CXX) -q -c -P -o$@ $(MONOLIB_CXXFLAGS) ..\..\src\generic\sashwin.cpp !endif @@ -10773,6 +10822,11 @@ $(OBJS)\monolib_notifmsg.obj: ..\..\src\msw\notifmsg.cpp !endif !if "$(USE_GUI)" == "1" +$(OBJS)\monolib_msw_richtooltip.obj: ..\..\src\msw\richtooltip.cpp + $(CXX) -q -c -P -o$@ $(MONOLIB_CXXFLAGS) ..\..\src\msw\richtooltip.cpp +!endif + +!if "$(USE_GUI)" == "1" $(OBJS)\monolib_sound.obj: ..\..\src\msw\sound.cpp $(CXX) -q -c -P -o$@ $(MONOLIB_CXXFLAGS) ..\..\src\msw\sound.cpp !endif @@ -14418,6 +14472,9 @@ $(OBJS)\advdll_hyperlnkcmn.obj: ..\..\src\common\hyperlnkcmn.cpp $(OBJS)\advdll_odcombocmn.obj: ..\..\src\common\odcombocmn.cpp $(CXX) -q -c -P -o$@ $(ADVDLL_CXXFLAGS) ..\..\src\common\odcombocmn.cpp +$(OBJS)\advdll_richtooltipcmn.obj: ..\..\src\common\richtooltipcmn.cpp + $(CXX) -q -c -P -o$@ $(ADVDLL_CXXFLAGS) ..\..\src\common\richtooltipcmn.cpp + $(OBJS)\advdll_aboutdlgg.obj: ..\..\src\generic\aboutdlgg.cpp $(CXX) -q -c -P -o$@ $(ADVDLL_CXXFLAGS) ..\..\src\generic\aboutdlgg.cpp @@ -14472,6 +14529,9 @@ $(OBJS)\advdll_odcombo.obj: ..\..\src\generic\odcombo.cpp $(OBJS)\advdll_propdlg.obj: ..\..\src\generic\propdlg.cpp $(CXX) -q -c -P -o$@ $(ADVDLL_CXXFLAGS) ..\..\src\generic\propdlg.cpp +$(OBJS)\advdll_generic_richtooltip.obj: ..\..\src\generic\richtooltip.cpp + $(CXX) -q -c -P -o$@ $(ADVDLL_CXXFLAGS) ..\..\src\generic\richtooltip.cpp + $(OBJS)\advdll_sashwin.obj: ..\..\src\generic\sashwin.cpp $(CXX) -q -c -P -o$@ $(ADVDLL_CXXFLAGS) ..\..\src\generic\sashwin.cpp @@ -14499,6 +14559,9 @@ $(OBJS)\advdll_aboutdlg.obj: ..\..\src\msw\aboutdlg.cpp $(OBJS)\advdll_notifmsg.obj: ..\..\src\msw\notifmsg.cpp $(CXX) -q -c -P -o$@ $(ADVDLL_CXXFLAGS) ..\..\src\msw\notifmsg.cpp +$(OBJS)\advdll_msw_richtooltip.obj: ..\..\src\msw\richtooltip.cpp + $(CXX) -q -c -P -o$@ $(ADVDLL_CXXFLAGS) ..\..\src\msw\richtooltip.cpp + $(OBJS)\advdll_sound.obj: ..\..\src\msw\sound.cpp $(CXX) -q -c -P -o$@ $(ADVDLL_CXXFLAGS) ..\..\src\msw\sound.cpp @@ -14559,6 +14622,9 @@ $(OBJS)\advlib_hyperlnkcmn.obj: ..\..\src\common\hyperlnkcmn.cpp $(OBJS)\advlib_odcombocmn.obj: ..\..\src\common\odcombocmn.cpp $(CXX) -q -c -P -o$@ $(ADVLIB_CXXFLAGS) ..\..\src\common\odcombocmn.cpp +$(OBJS)\advlib_richtooltipcmn.obj: ..\..\src\common\richtooltipcmn.cpp + $(CXX) -q -c -P -o$@ $(ADVLIB_CXXFLAGS) ..\..\src\common\richtooltipcmn.cpp + $(OBJS)\advlib_aboutdlgg.obj: ..\..\src\generic\aboutdlgg.cpp $(CXX) -q -c -P -o$@ $(ADVLIB_CXXFLAGS) ..\..\src\generic\aboutdlgg.cpp @@ -14613,6 +14679,9 @@ $(OBJS)\advlib_odcombo.obj: ..\..\src\generic\odcombo.cpp $(OBJS)\advlib_propdlg.obj: ..\..\src\generic\propdlg.cpp $(CXX) -q -c -P -o$@ $(ADVLIB_CXXFLAGS) ..\..\src\generic\propdlg.cpp +$(OBJS)\advlib_generic_richtooltip.obj: ..\..\src\generic\richtooltip.cpp + $(CXX) -q -c -P -o$@ $(ADVLIB_CXXFLAGS) ..\..\src\generic\richtooltip.cpp + $(OBJS)\advlib_sashwin.obj: ..\..\src\generic\sashwin.cpp $(CXX) -q -c -P -o$@ $(ADVLIB_CXXFLAGS) ..\..\src\generic\sashwin.cpp @@ -14640,6 +14709,9 @@ $(OBJS)\advlib_aboutdlg.obj: ..\..\src\msw\aboutdlg.cpp $(OBJS)\advlib_notifmsg.obj: ..\..\src\msw\notifmsg.cpp $(CXX) -q -c -P -o$@ $(ADVLIB_CXXFLAGS) ..\..\src\msw\notifmsg.cpp +$(OBJS)\advlib_msw_richtooltip.obj: ..\..\src\msw\richtooltip.cpp + $(CXX) -q -c -P -o$@ $(ADVLIB_CXXFLAGS) ..\..\src\msw\richtooltip.cpp + $(OBJS)\advlib_sound.obj: ..\..\src\msw\sound.cpp $(CXX) -q -c -P -o$@ $(ADVLIB_CXXFLAGS) ..\..\src\msw\sound.cpp diff --git a/build/msw/makefile.gcc b/build/msw/makefile.gcc index 7ecbd48b78..1d29168a4c 100644 --- a/build/msw/makefile.gcc +++ b/build/msw/makefile.gcc @@ -2278,6 +2278,7 @@ ____ADVANCED_SRC_FILENAMES_OBJECTS = \ $(OBJS)\monodll_gridcmn.o \ $(OBJS)\monodll_hyperlnkcmn.o \ $(OBJS)\monodll_odcombocmn.o \ + $(OBJS)\monodll_richtooltipcmn.o \ $(OBJS)\monodll_aboutdlgg.o \ $(OBJS)\monodll_bannerwindow.o \ $(OBJS)\monodll_bmpcboxg.o \ @@ -2296,6 +2297,7 @@ ____ADVANCED_SRC_FILENAMES_OBJECTS = \ $(OBJS)\monodll_notifmsgg.o \ $(OBJS)\monodll_odcombo.o \ $(OBJS)\monodll_propdlg.o \ + $(OBJS)\monodll_generic_richtooltip.o \ $(OBJS)\monodll_sashwin.o \ $(OBJS)\monodll_splash.o \ $(OBJS)\monodll_generic_timectrl.o \ @@ -2305,6 +2307,7 @@ ____ADVANCED_SRC_FILENAMES_OBJECTS = \ $(OBJS)\monodll_taskbarcmn.o \ $(OBJS)\monodll_aboutdlg.o \ $(OBJS)\monodll_notifmsg.o \ + $(OBJS)\monodll_msw_richtooltip.o \ $(OBJS)\monodll_sound.o \ $(OBJS)\monodll_taskbar.o \ $(OBJS)\monodll_joystick.o \ @@ -2327,6 +2330,7 @@ ____ADVANCED_SRC_FILENAMES_OBJECTS = \ $(OBJS)\monodll_gridcmn.o \ $(OBJS)\monodll_hyperlnkcmn.o \ $(OBJS)\monodll_odcombocmn.o \ + $(OBJS)\monodll_richtooltipcmn.o \ $(OBJS)\monodll_aboutdlgg.o \ $(OBJS)\monodll_bannerwindow.o \ $(OBJS)\monodll_bmpcboxg.o \ @@ -2345,6 +2349,7 @@ ____ADVANCED_SRC_FILENAMES_OBJECTS = \ $(OBJS)\monodll_notifmsgg.o \ $(OBJS)\monodll_odcombo.o \ $(OBJS)\monodll_propdlg.o \ + $(OBJS)\monodll_generic_richtooltip.o \ $(OBJS)\monodll_sashwin.o \ $(OBJS)\monodll_splash.o \ $(OBJS)\monodll_generic_timectrl.o \ @@ -2354,6 +2359,7 @@ ____ADVANCED_SRC_FILENAMES_OBJECTS = \ $(OBJS)\monodll_taskbarcmn.o \ $(OBJS)\monodll_aboutdlg.o \ $(OBJS)\monodll_notifmsg.o \ + $(OBJS)\monodll_msw_richtooltip.o \ $(OBJS)\monodll_sound.o \ $(OBJS)\monodll_taskbar.o \ $(OBJS)\monodll_joystick.o \ @@ -3061,6 +3067,7 @@ ____ADVANCED_SRC_FILENAMES_1_OBJECTS = \ $(OBJS)\monolib_gridcmn.o \ $(OBJS)\monolib_hyperlnkcmn.o \ $(OBJS)\monolib_odcombocmn.o \ + $(OBJS)\monolib_richtooltipcmn.o \ $(OBJS)\monolib_aboutdlgg.o \ $(OBJS)\monolib_bannerwindow.o \ $(OBJS)\monolib_bmpcboxg.o \ @@ -3079,6 +3086,7 @@ ____ADVANCED_SRC_FILENAMES_1_OBJECTS = \ $(OBJS)\monolib_notifmsgg.o \ $(OBJS)\monolib_odcombo.o \ $(OBJS)\monolib_propdlg.o \ + $(OBJS)\monolib_generic_richtooltip.o \ $(OBJS)\monolib_sashwin.o \ $(OBJS)\monolib_splash.o \ $(OBJS)\monolib_generic_timectrl.o \ @@ -3088,6 +3096,7 @@ ____ADVANCED_SRC_FILENAMES_1_OBJECTS = \ $(OBJS)\monolib_taskbarcmn.o \ $(OBJS)\monolib_aboutdlg.o \ $(OBJS)\monolib_notifmsg.o \ + $(OBJS)\monolib_msw_richtooltip.o \ $(OBJS)\monolib_sound.o \ $(OBJS)\monolib_taskbar.o \ $(OBJS)\monolib_joystick.o \ @@ -3110,6 +3119,7 @@ ____ADVANCED_SRC_FILENAMES_1_OBJECTS = \ $(OBJS)\monolib_gridcmn.o \ $(OBJS)\monolib_hyperlnkcmn.o \ $(OBJS)\monolib_odcombocmn.o \ + $(OBJS)\monolib_richtooltipcmn.o \ $(OBJS)\monolib_aboutdlgg.o \ $(OBJS)\monolib_bannerwindow.o \ $(OBJS)\monolib_bmpcboxg.o \ @@ -3128,6 +3138,7 @@ ____ADVANCED_SRC_FILENAMES_1_OBJECTS = \ $(OBJS)\monolib_notifmsgg.o \ $(OBJS)\monolib_odcombo.o \ $(OBJS)\monolib_propdlg.o \ + $(OBJS)\monolib_generic_richtooltip.o \ $(OBJS)\monolib_sashwin.o \ $(OBJS)\monolib_splash.o \ $(OBJS)\monolib_generic_timectrl.o \ @@ -3137,6 +3148,7 @@ ____ADVANCED_SRC_FILENAMES_1_OBJECTS = \ $(OBJS)\monolib_taskbarcmn.o \ $(OBJS)\monolib_aboutdlg.o \ $(OBJS)\monolib_notifmsg.o \ + $(OBJS)\monolib_msw_richtooltip.o \ $(OBJS)\monolib_sound.o \ $(OBJS)\monolib_taskbar.o \ $(OBJS)\monolib_joystick.o \ @@ -4301,6 +4313,7 @@ ____ADVANCED_SRC_FILENAMES_2_OBJECTS = \ $(OBJS)\advdll_gridcmn.o \ $(OBJS)\advdll_hyperlnkcmn.o \ $(OBJS)\advdll_odcombocmn.o \ + $(OBJS)\advdll_richtooltipcmn.o \ $(OBJS)\advdll_aboutdlgg.o \ $(OBJS)\advdll_bannerwindow.o \ $(OBJS)\advdll_bmpcboxg.o \ @@ -4319,6 +4332,7 @@ ____ADVANCED_SRC_FILENAMES_2_OBJECTS = \ $(OBJS)\advdll_notifmsgg.o \ $(OBJS)\advdll_odcombo.o \ $(OBJS)\advdll_propdlg.o \ + $(OBJS)\advdll_generic_richtooltip.o \ $(OBJS)\advdll_sashwin.o \ $(OBJS)\advdll_splash.o \ $(OBJS)\advdll_generic_timectrl.o \ @@ -4328,6 +4342,7 @@ ____ADVANCED_SRC_FILENAMES_2_OBJECTS = \ $(OBJS)\advdll_taskbarcmn.o \ $(OBJS)\advdll_aboutdlg.o \ $(OBJS)\advdll_notifmsg.o \ + $(OBJS)\advdll_msw_richtooltip.o \ $(OBJS)\advdll_sound.o \ $(OBJS)\advdll_taskbar.o \ $(OBJS)\advdll_joystick.o \ @@ -4350,6 +4365,7 @@ ____ADVANCED_SRC_FILENAMES_2_OBJECTS = \ $(OBJS)\advdll_gridcmn.o \ $(OBJS)\advdll_hyperlnkcmn.o \ $(OBJS)\advdll_odcombocmn.o \ + $(OBJS)\advdll_richtooltipcmn.o \ $(OBJS)\advdll_aboutdlgg.o \ $(OBJS)\advdll_bannerwindow.o \ $(OBJS)\advdll_bmpcboxg.o \ @@ -4368,6 +4384,7 @@ ____ADVANCED_SRC_FILENAMES_2_OBJECTS = \ $(OBJS)\advdll_notifmsgg.o \ $(OBJS)\advdll_odcombo.o \ $(OBJS)\advdll_propdlg.o \ + $(OBJS)\advdll_generic_richtooltip.o \ $(OBJS)\advdll_sashwin.o \ $(OBJS)\advdll_splash.o \ $(OBJS)\advdll_generic_timectrl.o \ @@ -4377,6 +4394,7 @@ ____ADVANCED_SRC_FILENAMES_2_OBJECTS = \ $(OBJS)\advdll_taskbarcmn.o \ $(OBJS)\advdll_aboutdlg.o \ $(OBJS)\advdll_notifmsg.o \ + $(OBJS)\advdll_msw_richtooltip.o \ $(OBJS)\advdll_sound.o \ $(OBJS)\advdll_taskbar.o \ $(OBJS)\advdll_joystick.o \ @@ -4399,6 +4417,7 @@ ____ADVANCED_SRC_FILENAMES_3_OBJECTS = \ $(OBJS)\advlib_gridcmn.o \ $(OBJS)\advlib_hyperlnkcmn.o \ $(OBJS)\advlib_odcombocmn.o \ + $(OBJS)\advlib_richtooltipcmn.o \ $(OBJS)\advlib_aboutdlgg.o \ $(OBJS)\advlib_bannerwindow.o \ $(OBJS)\advlib_bmpcboxg.o \ @@ -4417,6 +4436,7 @@ ____ADVANCED_SRC_FILENAMES_3_OBJECTS = \ $(OBJS)\advlib_notifmsgg.o \ $(OBJS)\advlib_odcombo.o \ $(OBJS)\advlib_propdlg.o \ + $(OBJS)\advlib_generic_richtooltip.o \ $(OBJS)\advlib_sashwin.o \ $(OBJS)\advlib_splash.o \ $(OBJS)\advlib_generic_timectrl.o \ @@ -4426,6 +4446,7 @@ ____ADVANCED_SRC_FILENAMES_3_OBJECTS = \ $(OBJS)\advlib_taskbarcmn.o \ $(OBJS)\advlib_aboutdlg.o \ $(OBJS)\advlib_notifmsg.o \ + $(OBJS)\advlib_msw_richtooltip.o \ $(OBJS)\advlib_sound.o \ $(OBJS)\advlib_taskbar.o \ $(OBJS)\advlib_joystick.o \ @@ -4448,6 +4469,7 @@ ____ADVANCED_SRC_FILENAMES_3_OBJECTS = \ $(OBJS)\advlib_gridcmn.o \ $(OBJS)\advlib_hyperlnkcmn.o \ $(OBJS)\advlib_odcombocmn.o \ + $(OBJS)\advlib_richtooltipcmn.o \ $(OBJS)\advlib_aboutdlgg.o \ $(OBJS)\advlib_bannerwindow.o \ $(OBJS)\advlib_bmpcboxg.o \ @@ -4466,6 +4488,7 @@ ____ADVANCED_SRC_FILENAMES_3_OBJECTS = \ $(OBJS)\advlib_notifmsgg.o \ $(OBJS)\advlib_odcombo.o \ $(OBJS)\advlib_propdlg.o \ + $(OBJS)\advlib_generic_richtooltip.o \ $(OBJS)\advlib_sashwin.o \ $(OBJS)\advlib_splash.o \ $(OBJS)\advlib_generic_timectrl.o \ @@ -4475,6 +4498,7 @@ ____ADVANCED_SRC_FILENAMES_3_OBJECTS = \ $(OBJS)\advlib_taskbarcmn.o \ $(OBJS)\advlib_aboutdlg.o \ $(OBJS)\advlib_notifmsg.o \ + $(OBJS)\advlib_msw_richtooltip.o \ $(OBJS)\advlib_sound.o \ $(OBJS)\advlib_taskbar.o \ $(OBJS)\advlib_joystick.o \ @@ -8419,6 +8443,11 @@ $(OBJS)\monodll_odcombocmn.o: ../../src/common/odcombocmn.cpp endif ifeq ($(USE_GUI),1) +$(OBJS)\monodll_richtooltipcmn.o: ../../src/common/richtooltipcmn.cpp + $(CXX) -c -o $@ $(MONODLL_CXXFLAGS) $(CPPDEPS) $< +endif + +ifeq ($(USE_GUI),1) $(OBJS)\monodll_aboutdlgg.o: ../../src/generic/aboutdlgg.cpp $(CXX) -c -o $@ $(MONODLL_CXXFLAGS) $(CPPDEPS) $< endif @@ -8509,6 +8538,11 @@ $(OBJS)\monodll_propdlg.o: ../../src/generic/propdlg.cpp endif ifeq ($(USE_GUI),1) +$(OBJS)\monodll_generic_richtooltip.o: ../../src/generic/richtooltip.cpp + $(CXX) -c -o $@ $(MONODLL_CXXFLAGS) $(CPPDEPS) $< +endif + +ifeq ($(USE_GUI),1) $(OBJS)\monodll_sashwin.o: ../../src/generic/sashwin.cpp $(CXX) -c -o $@ $(MONODLL_CXXFLAGS) $(CPPDEPS) $< endif @@ -8554,6 +8588,11 @@ $(OBJS)\monodll_notifmsg.o: ../../src/msw/notifmsg.cpp endif ifeq ($(USE_GUI),1) +$(OBJS)\monodll_msw_richtooltip.o: ../../src/msw/richtooltip.cpp + $(CXX) -c -o $@ $(MONODLL_CXXFLAGS) $(CPPDEPS) $< +endif + +ifeq ($(USE_GUI),1) $(OBJS)\monodll_sound.o: ../../src/msw/sound.cpp $(CXX) -c -o $@ $(MONODLL_CXXFLAGS) $(CPPDEPS) $< endif @@ -10806,6 +10845,11 @@ $(OBJS)\monolib_odcombocmn.o: ../../src/common/odcombocmn.cpp endif ifeq ($(USE_GUI),1) +$(OBJS)\monolib_richtooltipcmn.o: ../../src/common/richtooltipcmn.cpp + $(CXX) -c -o $@ $(MONOLIB_CXXFLAGS) $(CPPDEPS) $< +endif + +ifeq ($(USE_GUI),1) $(OBJS)\monolib_aboutdlgg.o: ../../src/generic/aboutdlgg.cpp $(CXX) -c -o $@ $(MONOLIB_CXXFLAGS) $(CPPDEPS) $< endif @@ -10896,6 +10940,11 @@ $(OBJS)\monolib_propdlg.o: ../../src/generic/propdlg.cpp endif ifeq ($(USE_GUI),1) +$(OBJS)\monolib_generic_richtooltip.o: ../../src/generic/richtooltip.cpp + $(CXX) -c -o $@ $(MONOLIB_CXXFLAGS) $(CPPDEPS) $< +endif + +ifeq ($(USE_GUI),1) $(OBJS)\monolib_sashwin.o: ../../src/generic/sashwin.cpp $(CXX) -c -o $@ $(MONOLIB_CXXFLAGS) $(CPPDEPS) $< endif @@ -10941,6 +10990,11 @@ $(OBJS)\monolib_notifmsg.o: ../../src/msw/notifmsg.cpp endif ifeq ($(USE_GUI),1) +$(OBJS)\monolib_msw_richtooltip.o: ../../src/msw/richtooltip.cpp + $(CXX) -c -o $@ $(MONOLIB_CXXFLAGS) $(CPPDEPS) $< +endif + +ifeq ($(USE_GUI),1) $(OBJS)\monolib_sound.o: ../../src/msw/sound.cpp $(CXX) -c -o $@ $(MONOLIB_CXXFLAGS) $(CPPDEPS) $< endif @@ -14586,6 +14640,9 @@ $(OBJS)\advdll_hyperlnkcmn.o: ../../src/common/hyperlnkcmn.cpp $(OBJS)\advdll_odcombocmn.o: ../../src/common/odcombocmn.cpp $(CXX) -c -o $@ $(ADVDLL_CXXFLAGS) $(CPPDEPS) $< +$(OBJS)\advdll_richtooltipcmn.o: ../../src/common/richtooltipcmn.cpp + $(CXX) -c -o $@ $(ADVDLL_CXXFLAGS) $(CPPDEPS) $< + $(OBJS)\advdll_aboutdlgg.o: ../../src/generic/aboutdlgg.cpp $(CXX) -c -o $@ $(ADVDLL_CXXFLAGS) $(CPPDEPS) $< @@ -14640,6 +14697,9 @@ $(OBJS)\advdll_odcombo.o: ../../src/generic/odcombo.cpp $(OBJS)\advdll_propdlg.o: ../../src/generic/propdlg.cpp $(CXX) -c -o $@ $(ADVDLL_CXXFLAGS) $(CPPDEPS) $< +$(OBJS)\advdll_generic_richtooltip.o: ../../src/generic/richtooltip.cpp + $(CXX) -c -o $@ $(ADVDLL_CXXFLAGS) $(CPPDEPS) $< + $(OBJS)\advdll_sashwin.o: ../../src/generic/sashwin.cpp $(CXX) -c -o $@ $(ADVDLL_CXXFLAGS) $(CPPDEPS) $< @@ -14667,6 +14727,9 @@ $(OBJS)\advdll_aboutdlg.o: ../../src/msw/aboutdlg.cpp $(OBJS)\advdll_notifmsg.o: ../../src/msw/notifmsg.cpp $(CXX) -c -o $@ $(ADVDLL_CXXFLAGS) $(CPPDEPS) $< +$(OBJS)\advdll_msw_richtooltip.o: ../../src/msw/richtooltip.cpp + $(CXX) -c -o $@ $(ADVDLL_CXXFLAGS) $(CPPDEPS) $< + $(OBJS)\advdll_sound.o: ../../src/msw/sound.cpp $(CXX) -c -o $@ $(ADVDLL_CXXFLAGS) $(CPPDEPS) $< @@ -14727,6 +14790,9 @@ $(OBJS)\advlib_hyperlnkcmn.o: ../../src/common/hyperlnkcmn.cpp $(OBJS)\advlib_odcombocmn.o: ../../src/common/odcombocmn.cpp $(CXX) -c -o $@ $(ADVLIB_CXXFLAGS) $(CPPDEPS) $< +$(OBJS)\advlib_richtooltipcmn.o: ../../src/common/richtooltipcmn.cpp + $(CXX) -c -o $@ $(ADVLIB_CXXFLAGS) $(CPPDEPS) $< + $(OBJS)\advlib_aboutdlgg.o: ../../src/generic/aboutdlgg.cpp $(CXX) -c -o $@ $(ADVLIB_CXXFLAGS) $(CPPDEPS) $< @@ -14781,6 +14847,9 @@ $(OBJS)\advlib_odcombo.o: ../../src/generic/odcombo.cpp $(OBJS)\advlib_propdlg.o: ../../src/generic/propdlg.cpp $(CXX) -c -o $@ $(ADVLIB_CXXFLAGS) $(CPPDEPS) $< +$(OBJS)\advlib_generic_richtooltip.o: ../../src/generic/richtooltip.cpp + $(CXX) -c -o $@ $(ADVLIB_CXXFLAGS) $(CPPDEPS) $< + $(OBJS)\advlib_sashwin.o: ../../src/generic/sashwin.cpp $(CXX) -c -o $@ $(ADVLIB_CXXFLAGS) $(CPPDEPS) $< @@ -14808,6 +14877,9 @@ $(OBJS)\advlib_aboutdlg.o: ../../src/msw/aboutdlg.cpp $(OBJS)\advlib_notifmsg.o: ../../src/msw/notifmsg.cpp $(CXX) -c -o $@ $(ADVLIB_CXXFLAGS) $(CPPDEPS) $< +$(OBJS)\advlib_msw_richtooltip.o: ../../src/msw/richtooltip.cpp + $(CXX) -c -o $@ $(ADVLIB_CXXFLAGS) $(CPPDEPS) $< + $(OBJS)\advlib_sound.o: ../../src/msw/sound.cpp $(CXX) -c -o $@ $(ADVLIB_CXXFLAGS) $(CPPDEPS) $< diff --git a/build/msw/makefile.vc b/build/msw/makefile.vc index 51871e75ab..42bae81a24 100644 --- a/build/msw/makefile.vc +++ b/build/msw/makefile.vc @@ -2477,6 +2477,7 @@ ____ADVANCED_SRC_FILENAMES_OBJECTS = \ $(OBJS)\monodll_gridcmn.obj \ $(OBJS)\monodll_hyperlnkcmn.obj \ $(OBJS)\monodll_odcombocmn.obj \ + $(OBJS)\monodll_richtooltipcmn.obj \ $(OBJS)\monodll_aboutdlgg.obj \ $(OBJS)\monodll_bannerwindow.obj \ $(OBJS)\monodll_bmpcboxg.obj \ @@ -2495,6 +2496,7 @@ ____ADVANCED_SRC_FILENAMES_OBJECTS = \ $(OBJS)\monodll_notifmsgg.obj \ $(OBJS)\monodll_odcombo.obj \ $(OBJS)\monodll_propdlg.obj \ + $(OBJS)\monodll_generic_richtooltip.obj \ $(OBJS)\monodll_sashwin.obj \ $(OBJS)\monodll_splash.obj \ $(OBJS)\monodll_generic_timectrl.obj \ @@ -2504,6 +2506,7 @@ ____ADVANCED_SRC_FILENAMES_OBJECTS = \ $(OBJS)\monodll_taskbarcmn.obj \ $(OBJS)\monodll_aboutdlg.obj \ $(OBJS)\monodll_notifmsg.obj \ + $(OBJS)\monodll_msw_richtooltip.obj \ $(OBJS)\monodll_sound.obj \ $(OBJS)\monodll_taskbar.obj \ $(OBJS)\monodll_joystick.obj \ @@ -2526,6 +2529,7 @@ ____ADVANCED_SRC_FILENAMES_OBJECTS = \ $(OBJS)\monodll_gridcmn.obj \ $(OBJS)\monodll_hyperlnkcmn.obj \ $(OBJS)\monodll_odcombocmn.obj \ + $(OBJS)\monodll_richtooltipcmn.obj \ $(OBJS)\monodll_aboutdlgg.obj \ $(OBJS)\monodll_bannerwindow.obj \ $(OBJS)\monodll_bmpcboxg.obj \ @@ -2544,6 +2548,7 @@ ____ADVANCED_SRC_FILENAMES_OBJECTS = \ $(OBJS)\monodll_notifmsgg.obj \ $(OBJS)\monodll_odcombo.obj \ $(OBJS)\monodll_propdlg.obj \ + $(OBJS)\monodll_generic_richtooltip.obj \ $(OBJS)\monodll_sashwin.obj \ $(OBJS)\monodll_splash.obj \ $(OBJS)\monodll_generic_timectrl.obj \ @@ -2553,6 +2558,7 @@ ____ADVANCED_SRC_FILENAMES_OBJECTS = \ $(OBJS)\monodll_taskbarcmn.obj \ $(OBJS)\monodll_aboutdlg.obj \ $(OBJS)\monodll_notifmsg.obj \ + $(OBJS)\monodll_msw_richtooltip.obj \ $(OBJS)\monodll_sound.obj \ $(OBJS)\monodll_taskbar.obj \ $(OBJS)\monodll_joystick.obj \ @@ -3260,6 +3266,7 @@ ____ADVANCED_SRC_FILENAMES_1_OBJECTS = \ $(OBJS)\monolib_gridcmn.obj \ $(OBJS)\monolib_hyperlnkcmn.obj \ $(OBJS)\monolib_odcombocmn.obj \ + $(OBJS)\monolib_richtooltipcmn.obj \ $(OBJS)\monolib_aboutdlgg.obj \ $(OBJS)\monolib_bannerwindow.obj \ $(OBJS)\monolib_bmpcboxg.obj \ @@ -3278,6 +3285,7 @@ ____ADVANCED_SRC_FILENAMES_1_OBJECTS = \ $(OBJS)\monolib_notifmsgg.obj \ $(OBJS)\monolib_odcombo.obj \ $(OBJS)\monolib_propdlg.obj \ + $(OBJS)\monolib_generic_richtooltip.obj \ $(OBJS)\monolib_sashwin.obj \ $(OBJS)\monolib_splash.obj \ $(OBJS)\monolib_generic_timectrl.obj \ @@ -3287,6 +3295,7 @@ ____ADVANCED_SRC_FILENAMES_1_OBJECTS = \ $(OBJS)\monolib_taskbarcmn.obj \ $(OBJS)\monolib_aboutdlg.obj \ $(OBJS)\monolib_notifmsg.obj \ + $(OBJS)\monolib_msw_richtooltip.obj \ $(OBJS)\monolib_sound.obj \ $(OBJS)\monolib_taskbar.obj \ $(OBJS)\monolib_joystick.obj \ @@ -3309,6 +3318,7 @@ ____ADVANCED_SRC_FILENAMES_1_OBJECTS = \ $(OBJS)\monolib_gridcmn.obj \ $(OBJS)\monolib_hyperlnkcmn.obj \ $(OBJS)\monolib_odcombocmn.obj \ + $(OBJS)\monolib_richtooltipcmn.obj \ $(OBJS)\monolib_aboutdlgg.obj \ $(OBJS)\monolib_bannerwindow.obj \ $(OBJS)\monolib_bmpcboxg.obj \ @@ -3327,6 +3337,7 @@ ____ADVANCED_SRC_FILENAMES_1_OBJECTS = \ $(OBJS)\monolib_notifmsgg.obj \ $(OBJS)\monolib_odcombo.obj \ $(OBJS)\monolib_propdlg.obj \ + $(OBJS)\monolib_generic_richtooltip.obj \ $(OBJS)\monolib_sashwin.obj \ $(OBJS)\monolib_splash.obj \ $(OBJS)\monolib_generic_timectrl.obj \ @@ -3336,6 +3347,7 @@ ____ADVANCED_SRC_FILENAMES_1_OBJECTS = \ $(OBJS)\monolib_taskbarcmn.obj \ $(OBJS)\monolib_aboutdlg.obj \ $(OBJS)\monolib_notifmsg.obj \ + $(OBJS)\monolib_msw_richtooltip.obj \ $(OBJS)\monolib_sound.obj \ $(OBJS)\monolib_taskbar.obj \ $(OBJS)\monolib_joystick.obj \ @@ -4562,6 +4574,7 @@ ____ADVANCED_SRC_FILENAMES_2_OBJECTS = \ $(OBJS)\advdll_gridcmn.obj \ $(OBJS)\advdll_hyperlnkcmn.obj \ $(OBJS)\advdll_odcombocmn.obj \ + $(OBJS)\advdll_richtooltipcmn.obj \ $(OBJS)\advdll_aboutdlgg.obj \ $(OBJS)\advdll_bannerwindow.obj \ $(OBJS)\advdll_bmpcboxg.obj \ @@ -4580,6 +4593,7 @@ ____ADVANCED_SRC_FILENAMES_2_OBJECTS = \ $(OBJS)\advdll_notifmsgg.obj \ $(OBJS)\advdll_odcombo.obj \ $(OBJS)\advdll_propdlg.obj \ + $(OBJS)\advdll_generic_richtooltip.obj \ $(OBJS)\advdll_sashwin.obj \ $(OBJS)\advdll_splash.obj \ $(OBJS)\advdll_generic_timectrl.obj \ @@ -4589,6 +4603,7 @@ ____ADVANCED_SRC_FILENAMES_2_OBJECTS = \ $(OBJS)\advdll_taskbarcmn.obj \ $(OBJS)\advdll_aboutdlg.obj \ $(OBJS)\advdll_notifmsg.obj \ + $(OBJS)\advdll_msw_richtooltip.obj \ $(OBJS)\advdll_sound.obj \ $(OBJS)\advdll_taskbar.obj \ $(OBJS)\advdll_joystick.obj \ @@ -4611,6 +4626,7 @@ ____ADVANCED_SRC_FILENAMES_2_OBJECTS = \ $(OBJS)\advdll_gridcmn.obj \ $(OBJS)\advdll_hyperlnkcmn.obj \ $(OBJS)\advdll_odcombocmn.obj \ + $(OBJS)\advdll_richtooltipcmn.obj \ $(OBJS)\advdll_aboutdlgg.obj \ $(OBJS)\advdll_bannerwindow.obj \ $(OBJS)\advdll_bmpcboxg.obj \ @@ -4629,6 +4645,7 @@ ____ADVANCED_SRC_FILENAMES_2_OBJECTS = \ $(OBJS)\advdll_notifmsgg.obj \ $(OBJS)\advdll_odcombo.obj \ $(OBJS)\advdll_propdlg.obj \ + $(OBJS)\advdll_generic_richtooltip.obj \ $(OBJS)\advdll_sashwin.obj \ $(OBJS)\advdll_splash.obj \ $(OBJS)\advdll_generic_timectrl.obj \ @@ -4638,6 +4655,7 @@ ____ADVANCED_SRC_FILENAMES_2_OBJECTS = \ $(OBJS)\advdll_taskbarcmn.obj \ $(OBJS)\advdll_aboutdlg.obj \ $(OBJS)\advdll_notifmsg.obj \ + $(OBJS)\advdll_msw_richtooltip.obj \ $(OBJS)\advdll_sound.obj \ $(OBJS)\advdll_taskbar.obj \ $(OBJS)\advdll_joystick.obj \ @@ -4662,6 +4680,7 @@ ____ADVANCED_SRC_FILENAMES_3_OBJECTS = \ $(OBJS)\advlib_gridcmn.obj \ $(OBJS)\advlib_hyperlnkcmn.obj \ $(OBJS)\advlib_odcombocmn.obj \ + $(OBJS)\advlib_richtooltipcmn.obj \ $(OBJS)\advlib_aboutdlgg.obj \ $(OBJS)\advlib_bannerwindow.obj \ $(OBJS)\advlib_bmpcboxg.obj \ @@ -4680,6 +4699,7 @@ ____ADVANCED_SRC_FILENAMES_3_OBJECTS = \ $(OBJS)\advlib_notifmsgg.obj \ $(OBJS)\advlib_odcombo.obj \ $(OBJS)\advlib_propdlg.obj \ + $(OBJS)\advlib_generic_richtooltip.obj \ $(OBJS)\advlib_sashwin.obj \ $(OBJS)\advlib_splash.obj \ $(OBJS)\advlib_generic_timectrl.obj \ @@ -4689,6 +4709,7 @@ ____ADVANCED_SRC_FILENAMES_3_OBJECTS = \ $(OBJS)\advlib_taskbarcmn.obj \ $(OBJS)\advlib_aboutdlg.obj \ $(OBJS)\advlib_notifmsg.obj \ + $(OBJS)\advlib_msw_richtooltip.obj \ $(OBJS)\advlib_sound.obj \ $(OBJS)\advlib_taskbar.obj \ $(OBJS)\advlib_joystick.obj \ @@ -4711,6 +4732,7 @@ ____ADVANCED_SRC_FILENAMES_3_OBJECTS = \ $(OBJS)\advlib_gridcmn.obj \ $(OBJS)\advlib_hyperlnkcmn.obj \ $(OBJS)\advlib_odcombocmn.obj \ + $(OBJS)\advlib_richtooltipcmn.obj \ $(OBJS)\advlib_aboutdlgg.obj \ $(OBJS)\advlib_bannerwindow.obj \ $(OBJS)\advlib_bmpcboxg.obj \ @@ -4729,6 +4751,7 @@ ____ADVANCED_SRC_FILENAMES_3_OBJECTS = \ $(OBJS)\advlib_notifmsgg.obj \ $(OBJS)\advlib_odcombo.obj \ $(OBJS)\advlib_propdlg.obj \ + $(OBJS)\advlib_generic_richtooltip.obj \ $(OBJS)\advlib_sashwin.obj \ $(OBJS)\advlib_splash.obj \ $(OBJS)\advlib_generic_timectrl.obj \ @@ -4738,6 +4761,7 @@ ____ADVANCED_SRC_FILENAMES_3_OBJECTS = \ $(OBJS)\advlib_taskbarcmn.obj \ $(OBJS)\advlib_aboutdlg.obj \ $(OBJS)\advlib_notifmsg.obj \ + $(OBJS)\advlib_msw_richtooltip.obj \ $(OBJS)\advlib_sound.obj \ $(OBJS)\advlib_taskbar.obj \ $(OBJS)\advlib_joystick.obj \ @@ -8857,6 +8881,11 @@ $(OBJS)\monodll_odcombocmn.obj: ..\..\src\common\odcombocmn.cpp !endif !if "$(USE_GUI)" == "1" +$(OBJS)\monodll_richtooltipcmn.obj: ..\..\src\common\richtooltipcmn.cpp + $(CXX) /c /nologo /TP /Fo$@ $(MONODLL_CXXFLAGS) ..\..\src\common\richtooltipcmn.cpp +!endif + +!if "$(USE_GUI)" == "1" $(OBJS)\monodll_aboutdlgg.obj: ..\..\src\generic\aboutdlgg.cpp $(CXX) /c /nologo /TP /Fo$@ $(MONODLL_CXXFLAGS) ..\..\src\generic\aboutdlgg.cpp !endif @@ -8947,6 +8976,11 @@ $(OBJS)\monodll_propdlg.obj: ..\..\src\generic\propdlg.cpp !endif !if "$(USE_GUI)" == "1" +$(OBJS)\monodll_generic_richtooltip.obj: ..\..\src\generic\richtooltip.cpp + $(CXX) /c /nologo /TP /Fo$@ $(MONODLL_CXXFLAGS) ..\..\src\generic\richtooltip.cpp +!endif + +!if "$(USE_GUI)" == "1" $(OBJS)\monodll_sashwin.obj: ..\..\src\generic\sashwin.cpp $(CXX) /c /nologo /TP /Fo$@ $(MONODLL_CXXFLAGS) ..\..\src\generic\sashwin.cpp !endif @@ -8992,6 +9026,11 @@ $(OBJS)\monodll_notifmsg.obj: ..\..\src\msw\notifmsg.cpp !endif !if "$(USE_GUI)" == "1" +$(OBJS)\monodll_msw_richtooltip.obj: ..\..\src\msw\richtooltip.cpp + $(CXX) /c /nologo /TP /Fo$@ $(MONODLL_CXXFLAGS) ..\..\src\msw\richtooltip.cpp +!endif + +!if "$(USE_GUI)" == "1" $(OBJS)\monodll_sound.obj: ..\..\src\msw\sound.cpp $(CXX) /c /nologo /TP /Fo$@ $(MONODLL_CXXFLAGS) ..\..\src\msw\sound.cpp !endif @@ -11244,6 +11283,11 @@ $(OBJS)\monolib_odcombocmn.obj: ..\..\src\common\odcombocmn.cpp !endif !if "$(USE_GUI)" == "1" +$(OBJS)\monolib_richtooltipcmn.obj: ..\..\src\common\richtooltipcmn.cpp + $(CXX) /c /nologo /TP /Fo$@ $(MONOLIB_CXXFLAGS) ..\..\src\common\richtooltipcmn.cpp +!endif + +!if "$(USE_GUI)" == "1" $(OBJS)\monolib_aboutdlgg.obj: ..\..\src\generic\aboutdlgg.cpp $(CXX) /c /nologo /TP /Fo$@ $(MONOLIB_CXXFLAGS) ..\..\src\generic\aboutdlgg.cpp !endif @@ -11334,6 +11378,11 @@ $(OBJS)\monolib_propdlg.obj: ..\..\src\generic\propdlg.cpp !endif !if "$(USE_GUI)" == "1" +$(OBJS)\monolib_generic_richtooltip.obj: ..\..\src\generic\richtooltip.cpp + $(CXX) /c /nologo /TP /Fo$@ $(MONOLIB_CXXFLAGS) ..\..\src\generic\richtooltip.cpp +!endif + +!if "$(USE_GUI)" == "1" $(OBJS)\monolib_sashwin.obj: ..\..\src\generic\sashwin.cpp $(CXX) /c /nologo /TP /Fo$@ $(MONOLIB_CXXFLAGS) ..\..\src\generic\sashwin.cpp !endif @@ -11379,6 +11428,11 @@ $(OBJS)\monolib_notifmsg.obj: ..\..\src\msw\notifmsg.cpp !endif !if "$(USE_GUI)" == "1" +$(OBJS)\monolib_msw_richtooltip.obj: ..\..\src\msw\richtooltip.cpp + $(CXX) /c /nologo /TP /Fo$@ $(MONOLIB_CXXFLAGS) ..\..\src\msw\richtooltip.cpp +!endif + +!if "$(USE_GUI)" == "1" $(OBJS)\monolib_sound.obj: ..\..\src\msw\sound.cpp $(CXX) /c /nologo /TP /Fo$@ $(MONOLIB_CXXFLAGS) ..\..\src\msw\sound.cpp !endif @@ -15024,6 +15078,9 @@ $(OBJS)\advdll_hyperlnkcmn.obj: ..\..\src\common\hyperlnkcmn.cpp $(OBJS)\advdll_odcombocmn.obj: ..\..\src\common\odcombocmn.cpp $(CXX) /c /nologo /TP /Fo$@ $(ADVDLL_CXXFLAGS) ..\..\src\common\odcombocmn.cpp +$(OBJS)\advdll_richtooltipcmn.obj: ..\..\src\common\richtooltipcmn.cpp + $(CXX) /c /nologo /TP /Fo$@ $(ADVDLL_CXXFLAGS) ..\..\src\common\richtooltipcmn.cpp + $(OBJS)\advdll_aboutdlgg.obj: ..\..\src\generic\aboutdlgg.cpp $(CXX) /c /nologo /TP /Fo$@ $(ADVDLL_CXXFLAGS) ..\..\src\generic\aboutdlgg.cpp @@ -15078,6 +15135,9 @@ $(OBJS)\advdll_odcombo.obj: ..\..\src\generic\odcombo.cpp $(OBJS)\advdll_propdlg.obj: ..\..\src\generic\propdlg.cpp $(CXX) /c /nologo /TP /Fo$@ $(ADVDLL_CXXFLAGS) ..\..\src\generic\propdlg.cpp +$(OBJS)\advdll_generic_richtooltip.obj: ..\..\src\generic\richtooltip.cpp + $(CXX) /c /nologo /TP /Fo$@ $(ADVDLL_CXXFLAGS) ..\..\src\generic\richtooltip.cpp + $(OBJS)\advdll_sashwin.obj: ..\..\src\generic\sashwin.cpp $(CXX) /c /nologo /TP /Fo$@ $(ADVDLL_CXXFLAGS) ..\..\src\generic\sashwin.cpp @@ -15105,6 +15165,9 @@ $(OBJS)\advdll_aboutdlg.obj: ..\..\src\msw\aboutdlg.cpp $(OBJS)\advdll_notifmsg.obj: ..\..\src\msw\notifmsg.cpp $(CXX) /c /nologo /TP /Fo$@ $(ADVDLL_CXXFLAGS) ..\..\src\msw\notifmsg.cpp +$(OBJS)\advdll_msw_richtooltip.obj: ..\..\src\msw\richtooltip.cpp + $(CXX) /c /nologo /TP /Fo$@ $(ADVDLL_CXXFLAGS) ..\..\src\msw\richtooltip.cpp + $(OBJS)\advdll_sound.obj: ..\..\src\msw\sound.cpp $(CXX) /c /nologo /TP /Fo$@ $(ADVDLL_CXXFLAGS) ..\..\src\msw\sound.cpp @@ -15165,6 +15228,9 @@ $(OBJS)\advlib_hyperlnkcmn.obj: ..\..\src\common\hyperlnkcmn.cpp $(OBJS)\advlib_odcombocmn.obj: ..\..\src\common\odcombocmn.cpp $(CXX) /c /nologo /TP /Fo$@ $(ADVLIB_CXXFLAGS) ..\..\src\common\odcombocmn.cpp +$(OBJS)\advlib_richtooltipcmn.obj: ..\..\src\common\richtooltipcmn.cpp + $(CXX) /c /nologo /TP /Fo$@ $(ADVLIB_CXXFLAGS) ..\..\src\common\richtooltipcmn.cpp + $(OBJS)\advlib_aboutdlgg.obj: ..\..\src\generic\aboutdlgg.cpp $(CXX) /c /nologo /TP /Fo$@ $(ADVLIB_CXXFLAGS) ..\..\src\generic\aboutdlgg.cpp @@ -15219,6 +15285,9 @@ $(OBJS)\advlib_odcombo.obj: ..\..\src\generic\odcombo.cpp $(OBJS)\advlib_propdlg.obj: ..\..\src\generic\propdlg.cpp $(CXX) /c /nologo /TP /Fo$@ $(ADVLIB_CXXFLAGS) ..\..\src\generic\propdlg.cpp +$(OBJS)\advlib_generic_richtooltip.obj: ..\..\src\generic\richtooltip.cpp + $(CXX) /c /nologo /TP /Fo$@ $(ADVLIB_CXXFLAGS) ..\..\src\generic\richtooltip.cpp + $(OBJS)\advlib_sashwin.obj: ..\..\src\generic\sashwin.cpp $(CXX) /c /nologo /TP /Fo$@ $(ADVLIB_CXXFLAGS) ..\..\src\generic\sashwin.cpp @@ -15246,6 +15315,9 @@ $(OBJS)\advlib_aboutdlg.obj: ..\..\src\msw\aboutdlg.cpp $(OBJS)\advlib_notifmsg.obj: ..\..\src\msw\notifmsg.cpp $(CXX) /c /nologo /TP /Fo$@ $(ADVLIB_CXXFLAGS) ..\..\src\msw\notifmsg.cpp +$(OBJS)\advlib_msw_richtooltip.obj: ..\..\src\msw\richtooltip.cpp + $(CXX) /c /nologo /TP /Fo$@ $(ADVLIB_CXXFLAGS) ..\..\src\msw\richtooltip.cpp + $(OBJS)\advlib_sound.obj: ..\..\src\msw\sound.cpp $(CXX) /c /nologo /TP /Fo$@ $(ADVLIB_CXXFLAGS) ..\..\src\msw\sound.cpp diff --git a/build/msw/makefile.wat b/build/msw/makefile.wat index f85b42f068..60ca3f5095 100644 --- a/build/msw/makefile.wat +++ b/build/msw/makefile.wat @@ -796,6 +796,7 @@ ____ADVANCED_SRC_FILENAMES_OBJECTS = & $(OBJS)\monodll_gridcmn.obj & $(OBJS)\monodll_hyperlnkcmn.obj & $(OBJS)\monodll_odcombocmn.obj & + $(OBJS)\monodll_richtooltipcmn.obj & $(OBJS)\monodll_aboutdlgg.obj & $(OBJS)\monodll_bannerwindow.obj & $(OBJS)\monodll_bmpcboxg.obj & @@ -814,6 +815,7 @@ ____ADVANCED_SRC_FILENAMES_OBJECTS = & $(OBJS)\monodll_notifmsgg.obj & $(OBJS)\monodll_odcombo.obj & $(OBJS)\monodll_propdlg.obj & + $(OBJS)\monodll_generic_richtooltip.obj & $(OBJS)\monodll_sashwin.obj & $(OBJS)\monodll_splash.obj & $(OBJS)\monodll_generic_timectrl.obj & @@ -823,6 +825,7 @@ ____ADVANCED_SRC_FILENAMES_OBJECTS = & $(OBJS)\monodll_taskbarcmn.obj & $(OBJS)\monodll_aboutdlg.obj & $(OBJS)\monodll_notifmsg.obj & + $(OBJS)\monodll_msw_richtooltip.obj & $(OBJS)\monodll_sound.obj & $(OBJS)\monodll_taskbar.obj & $(OBJS)\monodll_joystick.obj & @@ -845,6 +848,7 @@ ____ADVANCED_SRC_FILENAMES_OBJECTS = & $(OBJS)\monodll_gridcmn.obj & $(OBJS)\monodll_hyperlnkcmn.obj & $(OBJS)\monodll_odcombocmn.obj & + $(OBJS)\monodll_richtooltipcmn.obj & $(OBJS)\monodll_aboutdlgg.obj & $(OBJS)\monodll_bannerwindow.obj & $(OBJS)\monodll_bmpcboxg.obj & @@ -863,6 +867,7 @@ ____ADVANCED_SRC_FILENAMES_OBJECTS = & $(OBJS)\monodll_notifmsgg.obj & $(OBJS)\monodll_odcombo.obj & $(OBJS)\monodll_propdlg.obj & + $(OBJS)\monodll_generic_richtooltip.obj & $(OBJS)\monodll_sashwin.obj & $(OBJS)\monodll_splash.obj & $(OBJS)\monodll_generic_timectrl.obj & @@ -872,6 +877,7 @@ ____ADVANCED_SRC_FILENAMES_OBJECTS = & $(OBJS)\monodll_taskbarcmn.obj & $(OBJS)\monodll_aboutdlg.obj & $(OBJS)\monodll_notifmsg.obj & + $(OBJS)\monodll_msw_richtooltip.obj & $(OBJS)\monodll_sound.obj & $(OBJS)\monodll_taskbar.obj & $(OBJS)\monodll_joystick.obj & @@ -1584,6 +1590,7 @@ ____ADVANCED_SRC_FILENAMES_1_OBJECTS = & $(OBJS)\monolib_gridcmn.obj & $(OBJS)\monolib_hyperlnkcmn.obj & $(OBJS)\monolib_odcombocmn.obj & + $(OBJS)\monolib_richtooltipcmn.obj & $(OBJS)\monolib_aboutdlgg.obj & $(OBJS)\monolib_bannerwindow.obj & $(OBJS)\monolib_bmpcboxg.obj & @@ -1602,6 +1609,7 @@ ____ADVANCED_SRC_FILENAMES_1_OBJECTS = & $(OBJS)\monolib_notifmsgg.obj & $(OBJS)\monolib_odcombo.obj & $(OBJS)\monolib_propdlg.obj & + $(OBJS)\monolib_generic_richtooltip.obj & $(OBJS)\monolib_sashwin.obj & $(OBJS)\monolib_splash.obj & $(OBJS)\monolib_generic_timectrl.obj & @@ -1611,6 +1619,7 @@ ____ADVANCED_SRC_FILENAMES_1_OBJECTS = & $(OBJS)\monolib_taskbarcmn.obj & $(OBJS)\monolib_aboutdlg.obj & $(OBJS)\monolib_notifmsg.obj & + $(OBJS)\monolib_msw_richtooltip.obj & $(OBJS)\monolib_sound.obj & $(OBJS)\monolib_taskbar.obj & $(OBJS)\monolib_joystick.obj & @@ -1633,6 +1642,7 @@ ____ADVANCED_SRC_FILENAMES_1_OBJECTS = & $(OBJS)\monolib_gridcmn.obj & $(OBJS)\monolib_hyperlnkcmn.obj & $(OBJS)\monolib_odcombocmn.obj & + $(OBJS)\monolib_richtooltipcmn.obj & $(OBJS)\monolib_aboutdlgg.obj & $(OBJS)\monolib_bannerwindow.obj & $(OBJS)\monolib_bmpcboxg.obj & @@ -1651,6 +1661,7 @@ ____ADVANCED_SRC_FILENAMES_1_OBJECTS = & $(OBJS)\monolib_notifmsgg.obj & $(OBJS)\monolib_odcombo.obj & $(OBJS)\monolib_propdlg.obj & + $(OBJS)\monolib_generic_richtooltip.obj & $(OBJS)\monolib_sashwin.obj & $(OBJS)\monolib_splash.obj & $(OBJS)\monolib_generic_timectrl.obj & @@ -1660,6 +1671,7 @@ ____ADVANCED_SRC_FILENAMES_1_OBJECTS = & $(OBJS)\monolib_taskbarcmn.obj & $(OBJS)\monolib_aboutdlg.obj & $(OBJS)\monolib_notifmsg.obj & + $(OBJS)\monolib_msw_richtooltip.obj & $(OBJS)\monolib_sound.obj & $(OBJS)\monolib_taskbar.obj & $(OBJS)\monolib_joystick.obj & @@ -2840,6 +2852,7 @@ ____ADVANCED_SRC_FILENAMES_2_OBJECTS = & $(OBJS)\advdll_gridcmn.obj & $(OBJS)\advdll_hyperlnkcmn.obj & $(OBJS)\advdll_odcombocmn.obj & + $(OBJS)\advdll_richtooltipcmn.obj & $(OBJS)\advdll_aboutdlgg.obj & $(OBJS)\advdll_bannerwindow.obj & $(OBJS)\advdll_bmpcboxg.obj & @@ -2858,6 +2871,7 @@ ____ADVANCED_SRC_FILENAMES_2_OBJECTS = & $(OBJS)\advdll_notifmsgg.obj & $(OBJS)\advdll_odcombo.obj & $(OBJS)\advdll_propdlg.obj & + $(OBJS)\advdll_generic_richtooltip.obj & $(OBJS)\advdll_sashwin.obj & $(OBJS)\advdll_splash.obj & $(OBJS)\advdll_generic_timectrl.obj & @@ -2867,6 +2881,7 @@ ____ADVANCED_SRC_FILENAMES_2_OBJECTS = & $(OBJS)\advdll_taskbarcmn.obj & $(OBJS)\advdll_aboutdlg.obj & $(OBJS)\advdll_notifmsg.obj & + $(OBJS)\advdll_msw_richtooltip.obj & $(OBJS)\advdll_sound.obj & $(OBJS)\advdll_taskbar.obj & $(OBJS)\advdll_joystick.obj & @@ -2889,6 +2904,7 @@ ____ADVANCED_SRC_FILENAMES_2_OBJECTS = & $(OBJS)\advdll_gridcmn.obj & $(OBJS)\advdll_hyperlnkcmn.obj & $(OBJS)\advdll_odcombocmn.obj & + $(OBJS)\advdll_richtooltipcmn.obj & $(OBJS)\advdll_aboutdlgg.obj & $(OBJS)\advdll_bannerwindow.obj & $(OBJS)\advdll_bmpcboxg.obj & @@ -2907,6 +2923,7 @@ ____ADVANCED_SRC_FILENAMES_2_OBJECTS = & $(OBJS)\advdll_notifmsgg.obj & $(OBJS)\advdll_odcombo.obj & $(OBJS)\advdll_propdlg.obj & + $(OBJS)\advdll_generic_richtooltip.obj & $(OBJS)\advdll_sashwin.obj & $(OBJS)\advdll_splash.obj & $(OBJS)\advdll_generic_timectrl.obj & @@ -2916,6 +2933,7 @@ ____ADVANCED_SRC_FILENAMES_2_OBJECTS = & $(OBJS)\advdll_taskbarcmn.obj & $(OBJS)\advdll_aboutdlg.obj & $(OBJS)\advdll_notifmsg.obj & + $(OBJS)\advdll_msw_richtooltip.obj & $(OBJS)\advdll_sound.obj & $(OBJS)\advdll_taskbar.obj & $(OBJS)\advdll_joystick.obj & @@ -2940,6 +2958,7 @@ ____ADVANCED_SRC_FILENAMES_3_OBJECTS = & $(OBJS)\advlib_gridcmn.obj & $(OBJS)\advlib_hyperlnkcmn.obj & $(OBJS)\advlib_odcombocmn.obj & + $(OBJS)\advlib_richtooltipcmn.obj & $(OBJS)\advlib_aboutdlgg.obj & $(OBJS)\advlib_bannerwindow.obj & $(OBJS)\advlib_bmpcboxg.obj & @@ -2958,6 +2977,7 @@ ____ADVANCED_SRC_FILENAMES_3_OBJECTS = & $(OBJS)\advlib_notifmsgg.obj & $(OBJS)\advlib_odcombo.obj & $(OBJS)\advlib_propdlg.obj & + $(OBJS)\advlib_generic_richtooltip.obj & $(OBJS)\advlib_sashwin.obj & $(OBJS)\advlib_splash.obj & $(OBJS)\advlib_generic_timectrl.obj & @@ -2967,6 +2987,7 @@ ____ADVANCED_SRC_FILENAMES_3_OBJECTS = & $(OBJS)\advlib_taskbarcmn.obj & $(OBJS)\advlib_aboutdlg.obj & $(OBJS)\advlib_notifmsg.obj & + $(OBJS)\advlib_msw_richtooltip.obj & $(OBJS)\advlib_sound.obj & $(OBJS)\advlib_taskbar.obj & $(OBJS)\advlib_joystick.obj & @@ -2989,6 +3010,7 @@ ____ADVANCED_SRC_FILENAMES_3_OBJECTS = & $(OBJS)\advlib_gridcmn.obj & $(OBJS)\advlib_hyperlnkcmn.obj & $(OBJS)\advlib_odcombocmn.obj & + $(OBJS)\advlib_richtooltipcmn.obj & $(OBJS)\advlib_aboutdlgg.obj & $(OBJS)\advlib_bannerwindow.obj & $(OBJS)\advlib_bmpcboxg.obj & @@ -3007,6 +3029,7 @@ ____ADVANCED_SRC_FILENAMES_3_OBJECTS = & $(OBJS)\advlib_notifmsgg.obj & $(OBJS)\advlib_odcombo.obj & $(OBJS)\advlib_propdlg.obj & + $(OBJS)\advlib_generic_richtooltip.obj & $(OBJS)\advlib_sashwin.obj & $(OBJS)\advlib_splash.obj & $(OBJS)\advlib_generic_timectrl.obj & @@ -3016,6 +3039,7 @@ ____ADVANCED_SRC_FILENAMES_3_OBJECTS = & $(OBJS)\advlib_taskbarcmn.obj & $(OBJS)\advlib_aboutdlg.obj & $(OBJS)\advlib_notifmsg.obj & + $(OBJS)\advlib_msw_richtooltip.obj & $(OBJS)\advlib_sound.obj & $(OBJS)\advlib_taskbar.obj & $(OBJS)\advlib_joystick.obj & @@ -8690,6 +8714,11 @@ $(OBJS)\monodll_odcombocmn.obj : .AUTODEPEND ..\..\src\common\odcombocmn.cpp !endif !ifeq USE_GUI 1 +$(OBJS)\monodll_richtooltipcmn.obj : .AUTODEPEND ..\..\src\common\richtooltipcmn.cpp + $(CXX) -bt=nt -zq -fo=$^@ $(MONODLL_CXXFLAGS) $< +!endif + +!ifeq USE_GUI 1 $(OBJS)\monodll_aboutdlgg.obj : .AUTODEPEND ..\..\src\generic\aboutdlgg.cpp $(CXX) -bt=nt -zq -fo=$^@ $(MONODLL_CXXFLAGS) $< !endif @@ -8780,6 +8809,11 @@ $(OBJS)\monodll_propdlg.obj : .AUTODEPEND ..\..\src\generic\propdlg.cpp !endif !ifeq USE_GUI 1 +$(OBJS)\monodll_generic_richtooltip.obj : .AUTODEPEND ..\..\src\generic\richtooltip.cpp + $(CXX) -bt=nt -zq -fo=$^@ $(MONODLL_CXXFLAGS) $< +!endif + +!ifeq USE_GUI 1 $(OBJS)\monodll_sashwin.obj : .AUTODEPEND ..\..\src\generic\sashwin.cpp $(CXX) -bt=nt -zq -fo=$^@ $(MONODLL_CXXFLAGS) $< !endif @@ -8825,6 +8859,11 @@ $(OBJS)\monodll_notifmsg.obj : .AUTODEPEND ..\..\src\msw\notifmsg.cpp !endif !ifeq USE_GUI 1 +$(OBJS)\monodll_msw_richtooltip.obj : .AUTODEPEND ..\..\src\msw\richtooltip.cpp + $(CXX) -bt=nt -zq -fo=$^@ $(MONODLL_CXXFLAGS) $< +!endif + +!ifeq USE_GUI 1 $(OBJS)\monodll_sound.obj : .AUTODEPEND ..\..\src\msw\sound.cpp $(CXX) -bt=nt -zq -fo=$^@ $(MONODLL_CXXFLAGS) $< !endif @@ -11077,6 +11116,11 @@ $(OBJS)\monolib_odcombocmn.obj : .AUTODEPEND ..\..\src\common\odcombocmn.cpp !endif !ifeq USE_GUI 1 +$(OBJS)\monolib_richtooltipcmn.obj : .AUTODEPEND ..\..\src\common\richtooltipcmn.cpp + $(CXX) -bt=nt -zq -fo=$^@ $(MONOLIB_CXXFLAGS) $< +!endif + +!ifeq USE_GUI 1 $(OBJS)\monolib_aboutdlgg.obj : .AUTODEPEND ..\..\src\generic\aboutdlgg.cpp $(CXX) -bt=nt -zq -fo=$^@ $(MONOLIB_CXXFLAGS) $< !endif @@ -11167,6 +11211,11 @@ $(OBJS)\monolib_propdlg.obj : .AUTODEPEND ..\..\src\generic\propdlg.cpp !endif !ifeq USE_GUI 1 +$(OBJS)\monolib_generic_richtooltip.obj : .AUTODEPEND ..\..\src\generic\richtooltip.cpp + $(CXX) -bt=nt -zq -fo=$^@ $(MONOLIB_CXXFLAGS) $< +!endif + +!ifeq USE_GUI 1 $(OBJS)\monolib_sashwin.obj : .AUTODEPEND ..\..\src\generic\sashwin.cpp $(CXX) -bt=nt -zq -fo=$^@ $(MONOLIB_CXXFLAGS) $< !endif @@ -11212,6 +11261,11 @@ $(OBJS)\monolib_notifmsg.obj : .AUTODEPEND ..\..\src\msw\notifmsg.cpp !endif !ifeq USE_GUI 1 +$(OBJS)\monolib_msw_richtooltip.obj : .AUTODEPEND ..\..\src\msw\richtooltip.cpp + $(CXX) -bt=nt -zq -fo=$^@ $(MONOLIB_CXXFLAGS) $< +!endif + +!ifeq USE_GUI 1 $(OBJS)\monolib_sound.obj : .AUTODEPEND ..\..\src\msw\sound.cpp $(CXX) -bt=nt -zq -fo=$^@ $(MONOLIB_CXXFLAGS) $< !endif @@ -14857,6 +14911,9 @@ $(OBJS)\advdll_hyperlnkcmn.obj : .AUTODEPEND ..\..\src\common\hyperlnkcmn.cpp $(OBJS)\advdll_odcombocmn.obj : .AUTODEPEND ..\..\src\common\odcombocmn.cpp $(CXX) -bt=nt -zq -fo=$^@ $(ADVDLL_CXXFLAGS) $< +$(OBJS)\advdll_richtooltipcmn.obj : .AUTODEPEND ..\..\src\common\richtooltipcmn.cpp + $(CXX) -bt=nt -zq -fo=$^@ $(ADVDLL_CXXFLAGS) $< + $(OBJS)\advdll_aboutdlgg.obj : .AUTODEPEND ..\..\src\generic\aboutdlgg.cpp $(CXX) -bt=nt -zq -fo=$^@ $(ADVDLL_CXXFLAGS) $< @@ -14911,6 +14968,9 @@ $(OBJS)\advdll_odcombo.obj : .AUTODEPEND ..\..\src\generic\odcombo.cpp $(OBJS)\advdll_propdlg.obj : .AUTODEPEND ..\..\src\generic\propdlg.cpp $(CXX) -bt=nt -zq -fo=$^@ $(ADVDLL_CXXFLAGS) $< +$(OBJS)\advdll_generic_richtooltip.obj : .AUTODEPEND ..\..\src\generic\richtooltip.cpp + $(CXX) -bt=nt -zq -fo=$^@ $(ADVDLL_CXXFLAGS) $< + $(OBJS)\advdll_sashwin.obj : .AUTODEPEND ..\..\src\generic\sashwin.cpp $(CXX) -bt=nt -zq -fo=$^@ $(ADVDLL_CXXFLAGS) $< @@ -14938,6 +14998,9 @@ $(OBJS)\advdll_aboutdlg.obj : .AUTODEPEND ..\..\src\msw\aboutdlg.cpp $(OBJS)\advdll_notifmsg.obj : .AUTODEPEND ..\..\src\msw\notifmsg.cpp $(CXX) -bt=nt -zq -fo=$^@ $(ADVDLL_CXXFLAGS) $< +$(OBJS)\advdll_msw_richtooltip.obj : .AUTODEPEND ..\..\src\msw\richtooltip.cpp + $(CXX) -bt=nt -zq -fo=$^@ $(ADVDLL_CXXFLAGS) $< + $(OBJS)\advdll_sound.obj : .AUTODEPEND ..\..\src\msw\sound.cpp $(CXX) -bt=nt -zq -fo=$^@ $(ADVDLL_CXXFLAGS) $< @@ -14998,6 +15061,9 @@ $(OBJS)\advlib_hyperlnkcmn.obj : .AUTODEPEND ..\..\src\common\hyperlnkcmn.cpp $(OBJS)\advlib_odcombocmn.obj : .AUTODEPEND ..\..\src\common\odcombocmn.cpp $(CXX) -bt=nt -zq -fo=$^@ $(ADVLIB_CXXFLAGS) $< +$(OBJS)\advlib_richtooltipcmn.obj : .AUTODEPEND ..\..\src\common\richtooltipcmn.cpp + $(CXX) -bt=nt -zq -fo=$^@ $(ADVLIB_CXXFLAGS) $< + $(OBJS)\advlib_aboutdlgg.obj : .AUTODEPEND ..\..\src\generic\aboutdlgg.cpp $(CXX) -bt=nt -zq -fo=$^@ $(ADVLIB_CXXFLAGS) $< @@ -15052,6 +15118,9 @@ $(OBJS)\advlib_odcombo.obj : .AUTODEPEND ..\..\src\generic\odcombo.cpp $(OBJS)\advlib_propdlg.obj : .AUTODEPEND ..\..\src\generic\propdlg.cpp $(CXX) -bt=nt -zq -fo=$^@ $(ADVLIB_CXXFLAGS) $< +$(OBJS)\advlib_generic_richtooltip.obj : .AUTODEPEND ..\..\src\generic\richtooltip.cpp + $(CXX) -bt=nt -zq -fo=$^@ $(ADVLIB_CXXFLAGS) $< + $(OBJS)\advlib_sashwin.obj : .AUTODEPEND ..\..\src\generic\sashwin.cpp $(CXX) -bt=nt -zq -fo=$^@ $(ADVLIB_CXXFLAGS) $< @@ -15079,6 +15148,9 @@ $(OBJS)\advlib_aboutdlg.obj : .AUTODEPEND ..\..\src\msw\aboutdlg.cpp $(OBJS)\advlib_notifmsg.obj : .AUTODEPEND ..\..\src\msw\notifmsg.cpp $(CXX) -bt=nt -zq -fo=$^@ $(ADVLIB_CXXFLAGS) $< +$(OBJS)\advlib_msw_richtooltip.obj : .AUTODEPEND ..\..\src\msw\richtooltip.cpp + $(CXX) -bt=nt -zq -fo=$^@ $(ADVLIB_CXXFLAGS) $< + $(OBJS)\advlib_sound.obj : .AUTODEPEND ..\..\src\msw\sound.cpp $(CXX) -bt=nt -zq -fo=$^@ $(ADVLIB_CXXFLAGS) $< diff --git a/build/msw/wx_adv.dsp b/build/msw/wx_adv.dsp index c207230558..b3827a86e0 100644 --- a/build/msw/wx_adv.dsp +++ b/build/msw/wx_adv.dsp @@ -278,6 +278,10 @@ SOURCE=..\..\src\common\odcombocmn.cpp # End Source File # Begin Source File +SOURCE=..\..\src\common\richtooltipcmn.cpp +# End Source File +# Begin Source File + SOURCE=..\..\src\common\taskbarcmn.cpp # End Source File # End Group @@ -543,6 +547,10 @@ SOURCE=..\..\src\msw\notifmsg.cpp # End Source File # Begin Source File +SOURCE=..\..\src\msw\richtooltip.cpp +# End Source File +# Begin Source File + SOURCE=..\..\src\msw\sound.cpp # End Source File # Begin Source File @@ -701,6 +709,10 @@ SOURCE=..\..\src\generic\propdlg.cpp # End Source File # Begin Source File +SOURCE=..\..\src\generic\richtooltip.cpp +# End Source File +# Begin Source File + SOURCE=..\..\src\generic\sashwin.cpp # End Source File # Begin Source File @@ -1174,6 +1186,10 @@ SOURCE=..\..\include\wx\propdlg.h # End Source File # Begin Source File +SOURCE=..\..\include\wx\richtooltip.h +# End Source File +# Begin Source File + SOURCE=..\..\include\wx\sashwin.h # End Source File # Begin Source File diff --git a/build/msw/wx_core.dsp b/build/msw/wx_core.dsp index e9ee7ffc94..2ef75436e3 100644 --- a/build/msw/wx_core.dsp +++ b/build/msw/wx_core.dsp @@ -6792,6 +6792,10 @@ SOURCE=..\..\include\wx\richtext\richtextxml.h # End Source File # Begin Source File +SOURCE=..\..\include\wx\richtooltip.h +# End Source File +# Begin Source File + SOURCE=..\..\include\wx\sashwin.h # End Source File # Begin Source File diff --git a/build/msw/wx_vc7_adv.vcproj b/build/msw/wx_vc7_adv.vcproj index 73f27ad070..ecfa5714ff 100644 --- a/build/msw/wx_vc7_adv.vcproj +++ b/build/msw/wx_vc7_adv.vcproj @@ -601,6 +601,9 @@ RelativePath="..\..\src\common\odcombocmn.cpp"> + + @@ -722,6 +725,57 @@ RelativePath="..\..\src\msw\notifmsg.cpp"> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -996,6 +1000,74 @@ > + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -1157,6 +1229,74 @@ > + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -1673,6 +1813,10 @@ > + + diff --git a/build/msw/wx_vc8_core.vcproj b/build/msw/wx_vc8_core.vcproj index 8dd8c705af..b62f508d59 100644 --- a/build/msw/wx_vc8_core.vcproj +++ b/build/msw/wx_vc8_core.vcproj @@ -7580,6 +7580,10 @@ > + + diff --git a/build/msw/wx_vc9_adv.vcproj b/build/msw/wx_vc9_adv.vcproj index 9d0358931d..c9b2307b77 100644 --- a/build/msw/wx_vc9_adv.vcproj +++ b/build/msw/wx_vc9_adv.vcproj @@ -831,6 +831,10 @@ > + + @@ -992,6 +996,74 @@ > + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -1153,6 +1225,74 @@ > + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -1669,6 +1809,10 @@ > + + diff --git a/build/msw/wx_vc9_core.vcproj b/build/msw/wx_vc9_core.vcproj index 4a088b8b7b..3b8f55ca53 100644 --- a/build/msw/wx_vc9_core.vcproj +++ b/build/msw/wx_vc9_core.vcproj @@ -7576,6 +7576,10 @@ > + + diff --git a/configure b/configure index 4a875dff04..46e9ce3397 100755 --- a/configure +++ b/configure @@ -1854,6 +1854,7 @@ Optional Features: --enable-radiobox use wxRadioBox class --enable-radiobtn use wxRadioButton class --enable-richmsgdlg use wxRichMessageDialog class + --enable-richtooltip use wxRichToolTip class --enable-rearrangectrl use wxRearrangeList/Ctrl/Dialog --enable-sash use wxSashWindow class --enable-scrollbar use wxScrollBar class and scrollable windows @@ -9900,6 +9901,7 @@ if test "$wxUSE_CONTROLS" = "no"; then DEFAULT_wxUSE_RADIOBOX=no DEFAULT_wxUSE_RADIOBTN=no DEFAULT_wxUSE_RICHMSGDLG=no + DEFAULT_wxUSE_RICHTOOLTIP=no DEFAULT_wxUSE_REARRANGECTRL=no DEFAULT_wxUSE_SASH=no DEFAULT_wxUSE_SCROLLBAR=no @@ -11906,6 +11908,50 @@ fi echo "${ECHO_T}$result" >&6; } + enablestring= + defaultval=$wxUSE_ALL_FEATURES + if test -z "$defaultval"; then + if test x"$enablestring" = xdisable; then + defaultval=yes + else + defaultval=no + fi + fi + + { echo "$as_me:$LINENO: checking for --${enablestring:-enable}-richtooltip" >&5 +echo $ECHO_N "checking for --${enablestring:-enable}-richtooltip... $ECHO_C" >&6; } + # Check whether --enable-richtooltip was given. +if test "${enable_richtooltip+set}" = set; then + enableval=$enable_richtooltip; + if test "$enableval" = yes; then + wx_cv_use_richtooltip='wxUSE_RICHTOOLTIP=yes' + else + wx_cv_use_richtooltip='wxUSE_RICHTOOLTIP=no' + fi + +else + + wx_cv_use_richtooltip='wxUSE_RICHTOOLTIP=${'DEFAULT_wxUSE_RICHTOOLTIP":-$defaultval}" + +fi + + + eval "$wx_cv_use_richtooltip" + + if test x"$enablestring" = xdisable; then + if test $wxUSE_RICHTOOLTIP = no; then + result=yes + else + result=no + fi + else + result=$wxUSE_RICHTOOLTIP + fi + + { echo "$as_me:$LINENO: result: $result" >&5 +echo "${ECHO_T}$result" >&6; } + + enablestring= defaultval=$wxUSE_ALL_FEATURES if test -z "$defaultval"; then @@ -47880,6 +47926,13 @@ _ACEOF fi +if test "$wxUSE_RICHTOOLTIP" = "yes"; then + cat >>confdefs.h <<\_ACEOF +#define wxUSE_RICHTOOLTIP 1 +_ACEOF + +fi + if test "$wxUSE_SASH" = "yes"; then cat >>confdefs.h <<\_ACEOF #define wxUSE_SASH 1 @@ -50447,7 +50500,7 @@ else fi - INSTALL_DIR="mkdir -p" + INSTALL_DIR="mkdir -p" LDFLAGS_GUI= diff --git a/configure.in b/configure.in index 06768cdcf4..df84bd2feb 100644 --- a/configure.in +++ b/configure.in @@ -915,6 +915,7 @@ if test "$wxUSE_CONTROLS" = "no"; then DEFAULT_wxUSE_RADIOBOX=no DEFAULT_wxUSE_RADIOBTN=no DEFAULT_wxUSE_RICHMSGDLG=no + DEFAULT_wxUSE_RICHTOOLTIP=no DEFAULT_wxUSE_REARRANGECTRL=no DEFAULT_wxUSE_SASH=no DEFAULT_wxUSE_SCROLLBAR=no @@ -987,6 +988,7 @@ WX_ARG_FEATURE(popupwin, [ --enable-popupwin use wxPopUpWindow class], WX_ARG_FEATURE(radiobox, [ --enable-radiobox use wxRadioBox class], wxUSE_RADIOBOX) WX_ARG_FEATURE(radiobtn, [ --enable-radiobtn use wxRadioButton class], wxUSE_RADIOBTN) WX_ARG_FEATURE(richmsgdlg, [ --enable-richmsgdlg use wxRichMessageDialog class], wxUSE_RICHMSGDLG) +WX_ARG_FEATURE(richtooltip, [ --enable-richtooltip use wxRichToolTip class], wxUSE_RICHTOOLTIP) WX_ARG_FEATURE(rearrangectrl,[ --enable-rearrangectrl use wxRearrangeList/Ctrl/Dialog], wxUSE_REARRANGECTRL) WX_ARG_FEATURE(sash, [ --enable-sash use wxSashWindow class], wxUSE_SASH) WX_ARG_FEATURE(scrollbar, [ --enable-scrollbar use wxScrollBar class and scrollable windows], wxUSE_SCROLLBAR) @@ -7036,6 +7038,10 @@ if test "$wxUSE_RICHMSGDLG" = "yes"; then AC_DEFINE(wxUSE_RICHMSGDLG) fi +if test "$wxUSE_RICHTOOLTIP" = "yes"; then + AC_DEFINE(wxUSE_RICHTOOLTIP) +fi + if test "$wxUSE_SASH" = "yes"; then AC_DEFINE(wxUSE_SASH) SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS sashtest" diff --git a/docs/changes.txt b/docs/changes.txt index 070a777433..45548d7650 100644 --- a/docs/changes.txt +++ b/docs/changes.txt @@ -459,10 +459,12 @@ All (GUI): - Added wxWebView library (Steven Lamerton & Auria, GSoC 2011 project). - Added wxTreeListCtrl class. - Added wxTimePickerCtrl class. +- Added wxRichToolTip class. - Added documented, public wxNavigationEnabled<> class. - Added wxTextCtrl::PositionToCoords() (Navaneeth). - Added support for wxHELP button to wxMessageDialog. - Added wxBannerWindow class. +- Allow setting window shape to arbitrary wxGraphicsPath. - Added wxTextEntry::AutoCompleteDirectories(). - Support float, double and file name values in wxGenericValidator (troelsk). - Fix keyboard navigation in wxGrid with hidden columns (ivan_14_32). diff --git a/docs/doxygen/images/wxgtk/richtooltip.png b/docs/doxygen/images/wxgtk/richtooltip.png new file mode 100644 index 0000000000..ded9c1d079 Binary files /dev/null and b/docs/doxygen/images/wxgtk/richtooltip.png differ diff --git a/docs/doxygen/images/wxmac/richtooltip.png b/docs/doxygen/images/wxmac/richtooltip.png new file mode 100644 index 0000000000..4d91849d62 Binary files /dev/null and b/docs/doxygen/images/wxmac/richtooltip.png differ diff --git a/docs/doxygen/images/wxmsw/richtooltip.png b/docs/doxygen/images/wxmsw/richtooltip.png new file mode 100644 index 0000000000..2521720b8e Binary files /dev/null and b/docs/doxygen/images/wxmsw/richtooltip.png differ diff --git a/docs/doxygen/mainpages/cat_classes.h b/docs/doxygen/mainpages/cat_classes.h index ad5b0dedf4..fd4c127f37 100644 --- a/docs/doxygen/mainpages/cat_classes.h +++ b/docs/doxygen/mainpages/cat_classes.h @@ -243,6 +243,7 @@ The following are a variety of classes that are derived from wxWindow. variable sizes. @li wxGrid: A grid (table) window @li wxInfoBar: An information bar usually shown on top of the main window. +@li wxRichToolTip: A customizable tooltip. @li wxSplitterWindow: Window which can be split vertically or horizontally @li wxStatusBar: Implements the status bar on a frame @li wxToolBar: Toolbar class diff --git a/include/wx/chkconf.h b/include/wx/chkconf.h index 8b9ff36c1f..5278a6490b 100644 --- a/include/wx/chkconf.h +++ b/include/wx/chkconf.h @@ -976,6 +976,14 @@ # endif #endif /* !defined(wxUSE_RICHMSGDLG) */ +#ifndef wxUSE_RICHTOOLTIP +# ifdef wxABORT_ON_CONFIG_ERROR +# error "wxUSE_RICHTOOLTIP must be defined, please read comment near the top of this file." +# else +# define wxUSE_RICHTOOLTIP 0 +# endif +#endif /* !defined(wxUSE_RICHTOOLTIP) */ + #ifndef wxUSE_SASH # ifdef wxABORT_ON_CONFIG_ERROR # error "wxUSE_SASH must be defined, please read comment near the top of this file." diff --git a/include/wx/generic/private/richtooltip.h b/include/wx/generic/private/richtooltip.h new file mode 100644 index 0000000000..baaf273011 --- /dev/null +++ b/include/wx/generic/private/richtooltip.h @@ -0,0 +1,59 @@ +/////////////////////////////////////////////////////////////////////////////// +// Name: wx/generic/private/richtooltip.h +// Purpose: wxRichToolTipGenericImpl declaration. +// Author: Vadim Zeitlin +// Created: 2011-10-18 +// RCS-ID: $Id: wxhead.h,v 1.12 2010-04-22 12:44:51 zeitlin Exp $ +// Copyright: (c) 2011 Vadim Zeitlin +// Licence: wxWindows licence +/////////////////////////////////////////////////////////////////////////////// + +#ifndef _WX_GENERIC_PRIVATE_RICHTOOLTIP_H_ +#define _GENERIC_PRIVATE_RICHTOOLTIP_H_ + +// ---------------------------------------------------------------------------- +// wxRichToolTipGenericImpl: defines generic wxRichToolTip implementation. +// ---------------------------------------------------------------------------- + +class wxRichToolTipGenericImpl : public wxRichToolTipImpl +{ +public: + wxRichToolTipGenericImpl(const wxString& title, const wxString& message) : + m_title(title), + m_message(message) + { + m_tipKind = wxTipKind_Auto; + + // This is pretty arbitrary, we could follow MSW and use some multiple + // of double-click time here. + m_timeout = 5000; + } + + virtual void SetBackgroundColour(const wxColour& col, + const wxColour& colEnd); + virtual void SetCustomIcon(const wxIcon& icon); + virtual void SetStandardIcon(int icon); + virtual void SetTimeout(unsigned milliseconds); + virtual void SetTipKind(wxTipKind tipKind); + virtual void SetTitleFont(const wxFont& font); + + virtual void ShowFor(wxWindow* win); + +protected: + wxString m_title, + m_message; + +private: + wxIcon m_icon; + + wxColour m_colStart, + m_colEnd; + + unsigned m_timeout; + + wxTipKind m_tipKind; + + wxFont m_titleFont; +}; + +#endif // _WX_GENERIC_PRIVATE_RICHTOOLTIP_H_ diff --git a/include/wx/motif/setup0.h b/include/wx/motif/setup0.h index 72c3721f07..3f87e116be 100644 --- a/include/wx/motif/setup0.h +++ b/include/wx/motif/setup0.h @@ -1087,6 +1087,14 @@ // Recommended setting: 1 #define wxUSE_NOTIFICATION_MESSAGE 1 +// wxRichToolTip is a customizable tooltip class which has more functionality +// than the stock (but native, unlike this class) wxToolTip. +// +// Default is 1. +// +// Recommended setting: 1 (but can be safely set to 0 if you don't need it) +#define wxUSE_RICHTOOLTIP 1 + // Use wxSashWindow class. // // Default is 1. diff --git a/include/wx/msw/setup0.h b/include/wx/msw/setup0.h index a8f62e2241..02dbb9aa03 100644 --- a/include/wx/msw/setup0.h +++ b/include/wx/msw/setup0.h @@ -1087,6 +1087,14 @@ // Recommended setting: 1 #define wxUSE_NOTIFICATION_MESSAGE 1 +// wxRichToolTip is a customizable tooltip class which has more functionality +// than the stock (but native, unlike this class) wxToolTip. +// +// Default is 1. +// +// Recommended setting: 1 (but can be safely set to 0 if you don't need it) +#define wxUSE_RICHTOOLTIP 1 + // Use wxSashWindow class. // // Default is 1. diff --git a/include/wx/msw/wince/setup.h b/include/wx/msw/wince/setup.h index a1a8bb702a..bc48373e26 100644 --- a/include/wx/msw/wince/setup.h +++ b/include/wx/msw/wince/setup.h @@ -1087,6 +1087,14 @@ // Recommended setting: 1 #define wxUSE_NOTIFICATION_MESSAGE 1 +// wxRichToolTip is a customizable tooltip class which has more functionality +// than the stock (but native, unlike this class) wxToolTip. +// +// Default is 1. +// +// Recommended setting: 1 (but can be safely set to 0 if you don't need it) +#define wxUSE_RICHTOOLTIP 1 + // Use wxSashWindow class. // // Default is 1. diff --git a/include/wx/os2/setup0.h b/include/wx/os2/setup0.h index 3f7ba32ff7..e5dfea236d 100644 --- a/include/wx/os2/setup0.h +++ b/include/wx/os2/setup0.h @@ -1087,6 +1087,14 @@ // Recommended setting: 1 #define wxUSE_NOTIFICATION_MESSAGE 1 +// wxRichToolTip is a customizable tooltip class which has more functionality +// than the stock (but native, unlike this class) wxToolTip. +// +// Default is 1. +// +// Recommended setting: 1 (but can be safely set to 0 if you don't need it) +#define wxUSE_RICHTOOLTIP 1 + // Use wxSashWindow class. // // Default is 1. diff --git a/include/wx/osx/nonownedwnd.h b/include/wx/osx/nonownedwnd.h index 4ae95d3099..85c0eb1cd1 100644 --- a/include/wx/osx/nonownedwnd.h +++ b/include/wx/osx/nonownedwnd.h @@ -81,9 +81,8 @@ public: // implementation from now on // -------------------------- - virtual bool SetShape(const wxRegion& region); + // These accessors are Mac-specific and don't exist in other ports. const wxRegion& GetShape() const { return m_shape; } - #if wxUSE_GRAPHICS_CONTEXT const wxGraphicsPath& GetShapePath() { return m_shapePath; } #endif // wxUSE_GRAPHICS_CONTEXT diff --git a/include/wx/osx/setup0.h b/include/wx/osx/setup0.h index db61cb128f..bd1bc24491 100644 --- a/include/wx/osx/setup0.h +++ b/include/wx/osx/setup0.h @@ -1088,6 +1088,14 @@ // Recommended setting: 1 #define wxUSE_NOTIFICATION_MESSAGE 1 +// wxRichToolTip is a customizable tooltip class which has more functionality +// than the stock (but native, unlike this class) wxToolTip. +// +// Default is 1. +// +// Recommended setting: 1 (but can be safely set to 0 if you don't need it) +#define wxUSE_RICHTOOLTIP 1 + // Use wxSashWindow class. // // Default is 1. diff --git a/include/wx/palmos/setup0.h b/include/wx/palmos/setup0.h index d2384305df..0db190529a 100644 --- a/include/wx/palmos/setup0.h +++ b/include/wx/palmos/setup0.h @@ -1087,6 +1087,14 @@ // Recommended setting: 1 #define wxUSE_NOTIFICATION_MESSAGE 1 +// wxRichToolTip is a customizable tooltip class which has more functionality +// than the stock (but native, unlike this class) wxToolTip. +// +// Default is 1. +// +// Recommended setting: 1 (but can be safely set to 0 if you don't need it) +#define wxUSE_RICHTOOLTIP 1 + // Use wxSashWindow class. // // Default is 1. diff --git a/include/wx/private/richtooltip.h b/include/wx/private/richtooltip.h new file mode 100644 index 0000000000..75d30a9d1f --- /dev/null +++ b/include/wx/private/richtooltip.h @@ -0,0 +1,44 @@ +/////////////////////////////////////////////////////////////////////////////// +// Name: wx/private/richtooltip.h +// Purpose: wxRichToolTipImpl declaration. +// Author: Vadim Zeitlin +// Created: 2011-10-18 +// RCS-ID: $Id: wxhead.h,v 1.12 2010-04-22 12:44:51 zeitlin Exp $ +// Copyright: (c) 2011 Vadim Zeitlin +// Licence: wxWindows licence +/////////////////////////////////////////////////////////////////////////////// + +#ifndef _WX_PRIVATE_RICHTOOLTIP_H_ +#define _WX_PRIVATE_RICHTOOLTIP_H_ + +#include "wx/richtooltip.h" + +// ---------------------------------------------------------------------------- +// wxRichToolTipImpl: defines wxRichToolTip implementation. +// ---------------------------------------------------------------------------- + +class wxRichToolTipImpl +{ +public: + // This is implemented in a platform-specific way. + static wxRichToolTipImpl* Create(const wxString& title, + const wxString& message); + + // These methods simply mirror the public wxRichToolTip ones. + virtual void SetBackgroundColour(const wxColour& col, + const wxColour& colEnd) = 0; + virtual void SetCustomIcon(const wxIcon& icon) = 0; + virtual void SetStandardIcon(int icon) = 0; + virtual void SetTimeout(unsigned milliseconds) = 0; + virtual void SetTipKind(wxTipKind tipKind) = 0; + virtual void SetTitleFont(const wxFont& font) = 0; + + virtual void ShowFor(wxWindow* win) = 0; + + virtual ~wxRichToolTipImpl() { } + +protected: + wxRichToolTipImpl() { } +}; + +#endif // _WX_PRIVATE_RICHTOOLTIP_H_ diff --git a/include/wx/richtooltip.h b/include/wx/richtooltip.h new file mode 100644 index 0000000000..83ea72dee2 --- /dev/null +++ b/include/wx/richtooltip.h @@ -0,0 +1,99 @@ +/////////////////////////////////////////////////////////////////////////////// +// Name: wx/richtooltip.h +// Purpose: Declaration of wxRichToolTip class. +// Author: Vadim Zeitlin +// Created: 2011-10-07 +// RCS-ID: $Id: wxhead.h,v 1.12 2010-04-22 12:44:51 zeitlin Exp $ +// Copyright: (c) 2011 Vadim Zeitlin +// Licence: wxWindows licence +/////////////////////////////////////////////////////////////////////////////// + +#ifndef _WX_RICHTOOLTIP_H_ +#define _WX_RICHTOOLTIP_H_ + +#if wxUSE_RICHTOOLTIP + +class WXDLLIMPEXP_FWD_CORE wxColour; +class WXDLLIMPEXP_FWD_CORE wxFont; +class WXDLLIMPEXP_FWD_CORE wxIcon; + +class wxRichToolTipImpl; + +// This enum describes the kind of the tip shown which combines both the tip +// position and appearance because the two are related (when the tip is +// positioned asymmetrically, a right handed triangle is used but an +// equilateral one when it's in the middle of a side). +// +// Automatic selects the tip appearance best suited for the current platform +// and the position best suited for the window the tooltip is shown for, i.e. +// chosen in such a way that the tooltip is always fully on screen. +// +// Other values describe the position of the tooltip itself, not the window it +// relates to. E.g. wxTipKind_Top places the tip on the top of the tooltip and +// so the tooltip itself is located beneath its associated window. +enum wxTipKind +{ + wxTipKind_None, + wxTipKind_TopLeft, + wxTipKind_Top, + wxTipKind_TopRight, + wxTipKind_BottomLeft, + wxTipKind_Bottom, + wxTipKind_BottomRight, + wxTipKind_Auto +}; + +// ---------------------------------------------------------------------------- +// wxRichToolTip: a customizable but not necessarily native tooltip. +// ---------------------------------------------------------------------------- + +// Notice that this class does not inherit from wxWindow. +class WXDLLIMPEXP_ADV wxRichToolTip +{ +public: + // Ctor must specify the tooltip title and main message, additional + // attributes can be set later. + wxRichToolTip(const wxString& title, const wxString& message); + + // Set the background colour: if two colours are specified, the background + // is drawn using a gradient from top to bottom, otherwise a single solid + // colour is used. + void SetBackgroundColour(const wxColour& col, + const wxColour& colEnd = wxColour()); + + // Set the small icon to show: either one of the standard information/ + // warning/error ones (the question icon doesn't make sense for a tooltip) + // or a custom icon. + void SetIcon(int icon = wxICON_INFORMATION); + void SetIcon(const wxIcon& icon); + + // Set timeout after which the tooltip should disappear, in milliseconds. + // By default the tooltip is hidden after system-dependent interval of time + // elapses but this method can be used to change this or also disable + // hiding the tooltip automatically entirely by passing 0 in this parameter + // (but doing this can result in native version not being used). + void SetTimeout(unsigned milliseconds); + + // Choose the tip kind, possibly none. By default the tip is positioned + // automatically, as if wxTipKind_Auto was used. + void SetTipKind(wxTipKind tipKind); + + // Set the title text font. By default it's emphasized using the font style + // or colour appropriate for the current platform. + void SetTitleFont(const wxFont& font); + + // Show the tooltip for the given window. + void ShowFor(wxWindow* win); + + // Non-virtual dtor as this class is not supposed to be derived from. + ~wxRichToolTip(); + +private: + wxRichToolTipImpl* const m_impl; + + wxDECLARE_NO_COPY_CLASS(wxRichToolTip); +}; + +#endif // wxUSE_RICHTOOLTIP + +#endif // _WX_RICHTOOLTIP_H_ diff --git a/include/wx/setup_inc.h b/include/wx/setup_inc.h index 4168e64d59..f7d6ce80b4 100644 --- a/include/wx/setup_inc.h +++ b/include/wx/setup_inc.h @@ -1083,6 +1083,14 @@ // Recommended setting: 1 #define wxUSE_NOTIFICATION_MESSAGE 1 +// wxRichToolTip is a customizable tooltip class which has more functionality +// than the stock (but native, unlike this class) wxToolTip. +// +// Default is 1. +// +// Recommended setting: 1 (but can be safely set to 0 if you don't need it) +#define wxUSE_RICHTOOLTIP 1 + // Use wxSashWindow class. // // Default is 1. diff --git a/include/wx/univ/setup0.h b/include/wx/univ/setup0.h index 632c93a5b0..f59ae50558 100644 --- a/include/wx/univ/setup0.h +++ b/include/wx/univ/setup0.h @@ -1086,6 +1086,14 @@ // Recommended setting: 1 #define wxUSE_NOTIFICATION_MESSAGE 1 +// wxRichToolTip is a customizable tooltip class which has more functionality +// than the stock (but native, unlike this class) wxToolTip. +// +// Default is 1. +// +// Recommended setting: 1 (but can be safely set to 0 if you don't need it) +#define wxUSE_RICHTOOLTIP 1 + // Use wxSashWindow class. // // Default is 1. diff --git a/interface/wx/nonownedwnd.h b/interface/wx/nonownedwnd.h index 7db6d66037..4e1a6a7381 100644 --- a/interface/wx/nonownedwnd.h +++ b/interface/wx/nonownedwnd.h @@ -32,5 +32,28 @@ public: This method is available in this class only since wxWidgets 2.9.3, previous versions only provided it in wxTopLevelWindow. */ - virtual bool SetShape(const wxRegion& region); + bool SetShape(const wxRegion& region); + + /** + Set the window shape to the given path. + + Set the window shape to the interior of the given path and also draw + the window border along the specified path. + + For example, to make a clock-like circular window you could use + @code + wxSize size = GetSize(); + wxGraphicsPath + path = wxGraphicsRenderer::GetDefaultRenderer()->CreatePath(); + path.AddCircle(size.x/2, size.y/2, 30); + SetShape(path); + @endcode + + As the overload above, this method is not guaranteed to work on all + platforms but currently does work in wxMSW, wxOSX/Cocoa and wxGTK (with + the appropriate but almost always present X11 extensions) ports. + + @since 2.9.3 + */ + bool SetShape(const wxGraphicsPath& path); }; diff --git a/interface/wx/richtooltip.h b/interface/wx/richtooltip.h new file mode 100644 index 0000000000..3a3dbbf5e5 --- /dev/null +++ b/interface/wx/richtooltip.h @@ -0,0 +1,195 @@ +/////////////////////////////////////////////////////////////////////////////// +// Name: interface/wx/richtooltip.h +// Purpose: wxRichToolTip class documentation +// Author: Vadim Zeitlin +// Created: 2011-10-18 +// RCS-ID: $Id$ +// Copyright: (c) 2011 Vadim Zeitlin +// Licence: wxWindows licence +/////////////////////////////////////////////////////////////////////////////// + +/** + Support tip kinds for wxRichToolTip. + + This enum describes the kind of the tip shown which combines both the tip + position and appearance because the two are related (when the tip is + positioned asymmetrically, a right handed triangle is used but an + equilateral one when it's in the middle of a side). + + Automatic selects the tip appearance best suited for the current platform + and the position best suited for the window the tooltip is shown for, i.e. + chosen in such a way that the tooltip is always fully on screen. + + Other values describe the position of the tooltip itself, not the window it + relates to. E.g. wxTipKind_Top places the tip on the top of the tooltip and + so the tooltip itself is located beneath its associated window. + */ +enum wxTipKind +{ + /// Don't show any tip, the tooltip will be (roughly) rectangular. + wxTipKind_None, + /// Show a right triangle tip in the top left corner of the tooltip. + wxTipKind_TopLeft, + /// Show an equilateral triangle tip in the middle of the tooltip top side. + wxTipKind_Top, + /// Show a right triangle tip in the top right corner of the tooltip. + wxTipKind_TopRight, + /// Show a right triangle tip in the bottom left corner of the tooltip. + wxTipKind_BottomLeft, + /// Show an equilateral triangle tip in the middle of the tooltip bottom side. + wxTipKind_Bottom, + /// Show a right triangle tip in the bottom right corner of the tooltip. + wxTipKind_BottomRight, + /** + Choose the appropriate tip shape and position automatically. + + This is the default and shouldn't normally need to be changed. + + Notice that currently wxTipKind_Top or wxTipKind_Bottom are used under + Mac while one of the other four values is selected for the other + platforms. + */ + wxTipKind_Auto +}; +/** + Allows to show a tool tip with more customizations than wxToolTip. + + Using this class is very simple, to give a standard warning for a password + text control if the password was entered correctly you could simply do: + @code + wxTextCtrl* password = new wxTextCtrl(..., wxTE_PASSWORD); + ... + wxRichToolTip tip("Caps Lock is on", + "You might have made an error in your password\n" + "entry because Caps Lock is turned on.\n" + "\n" + "Press Caps Lock key to turn it off."); + tip.SetIcon(wxICON_WARNING); + tip.ShowFor(password); + @endcode + + Currently this class has generic implementation that can be used with any + window and implements all the functionality but doesn't exactly match the + appearance of the native tooltips (even though it makes some efforts to + use the style most appropriate for the current platform) and a native MSW + version which can be only used with text controls and doesn't provide as + much in the way of customization. Because of this, it's inadvisable to + customize the tooltips unnecessarily as doing this turns off auto-detection + of the native style in the generic version and may prevent the native MSW + version from being used at all. + + Notice that this class is not derived from wxWindow and hence doesn't + represent a window, even if its ShowFor() method does create one internally + to show the tooltip. + + The images below show some examples of rich tooltips on different + platforms, with various customizations applied. + + @library{wxadv} + @category{miscwnd} + @appearance{richtooltip.png} + + @since 2.9.3 + */ +class wxRichToolTip +{ +public: + /** + Constructor must specify the tooltip title and main message. + + The main message can contain embedded new lines. Both the title and + message must be non-empty. + + Additional attributes can be set later. + */ + wxRichToolTip(const wxString& title, const wxString& message); + + /** + Set the background colour. + + If two colours are specified, the background is drawn using a gradient + from top to bottom, otherwise a single solid colour is used. + + By default the colour or colours most appropriate for the current + platform are used. If a colour is explicitly set, native MSW version + won't be used as it doesn't support setting the colour. + */ + void SetBackgroundColour(const wxColour& col, + const wxColour& colEnd = wxColour()); + + /** + Set the small icon to show. + + The icon can be either one of the standard information/warning/error + ones, i.e. wxICON_INFORMATION, wxICON_WARNING or wxICON_ERROR + respectively (the question icon doesn't make sense for a tooltip so + wxICON_QUESTION can't be used here) or a custom icon. The latter is + unsupported by the native MSW implementation of this class so the use + of a standard icon is preferred. + */ + //@{ + void SetIcon(int icon = wxICON_INFORMATION); + void SetIcon(const wxIcon& icon); + //@} + + /** + Set timeout after which the tooltip should disappear, in milliseconds. + + By default the tooltip is hidden after system-dependent interval of + time elapses but this method can be used to change this or also disable + hiding the tooltip automatically entirely by passing 0 in this parameter + (but doing this will prevent the native MSW version from being used). + + Notice that the tooltip will always be hidden if the user presses a key + or clicks a mouse button. + */ + void SetTimeout(unsigned milliseconds); + + /** + Choose the tip kind, possibly none. + + See wxTipKind documentation for the possible choices here. + + By default the tip is positioned automatically, as if wxTipKind_Auto + was used. Native MSW implementation doesn't support setting the tip + kind explicitly and won't be used if this method is called with any + value other than wxTipKind_Auto. + + Notice that using non automatic tooltip kind may result in the tooltip + being positioned partially off screen and it's the callers + responsibility to ensure that this doesn't happen in this case. + */ + void SetTipKind(wxTipKind tipKind); + + /** + Set the title text font. + + By default it's emphasized using the font style or colour appropriate + for the current platform. Calling this method prevents the native MSW + implementation from being used as it doesn't support changing the font. + */ + void SetTitleFont(const wxFont& font); + + /** + Show the tooltip for the given window. + + The tooltip tip points to the (middle of the) specified window which + must be non-@NULL. + + Currently the native MSW implementation is used only if @a win is a + wxTextCtrl. This limitation may be removed in the future. + */ + void ShowFor(wxWindow* win); + + /** + Destructor. + + Notice that destroying this object does not hide the tooltip if it's + currently shown, it will be hidden and destroyed when the user + dismisses it or the timeout expires. + + The destructor is non-virtual as this class is not supposed to be + derived from. + */ + ~wxRichToolTip(); +}; diff --git a/samples/dialogs/dialogs.cpp b/samples/dialogs/dialogs.cpp index eeeecdac1f..ce73b79e39 100644 --- a/samples/dialogs/dialogs.cpp +++ b/samples/dialogs/dialogs.cpp @@ -257,6 +257,10 @@ BEGIN_EVENT_TABLE(MyFrame, wxFrame) EVT_MENU(DIALOGS_NOTIFY_HIDE, MyFrame::OnNotifMsgHide) #endif // wxUSE_NOTIFICATION_MESSAGE +#if wxUSE_RICHTOOLTIP + EVT_MENU(DIALOGS_RICHTIP_DIALOG, MyFrame::OnRichTipDialog) +#endif // wxUSE_RICHTOOLTIP + EVT_MENU(wxID_EXIT, MyFrame::OnExit) END_EVENT_TABLE() @@ -527,6 +531,11 @@ bool MyApp::OnInit() #endif // wxUSE_NOTIFICATION_MESSAGE menuDlg->AppendSubMenu(menuNotif, "&User notifications"); +#if wxUSE_RICHTOOLTIP + menuDlg->Append(DIALOGS_RICHTIP_DIALOG, "Rich &tooltip dialog...\tCtrl-H"); + menuDlg->AppendSeparator(); +#endif // wxUSE_RICHTOOLTIP + menuDlg->Append(DIALOGS_STANDARD_BUTTON_SIZER_DIALOG, wxT("&Standard Buttons Sizer Dialog")); menuDlg->Append(DIALOGS_TEST_DEFAULT_ACTION, wxT("&Test dialog default action")); @@ -1777,6 +1786,219 @@ void MyFrame::OnNotifMsgHide(wxCommandEvent& WXUNUSED(event)) #endif // wxUSE_NOTIFICATION_MESSAGE +#if wxUSE_RICHTOOLTIP + +#include "wx/richtooltip.h" + +#include "tip.xpm" + +class RichTipDialog : public wxDialog +{ +public: + RichTipDialog(wxWindow* parent) + : wxDialog(parent, wxID_ANY, "wxRichToolTip Test", + wxDefaultPosition, wxDefaultSize, + wxDEFAULT_DIALOG_STYLE | wxRESIZE_BORDER) + { + // Create the controls. + m_textTitle = new wxTextCtrl(this, wxID_ANY, "Tooltip title"); + m_textBody = new wxTextCtrl(this, wxID_ANY, "Main tooltip text\n" + "possibly on several\n" + "lines.", + wxDefaultPosition, wxDefaultSize, + wxTE_MULTILINE); + wxButton* btnShowText = new wxButton(this, wxID_ANY, "Show for &text"); + wxButton* btnShowBtn = new wxButton(this, wxID_ANY, "Show for &button"); + + const wxString icons[] = + { + "&None", + "&Information", + "&Warning", + "&Error", + "&Custom" + }; + wxCOMPILE_TIME_ASSERT( WXSIZEOF(icons) == Icon_Max, IconMismatch ); + m_icons = new wxRadioBox(this, wxID_ANY, "&Icon choice:", + wxDefaultPosition, wxDefaultSize, + WXSIZEOF(icons), icons, + 1, wxRA_SPECIFY_ROWS); + m_icons->SetSelection(Icon_Info); + + const wxString tipKinds[] = + { + "&None", "Top left", "Top", "Top right", + "Bottom left", "Bottom", "Bottom right", "&Auto" + }; + m_tipKinds = new wxRadioBox(this, wxID_ANY, "Tip &kind:", + wxDefaultPosition, wxDefaultSize, + WXSIZEOF(tipKinds), tipKinds, + 4, wxRA_SPECIFY_COLS); + m_tipKinds->SetSelection(wxTipKind_Auto); + + const wxString bgStyles[] = + { + "&Default", "&Solid", "&Gradient", + }; + wxCOMPILE_TIME_ASSERT( WXSIZEOF(bgStyles) == Bg_Max, BgMismatch ); + m_bgStyles = new wxRadioBox(this, wxID_ANY, "Background style:", + wxDefaultPosition, wxDefaultSize, + WXSIZEOF(bgStyles), bgStyles, + 1, wxRA_SPECIFY_ROWS); + + const wxString timeouts[] = { "&None", "&Default", "&3 seconds" }; + wxCOMPILE_TIME_ASSERT( WXSIZEOF(timeouts) == Timeout_Max, TmMismatch ); + m_timeouts = new wxRadioBox(this, wxID_ANY, "Timeout:", + wxDefaultPosition, wxDefaultSize, + WXSIZEOF(timeouts), timeouts, + 1, wxRA_SPECIFY_ROWS); + m_timeouts->SetSelection(Timeout_Default); + + // Lay them out. + m_textBody->SetMinSize(wxSize(300, 200)); + + wxBoxSizer* const sizer = new wxBoxSizer(wxVERTICAL); + sizer->Add(m_textTitle, wxSizerFlags().Expand().Border()); + sizer->Add(m_textBody, wxSizerFlags(1).Expand().Border()); + sizer->Add(m_icons, wxSizerFlags().Expand().Border()); + sizer->Add(m_tipKinds, wxSizerFlags().Centre().Border()); + sizer->Add(m_bgStyles, wxSizerFlags().Centre().Border()); + sizer->Add(m_timeouts, wxSizerFlags().Centre().Border()); + wxBoxSizer* const sizerBtns = new wxBoxSizer(wxHORIZONTAL); + sizerBtns->Add(btnShowText, wxSizerFlags().Border(wxRIGHT)); + sizerBtns->Add(btnShowBtn, wxSizerFlags().Border(wxLEFT)); + sizer->Add(sizerBtns, wxSizerFlags().Centre().Border()); + sizer->Add(CreateStdDialogButtonSizer(wxOK), + wxSizerFlags().Expand().Border()); + SetSizerAndFit(sizer); + + + // And connect the event handlers. + btnShowText->Connect + ( + wxEVT_COMMAND_BUTTON_CLICKED, + wxCommandEventHandler(RichTipDialog::OnShowTipForText), + NULL, + this + ); + + btnShowBtn->Connect + ( + wxEVT_COMMAND_BUTTON_CLICKED, + wxCommandEventHandler(RichTipDialog::OnShowTipForBtn), + NULL, + this + ); + } + +private: + enum + { + Icon_None, + Icon_Info, + Icon_Warning, + Icon_Error, + Icon_Custom, + Icon_Max + }; + + enum + { + Bg_Default, + Bg_Solid, + Bg_Gradient, + Bg_Max + }; + + enum + { + Timeout_None, + Timeout_Default, + Timeout_3sec, + Timeout_Max + }; + + + void OnShowTipForText(wxCommandEvent& WXUNUSED(event)) + { + DoShowTip(m_textTitle); + } + + void OnShowTipForBtn(wxCommandEvent& WXUNUSED(event)) + { + DoShowTip(FindWindow(wxID_OK)); + } + + void DoShowTip(wxWindow* win) + { + wxRichToolTip tip(m_textTitle->GetValue(), m_textBody->GetValue()); + const int iconSel = m_icons->GetSelection(); + if ( iconSel == Icon_Custom ) + { + tip.SetIcon(tip_xpm); + } + else // Use a standard icon. + { + static const int stdIcons[] = + { + wxICON_NONE, + wxICON_INFORMATION, + wxICON_WARNING, + wxICON_ERROR, + }; + + tip.SetIcon(stdIcons[iconSel]); + } + + switch ( m_bgStyles->GetSelection() ) + { + case Bg_Default: + break; + + case Bg_Solid: + tip.SetBackgroundColour(*wxLIGHT_GREY); + break; + + case Bg_Gradient: + tip.SetBackgroundColour(*wxWHITE, wxColour(0xe4, 0xe5, 0xf0)); + break; + } + + switch ( m_timeouts->GetSelection() ) + { + case Timeout_None: + tip.SetTimeout(0); + break; + + case Timeout_Default: + break; + + case Timeout_3sec: + tip.SetTimeout(3000); + break; + } + + tip.SetTipKind(static_cast(m_tipKinds->GetSelection())); + + tip.ShowFor(win); + } + + wxTextCtrl* m_textTitle; + wxTextCtrl* m_textBody; + wxRadioBox* m_icons; + wxRadioBox* m_tipKinds; + wxRadioBox* m_bgStyles; + wxRadioBox* m_timeouts; +}; + +void MyFrame::OnRichTipDialog(wxCommandEvent& WXUNUSED(event)) +{ + RichTipDialog dialog(this); + dialog.ShowModal(); +} + +#endif // wxUSE_RICHTOOLTIP + void MyFrame::OnStandardButtonsSizerDialog(wxCommandEvent& WXUNUSED(event)) { StdButtonSizerDialog dialog(this); diff --git a/samples/dialogs/dialogs.h b/samples/dialogs/dialogs.h index 61dd0f85aa..bfc8fa086f 100644 --- a/samples/dialogs/dialogs.h +++ b/samples/dialogs/dialogs.h @@ -465,6 +465,10 @@ public: void OnNotifMsgHide(wxCommandEvent& event); #endif // wxUSE_NOTIFICATION_MESSAGE +#if wxUSE_RICHTOOLTIP + void OnRichTipDialog(wxCommandEvent& event); +#endif // wxUSE_RICHTOOLTIP + void OnStandardButtonsSizerDialog(wxCommandEvent& event); void OnTestDefaultActionDialog(wxCommandEvent& event); @@ -576,6 +580,7 @@ enum DIALOGS_NOTIFY_AUTO, DIALOGS_NOTIFY_SHOW, DIALOGS_NOTIFY_HIDE, + DIALOGS_RICHTIP_DIALOG, DIALOGS_PROPERTY_SHEET, DIALOGS_PROPERTY_SHEET_TOOLBOOK, DIALOGS_PROPERTY_SHEET_BUTTONTOOLBOOK, diff --git a/samples/dialogs/tip.xpm b/samples/dialogs/tip.xpm new file mode 100644 index 0000000000..28ea7559a1 --- /dev/null +++ b/samples/dialogs/tip.xpm @@ -0,0 +1,157 @@ +/* XPM */ +static const char *const tip_xpm[] = { +/* columns rows colors chars-per-pixel */ +"32 32 119 2", +" c #141414", +". c #1B1B1B", +"X c #1F2527", +"o c #242525", +"O c #242728", +"+ c #262A2B", +"@ c #2B2B2B", +"# c #2A2E30", +"$ c #2C3233", +"% c #2C3639", +"& c #2F3A3D", +"* c #313131", +"= c #303C3F", +"- c #2D3E42", +"; c #323F42", +": c #33454A", +"> c #34494F", +", c #324A50", +"< c #3B4E52", +"1 c #2F5058", +"2 c #325157", +"3 c #3D545A", +"4 c #3A5A62", +"5 c #34606A", +"6 c #3F616A", +"7 c #464646", +"8 c #4B4B4B", +"9 c #41585E", +"0 c gray33", +"q c #5D5D5D", +"w c #425B62", +"e c #456067", +"r c #46646B", +"t c #456972", +"y c #4B6972", +"u c #416F7A", +"i c #646464", +"p c gray42", +"a c #696F71", +"s c #767676", +"d c #787777", +"f c gray49", +"g c #3E7582", +"h c #3E7D8A", +"j c #417A86", +"k c #417F8E", +"l c #3E8494", +"z c #418595", +"x c #4D8995", +"c c #468D9E", +"v c #6B848A", +"b c #4795A7", +"n c #4F92A1", +"m c #4D9AAA", +"M c #5695A4", +"N c #55A2B3", +"B c #5FAABA", +"V c #7BA6AF", +"C c #4FAFC5", +"Z c #5DB7CA", +"A c #52BAD1", +"S c #58BDD4", +"D c #62C2D5", +"F c #64C3DA", +"G c #73C8DA", +"H c #7ECBDD", +"J c #868686", +"K c gray55", +"L c #9FA0A0", +"P c #98A8AB", +"I c #ADADAC", +"U c #AAB1B2", +"Y c #A8B9BD", +"T c gray70", +"R c #90C3CF", +"E c #87C8D7", +"W c #82CADA", +"Q c #91C8D4", +"! c #93CFDC", +"~ c #98CEDB", +"^ c #93D1DF", +"/ c #9AD1DC", +"( c #A4CCD7", +") c #A3CFDA", +"_ c #A1D0DB", +"` c #ACD1DA", +"' c #B2D6DE", +"] c #BCD7DD", +"[ c #89D2E2", +"{ c #9BD5E1", +"} c #A9DEE9", +"| c #BFE1E7", +" . c #BDE3EB", +".. c #C5C5C5", +"X. c #CACACA", +"o. c #C2D5D9", +"O. c #C2D8DD", +"+. c #CCD9DD", +"@. c #D4DBDD", +"#. c #DBDDDE", +"$. c #E0DFDF", +"%. c #CCDDE1", +"&. c #D2DFE1", +"*. c #CCE5EB", +"=. c #D6E2E4", +"-. c #DCE3E5", +";. c #D4E6E9", +":. c #DBE6E8", +">. c #E2E4E4", +",. c #E6E9E9", +"<. c #ECECEC", +"1. c #F1EFEF", +"2. c #E1EDF0", +"3. c #E9EFF0", +"4. c #EEF3F3", +"5. c #F5F5F4", +"6. c #F8F7F7", +"7. c #FBFBFA", +"8. c None", +/* pixels */ +"8.8.8.8.8.8.8.8.8.8.8.8.8.8.8.8.8.8.8.8.8.8.8.8.8.8.8.8.8.8.8.8.", +"8.8.8.8.8.8.8.8.8.8.8.o o o o @ @ o o o o 8.8.8.8.8.8.8.8.8.8.8.", +"8.8.8.8.8.8.8.8.o o @ * * q q f J i q 7 * @ o o 8.8.8.8.8.8.8.8.", +"8.8.8.8.8.8.o O @ 7 K X.7.7.7.7.7.7.7.7.>.I i * @ o 8.8.8.8.8.8.", +"8.8.8.8.8.o @ 8 T 6.7.7.7.7.7.7.7.7.7.7.7.7.7.#.s @ o o 8.8.8.8.", +"8.8.8.o O * K 5.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7...8 O o 8.8.8.", +"8.8.o O * I 7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.>.0 O o 8.8.", +"8.8.o @ I 7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.<.7 O 8.8.", +"8.o @ d 7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.X.@ o 8.", +"8.O @ $.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.6.a O 8.", +"o @ p 6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.Y @ o ", +"o @ L 6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.*.$ o ", +"o O U 6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.5. .; o ", +"O $ P 5.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.4.} % o ", +"o < v 3.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.2.W O o ", +"o w < *.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.| x # o ", +"8.$ < V :.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.;.[ , ; ", +"8.o y : ( -.<.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.<.=.{ j 3 o 8.", +"8.8.+ w 4 ` =.<.<.<.<.<.<.<.<.<.<.<.<.<.<.<.<.<.<.%.^ m > % . 8.", +"8.8.o & 3 2 Q O.-.<.<.<.<.<.<.<.<.<.<.<.<.<.,.=.' H z : : . 8.8.", +"8.8.8.o % w - M / ] &.-.,.,.<.<.<.<.<.<.<.>.O.! Z 5 < ; . 8.8.8.", +"8.8.8.8.o O e : 1 n W ~ ` ] O.%.%.+.@.>.,.+.! z : w @ . 8.8.8.8.", +"8.8.8.8.8.8.o % r 3 > 5 h N B G G R o.#.>.` D : ; . 8.8.8.8.8.", +"8.8.8.8.8.8.8.8.o + : w y w 3 3 - X ` @.%.W l w . 8.8.8.8.8.8.8.", +"8.8.8.8.8.8.8.8.8.8.. o o o o O + - ( +._ S 6 O 8.8.8.8.8.8.8.", +"8.8.8.8.8.8.8.8.8.8.8.8.8.8.8.8.o 4 ( ) F g = . 8.8.8.8.8.8.8.8.", +"8.8.8.8.8.8.8.8.8.8.8.8.8.8.8.8.O u E F z < . 8.8.8.8.8.8.8.8.8.", +"8.8.8.8.8.8.8.8.8.8.8.8.8.8.8.o 3 C A k > . 8.8.8.8.8.8.8.8.8.8.", +"8.8.8.8.8.8.8.8.8.8.8.8.8.8.8.9 c b t + . 8.8.8.8.8.8.8.8.8.8.8.", +"8.8.8.8.8.8.8.8.8.8.8.8.8.8.8.: % o . 8.8.8.8.8.8.8.8.8.8.8.8.", +"8.8.8.8.8.8.8.8.8.8.8.8.8.8.8.8.. 8.8.8.8.8.8.8.8.8.8.8.8.8.8.8.", +"8.8.8.8.8.8.8.8.8.8.8.8.8.8.8.8.8.8.8.8.8.8.8.8.8.8.8.8.8.8.8.8." +}; diff --git a/samples/shaped/shaped.cpp b/samples/shaped/shaped.cpp index 6f7ea9fb76..9b05903463 100644 --- a/samples/shaped/shaped.cpp +++ b/samples/shaped/shaped.cpp @@ -38,6 +38,7 @@ #endif #include "wx/dcclient.h" +#include "wx/graphics.h" #include "wx/image.h" #ifndef __WXMSW__ @@ -114,7 +115,16 @@ public: void OnPaint(wxPaintEvent& evt); private: - bool m_hasShape; + enum ShapeKind + { + Shape_None, + Shape_Star, +#if wxUSE_GRAPHICS_CONTEXT + Shape_Circle, +#endif // wxUSE_GRAPHICS_CONTEXT + Shape_Max + } m_shapeKind; + wxBitmap m_bmp; wxPoint m_delta; @@ -382,29 +392,46 @@ ShapedFrame::ShapedFrame(wxFrame *parent) | wxSTAY_ON_TOP ) { - m_hasShape = false; + m_shapeKind = Shape_None; m_bmp = wxBitmap(wxT("star.png"), wxBITMAP_TYPE_PNG); SetSize(wxSize(m_bmp.GetWidth(), m_bmp.GetHeight())); - SetToolTip(wxT("Right-click to close")); + SetToolTip(wxT("Right-click to close, double click to cycle shape")); SetWindowShape(); } void ShapedFrame::SetWindowShape() { - wxRegion region(m_bmp, *wxWHITE); - m_hasShape = SetShape(region); + switch ( m_shapeKind ) + { + case Shape_None: + SetShape(wxRegion()); + break; + + case Shape_Star: + SetShape(wxRegion(m_bmp, *wxWHITE)); + break; + +#if wxUSE_GRAPHICS_CONTEXT + case Shape_Circle: + { + wxGraphicsPath + path = wxGraphicsRenderer::GetDefaultRenderer()->CreatePath(); + path.AddCircle(m_bmp.GetWidth()/2, m_bmp.GetHeight()/2, 30); + SetShape(path); + } + break; +#endif // wxUSE_GRAPHICS_CONTEXT + + case Shape_Max: + wxFAIL_MSG( "invalid shape kind" ); + break; + } } void ShapedFrame::OnDoubleClick(wxMouseEvent& WXUNUSED(evt)) { - if (m_hasShape) - { - wxRegion region; - SetShape(region); - m_hasShape = false; - } - else - SetWindowShape(); + m_shapeKind = static_cast((m_shapeKind + 1) % Shape_Max); + SetWindowShape(); } void ShapedFrame::OnLeftDown(wxMouseEvent& evt) diff --git a/setup.h.in b/setup.h.in index 26ae556bdb..0147d6d774 100644 --- a/setup.h.in +++ b/setup.h.in @@ -470,6 +470,8 @@ #define wxUSE_NOTIFICATION_MESSAGE 0 +#define wxUSE_RICHTOOLTIP 0 + #define wxUSE_SASH 0 #define wxUSE_SPLITTER 0 diff --git a/src/common/richtooltipcmn.cpp b/src/common/richtooltipcmn.cpp new file mode 100644 index 0000000000..d2c829ba82 --- /dev/null +++ b/src/common/richtooltipcmn.cpp @@ -0,0 +1,82 @@ +/////////////////////////////////////////////////////////////////////////////// +// Name: src/common/richtooltipcmn.cpp +// Purpose: wxRichToolTip implementation common to all platforms. +// Author: Vadim Zeitlin +// Created: 2011-10-18 +// RCS-ID: $Id: wxhead.cpp,v 1.11 2010-04-22 12:44:51 zeitlin Exp $ +// Copyright: (c) 2011 Vadim Zeitlin +// Licence: wxWindows licence +/////////////////////////////////////////////////////////////////////////////// + +// ============================================================================ +// declarations +// ============================================================================ + +// ---------------------------------------------------------------------------- +// headers +// ---------------------------------------------------------------------------- + +// for compilers that support precompilation, includes "wx.h". +#include "wx/wxprec.h" + +#ifdef __BORLANDC__ + #pragma hdrstop +#endif + +#if wxUSE_RICHTOOLTIP + +#ifndef WX_PRECOMP + #include "wx/icon.h" +#endif // WX_PRECOMP + +#include "wx/private/richtooltip.h" + +// ============================================================================ +// implementation +// ============================================================================ + +wxRichToolTip::wxRichToolTip(const wxString& title, + const wxString& message) : + m_impl(wxRichToolTipImpl::Create(title, message)) +{ +} + +void +wxRichToolTip::SetBackgroundColour(const wxColour& col, const wxColour& colEnd) +{ + m_impl->SetBackgroundColour(col, colEnd); +} + +void wxRichToolTip::SetIcon(int icon) +{ + m_impl->SetStandardIcon(icon); +} + +void wxRichToolTip::SetIcon(const wxIcon& icon) +{ + m_impl->SetCustomIcon(icon); +} + +void wxRichToolTip::SetTimeout(unsigned milliseconds) +{ + m_impl->SetTimeout(milliseconds); +} + +void wxRichToolTip::SetTipKind(wxTipKind tipKind) +{ + m_impl->SetTipKind(tipKind); +} + +void wxRichToolTip::ShowFor(wxWindow* win) +{ + wxCHECK_RET( win, wxS("Must have a valid window") ); + + m_impl->ShowFor(win); +} + +wxRichToolTip::~wxRichToolTip() +{ + delete m_impl; +} + +#endif // wxUSE_RICHTOOLTIP diff --git a/src/generic/richtooltip.cpp b/src/generic/richtooltip.cpp new file mode 100644 index 0000000000..7cb677aad7 --- /dev/null +++ b/src/generic/richtooltip.cpp @@ -0,0 +1,673 @@ +/////////////////////////////////////////////////////////////////////////////// +// Name: src/generic/richtooltip.cpp +// Purpose: Implementation of wxRichToolTip. +// Author: Vadim Zeitlin +// Created: 2011-10-07 +// RCS-ID: $Id: wxhead.cpp,v 1.11 2010-04-22 12:44:51 zeitlin Exp $ +// Copyright: (c) 2011 Vadim Zeitlin +// Licence: wxWindows licence +/////////////////////////////////////////////////////////////////////////////// + +// ============================================================================ +// declarations +// ============================================================================ + +// ---------------------------------------------------------------------------- +// headers +// ---------------------------------------------------------------------------- + +// for compilers that support precompilation, includes "wx.h". +#include "wx/wxprec.h" + +#ifdef __BORLANDC__ + #pragma hdrstop +#endif + +#if wxUSE_RICHTOOLTIP + +#ifndef WX_PRECOMP + #include "wx/dcmemory.h" + #include "wx/icon.h" + #include "wx/region.h" + #include "wx/settings.h" + #include "wx/sizer.h" + #include "wx/statbmp.h" + #include "wx/stattext.h" + #include "wx/timer.h" + #include "wx/utils.h" +#endif // WX_PRECOMP + +#include "wx/private/richtooltip.h" +#include "wx/generic/private/richtooltip.h" + +#include "wx/artprov.h" +#include "wx/custombgwin.h" +#include "wx/display.h" +#include "wx/graphics.h" +#include "wx/popupwin.h" +#include "wx/textwrapper.h" + +#ifdef __WXMSW__ + #include "wx/msw/uxtheme.h" + + static const int TTP_BALLOONTITLE = 4; + + static const int TMT_TEXTCOLOR = 3803; + static const int TMT_GRADIENTCOLOR1 = 3810; + static const int TMT_GRADIENTCOLOR2 = 3811; +#endif + +// ---------------------------------------------------------------------------- +// wxRichToolTipPopup: the popup window used by wxRichToolTip. +// ---------------------------------------------------------------------------- + +class wxRichToolTipPopup : + public wxCustomBackgroundWindow +{ +public: + wxRichToolTipPopup(wxWindow* parent, + const wxString& title, + const wxString& message, + const wxIcon& icon, + wxTipKind tipKind, + const wxFont& titleFont_) : + m_timer(this) + { + Create(parent, wxFRAME_SHAPED); + + + wxBoxSizer* const sizerTitle = new wxBoxSizer(wxHORIZONTAL); + if ( icon.IsOk() ) + { + sizerTitle->Add(new wxStaticBitmap(this, wxID_ANY, icon), + wxSizerFlags().Centre().Border(wxRIGHT)); + } + //else: Simply don't show any icon. + + wxStaticText* const labelTitle = new wxStaticText(this, wxID_ANY, ""); + labelTitle->SetLabelText(title); + + wxFont titleFont(titleFont_); + if ( !titleFont.IsOk() ) + { + // Determine the appropriate title font for the current platform. + titleFont = labelTitle->GetFont(); + +#ifdef __WXMSW__ + // When using themes MSW tooltips use larger bluish version of the + // normal font. + wxUxThemeEngine* const theme = GetTooltipTheme(); + if ( theme ) + { + titleFont.MakeLarger(); + + COLORREF c; + if ( FAILED(theme->GetThemeColor + ( + wxUxThemeHandle(parent, L"TOOLTIP"), + TTP_BALLOONTITLE, + 0, + TMT_TEXTCOLOR, + &c + )) ) + { + // Use the standard value of this colour as fallback. + c = 0x993300; + } + + labelTitle->SetForegroundColour(wxRGBToColour(c)); + } + else +#endif // __WXMSW__ + { + // Everything else, including "classic" MSW look uses just the + // bold version of the base font. + titleFont.MakeBold(); + } + } + + labelTitle->SetFont(titleFont); + sizerTitle->Add(labelTitle, wxSizerFlags().Centre()); + + wxBoxSizer* const sizerTop = new wxBoxSizer(wxVERTICAL); + sizerTop->Add(sizerTitle, + wxSizerFlags().DoubleBorder(wxLEFT|wxRIGHT|wxTOP)); + + // Use a spacer as we don't want to have a double border between the + // elements, just a simple one will do. + sizerTop->AddSpacer(wxSizerFlags::GetDefaultBorder()); + + wxTextSizerWrapper wrapper(this); + wxSizer* sizerText = wrapper.CreateSizer(message, -1 /* No wrapping */); + +#ifdef __WXMSW__ + if ( icon.IsOk() && GetTooltipTheme() ) + { + // Themed tooltips under MSW align the text with the title, not + // with the icon, so use a helper horizontal sizer in this case. + wxBoxSizer* const sizerTextIndent = new wxBoxSizer(wxHORIZONTAL); + sizerTextIndent->AddSpacer(icon.GetWidth()); + sizerTextIndent->Add(sizerText, + wxSizerFlags().Border(wxLEFT).Centre()); + + sizerText = sizerTextIndent; + } +#endif // !__WXMSW__ + sizerTop->Add(sizerText, + wxSizerFlags().DoubleBorder(wxLEFT|wxRIGHT|wxBOTTOM) + .Centre()); + + SetSizer(sizerTop); + + const int offsetY = SetTipShapeAndSize(tipKind, GetBestSize()); + if ( offsetY > 0 ) + { + // Offset our contents by the tip height to make it appear in the + // main rectangle. + sizerTop->PrependSpacer(offsetY); + } + + Layout(); + } + + void SetBackground(wxColour colStart, wxColour colEnd) + { + if ( !colStart.IsOk() ) + { + // Determine the best colour(s) to use on our own. +#ifdef __WXMSW__ + wxUxThemeEngine* const theme = GetTooltipTheme(); + if ( theme ) + { + wxUxThemeHandle hTheme(GetParent(), L"TOOLTIP"); + + COLORREF c1, c2; + if ( FAILED(theme->GetThemeColor + ( + hTheme, + TTP_BALLOONTITLE, + 0, + TMT_GRADIENTCOLOR1, + &c1 + )) || + FAILED(theme->GetThemeColor + ( + hTheme, + TTP_BALLOONTITLE, + 0, + TMT_GRADIENTCOLOR2, + &c2 + )) ) + { + c1 = 0xffffff; + c2 = 0xf0e5e4; + } + + colStart = wxRGBToColour(c1); + colEnd = wxRGBToColour(c2); + } + else +#endif // __WXMSW__ + { + colStart = wxSystemSettings::GetColour(wxSYS_COLOUR_INFOBK); + } + } + + if ( colEnd.IsOk() ) + { + // Use gradient-filled background bitmap. + const wxSize size = GetClientSize(); + wxBitmap bmp(size); + { + wxMemoryDC dc(bmp); + dc.Clear(); + dc.GradientFillLinear(size, colStart, colEnd, wxDOWN); + } + + SetBackgroundBitmap(bmp); + } + else // Use solid colour. + { + SetBackgroundColour(colStart); + } + } + + void DoShow() + { + wxPoint pos = GetTipPoint(); + + // We want our anchor point to coincide with this position so offset + // the position of the top left corner passed to Move() accordingly. + pos -= m_anchorPos; + + Move(pos, wxSIZE_NO_ADJUSTMENTS); + + Popup(); + } + + void SetTimeout(unsigned timeout) + { + if ( !timeout ) + return; + + Connect(wxEVT_TIMER, wxTimerEventHandler(wxRichToolTipPopup::OnTimer)); + + m_timer.Start(timeout, true /* one shot */); + } + +protected: + virtual void OnDismiss() + { + Destroy(); + } + +private: +#ifdef __WXMSW__ + // Returns non-NULL theme only if we're using Win7-style tooltips. + static wxUxThemeEngine* GetTooltipTheme() + { + // Even themed applications under XP still use "classic" tooltips. + if ( wxGetWinVersion() <= wxWinVersion_XP ) + return NULL; + + return wxUxThemeEngine::GetIfActive(); + } +#endif // __WXMSW__ + + // For now we just hard code the tip height, would be nice to do something + // smarter in the future. + static int GetTipHeight() + { +#ifdef __WXMSW__ + if ( GetTooltipTheme() ) + return 20; +#endif // __WXMSW__ + + return 15; + } + + // Get the point to which our tip should point. + wxPoint GetTipPoint() const + { + // Currently we always use the middle of the window. It seems that MSW + // native tooltips use a different point but it's not really clear how + // do they determine it nor whether it's worth the trouble to emulate + // their behaviour. + const wxRect r = GetParent()->GetScreenRect(); + return wxPoint(r.x + r.width/2, r.y + r.height/2); + } + + // Choose the correct orientation depending on the window position. + // + // Also use the tip kind appropriate for the current environment. For MSW + // the right triangles are used and for Mac the equilateral ones as this is + // the prevailing kind under these systems. For everything else we go with + // right triangles as well but without any real rationale so this could be + // tweaked in the future. + wxTipKind GetBestTipKind() const + { + const wxPoint pos = GetTipPoint(); + + // Use GetFromWindow() and not GetFromPoint() here to try to get the + // correct display even if the tip point itself is not visible. + int dpy = wxDisplay::GetFromWindow(GetParent()); + if ( dpy == wxNOT_FOUND ) + dpy = 0; // What else can we do? + + const wxRect rectDpy = wxDisplay(dpy).GetClientArea(); + +#ifdef __WXMAC__ + return pos.y > rectDpy.height/2 ? wxTipKind_Bottom : wxTipKind_Top; +#else // !__WXMAC__ + return pos.y > rectDpy.height/2 + ? pos.x > rectDpy.width/2 + ? wxTipKind_BottomRight + : wxTipKind_BottomLeft + : pos.x > rectDpy.width/2 + ? wxTipKind_TopRight + : wxTipKind_TopLeft; +#endif // __WXMAC__/!__WXMAC__ + } + + // Set the size and shape of the tip window and returns the offset of its + // content area from the top (horizontal offset is always 0 currently). + int SetTipShapeAndSize(wxTipKind tipKind, const wxSize& contentSize) + { +#if wxUSE_GRAPHICS_CONTEXT + wxSize size = contentSize; + + // The size is the vertical size and the offset is the distance from + // edge for asymmetric tips, currently hard-coded to be the same as the + // size. + const int tipSize = GetTipHeight(); + const int tipOffset = tipSize; + + // The horizontal position of the tip. + int x = -1; + + // The vertical coordinates of the tip base and apex. + int yBase = -1, + yApex = -1; + + // The offset of the content part of the window. + int dy = -1; + + // Define symbolic names for the rectangle corners and mid-way points + // that we use below in an attempt to make the code more clear. Notice + // that these values must be consecutive as we iterate over them. + enum RectPoint + { + RectPoint_TopLeft, + RectPoint_Top, + RectPoint_TopRight, + RectPoint_Right, + RectPoint_BotRight, + RectPoint_Bot, + RectPoint_BotLeft, + RectPoint_Left, + RectPoint_Max + }; + + // The starting point for AddArcToPoint() calls below, we iterate over + // all RectPoints from it. + RectPoint pointStart = RectPoint_Max; + + + // Hard-coded radius of the round main rectangle corners. + const double RADIUS = 5; + + // Create a path defining the shape of the tooltip window. + wxGraphicsPath + path = wxGraphicsRenderer::GetDefaultRenderer()->CreatePath(); + + if ( tipKind == wxTipKind_Auto ) + tipKind = GetBestTipKind(); + + // Points defining the tip shape (in clockwise order as we must end at + // tipPoints[0] after drawing the rectangle outline in this order). + wxPoint2DDouble tipPoints[3]; + + switch ( tipKind ) + { + case wxTipKind_Auto: + wxFAIL_MSG( "Impossible kind value" ); + break; + + case wxTipKind_TopLeft: + x = tipOffset; + yApex = 0; + yBase = tipSize; + dy = tipSize; + + tipPoints[0] = wxPoint2DDouble(x, yBase); + tipPoints[1] = wxPoint2DDouble(x, yApex); + tipPoints[2] = wxPoint2DDouble(x + tipSize, yBase); + + pointStart = RectPoint_TopRight; + break; + + case wxTipKind_TopRight: + x = size.x - tipOffset; + yApex = 0; + yBase = tipSize; + dy = tipSize; + + tipPoints[0] = wxPoint2DDouble(x - tipSize, yBase); + tipPoints[1] = wxPoint2DDouble(x, yApex); + tipPoints[2] = wxPoint2DDouble(x, yBase); + + pointStart = RectPoint_TopRight; + break; + + case wxTipKind_BottomLeft: + x = tipOffset; + yApex = size.y + tipSize; + yBase = size.y; + dy = 0; + + tipPoints[0] = wxPoint2DDouble(x + tipSize, yBase); + tipPoints[1] = wxPoint2DDouble(x, yApex); + tipPoints[2] = wxPoint2DDouble(x, yBase); + + pointStart = RectPoint_BotLeft; + break; + + case wxTipKind_BottomRight: + x = size.x - tipOffset; + yApex = size.y + tipSize; + yBase = size.y; + dy = 0; + + tipPoints[0] = wxPoint2DDouble(x, yBase); + tipPoints[1] = wxPoint2DDouble(x, yApex); + tipPoints[2] = wxPoint2DDouble(x - tipSize, yBase); + + pointStart = RectPoint_BotLeft; + break; + + case wxTipKind_Top: + x = size.x/2; + yApex = 0; + yBase = tipSize; + dy = tipSize; + + { + // A half-side of an equilateral triangle is its altitude + // divided by sqrt(3) ~= 1.73. + const double halfside = tipSize/1.73; + + tipPoints[0] = wxPoint2DDouble(x - halfside, yBase); + tipPoints[1] = wxPoint2DDouble(x, yApex); + tipPoints[2] = wxPoint2DDouble(x + halfside, yBase); + } + + pointStart = RectPoint_TopRight; + break; + + case wxTipKind_Bottom: + x = size.x/2; + yApex = size.y + tipSize; + yBase = size.y; + dy = 0; + + { + const double halfside = tipSize/1.73; + + tipPoints[0] = wxPoint2DDouble(x + halfside, yBase); + tipPoints[1] = wxPoint2DDouble(x, yApex); + tipPoints[2] = wxPoint2DDouble(x - halfside, yBase); + } + + pointStart = RectPoint_BotLeft; + break; + + case wxTipKind_None: + x = size.x/2; + dy = 0; + + path.AddRoundedRectangle(0, 0, size.x, size.y, RADIUS); + break; + } + + wxASSERT_MSG( dy != -1, wxS("Unknown tip kind?") ); + + size.y += tipSize; + SetSize(size); + + if ( tipKind != wxTipKind_None ) + { + path.MoveToPoint(tipPoints[0]); + path.AddLineToPoint(tipPoints[1]); + path.AddLineToPoint(tipPoints[2]); + + const double xLeft = 0.; + const double xMid = size.x/2.; + const double xRight = size.x; + + const double yTop = dy; + const double yMid = (dy + size.y)/2.; + const double yBot = dy + contentSize.y; + + wxPoint2DDouble rectPoints[RectPoint_Max]; + rectPoints[RectPoint_TopLeft] = wxPoint2DDouble(xLeft, yTop); + rectPoints[RectPoint_Top] = wxPoint2DDouble(xMid, yTop); + rectPoints[RectPoint_TopRight] = wxPoint2DDouble(xRight, yTop); + rectPoints[RectPoint_Right] = wxPoint2DDouble(xRight, yMid); + rectPoints[RectPoint_BotRight] = wxPoint2DDouble(xRight, yBot); + rectPoints[RectPoint_Bot] = wxPoint2DDouble(xMid, yBot); + rectPoints[RectPoint_BotLeft] = wxPoint2DDouble(xLeft, yBot); + rectPoints[RectPoint_Left] = wxPoint2DDouble(xLeft, yMid); + + // Iterate over all rectangle rectPoints for the first 3 corners. + unsigned n = pointStart; + for ( unsigned corner = 0; corner < 3; corner++ ) + { + const wxPoint2DDouble& pt1 = rectPoints[n]; + + n = (n + 1) % RectPoint_Max; + + const wxPoint2DDouble& pt2 = rectPoints[n]; + + path.AddArcToPoint(pt1.m_x, pt1.m_y, pt2.m_x, pt2.m_y, RADIUS); + + n = (n + 1) % RectPoint_Max; + } + + // Last one wraps to the first point of the tip. + const wxPoint2DDouble& pt1 = rectPoints[n]; + const wxPoint2DDouble& pt2 = tipPoints[0]; + + path.AddArcToPoint(pt1.m_x, pt1.m_y, pt2.m_x, pt2.m_y, RADIUS); + + path.CloseSubpath(); + } + + SetShape(path); +#else // !wxUSE_GRAPHICS_CONTEXT + int x = contentSize.x/2, + yApex = 0, + dy = 0; + + SetSize(contentSize); +#endif // wxUSE_GRAPHICS_CONTEXT/!wxUSE_GRAPHICS_CONTEXT + + m_anchorPos.x = x; + m_anchorPos.y = yApex; + + return dy; + } + + // Timer event handler hides the tooltip when the timeout expires. + void OnTimer(wxTimerEvent& WXUNUSED(event)) + { + // Doing "Notify" here ensures that our OnDismiss() is called and so we + // also Destroy() ourselves. We could use Dismiss() and call Destroy() + // explicitly from here as well. + DismissAndNotify(); + } + + + // The anchor point offset if we show a tip or the middle of the top side + // otherwise. + wxPoint m_anchorPos; + + // The timer counting down the time until we're hidden. + wxTimer m_timer; + + wxDECLARE_NO_COPY_CLASS(wxRichToolTipPopup); +}; + +// ---------------------------------------------------------------------------- +// wxRichToolTipGenericImpl: generic implementation of wxRichToolTip. +// ---------------------------------------------------------------------------- + +void +wxRichToolTipGenericImpl::SetBackgroundColour(const wxColour& col, + const wxColour& colEnd) +{ + m_colStart = col; + m_colEnd = colEnd; +} + +void wxRichToolTipGenericImpl::SetCustomIcon(const wxIcon& icon) +{ + m_icon = icon; +} + +void wxRichToolTipGenericImpl::SetStandardIcon(int icon) +{ + switch ( icon & wxICON_MASK ) + { + case wxICON_WARNING: + case wxICON_ERROR: + case wxICON_INFORMATION: + // Although we don't use this icon in a list, we need a smallish + // icon here and not an icon of a typical message box size so use + // wxART_LIST to get it. + m_icon = wxArtProvider::GetIcon + ( + wxArtProvider::GetMessageBoxIconId(icon), + wxART_LIST + ); + break; + + case wxICON_QUESTION: + wxFAIL_MSG("Question icon doesn't make sense for a tooltip"); + break; + + case wxICON_NONE: + m_icon = wxNullIcon; + break; + } +} + +void wxRichToolTipGenericImpl::SetTimeout(unsigned milliseconds) +{ + m_timeout = milliseconds; +} + +void wxRichToolTipGenericImpl::SetTipKind(wxTipKind tipKind) +{ + m_tipKind = tipKind; +} + +void wxRichToolTipGenericImpl::SetTitleFont(const wxFont& font) +{ + m_titleFont = font; +} + +void wxRichToolTipGenericImpl::ShowFor(wxWindow* win) +{ + // Set the focus to the window the tooltip refers to to make it look active. + win->SetFocus(); + + wxRichToolTipPopup* const popup = new wxRichToolTipPopup + ( + win, + m_title, + m_message, + m_icon, + m_tipKind, + m_titleFont + ); + + popup->SetBackground(m_colStart, m_colEnd); + + popup->DoShow(); + + popup->SetTimeout(m_timeout); +} + +// Currently only wxMSW provides a native implementation. +#ifndef __WXMSW__ + +/* static */ +wxRichToolTipImpl* +wxRichToolTipImpl::Create(const wxString& title, const wxString& message) +{ + return new wxRichToolTipGenericImpl(title, message); +} + +#endif // !__WXMSW__ + +#endif // wxUSE_RICHTOOLTIP diff --git a/src/msw/richtooltip.cpp b/src/msw/richtooltip.cpp new file mode 100644 index 0000000000..1736eb0324 --- /dev/null +++ b/src/msw/richtooltip.cpp @@ -0,0 +1,173 @@ +/////////////////////////////////////////////////////////////////////////////// +// Name: src/msw/richtooltip.cpp +// Purpose: Native MSW implementation of wxRichToolTip. +// Author: Vadim Zeitlin +// Created: 2011-10-18 +// RCS-ID: $Id: wxhead.cpp,v 1.11 2010-04-22 12:44:51 zeitlin Exp $ +// Copyright: (c) 2011 Vadim Zeitlin +// Licence: wxWindows licence +/////////////////////////////////////////////////////////////////////////////// + +// ============================================================================ +// declarations +// ============================================================================ + +// ---------------------------------------------------------------------------- +// headers +// ---------------------------------------------------------------------------- + +// for compilers that support precompilation, includes "wx.h". +#include "wx/wxprec.h" + +#ifdef __BORLANDC__ + #pragma hdrstop +#endif + +#if wxUSE_RICHTOOLTIP + +#ifndef WX_PRECOMP +#endif // WX_PRECOMP + +#include "wx/private/richtooltip.h" +#include "wx/generic/private/richtooltip.h" +#include "wx/msw/private.h" +#include "wx/msw/uxtheme.h" + +// ============================================================================ +// wxRichToolTipMSWImpl: the real implementation. +// ============================================================================ + +class wxRichToolTipMSWImpl : public wxRichToolTipGenericImpl +{ +public: + wxRichToolTipMSWImpl(const wxString& title, const wxString& message) : + wxRichToolTipGenericImpl(title, message) + { + // So far so good... + m_canUseNative = true; + + m_ttiIcon = TTI_NONE; + } + + virtual void SetBackgroundColour(const wxColour& col, + const wxColour& colEnd) + { + // Setting background colour is not supported neither. + m_canUseNative = false; + + wxRichToolTipGenericImpl::SetBackgroundColour(col, colEnd); + } + + virtual void SetCustomIcon(const wxIcon& icon) + { + // Custom icons are not supported by EM_SHOWBALLOONTIP. + m_canUseNative = false; + + wxRichToolTipGenericImpl::SetCustomIcon(icon); + } + + virtual void SetStandardIcon(int icon) + { + wxRichToolTipGenericImpl::SetStandardIcon(icon); + if ( !m_canUseNative ) + return; + + switch ( icon & wxICON_MASK ) + { + case wxICON_WARNING: + m_ttiIcon = TTI_WARNING; + break; + + case wxICON_ERROR: + m_ttiIcon = TTI_ERROR; + break; + + case wxICON_INFORMATION: + m_ttiIcon = TTI_INFO; + break; + + case wxICON_QUESTION: + wxFAIL_MSG("Question icon doesn't make sense for a tooltip"); + break; + + case wxICON_NONE: + m_ttiIcon = TTI_NONE; + break; + } + } + + virtual void SetTimeout(unsigned milliseconds) + { + // We don't support changing the timeout (maybe TTM_SETDELAYTIME could + // be used for this?). + m_canUseNative = false; + + wxRichToolTipGenericImpl::SetTimeout(milliseconds); + } + + virtual void SetTipKind(wxTipKind tipKind) + { + // Setting non-default tip is not supported. + if ( tipKind != wxTipKind_Auto ) + m_canUseNative = false; + + wxRichToolTipGenericImpl::SetTipKind(tipKind); + } + + virtual void SetTitleFont(const wxFont& font) + { + // Setting non-default font is not supported. + m_canUseNative = false; + + wxRichToolTipGenericImpl::SetTitleFont(font); + } + + virtual void ShowFor(wxWindow* win) + { + // TODO: We could use native tooltip control to show native balloon + // tooltips for any window but right now we use the simple + // EM_SHOWBALLOONTIP API which can only be used with text + // controls. + if ( m_canUseNative ) + { + wxTextCtrl* const text = wxDynamicCast(win, wxTextCtrl); + if ( text ) + { + EDITBALLOONTIP ebt; + ebt.cbStruct = sizeof(EDITBALLOONTIP); + ebt.pszTitle = m_title.wc_str(); + ebt.pszText = m_message.wc_str(); + ebt.ttiIcon = m_ttiIcon; + if ( Edit_ShowBalloonTip(GetHwndOf(text), &ebt) ) + return; + } + } + + // Don't set m_canUseNative to false here, we could be able to use the + // native tooltips if we're called for a different window the next + // time. + wxRichToolTipGenericImpl::ShowFor(win); + } + +private: + // If this is false, we've been requested to do something that the native + // version doesn't support and so need to fall back to the generic one. + bool m_canUseNative; + + // One of TTI_NONE, TTI_INFO, TTI_WARNING or TTI_ERROR. + int m_ttiIcon; +}; + +/* static */ +wxRichToolTipImpl* +wxRichToolTipImpl::Create(const wxString& title, const wxString& message) +{ + // EM_SHOWBALLOONTIP is only implemented by comctl32.dll v6 so don't even + // bother using the native implementation if we're not using themes. + if ( wxUxThemeEngine::GetIfActive() ) + return new wxRichToolTipMSWImpl(title, message); + + return new wxRichToolTipGenericImpl(title, message); +} + +#endif // wxUSE_RICHTOOLTIP