]> git.saurik.com Git - wxWidgets.git/commitdiff
Added wxRichToolTip class.
authorVadim Zeitlin <vadim@wxwidgets.org>
Tue, 18 Oct 2011 21:57:02 +0000 (21:57 +0000)
committerVadim Zeitlin <vadim@wxwidgets.org>
Tue, 18 Oct 2011 21:57:02 +0000 (21:57 +0000)
It can be used to show more customizable tooltips than the native wxToolTip
but at the price of using generic implementation in some cases (actually
almost always now, with the exceptions of text control tooltips under MSW).

Extra features include:
 - The balloon-like tooltip form.
 - Possibility to show an icon.
 - Title display in a different form.

More customization could be added later. It should be also possible to fully
implement this class natively under MSW.

Update the dialogs sample to show the rich tooltips in action.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@69463 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

44 files changed:
Makefile.in
build/bakefiles/files.bkl
build/msw/makefile.bcc
build/msw/makefile.gcc
build/msw/makefile.vc
build/msw/makefile.wat
build/msw/wx_adv.dsp
build/msw/wx_core.dsp
build/msw/wx_vc7_adv.vcproj
build/msw/wx_vc7_core.vcproj
build/msw/wx_vc8_adv.vcproj
build/msw/wx_vc8_core.vcproj
build/msw/wx_vc9_adv.vcproj
build/msw/wx_vc9_core.vcproj
configure
configure.in
docs/changes.txt
docs/doxygen/images/wxgtk/richtooltip.png [new file with mode: 0644]
docs/doxygen/images/wxmac/richtooltip.png [new file with mode: 0644]
docs/doxygen/images/wxmsw/richtooltip.png [new file with mode: 0644]
docs/doxygen/mainpages/cat_classes.h
include/wx/chkconf.h
include/wx/generic/private/richtooltip.h [new file with mode: 0644]
include/wx/motif/setup0.h
include/wx/msw/setup0.h
include/wx/msw/wince/setup.h
include/wx/os2/setup0.h
include/wx/osx/nonownedwnd.h
include/wx/osx/setup0.h
include/wx/palmos/setup0.h
include/wx/private/richtooltip.h [new file with mode: 0644]
include/wx/richtooltip.h [new file with mode: 0644]
include/wx/setup_inc.h
include/wx/univ/setup0.h
interface/wx/nonownedwnd.h
interface/wx/richtooltip.h [new file with mode: 0644]
samples/dialogs/dialogs.cpp
samples/dialogs/dialogs.h
samples/dialogs/tip.xpm [new file with mode: 0644]
samples/shaped/shaped.cpp
setup.h.in
src/common/richtooltipcmn.cpp [new file with mode: 0644]
src/generic/richtooltip.cpp [new file with mode: 0644]
src/msw/richtooltip.cpp [new file with mode: 0644]

index fb031f6d7cb4b328222b6655ab6b6062f374e9de..e9174f95fbbea21d05b65feefd7a72a885b4c610 100644 (file)
@@ -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
 
index 1e73c713048c83286d4e901f433f126976c2c1c9..ad1aeda0e730523681274f546ef34462770e0a8c 100644 (file)
@@ -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
 </set>
index d5711717d8f44c0e47dc6a373c4fd3bd450767b6..47b46c3e3c498c668e7a37f18c7be365f79489fa 100644 (file)
@@ -2263,6 +2263,7 @@ ____ADVANCED_SRC_FILENAMES_OBJECTS =  \
        $(OBJS)\monodll_gridcmn.obj \\r
        $(OBJS)\monodll_hyperlnkcmn.obj \\r
        $(OBJS)\monodll_odcombocmn.obj \\r
+       $(OBJS)\monodll_richtooltipcmn.obj \
        $(OBJS)\monodll_aboutdlgg.obj \\r
        $(OBJS)\monodll_bannerwindow.obj \\r
        $(OBJS)\monodll_bmpcboxg.obj \\r
@@ -2281,6 +2282,7 @@ ____ADVANCED_SRC_FILENAMES_OBJECTS =  \
        $(OBJS)\monodll_notifmsgg.obj \\r
        $(OBJS)\monodll_odcombo.obj \\r
        $(OBJS)\monodll_propdlg.obj \\r
+       $(OBJS)\monodll_generic_richtooltip.obj \
        $(OBJS)\monodll_sashwin.obj \\r
        $(OBJS)\monodll_splash.obj \\r
        $(OBJS)\monodll_generic_timectrl.obj \
@@ -2290,6 +2292,7 @@ ____ADVANCED_SRC_FILENAMES_OBJECTS =  \
        $(OBJS)\monodll_taskbarcmn.obj \\r
        $(OBJS)\monodll_aboutdlg.obj \\r
        $(OBJS)\monodll_notifmsg.obj \\r
+       $(OBJS)\monodll_msw_richtooltip.obj \
        $(OBJS)\monodll_sound.obj \\r
        $(OBJS)\monodll_taskbar.obj \\r
        $(OBJS)\monodll_joystick.obj \\r
@@ -2312,6 +2315,7 @@ ____ADVANCED_SRC_FILENAMES_OBJECTS =  \
        $(OBJS)\monodll_gridcmn.obj \\r
        $(OBJS)\monodll_hyperlnkcmn.obj \\r
        $(OBJS)\monodll_odcombocmn.obj \\r
+       $(OBJS)\monodll_richtooltipcmn.obj \
        $(OBJS)\monodll_aboutdlgg.obj \\r
        $(OBJS)\monodll_bannerwindow.obj \\r
        $(OBJS)\monodll_bmpcboxg.obj \\r
@@ -2330,6 +2334,7 @@ ____ADVANCED_SRC_FILENAMES_OBJECTS =  \
        $(OBJS)\monodll_notifmsgg.obj \\r
        $(OBJS)\monodll_odcombo.obj \\r
        $(OBJS)\monodll_propdlg.obj \\r
+       $(OBJS)\monodll_generic_richtooltip.obj \
        $(OBJS)\monodll_sashwin.obj \\r
        $(OBJS)\monodll_splash.obj \\r
        $(OBJS)\monodll_generic_timectrl.obj \
@@ -2339,6 +2344,7 @@ ____ADVANCED_SRC_FILENAMES_OBJECTS =  \
        $(OBJS)\monodll_taskbarcmn.obj \\r
        $(OBJS)\monodll_aboutdlg.obj \\r
        $(OBJS)\monodll_notifmsg.obj \\r
+       $(OBJS)\monodll_msw_richtooltip.obj \
        $(OBJS)\monodll_sound.obj \\r
        $(OBJS)\monodll_taskbar.obj \\r
        $(OBJS)\monodll_joystick.obj \\r
@@ -3040,6 +3046,7 @@ ____ADVANCED_SRC_FILENAMES_1_OBJECTS =  \
        $(OBJS)\monolib_gridcmn.obj \\r
        $(OBJS)\monolib_hyperlnkcmn.obj \\r
        $(OBJS)\monolib_odcombocmn.obj \\r
+       $(OBJS)\monolib_richtooltipcmn.obj \
        $(OBJS)\monolib_aboutdlgg.obj \\r
        $(OBJS)\monolib_bannerwindow.obj \\r
        $(OBJS)\monolib_bmpcboxg.obj \\r
@@ -3058,6 +3065,7 @@ ____ADVANCED_SRC_FILENAMES_1_OBJECTS =  \
        $(OBJS)\monolib_notifmsgg.obj \\r
        $(OBJS)\monolib_odcombo.obj \\r
        $(OBJS)\monolib_propdlg.obj \\r
+       $(OBJS)\monolib_generic_richtooltip.obj \
        $(OBJS)\monolib_sashwin.obj \\r
        $(OBJS)\monolib_splash.obj \\r
        $(OBJS)\monolib_generic_timectrl.obj \
@@ -3067,6 +3075,7 @@ ____ADVANCED_SRC_FILENAMES_1_OBJECTS =  \
        $(OBJS)\monolib_taskbarcmn.obj \\r
        $(OBJS)\monolib_aboutdlg.obj \\r
        $(OBJS)\monolib_notifmsg.obj \\r
+       $(OBJS)\monolib_msw_richtooltip.obj \
        $(OBJS)\monolib_sound.obj \\r
        $(OBJS)\monolib_taskbar.obj \\r
        $(OBJS)\monolib_joystick.obj \\r
@@ -3089,6 +3098,7 @@ ____ADVANCED_SRC_FILENAMES_1_OBJECTS =  \
        $(OBJS)\monolib_gridcmn.obj \\r
        $(OBJS)\monolib_hyperlnkcmn.obj \\r
        $(OBJS)\monolib_odcombocmn.obj \\r
+       $(OBJS)\monolib_richtooltipcmn.obj \
        $(OBJS)\monolib_aboutdlgg.obj \\r
        $(OBJS)\monolib_bannerwindow.obj \\r
        $(OBJS)\monolib_bmpcboxg.obj \\r
@@ -3107,6 +3117,7 @@ ____ADVANCED_SRC_FILENAMES_1_OBJECTS =  \
        $(OBJS)\monolib_notifmsgg.obj \\r
        $(OBJS)\monolib_odcombo.obj \\r
        $(OBJS)\monolib_propdlg.obj \\r
+       $(OBJS)\monolib_generic_richtooltip.obj \
        $(OBJS)\monolib_sashwin.obj \\r
        $(OBJS)\monolib_splash.obj \\r
        $(OBJS)\monolib_generic_timectrl.obj \
@@ -3116,6 +3127,7 @@ ____ADVANCED_SRC_FILENAMES_1_OBJECTS =  \
        $(OBJS)\monolib_taskbarcmn.obj \\r
        $(OBJS)\monolib_aboutdlg.obj \\r
        $(OBJS)\monolib_notifmsg.obj \\r
+       $(OBJS)\monolib_msw_richtooltip.obj \
        $(OBJS)\monolib_sound.obj \\r
        $(OBJS)\monolib_taskbar.obj \\r
        $(OBJS)\monolib_joystick.obj \\r
@@ -4252,6 +4264,7 @@ ____ADVANCED_SRC_FILENAMES_2_OBJECTS =  \
        $(OBJS)\advdll_gridcmn.obj \\r
        $(OBJS)\advdll_hyperlnkcmn.obj \\r
        $(OBJS)\advdll_odcombocmn.obj \\r
+       $(OBJS)\advdll_richtooltipcmn.obj \
        $(OBJS)\advdll_aboutdlgg.obj \\r
        $(OBJS)\advdll_bannerwindow.obj \\r
        $(OBJS)\advdll_bmpcboxg.obj \\r
@@ -4270,6 +4283,7 @@ ____ADVANCED_SRC_FILENAMES_2_OBJECTS =  \
        $(OBJS)\advdll_notifmsgg.obj \\r
        $(OBJS)\advdll_odcombo.obj \\r
        $(OBJS)\advdll_propdlg.obj \\r
+       $(OBJS)\advdll_generic_richtooltip.obj \
        $(OBJS)\advdll_sashwin.obj \\r
        $(OBJS)\advdll_splash.obj \\r
        $(OBJS)\advdll_generic_timectrl.obj \
@@ -4279,6 +4293,7 @@ ____ADVANCED_SRC_FILENAMES_2_OBJECTS =  \
        $(OBJS)\advdll_taskbarcmn.obj \\r
        $(OBJS)\advdll_aboutdlg.obj \\r
        $(OBJS)\advdll_notifmsg.obj \\r
+       $(OBJS)\advdll_msw_richtooltip.obj \
        $(OBJS)\advdll_sound.obj \\r
        $(OBJS)\advdll_taskbar.obj \\r
        $(OBJS)\advdll_joystick.obj \\r
@@ -4301,6 +4316,7 @@ ____ADVANCED_SRC_FILENAMES_2_OBJECTS =  \
        $(OBJS)\advdll_gridcmn.obj \\r
        $(OBJS)\advdll_hyperlnkcmn.obj \\r
        $(OBJS)\advdll_odcombocmn.obj \\r
+       $(OBJS)\advdll_richtooltipcmn.obj \
        $(OBJS)\advdll_aboutdlgg.obj \\r
        $(OBJS)\advdll_bannerwindow.obj \\r
        $(OBJS)\advdll_bmpcboxg.obj \\r
@@ -4319,6 +4335,7 @@ ____ADVANCED_SRC_FILENAMES_2_OBJECTS =  \
        $(OBJS)\advdll_notifmsgg.obj \\r
        $(OBJS)\advdll_odcombo.obj \\r
        $(OBJS)\advdll_propdlg.obj \\r
+       $(OBJS)\advdll_generic_richtooltip.obj \
        $(OBJS)\advdll_sashwin.obj \\r
        $(OBJS)\advdll_splash.obj \\r
        $(OBJS)\advdll_generic_timectrl.obj \
@@ -4328,6 +4345,7 @@ ____ADVANCED_SRC_FILENAMES_2_OBJECTS =  \
        $(OBJS)\advdll_taskbarcmn.obj \\r
        $(OBJS)\advdll_aboutdlg.obj \\r
        $(OBJS)\advdll_notifmsg.obj \\r
+       $(OBJS)\advdll_msw_richtooltip.obj \
        $(OBJS)\advdll_sound.obj \\r
        $(OBJS)\advdll_taskbar.obj \\r
        $(OBJS)\advdll_joystick.obj \\r
@@ -4346,6 +4364,7 @@ ____ADVANCED_SRC_FILENAMES_3_OBJECTS =  \
        $(OBJS)\advlib_gridcmn.obj \\r
        $(OBJS)\advlib_hyperlnkcmn.obj \\r
        $(OBJS)\advlib_odcombocmn.obj \\r
+       $(OBJS)\advlib_richtooltipcmn.obj \
        $(OBJS)\advlib_aboutdlgg.obj \\r
        $(OBJS)\advlib_bannerwindow.obj \\r
        $(OBJS)\advlib_bmpcboxg.obj \\r
@@ -4364,6 +4383,7 @@ ____ADVANCED_SRC_FILENAMES_3_OBJECTS =  \
        $(OBJS)\advlib_notifmsgg.obj \\r
        $(OBJS)\advlib_odcombo.obj \\r
        $(OBJS)\advlib_propdlg.obj \\r
+       $(OBJS)\advlib_generic_richtooltip.obj \
        $(OBJS)\advlib_sashwin.obj \\r
        $(OBJS)\advlib_splash.obj \\r
        $(OBJS)\advlib_generic_timectrl.obj \
@@ -4373,6 +4393,7 @@ ____ADVANCED_SRC_FILENAMES_3_OBJECTS =  \
        $(OBJS)\advlib_taskbarcmn.obj \\r
        $(OBJS)\advlib_aboutdlg.obj \\r
        $(OBJS)\advlib_notifmsg.obj \\r
+       $(OBJS)\advlib_msw_richtooltip.obj \
        $(OBJS)\advlib_sound.obj \\r
        $(OBJS)\advlib_taskbar.obj \\r
        $(OBJS)\advlib_joystick.obj \\r
@@ -4395,6 +4416,7 @@ ____ADVANCED_SRC_FILENAMES_3_OBJECTS =  \
        $(OBJS)\advlib_gridcmn.obj \\r
        $(OBJS)\advlib_hyperlnkcmn.obj \\r
        $(OBJS)\advlib_odcombocmn.obj \\r
+       $(OBJS)\advlib_richtooltipcmn.obj \
        $(OBJS)\advlib_aboutdlgg.obj \\r
        $(OBJS)\advlib_bannerwindow.obj \\r
        $(OBJS)\advlib_bmpcboxg.obj \\r
@@ -4413,6 +4435,7 @@ ____ADVANCED_SRC_FILENAMES_3_OBJECTS =  \
        $(OBJS)\advlib_notifmsgg.obj \\r
        $(OBJS)\advlib_odcombo.obj \\r
        $(OBJS)\advlib_propdlg.obj \\r
+       $(OBJS)\advlib_generic_richtooltip.obj \
        $(OBJS)\advlib_sashwin.obj \\r
        $(OBJS)\advlib_splash.obj \\r
        $(OBJS)\advlib_generic_timectrl.obj \
@@ -4422,6 +4445,7 @@ ____ADVANCED_SRC_FILENAMES_3_OBJECTS =  \
        $(OBJS)\advlib_taskbarcmn.obj \\r
        $(OBJS)\advlib_aboutdlg.obj \\r
        $(OBJS)\advlib_notifmsg.obj \\r
+       $(OBJS)\advlib_msw_richtooltip.obj \
        $(OBJS)\advlib_sound.obj \\r
        $(OBJS)\advlib_taskbar.obj \\r
        $(OBJS)\advlib_joystick.obj \\r
@@ -8251,6 +8275,11 @@ $(OBJS)\monodll_odcombocmn.obj: ..\..\src\common\odcombocmn.cpp
 !endif\r
 \r
 !if "$(USE_GUI)" == "1"\r
+$(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\r
        $(CXX) -q -c -P -o$@ $(MONODLL_CXXFLAGS) ..\..\src\generic\aboutdlgg.cpp\r
 !endif\r
@@ -8341,6 +8370,11 @@ $(OBJS)\monodll_propdlg.obj: ..\..\src\generic\propdlg.cpp
 !endif\r
 \r
 !if "$(USE_GUI)" == "1"\r
+$(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\r
        $(CXX) -q -c -P -o$@ $(MONODLL_CXXFLAGS) ..\..\src\generic\sashwin.cpp\r
 !endif\r
@@ -8386,6 +8420,11 @@ $(OBJS)\monodll_notifmsg.obj: ..\..\src\msw\notifmsg.cpp
 !endif\r
 \r
 !if "$(USE_GUI)" == "1"\r
+$(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\r
        $(CXX) -q -c -P -o$@ $(MONODLL_CXXFLAGS) ..\..\src\msw\sound.cpp\r
 !endif\r
@@ -10638,6 +10677,11 @@ $(OBJS)\monolib_odcombocmn.obj: ..\..\src\common\odcombocmn.cpp
 !endif\r
 \r
 !if "$(USE_GUI)" == "1"\r
+$(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\r
        $(CXX) -q -c -P -o$@ $(MONOLIB_CXXFLAGS) ..\..\src\generic\aboutdlgg.cpp\r
 !endif\r
@@ -10728,6 +10772,11 @@ $(OBJS)\monolib_propdlg.obj: ..\..\src\generic\propdlg.cpp
 !endif\r
 \r
 !if "$(USE_GUI)" == "1"\r
+$(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\r
        $(CXX) -q -c -P -o$@ $(MONOLIB_CXXFLAGS) ..\..\src\generic\sashwin.cpp\r
 !endif\r
@@ -10773,6 +10822,11 @@ $(OBJS)\monolib_notifmsg.obj: ..\..\src\msw\notifmsg.cpp
 !endif\r
 \r
 !if "$(USE_GUI)" == "1"\r
+$(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\r
        $(CXX) -q -c -P -o$@ $(MONOLIB_CXXFLAGS) ..\..\src\msw\sound.cpp\r
 !endif\r
@@ -14418,6 +14472,9 @@ $(OBJS)\advdll_hyperlnkcmn.obj: ..\..\src\common\hyperlnkcmn.cpp
 $(OBJS)\advdll_odcombocmn.obj: ..\..\src\common\odcombocmn.cpp\r
        $(CXX) -q -c -P -o$@ $(ADVDLL_CXXFLAGS) ..\..\src\common\odcombocmn.cpp\r
 \r
+$(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\r
        $(CXX) -q -c -P -o$@ $(ADVDLL_CXXFLAGS) ..\..\src\generic\aboutdlgg.cpp\r
 \r
@@ -14472,6 +14529,9 @@ $(OBJS)\advdll_odcombo.obj: ..\..\src\generic\odcombo.cpp
 $(OBJS)\advdll_propdlg.obj: ..\..\src\generic\propdlg.cpp\r
        $(CXX) -q -c -P -o$@ $(ADVDLL_CXXFLAGS) ..\..\src\generic\propdlg.cpp\r
 \r
+$(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\r
        $(CXX) -q -c -P -o$@ $(ADVDLL_CXXFLAGS) ..\..\src\generic\sashwin.cpp\r
 \r
@@ -14499,6 +14559,9 @@ $(OBJS)\advdll_aboutdlg.obj: ..\..\src\msw\aboutdlg.cpp
 $(OBJS)\advdll_notifmsg.obj: ..\..\src\msw\notifmsg.cpp\r
        $(CXX) -q -c -P -o$@ $(ADVDLL_CXXFLAGS) ..\..\src\msw\notifmsg.cpp\r
 \r
+$(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\r
        $(CXX) -q -c -P -o$@ $(ADVDLL_CXXFLAGS) ..\..\src\msw\sound.cpp\r
 \r
@@ -14559,6 +14622,9 @@ $(OBJS)\advlib_hyperlnkcmn.obj: ..\..\src\common\hyperlnkcmn.cpp
 $(OBJS)\advlib_odcombocmn.obj: ..\..\src\common\odcombocmn.cpp\r
        $(CXX) -q -c -P -o$@ $(ADVLIB_CXXFLAGS) ..\..\src\common\odcombocmn.cpp\r
 \r
+$(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\r
        $(CXX) -q -c -P -o$@ $(ADVLIB_CXXFLAGS) ..\..\src\generic\aboutdlgg.cpp\r
 \r
@@ -14613,6 +14679,9 @@ $(OBJS)\advlib_odcombo.obj: ..\..\src\generic\odcombo.cpp
 $(OBJS)\advlib_propdlg.obj: ..\..\src\generic\propdlg.cpp\r
        $(CXX) -q -c -P -o$@ $(ADVLIB_CXXFLAGS) ..\..\src\generic\propdlg.cpp\r
 \r
+$(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\r
        $(CXX) -q -c -P -o$@ $(ADVLIB_CXXFLAGS) ..\..\src\generic\sashwin.cpp\r
 \r
@@ -14640,6 +14709,9 @@ $(OBJS)\advlib_aboutdlg.obj: ..\..\src\msw\aboutdlg.cpp
 $(OBJS)\advlib_notifmsg.obj: ..\..\src\msw\notifmsg.cpp\r
        $(CXX) -q -c -P -o$@ $(ADVLIB_CXXFLAGS) ..\..\src\msw\notifmsg.cpp\r
 \r
+$(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\r
        $(CXX) -q -c -P -o$@ $(ADVLIB_CXXFLAGS) ..\..\src\msw\sound.cpp\r
 \r
index 7ecbd48b78b82ccbcbc23c4fd4561ee15d1fdbcf..1d29168a4cdaf876ed5127d0363a82fbb571ce0f 100644 (file)
@@ -2278,6 +2278,7 @@ ____ADVANCED_SRC_FILENAMES_OBJECTS =  \
        $(OBJS)\monodll_gridcmn.o \\r
        $(OBJS)\monodll_hyperlnkcmn.o \\r
        $(OBJS)\monodll_odcombocmn.o \\r
+       $(OBJS)\monodll_richtooltipcmn.o \
        $(OBJS)\monodll_aboutdlgg.o \\r
        $(OBJS)\monodll_bannerwindow.o \\r
        $(OBJS)\monodll_bmpcboxg.o \\r
@@ -2296,6 +2297,7 @@ ____ADVANCED_SRC_FILENAMES_OBJECTS =  \
        $(OBJS)\monodll_notifmsgg.o \\r
        $(OBJS)\monodll_odcombo.o \\r
        $(OBJS)\monodll_propdlg.o \\r
+       $(OBJS)\monodll_generic_richtooltip.o \
        $(OBJS)\monodll_sashwin.o \\r
        $(OBJS)\monodll_splash.o \\r
        $(OBJS)\monodll_generic_timectrl.o \
@@ -2305,6 +2307,7 @@ ____ADVANCED_SRC_FILENAMES_OBJECTS =  \
        $(OBJS)\monodll_taskbarcmn.o \\r
        $(OBJS)\monodll_aboutdlg.o \\r
        $(OBJS)\monodll_notifmsg.o \\r
+       $(OBJS)\monodll_msw_richtooltip.o \
        $(OBJS)\monodll_sound.o \\r
        $(OBJS)\monodll_taskbar.o \\r
        $(OBJS)\monodll_joystick.o \\r
@@ -2327,6 +2330,7 @@ ____ADVANCED_SRC_FILENAMES_OBJECTS =  \
        $(OBJS)\monodll_gridcmn.o \\r
        $(OBJS)\monodll_hyperlnkcmn.o \\r
        $(OBJS)\monodll_odcombocmn.o \\r
+       $(OBJS)\monodll_richtooltipcmn.o \
        $(OBJS)\monodll_aboutdlgg.o \\r
        $(OBJS)\monodll_bannerwindow.o \\r
        $(OBJS)\monodll_bmpcboxg.o \\r
@@ -2345,6 +2349,7 @@ ____ADVANCED_SRC_FILENAMES_OBJECTS =  \
        $(OBJS)\monodll_notifmsgg.o \\r
        $(OBJS)\monodll_odcombo.o \\r
        $(OBJS)\monodll_propdlg.o \\r
+       $(OBJS)\monodll_generic_richtooltip.o \
        $(OBJS)\monodll_sashwin.o \\r
        $(OBJS)\monodll_splash.o \\r
        $(OBJS)\monodll_generic_timectrl.o \
@@ -2354,6 +2359,7 @@ ____ADVANCED_SRC_FILENAMES_OBJECTS =  \
        $(OBJS)\monodll_taskbarcmn.o \\r
        $(OBJS)\monodll_aboutdlg.o \\r
        $(OBJS)\monodll_notifmsg.o \\r
+       $(OBJS)\monodll_msw_richtooltip.o \
        $(OBJS)\monodll_sound.o \\r
        $(OBJS)\monodll_taskbar.o \\r
        $(OBJS)\monodll_joystick.o \\r
@@ -3061,6 +3067,7 @@ ____ADVANCED_SRC_FILENAMES_1_OBJECTS =  \
        $(OBJS)\monolib_gridcmn.o \\r
        $(OBJS)\monolib_hyperlnkcmn.o \\r
        $(OBJS)\monolib_odcombocmn.o \\r
+       $(OBJS)\monolib_richtooltipcmn.o \
        $(OBJS)\monolib_aboutdlgg.o \\r
        $(OBJS)\monolib_bannerwindow.o \\r
        $(OBJS)\monolib_bmpcboxg.o \\r
@@ -3079,6 +3086,7 @@ ____ADVANCED_SRC_FILENAMES_1_OBJECTS =  \
        $(OBJS)\monolib_notifmsgg.o \\r
        $(OBJS)\monolib_odcombo.o \\r
        $(OBJS)\monolib_propdlg.o \\r
+       $(OBJS)\monolib_generic_richtooltip.o \
        $(OBJS)\monolib_sashwin.o \\r
        $(OBJS)\monolib_splash.o \\r
        $(OBJS)\monolib_generic_timectrl.o \
@@ -3088,6 +3096,7 @@ ____ADVANCED_SRC_FILENAMES_1_OBJECTS =  \
        $(OBJS)\monolib_taskbarcmn.o \\r
        $(OBJS)\monolib_aboutdlg.o \\r
        $(OBJS)\monolib_notifmsg.o \\r
+       $(OBJS)\monolib_msw_richtooltip.o \
        $(OBJS)\monolib_sound.o \\r
        $(OBJS)\monolib_taskbar.o \\r
        $(OBJS)\monolib_joystick.o \\r
@@ -3110,6 +3119,7 @@ ____ADVANCED_SRC_FILENAMES_1_OBJECTS =  \
        $(OBJS)\monolib_gridcmn.o \\r
        $(OBJS)\monolib_hyperlnkcmn.o \\r
        $(OBJS)\monolib_odcombocmn.o \\r
+       $(OBJS)\monolib_richtooltipcmn.o \
        $(OBJS)\monolib_aboutdlgg.o \\r
        $(OBJS)\monolib_bannerwindow.o \\r
        $(OBJS)\monolib_bmpcboxg.o \\r
@@ -3128,6 +3138,7 @@ ____ADVANCED_SRC_FILENAMES_1_OBJECTS =  \
        $(OBJS)\monolib_notifmsgg.o \\r
        $(OBJS)\monolib_odcombo.o \\r
        $(OBJS)\monolib_propdlg.o \\r
+       $(OBJS)\monolib_generic_richtooltip.o \
        $(OBJS)\monolib_sashwin.o \\r
        $(OBJS)\monolib_splash.o \\r
        $(OBJS)\monolib_generic_timectrl.o \
@@ -3137,6 +3148,7 @@ ____ADVANCED_SRC_FILENAMES_1_OBJECTS =  \
        $(OBJS)\monolib_taskbarcmn.o \\r
        $(OBJS)\monolib_aboutdlg.o \\r
        $(OBJS)\monolib_notifmsg.o \\r
+       $(OBJS)\monolib_msw_richtooltip.o \
        $(OBJS)\monolib_sound.o \\r
        $(OBJS)\monolib_taskbar.o \\r
        $(OBJS)\monolib_joystick.o \\r
@@ -4301,6 +4313,7 @@ ____ADVANCED_SRC_FILENAMES_2_OBJECTS =  \
        $(OBJS)\advdll_gridcmn.o \\r
        $(OBJS)\advdll_hyperlnkcmn.o \\r
        $(OBJS)\advdll_odcombocmn.o \\r
+       $(OBJS)\advdll_richtooltipcmn.o \
        $(OBJS)\advdll_aboutdlgg.o \\r
        $(OBJS)\advdll_bannerwindow.o \\r
        $(OBJS)\advdll_bmpcboxg.o \\r
@@ -4319,6 +4332,7 @@ ____ADVANCED_SRC_FILENAMES_2_OBJECTS =  \
        $(OBJS)\advdll_notifmsgg.o \\r
        $(OBJS)\advdll_odcombo.o \\r
        $(OBJS)\advdll_propdlg.o \\r
+       $(OBJS)\advdll_generic_richtooltip.o \
        $(OBJS)\advdll_sashwin.o \\r
        $(OBJS)\advdll_splash.o \\r
        $(OBJS)\advdll_generic_timectrl.o \
@@ -4328,6 +4342,7 @@ ____ADVANCED_SRC_FILENAMES_2_OBJECTS =  \
        $(OBJS)\advdll_taskbarcmn.o \\r
        $(OBJS)\advdll_aboutdlg.o \\r
        $(OBJS)\advdll_notifmsg.o \\r
+       $(OBJS)\advdll_msw_richtooltip.o \
        $(OBJS)\advdll_sound.o \\r
        $(OBJS)\advdll_taskbar.o \\r
        $(OBJS)\advdll_joystick.o \\r
@@ -4350,6 +4365,7 @@ ____ADVANCED_SRC_FILENAMES_2_OBJECTS =  \
        $(OBJS)\advdll_gridcmn.o \\r
        $(OBJS)\advdll_hyperlnkcmn.o \\r
        $(OBJS)\advdll_odcombocmn.o \\r
+       $(OBJS)\advdll_richtooltipcmn.o \
        $(OBJS)\advdll_aboutdlgg.o \\r
        $(OBJS)\advdll_bannerwindow.o \\r
        $(OBJS)\advdll_bmpcboxg.o \\r
@@ -4368,6 +4384,7 @@ ____ADVANCED_SRC_FILENAMES_2_OBJECTS =  \
        $(OBJS)\advdll_notifmsgg.o \\r
        $(OBJS)\advdll_odcombo.o \\r
        $(OBJS)\advdll_propdlg.o \\r
+       $(OBJS)\advdll_generic_richtooltip.o \
        $(OBJS)\advdll_sashwin.o \\r
        $(OBJS)\advdll_splash.o \\r
        $(OBJS)\advdll_generic_timectrl.o \
@@ -4377,6 +4394,7 @@ ____ADVANCED_SRC_FILENAMES_2_OBJECTS =  \
        $(OBJS)\advdll_taskbarcmn.o \\r
        $(OBJS)\advdll_aboutdlg.o \\r
        $(OBJS)\advdll_notifmsg.o \\r
+       $(OBJS)\advdll_msw_richtooltip.o \
        $(OBJS)\advdll_sound.o \\r
        $(OBJS)\advdll_taskbar.o \\r
        $(OBJS)\advdll_joystick.o \\r
@@ -4399,6 +4417,7 @@ ____ADVANCED_SRC_FILENAMES_3_OBJECTS =  \
        $(OBJS)\advlib_gridcmn.o \\r
        $(OBJS)\advlib_hyperlnkcmn.o \\r
        $(OBJS)\advlib_odcombocmn.o \\r
+       $(OBJS)\advlib_richtooltipcmn.o \
        $(OBJS)\advlib_aboutdlgg.o \\r
        $(OBJS)\advlib_bannerwindow.o \\r
        $(OBJS)\advlib_bmpcboxg.o \\r
@@ -4417,6 +4436,7 @@ ____ADVANCED_SRC_FILENAMES_3_OBJECTS =  \
        $(OBJS)\advlib_notifmsgg.o \\r
        $(OBJS)\advlib_odcombo.o \\r
        $(OBJS)\advlib_propdlg.o \\r
+       $(OBJS)\advlib_generic_richtooltip.o \
        $(OBJS)\advlib_sashwin.o \\r
        $(OBJS)\advlib_splash.o \\r
        $(OBJS)\advlib_generic_timectrl.o \
@@ -4426,6 +4446,7 @@ ____ADVANCED_SRC_FILENAMES_3_OBJECTS =  \
        $(OBJS)\advlib_taskbarcmn.o \\r
        $(OBJS)\advlib_aboutdlg.o \\r
        $(OBJS)\advlib_notifmsg.o \\r
+       $(OBJS)\advlib_msw_richtooltip.o \
        $(OBJS)\advlib_sound.o \\r
        $(OBJS)\advlib_taskbar.o \\r
        $(OBJS)\advlib_joystick.o \\r
@@ -4448,6 +4469,7 @@ ____ADVANCED_SRC_FILENAMES_3_OBJECTS =  \
        $(OBJS)\advlib_gridcmn.o \\r
        $(OBJS)\advlib_hyperlnkcmn.o \\r
        $(OBJS)\advlib_odcombocmn.o \\r
+       $(OBJS)\advlib_richtooltipcmn.o \
        $(OBJS)\advlib_aboutdlgg.o \\r
        $(OBJS)\advlib_bannerwindow.o \\r
        $(OBJS)\advlib_bmpcboxg.o \\r
@@ -4466,6 +4488,7 @@ ____ADVANCED_SRC_FILENAMES_3_OBJECTS =  \
        $(OBJS)\advlib_notifmsgg.o \\r
        $(OBJS)\advlib_odcombo.o \\r
        $(OBJS)\advlib_propdlg.o \\r
+       $(OBJS)\advlib_generic_richtooltip.o \
        $(OBJS)\advlib_sashwin.o \\r
        $(OBJS)\advlib_splash.o \\r
        $(OBJS)\advlib_generic_timectrl.o \
@@ -4475,6 +4498,7 @@ ____ADVANCED_SRC_FILENAMES_3_OBJECTS =  \
        $(OBJS)\advlib_taskbarcmn.o \\r
        $(OBJS)\advlib_aboutdlg.o \\r
        $(OBJS)\advlib_notifmsg.o \\r
+       $(OBJS)\advlib_msw_richtooltip.o \
        $(OBJS)\advlib_sound.o \\r
        $(OBJS)\advlib_taskbar.o \\r
        $(OBJS)\advlib_joystick.o \\r
@@ -8419,6 +8443,11 @@ $(OBJS)\monodll_odcombocmn.o: ../../src/common/odcombocmn.cpp
 endif\r
 \r
 ifeq ($(USE_GUI),1)\r
+$(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\r
        $(CXX) -c -o $@ $(MONODLL_CXXFLAGS) $(CPPDEPS) $<\r
 endif\r
@@ -8509,6 +8538,11 @@ $(OBJS)\monodll_propdlg.o: ../../src/generic/propdlg.cpp
 endif\r
 \r
 ifeq ($(USE_GUI),1)\r
+$(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\r
        $(CXX) -c -o $@ $(MONODLL_CXXFLAGS) $(CPPDEPS) $<\r
 endif\r
@@ -8554,6 +8588,11 @@ $(OBJS)\monodll_notifmsg.o: ../../src/msw/notifmsg.cpp
 endif\r
 \r
 ifeq ($(USE_GUI),1)\r
+$(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\r
        $(CXX) -c -o $@ $(MONODLL_CXXFLAGS) $(CPPDEPS) $<\r
 endif\r
@@ -10806,6 +10845,11 @@ $(OBJS)\monolib_odcombocmn.o: ../../src/common/odcombocmn.cpp
 endif\r
 \r
 ifeq ($(USE_GUI),1)\r
+$(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\r
        $(CXX) -c -o $@ $(MONOLIB_CXXFLAGS) $(CPPDEPS) $<\r
 endif\r
@@ -10896,6 +10940,11 @@ $(OBJS)\monolib_propdlg.o: ../../src/generic/propdlg.cpp
 endif\r
 \r
 ifeq ($(USE_GUI),1)\r
+$(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\r
        $(CXX) -c -o $@ $(MONOLIB_CXXFLAGS) $(CPPDEPS) $<\r
 endif\r
@@ -10941,6 +10990,11 @@ $(OBJS)\monolib_notifmsg.o: ../../src/msw/notifmsg.cpp
 endif\r
 \r
 ifeq ($(USE_GUI),1)\r
+$(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\r
        $(CXX) -c -o $@ $(MONOLIB_CXXFLAGS) $(CPPDEPS) $<\r
 endif\r
@@ -14586,6 +14640,9 @@ $(OBJS)\advdll_hyperlnkcmn.o: ../../src/common/hyperlnkcmn.cpp
 $(OBJS)\advdll_odcombocmn.o: ../../src/common/odcombocmn.cpp\r
        $(CXX) -c -o $@ $(ADVDLL_CXXFLAGS) $(CPPDEPS) $<\r
 \r
+$(OBJS)\advdll_richtooltipcmn.o: ../../src/common/richtooltipcmn.cpp
+       $(CXX) -c -o $@ $(ADVDLL_CXXFLAGS) $(CPPDEPS) $<
+
 $(OBJS)\advdll_aboutdlgg.o: ../../src/generic/aboutdlgg.cpp\r
        $(CXX) -c -o $@ $(ADVDLL_CXXFLAGS) $(CPPDEPS) $<\r
 \r
@@ -14640,6 +14697,9 @@ $(OBJS)\advdll_odcombo.o: ../../src/generic/odcombo.cpp
 $(OBJS)\advdll_propdlg.o: ../../src/generic/propdlg.cpp\r
        $(CXX) -c -o $@ $(ADVDLL_CXXFLAGS) $(CPPDEPS) $<\r
 \r
+$(OBJS)\advdll_generic_richtooltip.o: ../../src/generic/richtooltip.cpp
+       $(CXX) -c -o $@ $(ADVDLL_CXXFLAGS) $(CPPDEPS) $<
+
 $(OBJS)\advdll_sashwin.o: ../../src/generic/sashwin.cpp\r
        $(CXX) -c -o $@ $(ADVDLL_CXXFLAGS) $(CPPDEPS) $<\r
 \r
@@ -14667,6 +14727,9 @@ $(OBJS)\advdll_aboutdlg.o: ../../src/msw/aboutdlg.cpp
 $(OBJS)\advdll_notifmsg.o: ../../src/msw/notifmsg.cpp\r
        $(CXX) -c -o $@ $(ADVDLL_CXXFLAGS) $(CPPDEPS) $<\r
 \r
+$(OBJS)\advdll_msw_richtooltip.o: ../../src/msw/richtooltip.cpp
+       $(CXX) -c -o $@ $(ADVDLL_CXXFLAGS) $(CPPDEPS) $<
+
 $(OBJS)\advdll_sound.o: ../../src/msw/sound.cpp\r
        $(CXX) -c -o $@ $(ADVDLL_CXXFLAGS) $(CPPDEPS) $<\r
 \r
@@ -14727,6 +14790,9 @@ $(OBJS)\advlib_hyperlnkcmn.o: ../../src/common/hyperlnkcmn.cpp
 $(OBJS)\advlib_odcombocmn.o: ../../src/common/odcombocmn.cpp\r
        $(CXX) -c -o $@ $(ADVLIB_CXXFLAGS) $(CPPDEPS) $<\r
 \r
+$(OBJS)\advlib_richtooltipcmn.o: ../../src/common/richtooltipcmn.cpp
+       $(CXX) -c -o $@ $(ADVLIB_CXXFLAGS) $(CPPDEPS) $<
+
 $(OBJS)\advlib_aboutdlgg.o: ../../src/generic/aboutdlgg.cpp\r
        $(CXX) -c -o $@ $(ADVLIB_CXXFLAGS) $(CPPDEPS) $<\r
 \r
@@ -14781,6 +14847,9 @@ $(OBJS)\advlib_odcombo.o: ../../src/generic/odcombo.cpp
 $(OBJS)\advlib_propdlg.o: ../../src/generic/propdlg.cpp\r
        $(CXX) -c -o $@ $(ADVLIB_CXXFLAGS) $(CPPDEPS) $<\r
 \r
+$(OBJS)\advlib_generic_richtooltip.o: ../../src/generic/richtooltip.cpp
+       $(CXX) -c -o $@ $(ADVLIB_CXXFLAGS) $(CPPDEPS) $<
+
 $(OBJS)\advlib_sashwin.o: ../../src/generic/sashwin.cpp\r
        $(CXX) -c -o $@ $(ADVLIB_CXXFLAGS) $(CPPDEPS) $<\r
 \r
@@ -14808,6 +14877,9 @@ $(OBJS)\advlib_aboutdlg.o: ../../src/msw/aboutdlg.cpp
 $(OBJS)\advlib_notifmsg.o: ../../src/msw/notifmsg.cpp\r
        $(CXX) -c -o $@ $(ADVLIB_CXXFLAGS) $(CPPDEPS) $<\r
 \r
+$(OBJS)\advlib_msw_richtooltip.o: ../../src/msw/richtooltip.cpp
+       $(CXX) -c -o $@ $(ADVLIB_CXXFLAGS) $(CPPDEPS) $<
+
 $(OBJS)\advlib_sound.o: ../../src/msw/sound.cpp\r
        $(CXX) -c -o $@ $(ADVLIB_CXXFLAGS) $(CPPDEPS) $<\r
 \r
index 51871e75ab66ad16da27972105ca462ddc09470a..42bae81a2492b15e5f0ad3730b0ffbd6f28490a7 100644 (file)
@@ -2477,6 +2477,7 @@ ____ADVANCED_SRC_FILENAMES_OBJECTS =  \
        $(OBJS)\monodll_gridcmn.obj \\r
        $(OBJS)\monodll_hyperlnkcmn.obj \\r
        $(OBJS)\monodll_odcombocmn.obj \\r
+       $(OBJS)\monodll_richtooltipcmn.obj \
        $(OBJS)\monodll_aboutdlgg.obj \\r
        $(OBJS)\monodll_bannerwindow.obj \\r
        $(OBJS)\monodll_bmpcboxg.obj \\r
@@ -2495,6 +2496,7 @@ ____ADVANCED_SRC_FILENAMES_OBJECTS =  \
        $(OBJS)\monodll_notifmsgg.obj \\r
        $(OBJS)\monodll_odcombo.obj \\r
        $(OBJS)\monodll_propdlg.obj \\r
+       $(OBJS)\monodll_generic_richtooltip.obj \
        $(OBJS)\monodll_sashwin.obj \\r
        $(OBJS)\monodll_splash.obj \\r
        $(OBJS)\monodll_generic_timectrl.obj \
@@ -2504,6 +2506,7 @@ ____ADVANCED_SRC_FILENAMES_OBJECTS =  \
        $(OBJS)\monodll_taskbarcmn.obj \\r
        $(OBJS)\monodll_aboutdlg.obj \\r
        $(OBJS)\monodll_notifmsg.obj \\r
+       $(OBJS)\monodll_msw_richtooltip.obj \
        $(OBJS)\monodll_sound.obj \\r
        $(OBJS)\monodll_taskbar.obj \\r
        $(OBJS)\monodll_joystick.obj \\r
@@ -2526,6 +2529,7 @@ ____ADVANCED_SRC_FILENAMES_OBJECTS =  \
        $(OBJS)\monodll_gridcmn.obj \\r
        $(OBJS)\monodll_hyperlnkcmn.obj \\r
        $(OBJS)\monodll_odcombocmn.obj \\r
+       $(OBJS)\monodll_richtooltipcmn.obj \
        $(OBJS)\monodll_aboutdlgg.obj \\r
        $(OBJS)\monodll_bannerwindow.obj \\r
        $(OBJS)\monodll_bmpcboxg.obj \\r
@@ -2544,6 +2548,7 @@ ____ADVANCED_SRC_FILENAMES_OBJECTS =  \
        $(OBJS)\monodll_notifmsgg.obj \\r
        $(OBJS)\monodll_odcombo.obj \\r
        $(OBJS)\monodll_propdlg.obj \\r
+       $(OBJS)\monodll_generic_richtooltip.obj \
        $(OBJS)\monodll_sashwin.obj \\r
        $(OBJS)\monodll_splash.obj \\r
        $(OBJS)\monodll_generic_timectrl.obj \
@@ -2553,6 +2558,7 @@ ____ADVANCED_SRC_FILENAMES_OBJECTS =  \
        $(OBJS)\monodll_taskbarcmn.obj \\r
        $(OBJS)\monodll_aboutdlg.obj \\r
        $(OBJS)\monodll_notifmsg.obj \\r
+       $(OBJS)\monodll_msw_richtooltip.obj \
        $(OBJS)\monodll_sound.obj \\r
        $(OBJS)\monodll_taskbar.obj \\r
        $(OBJS)\monodll_joystick.obj \\r
@@ -3260,6 +3266,7 @@ ____ADVANCED_SRC_FILENAMES_1_OBJECTS =  \
        $(OBJS)\monolib_gridcmn.obj \\r
        $(OBJS)\monolib_hyperlnkcmn.obj \\r
        $(OBJS)\monolib_odcombocmn.obj \\r
+       $(OBJS)\monolib_richtooltipcmn.obj \
        $(OBJS)\monolib_aboutdlgg.obj \\r
        $(OBJS)\monolib_bannerwindow.obj \\r
        $(OBJS)\monolib_bmpcboxg.obj \\r
@@ -3278,6 +3285,7 @@ ____ADVANCED_SRC_FILENAMES_1_OBJECTS =  \
        $(OBJS)\monolib_notifmsgg.obj \\r
        $(OBJS)\monolib_odcombo.obj \\r
        $(OBJS)\monolib_propdlg.obj \\r
+       $(OBJS)\monolib_generic_richtooltip.obj \
        $(OBJS)\monolib_sashwin.obj \\r
        $(OBJS)\monolib_splash.obj \\r
        $(OBJS)\monolib_generic_timectrl.obj \
@@ -3287,6 +3295,7 @@ ____ADVANCED_SRC_FILENAMES_1_OBJECTS =  \
        $(OBJS)\monolib_taskbarcmn.obj \\r
        $(OBJS)\monolib_aboutdlg.obj \\r
        $(OBJS)\monolib_notifmsg.obj \\r
+       $(OBJS)\monolib_msw_richtooltip.obj \
        $(OBJS)\monolib_sound.obj \\r
        $(OBJS)\monolib_taskbar.obj \\r
        $(OBJS)\monolib_joystick.obj \\r
@@ -3309,6 +3318,7 @@ ____ADVANCED_SRC_FILENAMES_1_OBJECTS =  \
        $(OBJS)\monolib_gridcmn.obj \\r
        $(OBJS)\monolib_hyperlnkcmn.obj \\r
        $(OBJS)\monolib_odcombocmn.obj \\r
+       $(OBJS)\monolib_richtooltipcmn.obj \
        $(OBJS)\monolib_aboutdlgg.obj \\r
        $(OBJS)\monolib_bannerwindow.obj \\r
        $(OBJS)\monolib_bmpcboxg.obj \\r
@@ -3327,6 +3337,7 @@ ____ADVANCED_SRC_FILENAMES_1_OBJECTS =  \
        $(OBJS)\monolib_notifmsgg.obj \\r
        $(OBJS)\monolib_odcombo.obj \\r
        $(OBJS)\monolib_propdlg.obj \\r
+       $(OBJS)\monolib_generic_richtooltip.obj \
        $(OBJS)\monolib_sashwin.obj \\r
        $(OBJS)\monolib_splash.obj \\r
        $(OBJS)\monolib_generic_timectrl.obj \
@@ -3336,6 +3347,7 @@ ____ADVANCED_SRC_FILENAMES_1_OBJECTS =  \
        $(OBJS)\monolib_taskbarcmn.obj \\r
        $(OBJS)\monolib_aboutdlg.obj \\r
        $(OBJS)\monolib_notifmsg.obj \\r
+       $(OBJS)\monolib_msw_richtooltip.obj \
        $(OBJS)\monolib_sound.obj \\r
        $(OBJS)\monolib_taskbar.obj \\r
        $(OBJS)\monolib_joystick.obj \\r
@@ -4562,6 +4574,7 @@ ____ADVANCED_SRC_FILENAMES_2_OBJECTS =  \
        $(OBJS)\advdll_gridcmn.obj \\r
        $(OBJS)\advdll_hyperlnkcmn.obj \\r
        $(OBJS)\advdll_odcombocmn.obj \\r
+       $(OBJS)\advdll_richtooltipcmn.obj \
        $(OBJS)\advdll_aboutdlgg.obj \\r
        $(OBJS)\advdll_bannerwindow.obj \\r
        $(OBJS)\advdll_bmpcboxg.obj \\r
@@ -4580,6 +4593,7 @@ ____ADVANCED_SRC_FILENAMES_2_OBJECTS =  \
        $(OBJS)\advdll_notifmsgg.obj \\r
        $(OBJS)\advdll_odcombo.obj \\r
        $(OBJS)\advdll_propdlg.obj \\r
+       $(OBJS)\advdll_generic_richtooltip.obj \
        $(OBJS)\advdll_sashwin.obj \\r
        $(OBJS)\advdll_splash.obj \\r
        $(OBJS)\advdll_generic_timectrl.obj \
@@ -4589,6 +4603,7 @@ ____ADVANCED_SRC_FILENAMES_2_OBJECTS =  \
        $(OBJS)\advdll_taskbarcmn.obj \\r
        $(OBJS)\advdll_aboutdlg.obj \\r
        $(OBJS)\advdll_notifmsg.obj \\r
+       $(OBJS)\advdll_msw_richtooltip.obj \
        $(OBJS)\advdll_sound.obj \\r
        $(OBJS)\advdll_taskbar.obj \\r
        $(OBJS)\advdll_joystick.obj \\r
@@ -4611,6 +4626,7 @@ ____ADVANCED_SRC_FILENAMES_2_OBJECTS =  \
        $(OBJS)\advdll_gridcmn.obj \\r
        $(OBJS)\advdll_hyperlnkcmn.obj \\r
        $(OBJS)\advdll_odcombocmn.obj \\r
+       $(OBJS)\advdll_richtooltipcmn.obj \
        $(OBJS)\advdll_aboutdlgg.obj \\r
        $(OBJS)\advdll_bannerwindow.obj \\r
        $(OBJS)\advdll_bmpcboxg.obj \\r
@@ -4629,6 +4645,7 @@ ____ADVANCED_SRC_FILENAMES_2_OBJECTS =  \
        $(OBJS)\advdll_notifmsgg.obj \\r
        $(OBJS)\advdll_odcombo.obj \\r
        $(OBJS)\advdll_propdlg.obj \\r
+       $(OBJS)\advdll_generic_richtooltip.obj \
        $(OBJS)\advdll_sashwin.obj \\r
        $(OBJS)\advdll_splash.obj \\r
        $(OBJS)\advdll_generic_timectrl.obj \
@@ -4638,6 +4655,7 @@ ____ADVANCED_SRC_FILENAMES_2_OBJECTS =  \
        $(OBJS)\advdll_taskbarcmn.obj \\r
        $(OBJS)\advdll_aboutdlg.obj \\r
        $(OBJS)\advdll_notifmsg.obj \\r
+       $(OBJS)\advdll_msw_richtooltip.obj \
        $(OBJS)\advdll_sound.obj \\r
        $(OBJS)\advdll_taskbar.obj \\r
        $(OBJS)\advdll_joystick.obj \\r
@@ -4662,6 +4680,7 @@ ____ADVANCED_SRC_FILENAMES_3_OBJECTS =  \
        $(OBJS)\advlib_gridcmn.obj \\r
        $(OBJS)\advlib_hyperlnkcmn.obj \\r
        $(OBJS)\advlib_odcombocmn.obj \\r
+       $(OBJS)\advlib_richtooltipcmn.obj \
        $(OBJS)\advlib_aboutdlgg.obj \\r
        $(OBJS)\advlib_bannerwindow.obj \\r
        $(OBJS)\advlib_bmpcboxg.obj \\r
@@ -4680,6 +4699,7 @@ ____ADVANCED_SRC_FILENAMES_3_OBJECTS =  \
        $(OBJS)\advlib_notifmsgg.obj \\r
        $(OBJS)\advlib_odcombo.obj \\r
        $(OBJS)\advlib_propdlg.obj \\r
+       $(OBJS)\advlib_generic_richtooltip.obj \
        $(OBJS)\advlib_sashwin.obj \\r
        $(OBJS)\advlib_splash.obj \\r
        $(OBJS)\advlib_generic_timectrl.obj \
@@ -4689,6 +4709,7 @@ ____ADVANCED_SRC_FILENAMES_3_OBJECTS =  \
        $(OBJS)\advlib_taskbarcmn.obj \\r
        $(OBJS)\advlib_aboutdlg.obj \\r
        $(OBJS)\advlib_notifmsg.obj \\r
+       $(OBJS)\advlib_msw_richtooltip.obj \
        $(OBJS)\advlib_sound.obj \\r
        $(OBJS)\advlib_taskbar.obj \\r
        $(OBJS)\advlib_joystick.obj \\r
@@ -4711,6 +4732,7 @@ ____ADVANCED_SRC_FILENAMES_3_OBJECTS =  \
        $(OBJS)\advlib_gridcmn.obj \\r
        $(OBJS)\advlib_hyperlnkcmn.obj \\r
        $(OBJS)\advlib_odcombocmn.obj \\r
+       $(OBJS)\advlib_richtooltipcmn.obj \
        $(OBJS)\advlib_aboutdlgg.obj \\r
        $(OBJS)\advlib_bannerwindow.obj \\r
        $(OBJS)\advlib_bmpcboxg.obj \\r
@@ -4729,6 +4751,7 @@ ____ADVANCED_SRC_FILENAMES_3_OBJECTS =  \
        $(OBJS)\advlib_notifmsgg.obj \\r
        $(OBJS)\advlib_odcombo.obj \\r
        $(OBJS)\advlib_propdlg.obj \\r
+       $(OBJS)\advlib_generic_richtooltip.obj \
        $(OBJS)\advlib_sashwin.obj \\r
        $(OBJS)\advlib_splash.obj \\r
        $(OBJS)\advlib_generic_timectrl.obj \
@@ -4738,6 +4761,7 @@ ____ADVANCED_SRC_FILENAMES_3_OBJECTS =  \
        $(OBJS)\advlib_taskbarcmn.obj \\r
        $(OBJS)\advlib_aboutdlg.obj \\r
        $(OBJS)\advlib_notifmsg.obj \\r
+       $(OBJS)\advlib_msw_richtooltip.obj \
        $(OBJS)\advlib_sound.obj \\r
        $(OBJS)\advlib_taskbar.obj \\r
        $(OBJS)\advlib_joystick.obj \\r
@@ -8857,6 +8881,11 @@ $(OBJS)\monodll_odcombocmn.obj: ..\..\src\common\odcombocmn.cpp
 !endif\r
 \r
 !if "$(USE_GUI)" == "1"\r
+$(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\r
        $(CXX) /c /nologo /TP /Fo$@ $(MONODLL_CXXFLAGS) ..\..\src\generic\aboutdlgg.cpp\r
 !endif\r
@@ -8947,6 +8976,11 @@ $(OBJS)\monodll_propdlg.obj: ..\..\src\generic\propdlg.cpp
 !endif\r
 \r
 !if "$(USE_GUI)" == "1"\r
+$(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\r
        $(CXX) /c /nologo /TP /Fo$@ $(MONODLL_CXXFLAGS) ..\..\src\generic\sashwin.cpp\r
 !endif\r
@@ -8992,6 +9026,11 @@ $(OBJS)\monodll_notifmsg.obj: ..\..\src\msw\notifmsg.cpp
 !endif\r
 \r
 !if "$(USE_GUI)" == "1"\r
+$(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\r
        $(CXX) /c /nologo /TP /Fo$@ $(MONODLL_CXXFLAGS) ..\..\src\msw\sound.cpp\r
 !endif\r
@@ -11244,6 +11283,11 @@ $(OBJS)\monolib_odcombocmn.obj: ..\..\src\common\odcombocmn.cpp
 !endif\r
 \r
 !if "$(USE_GUI)" == "1"\r
+$(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\r
        $(CXX) /c /nologo /TP /Fo$@ $(MONOLIB_CXXFLAGS) ..\..\src\generic\aboutdlgg.cpp\r
 !endif\r
@@ -11334,6 +11378,11 @@ $(OBJS)\monolib_propdlg.obj: ..\..\src\generic\propdlg.cpp
 !endif\r
 \r
 !if "$(USE_GUI)" == "1"\r
+$(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\r
        $(CXX) /c /nologo /TP /Fo$@ $(MONOLIB_CXXFLAGS) ..\..\src\generic\sashwin.cpp\r
 !endif\r
@@ -11379,6 +11428,11 @@ $(OBJS)\monolib_notifmsg.obj: ..\..\src\msw\notifmsg.cpp
 !endif\r
 \r
 !if "$(USE_GUI)" == "1"\r
+$(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\r
        $(CXX) /c /nologo /TP /Fo$@ $(MONOLIB_CXXFLAGS) ..\..\src\msw\sound.cpp\r
 !endif\r
@@ -15024,6 +15078,9 @@ $(OBJS)\advdll_hyperlnkcmn.obj: ..\..\src\common\hyperlnkcmn.cpp
 $(OBJS)\advdll_odcombocmn.obj: ..\..\src\common\odcombocmn.cpp\r
        $(CXX) /c /nologo /TP /Fo$@ $(ADVDLL_CXXFLAGS) ..\..\src\common\odcombocmn.cpp\r
 \r
+$(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\r
        $(CXX) /c /nologo /TP /Fo$@ $(ADVDLL_CXXFLAGS) ..\..\src\generic\aboutdlgg.cpp\r
 \r
@@ -15078,6 +15135,9 @@ $(OBJS)\advdll_odcombo.obj: ..\..\src\generic\odcombo.cpp
 $(OBJS)\advdll_propdlg.obj: ..\..\src\generic\propdlg.cpp\r
        $(CXX) /c /nologo /TP /Fo$@ $(ADVDLL_CXXFLAGS) ..\..\src\generic\propdlg.cpp\r
 \r
+$(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\r
        $(CXX) /c /nologo /TP /Fo$@ $(ADVDLL_CXXFLAGS) ..\..\src\generic\sashwin.cpp\r
 \r
@@ -15105,6 +15165,9 @@ $(OBJS)\advdll_aboutdlg.obj: ..\..\src\msw\aboutdlg.cpp
 $(OBJS)\advdll_notifmsg.obj: ..\..\src\msw\notifmsg.cpp\r
        $(CXX) /c /nologo /TP /Fo$@ $(ADVDLL_CXXFLAGS) ..\..\src\msw\notifmsg.cpp\r
 \r
+$(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\r
        $(CXX) /c /nologo /TP /Fo$@ $(ADVDLL_CXXFLAGS) ..\..\src\msw\sound.cpp\r
 \r
@@ -15165,6 +15228,9 @@ $(OBJS)\advlib_hyperlnkcmn.obj: ..\..\src\common\hyperlnkcmn.cpp
 $(OBJS)\advlib_odcombocmn.obj: ..\..\src\common\odcombocmn.cpp\r
        $(CXX) /c /nologo /TP /Fo$@ $(ADVLIB_CXXFLAGS) ..\..\src\common\odcombocmn.cpp\r
 \r
+$(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\r
        $(CXX) /c /nologo /TP /Fo$@ $(ADVLIB_CXXFLAGS) ..\..\src\generic\aboutdlgg.cpp\r
 \r
@@ -15219,6 +15285,9 @@ $(OBJS)\advlib_odcombo.obj: ..\..\src\generic\odcombo.cpp
 $(OBJS)\advlib_propdlg.obj: ..\..\src\generic\propdlg.cpp\r
        $(CXX) /c /nologo /TP /Fo$@ $(ADVLIB_CXXFLAGS) ..\..\src\generic\propdlg.cpp\r
 \r
+$(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\r
        $(CXX) /c /nologo /TP /Fo$@ $(ADVLIB_CXXFLAGS) ..\..\src\generic\sashwin.cpp\r
 \r
@@ -15246,6 +15315,9 @@ $(OBJS)\advlib_aboutdlg.obj: ..\..\src\msw\aboutdlg.cpp
 $(OBJS)\advlib_notifmsg.obj: ..\..\src\msw\notifmsg.cpp\r
        $(CXX) /c /nologo /TP /Fo$@ $(ADVLIB_CXXFLAGS) ..\..\src\msw\notifmsg.cpp\r
 \r
+$(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\r
        $(CXX) /c /nologo /TP /Fo$@ $(ADVLIB_CXXFLAGS) ..\..\src\msw\sound.cpp\r
 \r
index f85b42f0689b507163b8f37298591141112536da..60ca3f5095810ff0d10dc27ffe90ff3502bdabc7 100644 (file)
@@ -796,6 +796,7 @@ ____ADVANCED_SRC_FILENAMES_OBJECTS =  &
        $(OBJS)\monodll_gridcmn.obj &\r
        $(OBJS)\monodll_hyperlnkcmn.obj &\r
        $(OBJS)\monodll_odcombocmn.obj &\r
+       $(OBJS)\monodll_richtooltipcmn.obj &
        $(OBJS)\monodll_aboutdlgg.obj &\r
        $(OBJS)\monodll_bannerwindow.obj &\r
        $(OBJS)\monodll_bmpcboxg.obj &\r
@@ -814,6 +815,7 @@ ____ADVANCED_SRC_FILENAMES_OBJECTS =  &
        $(OBJS)\monodll_notifmsgg.obj &\r
        $(OBJS)\monodll_odcombo.obj &\r
        $(OBJS)\monodll_propdlg.obj &\r
+       $(OBJS)\monodll_generic_richtooltip.obj &
        $(OBJS)\monodll_sashwin.obj &\r
        $(OBJS)\monodll_splash.obj &\r
        $(OBJS)\monodll_generic_timectrl.obj &
@@ -823,6 +825,7 @@ ____ADVANCED_SRC_FILENAMES_OBJECTS =  &
        $(OBJS)\monodll_taskbarcmn.obj &\r
        $(OBJS)\monodll_aboutdlg.obj &\r
        $(OBJS)\monodll_notifmsg.obj &\r
+       $(OBJS)\monodll_msw_richtooltip.obj &
        $(OBJS)\monodll_sound.obj &\r
        $(OBJS)\monodll_taskbar.obj &\r
        $(OBJS)\monodll_joystick.obj &\r
@@ -845,6 +848,7 @@ ____ADVANCED_SRC_FILENAMES_OBJECTS =  &
        $(OBJS)\monodll_gridcmn.obj &\r
        $(OBJS)\monodll_hyperlnkcmn.obj &\r
        $(OBJS)\monodll_odcombocmn.obj &\r
+       $(OBJS)\monodll_richtooltipcmn.obj &
        $(OBJS)\monodll_aboutdlgg.obj &\r
        $(OBJS)\monodll_bannerwindow.obj &\r
        $(OBJS)\monodll_bmpcboxg.obj &\r
@@ -863,6 +867,7 @@ ____ADVANCED_SRC_FILENAMES_OBJECTS =  &
        $(OBJS)\monodll_notifmsgg.obj &\r
        $(OBJS)\monodll_odcombo.obj &\r
        $(OBJS)\monodll_propdlg.obj &\r
+       $(OBJS)\monodll_generic_richtooltip.obj &
        $(OBJS)\monodll_sashwin.obj &\r
        $(OBJS)\monodll_splash.obj &\r
        $(OBJS)\monodll_generic_timectrl.obj &
@@ -872,6 +877,7 @@ ____ADVANCED_SRC_FILENAMES_OBJECTS =  &
        $(OBJS)\monodll_taskbarcmn.obj &\r
        $(OBJS)\monodll_aboutdlg.obj &\r
        $(OBJS)\monodll_notifmsg.obj &\r
+       $(OBJS)\monodll_msw_richtooltip.obj &
        $(OBJS)\monodll_sound.obj &\r
        $(OBJS)\monodll_taskbar.obj &\r
        $(OBJS)\monodll_joystick.obj &\r
@@ -1584,6 +1590,7 @@ ____ADVANCED_SRC_FILENAMES_1_OBJECTS =  &
        $(OBJS)\monolib_gridcmn.obj &\r
        $(OBJS)\monolib_hyperlnkcmn.obj &\r
        $(OBJS)\monolib_odcombocmn.obj &\r
+       $(OBJS)\monolib_richtooltipcmn.obj &
        $(OBJS)\monolib_aboutdlgg.obj &\r
        $(OBJS)\monolib_bannerwindow.obj &\r
        $(OBJS)\monolib_bmpcboxg.obj &\r
@@ -1602,6 +1609,7 @@ ____ADVANCED_SRC_FILENAMES_1_OBJECTS =  &
        $(OBJS)\monolib_notifmsgg.obj &\r
        $(OBJS)\monolib_odcombo.obj &\r
        $(OBJS)\monolib_propdlg.obj &\r
+       $(OBJS)\monolib_generic_richtooltip.obj &
        $(OBJS)\monolib_sashwin.obj &\r
        $(OBJS)\monolib_splash.obj &\r
        $(OBJS)\monolib_generic_timectrl.obj &
@@ -1611,6 +1619,7 @@ ____ADVANCED_SRC_FILENAMES_1_OBJECTS =  &
        $(OBJS)\monolib_taskbarcmn.obj &\r
        $(OBJS)\monolib_aboutdlg.obj &\r
        $(OBJS)\monolib_notifmsg.obj &\r
+       $(OBJS)\monolib_msw_richtooltip.obj &
        $(OBJS)\monolib_sound.obj &\r
        $(OBJS)\monolib_taskbar.obj &\r
        $(OBJS)\monolib_joystick.obj &\r
@@ -1633,6 +1642,7 @@ ____ADVANCED_SRC_FILENAMES_1_OBJECTS =  &
        $(OBJS)\monolib_gridcmn.obj &\r
        $(OBJS)\monolib_hyperlnkcmn.obj &\r
        $(OBJS)\monolib_odcombocmn.obj &\r
+       $(OBJS)\monolib_richtooltipcmn.obj &
        $(OBJS)\monolib_aboutdlgg.obj &\r
        $(OBJS)\monolib_bannerwindow.obj &\r
        $(OBJS)\monolib_bmpcboxg.obj &\r
@@ -1651,6 +1661,7 @@ ____ADVANCED_SRC_FILENAMES_1_OBJECTS =  &
        $(OBJS)\monolib_notifmsgg.obj &\r
        $(OBJS)\monolib_odcombo.obj &\r
        $(OBJS)\monolib_propdlg.obj &\r
+       $(OBJS)\monolib_generic_richtooltip.obj &
        $(OBJS)\monolib_sashwin.obj &\r
        $(OBJS)\monolib_splash.obj &\r
        $(OBJS)\monolib_generic_timectrl.obj &
@@ -1660,6 +1671,7 @@ ____ADVANCED_SRC_FILENAMES_1_OBJECTS =  &
        $(OBJS)\monolib_taskbarcmn.obj &\r
        $(OBJS)\monolib_aboutdlg.obj &\r
        $(OBJS)\monolib_notifmsg.obj &\r
+       $(OBJS)\monolib_msw_richtooltip.obj &
        $(OBJS)\monolib_sound.obj &\r
        $(OBJS)\monolib_taskbar.obj &\r
        $(OBJS)\monolib_joystick.obj &\r
@@ -2840,6 +2852,7 @@ ____ADVANCED_SRC_FILENAMES_2_OBJECTS =  &
        $(OBJS)\advdll_gridcmn.obj &\r
        $(OBJS)\advdll_hyperlnkcmn.obj &\r
        $(OBJS)\advdll_odcombocmn.obj &\r
+       $(OBJS)\advdll_richtooltipcmn.obj &
        $(OBJS)\advdll_aboutdlgg.obj &\r
        $(OBJS)\advdll_bannerwindow.obj &\r
        $(OBJS)\advdll_bmpcboxg.obj &\r
@@ -2858,6 +2871,7 @@ ____ADVANCED_SRC_FILENAMES_2_OBJECTS =  &
        $(OBJS)\advdll_notifmsgg.obj &\r
        $(OBJS)\advdll_odcombo.obj &\r
        $(OBJS)\advdll_propdlg.obj &\r
+       $(OBJS)\advdll_generic_richtooltip.obj &
        $(OBJS)\advdll_sashwin.obj &\r
        $(OBJS)\advdll_splash.obj &\r
        $(OBJS)\advdll_generic_timectrl.obj &
@@ -2867,6 +2881,7 @@ ____ADVANCED_SRC_FILENAMES_2_OBJECTS =  &
        $(OBJS)\advdll_taskbarcmn.obj &\r
        $(OBJS)\advdll_aboutdlg.obj &\r
        $(OBJS)\advdll_notifmsg.obj &\r
+       $(OBJS)\advdll_msw_richtooltip.obj &
        $(OBJS)\advdll_sound.obj &\r
        $(OBJS)\advdll_taskbar.obj &\r
        $(OBJS)\advdll_joystick.obj &\r
@@ -2889,6 +2904,7 @@ ____ADVANCED_SRC_FILENAMES_2_OBJECTS =  &
        $(OBJS)\advdll_gridcmn.obj &\r
        $(OBJS)\advdll_hyperlnkcmn.obj &\r
        $(OBJS)\advdll_odcombocmn.obj &\r
+       $(OBJS)\advdll_richtooltipcmn.obj &
        $(OBJS)\advdll_aboutdlgg.obj &\r
        $(OBJS)\advdll_bannerwindow.obj &\r
        $(OBJS)\advdll_bmpcboxg.obj &\r
@@ -2907,6 +2923,7 @@ ____ADVANCED_SRC_FILENAMES_2_OBJECTS =  &
        $(OBJS)\advdll_notifmsgg.obj &\r
        $(OBJS)\advdll_odcombo.obj &\r
        $(OBJS)\advdll_propdlg.obj &\r
+       $(OBJS)\advdll_generic_richtooltip.obj &
        $(OBJS)\advdll_sashwin.obj &\r
        $(OBJS)\advdll_splash.obj &\r
        $(OBJS)\advdll_generic_timectrl.obj &
@@ -2916,6 +2933,7 @@ ____ADVANCED_SRC_FILENAMES_2_OBJECTS =  &
        $(OBJS)\advdll_taskbarcmn.obj &\r
        $(OBJS)\advdll_aboutdlg.obj &\r
        $(OBJS)\advdll_notifmsg.obj &\r
+       $(OBJS)\advdll_msw_richtooltip.obj &
        $(OBJS)\advdll_sound.obj &\r
        $(OBJS)\advdll_taskbar.obj &\r
        $(OBJS)\advdll_joystick.obj &\r
@@ -2940,6 +2958,7 @@ ____ADVANCED_SRC_FILENAMES_3_OBJECTS =  &
        $(OBJS)\advlib_gridcmn.obj &\r
        $(OBJS)\advlib_hyperlnkcmn.obj &\r
        $(OBJS)\advlib_odcombocmn.obj &\r
+       $(OBJS)\advlib_richtooltipcmn.obj &
        $(OBJS)\advlib_aboutdlgg.obj &\r
        $(OBJS)\advlib_bannerwindow.obj &\r
        $(OBJS)\advlib_bmpcboxg.obj &\r
@@ -2958,6 +2977,7 @@ ____ADVANCED_SRC_FILENAMES_3_OBJECTS =  &
        $(OBJS)\advlib_notifmsgg.obj &\r
        $(OBJS)\advlib_odcombo.obj &\r
        $(OBJS)\advlib_propdlg.obj &\r
+       $(OBJS)\advlib_generic_richtooltip.obj &
        $(OBJS)\advlib_sashwin.obj &\r
        $(OBJS)\advlib_splash.obj &\r
        $(OBJS)\advlib_generic_timectrl.obj &
@@ -2967,6 +2987,7 @@ ____ADVANCED_SRC_FILENAMES_3_OBJECTS =  &
        $(OBJS)\advlib_taskbarcmn.obj &\r
        $(OBJS)\advlib_aboutdlg.obj &\r
        $(OBJS)\advlib_notifmsg.obj &\r
+       $(OBJS)\advlib_msw_richtooltip.obj &
        $(OBJS)\advlib_sound.obj &\r
        $(OBJS)\advlib_taskbar.obj &\r
        $(OBJS)\advlib_joystick.obj &\r
@@ -2989,6 +3010,7 @@ ____ADVANCED_SRC_FILENAMES_3_OBJECTS =  &
        $(OBJS)\advlib_gridcmn.obj &\r
        $(OBJS)\advlib_hyperlnkcmn.obj &\r
        $(OBJS)\advlib_odcombocmn.obj &\r
+       $(OBJS)\advlib_richtooltipcmn.obj &
        $(OBJS)\advlib_aboutdlgg.obj &\r
        $(OBJS)\advlib_bannerwindow.obj &\r
        $(OBJS)\advlib_bmpcboxg.obj &\r
@@ -3007,6 +3029,7 @@ ____ADVANCED_SRC_FILENAMES_3_OBJECTS =  &
        $(OBJS)\advlib_notifmsgg.obj &\r
        $(OBJS)\advlib_odcombo.obj &\r
        $(OBJS)\advlib_propdlg.obj &\r
+       $(OBJS)\advlib_generic_richtooltip.obj &
        $(OBJS)\advlib_sashwin.obj &\r
        $(OBJS)\advlib_splash.obj &\r
        $(OBJS)\advlib_generic_timectrl.obj &
@@ -3016,6 +3039,7 @@ ____ADVANCED_SRC_FILENAMES_3_OBJECTS =  &
        $(OBJS)\advlib_taskbarcmn.obj &\r
        $(OBJS)\advlib_aboutdlg.obj &\r
        $(OBJS)\advlib_notifmsg.obj &\r
+       $(OBJS)\advlib_msw_richtooltip.obj &
        $(OBJS)\advlib_sound.obj &\r
        $(OBJS)\advlib_taskbar.obj &\r
        $(OBJS)\advlib_joystick.obj &\r
@@ -8690,6 +8714,11 @@ $(OBJS)\monodll_odcombocmn.obj :  .AUTODEPEND ..\..\src\common\odcombocmn.cpp
 !endif\r
 \r
 !ifeq USE_GUI 1\r
+$(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\r
        $(CXX) -bt=nt -zq -fo=$^@ $(MONODLL_CXXFLAGS) $<\r
 !endif\r
@@ -8780,6 +8809,11 @@ $(OBJS)\monodll_propdlg.obj :  .AUTODEPEND ..\..\src\generic\propdlg.cpp
 !endif\r
 \r
 !ifeq USE_GUI 1\r
+$(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\r
        $(CXX) -bt=nt -zq -fo=$^@ $(MONODLL_CXXFLAGS) $<\r
 !endif\r
@@ -8825,6 +8859,11 @@ $(OBJS)\monodll_notifmsg.obj :  .AUTODEPEND ..\..\src\msw\notifmsg.cpp
 !endif\r
 \r
 !ifeq USE_GUI 1\r
+$(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\r
        $(CXX) -bt=nt -zq -fo=$^@ $(MONODLL_CXXFLAGS) $<\r
 !endif\r
@@ -11077,6 +11116,11 @@ $(OBJS)\monolib_odcombocmn.obj :  .AUTODEPEND ..\..\src\common\odcombocmn.cpp
 !endif\r
 \r
 !ifeq USE_GUI 1\r
+$(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\r
        $(CXX) -bt=nt -zq -fo=$^@ $(MONOLIB_CXXFLAGS) $<\r
 !endif\r
@@ -11167,6 +11211,11 @@ $(OBJS)\monolib_propdlg.obj :  .AUTODEPEND ..\..\src\generic\propdlg.cpp
 !endif\r
 \r
 !ifeq USE_GUI 1\r
+$(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\r
        $(CXX) -bt=nt -zq -fo=$^@ $(MONOLIB_CXXFLAGS) $<\r
 !endif\r
@@ -11212,6 +11261,11 @@ $(OBJS)\monolib_notifmsg.obj :  .AUTODEPEND ..\..\src\msw\notifmsg.cpp
 !endif\r
 \r
 !ifeq USE_GUI 1\r
+$(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\r
        $(CXX) -bt=nt -zq -fo=$^@ $(MONOLIB_CXXFLAGS) $<\r
 !endif\r
@@ -14857,6 +14911,9 @@ $(OBJS)\advdll_hyperlnkcmn.obj :  .AUTODEPEND ..\..\src\common\hyperlnkcmn.cpp
 $(OBJS)\advdll_odcombocmn.obj :  .AUTODEPEND ..\..\src\common\odcombocmn.cpp\r
        $(CXX) -bt=nt -zq -fo=$^@ $(ADVDLL_CXXFLAGS) $<\r
 \r
+$(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\r
        $(CXX) -bt=nt -zq -fo=$^@ $(ADVDLL_CXXFLAGS) $<\r
 \r
@@ -14911,6 +14968,9 @@ $(OBJS)\advdll_odcombo.obj :  .AUTODEPEND ..\..\src\generic\odcombo.cpp
 $(OBJS)\advdll_propdlg.obj :  .AUTODEPEND ..\..\src\generic\propdlg.cpp\r
        $(CXX) -bt=nt -zq -fo=$^@ $(ADVDLL_CXXFLAGS) $<\r
 \r
+$(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\r
        $(CXX) -bt=nt -zq -fo=$^@ $(ADVDLL_CXXFLAGS) $<\r
 \r
@@ -14938,6 +14998,9 @@ $(OBJS)\advdll_aboutdlg.obj :  .AUTODEPEND ..\..\src\msw\aboutdlg.cpp
 $(OBJS)\advdll_notifmsg.obj :  .AUTODEPEND ..\..\src\msw\notifmsg.cpp\r
        $(CXX) -bt=nt -zq -fo=$^@ $(ADVDLL_CXXFLAGS) $<\r
 \r
+$(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\r
        $(CXX) -bt=nt -zq -fo=$^@ $(ADVDLL_CXXFLAGS) $<\r
 \r
@@ -14998,6 +15061,9 @@ $(OBJS)\advlib_hyperlnkcmn.obj :  .AUTODEPEND ..\..\src\common\hyperlnkcmn.cpp
 $(OBJS)\advlib_odcombocmn.obj :  .AUTODEPEND ..\..\src\common\odcombocmn.cpp\r
        $(CXX) -bt=nt -zq -fo=$^@ $(ADVLIB_CXXFLAGS) $<\r
 \r
+$(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\r
        $(CXX) -bt=nt -zq -fo=$^@ $(ADVLIB_CXXFLAGS) $<\r
 \r
@@ -15052,6 +15118,9 @@ $(OBJS)\advlib_odcombo.obj :  .AUTODEPEND ..\..\src\generic\odcombo.cpp
 $(OBJS)\advlib_propdlg.obj :  .AUTODEPEND ..\..\src\generic\propdlg.cpp\r
        $(CXX) -bt=nt -zq -fo=$^@ $(ADVLIB_CXXFLAGS) $<\r
 \r
+$(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\r
        $(CXX) -bt=nt -zq -fo=$^@ $(ADVLIB_CXXFLAGS) $<\r
 \r
@@ -15079,6 +15148,9 @@ $(OBJS)\advlib_aboutdlg.obj :  .AUTODEPEND ..\..\src\msw\aboutdlg.cpp
 $(OBJS)\advlib_notifmsg.obj :  .AUTODEPEND ..\..\src\msw\notifmsg.cpp\r
        $(CXX) -bt=nt -zq -fo=$^@ $(ADVLIB_CXXFLAGS) $<\r
 \r
+$(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\r
        $(CXX) -bt=nt -zq -fo=$^@ $(ADVLIB_CXXFLAGS) $<\r
 \r
index c207230558dd3ecb135f942625aa4698587899af..b3827a86e072ab59afd4c4af6616e943cd6173f3 100644 (file)
@@ -278,6 +278,10 @@ SOURCE=..\..\src\common\odcombocmn.cpp
 # End Source File\r
 # Begin Source File\r
 \r
+SOURCE=..\..\src\common\richtooltipcmn.cpp
+# End Source File
+# Begin Source File
+
 SOURCE=..\..\src\common\taskbarcmn.cpp\r
 # End Source File\r
 # End Group\r
@@ -543,6 +547,10 @@ SOURCE=..\..\src\msw\notifmsg.cpp
 # End Source File\r
 # Begin Source File\r
 \r
+SOURCE=..\..\src\msw\richtooltip.cpp
+# End Source File
+# Begin Source File
+
 SOURCE=..\..\src\msw\sound.cpp\r
 # End Source File\r
 # Begin Source File\r
@@ -701,6 +709,10 @@ SOURCE=..\..\src\generic\propdlg.cpp
 # End Source File\r
 # Begin Source File\r
 \r
+SOURCE=..\..\src\generic\richtooltip.cpp
+# End Source File
+# Begin Source File
+
 SOURCE=..\..\src\generic\sashwin.cpp\r
 # End Source File\r
 # Begin Source File\r
@@ -1174,6 +1186,10 @@ SOURCE=..\..\include\wx\propdlg.h
 # End Source File\r
 # Begin Source File\r
 \r
+SOURCE=..\..\include\wx\richtooltip.h
+# End Source File
+# Begin Source File
+
 SOURCE=..\..\include\wx\sashwin.h\r
 # End Source File\r
 # Begin Source File\r
index e9ee7ffc94d9d02e68f3cd1b4380efc8ccff20a9..2ef75436e323040343f3c9631ba2fea73842ee06 100644 (file)
@@ -6792,6 +6792,10 @@ SOURCE=..\..\include\wx\richtext\richtextxml.h
 # End Source File\r
 # Begin Source File\r
 \r
+SOURCE=..\..\include\wx\richtooltip.h
+# End Source File
+# Begin Source File
+
 SOURCE=..\..\include\wx\sashwin.h\r
 # End Source File\r
 # Begin Source File\r
index 73f27ad07069782de9570235a217b8b3a34d9f1d..ecfa5714ff5fdc1a41b3ed8c591789cc6b202dfc 100644 (file)
                                RelativePath="..\..\src\common\odcombocmn.cpp">\r
                        </File>\r
                        <File\r
+                               RelativePath="..\..\src\common\richtooltipcmn.cpp">
+                       </File>
+                       <File
                                RelativePath="..\..\src\common\taskbarcmn.cpp">\r
                        </File>\r
                </Filter>\r
                                RelativePath="..\..\src\msw\notifmsg.cpp">\r
                        </File>\r
                        <File\r
+                               RelativePath="..\..\src\msw\richtooltip.cpp">
+                               <FileConfiguration
+                                       Name="Debug|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               ObjectFile="vc_mswud\adv\msw_richtooltip.obj"/>
+                               </FileConfiguration>
+                               <FileConfiguration
+                                       Name="Release|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               ObjectFile="vc_mswu\adv\msw_richtooltip.obj"/>
+                               </FileConfiguration>
+                               <FileConfiguration
+                                       Name="Universal Debug|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               ObjectFile="vc_mswunivud\adv\msw_richtooltip.obj"/>
+                               </FileConfiguration>
+                               <FileConfiguration
+                                       Name="Universal Release|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               ObjectFile="vc_mswunivu\adv\msw_richtooltip.obj"/>
+                               </FileConfiguration>
+                               <FileConfiguration
+                                       Name="DLL Debug|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               ObjectFile="vc_mswuddll\adv\msw_richtooltip.obj"/>
+                               </FileConfiguration>
+                               <FileConfiguration
+                                       Name="DLL Release|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               ObjectFile="vc_mswudll\adv\msw_richtooltip.obj"/>
+                               </FileConfiguration>
+                               <FileConfiguration
+                                       Name="DLL Universal Debug|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               ObjectFile="vc_mswunivuddll\adv\msw_richtooltip.obj"/>
+                               </FileConfiguration>
+                               <FileConfiguration
+                                       Name="DLL Universal Release|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               ObjectFile="vc_mswunivudll\adv\msw_richtooltip.obj"/>
+                               </FileConfiguration>
+                       </File>
+                       <File
                                RelativePath="..\..\src\msw\sound.cpp">\r
                        </File>\r
                        <File\r
                                RelativePath="..\..\src\generic\propdlg.cpp">\r
                        </File>\r
                        <File\r
+                               RelativePath="..\..\src\generic\richtooltip.cpp">
+                               <FileConfiguration
+                                       Name="Debug|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               ObjectFile="vc_mswud\adv\generic_richtooltip.obj"/>
+                               </FileConfiguration>
+                               <FileConfiguration
+                                       Name="Release|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               ObjectFile="vc_mswu\adv\generic_richtooltip.obj"/>
+                               </FileConfiguration>
+                               <FileConfiguration
+                                       Name="Universal Debug|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               ObjectFile="vc_mswunivud\adv\generic_richtooltip.obj"/>
+                               </FileConfiguration>
+                               <FileConfiguration
+                                       Name="Universal Release|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               ObjectFile="vc_mswunivu\adv\generic_richtooltip.obj"/>
+                               </FileConfiguration>
+                               <FileConfiguration
+                                       Name="DLL Debug|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               ObjectFile="vc_mswuddll\adv\generic_richtooltip.obj"/>
+                               </FileConfiguration>
+                               <FileConfiguration
+                                       Name="DLL Release|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               ObjectFile="vc_mswudll\adv\generic_richtooltip.obj"/>
+                               </FileConfiguration>
+                               <FileConfiguration
+                                       Name="DLL Universal Debug|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               ObjectFile="vc_mswunivuddll\adv\generic_richtooltip.obj"/>
+                               </FileConfiguration>
+                               <FileConfiguration
+                                       Name="DLL Universal Release|Win32">
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               ObjectFile="vc_mswunivudll\adv\generic_richtooltip.obj"/>
+                               </FileConfiguration>
+                       </File>
+                       <File
                                RelativePath="..\..\src\generic\sashwin.cpp">\r
                        </File>\r
                        <File\r
                                RelativePath="..\..\include\wx\propdlg.h">\r
                        </File>\r
                        <File\r
+                               RelativePath="..\..\include\wx\richtooltip.h">
+                       </File>
+                       <File
                                RelativePath="..\..\include\wx\sashwin.h">\r
                        </File>\r
                        <File\r
index 1f08edf19cf217949517d88915ab9385ac194c91..c3d6cb292d639f30f663b77ea1bcd8b2374fe913 100644 (file)
                                RelativePath="..\..\include\wx\richtext\richtextxml.h">\r
                        </File>\r
                        <File\r
+                               RelativePath="..\..\include\wx\richtooltip.h">
+                       </File>
+                       <File
                                RelativePath="..\..\include\wx\sashwin.h">\r
                        </File>\r
                        <File\r
index 894041284b599b44b0b892cbae9e80c44567f60a..7b32f8870d160776ea50c50ec720ba51eed2242b 100644 (file)
                                >\r
                        </File>\r
                        <File\r
+                               RelativePath="..\..\src\common\richtooltipcmn.cpp"
+                               >
+                       </File>
+                       <File
                                RelativePath="..\..\src\common\taskbarcmn.cpp"\r
                                >\r
                        </File>\r
                                >\r
                        </File>\r
                        <File\r
+                               RelativePath="..\..\src\msw\richtooltip.cpp"
+                               >
+                               <FileConfiguration
+                                       Name="Debug|Win32"
+                                       >
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               ObjectFile="vc_mswud\adv\msw_richtooltip.obj"
+                                       />
+                               </FileConfiguration>
+                               <FileConfiguration
+                                       Name="Release|Win32"
+                                       >
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               ObjectFile="vc_mswu\adv\msw_richtooltip.obj"
+                                       />
+                               </FileConfiguration>
+                               <FileConfiguration
+                                       Name="Universal Debug|Win32"
+                                       >
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               ObjectFile="vc_mswunivud\adv\msw_richtooltip.obj"
+                                       />
+                               </FileConfiguration>
+                               <FileConfiguration
+                                       Name="Universal Release|Win32"
+                                       >
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               ObjectFile="vc_mswunivu\adv\msw_richtooltip.obj"
+                                       />
+                               </FileConfiguration>
+                               <FileConfiguration
+                                       Name="DLL Debug|Win32"
+                                       >
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               ObjectFile="vc_mswuddll\adv\msw_richtooltip.obj"
+                                       />
+                               </FileConfiguration>
+                               <FileConfiguration
+                                       Name="DLL Release|Win32"
+                                       >
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               ObjectFile="vc_mswudll\adv\msw_richtooltip.obj"
+                                       />
+                               </FileConfiguration>
+                               <FileConfiguration
+                                       Name="DLL Universal Debug|Win32"
+                                       >
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               ObjectFile="vc_mswunivuddll\adv\msw_richtooltip.obj"
+                                       />
+                               </FileConfiguration>
+                               <FileConfiguration
+                                       Name="DLL Universal Release|Win32"
+                                       >
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               ObjectFile="vc_mswunivudll\adv\msw_richtooltip.obj"
+                                       />
+                               </FileConfiguration>
+                       </File>
+                       <File
                                RelativePath="..\..\src\msw\sound.cpp"\r
                                >\r
                        </File>\r
                                >\r
                        </File>\r
                        <File\r
+                               RelativePath="..\..\src\generic\richtooltip.cpp"
+                               >
+                               <FileConfiguration
+                                       Name="Debug|Win32"
+                                       >
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               ObjectFile="vc_mswud\adv\generic_richtooltip.obj"
+                                       />
+                               </FileConfiguration>
+                               <FileConfiguration
+                                       Name="Release|Win32"
+                                       >
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               ObjectFile="vc_mswu\adv\generic_richtooltip.obj"
+                                       />
+                               </FileConfiguration>
+                               <FileConfiguration
+                                       Name="Universal Debug|Win32"
+                                       >
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               ObjectFile="vc_mswunivud\adv\generic_richtooltip.obj"
+                                       />
+                               </FileConfiguration>
+                               <FileConfiguration
+                                       Name="Universal Release|Win32"
+                                       >
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               ObjectFile="vc_mswunivu\adv\generic_richtooltip.obj"
+                                       />
+                               </FileConfiguration>
+                               <FileConfiguration
+                                       Name="DLL Debug|Win32"
+                                       >
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               ObjectFile="vc_mswuddll\adv\generic_richtooltip.obj"
+                                       />
+                               </FileConfiguration>
+                               <FileConfiguration
+                                       Name="DLL Release|Win32"
+                                       >
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               ObjectFile="vc_mswudll\adv\generic_richtooltip.obj"
+                                       />
+                               </FileConfiguration>
+                               <FileConfiguration
+                                       Name="DLL Universal Debug|Win32"
+                                       >
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               ObjectFile="vc_mswunivuddll\adv\generic_richtooltip.obj"
+                                       />
+                               </FileConfiguration>
+                               <FileConfiguration
+                                       Name="DLL Universal Release|Win32"
+                                       >
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               ObjectFile="vc_mswunivudll\adv\generic_richtooltip.obj"
+                                       />
+                               </FileConfiguration>
+                       </File>
+                       <File
                                RelativePath="..\..\src\generic\sashwin.cpp"\r
                                >\r
                        </File>\r
                                >\r
                        </File>\r
                        <File\r
+                               RelativePath="..\..\include\wx\richtooltip.h"
+                               >
+                       </File>
+                       <File
                                RelativePath="..\..\include\wx\sashwin.h"\r
                                >\r
                        </File>\r
index 8dd8c705af4527b918854cf4da7800575402ce5d..b62f508d5998e733be142fcfd0e7784184426c60 100644 (file)
                                >\r
                        </File>\r
                        <File\r
+                               RelativePath="..\..\include\wx\richtooltip.h"
+                               >
+                       </File>
+                       <File
                                RelativePath="..\..\include\wx\sashwin.h"\r
                                >\r
                        </File>\r
index 9d0358931d12544684b14248915c58b74f71166d..c9b2307b77c0884d844ea7e460ab890bbcc9f512 100644 (file)
                                >\r
                        </File>\r
                        <File\r
+                               RelativePath="..\..\src\common\richtooltipcmn.cpp"
+                               >
+                       </File>
+                       <File
                                RelativePath="..\..\src\common\taskbarcmn.cpp"\r
                                >\r
                        </File>\r
                                >\r
                        </File>\r
                        <File\r
+                               RelativePath="..\..\src\msw\richtooltip.cpp"
+                               >
+                               <FileConfiguration
+                                       Name="Debug|Win32"
+                                       >
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               ObjectFile="vc_mswud\adv\msw_richtooltip.obj"
+                                       />
+                               </FileConfiguration>
+                               <FileConfiguration
+                                       Name="Release|Win32"
+                                       >
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               ObjectFile="vc_mswu\adv\msw_richtooltip.obj"
+                                       />
+                               </FileConfiguration>
+                               <FileConfiguration
+                                       Name="Universal Debug|Win32"
+                                       >
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               ObjectFile="vc_mswunivud\adv\msw_richtooltip.obj"
+                                       />
+                               </FileConfiguration>
+                               <FileConfiguration
+                                       Name="Universal Release|Win32"
+                                       >
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               ObjectFile="vc_mswunivu\adv\msw_richtooltip.obj"
+                                       />
+                               </FileConfiguration>
+                               <FileConfiguration
+                                       Name="DLL Debug|Win32"
+                                       >
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               ObjectFile="vc_mswuddll\adv\msw_richtooltip.obj"
+                                       />
+                               </FileConfiguration>
+                               <FileConfiguration
+                                       Name="DLL Release|Win32"
+                                       >
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               ObjectFile="vc_mswudll\adv\msw_richtooltip.obj"
+                                       />
+                               </FileConfiguration>
+                               <FileConfiguration
+                                       Name="DLL Universal Debug|Win32"
+                                       >
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               ObjectFile="vc_mswunivuddll\adv\msw_richtooltip.obj"
+                                       />
+                               </FileConfiguration>
+                               <FileConfiguration
+                                       Name="DLL Universal Release|Win32"
+                                       >
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               ObjectFile="vc_mswunivudll\adv\msw_richtooltip.obj"
+                                       />
+                               </FileConfiguration>
+                       </File>
+                       <File
                                RelativePath="..\..\src\msw\sound.cpp"\r
                                >\r
                        </File>\r
                                >\r
                        </File>\r
                        <File\r
+                               RelativePath="..\..\src\generic\richtooltip.cpp"
+                               >
+                               <FileConfiguration
+                                       Name="Debug|Win32"
+                                       >
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               ObjectFile="vc_mswud\adv\generic_richtooltip.obj"
+                                       />
+                               </FileConfiguration>
+                               <FileConfiguration
+                                       Name="Release|Win32"
+                                       >
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               ObjectFile="vc_mswu\adv\generic_richtooltip.obj"
+                                       />
+                               </FileConfiguration>
+                               <FileConfiguration
+                                       Name="Universal Debug|Win32"
+                                       >
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               ObjectFile="vc_mswunivud\adv\generic_richtooltip.obj"
+                                       />
+                               </FileConfiguration>
+                               <FileConfiguration
+                                       Name="Universal Release|Win32"
+                                       >
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               ObjectFile="vc_mswunivu\adv\generic_richtooltip.obj"
+                                       />
+                               </FileConfiguration>
+                               <FileConfiguration
+                                       Name="DLL Debug|Win32"
+                                       >
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               ObjectFile="vc_mswuddll\adv\generic_richtooltip.obj"
+                                       />
+                               </FileConfiguration>
+                               <FileConfiguration
+                                       Name="DLL Release|Win32"
+                                       >
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               ObjectFile="vc_mswudll\adv\generic_richtooltip.obj"
+                                       />
+                               </FileConfiguration>
+                               <FileConfiguration
+                                       Name="DLL Universal Debug|Win32"
+                                       >
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               ObjectFile="vc_mswunivuddll\adv\generic_richtooltip.obj"
+                                       />
+                               </FileConfiguration>
+                               <FileConfiguration
+                                       Name="DLL Universal Release|Win32"
+                                       >
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               ObjectFile="vc_mswunivudll\adv\generic_richtooltip.obj"
+                                       />
+                               </FileConfiguration>
+                       </File>
+                       <File
                                RelativePath="..\..\src\generic\sashwin.cpp"\r
                                >\r
                        </File>\r
                                >\r
                        </File>\r
                        <File\r
+                               RelativePath="..\..\include\wx\richtooltip.h"
+                               >
+                       </File>
+                       <File
                                RelativePath="..\..\include\wx\sashwin.h"\r
                                >\r
                        </File>\r
index 4a088b8b7bad409d0f4c52758e7f5f7f5a1e2ec0..3b8f55ca53993bd6c963e024509d929453e393e4 100644 (file)
                                >\r
                        </File>\r
                        <File\r
+                               RelativePath="..\..\include\wx\richtooltip.h"
+                               >
+                       </File>
+                       <File
                                RelativePath="..\..\include\wx\sashwin.h"\r
                                >\r
                        </File>\r
index 4a875dff04e143363bb343e92465f23128840e9d..46e9ce3397ad3d6f9a081a0746c7748af6b75f69 100755 (executable)
--- 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
 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=
index 06768cdcf402be79a842b10c8fc1b2dca52b6af2..df84bd2feb21db875e65da2609eb219e23f114c9 100644 (file)
@@ -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"
index 070a777433e71613653ac238958e46de055c3af0..45548d7650e69d5a5ec55fae911075fc28ec232e 100644 (file)
@@ -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 (file)
index 0000000..ded9c1d
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 (file)
index 0000000..4d91849
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 (file)
index 0000000..2521720
Binary files /dev/null and b/docs/doxygen/images/wxmsw/richtooltip.png differ
index ad5b0dedf496ead9b1903570404fe67ed5ab09d6..fd4c127f376182774c2f4ccd0bca6a9f6774cc67 100644 (file)
@@ -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
index 8b9ff36c1fe600b17bd03753adf6cc749ef03c97..5278a6490bc889a5133c38a83541b61fb477d1c8 100644 (file)
 #   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 (file)
index 0000000..baaf273
--- /dev/null
@@ -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 <vadim@wxwidgets.org>
+// 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_
index 72c3721f07e0ec49f67f4c90ddc992bc5c28cfe3..3f87e116bebfd5bb1d9a56a4aeae745d612c2c5b 100644 (file)
 // 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.
index a8f62e2241ab0c1862d6203041eb892c48aff9f5..02dbb9aa03867c871bfe59c4e0aabe5abbe59a35 100644 (file)
 // 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.
index a1a8bb702a7f24e3723bdad5bd7ffd17f87c22f6..bc48373e260f9ea29fb8b3381116c29a76b8ad7e 100644 (file)
 // 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.
index 3f7ba32ff7f52aaf675e5c80df1e393fc9a25ea3..e5dfea236d9596c50a99e4b19b00a3f88414e9c5 100644 (file)
 // 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.
index 4ae95d3099d0049d2132fada0aaf3f3763c60c65..85c0eb1cd1c3ba25b34048318d94e77a0b45fe6b 100644 (file)
@@ -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
index db61cb128f4cc08b726e444af4b5f48590355772..bd1bc24491a24458ad00fef6dc40fc7417ed1f47 100644 (file)
 // 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.
index d2384305df6bacf7c82902c211368e76a08acd91..0db190529a76184ac3fe8eb0ed2e8b90b9b0f0cb 100644 (file)
 // 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 (file)
index 0000000..75d30a9
--- /dev/null
@@ -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 <vadim@wxwidgets.org>
+// 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 (file)
index 0000000..83ea72d
--- /dev/null
@@ -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 <vadim@wxwidgets.org>
+// 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_
index 4168e64d59173778c3e1d8fc079b994a2ad04196..f7d6ce80b479229bb516d7316d5d12f4a050611a 100644 (file)
 // 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.
index 632c93a5b0e012e6b4174697823e35840bd4a4f3..f59ae505585f6f2c8f208aa5d541f207d17b83d0 100644 (file)
 // 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.
index 7db6d66037fb9bd5ebe799196de2336ea4e9cc37..4e1a6a7381bf885a5a94e75e59d73ffb9f522744 100644 (file)
@@ -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 (file)
index 0000000..3a3dbbf
--- /dev/null
@@ -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 <vadim@wxwidgets.org>
+// 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();
+};
index eeeecdac1f1db15c3d60f4f5f4bdbe1e975919e8..ce73b79e392b9656039aa0696d4187745719b6e3 100644 (file)
@@ -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<wxTipKind>(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);
index 61dd0f85aa3c4db6b940606c9a4ce8c81dbd6d76..bfc8fa086f2dd9c746076e87dbf853701dcb35fa 100644 (file)
@@ -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 (file)
index 0000000..28ea755
--- /dev/null
@@ -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."
+};
index 6f7ea9fb76d1067fd21c97dd8083e4375dbd41f0..9b05903463163b08954b8f1ad95c5afff270f378 100644 (file)
@@ -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<ShapeKind>((m_shapeKind + 1) % Shape_Max);
+    SetWindowShape();
 }
 
 void ShapedFrame::OnLeftDown(wxMouseEvent& evt)
index 26ae556bdb10d8e3773a77aa012c4fffed980d3b..0147d6d7741cdbfa1be1eeb9d22a33a156e114a8 100644 (file)
 
 #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 (file)
index 0000000..d2c829b
--- /dev/null
@@ -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 <vadim@wxwidgets.org>
+// 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 (file)
index 0000000..7cb677a
--- /dev/null
@@ -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 <vadim@wxwidgets.org>
+// 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<wxPopupTransientWindow>
+{
+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 (file)
index 0000000..1736eb0
--- /dev/null
@@ -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 <vadim@wxwidgets.org>
+// 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