Add Win8+ toast notification to wxNotificationMessage.
Since Windows 8 there are native toast notifications available via WinRT defined in windows.ui.notifications.h. This adds support for these notifications via wxNotificationMessage. These notifications have to be explicitly enabled via wxNotificationMessage::MSWEnableToasts() because they require a start menu shortcut to the application.
This commit is contained in:
20
Makefile.in
20
Makefile.in
@@ -5875,6 +5875,7 @@ COND_TOOLKIT_MSW___ADVANCED_PLATFORM_SRC_OBJECTS = \
|
|||||||
monodll_richtooltip.o \
|
monodll_richtooltip.o \
|
||||||
monodll_msw_sound.o \
|
monodll_msw_sound.o \
|
||||||
monodll_msw_taskbar.o \
|
monodll_msw_taskbar.o \
|
||||||
|
monodll_notifmsgrt.o \
|
||||||
monodll_msw_joystick.o
|
monodll_msw_joystick.o
|
||||||
@COND_TOOLKIT_MSW@__ADVANCED_PLATFORM_SRC_OBJECTS = $(COND_TOOLKIT_MSW___ADVANCED_PLATFORM_SRC_OBJECTS)
|
@COND_TOOLKIT_MSW@__ADVANCED_PLATFORM_SRC_OBJECTS = $(COND_TOOLKIT_MSW___ADVANCED_PLATFORM_SRC_OBJECTS)
|
||||||
COND_TOOLKIT_OSX_COCOA___ADVANCED_PLATFORM_SRC_OBJECTS = \
|
COND_TOOLKIT_OSX_COCOA___ADVANCED_PLATFORM_SRC_OBJECTS = \
|
||||||
@@ -5990,6 +5991,7 @@ COND_TOOLKIT_MSW___ADVANCED_PLATFORM_SRC_OBJECTS_1 = \
|
|||||||
monodll_richtooltip.o \
|
monodll_richtooltip.o \
|
||||||
monodll_msw_sound.o \
|
monodll_msw_sound.o \
|
||||||
monodll_msw_taskbar.o \
|
monodll_msw_taskbar.o \
|
||||||
|
monodll_notifmsgrt.o \
|
||||||
monodll_msw_joystick.o
|
monodll_msw_joystick.o
|
||||||
@COND_TOOLKIT_MSW@__ADVANCED_PLATFORM_SRC_OBJECTS_1 = $(COND_TOOLKIT_MSW___ADVANCED_PLATFORM_SRC_OBJECTS_1)
|
@COND_TOOLKIT_MSW@__ADVANCED_PLATFORM_SRC_OBJECTS_1 = $(COND_TOOLKIT_MSW___ADVANCED_PLATFORM_SRC_OBJECTS_1)
|
||||||
COND_TOOLKIT_OSX_COCOA___ADVANCED_PLATFORM_SRC_OBJECTS_1 = \
|
COND_TOOLKIT_OSX_COCOA___ADVANCED_PLATFORM_SRC_OBJECTS_1 = \
|
||||||
@@ -7877,6 +7879,7 @@ COND_TOOLKIT_MSW___ADVANCED_PLATFORM_SRC_OBJECTS_2 = \
|
|||||||
monolib_richtooltip.o \
|
monolib_richtooltip.o \
|
||||||
monolib_msw_sound.o \
|
monolib_msw_sound.o \
|
||||||
monolib_msw_taskbar.o \
|
monolib_msw_taskbar.o \
|
||||||
|
monolib_notifmsgrt.o \
|
||||||
monolib_msw_joystick.o
|
monolib_msw_joystick.o
|
||||||
@COND_TOOLKIT_MSW@__ADVANCED_PLATFORM_SRC_OBJECTS_2 = $(COND_TOOLKIT_MSW___ADVANCED_PLATFORM_SRC_OBJECTS_2)
|
@COND_TOOLKIT_MSW@__ADVANCED_PLATFORM_SRC_OBJECTS_2 = $(COND_TOOLKIT_MSW___ADVANCED_PLATFORM_SRC_OBJECTS_2)
|
||||||
COND_TOOLKIT_OSX_COCOA___ADVANCED_PLATFORM_SRC_OBJECTS_2 = \
|
COND_TOOLKIT_OSX_COCOA___ADVANCED_PLATFORM_SRC_OBJECTS_2 = \
|
||||||
@@ -7992,6 +7995,7 @@ COND_TOOLKIT_MSW___ADVANCED_PLATFORM_SRC_OBJECTS_3 = \
|
|||||||
monolib_richtooltip.o \
|
monolib_richtooltip.o \
|
||||||
monolib_msw_sound.o \
|
monolib_msw_sound.o \
|
||||||
monolib_msw_taskbar.o \
|
monolib_msw_taskbar.o \
|
||||||
|
monolib_notifmsgrt.o \
|
||||||
monolib_msw_joystick.o
|
monolib_msw_joystick.o
|
||||||
@COND_TOOLKIT_MSW@__ADVANCED_PLATFORM_SRC_OBJECTS_3 = $(COND_TOOLKIT_MSW___ADVANCED_PLATFORM_SRC_OBJECTS_3)
|
@COND_TOOLKIT_MSW@__ADVANCED_PLATFORM_SRC_OBJECTS_3 = $(COND_TOOLKIT_MSW___ADVANCED_PLATFORM_SRC_OBJECTS_3)
|
||||||
COND_TOOLKIT_OSX_COCOA___ADVANCED_PLATFORM_SRC_OBJECTS_3 = \
|
COND_TOOLKIT_OSX_COCOA___ADVANCED_PLATFORM_SRC_OBJECTS_3 = \
|
||||||
@@ -11558,6 +11562,7 @@ COND_TOOLKIT_MSW___ADVANCED_PLATFORM_SRC_OBJECTS_4 = \
|
|||||||
advdll_richtooltip.o \
|
advdll_richtooltip.o \
|
||||||
advdll_msw_sound.o \
|
advdll_msw_sound.o \
|
||||||
advdll_msw_taskbar.o \
|
advdll_msw_taskbar.o \
|
||||||
|
advdll_notifmsgrt.o \
|
||||||
advdll_msw_joystick.o
|
advdll_msw_joystick.o
|
||||||
@COND_TOOLKIT_MSW@__ADVANCED_PLATFORM_SRC_OBJECTS_4 = $(COND_TOOLKIT_MSW___ADVANCED_PLATFORM_SRC_OBJECTS_4)
|
@COND_TOOLKIT_MSW@__ADVANCED_PLATFORM_SRC_OBJECTS_4 = $(COND_TOOLKIT_MSW___ADVANCED_PLATFORM_SRC_OBJECTS_4)
|
||||||
COND_TOOLKIT_OSX_COCOA___ADVANCED_PLATFORM_SRC_OBJECTS_4 = \
|
COND_TOOLKIT_OSX_COCOA___ADVANCED_PLATFORM_SRC_OBJECTS_4 = \
|
||||||
@@ -11673,6 +11678,7 @@ COND_TOOLKIT_MSW___ADVANCED_PLATFORM_SRC_OBJECTS_5 = \
|
|||||||
advdll_richtooltip.o \
|
advdll_richtooltip.o \
|
||||||
advdll_msw_sound.o \
|
advdll_msw_sound.o \
|
||||||
advdll_msw_taskbar.o \
|
advdll_msw_taskbar.o \
|
||||||
|
advdll_notifmsgrt.o \
|
||||||
advdll_msw_joystick.o
|
advdll_msw_joystick.o
|
||||||
@COND_TOOLKIT_MSW@__ADVANCED_PLATFORM_SRC_OBJECTS_5 = $(COND_TOOLKIT_MSW___ADVANCED_PLATFORM_SRC_OBJECTS_5)
|
@COND_TOOLKIT_MSW@__ADVANCED_PLATFORM_SRC_OBJECTS_5 = $(COND_TOOLKIT_MSW___ADVANCED_PLATFORM_SRC_OBJECTS_5)
|
||||||
COND_TOOLKIT_OSX_COCOA___ADVANCED_PLATFORM_SRC_OBJECTS_5 = \
|
COND_TOOLKIT_OSX_COCOA___ADVANCED_PLATFORM_SRC_OBJECTS_5 = \
|
||||||
@@ -11854,6 +11860,7 @@ COND_TOOLKIT_MSW___ADVANCED_PLATFORM_SRC_OBJECTS_6 = \
|
|||||||
advlib_richtooltip.o \
|
advlib_richtooltip.o \
|
||||||
advlib_msw_sound.o \
|
advlib_msw_sound.o \
|
||||||
advlib_msw_taskbar.o \
|
advlib_msw_taskbar.o \
|
||||||
|
advlib_notifmsgrt.o \
|
||||||
advlib_msw_joystick.o
|
advlib_msw_joystick.o
|
||||||
@COND_TOOLKIT_MSW@__ADVANCED_PLATFORM_SRC_OBJECTS_6 = $(COND_TOOLKIT_MSW___ADVANCED_PLATFORM_SRC_OBJECTS_6)
|
@COND_TOOLKIT_MSW@__ADVANCED_PLATFORM_SRC_OBJECTS_6 = $(COND_TOOLKIT_MSW___ADVANCED_PLATFORM_SRC_OBJECTS_6)
|
||||||
COND_TOOLKIT_OSX_COCOA___ADVANCED_PLATFORM_SRC_OBJECTS_6 = \
|
COND_TOOLKIT_OSX_COCOA___ADVANCED_PLATFORM_SRC_OBJECTS_6 = \
|
||||||
@@ -11969,6 +11976,7 @@ COND_TOOLKIT_MSW___ADVANCED_PLATFORM_SRC_OBJECTS_7 = \
|
|||||||
advlib_richtooltip.o \
|
advlib_richtooltip.o \
|
||||||
advlib_msw_sound.o \
|
advlib_msw_sound.o \
|
||||||
advlib_msw_taskbar.o \
|
advlib_msw_taskbar.o \
|
||||||
|
advlib_notifmsgrt.o \
|
||||||
advlib_msw_joystick.o
|
advlib_msw_joystick.o
|
||||||
@COND_TOOLKIT_MSW@__ADVANCED_PLATFORM_SRC_OBJECTS_7 = $(COND_TOOLKIT_MSW___ADVANCED_PLATFORM_SRC_OBJECTS_7)
|
@COND_TOOLKIT_MSW@__ADVANCED_PLATFORM_SRC_OBJECTS_7 = $(COND_TOOLKIT_MSW___ADVANCED_PLATFORM_SRC_OBJECTS_7)
|
||||||
COND_TOOLKIT_OSX_COCOA___ADVANCED_PLATFORM_SRC_OBJECTS_7 = \
|
COND_TOOLKIT_OSX_COCOA___ADVANCED_PLATFORM_SRC_OBJECTS_7 = \
|
||||||
@@ -20028,6 +20036,9 @@ monodll_sound_sdl.o: $(srcdir)/src/unix/sound_sdl.cpp $(MONODLL_ODEP)
|
|||||||
@COND_TOOLKIT_MSW_USE_GUI_1@monodll_msw_taskbar.o: $(srcdir)/src/msw/taskbar.cpp $(MONODLL_ODEP)
|
@COND_TOOLKIT_MSW_USE_GUI_1@monodll_msw_taskbar.o: $(srcdir)/src/msw/taskbar.cpp $(MONODLL_ODEP)
|
||||||
@COND_TOOLKIT_MSW_USE_GUI_1@ $(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/msw/taskbar.cpp
|
@COND_TOOLKIT_MSW_USE_GUI_1@ $(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/msw/taskbar.cpp
|
||||||
|
|
||||||
|
@COND_TOOLKIT_MSW_USE_GUI_1@monodll_notifmsgrt.o: $(srcdir)/src/msw/rt/notifmsgrt.cpp $(MONODLL_ODEP)
|
||||||
|
@COND_TOOLKIT_MSW_USE_GUI_1@ $(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/msw/rt/notifmsgrt.cpp
|
||||||
|
|
||||||
@COND_TOOLKIT_MSW_USE_GUI_1@monodll_msw_joystick.o: $(srcdir)/src/msw/joystick.cpp $(MONODLL_ODEP)
|
@COND_TOOLKIT_MSW_USE_GUI_1@monodll_msw_joystick.o: $(srcdir)/src/msw/joystick.cpp $(MONODLL_ODEP)
|
||||||
@COND_TOOLKIT_MSW_USE_GUI_1@ $(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/msw/joystick.cpp
|
@COND_TOOLKIT_MSW_USE_GUI_1@ $(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/msw/joystick.cpp
|
||||||
|
|
||||||
@@ -24840,6 +24851,9 @@ monolib_sound_sdl.o: $(srcdir)/src/unix/sound_sdl.cpp $(MONOLIB_ODEP)
|
|||||||
@COND_TOOLKIT_MSW_USE_GUI_1@monolib_msw_taskbar.o: $(srcdir)/src/msw/taskbar.cpp $(MONOLIB_ODEP)
|
@COND_TOOLKIT_MSW_USE_GUI_1@monolib_msw_taskbar.o: $(srcdir)/src/msw/taskbar.cpp $(MONOLIB_ODEP)
|
||||||
@COND_TOOLKIT_MSW_USE_GUI_1@ $(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/msw/taskbar.cpp
|
@COND_TOOLKIT_MSW_USE_GUI_1@ $(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/msw/taskbar.cpp
|
||||||
|
|
||||||
|
@COND_TOOLKIT_MSW_USE_GUI_1@monolib_notifmsgrt.o: $(srcdir)/src/msw/rt/notifmsgrt.cpp $(MONOLIB_ODEP)
|
||||||
|
@COND_TOOLKIT_MSW_USE_GUI_1@ $(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/msw/rt/notifmsgrt.cpp
|
||||||
|
|
||||||
@COND_TOOLKIT_MSW_USE_GUI_1@monolib_msw_joystick.o: $(srcdir)/src/msw/joystick.cpp $(MONOLIB_ODEP)
|
@COND_TOOLKIT_MSW_USE_GUI_1@monolib_msw_joystick.o: $(srcdir)/src/msw/joystick.cpp $(MONOLIB_ODEP)
|
||||||
@COND_TOOLKIT_MSW_USE_GUI_1@ $(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/msw/joystick.cpp
|
@COND_TOOLKIT_MSW_USE_GUI_1@ $(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/msw/joystick.cpp
|
||||||
|
|
||||||
@@ -33123,6 +33137,9 @@ advdll_notifmsgcmn.o: $(srcdir)/src/common/notifmsgcmn.cpp $(ADVDLL_ODEP)
|
|||||||
@COND_TOOLKIT_MSW@advdll_msw_taskbar.o: $(srcdir)/src/msw/taskbar.cpp $(ADVDLL_ODEP)
|
@COND_TOOLKIT_MSW@advdll_msw_taskbar.o: $(srcdir)/src/msw/taskbar.cpp $(ADVDLL_ODEP)
|
||||||
@COND_TOOLKIT_MSW@ $(CXXC) -c -o $@ $(ADVDLL_CXXFLAGS) $(srcdir)/src/msw/taskbar.cpp
|
@COND_TOOLKIT_MSW@ $(CXXC) -c -o $@ $(ADVDLL_CXXFLAGS) $(srcdir)/src/msw/taskbar.cpp
|
||||||
|
|
||||||
|
@COND_TOOLKIT_MSW@advdll_notifmsgrt.o: $(srcdir)/src/msw/rt/notifmsgrt.cpp $(ADVDLL_ODEP)
|
||||||
|
@COND_TOOLKIT_MSW@ $(CXXC) -c -o $@ $(ADVDLL_CXXFLAGS) $(srcdir)/src/msw/rt/notifmsgrt.cpp
|
||||||
|
|
||||||
@COND_TOOLKIT_MSW@advdll_msw_joystick.o: $(srcdir)/src/msw/joystick.cpp $(ADVDLL_ODEP)
|
@COND_TOOLKIT_MSW@advdll_msw_joystick.o: $(srcdir)/src/msw/joystick.cpp $(ADVDLL_ODEP)
|
||||||
@COND_TOOLKIT_MSW@ $(CXXC) -c -o $@ $(ADVDLL_CXXFLAGS) $(srcdir)/src/msw/joystick.cpp
|
@COND_TOOLKIT_MSW@ $(CXXC) -c -o $@ $(ADVDLL_CXXFLAGS) $(srcdir)/src/msw/joystick.cpp
|
||||||
|
|
||||||
@@ -33570,6 +33587,9 @@ advlib_notifmsgcmn.o: $(srcdir)/src/common/notifmsgcmn.cpp $(ADVLIB_ODEP)
|
|||||||
@COND_TOOLKIT_MSW@advlib_msw_taskbar.o: $(srcdir)/src/msw/taskbar.cpp $(ADVLIB_ODEP)
|
@COND_TOOLKIT_MSW@advlib_msw_taskbar.o: $(srcdir)/src/msw/taskbar.cpp $(ADVLIB_ODEP)
|
||||||
@COND_TOOLKIT_MSW@ $(CXXC) -c -o $@ $(ADVLIB_CXXFLAGS) $(srcdir)/src/msw/taskbar.cpp
|
@COND_TOOLKIT_MSW@ $(CXXC) -c -o $@ $(ADVLIB_CXXFLAGS) $(srcdir)/src/msw/taskbar.cpp
|
||||||
|
|
||||||
|
@COND_TOOLKIT_MSW@advlib_notifmsgrt.o: $(srcdir)/src/msw/rt/notifmsgrt.cpp $(ADVLIB_ODEP)
|
||||||
|
@COND_TOOLKIT_MSW@ $(CXXC) -c -o $@ $(ADVLIB_CXXFLAGS) $(srcdir)/src/msw/rt/notifmsgrt.cpp
|
||||||
|
|
||||||
@COND_TOOLKIT_MSW@advlib_msw_joystick.o: $(srcdir)/src/msw/joystick.cpp $(ADVLIB_ODEP)
|
@COND_TOOLKIT_MSW@advlib_msw_joystick.o: $(srcdir)/src/msw/joystick.cpp $(ADVLIB_ODEP)
|
||||||
@COND_TOOLKIT_MSW@ $(CXXC) -c -o $@ $(ADVLIB_CXXFLAGS) $(srcdir)/src/msw/joystick.cpp
|
@COND_TOOLKIT_MSW@ $(CXXC) -c -o $@ $(ADVLIB_CXXFLAGS) $(srcdir)/src/msw/joystick.cpp
|
||||||
|
|
||||||
|
@@ -2729,6 +2729,7 @@ IMPORTANT: please read docs/tech/tn0016.txt before modifying this file!
|
|||||||
src/msw/richtooltip.cpp
|
src/msw/richtooltip.cpp
|
||||||
src/msw/sound.cpp
|
src/msw/sound.cpp
|
||||||
src/msw/taskbar.cpp
|
src/msw/taskbar.cpp
|
||||||
|
src/msw/rt/notifmsgrt.cpp
|
||||||
</set>
|
</set>
|
||||||
<set var="ADVANCED_MSW_HDR" hints="files">
|
<set var="ADVANCED_MSW_HDR" hints="files">
|
||||||
wx/msw/sound.h
|
wx/msw/sound.h
|
||||||
|
@@ -2341,6 +2341,7 @@ ADVANCED_MSW_SRC =
|
|||||||
src/common/taskbarcmn.cpp
|
src/common/taskbarcmn.cpp
|
||||||
src/msw/aboutdlg.cpp
|
src/msw/aboutdlg.cpp
|
||||||
src/msw/notifmsg.cpp
|
src/msw/notifmsg.cpp
|
||||||
|
src/msw/rt/notifmsgrt.cpp
|
||||||
src/msw/richtooltip.cpp
|
src/msw/richtooltip.cpp
|
||||||
src/msw/sound.cpp
|
src/msw/sound.cpp
|
||||||
src/msw/taskbar.cpp
|
src/msw/taskbar.cpp
|
||||||
|
@@ -2380,6 +2380,7 @@ ____ADVANCED_SRC_FILENAMES_OBJECTS = \
|
|||||||
$(OBJS)\monodll_richtooltip.obj \
|
$(OBJS)\monodll_richtooltip.obj \
|
||||||
$(OBJS)\monodll_sound.obj \
|
$(OBJS)\monodll_sound.obj \
|
||||||
$(OBJS)\monodll_taskbar.obj \
|
$(OBJS)\monodll_taskbar.obj \
|
||||||
|
$(OBJS)\monodll_notifmsgrt.obj \
|
||||||
$(OBJS)\monodll_joystick.obj \
|
$(OBJS)\monodll_joystick.obj \
|
||||||
$(OBJS)\monodll_animateg.obj \
|
$(OBJS)\monodll_animateg.obj \
|
||||||
$(OBJS)\monodll_bmpcbox.obj \
|
$(OBJS)\monodll_bmpcbox.obj \
|
||||||
@@ -2435,6 +2436,7 @@ ____ADVANCED_SRC_FILENAMES_OBJECTS = \
|
|||||||
$(OBJS)\monodll_richtooltip.obj \
|
$(OBJS)\monodll_richtooltip.obj \
|
||||||
$(OBJS)\monodll_sound.obj \
|
$(OBJS)\monodll_sound.obj \
|
||||||
$(OBJS)\monodll_taskbar.obj \
|
$(OBJS)\monodll_taskbar.obj \
|
||||||
|
$(OBJS)\monodll_notifmsgrt.obj \
|
||||||
$(OBJS)\monodll_joystick.obj \
|
$(OBJS)\monodll_joystick.obj \
|
||||||
$(OBJS)\monodll_animateg.obj
|
$(OBJS)\monodll_animateg.obj
|
||||||
!endif
|
!endif
|
||||||
@@ -3206,6 +3208,7 @@ ____ADVANCED_SRC_FILENAMES_1_OBJECTS = \
|
|||||||
$(OBJS)\monolib_richtooltip.obj \
|
$(OBJS)\monolib_richtooltip.obj \
|
||||||
$(OBJS)\monolib_sound.obj \
|
$(OBJS)\monolib_sound.obj \
|
||||||
$(OBJS)\monolib_taskbar.obj \
|
$(OBJS)\monolib_taskbar.obj \
|
||||||
|
$(OBJS)\monolib_notifmsgrt.obj \
|
||||||
$(OBJS)\monolib_joystick.obj \
|
$(OBJS)\monolib_joystick.obj \
|
||||||
$(OBJS)\monolib_animateg.obj \
|
$(OBJS)\monolib_animateg.obj \
|
||||||
$(OBJS)\monolib_bmpcbox.obj \
|
$(OBJS)\monolib_bmpcbox.obj \
|
||||||
@@ -3261,6 +3264,7 @@ ____ADVANCED_SRC_FILENAMES_1_OBJECTS = \
|
|||||||
$(OBJS)\monolib_richtooltip.obj \
|
$(OBJS)\monolib_richtooltip.obj \
|
||||||
$(OBJS)\monolib_sound.obj \
|
$(OBJS)\monolib_sound.obj \
|
||||||
$(OBJS)\monolib_taskbar.obj \
|
$(OBJS)\monolib_taskbar.obj \
|
||||||
|
$(OBJS)\monolib_notifmsgrt.obj \
|
||||||
$(OBJS)\monolib_joystick.obj \
|
$(OBJS)\monolib_joystick.obj \
|
||||||
$(OBJS)\monolib_animateg.obj
|
$(OBJS)\monolib_animateg.obj
|
||||||
!endif
|
!endif
|
||||||
@@ -4485,6 +4489,7 @@ ____ADVANCED_SRC_FILENAMES_2_OBJECTS = \
|
|||||||
$(OBJS)\advdll_richtooltip.obj \
|
$(OBJS)\advdll_richtooltip.obj \
|
||||||
$(OBJS)\advdll_sound.obj \
|
$(OBJS)\advdll_sound.obj \
|
||||||
$(OBJS)\advdll_taskbar.obj \
|
$(OBJS)\advdll_taskbar.obj \
|
||||||
|
$(OBJS)\advdll_notifmsgrt.obj \
|
||||||
$(OBJS)\advdll_joystick.obj \
|
$(OBJS)\advdll_joystick.obj \
|
||||||
$(OBJS)\advdll_animateg.obj \
|
$(OBJS)\advdll_animateg.obj \
|
||||||
$(OBJS)\advdll_bmpcbox.obj \
|
$(OBJS)\advdll_bmpcbox.obj \
|
||||||
@@ -4540,6 +4545,7 @@ ____ADVANCED_SRC_FILENAMES_2_OBJECTS = \
|
|||||||
$(OBJS)\advdll_richtooltip.obj \
|
$(OBJS)\advdll_richtooltip.obj \
|
||||||
$(OBJS)\advdll_sound.obj \
|
$(OBJS)\advdll_sound.obj \
|
||||||
$(OBJS)\advdll_taskbar.obj \
|
$(OBJS)\advdll_taskbar.obj \
|
||||||
|
$(OBJS)\advdll_notifmsgrt.obj \
|
||||||
$(OBJS)\advdll_joystick.obj \
|
$(OBJS)\advdll_joystick.obj \
|
||||||
$(OBJS)\advdll_animateg.obj
|
$(OBJS)\advdll_animateg.obj
|
||||||
!endif
|
!endif
|
||||||
@@ -4590,6 +4596,7 @@ ____ADVANCED_SRC_FILENAMES_3_OBJECTS = \
|
|||||||
$(OBJS)\advlib_richtooltip.obj \
|
$(OBJS)\advlib_richtooltip.obj \
|
||||||
$(OBJS)\advlib_sound.obj \
|
$(OBJS)\advlib_sound.obj \
|
||||||
$(OBJS)\advlib_taskbar.obj \
|
$(OBJS)\advlib_taskbar.obj \
|
||||||
|
$(OBJS)\advlib_notifmsgrt.obj \
|
||||||
$(OBJS)\advlib_joystick.obj \
|
$(OBJS)\advlib_joystick.obj \
|
||||||
$(OBJS)\advlib_animateg.obj \
|
$(OBJS)\advlib_animateg.obj \
|
||||||
$(OBJS)\advlib_bmpcbox.obj \
|
$(OBJS)\advlib_bmpcbox.obj \
|
||||||
@@ -4645,6 +4652,7 @@ ____ADVANCED_SRC_FILENAMES_3_OBJECTS = \
|
|||||||
$(OBJS)\advlib_richtooltip.obj \
|
$(OBJS)\advlib_richtooltip.obj \
|
||||||
$(OBJS)\advlib_sound.obj \
|
$(OBJS)\advlib_sound.obj \
|
||||||
$(OBJS)\advlib_taskbar.obj \
|
$(OBJS)\advlib_taskbar.obj \
|
||||||
|
$(OBJS)\advlib_notifmsgrt.obj \
|
||||||
$(OBJS)\advlib_joystick.obj \
|
$(OBJS)\advlib_joystick.obj \
|
||||||
$(OBJS)\advlib_animateg.obj
|
$(OBJS)\advlib_animateg.obj
|
||||||
!endif
|
!endif
|
||||||
@@ -8857,6 +8865,11 @@ $(OBJS)\monodll_taskbar.obj: ..\..\src\msw\taskbar.cpp
|
|||||||
$(CXX) -q -c -P -o$@ $(MONODLL_CXXFLAGS) ..\..\src\msw\taskbar.cpp
|
$(CXX) -q -c -P -o$@ $(MONODLL_CXXFLAGS) ..\..\src\msw\taskbar.cpp
|
||||||
!endif
|
!endif
|
||||||
|
|
||||||
|
!if "$(USE_GUI)" == "1"
|
||||||
|
$(OBJS)\monodll_notifmsgrt.obj: ..\..\src\msw\rt\notifmsgrt.cpp
|
||||||
|
$(CXX) -q -c -P -o$@ $(MONODLL_CXXFLAGS) ..\..\src\msw\rt\notifmsgrt.cpp
|
||||||
|
!endif
|
||||||
|
|
||||||
!if "$(USE_GUI)" == "1"
|
!if "$(USE_GUI)" == "1"
|
||||||
$(OBJS)\monodll_joystick.obj: ..\..\src\msw\joystick.cpp
|
$(OBJS)\monodll_joystick.obj: ..\..\src\msw\joystick.cpp
|
||||||
$(CXX) -q -c -P -o$@ $(MONODLL_CXXFLAGS) ..\..\src\msw\joystick.cpp
|
$(CXX) -q -c -P -o$@ $(MONODLL_CXXFLAGS) ..\..\src\msw\joystick.cpp
|
||||||
@@ -11377,6 +11390,11 @@ $(OBJS)\monolib_taskbar.obj: ..\..\src\msw\taskbar.cpp
|
|||||||
$(CXX) -q -c -P -o$@ $(MONOLIB_CXXFLAGS) ..\..\src\msw\taskbar.cpp
|
$(CXX) -q -c -P -o$@ $(MONOLIB_CXXFLAGS) ..\..\src\msw\taskbar.cpp
|
||||||
!endif
|
!endif
|
||||||
|
|
||||||
|
!if "$(USE_GUI)" == "1"
|
||||||
|
$(OBJS)\monolib_notifmsgrt.obj: ..\..\src\msw\rt\notifmsgrt.cpp
|
||||||
|
$(CXX) -q -c -P -o$@ $(MONOLIB_CXXFLAGS) ..\..\src\msw\rt\notifmsgrt.cpp
|
||||||
|
!endif
|
||||||
|
|
||||||
!if "$(USE_GUI)" == "1"
|
!if "$(USE_GUI)" == "1"
|
||||||
$(OBJS)\monolib_joystick.obj: ..\..\src\msw\joystick.cpp
|
$(OBJS)\monolib_joystick.obj: ..\..\src\msw\joystick.cpp
|
||||||
$(CXX) -q -c -P -o$@ $(MONOLIB_CXXFLAGS) ..\..\src\msw\joystick.cpp
|
$(CXX) -q -c -P -o$@ $(MONOLIB_CXXFLAGS) ..\..\src\msw\joystick.cpp
|
||||||
@@ -15256,6 +15274,9 @@ $(OBJS)\advdll_sound.obj: ..\..\src\msw\sound.cpp
|
|||||||
$(OBJS)\advdll_taskbar.obj: ..\..\src\msw\taskbar.cpp
|
$(OBJS)\advdll_taskbar.obj: ..\..\src\msw\taskbar.cpp
|
||||||
$(CXX) -q -c -P -o$@ $(ADVDLL_CXXFLAGS) ..\..\src\msw\taskbar.cpp
|
$(CXX) -q -c -P -o$@ $(ADVDLL_CXXFLAGS) ..\..\src\msw\taskbar.cpp
|
||||||
|
|
||||||
|
$(OBJS)\advdll_notifmsgrt.obj: ..\..\src\msw\rt\notifmsgrt.cpp
|
||||||
|
$(CXX) -q -c -P -o$@ $(ADVDLL_CXXFLAGS) ..\..\src\msw\rt\notifmsgrt.cpp
|
||||||
|
|
||||||
$(OBJS)\advdll_joystick.obj: ..\..\src\msw\joystick.cpp
|
$(OBJS)\advdll_joystick.obj: ..\..\src\msw\joystick.cpp
|
||||||
$(CXX) -q -c -P -o$@ $(ADVDLL_CXXFLAGS) ..\..\src\msw\joystick.cpp
|
$(CXX) -q -c -P -o$@ $(ADVDLL_CXXFLAGS) ..\..\src\msw\joystick.cpp
|
||||||
|
|
||||||
@@ -15415,6 +15436,9 @@ $(OBJS)\advlib_sound.obj: ..\..\src\msw\sound.cpp
|
|||||||
$(OBJS)\advlib_taskbar.obj: ..\..\src\msw\taskbar.cpp
|
$(OBJS)\advlib_taskbar.obj: ..\..\src\msw\taskbar.cpp
|
||||||
$(CXX) -q -c -P -o$@ $(ADVLIB_CXXFLAGS) ..\..\src\msw\taskbar.cpp
|
$(CXX) -q -c -P -o$@ $(ADVLIB_CXXFLAGS) ..\..\src\msw\taskbar.cpp
|
||||||
|
|
||||||
|
$(OBJS)\advlib_notifmsgrt.obj: ..\..\src\msw\rt\notifmsgrt.cpp
|
||||||
|
$(CXX) -q -c -P -o$@ $(ADVLIB_CXXFLAGS) ..\..\src\msw\rt\notifmsgrt.cpp
|
||||||
|
|
||||||
$(OBJS)\advlib_joystick.obj: ..\..\src\msw\joystick.cpp
|
$(OBJS)\advlib_joystick.obj: ..\..\src\msw\joystick.cpp
|
||||||
$(CXX) -q -c -P -o$@ $(ADVLIB_CXXFLAGS) ..\..\src\msw\joystick.cpp
|
$(CXX) -q -c -P -o$@ $(ADVLIB_CXXFLAGS) ..\..\src\msw\joystick.cpp
|
||||||
|
|
||||||
|
@@ -2402,6 +2402,7 @@ ____ADVANCED_SRC_FILENAMES_OBJECTS = \
|
|||||||
$(OBJS)\monodll_richtooltip.o \
|
$(OBJS)\monodll_richtooltip.o \
|
||||||
$(OBJS)\monodll_sound.o \
|
$(OBJS)\monodll_sound.o \
|
||||||
$(OBJS)\monodll_taskbar.o \
|
$(OBJS)\monodll_taskbar.o \
|
||||||
|
$(OBJS)\monodll_notifmsgrt.o \
|
||||||
$(OBJS)\monodll_joystick.o \
|
$(OBJS)\monodll_joystick.o \
|
||||||
$(OBJS)\monodll_animateg.o \
|
$(OBJS)\monodll_animateg.o \
|
||||||
$(OBJS)\monodll_bmpcbox.o \
|
$(OBJS)\monodll_bmpcbox.o \
|
||||||
@@ -2457,6 +2458,7 @@ ____ADVANCED_SRC_FILENAMES_OBJECTS = \
|
|||||||
$(OBJS)\monodll_richtooltip.o \
|
$(OBJS)\monodll_richtooltip.o \
|
||||||
$(OBJS)\monodll_sound.o \
|
$(OBJS)\monodll_sound.o \
|
||||||
$(OBJS)\monodll_taskbar.o \
|
$(OBJS)\monodll_taskbar.o \
|
||||||
|
$(OBJS)\monodll_notifmsgrt.o \
|
||||||
$(OBJS)\monodll_joystick.o \
|
$(OBJS)\monodll_joystick.o \
|
||||||
$(OBJS)\monodll_animateg.o
|
$(OBJS)\monodll_animateg.o
|
||||||
endif
|
endif
|
||||||
@@ -3234,6 +3236,7 @@ ____ADVANCED_SRC_FILENAMES_1_OBJECTS = \
|
|||||||
$(OBJS)\monolib_richtooltip.o \
|
$(OBJS)\monolib_richtooltip.o \
|
||||||
$(OBJS)\monolib_sound.o \
|
$(OBJS)\monolib_sound.o \
|
||||||
$(OBJS)\monolib_taskbar.o \
|
$(OBJS)\monolib_taskbar.o \
|
||||||
|
$(OBJS)\monolib_notifmsgrt.o \
|
||||||
$(OBJS)\monolib_joystick.o \
|
$(OBJS)\monolib_joystick.o \
|
||||||
$(OBJS)\monolib_animateg.o \
|
$(OBJS)\monolib_animateg.o \
|
||||||
$(OBJS)\monolib_bmpcbox.o \
|
$(OBJS)\monolib_bmpcbox.o \
|
||||||
@@ -3289,6 +3292,7 @@ ____ADVANCED_SRC_FILENAMES_1_OBJECTS = \
|
|||||||
$(OBJS)\monolib_richtooltip.o \
|
$(OBJS)\monolib_richtooltip.o \
|
||||||
$(OBJS)\monolib_sound.o \
|
$(OBJS)\monolib_sound.o \
|
||||||
$(OBJS)\monolib_taskbar.o \
|
$(OBJS)\monolib_taskbar.o \
|
||||||
|
$(OBJS)\monolib_notifmsgrt.o \
|
||||||
$(OBJS)\monolib_joystick.o \
|
$(OBJS)\monolib_joystick.o \
|
||||||
$(OBJS)\monolib_animateg.o
|
$(OBJS)\monolib_animateg.o
|
||||||
endif
|
endif
|
||||||
@@ -4541,6 +4545,7 @@ ____ADVANCED_SRC_FILENAMES_2_OBJECTS = \
|
|||||||
$(OBJS)\advdll_richtooltip.o \
|
$(OBJS)\advdll_richtooltip.o \
|
||||||
$(OBJS)\advdll_sound.o \
|
$(OBJS)\advdll_sound.o \
|
||||||
$(OBJS)\advdll_taskbar.o \
|
$(OBJS)\advdll_taskbar.o \
|
||||||
|
$(OBJS)\advdll_notifmsgrt.o \
|
||||||
$(OBJS)\advdll_joystick.o \
|
$(OBJS)\advdll_joystick.o \
|
||||||
$(OBJS)\advdll_animateg.o \
|
$(OBJS)\advdll_animateg.o \
|
||||||
$(OBJS)\advdll_bmpcbox.o \
|
$(OBJS)\advdll_bmpcbox.o \
|
||||||
@@ -4596,6 +4601,7 @@ ____ADVANCED_SRC_FILENAMES_2_OBJECTS = \
|
|||||||
$(OBJS)\advdll_richtooltip.o \
|
$(OBJS)\advdll_richtooltip.o \
|
||||||
$(OBJS)\advdll_sound.o \
|
$(OBJS)\advdll_sound.o \
|
||||||
$(OBJS)\advdll_taskbar.o \
|
$(OBJS)\advdll_taskbar.o \
|
||||||
|
$(OBJS)\advdll_notifmsgrt.o \
|
||||||
$(OBJS)\advdll_joystick.o \
|
$(OBJS)\advdll_joystick.o \
|
||||||
$(OBJS)\advdll_animateg.o
|
$(OBJS)\advdll_animateg.o
|
||||||
endif
|
endif
|
||||||
@@ -4650,6 +4656,7 @@ ____ADVANCED_SRC_FILENAMES_3_OBJECTS = \
|
|||||||
$(OBJS)\advlib_richtooltip.o \
|
$(OBJS)\advlib_richtooltip.o \
|
||||||
$(OBJS)\advlib_sound.o \
|
$(OBJS)\advlib_sound.o \
|
||||||
$(OBJS)\advlib_taskbar.o \
|
$(OBJS)\advlib_taskbar.o \
|
||||||
|
$(OBJS)\advlib_notifmsgrt.o \
|
||||||
$(OBJS)\advlib_joystick.o \
|
$(OBJS)\advlib_joystick.o \
|
||||||
$(OBJS)\advlib_animateg.o \
|
$(OBJS)\advlib_animateg.o \
|
||||||
$(OBJS)\advlib_bmpcbox.o \
|
$(OBJS)\advlib_bmpcbox.o \
|
||||||
@@ -4705,6 +4712,7 @@ ____ADVANCED_SRC_FILENAMES_3_OBJECTS = \
|
|||||||
$(OBJS)\advlib_richtooltip.o \
|
$(OBJS)\advlib_richtooltip.o \
|
||||||
$(OBJS)\advlib_sound.o \
|
$(OBJS)\advlib_sound.o \
|
||||||
$(OBJS)\advlib_taskbar.o \
|
$(OBJS)\advlib_taskbar.o \
|
||||||
|
$(OBJS)\advlib_notifmsgrt.o \
|
||||||
$(OBJS)\advlib_joystick.o \
|
$(OBJS)\advlib_joystick.o \
|
||||||
$(OBJS)\advlib_animateg.o
|
$(OBJS)\advlib_animateg.o
|
||||||
endif
|
endif
|
||||||
@@ -9032,6 +9040,11 @@ $(OBJS)\monodll_taskbar.o: ../../src/msw/taskbar.cpp
|
|||||||
$(CXX) -c -o $@ $(MONODLL_CXXFLAGS) $(CPPDEPS) $<
|
$(CXX) -c -o $@ $(MONODLL_CXXFLAGS) $(CPPDEPS) $<
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
ifeq ($(USE_GUI),1)
|
||||||
|
$(OBJS)\monodll_notifmsgrt.o: ../../src/msw/rt/notifmsgrt.cpp
|
||||||
|
$(CXX) -c -o $@ $(MONODLL_CXXFLAGS) $(CPPDEPS) $<
|
||||||
|
endif
|
||||||
|
|
||||||
ifeq ($(USE_GUI),1)
|
ifeq ($(USE_GUI),1)
|
||||||
$(OBJS)\monodll_joystick.o: ../../src/msw/joystick.cpp
|
$(OBJS)\monodll_joystick.o: ../../src/msw/joystick.cpp
|
||||||
$(CXX) -c -o $@ $(MONODLL_CXXFLAGS) $(CPPDEPS) $<
|
$(CXX) -c -o $@ $(MONODLL_CXXFLAGS) $(CPPDEPS) $<
|
||||||
@@ -11552,6 +11565,11 @@ $(OBJS)\monolib_taskbar.o: ../../src/msw/taskbar.cpp
|
|||||||
$(CXX) -c -o $@ $(MONOLIB_CXXFLAGS) $(CPPDEPS) $<
|
$(CXX) -c -o $@ $(MONOLIB_CXXFLAGS) $(CPPDEPS) $<
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
ifeq ($(USE_GUI),1)
|
||||||
|
$(OBJS)\monolib_notifmsgrt.o: ../../src/msw/rt/notifmsgrt.cpp
|
||||||
|
$(CXX) -c -o $@ $(MONOLIB_CXXFLAGS) $(CPPDEPS) $<
|
||||||
|
endif
|
||||||
|
|
||||||
ifeq ($(USE_GUI),1)
|
ifeq ($(USE_GUI),1)
|
||||||
$(OBJS)\monolib_joystick.o: ../../src/msw/joystick.cpp
|
$(OBJS)\monolib_joystick.o: ../../src/msw/joystick.cpp
|
||||||
$(CXX) -c -o $@ $(MONOLIB_CXXFLAGS) $(CPPDEPS) $<
|
$(CXX) -c -o $@ $(MONOLIB_CXXFLAGS) $(CPPDEPS) $<
|
||||||
@@ -15431,6 +15449,9 @@ $(OBJS)\advdll_sound.o: ../../src/msw/sound.cpp
|
|||||||
$(OBJS)\advdll_taskbar.o: ../../src/msw/taskbar.cpp
|
$(OBJS)\advdll_taskbar.o: ../../src/msw/taskbar.cpp
|
||||||
$(CXX) -c -o $@ $(ADVDLL_CXXFLAGS) $(CPPDEPS) $<
|
$(CXX) -c -o $@ $(ADVDLL_CXXFLAGS) $(CPPDEPS) $<
|
||||||
|
|
||||||
|
$(OBJS)\advdll_notifmsgrt.o: ../../src/msw/rt/notifmsgrt.cpp
|
||||||
|
$(CXX) -c -o $@ $(ADVDLL_CXXFLAGS) $(CPPDEPS) $<
|
||||||
|
|
||||||
$(OBJS)\advdll_joystick.o: ../../src/msw/joystick.cpp
|
$(OBJS)\advdll_joystick.o: ../../src/msw/joystick.cpp
|
||||||
$(CXX) -c -o $@ $(ADVDLL_CXXFLAGS) $(CPPDEPS) $<
|
$(CXX) -c -o $@ $(ADVDLL_CXXFLAGS) $(CPPDEPS) $<
|
||||||
|
|
||||||
@@ -15590,6 +15611,9 @@ $(OBJS)\advlib_sound.o: ../../src/msw/sound.cpp
|
|||||||
$(OBJS)\advlib_taskbar.o: ../../src/msw/taskbar.cpp
|
$(OBJS)\advlib_taskbar.o: ../../src/msw/taskbar.cpp
|
||||||
$(CXX) -c -o $@ $(ADVLIB_CXXFLAGS) $(CPPDEPS) $<
|
$(CXX) -c -o $@ $(ADVLIB_CXXFLAGS) $(CPPDEPS) $<
|
||||||
|
|
||||||
|
$(OBJS)\advlib_notifmsgrt.o: ../../src/msw/rt/notifmsgrt.cpp
|
||||||
|
$(CXX) -c -o $@ $(ADVLIB_CXXFLAGS) $(CPPDEPS) $<
|
||||||
|
|
||||||
$(OBJS)\advlib_joystick.o: ../../src/msw/joystick.cpp
|
$(OBJS)\advlib_joystick.o: ../../src/msw/joystick.cpp
|
||||||
$(CXX) -c -o $@ $(ADVLIB_CXXFLAGS) $(CPPDEPS) $<
|
$(CXX) -c -o $@ $(ADVLIB_CXXFLAGS) $(CPPDEPS) $<
|
||||||
|
|
||||||
|
@@ -2680,6 +2680,7 @@ ____ADVANCED_SRC_FILENAMES_OBJECTS = \
|
|||||||
$(OBJS)\monodll_richtooltip.obj \
|
$(OBJS)\monodll_richtooltip.obj \
|
||||||
$(OBJS)\monodll_sound.obj \
|
$(OBJS)\monodll_sound.obj \
|
||||||
$(OBJS)\monodll_taskbar.obj \
|
$(OBJS)\monodll_taskbar.obj \
|
||||||
|
$(OBJS)\monodll_notifmsgrt.obj \
|
||||||
$(OBJS)\monodll_joystick.obj \
|
$(OBJS)\monodll_joystick.obj \
|
||||||
$(OBJS)\monodll_animateg.obj \
|
$(OBJS)\monodll_animateg.obj \
|
||||||
$(OBJS)\monodll_bmpcbox.obj \
|
$(OBJS)\monodll_bmpcbox.obj \
|
||||||
@@ -2735,6 +2736,7 @@ ____ADVANCED_SRC_FILENAMES_OBJECTS = \
|
|||||||
$(OBJS)\monodll_richtooltip.obj \
|
$(OBJS)\monodll_richtooltip.obj \
|
||||||
$(OBJS)\monodll_sound.obj \
|
$(OBJS)\monodll_sound.obj \
|
||||||
$(OBJS)\monodll_taskbar.obj \
|
$(OBJS)\monodll_taskbar.obj \
|
||||||
|
$(OBJS)\monodll_notifmsgrt.obj \
|
||||||
$(OBJS)\monodll_joystick.obj \
|
$(OBJS)\monodll_joystick.obj \
|
||||||
$(OBJS)\monodll_animateg.obj
|
$(OBJS)\monodll_animateg.obj
|
||||||
!endif
|
!endif
|
||||||
@@ -3512,6 +3514,7 @@ ____ADVANCED_SRC_FILENAMES_1_OBJECTS = \
|
|||||||
$(OBJS)\monolib_richtooltip.obj \
|
$(OBJS)\monolib_richtooltip.obj \
|
||||||
$(OBJS)\monolib_sound.obj \
|
$(OBJS)\monolib_sound.obj \
|
||||||
$(OBJS)\monolib_taskbar.obj \
|
$(OBJS)\monolib_taskbar.obj \
|
||||||
|
$(OBJS)\monolib_notifmsgrt.obj \
|
||||||
$(OBJS)\monolib_joystick.obj \
|
$(OBJS)\monolib_joystick.obj \
|
||||||
$(OBJS)\monolib_animateg.obj \
|
$(OBJS)\monolib_animateg.obj \
|
||||||
$(OBJS)\monolib_bmpcbox.obj \
|
$(OBJS)\monolib_bmpcbox.obj \
|
||||||
@@ -3567,6 +3570,7 @@ ____ADVANCED_SRC_FILENAMES_1_OBJECTS = \
|
|||||||
$(OBJS)\monolib_richtooltip.obj \
|
$(OBJS)\monolib_richtooltip.obj \
|
||||||
$(OBJS)\monolib_sound.obj \
|
$(OBJS)\monolib_sound.obj \
|
||||||
$(OBJS)\monolib_taskbar.obj \
|
$(OBJS)\monolib_taskbar.obj \
|
||||||
|
$(OBJS)\monolib_notifmsgrt.obj \
|
||||||
$(OBJS)\monolib_joystick.obj \
|
$(OBJS)\monolib_joystick.obj \
|
||||||
$(OBJS)\monolib_animateg.obj
|
$(OBJS)\monolib_animateg.obj
|
||||||
!endif
|
!endif
|
||||||
@@ -4881,6 +4885,7 @@ ____ADVANCED_SRC_FILENAMES_2_OBJECTS = \
|
|||||||
$(OBJS)\advdll_richtooltip.obj \
|
$(OBJS)\advdll_richtooltip.obj \
|
||||||
$(OBJS)\advdll_sound.obj \
|
$(OBJS)\advdll_sound.obj \
|
||||||
$(OBJS)\advdll_taskbar.obj \
|
$(OBJS)\advdll_taskbar.obj \
|
||||||
|
$(OBJS)\advdll_notifmsgrt.obj \
|
||||||
$(OBJS)\advdll_joystick.obj \
|
$(OBJS)\advdll_joystick.obj \
|
||||||
$(OBJS)\advdll_animateg.obj \
|
$(OBJS)\advdll_animateg.obj \
|
||||||
$(OBJS)\advdll_bmpcbox.obj \
|
$(OBJS)\advdll_bmpcbox.obj \
|
||||||
@@ -4936,6 +4941,7 @@ ____ADVANCED_SRC_FILENAMES_2_OBJECTS = \
|
|||||||
$(OBJS)\advdll_richtooltip.obj \
|
$(OBJS)\advdll_richtooltip.obj \
|
||||||
$(OBJS)\advdll_sound.obj \
|
$(OBJS)\advdll_sound.obj \
|
||||||
$(OBJS)\advdll_taskbar.obj \
|
$(OBJS)\advdll_taskbar.obj \
|
||||||
|
$(OBJS)\advdll_notifmsgrt.obj \
|
||||||
$(OBJS)\advdll_joystick.obj \
|
$(OBJS)\advdll_joystick.obj \
|
||||||
$(OBJS)\advdll_animateg.obj
|
$(OBJS)\advdll_animateg.obj
|
||||||
!endif
|
!endif
|
||||||
@@ -4992,6 +4998,7 @@ ____ADVANCED_SRC_FILENAMES_3_OBJECTS = \
|
|||||||
$(OBJS)\advlib_richtooltip.obj \
|
$(OBJS)\advlib_richtooltip.obj \
|
||||||
$(OBJS)\advlib_sound.obj \
|
$(OBJS)\advlib_sound.obj \
|
||||||
$(OBJS)\advlib_taskbar.obj \
|
$(OBJS)\advlib_taskbar.obj \
|
||||||
|
$(OBJS)\advlib_notifmsgrt.obj \
|
||||||
$(OBJS)\advlib_joystick.obj \
|
$(OBJS)\advlib_joystick.obj \
|
||||||
$(OBJS)\advlib_animateg.obj \
|
$(OBJS)\advlib_animateg.obj \
|
||||||
$(OBJS)\advlib_bmpcbox.obj \
|
$(OBJS)\advlib_bmpcbox.obj \
|
||||||
@@ -5047,6 +5054,7 @@ ____ADVANCED_SRC_FILENAMES_3_OBJECTS = \
|
|||||||
$(OBJS)\advlib_richtooltip.obj \
|
$(OBJS)\advlib_richtooltip.obj \
|
||||||
$(OBJS)\advlib_sound.obj \
|
$(OBJS)\advlib_sound.obj \
|
||||||
$(OBJS)\advlib_taskbar.obj \
|
$(OBJS)\advlib_taskbar.obj \
|
||||||
|
$(OBJS)\advlib_notifmsgrt.obj \
|
||||||
$(OBJS)\advlib_joystick.obj \
|
$(OBJS)\advlib_joystick.obj \
|
||||||
$(OBJS)\advlib_animateg.obj
|
$(OBJS)\advlib_animateg.obj
|
||||||
!endif
|
!endif
|
||||||
@@ -9549,6 +9557,11 @@ $(OBJS)\monodll_taskbar.obj: ..\..\src\msw\taskbar.cpp
|
|||||||
$(CXX) /c /nologo /TP /Fo$@ $(MONODLL_CXXFLAGS) ..\..\src\msw\taskbar.cpp
|
$(CXX) /c /nologo /TP /Fo$@ $(MONODLL_CXXFLAGS) ..\..\src\msw\taskbar.cpp
|
||||||
!endif
|
!endif
|
||||||
|
|
||||||
|
!if "$(USE_GUI)" == "1"
|
||||||
|
$(OBJS)\monodll_notifmsgrt.obj: ..\..\src\msw\rt\notifmsgrt.cpp
|
||||||
|
$(CXX) /c /nologo /TP /Fo$@ $(MONODLL_CXXFLAGS) ..\..\src\msw\rt\notifmsgrt.cpp
|
||||||
|
!endif
|
||||||
|
|
||||||
!if "$(USE_GUI)" == "1"
|
!if "$(USE_GUI)" == "1"
|
||||||
$(OBJS)\monodll_joystick.obj: ..\..\src\msw\joystick.cpp
|
$(OBJS)\monodll_joystick.obj: ..\..\src\msw\joystick.cpp
|
||||||
$(CXX) /c /nologo /TP /Fo$@ $(MONODLL_CXXFLAGS) ..\..\src\msw\joystick.cpp
|
$(CXX) /c /nologo /TP /Fo$@ $(MONODLL_CXXFLAGS) ..\..\src\msw\joystick.cpp
|
||||||
@@ -12069,6 +12082,11 @@ $(OBJS)\monolib_taskbar.obj: ..\..\src\msw\taskbar.cpp
|
|||||||
$(CXX) /c /nologo /TP /Fo$@ $(MONOLIB_CXXFLAGS) ..\..\src\msw\taskbar.cpp
|
$(CXX) /c /nologo /TP /Fo$@ $(MONOLIB_CXXFLAGS) ..\..\src\msw\taskbar.cpp
|
||||||
!endif
|
!endif
|
||||||
|
|
||||||
|
!if "$(USE_GUI)" == "1"
|
||||||
|
$(OBJS)\monolib_notifmsgrt.obj: ..\..\src\msw\rt\notifmsgrt.cpp
|
||||||
|
$(CXX) /c /nologo /TP /Fo$@ $(MONOLIB_CXXFLAGS) ..\..\src\msw\rt\notifmsgrt.cpp
|
||||||
|
!endif
|
||||||
|
|
||||||
!if "$(USE_GUI)" == "1"
|
!if "$(USE_GUI)" == "1"
|
||||||
$(OBJS)\monolib_joystick.obj: ..\..\src\msw\joystick.cpp
|
$(OBJS)\monolib_joystick.obj: ..\..\src\msw\joystick.cpp
|
||||||
$(CXX) /c /nologo /TP /Fo$@ $(MONOLIB_CXXFLAGS) ..\..\src\msw\joystick.cpp
|
$(CXX) /c /nologo /TP /Fo$@ $(MONOLIB_CXXFLAGS) ..\..\src\msw\joystick.cpp
|
||||||
@@ -15948,6 +15966,9 @@ $(OBJS)\advdll_sound.obj: ..\..\src\msw\sound.cpp
|
|||||||
$(OBJS)\advdll_taskbar.obj: ..\..\src\msw\taskbar.cpp
|
$(OBJS)\advdll_taskbar.obj: ..\..\src\msw\taskbar.cpp
|
||||||
$(CXX) /c /nologo /TP /Fo$@ $(ADVDLL_CXXFLAGS) ..\..\src\msw\taskbar.cpp
|
$(CXX) /c /nologo /TP /Fo$@ $(ADVDLL_CXXFLAGS) ..\..\src\msw\taskbar.cpp
|
||||||
|
|
||||||
|
$(OBJS)\advdll_notifmsgrt.obj: ..\..\src\msw\rt\notifmsgrt.cpp
|
||||||
|
$(CXX) /c /nologo /TP /Fo$@ $(ADVDLL_CXXFLAGS) ..\..\src\msw\rt\notifmsgrt.cpp
|
||||||
|
|
||||||
$(OBJS)\advdll_joystick.obj: ..\..\src\msw\joystick.cpp
|
$(OBJS)\advdll_joystick.obj: ..\..\src\msw\joystick.cpp
|
||||||
$(CXX) /c /nologo /TP /Fo$@ $(ADVDLL_CXXFLAGS) ..\..\src\msw\joystick.cpp
|
$(CXX) /c /nologo /TP /Fo$@ $(ADVDLL_CXXFLAGS) ..\..\src\msw\joystick.cpp
|
||||||
|
|
||||||
@@ -16107,6 +16128,9 @@ $(OBJS)\advlib_sound.obj: ..\..\src\msw\sound.cpp
|
|||||||
$(OBJS)\advlib_taskbar.obj: ..\..\src\msw\taskbar.cpp
|
$(OBJS)\advlib_taskbar.obj: ..\..\src\msw\taskbar.cpp
|
||||||
$(CXX) /c /nologo /TP /Fo$@ $(ADVLIB_CXXFLAGS) ..\..\src\msw\taskbar.cpp
|
$(CXX) /c /nologo /TP /Fo$@ $(ADVLIB_CXXFLAGS) ..\..\src\msw\taskbar.cpp
|
||||||
|
|
||||||
|
$(OBJS)\advlib_notifmsgrt.obj: ..\..\src\msw\rt\notifmsgrt.cpp
|
||||||
|
$(CXX) /c /nologo /TP /Fo$@ $(ADVLIB_CXXFLAGS) ..\..\src\msw\rt\notifmsgrt.cpp
|
||||||
|
|
||||||
$(OBJS)\advlib_joystick.obj: ..\..\src\msw\joystick.cpp
|
$(OBJS)\advlib_joystick.obj: ..\..\src\msw\joystick.cpp
|
||||||
$(CXX) /c /nologo /TP /Fo$@ $(ADVLIB_CXXFLAGS) ..\..\src\msw\joystick.cpp
|
$(CXX) /c /nologo /TP /Fo$@ $(ADVLIB_CXXFLAGS) ..\..\src\msw\joystick.cpp
|
||||||
|
|
||||||
|
@@ -508,6 +508,7 @@
|
|||||||
<ClCompile Include="..\..\src\generic\wizard.cpp" />
|
<ClCompile Include="..\..\src\generic\wizard.cpp" />
|
||||||
<ClCompile Include="..\..\src\common\addremovectrl.cpp" />
|
<ClCompile Include="..\..\src\common\addremovectrl.cpp" />
|
||||||
<ClCompile Include="..\..\src\generic\activityindicator.cpp" />
|
<ClCompile Include="..\..\src\generic\activityindicator.cpp" />
|
||||||
|
<ClCompile Include="..\..\src\msw\rt\notifmsgrt.cpp" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ResourceCompile Include="..\..\src\msw\version.rc">
|
<ResourceCompile Include="..\..\src\msw\version.rc">
|
||||||
|
@@ -174,6 +174,9 @@
|
|||||||
<ClCompile Include="..\..\src\msw\richtooltip.cpp">
|
<ClCompile Include="..\..\src\msw\richtooltip.cpp">
|
||||||
<Filter>MSW Sources</Filter>
|
<Filter>MSW Sources</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
|
<ClCompile Include="..\..\src\msw\rt\notifmsgrt.cpp">
|
||||||
|
|
||||||
|
<Filter>MSW Sources</Filter>
|
||||||
|
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
|
|
||||||
|
@@ -391,6 +391,9 @@
|
|||||||
Name="Release|Win32"
|
Name="Release|Win32"
|
||||||
ExcludedFromBuild="TRUE"/>
|
ExcludedFromBuild="TRUE"/>
|
||||||
</File>
|
</File>
|
||||||
|
<File
|
||||||
|
RelativePath="..\..\src\msw\rt\notifmsgrt.cpp">
|
||||||
|
</File>
|
||||||
</Filter>
|
</Filter>
|
||||||
<Filter
|
<Filter
|
||||||
Name="Generic Sources"
|
Name="Generic Sources"
|
||||||
|
@@ -934,6 +934,10 @@
|
|||||||
ExcludedFromBuild="true"
|
ExcludedFromBuild="true"
|
||||||
/>
|
/>
|
||||||
</File>
|
</File>
|
||||||
|
<File
|
||||||
|
RelativePath="..\..\src\msw\rt\notifmsgrt.cpp"
|
||||||
|
>
|
||||||
|
</File>
|
||||||
</Filter>
|
</Filter>
|
||||||
<Filter
|
<Filter
|
||||||
Name="Generic Sources"
|
Name="Generic Sources"
|
||||||
|
@@ -930,6 +930,10 @@
|
|||||||
ExcludedFromBuild="true"
|
ExcludedFromBuild="true"
|
||||||
/>
|
/>
|
||||||
</File>
|
</File>
|
||||||
|
<File
|
||||||
|
RelativePath="..\..\src\msw\rt\notifmsgrt.cpp"
|
||||||
|
>
|
||||||
|
</File>
|
||||||
</Filter>
|
</Filter>
|
||||||
<Filter
|
<Filter
|
||||||
Name="Generic Sources"
|
Name="Generic Sources"
|
||||||
|
26
include/wx/msw/rt/private/notifmsg.h
Normal file
26
include/wx/msw/rt/private/notifmsg.h
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
|
// Name: wx/msw/rt/private/notifmsg.h
|
||||||
|
// Purpose: WinRT implementation of wxNotificationMessageImpl
|
||||||
|
// Author: Tobias Taschner
|
||||||
|
// Created: 2015-09-13
|
||||||
|
// Copyright: (c) 2015 wxWidgets development team
|
||||||
|
// Licence: wxWindows licence
|
||||||
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
|
#ifndef _WX_MSW_RT_PRIVATE_NOTIFMSG_H_
|
||||||
|
#define _WX_MSW_RT_PRIVATE_NOTIFMSG_H_
|
||||||
|
|
||||||
|
#include "wx/notifmsg.h"
|
||||||
|
#include "wx/private/notifmsg.h"
|
||||||
|
|
||||||
|
class wxToastNotificationHelper
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
static bool UseToasts(const wxString& shortcutPath,
|
||||||
|
const wxString& appId);
|
||||||
|
|
||||||
|
static bool IsEnabled();
|
||||||
|
|
||||||
|
static wxNotificationMessageImpl* CreateInstance(wxNotificationMessageBase* notification);
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif // _WX_MSW_RT_PRIVATE_NOTIFMSG_H_
|
@@ -160,9 +160,14 @@ public:
|
|||||||
}
|
}
|
||||||
|
|
||||||
#if defined(__WXMSW__) && defined(wxHAS_NATIVE_NOTIFICATION_MESSAGE)
|
#if defined(__WXMSW__) && defined(wxHAS_NATIVE_NOTIFICATION_MESSAGE)
|
||||||
|
static bool MSWUseToasts(
|
||||||
|
const wxString& shortcutPath = wxString(),
|
||||||
|
const wxString& appId = wxString());
|
||||||
|
|
||||||
// returns the task bar icon which was used previously (may be NULL)
|
// returns the task bar icon which was used previously (may be NULL)
|
||||||
static wxTaskBarIcon *UseTaskBarIcon(wxTaskBarIcon *icon);
|
static wxTaskBarIcon *UseTaskBarIcon(wxTaskBarIcon *icon);
|
||||||
#endif
|
|
||||||
|
#endif // defined(__WXMSW__) && defined(wxHAS_NATIVE_NOTIFICATION_MESSAGE)
|
||||||
|
|
||||||
private:
|
private:
|
||||||
// common part of all ctors
|
// common part of all ctors
|
||||||
|
@@ -20,6 +20,16 @@
|
|||||||
|
|
||||||
@section platform_notes Platform Notes
|
@section platform_notes Platform Notes
|
||||||
|
|
||||||
|
@par Windows
|
||||||
|
Up to Windows 8.1 balloon notifications are displayed from an icon in the
|
||||||
|
notification area of the taskbar. If your application uses a wxTaskBarIcon
|
||||||
|
you should call UseTaskBarIcon() to ensure that only one icon is shown in
|
||||||
|
the notification area. Windows 10 displays all notifications as popup
|
||||||
|
toasts. To suppress the additional icon in the notification area on
|
||||||
|
Windows 10 and for toast notification support on Windows 8 it is
|
||||||
|
recommended to call MSWUseToasts() before showing the first notification
|
||||||
|
message.
|
||||||
|
|
||||||
@par OS X
|
@par OS X
|
||||||
The OS X implementation uses Notification Center to display native notifications.
|
The OS X implementation uses Notification Center to display native notifications.
|
||||||
In order to use actions your notifications must use the alert style. This can
|
In order to use actions your notifications must use the alert style. This can
|
||||||
@@ -84,7 +94,7 @@ public:
|
|||||||
@return @false if the current implementation or OS version
|
@return @false if the current implementation or OS version
|
||||||
does not support actions in notifications.
|
does not support actions in notifications.
|
||||||
|
|
||||||
@since 3.1.0
|
@since 3.1.0
|
||||||
*/
|
*/
|
||||||
bool AddAction(wxWindowID actionid, const wxString &label = wxString());
|
bool AddAction(wxWindowID actionid, const wxString &label = wxString());
|
||||||
|
|
||||||
@@ -170,5 +180,39 @@ public:
|
|||||||
*/
|
*/
|
||||||
static wxTaskBarIcon *UseTaskBarIcon(wxTaskBarIcon *icon);
|
static wxTaskBarIcon *UseTaskBarIcon(wxTaskBarIcon *icon);
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
Enables toast notifications available since Windows 8 and suppresses
|
||||||
|
the additional icon in the notification area on Windows 10.
|
||||||
|
|
||||||
|
Toast notifications @b require a shortcut to the application in the
|
||||||
|
start menu. The start menu shortcut needs to contain an Application
|
||||||
|
User Model ID. It is recommended that the applications setup creates the
|
||||||
|
shortcut and the application specifies the setup created shortcut in
|
||||||
|
@c shortcutPath. A call to this method will verify (and if necessary
|
||||||
|
modify) the shortcut before enabling toast notifications.
|
||||||
|
|
||||||
|
@param shortcutPath
|
||||||
|
Path to a shortcut file referencing the applications executable. If
|
||||||
|
the string is empty the applications display name will be used. If
|
||||||
|
not fully qualified, it will be used as a path relative to the
|
||||||
|
users start menu directory. The file extension .lnk is optional.
|
||||||
|
@param appId
|
||||||
|
The applications <a href="https://msdn.microsoft.com/en-us/library/windows/desktop/dd378459(vs.85).aspx">
|
||||||
|
Application User Model ID</a>. If empty it will be extracted from
|
||||||
|
the shortcut. If the shortcut does not contain an id an id will be
|
||||||
|
automatically created from the applications vendor and app name.
|
||||||
|
|
||||||
|
@return @false if toast notifications could not be enabled.
|
||||||
|
|
||||||
|
@onlyfor{wxmsw}
|
||||||
|
|
||||||
|
@see wxAppConsole::SetAppName(), wxAppConsole::SetVendorName()
|
||||||
|
|
||||||
|
@since 3.1.0
|
||||||
|
*/
|
||||||
|
static bool MSWUseToasts(
|
||||||
|
const wxString& shortcutPath = wxString(),
|
||||||
|
const wxString& appId = wxString());
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@@ -2289,6 +2289,14 @@ private:
|
|||||||
|
|
||||||
void MyFrame::OnNotifMsg(wxCommandEvent& WXUNUSED(event))
|
void MyFrame::OnNotifMsg(wxCommandEvent& WXUNUSED(event))
|
||||||
{
|
{
|
||||||
|
#ifdef __WXMSW__
|
||||||
|
// Try to enable toast notifications (available since Win8)
|
||||||
|
if ( !wxNotificationMessage::MSWUseToasts() )
|
||||||
|
{
|
||||||
|
wxLogDebug("Toast notifications not available.");
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
TestNotificationMessageWindow* dlg = new TestNotificationMessageWindow(this);
|
TestNotificationMessageWindow* dlg = new TestNotificationMessageWindow(this);
|
||||||
dlg->Show();
|
dlg->Show();
|
||||||
}
|
}
|
||||||
|
@@ -33,11 +33,11 @@
|
|||||||
#include "wx/toplevel.h"
|
#include "wx/toplevel.h"
|
||||||
#include "wx/app.h"
|
#include "wx/app.h"
|
||||||
#include "wx/string.h"
|
#include "wx/string.h"
|
||||||
|
#include "wx/app.h"
|
||||||
#endif // WX_PRECOMP
|
#endif // WX_PRECOMP
|
||||||
|
|
||||||
#include "wx/private/notifmsg.h"
|
#include "wx/private/notifmsg.h"
|
||||||
#include "wx/generic/notifmsg.h"
|
#include "wx/msw/rt/private/notifmsg.h"
|
||||||
#include "wx/generic/private/notifmsg.h"
|
|
||||||
|
|
||||||
#include "wx/taskbar.h"
|
#include "wx/taskbar.h"
|
||||||
|
|
||||||
@@ -337,9 +337,19 @@ wxTaskBarIcon *wxNotificationMessage::UseTaskBarIcon(wxTaskBarIcon *icon)
|
|||||||
return wxBalloonNotifMsgImpl::UseTaskBarIcon(icon);
|
return wxBalloonNotifMsgImpl::UseTaskBarIcon(icon);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool wxNotificationMessage::MSWUseToasts(
|
||||||
|
const wxString& shortcutPath,
|
||||||
|
const wxString& appId)
|
||||||
|
{
|
||||||
|
return wxToastNotificationHelper::UseToasts(shortcutPath, appId);
|
||||||
|
}
|
||||||
|
|
||||||
void wxNotificationMessage::Init()
|
void wxNotificationMessage::Init()
|
||||||
{
|
{
|
||||||
m_impl = new wxBalloonNotifMsgImpl(this);
|
if ( wxToastNotificationHelper::IsEnabled() )
|
||||||
|
m_impl = wxToastNotificationHelper::CreateInstance(this);
|
||||||
|
else
|
||||||
|
m_impl = new wxBalloonNotifMsgImpl(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif // wxUSE_NOTIFICATION_MESSAGE && wxUSE_TASKBARICON
|
#endif // wxUSE_NOTIFICATION_MESSAGE && wxUSE_TASKBARICON
|
||||||
|
545
src/msw/rt/notifmsgrt.cpp
Normal file
545
src/msw/rt/notifmsgrt.cpp
Normal file
@@ -0,0 +1,545 @@
|
|||||||
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
|
// Name: src/msw/notifmsgrt.cpp
|
||||||
|
// Purpose: WinRT implementation of wxNotificationMessageImpl
|
||||||
|
// Author: Tobias Taschner
|
||||||
|
// Created: 2015-09-13
|
||||||
|
// Copyright: (c) 2015 wxWidgets development team
|
||||||
|
// Licence: wxWindows licence
|
||||||
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
|
// for compilers that support precompilation, includes "wx.h".
|
||||||
|
#include "wx/wxprec.h"
|
||||||
|
|
||||||
|
#ifdef __BORLANDC__
|
||||||
|
#pragma hdrstop
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef WX_PRECOMP
|
||||||
|
#include "wx/string.h"
|
||||||
|
#endif // WX_PRECOMP
|
||||||
|
|
||||||
|
#include "wx/msw/rt/private/notifmsg.h"
|
||||||
|
|
||||||
|
#if wxUSE_NOTIFICATION_MESSAGE && wxUSE_WINRT
|
||||||
|
#include "wx/notifmsg.h"
|
||||||
|
#include "wx/msw/rt/utils.h"
|
||||||
|
#include "wx/msw/private/comptr.h"
|
||||||
|
#include "wx/msw/wrapshl.h"
|
||||||
|
#include "wx/msw/ole/oleutils.h"
|
||||||
|
|
||||||
|
#include "wx/filename.h"
|
||||||
|
#include "wx/stdpaths.h"
|
||||||
|
|
||||||
|
#include <roapi.h>
|
||||||
|
#include <windows.ui.notifications.h>
|
||||||
|
#include <functiondiscoverykeys.h>
|
||||||
|
#include <propvarutil.h>
|
||||||
|
#include <wrl/implements.h>
|
||||||
|
|
||||||
|
using namespace ABI::Windows::UI::Notifications;
|
||||||
|
using namespace ABI::Windows::Data::Xml::Dom;
|
||||||
|
|
||||||
|
namespace rt = wxWinRT;
|
||||||
|
|
||||||
|
typedef ABI::Windows::Foundation::ITypedEventHandler<ToastNotification *, ::IInspectable *> DesktopToastActivatedEventHandler;
|
||||||
|
typedef ABI::Windows::Foundation::ITypedEventHandler<ToastNotification *, ToastDismissedEventArgs *> DesktopToastDismissedEventHandler;
|
||||||
|
typedef ABI::Windows::Foundation::ITypedEventHandler<ToastNotification *, ToastFailedEventArgs *> DesktopToastFailedEventHandler;
|
||||||
|
|
||||||
|
class wxToastNotifMsgImpl;
|
||||||
|
|
||||||
|
class wxToastEventHandler :
|
||||||
|
public Microsoft::WRL::Implements<DesktopToastActivatedEventHandler, DesktopToastDismissedEventHandler, DesktopToastFailedEventHandler>
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
wxToastEventHandler(wxToastNotifMsgImpl* toastImpl) :
|
||||||
|
m_impl(toastImpl)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
void Detach()
|
||||||
|
{
|
||||||
|
m_impl = NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
// DesktopToastActivatedEventHandler
|
||||||
|
IFACEMETHODIMP Invoke(IToastNotification *sender, IInspectable* args);
|
||||||
|
|
||||||
|
// DesktopToastDismissedEventHandler
|
||||||
|
IFACEMETHODIMP Invoke(IToastNotification *sender, IToastDismissedEventArgs *e);
|
||||||
|
|
||||||
|
// DesktopToastFailedEventHandler
|
||||||
|
IFACEMETHODIMP Invoke(IToastNotification *sender, IToastFailedEventArgs *e);
|
||||||
|
|
||||||
|
// IUnknown
|
||||||
|
IFACEMETHODIMP_(ULONG) AddRef()
|
||||||
|
{
|
||||||
|
return ++m_cRef;
|
||||||
|
}
|
||||||
|
|
||||||
|
IFACEMETHODIMP_(ULONG) Release()
|
||||||
|
{
|
||||||
|
if ( --m_cRef == wxAutoULong(0) )
|
||||||
|
{
|
||||||
|
delete this;
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
return m_cRef;
|
||||||
|
}
|
||||||
|
|
||||||
|
IFACEMETHODIMP QueryInterface(REFIID riid, void **ppv)
|
||||||
|
{
|
||||||
|
if ( IsEqualIID(riid, IID_IUnknown) )
|
||||||
|
*ppv = static_cast<IUnknown*>(static_cast<DesktopToastActivatedEventHandler*>(this));
|
||||||
|
else if ( IsEqualIID(riid, __uuidof(DesktopToastActivatedEventHandler)) )
|
||||||
|
*ppv = static_cast<DesktopToastActivatedEventHandler*>(this);
|
||||||
|
else if ( IsEqualIID(riid, __uuidof(DesktopToastDismissedEventHandler)) )
|
||||||
|
*ppv = static_cast<DesktopToastDismissedEventHandler*>(this);
|
||||||
|
else if ( IsEqualIID(riid, __uuidof(DesktopToastFailedEventHandler)) )
|
||||||
|
*ppv = static_cast<DesktopToastFailedEventHandler*>(this);
|
||||||
|
else
|
||||||
|
*ppv = NULL;
|
||||||
|
|
||||||
|
if ( *ppv )
|
||||||
|
{
|
||||||
|
reinterpret_cast<IUnknown*>(*ppv)->AddRef();
|
||||||
|
return S_OK;
|
||||||
|
}
|
||||||
|
|
||||||
|
return E_NOINTERFACE;
|
||||||
|
}
|
||||||
|
|
||||||
|
private:
|
||||||
|
wxAutoULong m_cRef;
|
||||||
|
|
||||||
|
wxToastNotifMsgImpl* m_impl;
|
||||||
|
};
|
||||||
|
|
||||||
|
class wxToastNotifMsgImpl : public wxNotificationMessageImpl
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
wxToastNotifMsgImpl(wxNotificationMessageBase* notification) :
|
||||||
|
wxNotificationMessageImpl(notification),
|
||||||
|
m_toastEventHandler(NULL)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
virtual ~wxToastNotifMsgImpl()
|
||||||
|
{
|
||||||
|
if ( m_toastEventHandler )
|
||||||
|
m_toastEventHandler->Detach();
|
||||||
|
}
|
||||||
|
|
||||||
|
virtual bool Show(int WXUNUSED(timeout)) wxOVERRIDE
|
||||||
|
{
|
||||||
|
wxCOMPtr<IXmlDocument> toastXml;
|
||||||
|
HRESULT hr = CreateToastXML(&toastXml);
|
||||||
|
if ( SUCCEEDED(hr) )
|
||||||
|
{
|
||||||
|
hr = CreateToast(toastXml);
|
||||||
|
}
|
||||||
|
|
||||||
|
return SUCCEEDED(hr);
|
||||||
|
}
|
||||||
|
|
||||||
|
virtual bool Close() wxOVERRIDE
|
||||||
|
{
|
||||||
|
if ( m_notifier.get() && m_toast.get() )
|
||||||
|
{
|
||||||
|
bool success = SUCCEEDED(m_notifier->Hide(m_toast));
|
||||||
|
ReleaseToast();
|
||||||
|
return success;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
virtual void SetTitle(const wxString& title) wxOVERRIDE
|
||||||
|
{
|
||||||
|
m_title = title;
|
||||||
|
}
|
||||||
|
|
||||||
|
virtual void SetMessage(const wxString& message) wxOVERRIDE
|
||||||
|
{
|
||||||
|
m_message = message;
|
||||||
|
}
|
||||||
|
|
||||||
|
virtual void SetParent(wxWindow *WXUNUSED(parent)) wxOVERRIDE
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
virtual void SetFlags(int WXUNUSED(flags)) wxOVERRIDE
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
virtual void SetIcon(const wxIcon& WXUNUSED(icon)) wxOVERRIDE
|
||||||
|
{
|
||||||
|
// Icon would have to be saved to disk (temporarily?)
|
||||||
|
// to be used as a file:// url in the notifications XML
|
||||||
|
}
|
||||||
|
|
||||||
|
virtual bool AddAction(wxWindowID WXUNUSED(actionid), const wxString &WXUNUSED(label)) wxOVERRIDE
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
void ReleaseToast()
|
||||||
|
{
|
||||||
|
if ( m_toastEventHandler )
|
||||||
|
m_toastEventHandler->Detach();
|
||||||
|
m_notifier = NULL;
|
||||||
|
m_toast = NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
HRESULT CreateToast(IXmlDocument *xml)
|
||||||
|
{
|
||||||
|
HRESULT hr = ms_toastMgr->CreateToastNotifierWithId(rt::TempStringRef::Make(ms_appId), &m_notifier);
|
||||||
|
if ( SUCCEEDED(hr) )
|
||||||
|
{
|
||||||
|
wxCOMPtr<IToastNotificationFactory> factory;
|
||||||
|
hr = rt::GetActivationFactory(RuntimeClass_Windows_UI_Notifications_ToastNotification,
|
||||||
|
IID_IToastNotificationFactory, reinterpret_cast<void**>(&factory));
|
||||||
|
if ( SUCCEEDED(hr) )
|
||||||
|
{
|
||||||
|
hr = factory->CreateToastNotification(xml, &m_toast);
|
||||||
|
if ( SUCCEEDED(hr) )
|
||||||
|
{
|
||||||
|
// Register the event handlers
|
||||||
|
EventRegistrationToken activatedToken, dismissedToken, failedToken;
|
||||||
|
m_toastEventHandler = new wxToastEventHandler(this);
|
||||||
|
wxCOMPtr<wxToastEventHandler> eventHandler(m_toastEventHandler);
|
||||||
|
|
||||||
|
hr = m_toast->add_Activated(eventHandler, &activatedToken);
|
||||||
|
if ( SUCCEEDED(hr) )
|
||||||
|
{
|
||||||
|
hr = m_toast->add_Dismissed(eventHandler, &dismissedToken);
|
||||||
|
if ( SUCCEEDED(hr) )
|
||||||
|
{
|
||||||
|
hr = m_toast->add_Failed(eventHandler, &failedToken);
|
||||||
|
if ( SUCCEEDED(hr) )
|
||||||
|
{
|
||||||
|
hr = m_notifier->Show(m_toast);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if ( FAILED(hr) )
|
||||||
|
ReleaseToast();
|
||||||
|
|
||||||
|
return hr;
|
||||||
|
}
|
||||||
|
|
||||||
|
HRESULT CreateToastXML(IXmlDocument** toastXml) const
|
||||||
|
{
|
||||||
|
HRESULT hr = ms_toastMgr->GetTemplateContent(ToastTemplateType_ToastText02, toastXml);
|
||||||
|
if ( SUCCEEDED(hr) )
|
||||||
|
{
|
||||||
|
wxCOMPtr<IXmlNodeList> nodeList;
|
||||||
|
hr = (*toastXml)->GetElementsByTagName(rt::TempStringRef::Make("text"), &nodeList);
|
||||||
|
if ( SUCCEEDED(hr) )
|
||||||
|
{
|
||||||
|
hr = SetNodeListValueString(0, m_title, nodeList, *toastXml);
|
||||||
|
if ( SUCCEEDED(hr) )
|
||||||
|
hr = SetNodeListValueString(1, m_message, nodeList, *toastXml);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return hr;
|
||||||
|
}
|
||||||
|
|
||||||
|
static HRESULT SetNodeListValueString(UINT32 index, const wxString& str, IXmlNodeList* nodeList, IXmlDocument *toastXml)
|
||||||
|
{
|
||||||
|
wxCOMPtr<IXmlNode> textNode;
|
||||||
|
// Set title node
|
||||||
|
HRESULT hr = nodeList->Item(index, &textNode);
|
||||||
|
if ( SUCCEEDED(hr) )
|
||||||
|
{
|
||||||
|
hr = SetNodeValueString(str, textNode, toastXml);
|
||||||
|
}
|
||||||
|
|
||||||
|
return hr;
|
||||||
|
}
|
||||||
|
|
||||||
|
static HRESULT SetNodeValueString(const wxString& str, IXmlNode *node, IXmlDocument *xml)
|
||||||
|
{
|
||||||
|
wxCOMPtr<IXmlText> inputText;
|
||||||
|
|
||||||
|
HRESULT hr = xml->CreateTextNode(rt::TempStringRef::Make(str), &inputText);
|
||||||
|
if ( SUCCEEDED(hr) )
|
||||||
|
{
|
||||||
|
wxCOMPtr<IXmlNode> inputTextNode;
|
||||||
|
|
||||||
|
hr = inputText->QueryInterface(IID_IXmlNode, reinterpret_cast<void**>(&inputTextNode));
|
||||||
|
if ( SUCCEEDED(hr) )
|
||||||
|
{
|
||||||
|
wxCOMPtr<IXmlNode> pAppendedChild;
|
||||||
|
hr = node->AppendChild(inputTextNode, &pAppendedChild);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return hr;
|
||||||
|
}
|
||||||
|
|
||||||
|
static bool IsEnabled()
|
||||||
|
{
|
||||||
|
return ms_enabled;
|
||||||
|
}
|
||||||
|
|
||||||
|
static wxString BuildAppId()
|
||||||
|
{
|
||||||
|
// Build a Application User Model IDs based on app info
|
||||||
|
wxString vendorId = wxTheApp->GetVendorName();
|
||||||
|
if ( vendorId.empty() )
|
||||||
|
vendorId = "wxWidgetsApp";
|
||||||
|
wxString appId = vendorId + "." + wxTheApp->GetAppName();
|
||||||
|
// Remove potential spaces
|
||||||
|
appId.Replace(" ", "", true);
|
||||||
|
return appId;
|
||||||
|
}
|
||||||
|
|
||||||
|
static bool CheckShortcut(const wxFileName& filename)
|
||||||
|
{
|
||||||
|
// Prepare interfaces
|
||||||
|
wxCOMPtr<IShellLink> shellLink;
|
||||||
|
if ( FAILED(CoCreateInstance(CLSID_ShellLink, NULL, CLSCTX_INPROC_SERVER,
|
||||||
|
IID_IShellLinkW, reinterpret_cast<void**>(&shellLink))) )
|
||||||
|
return false;
|
||||||
|
wxCOMPtr<IPersistFile> persistFile;
|
||||||
|
if ( FAILED(shellLink->QueryInterface(IID_IPersistFile, reinterpret_cast<void**>(&persistFile))) )
|
||||||
|
return false;
|
||||||
|
wxCOMPtr<IPropertyStore> propertyStore;
|
||||||
|
if ( FAILED(shellLink->QueryInterface(IID_IPropertyStore, reinterpret_cast<void**>(&propertyStore))) )
|
||||||
|
return false;
|
||||||
|
|
||||||
|
bool writeShortcut = false;
|
||||||
|
|
||||||
|
if ( filename.Exists() )
|
||||||
|
{
|
||||||
|
// Check existing shortcut for application id
|
||||||
|
if ( SUCCEEDED(persistFile->Load(filename.GetFullPath().wc_str(), 0)) )
|
||||||
|
{
|
||||||
|
PROPVARIANT appIdPropVar;
|
||||||
|
if ( SUCCEEDED(propertyStore->GetValue(PKEY_AppUserModel_ID, &appIdPropVar)) )
|
||||||
|
{
|
||||||
|
wxString appId;
|
||||||
|
if ( appIdPropVar.vt == VT_LPWSTR )
|
||||||
|
appId = appIdPropVar.pwszVal;
|
||||||
|
if ( appId.empty() || (!ms_appId.empty() && ms_appId != appId) )
|
||||||
|
{
|
||||||
|
// Update shortcut if app id does not match or is empty
|
||||||
|
writeShortcut = true;
|
||||||
|
}
|
||||||
|
else if ( ms_appId.empty() )
|
||||||
|
{
|
||||||
|
// Use if no app id has been set
|
||||||
|
ms_appId = appId;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// Create new shortcut
|
||||||
|
if ( FAILED(shellLink->SetPath(wxStandardPaths::Get().GetExecutablePath().wc_str())) )
|
||||||
|
return false;
|
||||||
|
if ( FAILED(shellLink->SetArguments(L"")) )
|
||||||
|
return false;
|
||||||
|
|
||||||
|
writeShortcut = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ( writeShortcut )
|
||||||
|
{
|
||||||
|
if ( ms_appId.empty() )
|
||||||
|
ms_appId = BuildAppId();
|
||||||
|
|
||||||
|
// Set application id in shortcut
|
||||||
|
PROPVARIANT appIdPropVar;
|
||||||
|
if ( FAILED(InitPropVariantFromString(ms_appId.wc_str(), &appIdPropVar)) )
|
||||||
|
return false;
|
||||||
|
if ( FAILED(propertyStore->SetValue(PKEY_AppUserModel_ID, appIdPropVar)) )
|
||||||
|
return false;
|
||||||
|
if ( FAILED(propertyStore->Commit()) )
|
||||||
|
return false;
|
||||||
|
if ( FAILED(persistFile->Save(filename.GetFullPath().wc_str(), TRUE)) )
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
static bool UseToasts(
|
||||||
|
const wxString& shortcutPath,
|
||||||
|
const wxString& appId)
|
||||||
|
{
|
||||||
|
ms_enabled = false;
|
||||||
|
|
||||||
|
// WinRT runtime is required (available since Win8)
|
||||||
|
if ( !rt::IsAvailable() )
|
||||||
|
return false;
|
||||||
|
|
||||||
|
// Toast notification manager has to be available
|
||||||
|
if ( ms_toastStaticsInitialized == -1 )
|
||||||
|
{
|
||||||
|
if ( SUCCEEDED(rt::GetActivationFactory(RuntimeClass_Windows_UI_Notifications_ToastNotificationManager,
|
||||||
|
IID_IToastNotificationManagerStatics, reinterpret_cast<void**>(&ms_toastMgr))) )
|
||||||
|
{
|
||||||
|
ms_toastStaticsInitialized = 1;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
ms_toastStaticsInitialized = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ( ms_toastStaticsInitialized != 1 )
|
||||||
|
return false;
|
||||||
|
|
||||||
|
// Build/complete shortcut path
|
||||||
|
wxFileName shortcutFilename(shortcutPath);
|
||||||
|
if ( !shortcutFilename.HasName() )
|
||||||
|
shortcutFilename.SetName(wxTheApp->GetAppDisplayName());
|
||||||
|
if ( !shortcutFilename.HasExt() )
|
||||||
|
shortcutFilename.SetExt("lnk");
|
||||||
|
if ( shortcutFilename.IsRelative() )
|
||||||
|
shortcutFilename.MakeAbsolute(wxStandardPaths::MSWGetShellDir(CSIDL_STARTMENU));
|
||||||
|
|
||||||
|
ms_appId = appId;
|
||||||
|
|
||||||
|
if ( CheckShortcut(shortcutFilename) )
|
||||||
|
ms_enabled = true;
|
||||||
|
|
||||||
|
return ms_enabled;
|
||||||
|
}
|
||||||
|
|
||||||
|
static void Uninitalize()
|
||||||
|
{
|
||||||
|
if (ms_toastStaticsInitialized == 1)
|
||||||
|
{
|
||||||
|
ms_toastMgr = NULL;
|
||||||
|
ms_toastStaticsInitialized = -1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private:
|
||||||
|
wxString m_title;
|
||||||
|
wxString m_message;
|
||||||
|
wxCOMPtr<IToastNotifier> m_notifier;
|
||||||
|
wxCOMPtr<IToastNotification> m_toast;
|
||||||
|
wxToastEventHandler* m_toastEventHandler;
|
||||||
|
|
||||||
|
static bool ms_enabled;
|
||||||
|
static wxString ms_appId;
|
||||||
|
static int ms_toastStaticsInitialized;
|
||||||
|
static wxCOMPtr<IToastNotificationManagerStatics> ms_toastMgr;
|
||||||
|
|
||||||
|
friend class wxToastEventHandler;
|
||||||
|
};
|
||||||
|
|
||||||
|
bool wxToastNotifMsgImpl::ms_enabled = false;
|
||||||
|
int wxToastNotifMsgImpl::ms_toastStaticsInitialized = -1;
|
||||||
|
wxString wxToastNotifMsgImpl::ms_appId;
|
||||||
|
wxCOMPtr<IToastNotificationManagerStatics> wxToastNotifMsgImpl::ms_toastMgr;
|
||||||
|
|
||||||
|
HRESULT wxToastEventHandler::Invoke(
|
||||||
|
IToastNotification *WXUNUSED(sender),
|
||||||
|
IInspectable *WXUNUSED(args))
|
||||||
|
{
|
||||||
|
if ( m_impl )
|
||||||
|
{
|
||||||
|
wxCommandEvent evt(wxEVT_NOTIFICATION_MESSAGE_CLICK);
|
||||||
|
m_impl->ProcessNotificationEvent(evt);
|
||||||
|
}
|
||||||
|
|
||||||
|
return S_OK;
|
||||||
|
}
|
||||||
|
|
||||||
|
HRESULT wxToastEventHandler::Invoke(
|
||||||
|
IToastNotification *WXUNUSED(sender),
|
||||||
|
IToastDismissedEventArgs *WXUNUSED(e))
|
||||||
|
{
|
||||||
|
if ( m_impl )
|
||||||
|
{
|
||||||
|
wxCommandEvent evt(wxEVT_NOTIFICATION_MESSAGE_DISMISSED);
|
||||||
|
m_impl->ProcessNotificationEvent(evt);
|
||||||
|
}
|
||||||
|
|
||||||
|
return S_OK;
|
||||||
|
}
|
||||||
|
|
||||||
|
HRESULT wxToastEventHandler::Invoke(IToastNotification *WXUNUSED(sender),
|
||||||
|
IToastFailedEventArgs *WXUNUSED(e))
|
||||||
|
{
|
||||||
|
//TODO: Handle toast failed event
|
||||||
|
return S_OK;
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
// wxToastNotifMsgModule
|
||||||
|
//
|
||||||
|
|
||||||
|
class wxToastNotifMsgModule : public wxModule
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
wxToastNotifMsgModule()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
virtual bool OnInit() wxOVERRIDE
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
virtual void OnExit() wxOVERRIDE
|
||||||
|
{
|
||||||
|
wxToastNotifMsgImpl::Uninitalize();
|
||||||
|
}
|
||||||
|
|
||||||
|
private:
|
||||||
|
wxDECLARE_DYNAMIC_CLASS(wxToastNotifMsgModule);
|
||||||
|
};
|
||||||
|
|
||||||
|
wxIMPLEMENT_DYNAMIC_CLASS(wxToastNotifMsgModule, wxModule);
|
||||||
|
|
||||||
|
#endif // wxUSE_NOTIFICATION_MESSAGE && wxUSE_WINRT
|
||||||
|
|
||||||
|
//
|
||||||
|
// wxToastNotificationHelper
|
||||||
|
//
|
||||||
|
|
||||||
|
bool wxToastNotificationHelper::UseToasts(const wxString& shortcutPath,
|
||||||
|
const wxString& appId)
|
||||||
|
{
|
||||||
|
#if wxUSE_NOTIFICATION_MESSAGE && wxUSE_WINRT
|
||||||
|
return wxToastNotifMsgImpl::UseToasts(shortcutPath, appId);
|
||||||
|
#else
|
||||||
|
wxUnusedVar(shortcutPath);
|
||||||
|
wxUnusedVar(appId);
|
||||||
|
return false;
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
bool wxToastNotificationHelper::IsEnabled()
|
||||||
|
{
|
||||||
|
#if wxUSE_NOTIFICATION_MESSAGE && wxUSE_WINRT
|
||||||
|
return wxToastNotifMsgImpl::IsEnabled();
|
||||||
|
#else
|
||||||
|
return false;
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
wxNotificationMessageImpl* wxToastNotificationHelper::CreateInstance(wxNotificationMessageBase* notification)
|
||||||
|
{
|
||||||
|
#if wxUSE_NOTIFICATION_MESSAGE && wxUSE_WINRT
|
||||||
|
return new wxToastNotifMsgImpl(notification);
|
||||||
|
#else
|
||||||
|
wxUnusedVar(notification);
|
||||||
|
return NULL;
|
||||||
|
#endif
|
||||||
|
}
|
Reference in New Issue
Block a user