From e36a173933aaa81b28a27979c3748e8bc42ef88c Mon Sep 17 00:00:00 2001 From: Vadim Zeitlin Date: Sat, 24 Nov 2007 01:56:13 +0000 Subject: [PATCH] added wxNotificationMessage and implemented it generically and natively for Maemo git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@50205 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- Makefile.in | 57 ++++++++- build/bakefiles/files.bkl | 5 + build/msw/makefile.bcc | 24 ++++ build/msw/makefile.gcc | 24 ++++ build/msw/makefile.vc | 24 ++++ build/msw/makefile.wat | 24 ++++ build/msw/wx_adv.dsp | 12 ++ build/msw/wx_core.dsp | 8 ++ configure | 54 +++++++- configure.in | 5 + docs/changes.txt | 1 + docs/latex/wx/classes.tex | 1 + docs/latex/wx/notifmsg.tex | 94 ++++++++++++++ include/wx/chkconf.h | 8 ++ include/wx/generic/notifmsg.h | 60 +++++++++ include/wx/gtk/hildon/notifmsg.h | 59 +++++++++ include/wx/mac/setup0.h | 11 ++ include/wx/motif/setup0.h | 11 ++ include/wx/msw/setup0.h | 11 ++ include/wx/msw/wince/setup.h | 11 ++ include/wx/notifmsg.h | 131 +++++++++++++++++++ include/wx/os2/setup0.h | 11 ++ include/wx/palmos/setup0.h | 11 ++ include/wx/setup_inc.h | 11 ++ samples/dialogs/dialogs.cpp | 75 ++++++++++- samples/dialogs/dialogs.h | 15 +++ setup.h.in | 2 + src/generic/notifmsgg.cpp | 211 +++++++++++++++++++++++++++++++ src/gtk/hildon/notifmsg.cpp | 126 ++++++++++++++++++ 29 files changed, 1086 insertions(+), 11 deletions(-) create mode 100644 docs/latex/wx/notifmsg.tex create mode 100644 include/wx/generic/notifmsg.h create mode 100644 include/wx/gtk/hildon/notifmsg.h create mode 100644 include/wx/notifmsg.h create mode 100644 src/generic/notifmsgg.cpp create mode 100644 src/gtk/hildon/notifmsg.cpp diff --git a/Makefile.in b/Makefile.in index e1e3f7dd69..5946f47040 100644 --- a/Makefile.in +++ b/Makefile.in @@ -2923,9 +2923,12 @@ COND_TOOLKIT_GTK_TOOLKIT_VERSION__ADVANCED_PLATFORM_HDR = \ wx/unix/taskbarx11.h \ wx/generic/animate.h @COND_TOOLKIT_GTK_TOOLKIT_VERSION_@ADVANCED_PLATFORM_HDR = $(COND_TOOLKIT_GTK_TOOLKIT_VERSION__ADVANCED_PLATFORM_HDR) -@COND_TOOLKIT_GTK_TOOLKIT_VERSION_2@ADVANCED_PLATFORM_HDR \ -@COND_TOOLKIT_GTK_TOOLKIT_VERSION_2@ = wx/unix/joystick.h wx/unix/sound.h \ -@COND_TOOLKIT_GTK_TOOLKIT_VERSION_2@ wx/unix/taskbarx11.h +COND_TOOLKIT_GTK_TOOLKIT_VERSION_2_ADVANCED_PLATFORM_HDR = \ + wx/unix/joystick.h \ + wx/unix/sound.h \ + wx/unix/taskbarx11.h \ + wx/gtk/hildon/notifmsg.h +@COND_TOOLKIT_GTK_TOOLKIT_VERSION_2@ADVANCED_PLATFORM_HDR = $(COND_TOOLKIT_GTK_TOOLKIT_VERSION_2_ADVANCED_PLATFORM_HDR) COND_TOOLKIT_MAC_ADVANCED_PLATFORM_HDR = \ wx/generic/animate.h \ wx/mac/carbon/drawer.h \ @@ -2979,6 +2982,7 @@ COND_WXUNIV_0_ADVANCED_HDR = \ wx/generic/helpext.h \ wx/generic/hyperlink.h \ wx/generic/laywin.h \ + wx/generic/notifmsg.h \ wx/generic/propdlg.h \ wx/generic/sashwin.h \ wx/generic/splash.h \ @@ -2987,6 +2991,7 @@ COND_WXUNIV_0_ADVANCED_HDR = \ wx/hyperlink.h \ wx/joystick.h \ wx/laywin.h \ + wx/notifmsg.h \ wx/odcombo.h \ wx/propdlg.h \ wx/sashwin.h \ @@ -3021,6 +3026,7 @@ COND_WXUNIV_1_ADVANCED_HDR = \ wx/generic/helpext.h \ wx/generic/hyperlink.h \ wx/generic/laywin.h \ + wx/generic/notifmsg.h \ wx/generic/propdlg.h \ wx/generic/sashwin.h \ wx/generic/splash.h \ @@ -3029,6 +3035,7 @@ COND_WXUNIV_1_ADVANCED_HDR = \ wx/hyperlink.h \ wx/joystick.h \ wx/laywin.h \ + wx/notifmsg.h \ wx/odcombo.h \ wx/propdlg.h \ wx/sashwin.h \ @@ -5255,6 +5262,7 @@ COND_WXUNIV_0___ADVANCED_SRC_OBJECTS = \ monodll_helpext.o \ monodll_hyperlinkg.o \ monodll_laywin.o \ + monodll_notifmsgg.o \ monodll_odcombo.o \ monodll_propdlg.o \ monodll_sashwin.o \ @@ -5280,6 +5288,7 @@ COND_WXUNIV_1___ADVANCED_SRC_OBJECTS = \ monodll_helpext.o \ monodll_hyperlinkg.o \ monodll_laywin.o \ + monodll_notifmsgg.o \ monodll_odcombo.o \ monodll_propdlg.o \ monodll_sashwin.o \ @@ -7148,6 +7157,7 @@ COND_WXUNIV_0___ADVANCED_SRC_OBJECTS_1 = \ monolib_helpext.o \ monolib_hyperlinkg.o \ monolib_laywin.o \ + monolib_notifmsgg.o \ monolib_odcombo.o \ monolib_propdlg.o \ monolib_sashwin.o \ @@ -7173,6 +7183,7 @@ COND_WXUNIV_1___ADVANCED_SRC_OBJECTS_1 = \ monolib_helpext.o \ monolib_hyperlinkg.o \ monolib_laywin.o \ + monolib_notifmsgg.o \ monolib_odcombo.o \ monolib_propdlg.o \ monolib_sashwin.o \ @@ -10871,6 +10882,7 @@ COND_WXUNIV_0___ADVANCED_SRC_OBJECTS_2 = \ advdll_helpext.o \ advdll_hyperlinkg.o \ advdll_laywin.o \ + advdll_notifmsgg.o \ advdll_odcombo.o \ advdll_propdlg.o \ advdll_sashwin.o \ @@ -10896,6 +10908,7 @@ COND_WXUNIV_1___ADVANCED_SRC_OBJECTS_2 = \ advdll_helpext.o \ advdll_hyperlinkg.o \ advdll_laywin.o \ + advdll_notifmsgg.o \ advdll_odcombo.o \ advdll_propdlg.o \ advdll_sashwin.o \ @@ -10942,6 +10955,7 @@ COND_WXUNIV_0___ADVANCED_SRC_OBJECTS_3 = \ advlib_helpext.o \ advlib_hyperlinkg.o \ advlib_laywin.o \ + advlib_notifmsgg.o \ advlib_odcombo.o \ advlib_propdlg.o \ advlib_sashwin.o \ @@ -10967,6 +10981,7 @@ COND_WXUNIV_1___ADVANCED_SRC_OBJECTS_3 = \ advlib_helpext.o \ advlib_hyperlinkg.o \ advlib_laywin.o \ + advlib_notifmsgg.o \ advlib_odcombo.o \ advlib_propdlg.o \ advlib_sashwin.o \ @@ -11699,7 +11714,8 @@ COND_TOOLKIT_GTK_TOOLKIT_VERSION_2___ADVANCED_PLATFORM_SRC_OBJECTS = \ monodll_sound.o \ monodll_taskbarx11.o \ monodll_taskbar.o \ - monodll_eggtrayicon.o + monodll_eggtrayicon.o \ + monodll_notifmsg.o @COND_TOOLKIT_GTK_TOOLKIT_VERSION_2@__ADVANCED_PLATFORM_SRC_OBJECTS = $(COND_TOOLKIT_GTK_TOOLKIT_VERSION_2___ADVANCED_PLATFORM_SRC_OBJECTS) COND_TOOLKIT_MAC___ADVANCED_PLATFORM_SRC_OBJECTS = \ monodll_taskbarcmn.o \ @@ -11772,7 +11788,8 @@ COND_TOOLKIT_GTK_TOOLKIT_VERSION_2___ADVANCED_PLATFORM_SRC_OBJECTS_0 = \ monolib_sound.o \ monolib_taskbarx11.o \ monolib_taskbar.o \ - monolib_eggtrayicon.o + monolib_eggtrayicon.o \ + monolib_notifmsg.o @COND_TOOLKIT_GTK_TOOLKIT_VERSION_2@__ADVANCED_PLATFORM_SRC_OBJECTS_0 = $(COND_TOOLKIT_GTK_TOOLKIT_VERSION_2___ADVANCED_PLATFORM_SRC_OBJECTS_0) COND_TOOLKIT_MAC___ADVANCED_PLATFORM_SRC_OBJECTS_0 = \ monolib_taskbarcmn.o \ @@ -11845,7 +11862,8 @@ COND_TOOLKIT_GTK_TOOLKIT_VERSION_2___ADVANCED_PLATFORM_SRC_OBJECTS_8 = \ advdll_sound.o \ advdll_taskbarx11.o \ advdll_taskbar.o \ - advdll_eggtrayicon.o + advdll_eggtrayicon.o \ + advdll_notifmsg.o @COND_TOOLKIT_GTK_TOOLKIT_VERSION_2@__ADVANCED_PLATFORM_SRC_OBJECTS_8 = $(COND_TOOLKIT_GTK_TOOLKIT_VERSION_2___ADVANCED_PLATFORM_SRC_OBJECTS_8) COND_TOOLKIT_MAC___ADVANCED_PLATFORM_SRC_OBJECTS_8 = \ advdll_taskbarcmn.o \ @@ -11909,7 +11927,8 @@ COND_TOOLKIT_GTK_TOOLKIT_VERSION_2___ADVANCED_PLATFORM_SRC_OBJECTS_9 = \ advlib_sound.o \ advlib_taskbarx11.o \ advlib_taskbar.o \ - advlib_eggtrayicon.o + advlib_eggtrayicon.o \ + advlib_notifmsg.o @COND_TOOLKIT_GTK_TOOLKIT_VERSION_2@__ADVANCED_PLATFORM_SRC_OBJECTS_9 = $(COND_TOOLKIT_GTK_TOOLKIT_VERSION_2___ADVANCED_PLATFORM_SRC_OBJECTS_9) COND_TOOLKIT_MAC___ADVANCED_PLATFORM_SRC_OBJECTS_9 = \ advlib_taskbarcmn.o \ @@ -17682,6 +17701,9 @@ monodll_sound_sdl.o: $(srcdir)/src/unix/sound_sdl.cpp $(MONODLL_ODEP) @COND_USE_GUI_1@monodll_laywin.o: $(srcdir)/src/generic/laywin.cpp $(MONODLL_ODEP) @COND_USE_GUI_1@ $(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/generic/laywin.cpp +@COND_USE_GUI_1@monodll_notifmsgg.o: $(srcdir)/src/generic/notifmsgg.cpp $(MONODLL_ODEP) +@COND_USE_GUI_1@ $(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/generic/notifmsgg.cpp + @COND_USE_GUI_1@monodll_odcombo.o: $(srcdir)/src/generic/odcombo.cpp $(MONODLL_ODEP) @COND_USE_GUI_1@ $(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/generic/odcombo.cpp @@ -17838,6 +17860,9 @@ monodll_sound_sdl.o: $(srcdir)/src/unix/sound_sdl.cpp $(MONODLL_ODEP) @COND_TOOLKIT_GTK_TOOLKIT_VERSION__USE_GUI_1@monodll_eggtrayicon.o: $(srcdir)/src/gtk1/eggtrayicon.c $(MONODLL_ODEP) @COND_TOOLKIT_GTK_TOOLKIT_VERSION__USE_GUI_1@ $(CCC) -c -o $@ $(MONODLL_CFLAGS) $(srcdir)/src/gtk1/eggtrayicon.c +@COND_TOOLKIT_GTK_TOOLKIT_VERSION_2_USE_GUI_1@monodll_notifmsg.o: $(srcdir)/src/gtk/hildon/notifmsg.cpp $(MONODLL_ODEP) +@COND_TOOLKIT_GTK_TOOLKIT_VERSION_2_USE_GUI_1@ $(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/gtk/hildon/notifmsg.cpp + @COND_TOOLKIT_MSW_USE_GUI_1_WXUNIV_0@monodll_datectrl.o: $(srcdir)/src/msw/datectrl.cpp $(MONODLL_ODEP) @COND_TOOLKIT_MSW_USE_GUI_1_WXUNIV_0@ $(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/msw/datectrl.cpp @@ -22149,6 +22174,9 @@ monolib_sound_sdl.o: $(srcdir)/src/unix/sound_sdl.cpp $(MONOLIB_ODEP) @COND_USE_GUI_1@monolib_laywin.o: $(srcdir)/src/generic/laywin.cpp $(MONOLIB_ODEP) @COND_USE_GUI_1@ $(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/generic/laywin.cpp +@COND_USE_GUI_1@monolib_notifmsgg.o: $(srcdir)/src/generic/notifmsgg.cpp $(MONOLIB_ODEP) +@COND_USE_GUI_1@ $(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/generic/notifmsgg.cpp + @COND_USE_GUI_1@monolib_odcombo.o: $(srcdir)/src/generic/odcombo.cpp $(MONOLIB_ODEP) @COND_USE_GUI_1@ $(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/generic/odcombo.cpp @@ -22305,6 +22333,9 @@ monolib_sound_sdl.o: $(srcdir)/src/unix/sound_sdl.cpp $(MONOLIB_ODEP) @COND_TOOLKIT_GTK_TOOLKIT_VERSION__USE_GUI_1@monolib_eggtrayicon.o: $(srcdir)/src/gtk1/eggtrayicon.c $(MONOLIB_ODEP) @COND_TOOLKIT_GTK_TOOLKIT_VERSION__USE_GUI_1@ $(CCC) -c -o $@ $(MONOLIB_CFLAGS) $(srcdir)/src/gtk1/eggtrayicon.c +@COND_TOOLKIT_GTK_TOOLKIT_VERSION_2_USE_GUI_1@monolib_notifmsg.o: $(srcdir)/src/gtk/hildon/notifmsg.cpp $(MONOLIB_ODEP) +@COND_TOOLKIT_GTK_TOOLKIT_VERSION_2_USE_GUI_1@ $(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/gtk/hildon/notifmsg.cpp + @COND_TOOLKIT_MSW_USE_GUI_1_WXUNIV_0@monolib_datectrl.o: $(srcdir)/src/msw/datectrl.cpp $(MONOLIB_ODEP) @COND_TOOLKIT_MSW_USE_GUI_1_WXUNIV_0@ $(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/msw/datectrl.cpp @@ -30222,6 +30253,9 @@ advdll_hyperlinkg.o: $(srcdir)/src/generic/hyperlinkg.cpp $(ADVDLL_ODEP) advdll_laywin.o: $(srcdir)/src/generic/laywin.cpp $(ADVDLL_ODEP) $(CXXC) -c -o $@ $(ADVDLL_CXXFLAGS) $(srcdir)/src/generic/laywin.cpp +advdll_notifmsgg.o: $(srcdir)/src/generic/notifmsgg.cpp $(ADVDLL_ODEP) + $(CXXC) -c -o $@ $(ADVDLL_CXXFLAGS) $(srcdir)/src/generic/notifmsgg.cpp + advdll_odcombo.o: $(srcdir)/src/generic/odcombo.cpp $(ADVDLL_ODEP) $(CXXC) -c -o $@ $(ADVDLL_CXXFLAGS) $(srcdir)/src/generic/odcombo.cpp @@ -30408,6 +30442,9 @@ advdll_wizard.o: $(srcdir)/src/generic/wizard.cpp $(ADVDLL_ODEP) @COND_TOOLKIT_GTK_TOOLKIT_VERSION_@advdll_eggtrayicon.o: $(srcdir)/src/gtk1/eggtrayicon.c $(ADVDLL_ODEP) @COND_TOOLKIT_GTK_TOOLKIT_VERSION_@ $(CCC) -c -o $@ $(ADVDLL_CFLAGS) $(srcdir)/src/gtk1/eggtrayicon.c +@COND_TOOLKIT_GTK_TOOLKIT_VERSION_2@advdll_notifmsg.o: $(srcdir)/src/gtk/hildon/notifmsg.cpp $(ADVDLL_ODEP) +@COND_TOOLKIT_GTK_TOOLKIT_VERSION_2@ $(CXXC) -c -o $@ $(ADVDLL_CXXFLAGS) $(srcdir)/src/gtk/hildon/notifmsg.cpp + @COND_TOOLKIT_MSW_WXUNIV_0@advdll_datectrl.o: $(srcdir)/src/msw/datectrl.cpp $(ADVDLL_ODEP) @COND_TOOLKIT_MSW_WXUNIV_0@ $(CXXC) -c -o $@ $(ADVDLL_CXXFLAGS) $(srcdir)/src/msw/datectrl.cpp @@ -30468,6 +30505,9 @@ advlib_hyperlinkg.o: $(srcdir)/src/generic/hyperlinkg.cpp $(ADVLIB_ODEP) advlib_laywin.o: $(srcdir)/src/generic/laywin.cpp $(ADVLIB_ODEP) $(CXXC) -c -o $@ $(ADVLIB_CXXFLAGS) $(srcdir)/src/generic/laywin.cpp +advlib_notifmsgg.o: $(srcdir)/src/generic/notifmsgg.cpp $(ADVLIB_ODEP) + $(CXXC) -c -o $@ $(ADVLIB_CXXFLAGS) $(srcdir)/src/generic/notifmsgg.cpp + advlib_odcombo.o: $(srcdir)/src/generic/odcombo.cpp $(ADVLIB_ODEP) $(CXXC) -c -o $@ $(ADVLIB_CXXFLAGS) $(srcdir)/src/generic/odcombo.cpp @@ -30654,6 +30694,9 @@ advlib_wizard.o: $(srcdir)/src/generic/wizard.cpp $(ADVLIB_ODEP) @COND_TOOLKIT_GTK_TOOLKIT_VERSION_@advlib_eggtrayicon.o: $(srcdir)/src/gtk1/eggtrayicon.c $(ADVLIB_ODEP) @COND_TOOLKIT_GTK_TOOLKIT_VERSION_@ $(CCC) -c -o $@ $(ADVLIB_CFLAGS) $(srcdir)/src/gtk1/eggtrayicon.c +@COND_TOOLKIT_GTK_TOOLKIT_VERSION_2@advlib_notifmsg.o: $(srcdir)/src/gtk/hildon/notifmsg.cpp $(ADVLIB_ODEP) +@COND_TOOLKIT_GTK_TOOLKIT_VERSION_2@ $(CXXC) -c -o $@ $(ADVLIB_CXXFLAGS) $(srcdir)/src/gtk/hildon/notifmsg.cpp + @COND_TOOLKIT_MSW_WXUNIV_0@advlib_datectrl.o: $(srcdir)/src/msw/datectrl.cpp $(ADVLIB_ODEP) @COND_TOOLKIT_MSW_WXUNIV_0@ $(CXXC) -c -o $@ $(ADVLIB_CXXFLAGS) $(srcdir)/src/msw/datectrl.cpp diff --git a/build/bakefiles/files.bkl b/build/bakefiles/files.bkl index 93ae093520..7485165a77 100644 --- a/build/bakefiles/files.bkl +++ b/build/bakefiles/files.bkl @@ -2789,6 +2789,7 @@ IMPORTANT: please read docs/tech/tn0016.txt before modifying this file! src/generic/helpext.cpp src/generic/hyperlinkg.cpp src/generic/laywin.cpp + src/generic/notifmsgg.cpp src/generic/odcombo.cpp src/generic/propdlg.cpp src/generic/sashwin.cpp @@ -2818,6 +2819,7 @@ IMPORTANT: please read docs/tech/tn0016.txt before modifying this file! wx/generic/helpext.h wx/generic/hyperlink.h wx/generic/laywin.h + wx/generic/notifmsg.h wx/generic/propdlg.h wx/generic/sashwin.h wx/generic/splash.h @@ -2826,6 +2828,7 @@ IMPORTANT: please read docs/tech/tn0016.txt before modifying this file! wx/hyperlink.h wx/joystick.h wx/laywin.h + wx/notifmsg.h wx/odcombo.h wx/propdlg.h wx/sashwin.h @@ -2937,8 +2940,10 @@ IMPORTANT: please read docs/tech/tn0016.txt before modifying this file! src/gtk/taskbar.cpp src/gtk/eggtrayicon.c + src/gtk/hildon/notifmsg.cpp + wx/gtk/hildon/notifmsg.h diff --git a/build/msw/makefile.bcc b/build/msw/makefile.bcc index c07c6dc124..bb716c3b86 100644 --- a/build/msw/makefile.bcc +++ b/build/msw/makefile.bcc @@ -1930,6 +1930,7 @@ ____ADVANCED_SRC_FILENAMES_OBJECTS = \ $(OBJS)\monodll_helpext.obj \ $(OBJS)\monodll_hyperlinkg.obj \ $(OBJS)\monodll_laywin.obj \ + $(OBJS)\monodll_notifmsgg.obj \ $(OBJS)\monodll_odcombo.obj \ $(OBJS)\monodll_propdlg.obj \ $(OBJS)\monodll_sashwin.obj \ @@ -1961,6 +1962,7 @@ ____ADVANCED_SRC_FILENAMES_OBJECTS = \ $(OBJS)\monodll_helpext.obj \ $(OBJS)\monodll_hyperlinkg.obj \ $(OBJS)\monodll_laywin.obj \ + $(OBJS)\monodll_notifmsgg.obj \ $(OBJS)\monodll_odcombo.obj \ $(OBJS)\monodll_propdlg.obj \ $(OBJS)\monodll_sashwin.obj \ @@ -2569,6 +2571,7 @@ ____ADVANCED_SRC_FILENAMES_1_OBJECTS = \ $(OBJS)\monolib_helpext.obj \ $(OBJS)\monolib_hyperlinkg.obj \ $(OBJS)\monolib_laywin.obj \ + $(OBJS)\monolib_notifmsgg.obj \ $(OBJS)\monolib_odcombo.obj \ $(OBJS)\monolib_propdlg.obj \ $(OBJS)\monolib_sashwin.obj \ @@ -2600,6 +2603,7 @@ ____ADVANCED_SRC_FILENAMES_1_OBJECTS = \ $(OBJS)\monolib_helpext.obj \ $(OBJS)\monolib_hyperlinkg.obj \ $(OBJS)\monolib_laywin.obj \ + $(OBJS)\monolib_notifmsgg.obj \ $(OBJS)\monolib_odcombo.obj \ $(OBJS)\monolib_propdlg.obj \ $(OBJS)\monolib_sashwin.obj \ @@ -3597,6 +3601,7 @@ ____ADVANCED_SRC_FILENAMES_2_OBJECTS = \ $(OBJS)\advdll_helpext.obj \ $(OBJS)\advdll_hyperlinkg.obj \ $(OBJS)\advdll_laywin.obj \ + $(OBJS)\advdll_notifmsgg.obj \ $(OBJS)\advdll_odcombo.obj \ $(OBJS)\advdll_propdlg.obj \ $(OBJS)\advdll_sashwin.obj \ @@ -3628,6 +3633,7 @@ ____ADVANCED_SRC_FILENAMES_2_OBJECTS = \ $(OBJS)\advdll_helpext.obj \ $(OBJS)\advdll_hyperlinkg.obj \ $(OBJS)\advdll_laywin.obj \ + $(OBJS)\advdll_notifmsgg.obj \ $(OBJS)\advdll_odcombo.obj \ $(OBJS)\advdll_propdlg.obj \ $(OBJS)\advdll_sashwin.obj \ @@ -3663,6 +3669,7 @@ ____ADVANCED_SRC_FILENAMES_3_OBJECTS = \ $(OBJS)\advlib_helpext.obj \ $(OBJS)\advlib_hyperlinkg.obj \ $(OBJS)\advlib_laywin.obj \ + $(OBJS)\advlib_notifmsgg.obj \ $(OBJS)\advlib_odcombo.obj \ $(OBJS)\advlib_propdlg.obj \ $(OBJS)\advlib_sashwin.obj \ @@ -3694,6 +3701,7 @@ ____ADVANCED_SRC_FILENAMES_3_OBJECTS = \ $(OBJS)\advlib_helpext.obj \ $(OBJS)\advlib_hyperlinkg.obj \ $(OBJS)\advlib_laywin.obj \ + $(OBJS)\advlib_notifmsgg.obj \ $(OBJS)\advlib_odcombo.obj \ $(OBJS)\advlib_propdlg.obj \ $(OBJS)\advlib_sashwin.obj \ @@ -7129,6 +7137,11 @@ $(OBJS)\monodll_laywin.obj: ..\..\src\generic\laywin.cpp $(CXX) -q -c -P -o$@ $(MONODLL_CXXFLAGS) $** !endif +!if "$(USE_GUI)" == "1" +$(OBJS)\monodll_notifmsgg.obj: ..\..\src\generic\notifmsgg.cpp + $(CXX) -q -c -P -o$@ $(MONODLL_CXXFLAGS) $** +!endif + !if "$(USE_GUI)" == "1" $(OBJS)\monodll_odcombo.obj: ..\..\src\generic\odcombo.cpp $(CXX) -q -c -P -o$@ $(MONODLL_CXXFLAGS) $** @@ -9219,6 +9232,11 @@ $(OBJS)\monolib_laywin.obj: ..\..\src\generic\laywin.cpp $(CXX) -q -c -P -o$@ $(MONOLIB_CXXFLAGS) $** !endif +!if "$(USE_GUI)" == "1" +$(OBJS)\monolib_notifmsgg.obj: ..\..\src\generic\notifmsgg.cpp + $(CXX) -q -c -P -o$@ $(MONOLIB_CXXFLAGS) $** +!endif + !if "$(USE_GUI)" == "1" $(OBJS)\monolib_odcombo.obj: ..\..\src\generic\odcombo.cpp $(CXX) -q -c -P -o$@ $(MONOLIB_CXXFLAGS) $** @@ -12653,6 +12671,9 @@ $(OBJS)\advdll_hyperlinkg.obj: ..\..\src\generic\hyperlinkg.cpp $(OBJS)\advdll_laywin.obj: ..\..\src\generic\laywin.cpp $(CXX) -q -c -P -o$@ $(ADVDLL_CXXFLAGS) $** +$(OBJS)\advdll_notifmsgg.obj: ..\..\src\generic\notifmsgg.cpp + $(CXX) -q -c -P -o$@ $(ADVDLL_CXXFLAGS) $** + $(OBJS)\advdll_odcombo.obj: ..\..\src\generic\odcombo.cpp $(CXX) -q -c -P -o$@ $(ADVDLL_CXXFLAGS) $** @@ -12745,6 +12766,9 @@ $(OBJS)\advlib_hyperlinkg.obj: ..\..\src\generic\hyperlinkg.cpp $(OBJS)\advlib_laywin.obj: ..\..\src\generic\laywin.cpp $(CXX) -q -c -P -o$@ $(ADVLIB_CXXFLAGS) $** +$(OBJS)\advlib_notifmsgg.obj: ..\..\src\generic\notifmsgg.cpp + $(CXX) -q -c -P -o$@ $(ADVLIB_CXXFLAGS) $** + $(OBJS)\advlib_odcombo.obj: ..\..\src\generic\odcombo.cpp $(CXX) -q -c -P -o$@ $(ADVLIB_CXXFLAGS) $** diff --git a/build/msw/makefile.gcc b/build/msw/makefile.gcc index c31e781d8f..0f771555cf 100644 --- a/build/msw/makefile.gcc +++ b/build/msw/makefile.gcc @@ -1948,6 +1948,7 @@ ____ADVANCED_SRC_FILENAMES_OBJECTS = \ $(OBJS)\monodll_helpext.o \ $(OBJS)\monodll_hyperlinkg.o \ $(OBJS)\monodll_laywin.o \ + $(OBJS)\monodll_notifmsgg.o \ $(OBJS)\monodll_odcombo.o \ $(OBJS)\monodll_propdlg.o \ $(OBJS)\monodll_sashwin.o \ @@ -1979,6 +1980,7 @@ ____ADVANCED_SRC_FILENAMES_OBJECTS = \ $(OBJS)\monodll_helpext.o \ $(OBJS)\monodll_hyperlinkg.o \ $(OBJS)\monodll_laywin.o \ + $(OBJS)\monodll_notifmsgg.o \ $(OBJS)\monodll_odcombo.o \ $(OBJS)\monodll_propdlg.o \ $(OBJS)\monodll_sashwin.o \ @@ -2593,6 +2595,7 @@ ____ADVANCED_SRC_FILENAMES_1_OBJECTS = \ $(OBJS)\monolib_helpext.o \ $(OBJS)\monolib_hyperlinkg.o \ $(OBJS)\monolib_laywin.o \ + $(OBJS)\monolib_notifmsgg.o \ $(OBJS)\monolib_odcombo.o \ $(OBJS)\monolib_propdlg.o \ $(OBJS)\monolib_sashwin.o \ @@ -2624,6 +2627,7 @@ ____ADVANCED_SRC_FILENAMES_1_OBJECTS = \ $(OBJS)\monolib_helpext.o \ $(OBJS)\monolib_hyperlinkg.o \ $(OBJS)\monolib_laywin.o \ + $(OBJS)\monolib_notifmsgg.o \ $(OBJS)\monolib_odcombo.o \ $(OBJS)\monolib_propdlg.o \ $(OBJS)\monolib_sashwin.o \ @@ -3649,6 +3653,7 @@ ____ADVANCED_SRC_FILENAMES_2_OBJECTS = \ $(OBJS)\advdll_helpext.o \ $(OBJS)\advdll_hyperlinkg.o \ $(OBJS)\advdll_laywin.o \ + $(OBJS)\advdll_notifmsgg.o \ $(OBJS)\advdll_odcombo.o \ $(OBJS)\advdll_propdlg.o \ $(OBJS)\advdll_sashwin.o \ @@ -3680,6 +3685,7 @@ ____ADVANCED_SRC_FILENAMES_2_OBJECTS = \ $(OBJS)\advdll_helpext.o \ $(OBJS)\advdll_hyperlinkg.o \ $(OBJS)\advdll_laywin.o \ + $(OBJS)\advdll_notifmsgg.o \ $(OBJS)\advdll_odcombo.o \ $(OBJS)\advdll_propdlg.o \ $(OBJS)\advdll_sashwin.o \ @@ -3719,6 +3725,7 @@ ____ADVANCED_SRC_FILENAMES_3_OBJECTS = \ $(OBJS)\advlib_helpext.o \ $(OBJS)\advlib_hyperlinkg.o \ $(OBJS)\advlib_laywin.o \ + $(OBJS)\advlib_notifmsgg.o \ $(OBJS)\advlib_odcombo.o \ $(OBJS)\advlib_propdlg.o \ $(OBJS)\advlib_sashwin.o \ @@ -3750,6 +3757,7 @@ ____ADVANCED_SRC_FILENAMES_3_OBJECTS = \ $(OBJS)\advlib_helpext.o \ $(OBJS)\advlib_hyperlinkg.o \ $(OBJS)\advlib_laywin.o \ + $(OBJS)\advlib_notifmsgg.o \ $(OBJS)\advlib_odcombo.o \ $(OBJS)\advlib_propdlg.o \ $(OBJS)\advlib_sashwin.o \ @@ -7369,6 +7377,11 @@ $(OBJS)\monodll_laywin.o: ../../src/generic/laywin.cpp $(CXX) -c -o $@ $(MONODLL_CXXFLAGS) $(CPPDEPS) $< endif +ifeq ($(USE_GUI),1) +$(OBJS)\monodll_notifmsgg.o: ../../src/generic/notifmsgg.cpp + $(CXX) -c -o $@ $(MONODLL_CXXFLAGS) $(CPPDEPS) $< +endif + ifeq ($(USE_GUI),1) $(OBJS)\monodll_odcombo.o: ../../src/generic/odcombo.cpp $(CXX) -c -o $@ $(MONODLL_CXXFLAGS) $(CPPDEPS) $< @@ -9561,6 +9574,11 @@ $(OBJS)\monolib_laywin.o: ../../src/generic/laywin.cpp $(CXX) -c -o $@ $(MONOLIB_CXXFLAGS) $(CPPDEPS) $< endif +ifeq ($(USE_GUI),1) +$(OBJS)\monolib_notifmsgg.o: ../../src/generic/notifmsgg.cpp + $(CXX) -c -o $@ $(MONOLIB_CXXFLAGS) $(CPPDEPS) $< +endif + ifeq ($(USE_GUI),1) $(OBJS)\monolib_odcombo.o: ../../src/generic/odcombo.cpp $(CXX) -c -o $@ $(MONOLIB_CXXFLAGS) $(CPPDEPS) $< @@ -13197,6 +13215,9 @@ $(OBJS)\advdll_hyperlinkg.o: ../../src/generic/hyperlinkg.cpp $(OBJS)\advdll_laywin.o: ../../src/generic/laywin.cpp $(CXX) -c -o $@ $(ADVDLL_CXXFLAGS) $(CPPDEPS) $< +$(OBJS)\advdll_notifmsgg.o: ../../src/generic/notifmsgg.cpp + $(CXX) -c -o $@ $(ADVDLL_CXXFLAGS) $(CPPDEPS) $< + $(OBJS)\advdll_odcombo.o: ../../src/generic/odcombo.cpp $(CXX) -c -o $@ $(ADVDLL_CXXFLAGS) $(CPPDEPS) $< @@ -13289,6 +13310,9 @@ $(OBJS)\advlib_hyperlinkg.o: ../../src/generic/hyperlinkg.cpp $(OBJS)\advlib_laywin.o: ../../src/generic/laywin.cpp $(CXX) -c -o $@ $(ADVLIB_CXXFLAGS) $(CPPDEPS) $< +$(OBJS)\advlib_notifmsgg.o: ../../src/generic/notifmsgg.cpp + $(CXX) -c -o $@ $(ADVLIB_CXXFLAGS) $(CPPDEPS) $< + $(OBJS)\advlib_odcombo.o: ../../src/generic/odcombo.cpp $(CXX) -c -o $@ $(ADVLIB_CXXFLAGS) $(CPPDEPS) $< diff --git a/build/msw/makefile.vc b/build/msw/makefile.vc index a05e194740..5a44c1aa4c 100644 --- a/build/msw/makefile.vc +++ b/build/msw/makefile.vc @@ -2104,6 +2104,7 @@ ____ADVANCED_SRC_FILENAMES_OBJECTS = \ $(OBJS)\monodll_helpext.obj \ $(OBJS)\monodll_hyperlinkg.obj \ $(OBJS)\monodll_laywin.obj \ + $(OBJS)\monodll_notifmsgg.obj \ $(OBJS)\monodll_odcombo.obj \ $(OBJS)\monodll_propdlg.obj \ $(OBJS)\monodll_sashwin.obj \ @@ -2135,6 +2136,7 @@ ____ADVANCED_SRC_FILENAMES_OBJECTS = \ $(OBJS)\monodll_helpext.obj \ $(OBJS)\monodll_hyperlinkg.obj \ $(OBJS)\monodll_laywin.obj \ + $(OBJS)\monodll_notifmsgg.obj \ $(OBJS)\monodll_odcombo.obj \ $(OBJS)\monodll_propdlg.obj \ $(OBJS)\monodll_sashwin.obj \ @@ -2749,6 +2751,7 @@ ____ADVANCED_SRC_FILENAMES_1_OBJECTS = \ $(OBJS)\monolib_helpext.obj \ $(OBJS)\monolib_hyperlinkg.obj \ $(OBJS)\monolib_laywin.obj \ + $(OBJS)\monolib_notifmsgg.obj \ $(OBJS)\monolib_odcombo.obj \ $(OBJS)\monolib_propdlg.obj \ $(OBJS)\monolib_sashwin.obj \ @@ -2780,6 +2783,7 @@ ____ADVANCED_SRC_FILENAMES_1_OBJECTS = \ $(OBJS)\monolib_helpext.obj \ $(OBJS)\monolib_hyperlinkg.obj \ $(OBJS)\monolib_laywin.obj \ + $(OBJS)\monolib_notifmsgg.obj \ $(OBJS)\monolib_odcombo.obj \ $(OBJS)\monolib_propdlg.obj \ $(OBJS)\monolib_sashwin.obj \ @@ -3819,6 +3823,7 @@ ____ADVANCED_SRC_FILENAMES_2_OBJECTS = \ $(OBJS)\advdll_helpext.obj \ $(OBJS)\advdll_hyperlinkg.obj \ $(OBJS)\advdll_laywin.obj \ + $(OBJS)\advdll_notifmsgg.obj \ $(OBJS)\advdll_odcombo.obj \ $(OBJS)\advdll_propdlg.obj \ $(OBJS)\advdll_sashwin.obj \ @@ -3850,6 +3855,7 @@ ____ADVANCED_SRC_FILENAMES_2_OBJECTS = \ $(OBJS)\advdll_helpext.obj \ $(OBJS)\advdll_hyperlinkg.obj \ $(OBJS)\advdll_laywin.obj \ + $(OBJS)\advdll_notifmsgg.obj \ $(OBJS)\advdll_odcombo.obj \ $(OBJS)\advdll_propdlg.obj \ $(OBJS)\advdll_sashwin.obj \ @@ -3891,6 +3897,7 @@ ____ADVANCED_SRC_FILENAMES_3_OBJECTS = \ $(OBJS)\advlib_helpext.obj \ $(OBJS)\advlib_hyperlinkg.obj \ $(OBJS)\advlib_laywin.obj \ + $(OBJS)\advlib_notifmsgg.obj \ $(OBJS)\advlib_odcombo.obj \ $(OBJS)\advlib_propdlg.obj \ $(OBJS)\advlib_sashwin.obj \ @@ -3922,6 +3929,7 @@ ____ADVANCED_SRC_FILENAMES_3_OBJECTS = \ $(OBJS)\advlib_helpext.obj \ $(OBJS)\advlib_hyperlinkg.obj \ $(OBJS)\advlib_laywin.obj \ + $(OBJS)\advlib_notifmsgg.obj \ $(OBJS)\advlib_odcombo.obj \ $(OBJS)\advlib_propdlg.obj \ $(OBJS)\advlib_sashwin.obj \ @@ -7461,6 +7469,11 @@ $(OBJS)\monodll_laywin.obj: ..\..\src\generic\laywin.cpp $(CXX) /c /nologo /TP /Fo$@ $(MONODLL_CXXFLAGS) $** !endif +!if "$(USE_GUI)" == "1" +$(OBJS)\monodll_notifmsgg.obj: ..\..\src\generic\notifmsgg.cpp + $(CXX) /c /nologo /TP /Fo$@ $(MONODLL_CXXFLAGS) $** +!endif + !if "$(USE_GUI)" == "1" $(OBJS)\monodll_odcombo.obj: ..\..\src\generic\odcombo.cpp $(CXX) /c /nologo /TP /Fo$@ $(MONODLL_CXXFLAGS) $** @@ -9551,6 +9564,11 @@ $(OBJS)\monolib_laywin.obj: ..\..\src\generic\laywin.cpp $(CXX) /c /nologo /TP /Fo$@ $(MONOLIB_CXXFLAGS) $** !endif +!if "$(USE_GUI)" == "1" +$(OBJS)\monolib_notifmsgg.obj: ..\..\src\generic\notifmsgg.cpp + $(CXX) /c /nologo /TP /Fo$@ $(MONOLIB_CXXFLAGS) $** +!endif + !if "$(USE_GUI)" == "1" $(OBJS)\monolib_odcombo.obj: ..\..\src\generic\odcombo.cpp $(CXX) /c /nologo /TP /Fo$@ $(MONOLIB_CXXFLAGS) $** @@ -12985,6 +13003,9 @@ $(OBJS)\advdll_hyperlinkg.obj: ..\..\src\generic\hyperlinkg.cpp $(OBJS)\advdll_laywin.obj: ..\..\src\generic\laywin.cpp $(CXX) /c /nologo /TP /Fo$@ $(ADVDLL_CXXFLAGS) $** +$(OBJS)\advdll_notifmsgg.obj: ..\..\src\generic\notifmsgg.cpp + $(CXX) /c /nologo /TP /Fo$@ $(ADVDLL_CXXFLAGS) $** + $(OBJS)\advdll_odcombo.obj: ..\..\src\generic\odcombo.cpp $(CXX) /c /nologo /TP /Fo$@ $(ADVDLL_CXXFLAGS) $** @@ -13077,6 +13098,9 @@ $(OBJS)\advlib_hyperlinkg.obj: ..\..\src\generic\hyperlinkg.cpp $(OBJS)\advlib_laywin.obj: ..\..\src\generic\laywin.cpp $(CXX) /c /nologo /TP /Fo$@ $(ADVLIB_CXXFLAGS) $** +$(OBJS)\advlib_notifmsgg.obj: ..\..\src\generic\notifmsgg.cpp + $(CXX) /c /nologo /TP /Fo$@ $(ADVLIB_CXXFLAGS) $** + $(OBJS)\advlib_odcombo.obj: ..\..\src\generic\odcombo.cpp $(CXX) /c /nologo /TP /Fo$@ $(ADVLIB_CXXFLAGS) $** diff --git a/build/msw/makefile.wat b/build/msw/makefile.wat index c82e9b4db1..8823b2ee9e 100644 --- a/build/msw/makefile.wat +++ b/build/msw/makefile.wat @@ -689,6 +689,7 @@ ____ADVANCED_SRC_FILENAMES_OBJECTS = & $(OBJS)\monodll_helpext.obj & $(OBJS)\monodll_hyperlinkg.obj & $(OBJS)\monodll_laywin.obj & + $(OBJS)\monodll_notifmsgg.obj & $(OBJS)\monodll_odcombo.obj & $(OBJS)\monodll_propdlg.obj & $(OBJS)\monodll_sashwin.obj & @@ -720,6 +721,7 @@ ____ADVANCED_SRC_FILENAMES_OBJECTS = & $(OBJS)\monodll_helpext.obj & $(OBJS)\monodll_hyperlinkg.obj & $(OBJS)\monodll_laywin.obj & + $(OBJS)\monodll_notifmsgg.obj & $(OBJS)\monodll_odcombo.obj & $(OBJS)\monodll_propdlg.obj & $(OBJS)\monodll_sashwin.obj & @@ -1339,6 +1341,7 @@ ____ADVANCED_SRC_FILENAMES_1_OBJECTS = & $(OBJS)\monolib_helpext.obj & $(OBJS)\monolib_hyperlinkg.obj & $(OBJS)\monolib_laywin.obj & + $(OBJS)\monolib_notifmsgg.obj & $(OBJS)\monolib_odcombo.obj & $(OBJS)\monolib_propdlg.obj & $(OBJS)\monolib_sashwin.obj & @@ -1370,6 +1373,7 @@ ____ADVANCED_SRC_FILENAMES_1_OBJECTS = & $(OBJS)\monolib_helpext.obj & $(OBJS)\monolib_hyperlinkg.obj & $(OBJS)\monolib_laywin.obj & + $(OBJS)\monolib_notifmsgg.obj & $(OBJS)\monolib_odcombo.obj & $(OBJS)\monolib_propdlg.obj & $(OBJS)\monolib_sashwin.obj & @@ -2411,6 +2415,7 @@ ____ADVANCED_SRC_FILENAMES_2_OBJECTS = & $(OBJS)\advdll_helpext.obj & $(OBJS)\advdll_hyperlinkg.obj & $(OBJS)\advdll_laywin.obj & + $(OBJS)\advdll_notifmsgg.obj & $(OBJS)\advdll_odcombo.obj & $(OBJS)\advdll_propdlg.obj & $(OBJS)\advdll_sashwin.obj & @@ -2442,6 +2447,7 @@ ____ADVANCED_SRC_FILENAMES_2_OBJECTS = & $(OBJS)\advdll_helpext.obj & $(OBJS)\advdll_hyperlinkg.obj & $(OBJS)\advdll_laywin.obj & + $(OBJS)\advdll_notifmsgg.obj & $(OBJS)\advdll_odcombo.obj & $(OBJS)\advdll_propdlg.obj & $(OBJS)\advdll_sashwin.obj & @@ -2483,6 +2489,7 @@ ____ADVANCED_SRC_FILENAMES_3_OBJECTS = & $(OBJS)\advlib_helpext.obj & $(OBJS)\advlib_hyperlinkg.obj & $(OBJS)\advlib_laywin.obj & + $(OBJS)\advlib_notifmsgg.obj & $(OBJS)\advlib_odcombo.obj & $(OBJS)\advlib_propdlg.obj & $(OBJS)\advlib_sashwin.obj & @@ -2514,6 +2521,7 @@ ____ADVANCED_SRC_FILENAMES_3_OBJECTS = & $(OBJS)\advlib_helpext.obj & $(OBJS)\advlib_hyperlinkg.obj & $(OBJS)\advlib_laywin.obj & + $(OBJS)\advlib_notifmsgg.obj & $(OBJS)\advlib_odcombo.obj & $(OBJS)\advlib_propdlg.obj & $(OBJS)\advlib_sashwin.obj & @@ -7603,6 +7611,11 @@ $(OBJS)\monodll_laywin.obj : .AUTODEPEND ..\..\src\generic\laywin.cpp $(CXX) -bt=nt -zq -fo=$^@ $(MONODLL_CXXFLAGS) $< !endif +!ifeq USE_GUI 1 +$(OBJS)\monodll_notifmsgg.obj : .AUTODEPEND ..\..\src\generic\notifmsgg.cpp + $(CXX) -bt=nt -zq -fo=$^@ $(MONODLL_CXXFLAGS) $< +!endif + !ifeq USE_GUI 1 $(OBJS)\monodll_odcombo.obj : .AUTODEPEND ..\..\src\generic\odcombo.cpp $(CXX) -bt=nt -zq -fo=$^@ $(MONODLL_CXXFLAGS) $< @@ -9795,6 +9808,11 @@ $(OBJS)\monolib_laywin.obj : .AUTODEPEND ..\..\src\generic\laywin.cpp $(CXX) -bt=nt -zq -fo=$^@ $(MONOLIB_CXXFLAGS) $< !endif +!ifeq USE_GUI 1 +$(OBJS)\monolib_notifmsgg.obj : .AUTODEPEND ..\..\src\generic\notifmsgg.cpp + $(CXX) -bt=nt -zq -fo=$^@ $(MONOLIB_CXXFLAGS) $< +!endif + !ifeq USE_GUI 1 $(OBJS)\monolib_odcombo.obj : .AUTODEPEND ..\..\src\generic\odcombo.cpp $(CXX) -bt=nt -zq -fo=$^@ $(MONOLIB_CXXFLAGS) $< @@ -13431,6 +13449,9 @@ $(OBJS)\advdll_hyperlinkg.obj : .AUTODEPEND ..\..\src\generic\hyperlinkg.cpp $(OBJS)\advdll_laywin.obj : .AUTODEPEND ..\..\src\generic\laywin.cpp $(CXX) -bt=nt -zq -fo=$^@ $(ADVDLL_CXXFLAGS) $< +$(OBJS)\advdll_notifmsgg.obj : .AUTODEPEND ..\..\src\generic\notifmsgg.cpp + $(CXX) -bt=nt -zq -fo=$^@ $(ADVDLL_CXXFLAGS) $< + $(OBJS)\advdll_odcombo.obj : .AUTODEPEND ..\..\src\generic\odcombo.cpp $(CXX) -bt=nt -zq -fo=$^@ $(ADVDLL_CXXFLAGS) $< @@ -13523,6 +13544,9 @@ $(OBJS)\advlib_hyperlinkg.obj : .AUTODEPEND ..\..\src\generic\hyperlinkg.cpp $(OBJS)\advlib_laywin.obj : .AUTODEPEND ..\..\src\generic\laywin.cpp $(CXX) -bt=nt -zq -fo=$^@ $(ADVLIB_CXXFLAGS) $< +$(OBJS)\advlib_notifmsgg.obj : .AUTODEPEND ..\..\src\generic\notifmsgg.cpp + $(CXX) -bt=nt -zq -fo=$^@ $(ADVLIB_CXXFLAGS) $< + $(OBJS)\advlib_odcombo.obj : .AUTODEPEND ..\..\src\generic\odcombo.cpp $(CXX) -bt=nt -zq -fo=$^@ $(ADVLIB_CXXFLAGS) $< diff --git a/build/msw/wx_adv.dsp b/build/msw/wx_adv.dsp index 387e2d3b3a..4a2778eaa0 100644 --- a/build/msw/wx_adv.dsp +++ b/build/msw/wx_adv.dsp @@ -727,6 +727,10 @@ SOURCE=..\..\src\generic\laywin.cpp # End Source File # Begin Source File +SOURCE=..\..\src\generic\notifmsgg.cpp +# End Source File +# Begin Source File + SOURCE=..\..\src\generic\odcombo.cpp # End Source File # Begin Source File @@ -1264,6 +1268,10 @@ SOURCE=..\..\include\wx\generic\laywin.h # End Source File # Begin Source File +SOURCE=..\..\include\wx\generic\notifmsg.h +# End Source File +# Begin Source File + SOURCE=..\..\include\wx\generic\propdlg.h # End Source File # Begin Source File @@ -1340,6 +1348,10 @@ SOURCE=..\..\include\wx\laywin.h # End Source File # Begin Source File +SOURCE=..\..\include\wx\notifmsg.h +# End Source File +# Begin Source File + SOURCE=..\..\include\wx\odcombo.h # End Source File # Begin Source File diff --git a/build/msw/wx_core.dsp b/build/msw/wx_core.dsp index f5df6be904..c95ed92121 100644 --- a/build/msw/wx_core.dsp +++ b/build/msw/wx_core.dsp @@ -8440,6 +8440,10 @@ SOURCE=..\..\include\wx\generic\notebook.h # End Source File # Begin Source File +SOURCE=..\..\include\wx\generic\notifmsg.h +# End Source File +# Begin Source File + SOURCE=..\..\include\wx\generic\numdlgg.h # End Source File # Begin Source File @@ -9244,6 +9248,10 @@ SOURCE=..\..\include\wx\notebook.h # End Source File # Begin Source File +SOURCE=..\..\include\wx\notifmsg.h +# End Source File +# Begin Source File + SOURCE=..\..\include\wx\numdlg.h # End Source File # Begin Source File diff --git a/configure b/configure index f33124c9b4..fc39feac0f 100755 --- a/configure +++ b/configure @@ -1,5 +1,5 @@ #! /bin/sh -# From configure.in Id: configure.in 50116 2007-11-20 22:35:40Z VS . +# From configure.in Id: configure.in 50135 2007-11-21 14:24:40Z VZ . # Guess values for system-dependent variables and create Makefiles. # Generated by GNU Autoconf 2.61 for wxWidgets 2.9.0. # @@ -1781,6 +1781,7 @@ Optional Features: --enable-listbox use wxListBox class --enable-listctrl use wxListCtrl class --enable-notebook use wxNotebook class + --enable-notifmsg use wxNotificationMessage class --enable-odcombobox use wxOwnerDrawnComboBox class --enable-radiobox use wxRadioBox class --enable-radiobtn use wxRadioButton class @@ -10692,6 +10693,50 @@ fi echo "${ECHO_T}$result" >&6; } + enablestring= + defaultval=$wxUSE_ALL_FEATURES + if test -z "$defaultval"; then + if test x"$enablestring" = xdisable; then + defaultval=yes + else + defaultval=no + fi + fi + + { echo "$as_me:$LINENO: checking for --${enablestring:-enable}-notifmsg" >&5 +echo $ECHO_N "checking for --${enablestring:-enable}-notifmsg... $ECHO_C" >&6; } + # Check whether --enable-notifmsg was given. +if test "${enable_notifmsg+set}" = set; then + enableval=$enable_notifmsg; + if test "$enableval" = yes; then + wx_cv_use_notifmsg='wxUSE_NOTIFICATION_MESSAGE=yes' + else + wx_cv_use_notifmsg='wxUSE_NOTIFICATION_MESSAGE=no' + fi + +else + + wx_cv_use_notifmsg='wxUSE_NOTIFICATION_MESSAGE=${'DEFAULT_wxUSE_NOTIFICATION_MESSAGE":-$defaultval}" + +fi + + + eval "$wx_cv_use_notifmsg" + + if test x"$enablestring" = xdisable; then + if test $wxUSE_NOTIFICATION_MESSAGE = yes; then + result=no + else + result=yes + fi + else + result=$wxUSE_NOTIFICATION_MESSAGE + fi + + { echo "$as_me:$LINENO: result: $result" >&5 +echo "${ECHO_T}$result" >&6; } + + enablestring= defaultval=$wxUSE_ALL_FEATURES if test -z "$defaultval"; then @@ -45133,6 +45178,13 @@ _ACEOF SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS notebook" fi +if test "$wxUSE_NOTIFICATION_MESSAGE" = "yes"; then + cat >>confdefs.h <<\_ACEOF +#define wxUSE_NOTIFICATION_MESSAGE 1 +_ACEOF + +fi + if test "$wxUSE_ODCOMBOBOX" = "yes"; then cat >>confdefs.h <<\_ACEOF #define wxUSE_ODCOMBOBOX 1 diff --git a/configure.in b/configure.in index d578f98a35..0111e0580d 100644 --- a/configure.in +++ b/configure.in @@ -821,6 +821,7 @@ WX_ARG_FEATURE(listbook, [ --enable-listbook use wxListbook class], wx WX_ARG_FEATURE(listbox, [ --enable-listbox use wxListBox class], wxUSE_LISTBOX) WX_ARG_FEATURE(listctrl, [ --enable-listctrl use wxListCtrl class], wxUSE_LISTCTRL) WX_ARG_FEATURE(notebook, [ --enable-notebook use wxNotebook class], wxUSE_NOTEBOOK) +WX_ARG_FEATURE(notifmsg, [ --enable-notifmsg use wxNotificationMessage class], wxUSE_NOTIFICATION_MESSAGE) WX_ARG_FEATURE(odcombobox, [ --enable-odcombobox use wxOwnerDrawnComboBox class], wxUSE_ODCOMBOBOX) WX_ARG_FEATURE(radiobox, [ --enable-radiobox use wxRadioBox class], wxUSE_RADIOBOX) WX_ARG_FEATURE(radiobtn, [ --enable-radiobtn use wxRadioButton class], wxUSE_RADIOBTN) @@ -6508,6 +6509,10 @@ if test "$wxUSE_NOTEBOOK" = "yes"; then SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS notebook" fi +if test "$wxUSE_NOTIFICATION_MESSAGE" = "yes"; then + AC_DEFINE(wxUSE_NOTIFICATION_MESSAGE) +fi + if test "$wxUSE_ODCOMBOBOX" = "yes"; then AC_DEFINE(wxUSE_ODCOMBOBOX) USES_CONTROLS=1 diff --git a/docs/changes.txt b/docs/changes.txt index fe6bb73f8d..757591fd5b 100644 --- a/docs/changes.txt +++ b/docs/changes.txt @@ -193,6 +193,7 @@ All (GUI): - Added {wxTextCtrl,wxComboBox}::AutoComplete() and AutoCompleteFileNames() - Added wxH[V]ScrolledWindow (Brad Anderson, Bryan Petty). +- Added wxNotificationMessage class for non-intrusive notifications - Added wxDC::StretchBlit() for wxMac and wxMSW (Vince Harron). - Added support for drop down toolbar buttons (Tim Kosse). - Added support for labels for toolbar controls (Vince Harron). diff --git a/docs/latex/wx/classes.tex b/docs/latex/wx/classes.tex index e19606d4bc..cfa0522bcc 100644 --- a/docs/latex/wx/classes.tex +++ b/docs/latex/wx/classes.tex @@ -291,6 +291,7 @@ \input notebook.tex \input noteevt.tex \input nbsizer.tex +\input notifmsg.tex \input notifevt.tex \input object.tex \input objectdataptr.tex diff --git a/docs/latex/wx/notifmsg.tex b/docs/latex/wx/notifmsg.tex new file mode 100644 index 0000000000..481f6ac428 --- /dev/null +++ b/docs/latex/wx/notifmsg.tex @@ -0,0 +1,94 @@ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% Name: notifmsg.tex +%% Purpose: wxNotificationMessage documentation +%% Author: Vadim Zeitlin +%% Created: 2007-11-24 +%% RCS-ID: $Id: cmdlpars.tex 49199 2007-10-17 17:32:16Z VZ $ +%% Copyright: (c) 2007 Vadim Zeitlin +%% License: wxWindows license +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\section{\class{wxNotificationMessage}}\label{wxnotificationmessage} + +This class allows to show the user a message non intrusively. Currently it is +implemented natively only for the Maemo platform and uses (non-modal) dialogs +for the display of the notifications under the other platforms but it will be +extended to use the platform-specific notifications in the other ports in the +future. + +Notice that this class is not a window and so doesn't derive from wxWindow. + +\wxheading{Derived from} + +\helpref{wxEvtHandler}{wxevthandler} + +\wxheading{Include files} + + + +\latexignore{\rtfignore{\wxheading{Members}}} + + +\membersection{wxNotificationMessage::wxNotificationMessage}\label{wxnotificationmessagewxnotificationmessage} + +\func{}{wxNotificationMessage}{\void} + +Default constructor, use \helpref{SetParent}{\wxnotificationmessagesetparent}, +\helpref{SetTitle}{wxnotificationmessagesettitle} and +\helpref{SetMessage}{wxnotificationmessagesetmessage} to initialize the object +before showing it. + + +\func{}{wxNotificationMessage}{\param{const wxString\& }{title}, \param{const wxString\& }{message = wxString()}, \param{wxWindow* }{parent = NULL}} + +Create a notification object with the given title and message (the +latter may be empty in which case only the title will be shown). + + +\membersection{wxNotificationMessage::Close}\label{wxnotificationmessageclose} + +\func{bool}{Close}{\void} + +Hides the notification. + +Returns \true if it was hidden or \false if it couldn't be done (e.g. on some +systems automatically hidden notifications can't be hidden manually) + + +\membersection{wxNotificationMessage::SetMessage}\label{wxnotificationmessagesetmessage} + +\func{void}{SetMessage}{\param{const wxString\& }{message}} + +Set the main text of the notification. + + +\membersection{wxNotificationMessage::SetParent}\label{wxnotificationmessagesetparent} + +\func{void}{SetParent}{\param{wxWindow* }{parent}} + +Set the parent for this notification: the notification will be associated with +the top level parent of this window or, if this method is not called, with the +main application window by default + + +\membersection{wxNotificationMessage::SetTitle}\label{wxnotificationmessagesettitle} + +\func{void}{SetTitle}{\param{const wxString\& }{title}} + +Set the title, it must be a concise string, use +\helpref{SetMessage}{wxnotificationmessagesetmessage} to give the user more +details. + + +\membersection{wxNotificationMessage::Show}\label{wxnotificationmessageshow} + +\func{bool}{Show}{\param{int }{timeout = Timeout\_Auto}} + +Show the notification to the user and hides it after timeout seconds +pass. Special values \texttt{Timeout\_Auto} and \texttt{Timeout\_Never} can be +used here, notice that you shouldn't rely on \arg{timeout} being exactly +respected because the current platform may only support default timeout value +and also because the user may be able to close the notification. + +Returns \false if an error occurred. + diff --git a/include/wx/chkconf.h b/include/wx/chkconf.h index 237b479b54..7ff4cb9010 100644 --- a/include/wx/chkconf.h +++ b/include/wx/chkconf.h @@ -741,6 +741,14 @@ # endif #endif /* !defined(wxUSE_NOTEBOOK) */ +#ifndef wxUSE_NOTIFICATION_MESSAGE +# ifdef wxABORT_ON_CONFIG_ERROR +# error "wxUSE_NOTIFICATION_MESSAGE must be defined." +# else +# define wxUSE_NOTIFICATION_MESSAGE 0 +# endif +#endif /* !defined(wxUSE_NOTIFICATION_MESSAGE) */ + #ifndef wxUSE_ODCOMBOBOX # ifdef wxABORT_ON_CONFIG_ERROR # error "wxUSE_ODCOMBOBOX must be defined." diff --git a/include/wx/generic/notifmsg.h b/include/wx/generic/notifmsg.h new file mode 100644 index 0000000000..e4beca030e --- /dev/null +++ b/include/wx/generic/notifmsg.h @@ -0,0 +1,60 @@ +/////////////////////////////////////////////////////////////////////////////// +// Name: wx/generic/notifmsg.h +// Purpose: generic implementation of wxNotificationMessage +// Author: Vadim Zeitlin +// Created: 2007-11-24 +// RCS-ID: $Id$ +// Copyright: (c) 2007 Vadim Zeitlin +// Licence: wxWindows licence +/////////////////////////////////////////////////////////////////////////////// + +#ifndef _WX_GENERIC_NOTIFMSG_H_ +#define _WX_GENERIC_NOTIFMSG_H_ + +class wxNotificationMessageDialog; + +// ---------------------------------------------------------------------------- +// wxNotificationMessage +// ---------------------------------------------------------------------------- + +class WXDLLIMPEXP_ADV wxNotificationMessage : public wxNotificationMessageBase +{ +public: + wxNotificationMessage() { Init(); } + wxNotificationMessage(const wxString& title, + const wxString& message = wxString(), + wxWindow *parent = NULL) + : wxNotificationMessageBase(title, message, parent) + { + Init(); + } + + virtual ~wxNotificationMessage(); + + + virtual bool Show(int timeout = Timeout_Auto); + virtual bool Close(); + + // generic implementation-specific methods + + // get/set the default timeout (used if Timeout_Auto is specified) + static int GetDefaultTimeout() { return ms_timeout; } + static void SetDefaultTimeout(int timeout); + +private: + void Init(); + + + // default timeout + static int ms_timeout; + + // notification message is represented by a modeless dialog in this + // implementation + wxNotificationMessageDialog *m_dialog; + + + DECLARE_NO_COPY_CLASS(wxNotificationMessage) +}; + +#endif // _WX_GENERIC_NOTIFMSG_H_ + diff --git a/include/wx/gtk/hildon/notifmsg.h b/include/wx/gtk/hildon/notifmsg.h new file mode 100644 index 0000000000..5f3b5504f7 --- /dev/null +++ b/include/wx/gtk/hildon/notifmsg.h @@ -0,0 +1,59 @@ +/////////////////////////////////////////////////////////////////////////////// +// Name: wx/gtk/hildon/notifmsg.h +// Purpose: Hildon implementation of wxNotificationMessage +// Author: Vadim Zeitlin +// Created: 2007-11-21 +// RCS-ID: $Id$ +// Copyright: (c) 2007 Vadim Zeitlin +// Licence: wxWindows licence +/////////////////////////////////////////////////////////////////////////////// + +#ifndef _WX_GTK_HILDON_NOTIFMSG_H_ +#define _WX_GTK_HILDON_NOTIFMSG_H_ + +typedef struct _HildonBanner HildonBanner; + +// ---------------------------------------------------------------------------- +// wxNotificationMessage +// ---------------------------------------------------------------------------- + +class WXDLLIMPEXP_ADV wxNotificationMessage : public wxNotificationMessageBase +{ +public: + wxNotificationMessage() { Init(); } + wxNotificationMessage(const wxString& title, + const wxString& message = wxString(), + wxWindow *parent = NULL) + : wxNotificationMessageBase(title, message, parent) + { + Init(); + } + + virtual ~wxNotificationMessage(); + + + virtual bool Show(int timeout = Timeout_Auto); + virtual bool Close(); + +private: + void Init() { m_banner = NULL; } + + // return the string containing markup for both the title and, if + // specified, the message + wxString HildonGetMarkup() const; + + // returns the widget of the parent GtkWindow to use or NULL + GtkWidget *HildonGetWindow() const; + + + // the banner we're showing, only non-NULL if it's an animation or progress + // banner as the informational dialog times out on its own and we don't + // need to store it (nor do we have any way to get its widget anyhow) + GtkWidget *m_banner; + + + DECLARE_NO_COPY_CLASS(wxNotificationMessage) +}; + +#endif // _WX_GTK_HILDON_NOTIFMSG_H_ + diff --git a/include/wx/mac/setup0.h b/include/wx/mac/setup0.h index a617ff9a49..1e5083e394 100644 --- a/include/wx/mac/setup0.h +++ b/include/wx/mac/setup0.h @@ -852,6 +852,17 @@ // Recommended setting: 1 (can't be disabled under MSW) #define wxUSE_MENUS 1 +// Use wxNotificationMessage. +// +// wxNotificationMessage allows to show non-intrusive messages to the user +// using balloons, banners, popups or whatever is the appropriate method for +// the current platform. +// +// Default is 1. +// +// Recommended setting: 1 +#define wxUSE_NOTIFICATION_MESSAGE 1 + // Use wxSashWindow class. // // Default is 1. diff --git a/include/wx/motif/setup0.h b/include/wx/motif/setup0.h index 5637c68c82..b9a5c9c6b0 100644 --- a/include/wx/motif/setup0.h +++ b/include/wx/motif/setup0.h @@ -851,6 +851,17 @@ // Recommended setting: 1 (can't be disabled under MSW) #define wxUSE_MENUS 1 +// Use wxNotificationMessage. +// +// wxNotificationMessage allows to show non-intrusive messages to the user +// using balloons, banners, popups or whatever is the appropriate method for +// the current platform. +// +// Default is 1. +// +// Recommended setting: 1 +#define wxUSE_NOTIFICATION_MESSAGE 1 + // Use wxSashWindow class. // // Default is 1. diff --git a/include/wx/msw/setup0.h b/include/wx/msw/setup0.h index 58b967d0d8..709b7fe5f9 100644 --- a/include/wx/msw/setup0.h +++ b/include/wx/msw/setup0.h @@ -851,6 +851,17 @@ // Recommended setting: 1 (can't be disabled under MSW) #define wxUSE_MENUS 1 +// Use wxNotificationMessage. +// +// wxNotificationMessage allows to show non-intrusive messages to the user +// using balloons, banners, popups or whatever is the appropriate method for +// the current platform. +// +// Default is 1. +// +// Recommended setting: 1 +#define wxUSE_NOTIFICATION_MESSAGE 1 + // Use wxSashWindow class. // // Default is 1. diff --git a/include/wx/msw/wince/setup.h b/include/wx/msw/wince/setup.h index cefc9000ac..fb40f30a33 100644 --- a/include/wx/msw/wince/setup.h +++ b/include/wx/msw/wince/setup.h @@ -851,6 +851,17 @@ // Recommended setting: 1 (can't be disabled under MSW) #define wxUSE_MENUS 1 +// Use wxNotificationMessage. +// +// wxNotificationMessage allows to show non-intrusive messages to the user +// using balloons, banners, popups or whatever is the appropriate method for +// the current platform. +// +// Default is 1. +// +// Recommended setting: 1 +#define wxUSE_NOTIFICATION_MESSAGE 1 + // Use wxSashWindow class. // // Default is 1. diff --git a/include/wx/notifmsg.h b/include/wx/notifmsg.h new file mode 100644 index 0000000000..532b258be2 --- /dev/null +++ b/include/wx/notifmsg.h @@ -0,0 +1,131 @@ +/////////////////////////////////////////////////////////////////////////////// +// Name: wx/notifmsg.h +// Purpose: class allowing to show notification messages to the user +// Author: Vadim Zeitlin +// Created: 2007-11-19 +// RCS-ID: $Id$ +// Copyright: (c) 2007 Vadim Zeitlin +// Licence: wxWindows licence +/////////////////////////////////////////////////////////////////////////////// + +#ifndef _WX_NOTIFMSG_H_ +#define _WX_NOTIFMSG_H_ + +#include "wx/event.h" + +#if wxUSE_NOTIFICATION_MESSAGE + +// ---------------------------------------------------------------------------- +// wxNotificationMessage: allows to show the user a message non intrusively +// ---------------------------------------------------------------------------- + +// notice that this class is not a window and so doesn't derive from wxWindow + +class WXDLLIMPEXP_ADV wxNotificationMessageBase : public wxEvtHandler +{ +public: + // ctors and initializers + // ---------------------- + + // default ctor, use setters below to initialize it later + wxNotificationMessageBase() { } + + // create a notification object with the given title and message (the + // latter may be empty in which case only the title will be shown) + wxNotificationMessageBase(const wxString& title, + const wxString& message = wxString(), + wxWindow *parent = NULL) + : m_title(title), + m_message(message), + m_parent(parent) + { + } + + // note that the setters must be called before Show() + + // set the title: short string, markup not allowed + void SetTitle(const wxString& title) { m_title = title; } + + // set the text of the message: this is a longer string than the title and + // some platforms allow simple HTML-like markup in it + void SetMessage(const wxString& message) { m_message = message; } + + // set the parent for this notification: we'll be associated with the top + // level parent of this window or, if this method is not called, with the + // main application window by default + void SetParent(wxWindow *parent) { m_parent = parent; } + + + // showing and hiding + // ------------------ + + // possible values for Show() timeout + enum + { + Timeout_Auto = -1, // notification will be hidden automatically + Timeout_Never = 0 // notification will never time out + }; + + // show the notification to the user and hides it after timeout seconds + // pass (special values Timeout_Auto and Timeout_Never can be used) + // + // returns false if an error occurred + virtual bool Show(int timeout = Timeout_Auto) = 0; + + // hide the notification, returns true if it was hidden or false if it + // couldn't be done (e.g. on some systems automatically hidden + // notifications can't be hidden manually) + virtual bool Close() = 0; + +protected: + // accessors for the derived classes + const wxString& GetTitle() const { return m_title; } + const wxString& GetMessage() const { return m_message; } + wxWindow *GetParent() const { return m_parent; } + + // return the concatenation of title and message separated by a new line, + // this is suitable for simple implementation which have no support for + // separate title and message parts of the notification + wxString GetFullMessage() const + { + wxString text(m_title); + if ( !m_message.empty() ) + { + text << "\n\n" << m_message; + } + + return text; + } + +private: + wxString m_title, + m_message; + + wxWindow *m_parent; + + DECLARE_NO_COPY_CLASS(wxNotificationMessageBase) +}; + +#define wxUSE_GENERIC_NOTIFICATION_MESSAGE 1 + +#if defined(__WXGTK__) && wxUSE_LIBHILDON + // we always use the native implementation in Hildon while the other ports + // will fall back to the generic one even if they have a native version too + #undef wxUSE_GENERIC_NOTIFICATION_MESSAGE + #define wxUSE_GENERIC_NOTIFICATION_MESSAGE 0 + + #include "wx/gtk/hildon/notifmsg.h" +/* + TODO: provide support for + - libnotify (Gnome) + - Snarl (http://www.fullphat.net/, Win32) + - Growl (http://growl.info/, OS X) + */ +#else + #include "wx/generic/notifmsg.h" +#endif + +#endif // wxUSE_NOTIFICATION_MESSAGE + +#endif // _WX_NOTIFMSG_H_ + diff --git a/include/wx/os2/setup0.h b/include/wx/os2/setup0.h index 7de4161ad8..be39d4b4fa 100644 --- a/include/wx/os2/setup0.h +++ b/include/wx/os2/setup0.h @@ -851,6 +851,17 @@ // Recommended setting: 1 (can't be disabled under MSW) #define wxUSE_MENUS 1 +// Use wxNotificationMessage. +// +// wxNotificationMessage allows to show non-intrusive messages to the user +// using balloons, banners, popups or whatever is the appropriate method for +// the current platform. +// +// Default is 1. +// +// Recommended setting: 1 +#define wxUSE_NOTIFICATION_MESSAGE 1 + // Use wxSashWindow class. // // Default is 1. diff --git a/include/wx/palmos/setup0.h b/include/wx/palmos/setup0.h index 313ba4f3bd..01ee5a4cf8 100644 --- a/include/wx/palmos/setup0.h +++ b/include/wx/palmos/setup0.h @@ -851,6 +851,17 @@ // Recommended setting: 1 (can't be disabled under MSW) #define wxUSE_MENUS 1 +// Use wxNotificationMessage. +// +// wxNotificationMessage allows to show non-intrusive messages to the user +// using balloons, banners, popups or whatever is the appropriate method for +// the current platform. +// +// Default is 1. +// +// Recommended setting: 1 +#define wxUSE_NOTIFICATION_MESSAGE 1 + // Use wxSashWindow class. // // Default is 1. diff --git a/include/wx/setup_inc.h b/include/wx/setup_inc.h index 5e329cba58..07ed994071 100644 --- a/include/wx/setup_inc.h +++ b/include/wx/setup_inc.h @@ -847,6 +847,17 @@ // Recommended setting: 1 (can't be disabled under MSW) #define wxUSE_MENUS 1 +// Use wxNotificationMessage. +// +// wxNotificationMessage allows to show non-intrusive messages to the user +// using balloons, banners, popups or whatever is the appropriate method for +// the current platform. +// +// Default is 1. +// +// Recommended setting: 1 +#define wxUSE_NOTIFICATION_MESSAGE 1 + // Use wxSashWindow class. // // Default is 1. diff --git a/samples/dialogs/dialogs.cpp b/samples/dialogs/dialogs.cpp index ad0fff1d44..29195ad6df 100644 --- a/samples/dialogs/dialogs.cpp +++ b/samples/dialogs/dialogs.cpp @@ -29,6 +29,7 @@ #include "wx/imaglist.h" #include "wx/minifram.h" #include "wx/sysopt.h" +#include "wx/notifmsg.h" #if wxUSE_COLOURDLG #include "wx/colordlg.h" @@ -219,10 +220,16 @@ BEGIN_EVENT_TABLE(MyFrame, wxFrame) EVT_MENU(DIALOGS_PROPERTY_SHEET, MyFrame::OnPropertySheet) EVT_MENU(DIALOGS_PROPERTY_SHEET_TOOLBOOK, MyFrame::OnPropertySheet) EVT_MENU(DIALOGS_PROPERTY_SHEET_BUTTONTOOLBOOK, MyFrame::OnPropertySheet) -#endif +#endif // USE_SETTINGS_DIALOG EVT_MENU(DIALOGS_STANDARD_BUTTON_SIZER_DIALOG, MyFrame::OnStandardButtonsSizerDialog) + EVT_MENU(DIALOGS_REQUEST, MyFrame::OnRequestUserAttention) +#if wxUSE_NOTIFICATION_MESSAGE + EVT_MENU(DIALOGS_NOTIFY_AUTO, MyFrame::OnNotifMsgAuto) + EVT_MENU(DIALOGS_NOTIFY_SHOW, MyFrame::OnNotifMsgShow) + EVT_MENU(DIALOGS_NOTIFY_HIDE, MyFrame::OnNotifMsgHide) +#endif // wxUSE_NOTIFICATION_MESSAGE EVT_MENU(wxID_EXIT, MyFrame::OnExit) END_EVENT_TABLE() @@ -422,9 +429,16 @@ bool MyApp::OnInit() menuDlg->Append(wxID_ANY, _T("&Property sheets"), sheet_menu); #endif // USE_SETTINGS_DIALOG - menuDlg->Append(DIALOGS_STANDARD_BUTTON_SIZER_DIALOG, _T("&Standard Buttons Sizer Dialog")); + wxMenu *menuNotif = new wxMenu; + menuNotif->Append(DIALOGS_REQUEST, _T("&Request user attention\tCtrl-R")); +#if wxUSE_NOTIFICATION_MESSAGE + menuNotif->Append(DIALOGS_NOTIFY_AUTO, "&Automatically hidden notification"); + menuNotif->Append(DIALOGS_NOTIFY_SHOW, "&Show manual notification"); + menuNotif->Append(DIALOGS_NOTIFY_HIDE, "&Hide manual notification"); +#endif // wxUSE_NOTIFICATION_MESSAGE + menuDlg->AppendSubMenu(menuNotif, "&User notifications"); - menuDlg->Append(DIALOGS_REQUEST, _T("&Request user attention\tCtrl-R")); + menuDlg->Append(DIALOGS_STANDARD_BUTTON_SIZER_DIALOG, _T("&Standard Buttons Sizer Dialog")); menuDlg->AppendSeparator(); menuDlg->Append(wxID_EXIT, _T("E&xit\tAlt-X")); @@ -483,11 +497,22 @@ MyFrame::MyFrame(wxWindow *parent, } #endif // wxUSE_COLOURDLG +#if wxUSE_NOTIFICATION_MESSAGE + m_notifMsg = NULL; +#endif // wxUSE_NOTIFICATION_MESSAGE + #if wxUSE_STATUSBAR CreateStatusBar(); #endif // wxUSE_STATUSBAR } +MyFrame::~MyFrame() +{ +#if wxUSE_NOTIFICATION_MESSAGE + delete m_notifMsg; +#endif // wxUSE_NOTIFICATION_MESSAGE +} + #if wxUSE_COLOURDLG void MyFrame::ChooseColour(wxCommandEvent& WXUNUSED(event)) @@ -1147,6 +1172,50 @@ void MyFrame::OnRequestUserAttention(wxCommandEvent& WXUNUSED(event)) RequestUserAttention(wxUSER_ATTENTION_ERROR); } +#if wxUSE_NOTIFICATION_MESSAGE + +void MyFrame::OnNotifMsgAuto(wxCommandEvent& WXUNUSED(event)) +{ + if ( !wxNotificationMessage + ( + "Automatic Notification", + "Nothing important has happened\n" + "this notification will disappear soon." + ).Show() ) + { + wxLogStatus("Failed to show notification message"); + } +} + +void MyFrame::OnNotifMsgShow(wxCommandEvent& WXUNUSED(event)) +{ + if ( !m_notifMsg ) + { + m_notifMsg = new wxNotificationMessage + ( + "wxWidgets Manual Notification", + "You can hide this notification from the menu", + this + ); + } + + if ( !m_notifMsg->Show(wxNotificationMessage::Timeout_Never) ) + { + wxLogStatus("Failed to show manual notification message"); + } +} + +void MyFrame::OnNotifMsgHide(wxCommandEvent& WXUNUSED(event)) +{ + if ( m_notifMsg ) + { + if ( !m_notifMsg->Close() ) + wxLogStatus("Failed to hide manual notification message"); + } +} + +#endif // wxUSE_NOTIFICATION_MESSAGE + void MyFrame::OnStandardButtonsSizerDialog(wxCommandEvent& WXUNUSED(event)) { StdButtonSizerDialog dialog(this); diff --git a/samples/dialogs/dialogs.h b/samples/dialogs/dialogs.h index 9e46371a4e..659e9c4e79 100644 --- a/samples/dialogs/dialogs.h +++ b/samples/dialogs/dialogs.h @@ -206,6 +206,7 @@ class MyFrame: public wxFrame { public: MyFrame(wxWindow *parent, const wxString& title); + virtual ~MyFrame(); #if wxUSE_MSGDLG void MessageBox(wxCommandEvent& event); @@ -304,7 +305,14 @@ public: #endif // USE_FONTDLG_GENERIC void OnPropertySheet(wxCommandEvent& event); + void OnRequestUserAttention(wxCommandEvent& event); +#if wxUSE_NOTIFICATION_MESSAGE + void OnNotifMsgAuto(wxCommandEvent& event); + void OnNotifMsgShow(wxCommandEvent& event); + void OnNotifMsgHide(wxCommandEvent& event); +#endif // wxUSE_NOTIFICATION_MESSAGE + void OnStandardButtonsSizerDialog(wxCommandEvent& event); void OnExit(wxCommandEvent& event); @@ -324,6 +332,10 @@ private: *m_dlgReplace; #endif // wxUSE_FINDREPLDLG +#if wxUSE_NOTIFICATION_MESSAGE + wxNotificationMessage *m_notifMsg; +#endif // wxUSE_NOTIFICATION_MESSAGE + wxColourData m_clrData; DECLARE_EVENT_TABLE() @@ -384,6 +396,9 @@ enum DIALOGS_FIND, DIALOGS_REPLACE, DIALOGS_REQUEST, + DIALOGS_NOTIFY_AUTO, + DIALOGS_NOTIFY_SHOW, + DIALOGS_NOTIFY_HIDE, DIALOGS_PROPERTY_SHEET, DIALOGS_PROPERTY_SHEET_TOOLBOOK, DIALOGS_PROPERTY_SHEET_BUTTONTOOLBOOK, diff --git a/setup.h.in b/setup.h.in index 585313f3e0..62e68e9d92 100644 --- a/setup.h.in +++ b/setup.h.in @@ -399,6 +399,8 @@ #define wxUSE_MENUS 0 +#define wxUSE_NOTIFICATION_MESSAGE 0 + #define wxUSE_SASH 0 #define wxUSE_SPLITTER 0 diff --git a/src/generic/notifmsgg.cpp b/src/generic/notifmsgg.cpp new file mode 100644 index 0000000000..2f95e1ca76 --- /dev/null +++ b/src/generic/notifmsgg.cpp @@ -0,0 +1,211 @@ +/////////////////////////////////////////////////////////////////////////////// +// Name: src/generic/notifmsgg.cpp +// Purpose: generic implementation of wxNotificationMessage +// Author: Vadim Zeitlin +// Created: 2007-11-24 +// RCS-ID: $Id$ +// Copyright: (c) 2007 Vadim Zeitlin +// Licence: wxWindows licence +/////////////////////////////////////////////////////////////////////////////// + +// ============================================================================ +// declarations +// ============================================================================ + +// ---------------------------------------------------------------------------- +// headers +// ---------------------------------------------------------------------------- + +// for compilers that support precompilation, includes "wx.h". +#include "wx/wxprec.h" + +#ifdef __BORLANDC__ + #pragma hdrstop +#endif + +// include this before the test below, wxUSE_GENERIC_NOTIFICATION_MESSAGE is +// defined in this header +#include "wx/notifmsg.h" + +#if wxUSE_GENERIC_NOTIFICATION_MESSAGE + +#ifndef WX_PRECOMP + #include "wx/dialog.h" + #include "wx/timer.h" +#endif //WX_PRECOMP + +// ---------------------------------------------------------------------------- +// wxNotificationMessageDialog +// ---------------------------------------------------------------------------- + +class wxNotificationMessageDialog : public wxDialog +{ +public: + wxNotificationMessageDialog(wxWindow *parent, + const wxString& text, + int timeout); + + void Set(wxWindow *parent, + const wxString& text, + int timeout); + + bool IsAutomatic() const { return m_timer.IsRunning(); } + void SetDeleteOnHide() { m_deleteOnHide = true; } + +private: + void OnClose(wxCloseEvent& event); + void OnTimer(wxTimerEvent& event); + + // if true, delete the dialog when it should disappear, otherwise just hide + // it (initially false) + bool m_deleteOnHide; + + // timer which will hide this dialog when it expires, if it's not running + // it means we were created without timeout + wxTimer m_timer; + + + DECLARE_EVENT_TABLE() + DECLARE_NO_COPY_CLASS(wxNotificationMessageDialog) +}; + +// ============================================================================ +// wxNotificationMessageDialog implementation +// ============================================================================ + +BEGIN_EVENT_TABLE(wxNotificationMessageDialog, wxDialog) + EVT_CLOSE(wxNotificationMessageDialog::OnClose) + + EVT_TIMER(wxID_ANY, wxNotificationMessageDialog::OnTimer) +END_EVENT_TABLE() + +wxNotificationMessageDialog::wxNotificationMessageDialog(wxWindow *parent, + const wxString& text, + int timeout) + : wxDialog(parent, wxID_ANY, _("Notice"), + wxDefaultPosition, wxDefaultSize, + 0 /* no caption, no border styles */), + m_timer(this) +{ + m_deleteOnHide = false; + + Set(parent, text, timeout); +} + +void +wxNotificationMessageDialog::Set(wxWindow * WXUNUSED(parent), + const wxString& text, + int timeout) +{ + wxSizer *sizer = CreateTextSizer(text); + SetSizerAndFit(sizer); + + if ( timeout != wxNotificationMessage::Timeout_Never ) + { + // wxTimer uses ms, timeout is in seconds + m_timer.Start(timeout*1000, true /* one shot only */); + } + else if ( m_timer.IsRunning() ) + { + m_timer.Stop(); + } +} + +void wxNotificationMessageDialog::OnClose(wxCloseEvent& event) +{ + if ( m_deleteOnHide ) + { + // we don't need to keep this dialog alive any more + Destroy(); + } + else // don't really close, just hide, as we can be shown again later + { + event.Veto(); + + Hide(); + } +} + +void wxNotificationMessageDialog::OnTimer(wxTimerEvent& WXUNUSED(event)) +{ + if ( m_deleteOnHide ) + Destroy(); + else + Hide(); +} + +// ============================================================================ +// wxNotificationMessage implementation +// ============================================================================ + +int wxNotificationMessage::ms_timeout = 10; + +/* static */ void wxNotificationMessage::SetDefaultTimeout(int timeout) +{ + wxASSERT_MSG( timeout > 0, + "negative or zero default timeout doesn't make sense" ); + + ms_timeout = timeout; +} + +void wxNotificationMessage::Init() +{ + m_dialog = NULL; +} + +wxNotificationMessage::~wxNotificationMessage() +{ + if ( m_dialog->IsAutomatic() ) + { + // we want to allow the user to create an automatically hidden + // notification just by creating a local wxNotificationMessage object + // and so we shouldn't hide the notification when this object goes out + // of scope + m_dialog->SetDeleteOnHide(); + } + else // manual dialog, hide it immediately + { + // OTOH for permanently shown dialogs only the code can hide them and + // if the object is deleted, we must do it now as it won't be + // accessible programmatically any more + delete m_dialog; + } +} + +bool wxNotificationMessage::Show(int timeout) +{ + if ( timeout == Timeout_Auto ) + { + timeout = GetDefaultTimeout(); + } + + if ( !m_dialog ) + { + m_dialog = new wxNotificationMessageDialog + ( + GetParent(), + GetFullMessage(), + timeout + ); + } + else // update the existing dialog + { + m_dialog->Set(GetParent(), GetFullMessage(), timeout); + } + + m_dialog->Show(); + + return true; +} + +bool wxNotificationMessage::Close() +{ + if ( !m_dialog ) + return false; + + m_dialog->Hide(); + + return true; +} + +#endif // wxUSE_GENERIC_NOTIFICATION_MESSAGE diff --git a/src/gtk/hildon/notifmsg.cpp b/src/gtk/hildon/notifmsg.cpp new file mode 100644 index 0000000000..3cad17868e --- /dev/null +++ b/src/gtk/hildon/notifmsg.cpp @@ -0,0 +1,126 @@ +/////////////////////////////////////////////////////////////////////////////// +// Name: gtk/hildon/notifmsg.cpp +// Purpose: Hildon implementation of wxNotificationMessage +// Author: Vadim Zeitlin +// Created: 2007-11-21 +// RCS-ID: $Id$ +// Copyright: (c) 2007 Vadim Zeitlin +// Licence: wxWindows licence +/////////////////////////////////////////////////////////////////////////////// + +// ============================================================================ +// declarations +// ============================================================================ + +// ---------------------------------------------------------------------------- +// headers +// ---------------------------------------------------------------------------- + +// for compilers that support precompilation, includes "wx.h". +#include "wx/wxprec.h" + +#ifdef __BORLANDC__ + #pragma hdrstop +#endif + +#if wxUSE_LIBHILDON + +#ifndef WX_PRECOMP +#endif //WX_PRECOMP + +#include "wx/notifmsg.h" +#include "wx/toplevel.h" + +#include + +// ============================================================================ +// wxNotificationMessage implementation +// ============================================================================ + +wxString wxNotificationMessage::HildonGetMarkup() const +{ + const wxString& message = GetMessage(), + title = GetTitle(); + + wxString text; + if ( message.empty() ) + { + text = title; + } + else // combine title with message in a single string + { + text << "" << title << "\n" + "\n" + << message; + } + + return text; +} + +GtkWidget *wxNotificationMessage::HildonGetWindow() const +{ + wxWindow *parent = GetParent(); + if ( parent ) + { + parent = wxGetTopLevelParent(parent); + if ( parent ) + { + wxTopLevelWindow * const + tlw = wxDynamicCast(parent, wxTopLevelWindow); + if ( tlw ) + return tlw->m_mainWidget; + } + } + + return NULL; +} + +bool wxNotificationMessage::Show(int timeout) +{ + if ( timeout == Timeout_Never ) + { + m_banner = hildon_banner_show_animation + ( + HildonGetWindow(), + NULL, + GetFullMessage() // markup not supported here + ); + if ( !m_banner ) + return false; + } + else // the message will time out + { + // we don't have any way to set the timeout interval so we just let it + // time out automatically + hildon_banner_show_information_with_markup + ( + HildonGetWindow(), + NULL, + HildonGetMarkup() + ); + } + + return true; +} + +bool wxNotificationMessage::Close() +{ + if ( !m_banner ) + { + // either we hadn't been shown or we are using an information banner + // which will disappear on its own, nothing we can do about it + return false; + } + + gtk_widget_destroy(m_banner); + m_banner = NULL; + + return true; +} + +wxNotificationMessage::~wxNotificationMessage() +{ + Close(); +} + +#endif // wxUSE_LIBHILDON -- 2.45.2