wxMediaCtrl patch from Ryan:
- factored out Active X code into separate files - also refactored common part of all backends in mediactrlcmn.cpp - adds async loading from URLs support to Mac version - support for ShowPlayerControls() in Mac wxMediaCtrl - more minor bug fixes in the MSW version and the sample (this is slightly modified patch 1264533 (without the list control part)) git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@35461 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
64
Makefile.in
64
Makefile.in
@@ -2261,9 +2261,9 @@ COND_WXUNIV_1_ADVANCED_HDR = \
|
|||||||
@COND_TOOLKIT_GTK@MEDIA_PLATFORM_HDR =
|
@COND_TOOLKIT_GTK@MEDIA_PLATFORM_HDR =
|
||||||
@COND_TOOLKIT_MAC@MEDIA_PLATFORM_HDR =
|
@COND_TOOLKIT_MAC@MEDIA_PLATFORM_HDR =
|
||||||
@COND_TOOLKIT_MOTIF@MEDIA_PLATFORM_HDR =
|
@COND_TOOLKIT_MOTIF@MEDIA_PLATFORM_HDR =
|
||||||
@COND_TOOLKIT_MSW@MEDIA_PLATFORM_HDR =
|
@COND_TOOLKIT_MSW@MEDIA_PLATFORM_HDR = wx/msw/ole/activex.h
|
||||||
@COND_TOOLKIT_PM@MEDIA_PLATFORM_HDR =
|
@COND_TOOLKIT_PM@MEDIA_PLATFORM_HDR =
|
||||||
@COND_TOOLKIT_WINCE@MEDIA_PLATFORM_HDR =
|
@COND_TOOLKIT_WINCE@MEDIA_PLATFORM_HDR = wx/msw/ole/activex.h
|
||||||
@COND_TOOLKIT_X11@MEDIA_PLATFORM_HDR =
|
@COND_TOOLKIT_X11@MEDIA_PLATFORM_HDR =
|
||||||
@COND_USE_GUI_1_WXUNIV_0@GUI_CORE_HEADERS = $(GUI_HDR)
|
@COND_USE_GUI_1_WXUNIV_0@GUI_CORE_HEADERS = $(GUI_HDR)
|
||||||
COND_USE_GUI_1_WXUNIV_1_GUI_CORE_HEADERS = \
|
COND_USE_GUI_1_WXUNIV_1_GUI_CORE_HEADERS = \
|
||||||
@@ -4039,9 +4039,11 @@ COND_WXUNIV_1___ADVANCED_SRC_OBJECTS = \
|
|||||||
@COND_TOOLKIT_GTK@__MEDIA_PLATFORM_SRC_OBJECTS = monodll_mediactrl.o
|
@COND_TOOLKIT_GTK@__MEDIA_PLATFORM_SRC_OBJECTS = monodll_mediactrl.o
|
||||||
@COND_TOOLKIT_MAC@__MEDIA_PLATFORM_SRC_OBJECTS = monodll_mediactrl.o
|
@COND_TOOLKIT_MAC@__MEDIA_PLATFORM_SRC_OBJECTS = monodll_mediactrl.o
|
||||||
@COND_TOOLKIT_MOTIF@__MEDIA_PLATFORM_SRC_OBJECTS = monodll_mediactrl.o
|
@COND_TOOLKIT_MOTIF@__MEDIA_PLATFORM_SRC_OBJECTS = monodll_mediactrl.o
|
||||||
@COND_TOOLKIT_MSW@__MEDIA_PLATFORM_SRC_OBJECTS = monodll_mediactrl.o
|
@COND_TOOLKIT_MSW@__MEDIA_PLATFORM_SRC_OBJECTS = \
|
||||||
|
@COND_TOOLKIT_MSW@ monodll_mediactrl.o monodll_activex.o
|
||||||
@COND_TOOLKIT_PM@__MEDIA_PLATFORM_SRC_OBJECTS =
|
@COND_TOOLKIT_PM@__MEDIA_PLATFORM_SRC_OBJECTS =
|
||||||
@COND_TOOLKIT_WINCE@__MEDIA_PLATFORM_SRC_OBJECTS = monodll_mediactrl.o
|
@COND_TOOLKIT_WINCE@__MEDIA_PLATFORM_SRC_OBJECTS = \
|
||||||
|
@COND_TOOLKIT_WINCE@ monodll_mediactrl.o monodll_activex.o
|
||||||
@COND_TOOLKIT_X11@__MEDIA_PLATFORM_SRC_OBJECTS = monodll_mediactrl.o
|
@COND_TOOLKIT_X11@__MEDIA_PLATFORM_SRC_OBJECTS = monodll_mediactrl.o
|
||||||
@COND_PLATFORM_MACOSX_1@__HTML_SRC_PLATFORM_OBJECTS = monodll_chm.o
|
@COND_PLATFORM_MACOSX_1@__HTML_SRC_PLATFORM_OBJECTS = monodll_chm.o
|
||||||
@COND_PLATFORM_UNIX_1@__HTML_SRC_PLATFORM_OBJECTS = monodll_chm.o
|
@COND_PLATFORM_UNIX_1@__HTML_SRC_PLATFORM_OBJECTS = monodll_chm.o
|
||||||
@@ -5504,9 +5506,11 @@ COND_WXUNIV_1___ADVANCED_SRC_OBJECTS_1 = \
|
|||||||
@COND_TOOLKIT_GTK@__MEDIA_PLATFORM_SRC_OBJECTS_1 = monolib_mediactrl.o
|
@COND_TOOLKIT_GTK@__MEDIA_PLATFORM_SRC_OBJECTS_1 = monolib_mediactrl.o
|
||||||
@COND_TOOLKIT_MAC@__MEDIA_PLATFORM_SRC_OBJECTS_1 = monolib_mediactrl.o
|
@COND_TOOLKIT_MAC@__MEDIA_PLATFORM_SRC_OBJECTS_1 = monolib_mediactrl.o
|
||||||
@COND_TOOLKIT_MOTIF@__MEDIA_PLATFORM_SRC_OBJECTS_1 = monolib_mediactrl.o
|
@COND_TOOLKIT_MOTIF@__MEDIA_PLATFORM_SRC_OBJECTS_1 = monolib_mediactrl.o
|
||||||
@COND_TOOLKIT_MSW@__MEDIA_PLATFORM_SRC_OBJECTS_1 = monolib_mediactrl.o
|
@COND_TOOLKIT_MSW@__MEDIA_PLATFORM_SRC_OBJECTS_1 = \
|
||||||
|
@COND_TOOLKIT_MSW@ monolib_mediactrl.o monolib_activex.o
|
||||||
@COND_TOOLKIT_PM@__MEDIA_PLATFORM_SRC_OBJECTS_1 =
|
@COND_TOOLKIT_PM@__MEDIA_PLATFORM_SRC_OBJECTS_1 =
|
||||||
@COND_TOOLKIT_WINCE@__MEDIA_PLATFORM_SRC_OBJECTS_1 = monolib_mediactrl.o
|
@COND_TOOLKIT_WINCE@__MEDIA_PLATFORM_SRC_OBJECTS_1 = \
|
||||||
|
@COND_TOOLKIT_WINCE@ monolib_mediactrl.o monolib_activex.o
|
||||||
@COND_TOOLKIT_X11@__MEDIA_PLATFORM_SRC_OBJECTS_1 = monolib_mediactrl.o
|
@COND_TOOLKIT_X11@__MEDIA_PLATFORM_SRC_OBJECTS_1 = monolib_mediactrl.o
|
||||||
@COND_PLATFORM_MACOSX_1@__HTML_SRC_PLATFORM_OBJECTS_1 = monolib_chm.o
|
@COND_PLATFORM_MACOSX_1@__HTML_SRC_PLATFORM_OBJECTS_1 = monolib_chm.o
|
||||||
@COND_PLATFORM_UNIX_1@__HTML_SRC_PLATFORM_OBJECTS_1 = monolib_chm.o
|
@COND_PLATFORM_UNIX_1@__HTML_SRC_PLATFORM_OBJECTS_1 = monolib_chm.o
|
||||||
@@ -8525,9 +8529,11 @@ COND_USE_SOSYMLINKS_1___mediadll___so_symlinks_inst_cmd = rm -f \
|
|||||||
@COND_TOOLKIT_GTK@__MEDIA_PLATFORM_SRC_OBJECTS_2 = mediadll_mediactrl.o
|
@COND_TOOLKIT_GTK@__MEDIA_PLATFORM_SRC_OBJECTS_2 = mediadll_mediactrl.o
|
||||||
@COND_TOOLKIT_MAC@__MEDIA_PLATFORM_SRC_OBJECTS_2 = mediadll_mediactrl.o
|
@COND_TOOLKIT_MAC@__MEDIA_PLATFORM_SRC_OBJECTS_2 = mediadll_mediactrl.o
|
||||||
@COND_TOOLKIT_MOTIF@__MEDIA_PLATFORM_SRC_OBJECTS_2 = mediadll_mediactrl.o
|
@COND_TOOLKIT_MOTIF@__MEDIA_PLATFORM_SRC_OBJECTS_2 = mediadll_mediactrl.o
|
||||||
@COND_TOOLKIT_MSW@__MEDIA_PLATFORM_SRC_OBJECTS_2 = mediadll_mediactrl.o
|
@COND_TOOLKIT_MSW@__MEDIA_PLATFORM_SRC_OBJECTS_2 = \
|
||||||
|
@COND_TOOLKIT_MSW@ mediadll_mediactrl.o mediadll_activex.o
|
||||||
@COND_TOOLKIT_PM@__MEDIA_PLATFORM_SRC_OBJECTS_2 =
|
@COND_TOOLKIT_PM@__MEDIA_PLATFORM_SRC_OBJECTS_2 =
|
||||||
@COND_TOOLKIT_WINCE@__MEDIA_PLATFORM_SRC_OBJECTS_2 = mediadll_mediactrl.o
|
@COND_TOOLKIT_WINCE@__MEDIA_PLATFORM_SRC_OBJECTS_2 = \
|
||||||
|
@COND_TOOLKIT_WINCE@ mediadll_mediactrl.o mediadll_activex.o
|
||||||
@COND_TOOLKIT_X11@__MEDIA_PLATFORM_SRC_OBJECTS_2 = mediadll_mediactrl.o
|
@COND_TOOLKIT_X11@__MEDIA_PLATFORM_SRC_OBJECTS_2 = mediadll_mediactrl.o
|
||||||
COND_MONOLITHIC_0_SHARED_0_USE_GUI_1___medialib___depname = \
|
COND_MONOLITHIC_0_SHARED_0_USE_GUI_1___medialib___depname = \
|
||||||
$(LIBDIRNAME)/$(LIBPREFIX)wx_$(PORTNAME)$(WXUNIVNAME)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_media-$(WX_RELEASE)$(HOST_SUFFIX)$(LIBEXT)
|
$(LIBDIRNAME)/$(LIBPREFIX)wx_$(PORTNAME)$(WXUNIVNAME)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_media-$(WX_RELEASE)$(HOST_SUFFIX)$(LIBEXT)
|
||||||
@@ -8541,9 +8547,11 @@ COND_MONOLITHIC_0_SHARED_0_USE_GUI_1___medialib___depname = \
|
|||||||
@COND_TOOLKIT_GTK@__MEDIA_PLATFORM_SRC_OBJECTS_3 = medialib_mediactrl.o
|
@COND_TOOLKIT_GTK@__MEDIA_PLATFORM_SRC_OBJECTS_3 = medialib_mediactrl.o
|
||||||
@COND_TOOLKIT_MAC@__MEDIA_PLATFORM_SRC_OBJECTS_3 = medialib_mediactrl.o
|
@COND_TOOLKIT_MAC@__MEDIA_PLATFORM_SRC_OBJECTS_3 = medialib_mediactrl.o
|
||||||
@COND_TOOLKIT_MOTIF@__MEDIA_PLATFORM_SRC_OBJECTS_3 = medialib_mediactrl.o
|
@COND_TOOLKIT_MOTIF@__MEDIA_PLATFORM_SRC_OBJECTS_3 = medialib_mediactrl.o
|
||||||
@COND_TOOLKIT_MSW@__MEDIA_PLATFORM_SRC_OBJECTS_3 = medialib_mediactrl.o
|
@COND_TOOLKIT_MSW@__MEDIA_PLATFORM_SRC_OBJECTS_3 = \
|
||||||
|
@COND_TOOLKIT_MSW@ medialib_mediactrl.o medialib_activex.o
|
||||||
@COND_TOOLKIT_PM@__MEDIA_PLATFORM_SRC_OBJECTS_3 =
|
@COND_TOOLKIT_PM@__MEDIA_PLATFORM_SRC_OBJECTS_3 =
|
||||||
@COND_TOOLKIT_WINCE@__MEDIA_PLATFORM_SRC_OBJECTS_3 = medialib_mediactrl.o
|
@COND_TOOLKIT_WINCE@__MEDIA_PLATFORM_SRC_OBJECTS_3 = \
|
||||||
|
@COND_TOOLKIT_WINCE@ medialib_mediactrl.o medialib_activex.o
|
||||||
@COND_TOOLKIT_X11@__MEDIA_PLATFORM_SRC_OBJECTS_3 = medialib_mediactrl.o
|
@COND_TOOLKIT_X11@__MEDIA_PLATFORM_SRC_OBJECTS_3 = medialib_mediactrl.o
|
||||||
COND_MONOLITHIC_0_SHARED_1_USE_ODBC_1___odbcdll___depname = \
|
COND_MONOLITHIC_0_SHARED_1_USE_ODBC_1___odbcdll___depname = \
|
||||||
$(LIBDIRNAME)/$(DLLPREFIX)$(WXDLLNAMEPREFIX)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_odbc$(WXCOMPILER)$(VENDORTAG)$(WXDLLVERSIONTAG)$(dll___targetsuf3)
|
$(LIBDIRNAME)/$(DLLPREFIX)$(WXDLLNAMEPREFIX)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_odbc$(WXCOMPILER)$(VENDORTAG)$(WXDLLVERSIONTAG)$(dll___targetsuf3)
|
||||||
@@ -9148,6 +9156,8 @@ all: $(__wxregex___depname) $(__wxzlib___depname) $(__wxpng___depname) $(__wxjpe
|
|||||||
install: all $(__install_wxregex___depname) $(__install_wxzlib___depname) $(__install_wxpng___depname) $(__install_wxjpeg___depname) $(__install_wxtiff___depname) $(__install_wxodbc___depname) $(__install_wxexpat___depname) $(__install_monodll___depname) $(__install_monolib___depname) $(__install_basedll___depname) $(__install_baselib___depname) $(__install_netdll___depname) $(__install_netlib___depname) $(__install_coredll___depname) $(__install_corelib___depname) $(__install_advdll___depname) $(__install_advlib___depname) $(__install_mediadll___depname) $(__install_medialib___depname) $(__install_odbcdll___depname) $(__install_odbclib___depname) $(__install_dbgriddll___depname) $(__install_dbgridlib___depname) $(__install_htmldll___depname) $(__install_htmllib___depname) $(__install_qadll___depname) $(__install_qalib___depname) $(__install_xmldll___depname) $(__install_xmllib___depname) $(__install_xrcdll___depname) $(__install_xrclib___depname) $(__install_gldll___depname) $(__install_gllib___depname) $(__install_sound_sdl___depname) $(__install_wxrc___depname) install-wxconfig locale_install locale_msw_install $(__cocoa_res_install___depname)
|
install: all $(__install_wxregex___depname) $(__install_wxzlib___depname) $(__install_wxpng___depname) $(__install_wxjpeg___depname) $(__install_wxtiff___depname) $(__install_wxodbc___depname) $(__install_wxexpat___depname) $(__install_monodll___depname) $(__install_monolib___depname) $(__install_basedll___depname) $(__install_baselib___depname) $(__install_netdll___depname) $(__install_netlib___depname) $(__install_coredll___depname) $(__install_corelib___depname) $(__install_advdll___depname) $(__install_advlib___depname) $(__install_mediadll___depname) $(__install_medialib___depname) $(__install_odbcdll___depname) $(__install_odbclib___depname) $(__install_dbgriddll___depname) $(__install_dbgridlib___depname) $(__install_htmldll___depname) $(__install_htmllib___depname) $(__install_qadll___depname) $(__install_qalib___depname) $(__install_xmldll___depname) $(__install_xmllib___depname) $(__install_xrcdll___depname) $(__install_xrclib___depname) $(__install_gldll___depname) $(__install_gllib___depname) $(__install_sound_sdl___depname) $(__install_wxrc___depname) install-wxconfig locale_install locale_msw_install $(__cocoa_res_install___depname)
|
||||||
$(INSTALL_DIR) $(DESTDIR)$(datadir)/aclocal
|
$(INSTALL_DIR) $(DESTDIR)$(datadir)/aclocal
|
||||||
(cd $(srcdir) ; $(INSTALL_DATA) wxwin.m4 $(DESTDIR)$(datadir)/aclocal)
|
(cd $(srcdir) ; $(INSTALL_DATA) wxwin.m4 $(DESTDIR)$(datadir)/aclocal)
|
||||||
|
$(INSTALL_DIR) $(DESTDIR)$(datadir)/bakefile/presets
|
||||||
|
(cd build/bakefiles/wxpresets/presets/ ; $(INSTALL_DATA) wx.bkl wx_unix.bkl wx_win32.bkl $(DESTDIR)$(datadir)/bakefile/presets)
|
||||||
$(INSTALL_DIR) $(DESTDIR)$(libdir)/wx/include/$(TOOLCHAIN_FULLNAME)/wx
|
$(INSTALL_DIR) $(DESTDIR)$(libdir)/wx/include/$(TOOLCHAIN_FULLNAME)/wx
|
||||||
(cd ./ ; $(INSTALL_DATA) lib/wx/include/$(TOOLCHAIN_FULLNAME)/wx/setup.h $(DESTDIR)$(libdir)/wx/include/$(TOOLCHAIN_FULLNAME)/wx)
|
(cd ./ ; $(INSTALL_DATA) lib/wx/include/$(TOOLCHAIN_FULLNAME)/wx/setup.h $(DESTDIR)$(libdir)/wx/include/$(TOOLCHAIN_FULLNAME)/wx)
|
||||||
$(INSTALL_DIR) $(DESTDIR)$(includedir)/wx-$(WX_RELEASE)$(WX_FLAVOUR)
|
$(INSTALL_DIR) $(DESTDIR)$(includedir)/wx-$(WX_RELEASE)$(WX_FLAVOUR)
|
||||||
@@ -13581,6 +13591,12 @@ monodll_sound_sdl.o: $(srcdir)/src/unix/sound_sdl.cpp $(MONODLL_ODEP)
|
|||||||
@COND_TOOLKIT_X11_USE_GUI_1@monodll_mediactrl.o: $(srcdir)/src/unix/mediactrl.cpp $(MONODLL_ODEP)
|
@COND_TOOLKIT_X11_USE_GUI_1@monodll_mediactrl.o: $(srcdir)/src/unix/mediactrl.cpp $(MONODLL_ODEP)
|
||||||
@COND_TOOLKIT_X11_USE_GUI_1@ $(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/unix/mediactrl.cpp
|
@COND_TOOLKIT_X11_USE_GUI_1@ $(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/unix/mediactrl.cpp
|
||||||
|
|
||||||
|
@COND_TOOLKIT_MSW_USE_GUI_1@monodll_activex.o: $(srcdir)/src/msw/ole/activex.cpp $(MONODLL_ODEP)
|
||||||
|
@COND_TOOLKIT_MSW_USE_GUI_1@ $(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/msw/ole/activex.cpp
|
||||||
|
|
||||||
|
@COND_TOOLKIT_WINCE_USE_GUI_1@monodll_activex.o: $(srcdir)/src/msw/ole/activex.cpp $(MONODLL_ODEP)
|
||||||
|
@COND_TOOLKIT_WINCE_USE_GUI_1@ $(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/msw/ole/activex.cpp
|
||||||
|
|
||||||
@COND_PLATFORM_UNIX_1_USE_GUI_1@monodll_chm.o: $(srcdir)/src/html/chm.cpp $(MONODLL_ODEP)
|
@COND_PLATFORM_UNIX_1_USE_GUI_1@monodll_chm.o: $(srcdir)/src/html/chm.cpp $(MONODLL_ODEP)
|
||||||
@COND_PLATFORM_UNIX_1_USE_GUI_1@ $(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/html/chm.cpp
|
@COND_PLATFORM_UNIX_1_USE_GUI_1@ $(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/html/chm.cpp
|
||||||
|
|
||||||
@@ -17040,6 +17056,12 @@ monolib_sound_sdl.o: $(srcdir)/src/unix/sound_sdl.cpp $(MONOLIB_ODEP)
|
|||||||
@COND_TOOLKIT_X11_USE_GUI_1@monolib_mediactrl.o: $(srcdir)/src/unix/mediactrl.cpp $(MONOLIB_ODEP)
|
@COND_TOOLKIT_X11_USE_GUI_1@monolib_mediactrl.o: $(srcdir)/src/unix/mediactrl.cpp $(MONOLIB_ODEP)
|
||||||
@COND_TOOLKIT_X11_USE_GUI_1@ $(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/unix/mediactrl.cpp
|
@COND_TOOLKIT_X11_USE_GUI_1@ $(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/unix/mediactrl.cpp
|
||||||
|
|
||||||
|
@COND_TOOLKIT_MSW_USE_GUI_1@monolib_activex.o: $(srcdir)/src/msw/ole/activex.cpp $(MONOLIB_ODEP)
|
||||||
|
@COND_TOOLKIT_MSW_USE_GUI_1@ $(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/msw/ole/activex.cpp
|
||||||
|
|
||||||
|
@COND_TOOLKIT_WINCE_USE_GUI_1@monolib_activex.o: $(srcdir)/src/msw/ole/activex.cpp $(MONOLIB_ODEP)
|
||||||
|
@COND_TOOLKIT_WINCE_USE_GUI_1@ $(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/msw/ole/activex.cpp
|
||||||
|
|
||||||
@COND_PLATFORM_UNIX_1_USE_GUI_1@monolib_chm.o: $(srcdir)/src/html/chm.cpp $(MONOLIB_ODEP)
|
@COND_PLATFORM_UNIX_1_USE_GUI_1@monolib_chm.o: $(srcdir)/src/html/chm.cpp $(MONOLIB_ODEP)
|
||||||
@COND_PLATFORM_UNIX_1_USE_GUI_1@ $(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/html/chm.cpp
|
@COND_PLATFORM_UNIX_1_USE_GUI_1@ $(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/html/chm.cpp
|
||||||
|
|
||||||
@@ -23577,6 +23599,12 @@ mediadll_mediactrlcmn.o: $(srcdir)/src/common/mediactrlcmn.cpp $(MEDIADLL_ODEP)
|
|||||||
@COND_TOOLKIT_X11@mediadll_mediactrl.o: $(srcdir)/src/unix/mediactrl.cpp $(MEDIADLL_ODEP)
|
@COND_TOOLKIT_X11@mediadll_mediactrl.o: $(srcdir)/src/unix/mediactrl.cpp $(MEDIADLL_ODEP)
|
||||||
@COND_TOOLKIT_X11@ $(CXXC) -c -o $@ $(MEDIADLL_CXXFLAGS) $(srcdir)/src/unix/mediactrl.cpp
|
@COND_TOOLKIT_X11@ $(CXXC) -c -o $@ $(MEDIADLL_CXXFLAGS) $(srcdir)/src/unix/mediactrl.cpp
|
||||||
|
|
||||||
|
@COND_TOOLKIT_MSW@mediadll_activex.o: $(srcdir)/src/msw/ole/activex.cpp $(MEDIADLL_ODEP)
|
||||||
|
@COND_TOOLKIT_MSW@ $(CXXC) -c -o $@ $(MEDIADLL_CXXFLAGS) $(srcdir)/src/msw/ole/activex.cpp
|
||||||
|
|
||||||
|
@COND_TOOLKIT_WINCE@mediadll_activex.o: $(srcdir)/src/msw/ole/activex.cpp $(MEDIADLL_ODEP)
|
||||||
|
@COND_TOOLKIT_WINCE@ $(CXXC) -c -o $@ $(MEDIADLL_CXXFLAGS) $(srcdir)/src/msw/ole/activex.cpp
|
||||||
|
|
||||||
medialib_mediactrlcmn.o: $(srcdir)/src/common/mediactrlcmn.cpp $(MEDIALIB_ODEP)
|
medialib_mediactrlcmn.o: $(srcdir)/src/common/mediactrlcmn.cpp $(MEDIALIB_ODEP)
|
||||||
$(CXXC) -c -o $@ $(MEDIALIB_CXXFLAGS) $(srcdir)/src/common/mediactrlcmn.cpp
|
$(CXXC) -c -o $@ $(MEDIALIB_CXXFLAGS) $(srcdir)/src/common/mediactrlcmn.cpp
|
||||||
|
|
||||||
@@ -23601,6 +23629,12 @@ medialib_mediactrlcmn.o: $(srcdir)/src/common/mediactrlcmn.cpp $(MEDIALIB_ODEP)
|
|||||||
@COND_TOOLKIT_X11@medialib_mediactrl.o: $(srcdir)/src/unix/mediactrl.cpp $(MEDIALIB_ODEP)
|
@COND_TOOLKIT_X11@medialib_mediactrl.o: $(srcdir)/src/unix/mediactrl.cpp $(MEDIALIB_ODEP)
|
||||||
@COND_TOOLKIT_X11@ $(CXXC) -c -o $@ $(MEDIALIB_CXXFLAGS) $(srcdir)/src/unix/mediactrl.cpp
|
@COND_TOOLKIT_X11@ $(CXXC) -c -o $@ $(MEDIALIB_CXXFLAGS) $(srcdir)/src/unix/mediactrl.cpp
|
||||||
|
|
||||||
|
@COND_TOOLKIT_MSW@medialib_activex.o: $(srcdir)/src/msw/ole/activex.cpp $(MEDIALIB_ODEP)
|
||||||
|
@COND_TOOLKIT_MSW@ $(CXXC) -c -o $@ $(MEDIALIB_CXXFLAGS) $(srcdir)/src/msw/ole/activex.cpp
|
||||||
|
|
||||||
|
@COND_TOOLKIT_WINCE@medialib_activex.o: $(srcdir)/src/msw/ole/activex.cpp $(MEDIALIB_ODEP)
|
||||||
|
@COND_TOOLKIT_WINCE@ $(CXXC) -c -o $@ $(MEDIALIB_CXXFLAGS) $(srcdir)/src/msw/ole/activex.cpp
|
||||||
|
|
||||||
odbcdll_version_rc.o: $(srcdir)/src/msw/version.rc $(ODBCDLL_ODEP)
|
odbcdll_version_rc.o: $(srcdir)/src/msw/version.rc $(ODBCDLL_ODEP)
|
||||||
$(RESCOMP) -i$< -o$@ --define __WX$(TOOLKIT)__ $(__WXUNIV_DEFINE_p_49) $(__EXCEPTIONS_DEFINE_p_49) $(__RTTI_DEFINE_p_49) $(__THREAD_DEFINE_p_49) --define WXDLLNAME=$(WXDLLNAMEPREFIX)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_odbc$(WXCOMPILER)$(VENDORTAG)$(WXDLLVERSIONTAG) --include-dir $(top_srcdir)/include
|
$(RESCOMP) -i$< -o$@ --define __WX$(TOOLKIT)__ $(__WXUNIV_DEFINE_p_49) $(__EXCEPTIONS_DEFINE_p_49) $(__RTTI_DEFINE_p_49) $(__THREAD_DEFINE_p_49) --define WXDLLNAME=$(WXDLLNAMEPREFIX)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_odbc$(WXCOMPILER)$(VENDORTAG)$(WXDLLVERSIONTAG) --include-dir $(top_srcdir)/include
|
||||||
|
|
||||||
@@ -24242,6 +24276,16 @@ ALL_DIST: distrib_clean
|
|||||||
mkdir $(DISTDIR)/include
|
mkdir $(DISTDIR)/include
|
||||||
mkdir $(DISTDIR)/include/wx
|
mkdir $(DISTDIR)/include/wx
|
||||||
cp $(INCDIR)/wx/fmappriv.h $(DISTDIR)/include/wx
|
cp $(INCDIR)/wx/fmappriv.h $(DISTDIR)/include/wx
|
||||||
|
# copy wxpresets
|
||||||
|
mkdir $(DISTDIR)/build
|
||||||
|
mkdir $(DISTDIR)/build/bakefiles
|
||||||
|
mkdir $(DISTDIR)/build/bakefiles/wxpresets
|
||||||
|
mkdir $(DISTDIR)/build/bakefiles/wxpresets/presets
|
||||||
|
mkdir $(DISTDIR)/build/bakefiles/wxpresets/sample
|
||||||
|
cp $(WXDIR)/build/bakefiles/wxpresets/presets/*.bkl $(DISTDIR)/build/bakefiles/wxpresets/presets
|
||||||
|
cp $(WXDIR)/build/bakefiles/wxpresets/sample/minimal* $(DISTDIR)/build/bakefiles/wxpresets/sample
|
||||||
|
cp $(WXDIR)/build/bakefiles/wxpresets/sample/config* $(DISTDIR)/build/bakefiles/wxpresets/sample
|
||||||
|
cp $(WXDIR)/build/bakefiles/wxpresets/*.txt $(DISTDIR)/build/bakefiles/wxpresets
|
||||||
|
|
||||||
# this target is the common part of distribution script for all GUI toolkits,
|
# this target is the common part of distribution script for all GUI toolkits,
|
||||||
# but is not used when building wxBase distribution
|
# but is not used when building wxBase distribution
|
||||||
|
@@ -2466,8 +2466,10 @@ IMPORTANT: please read docs/tech/tn0016.txt before modifying this file!
|
|||||||
|
|
||||||
<set var="MEDIA_MSW_SRC" hints="files">
|
<set var="MEDIA_MSW_SRC" hints="files">
|
||||||
src/msw/mediactrl.cpp
|
src/msw/mediactrl.cpp
|
||||||
|
src/msw/ole/activex.cpp
|
||||||
</set>
|
</set>
|
||||||
<set var="MEDIA_MSW_HDR" hints="files">
|
<set var="MEDIA_MSW_HDR" hints="files">
|
||||||
|
wx/msw/ole/activex.h
|
||||||
</set>
|
</set>
|
||||||
<!-- not built on WindowsCE: -->
|
<!-- not built on WindowsCE: -->
|
||||||
<set var="MEDIA_MSW_DESKTOP_SRC" hints="files">
|
<set var="MEDIA_MSW_DESKTOP_SRC" hints="files">
|
||||||
|
@@ -697,7 +697,8 @@ MEDIADLL_CXXFLAGS = $(__RUNTIME_LIBS) -I$(BCCDIR)\include $(__DEBUGINFO) \
|
|||||||
MEDIADLL_OBJECTS = \
|
MEDIADLL_OBJECTS = \
|
||||||
$(OBJS)\mediadll_dummy.obj \
|
$(OBJS)\mediadll_dummy.obj \
|
||||||
$(OBJS)\mediadll_mediactrlcmn.obj \
|
$(OBJS)\mediadll_mediactrlcmn.obj \
|
||||||
$(OBJS)\mediadll_mediactrl.obj
|
$(OBJS)\mediadll_mediactrl.obj \
|
||||||
|
$(OBJS)\mediadll_activex.obj
|
||||||
MEDIALIB_CXXFLAGS = $(__RUNTIME_LIBS) -I$(BCCDIR)\include $(__DEBUGINFO) \
|
MEDIALIB_CXXFLAGS = $(__RUNTIME_LIBS) -I$(BCCDIR)\include $(__DEBUGINFO) \
|
||||||
$(__OPTIMIZEFLAG) $(__THREADSFLAG) -D__WXMSW__ $(__WXUNIV_DEFINE_p) \
|
$(__OPTIMIZEFLAG) $(__THREADSFLAG) -D__WXMSW__ $(__WXUNIV_DEFINE_p) \
|
||||||
$(__DEBUG_DEFINE_p) $(__EXCEPTIONS_DEFINE_p) $(__RTTI_DEFINE_p) \
|
$(__DEBUG_DEFINE_p) $(__EXCEPTIONS_DEFINE_p) $(__RTTI_DEFINE_p) \
|
||||||
@@ -708,7 +709,8 @@ MEDIALIB_CXXFLAGS = $(__RUNTIME_LIBS) -I$(BCCDIR)\include $(__DEBUGINFO) \
|
|||||||
MEDIALIB_OBJECTS = \
|
MEDIALIB_OBJECTS = \
|
||||||
$(OBJS)\medialib_dummy.obj \
|
$(OBJS)\medialib_dummy.obj \
|
||||||
$(OBJS)\medialib_mediactrlcmn.obj \
|
$(OBJS)\medialib_mediactrlcmn.obj \
|
||||||
$(OBJS)\medialib_mediactrl.obj
|
$(OBJS)\medialib_mediactrl.obj \
|
||||||
|
$(OBJS)\medialib_activex.obj
|
||||||
ODBCDLL_CXXFLAGS = $(__RUNTIME_LIBS) -I$(BCCDIR)\include $(__DEBUGINFO) \
|
ODBCDLL_CXXFLAGS = $(__RUNTIME_LIBS) -I$(BCCDIR)\include $(__DEBUGINFO) \
|
||||||
$(__OPTIMIZEFLAG) $(__THREADSFLAG) -D__WXMSW__ $(__WXUNIV_DEFINE_p) \
|
$(__OPTIMIZEFLAG) $(__THREADSFLAG) -D__WXMSW__ $(__WXUNIV_DEFINE_p) \
|
||||||
$(__DEBUG_DEFINE_p) $(__EXCEPTIONS_DEFINE_p) $(__RTTI_DEFINE_p) \
|
$(__DEBUG_DEFINE_p) $(__EXCEPTIONS_DEFINE_p) $(__RTTI_DEFINE_p) \
|
||||||
@@ -1050,6 +1052,7 @@ ____MONOLIB_GUI_SRC_FILENAMES_OBJECTS = \
|
|||||||
$(____ADVANCED_SRC_FILENAMES_OBJECTS) \
|
$(____ADVANCED_SRC_FILENAMES_OBJECTS) \
|
||||||
$(OBJS)\monodll_mediactrlcmn.obj \
|
$(OBJS)\monodll_mediactrlcmn.obj \
|
||||||
$(OBJS)\monodll_mediactrl.obj \
|
$(OBJS)\monodll_mediactrl.obj \
|
||||||
|
$(OBJS)\monodll_activex.obj \
|
||||||
$(OBJS)\monodll_helpbest.obj \
|
$(OBJS)\monodll_helpbest.obj \
|
||||||
$(OBJS)\monodll_helpctrl.obj \
|
$(OBJS)\monodll_helpctrl.obj \
|
||||||
$(OBJS)\monodll_helpdata.obj \
|
$(OBJS)\monodll_helpdata.obj \
|
||||||
@@ -1561,6 +1564,7 @@ ____MONOLIB_GUI_SRC_FILENAMES_1_OBJECTS = \
|
|||||||
$(____ADVANCED_SRC_FILENAMES_1_OBJECTS) \
|
$(____ADVANCED_SRC_FILENAMES_1_OBJECTS) \
|
||||||
$(OBJS)\monolib_mediactrlcmn.obj \
|
$(OBJS)\monolib_mediactrlcmn.obj \
|
||||||
$(OBJS)\monolib_mediactrl.obj \
|
$(OBJS)\monolib_mediactrl.obj \
|
||||||
|
$(OBJS)\monolib_activex.obj \
|
||||||
$(OBJS)\monolib_helpbest.obj \
|
$(OBJS)\monolib_helpbest.obj \
|
||||||
$(OBJS)\monolib_helpctrl.obj \
|
$(OBJS)\monolib_helpctrl.obj \
|
||||||
$(OBJS)\monolib_helpdata.obj \
|
$(OBJS)\monolib_helpdata.obj \
|
||||||
@@ -4339,6 +4343,9 @@ $(OBJS)\monodll_mediactrlcmn.obj: ..\..\src\common\mediactrlcmn.cpp
|
|||||||
$(OBJS)\monodll_mediactrl.obj: ..\..\src\msw\mediactrl.cpp
|
$(OBJS)\monodll_mediactrl.obj: ..\..\src\msw\mediactrl.cpp
|
||||||
$(CXX) -q -c -P -o$@ $(MONODLL_CXXFLAGS) $**
|
$(CXX) -q -c -P -o$@ $(MONODLL_CXXFLAGS) $**
|
||||||
|
|
||||||
|
$(OBJS)\monodll_activex.obj: ..\..\src\msw\ole\activex.cpp
|
||||||
|
$(CXX) -q -c -P -o$@ $(MONODLL_CXXFLAGS) $**
|
||||||
|
|
||||||
$(OBJS)\monodll_helpbest.obj: ..\..\src\msw\helpbest.cpp
|
$(OBJS)\monodll_helpbest.obj: ..\..\src\msw\helpbest.cpp
|
||||||
$(CXX) -q -c -P -o$@ $(MONODLL_CXXFLAGS) $**
|
$(CXX) -q -c -P -o$@ $(MONODLL_CXXFLAGS) $**
|
||||||
|
|
||||||
@@ -6024,6 +6031,9 @@ $(OBJS)\monolib_mediactrlcmn.obj: ..\..\src\common\mediactrlcmn.cpp
|
|||||||
$(OBJS)\monolib_mediactrl.obj: ..\..\src\msw\mediactrl.cpp
|
$(OBJS)\monolib_mediactrl.obj: ..\..\src\msw\mediactrl.cpp
|
||||||
$(CXX) -q -c -P -o$@ $(MONOLIB_CXXFLAGS) $**
|
$(CXX) -q -c -P -o$@ $(MONOLIB_CXXFLAGS) $**
|
||||||
|
|
||||||
|
$(OBJS)\monolib_activex.obj: ..\..\src\msw\ole\activex.cpp
|
||||||
|
$(CXX) -q -c -P -o$@ $(MONOLIB_CXXFLAGS) $**
|
||||||
|
|
||||||
$(OBJS)\monolib_helpbest.obj: ..\..\src\msw\helpbest.cpp
|
$(OBJS)\monolib_helpbest.obj: ..\..\src\msw\helpbest.cpp
|
||||||
$(CXX) -q -c -P -o$@ $(MONOLIB_CXXFLAGS) $**
|
$(CXX) -q -c -P -o$@ $(MONOLIB_CXXFLAGS) $**
|
||||||
|
|
||||||
@@ -10241,6 +10251,9 @@ $(OBJS)\mediadll_mediactrlcmn.obj: ..\..\src\common\mediactrlcmn.cpp
|
|||||||
$(OBJS)\mediadll_mediactrl.obj: ..\..\src\msw\mediactrl.cpp
|
$(OBJS)\mediadll_mediactrl.obj: ..\..\src\msw\mediactrl.cpp
|
||||||
$(CXX) -q -c -P -o$@ $(MEDIADLL_CXXFLAGS) $**
|
$(CXX) -q -c -P -o$@ $(MEDIADLL_CXXFLAGS) $**
|
||||||
|
|
||||||
|
$(OBJS)\mediadll_activex.obj: ..\..\src\msw\ole\activex.cpp
|
||||||
|
$(CXX) -q -c -P -o$@ $(MEDIADLL_CXXFLAGS) $**
|
||||||
|
|
||||||
$(OBJS)\medialib_dummy.obj: ..\..\src\msw\dummy.cpp
|
$(OBJS)\medialib_dummy.obj: ..\..\src\msw\dummy.cpp
|
||||||
$(CXX) -q -c -P -o$@ $(MEDIALIB_CXXFLAGS) -H $**
|
$(CXX) -q -c -P -o$@ $(MEDIALIB_CXXFLAGS) -H $**
|
||||||
|
|
||||||
@@ -10250,6 +10263,9 @@ $(OBJS)\medialib_mediactrlcmn.obj: ..\..\src\common\mediactrlcmn.cpp
|
|||||||
$(OBJS)\medialib_mediactrl.obj: ..\..\src\msw\mediactrl.cpp
|
$(OBJS)\medialib_mediactrl.obj: ..\..\src\msw\mediactrl.cpp
|
||||||
$(CXX) -q -c -P -o$@ $(MEDIALIB_CXXFLAGS) $**
|
$(CXX) -q -c -P -o$@ $(MEDIALIB_CXXFLAGS) $**
|
||||||
|
|
||||||
|
$(OBJS)\medialib_activex.obj: ..\..\src\msw\ole\activex.cpp
|
||||||
|
$(CXX) -q -c -P -o$@ $(MEDIALIB_CXXFLAGS) $**
|
||||||
|
|
||||||
$(OBJS)\odbcdll_dummy.obj: ..\..\src\msw\dummy.cpp
|
$(OBJS)\odbcdll_dummy.obj: ..\..\src\msw\dummy.cpp
|
||||||
$(CXX) -q -c -P -o$@ $(ODBCDLL_CXXFLAGS) -H $**
|
$(CXX) -q -c -P -o$@ $(ODBCDLL_CXXFLAGS) -H $**
|
||||||
|
|
||||||
|
@@ -689,7 +689,8 @@ MEDIADLL_OBJECTS = \
|
|||||||
$(OBJS)\mediadll_dummy.o \
|
$(OBJS)\mediadll_dummy.o \
|
||||||
$(OBJS)\mediadll_version_rc.o \
|
$(OBJS)\mediadll_version_rc.o \
|
||||||
$(OBJS)\mediadll_mediactrlcmn.o \
|
$(OBJS)\mediadll_mediactrlcmn.o \
|
||||||
$(OBJS)\mediadll_mediactrl.o
|
$(OBJS)\mediadll_mediactrl.o \
|
||||||
|
$(OBJS)\mediadll_activex.o
|
||||||
MEDIALIB_CXXFLAGS = $(__DEBUGINFO) $(__OPTIMIZEFLAG) $(__THREADSFLAG) \
|
MEDIALIB_CXXFLAGS = $(__DEBUGINFO) $(__OPTIMIZEFLAG) $(__THREADSFLAG) \
|
||||||
$(GCCFLAGS) -DHAVE_W32API_H -D__WXMSW__ $(__WXUNIV_DEFINE_p) \
|
$(GCCFLAGS) -DHAVE_W32API_H -D__WXMSW__ $(__WXUNIV_DEFINE_p) \
|
||||||
$(__DEBUG_DEFINE_p) $(__EXCEPTIONS_DEFINE_p) $(__RTTI_DEFINE_p) \
|
$(__DEBUG_DEFINE_p) $(__EXCEPTIONS_DEFINE_p) $(__RTTI_DEFINE_p) \
|
||||||
@@ -701,7 +702,8 @@ MEDIALIB_CXXFLAGS = $(__DEBUGINFO) $(__OPTIMIZEFLAG) $(__THREADSFLAG) \
|
|||||||
MEDIALIB_OBJECTS = \
|
MEDIALIB_OBJECTS = \
|
||||||
$(OBJS)\medialib_dummy.o \
|
$(OBJS)\medialib_dummy.o \
|
||||||
$(OBJS)\medialib_mediactrlcmn.o \
|
$(OBJS)\medialib_mediactrlcmn.o \
|
||||||
$(OBJS)\medialib_mediactrl.o
|
$(OBJS)\medialib_mediactrl.o \
|
||||||
|
$(OBJS)\medialib_activex.o
|
||||||
ODBCDLL_CXXFLAGS = $(__DEBUGINFO) $(__OPTIMIZEFLAG) $(__THREADSFLAG) \
|
ODBCDLL_CXXFLAGS = $(__DEBUGINFO) $(__OPTIMIZEFLAG) $(__THREADSFLAG) \
|
||||||
$(GCCFLAGS) -DHAVE_W32API_H -D__WXMSW__ $(__WXUNIV_DEFINE_p) \
|
$(GCCFLAGS) -DHAVE_W32API_H -D__WXMSW__ $(__WXUNIV_DEFINE_p) \
|
||||||
$(__DEBUG_DEFINE_p) $(__EXCEPTIONS_DEFINE_p) $(__RTTI_DEFINE_p) \
|
$(__DEBUG_DEFINE_p) $(__EXCEPTIONS_DEFINE_p) $(__RTTI_DEFINE_p) \
|
||||||
@@ -1060,6 +1062,7 @@ ____MONOLIB_GUI_SRC_FILENAMES_OBJECTS = \
|
|||||||
$(____ADVANCED_SRC_FILENAMES_OBJECTS) \
|
$(____ADVANCED_SRC_FILENAMES_OBJECTS) \
|
||||||
$(OBJS)\monodll_mediactrlcmn.o \
|
$(OBJS)\monodll_mediactrlcmn.o \
|
||||||
$(OBJS)\monodll_mediactrl.o \
|
$(OBJS)\monodll_mediactrl.o \
|
||||||
|
$(OBJS)\monodll_activex.o \
|
||||||
$(OBJS)\monodll_helpbest.o \
|
$(OBJS)\monodll_helpbest.o \
|
||||||
$(OBJS)\monodll_helpctrl.o \
|
$(OBJS)\monodll_helpctrl.o \
|
||||||
$(OBJS)\monodll_helpdata.o \
|
$(OBJS)\monodll_helpdata.o \
|
||||||
@@ -1577,6 +1580,7 @@ ____MONOLIB_GUI_SRC_FILENAMES_1_OBJECTS = \
|
|||||||
$(____ADVANCED_SRC_FILENAMES_1_OBJECTS) \
|
$(____ADVANCED_SRC_FILENAMES_1_OBJECTS) \
|
||||||
$(OBJS)\monolib_mediactrlcmn.o \
|
$(OBJS)\monolib_mediactrlcmn.o \
|
||||||
$(OBJS)\monolib_mediactrl.o \
|
$(OBJS)\monolib_mediactrl.o \
|
||||||
|
$(OBJS)\monolib_activex.o \
|
||||||
$(OBJS)\monolib_helpbest.o \
|
$(OBJS)\monolib_helpbest.o \
|
||||||
$(OBJS)\monolib_helpctrl.o \
|
$(OBJS)\monolib_helpctrl.o \
|
||||||
$(OBJS)\monolib_helpdata.o \
|
$(OBJS)\monolib_helpdata.o \
|
||||||
@@ -4435,6 +4439,9 @@ $(OBJS)\monodll_mediactrlcmn.o: ../../src/common/mediactrlcmn.cpp
|
|||||||
$(OBJS)\monodll_mediactrl.o: ../../src/msw/mediactrl.cpp
|
$(OBJS)\monodll_mediactrl.o: ../../src/msw/mediactrl.cpp
|
||||||
$(CXX) -c -o $@ $(MONODLL_CXXFLAGS) $(CPPDEPS) $<
|
$(CXX) -c -o $@ $(MONODLL_CXXFLAGS) $(CPPDEPS) $<
|
||||||
|
|
||||||
|
$(OBJS)\monodll_activex.o: ../../src/msw/ole/activex.cpp
|
||||||
|
$(CXX) -c -o $@ $(MONODLL_CXXFLAGS) $(CPPDEPS) $<
|
||||||
|
|
||||||
$(OBJS)\monodll_helpbest.o: ../../src/msw/helpbest.cpp
|
$(OBJS)\monodll_helpbest.o: ../../src/msw/helpbest.cpp
|
||||||
$(CXX) -c -o $@ $(MONODLL_CXXFLAGS) $(CPPDEPS) $<
|
$(CXX) -c -o $@ $(MONODLL_CXXFLAGS) $(CPPDEPS) $<
|
||||||
|
|
||||||
@@ -6220,6 +6227,9 @@ $(OBJS)\monolib_mediactrlcmn.o: ../../src/common/mediactrlcmn.cpp
|
|||||||
$(OBJS)\monolib_mediactrl.o: ../../src/msw/mediactrl.cpp
|
$(OBJS)\monolib_mediactrl.o: ../../src/msw/mediactrl.cpp
|
||||||
$(CXX) -c -o $@ $(MONOLIB_CXXFLAGS) $(CPPDEPS) $<
|
$(CXX) -c -o $@ $(MONOLIB_CXXFLAGS) $(CPPDEPS) $<
|
||||||
|
|
||||||
|
$(OBJS)\monolib_activex.o: ../../src/msw/ole/activex.cpp
|
||||||
|
$(CXX) -c -o $@ $(MONOLIB_CXXFLAGS) $(CPPDEPS) $<
|
||||||
|
|
||||||
$(OBJS)\monolib_helpbest.o: ../../src/msw/helpbest.cpp
|
$(OBJS)\monolib_helpbest.o: ../../src/msw/helpbest.cpp
|
||||||
$(CXX) -c -o $@ $(MONOLIB_CXXFLAGS) $(CPPDEPS) $<
|
$(CXX) -c -o $@ $(MONOLIB_CXXFLAGS) $(CPPDEPS) $<
|
||||||
|
|
||||||
@@ -10737,6 +10747,9 @@ $(OBJS)\mediadll_mediactrlcmn.o: ../../src/common/mediactrlcmn.cpp
|
|||||||
$(OBJS)\mediadll_mediactrl.o: ../../src/msw/mediactrl.cpp
|
$(OBJS)\mediadll_mediactrl.o: ../../src/msw/mediactrl.cpp
|
||||||
$(CXX) -c -o $@ $(MEDIADLL_CXXFLAGS) $(CPPDEPS) $<
|
$(CXX) -c -o $@ $(MEDIADLL_CXXFLAGS) $(CPPDEPS) $<
|
||||||
|
|
||||||
|
$(OBJS)\mediadll_activex.o: ../../src/msw/ole/activex.cpp
|
||||||
|
$(CXX) -c -o $@ $(MEDIADLL_CXXFLAGS) $(CPPDEPS) $<
|
||||||
|
|
||||||
$(OBJS)\medialib_dummy.o: ../../src/msw/dummy.cpp
|
$(OBJS)\medialib_dummy.o: ../../src/msw/dummy.cpp
|
||||||
$(CXX) -c -o $@ $(MEDIALIB_CXXFLAGS) $(CPPDEPS) $<
|
$(CXX) -c -o $@ $(MEDIALIB_CXXFLAGS) $(CPPDEPS) $<
|
||||||
|
|
||||||
@@ -10746,6 +10759,9 @@ $(OBJS)\medialib_mediactrlcmn.o: ../../src/common/mediactrlcmn.cpp
|
|||||||
$(OBJS)\medialib_mediactrl.o: ../../src/msw/mediactrl.cpp
|
$(OBJS)\medialib_mediactrl.o: ../../src/msw/mediactrl.cpp
|
||||||
$(CXX) -c -o $@ $(MEDIALIB_CXXFLAGS) $(CPPDEPS) $<
|
$(CXX) -c -o $@ $(MEDIALIB_CXXFLAGS) $(CPPDEPS) $<
|
||||||
|
|
||||||
|
$(OBJS)\medialib_activex.o: ../../src/msw/ole/activex.cpp
|
||||||
|
$(CXX) -c -o $@ $(MEDIALIB_CXXFLAGS) $(CPPDEPS) $<
|
||||||
|
|
||||||
$(OBJS)\odbcdll_dummy.o: ../../src/msw/dummy.cpp
|
$(OBJS)\odbcdll_dummy.o: ../../src/msw/dummy.cpp
|
||||||
$(CXX) -c -o $@ $(ODBCDLL_CXXFLAGS) $(CPPDEPS) $<
|
$(CXX) -c -o $@ $(ODBCDLL_CXXFLAGS) $(CPPDEPS) $<
|
||||||
|
|
||||||
|
@@ -738,7 +738,8 @@ MEDIADLL_OBJECTS = \
|
|||||||
$(OBJS)\mediadll_dummy.obj \
|
$(OBJS)\mediadll_dummy.obj \
|
||||||
$(OBJS)\mediadll_version.res \
|
$(OBJS)\mediadll_version.res \
|
||||||
$(OBJS)\mediadll_mediactrlcmn.obj \
|
$(OBJS)\mediadll_mediactrlcmn.obj \
|
||||||
$(OBJS)\mediadll_mediactrl.obj
|
$(OBJS)\mediadll_mediactrl.obj \
|
||||||
|
$(OBJS)\mediadll_activex.obj
|
||||||
MEDIALIB_CXXFLAGS = /M$(__RUNTIME_LIBS_235)$(__DEBUGRUNTIME) /DWIN32 \
|
MEDIALIB_CXXFLAGS = /M$(__RUNTIME_LIBS_235)$(__DEBUGRUNTIME) /DWIN32 \
|
||||||
$(__DEBUGINFO) \
|
$(__DEBUGINFO) \
|
||||||
/Fd$(LIBDIRNAME)\wx$(PORTNAME)$(WXUNIVNAME)$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_media.pdb \
|
/Fd$(LIBDIRNAME)\wx$(PORTNAME)$(WXUNIVNAME)$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_media.pdb \
|
||||||
@@ -752,7 +753,8 @@ MEDIALIB_CXXFLAGS = /M$(__RUNTIME_LIBS_235)$(__DEBUGRUNTIME) /DWIN32 \
|
|||||||
MEDIALIB_OBJECTS = \
|
MEDIALIB_OBJECTS = \
|
||||||
$(OBJS)\medialib_dummy.obj \
|
$(OBJS)\medialib_dummy.obj \
|
||||||
$(OBJS)\medialib_mediactrlcmn.obj \
|
$(OBJS)\medialib_mediactrlcmn.obj \
|
||||||
$(OBJS)\medialib_mediactrl.obj
|
$(OBJS)\medialib_mediactrl.obj \
|
||||||
|
$(OBJS)\medialib_activex.obj
|
||||||
ODBCDLL_CXXFLAGS = /M$(__RUNTIME_LIBS_249)$(__DEBUGRUNTIME) /DWIN32 \
|
ODBCDLL_CXXFLAGS = /M$(__RUNTIME_LIBS_249)$(__DEBUGRUNTIME) /DWIN32 \
|
||||||
$(__DEBUGINFO) \
|
$(__DEBUGINFO) \
|
||||||
/Fd$(LIBDIRNAME)\wxbase$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_odbc_vc$(VENDORTAG).pdb \
|
/Fd$(LIBDIRNAME)\wxbase$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_odbc_vc$(VENDORTAG).pdb \
|
||||||
@@ -1185,6 +1187,7 @@ ____MONOLIB_GUI_SRC_FILENAMES_OBJECTS = \
|
|||||||
$(____ADVANCED_SRC_FILENAMES_OBJECTS) \
|
$(____ADVANCED_SRC_FILENAMES_OBJECTS) \
|
||||||
$(OBJS)\monodll_mediactrlcmn.obj \
|
$(OBJS)\monodll_mediactrlcmn.obj \
|
||||||
$(OBJS)\monodll_mediactrl.obj \
|
$(OBJS)\monodll_mediactrl.obj \
|
||||||
|
$(OBJS)\monodll_activex.obj \
|
||||||
$(OBJS)\monodll_helpbest.obj \
|
$(OBJS)\monodll_helpbest.obj \
|
||||||
$(OBJS)\monodll_helpctrl.obj \
|
$(OBJS)\monodll_helpctrl.obj \
|
||||||
$(OBJS)\monodll_helpdata.obj \
|
$(OBJS)\monodll_helpdata.obj \
|
||||||
@@ -1702,6 +1705,7 @@ ____MONOLIB_GUI_SRC_FILENAMES_1_OBJECTS = \
|
|||||||
$(____ADVANCED_SRC_FILENAMES_1_OBJECTS) \
|
$(____ADVANCED_SRC_FILENAMES_1_OBJECTS) \
|
||||||
$(OBJS)\monolib_mediactrlcmn.obj \
|
$(OBJS)\monolib_mediactrlcmn.obj \
|
||||||
$(OBJS)\monolib_mediactrl.obj \
|
$(OBJS)\monolib_mediactrl.obj \
|
||||||
|
$(OBJS)\monolib_activex.obj \
|
||||||
$(OBJS)\monolib_helpbest.obj \
|
$(OBJS)\monolib_helpbest.obj \
|
||||||
$(OBJS)\monolib_helpctrl.obj \
|
$(OBJS)\monolib_helpctrl.obj \
|
||||||
$(OBJS)\monolib_helpdata.obj \
|
$(OBJS)\monolib_helpdata.obj \
|
||||||
@@ -4624,6 +4628,9 @@ $(OBJS)\monodll_mediactrlcmn.obj: ..\..\src\common\mediactrlcmn.cpp
|
|||||||
$(OBJS)\monodll_mediactrl.obj: ..\..\src\msw\mediactrl.cpp
|
$(OBJS)\monodll_mediactrl.obj: ..\..\src\msw\mediactrl.cpp
|
||||||
$(CXX) /c /nologo /TP /Fo$@ $(MONODLL_CXXFLAGS) $**
|
$(CXX) /c /nologo /TP /Fo$@ $(MONODLL_CXXFLAGS) $**
|
||||||
|
|
||||||
|
$(OBJS)\monodll_activex.obj: ..\..\src\msw\ole\activex.cpp
|
||||||
|
$(CXX) /c /nologo /TP /Fo$@ $(MONODLL_CXXFLAGS) $**
|
||||||
|
|
||||||
$(OBJS)\monodll_helpbest.obj: ..\..\src\msw\helpbest.cpp
|
$(OBJS)\monodll_helpbest.obj: ..\..\src\msw\helpbest.cpp
|
||||||
$(CXX) /c /nologo /TP /Fo$@ $(MONODLL_CXXFLAGS) $**
|
$(CXX) /c /nologo /TP /Fo$@ $(MONODLL_CXXFLAGS) $**
|
||||||
|
|
||||||
@@ -6309,6 +6316,9 @@ $(OBJS)\monolib_mediactrlcmn.obj: ..\..\src\common\mediactrlcmn.cpp
|
|||||||
$(OBJS)\monolib_mediactrl.obj: ..\..\src\msw\mediactrl.cpp
|
$(OBJS)\monolib_mediactrl.obj: ..\..\src\msw\mediactrl.cpp
|
||||||
$(CXX) /c /nologo /TP /Fo$@ $(MONOLIB_CXXFLAGS) $**
|
$(CXX) /c /nologo /TP /Fo$@ $(MONOLIB_CXXFLAGS) $**
|
||||||
|
|
||||||
|
$(OBJS)\monolib_activex.obj: ..\..\src\msw\ole\activex.cpp
|
||||||
|
$(CXX) /c /nologo /TP /Fo$@ $(MONOLIB_CXXFLAGS) $**
|
||||||
|
|
||||||
$(OBJS)\monolib_helpbest.obj: ..\..\src\msw\helpbest.cpp
|
$(OBJS)\monolib_helpbest.obj: ..\..\src\msw\helpbest.cpp
|
||||||
$(CXX) /c /nologo /TP /Fo$@ $(MONOLIB_CXXFLAGS) $**
|
$(CXX) /c /nologo /TP /Fo$@ $(MONOLIB_CXXFLAGS) $**
|
||||||
|
|
||||||
@@ -10526,6 +10536,9 @@ $(OBJS)\mediadll_mediactrlcmn.obj: ..\..\src\common\mediactrlcmn.cpp
|
|||||||
$(OBJS)\mediadll_mediactrl.obj: ..\..\src\msw\mediactrl.cpp
|
$(OBJS)\mediadll_mediactrl.obj: ..\..\src\msw\mediactrl.cpp
|
||||||
$(CXX) /c /nologo /TP /Fo$@ $(MEDIADLL_CXXFLAGS) $**
|
$(CXX) /c /nologo /TP /Fo$@ $(MEDIADLL_CXXFLAGS) $**
|
||||||
|
|
||||||
|
$(OBJS)\mediadll_activex.obj: ..\..\src\msw\ole\activex.cpp
|
||||||
|
$(CXX) /c /nologo /TP /Fo$@ $(MEDIADLL_CXXFLAGS) $**
|
||||||
|
|
||||||
$(OBJS)\medialib_dummy.obj: ..\..\src\msw\dummy.cpp
|
$(OBJS)\medialib_dummy.obj: ..\..\src\msw\dummy.cpp
|
||||||
$(CXX) /c /nologo /TP /Fo$@ $(MEDIALIB_CXXFLAGS) /Ycwx/wxprec.h $**
|
$(CXX) /c /nologo /TP /Fo$@ $(MEDIALIB_CXXFLAGS) /Ycwx/wxprec.h $**
|
||||||
|
|
||||||
@@ -10535,6 +10548,9 @@ $(OBJS)\medialib_mediactrlcmn.obj: ..\..\src\common\mediactrlcmn.cpp
|
|||||||
$(OBJS)\medialib_mediactrl.obj: ..\..\src\msw\mediactrl.cpp
|
$(OBJS)\medialib_mediactrl.obj: ..\..\src\msw\mediactrl.cpp
|
||||||
$(CXX) /c /nologo /TP /Fo$@ $(MEDIALIB_CXXFLAGS) $**
|
$(CXX) /c /nologo /TP /Fo$@ $(MEDIALIB_CXXFLAGS) $**
|
||||||
|
|
||||||
|
$(OBJS)\medialib_activex.obj: ..\..\src\msw\ole\activex.cpp
|
||||||
|
$(CXX) /c /nologo /TP /Fo$@ $(MEDIALIB_CXXFLAGS) $**
|
||||||
|
|
||||||
$(OBJS)\odbcdll_dummy.obj: ..\..\src\msw\dummy.cpp
|
$(OBJS)\odbcdll_dummy.obj: ..\..\src\msw\dummy.cpp
|
||||||
$(CXX) /c /nologo /TP /Fo$@ $(ODBCDLL_CXXFLAGS) /Ycwx/wxprec.h $**
|
$(CXX) /c /nologo /TP /Fo$@ $(ODBCDLL_CXXFLAGS) /Ycwx/wxprec.h $**
|
||||||
|
|
||||||
|
@@ -102,6 +102,7 @@ ____MONOLIB_GUI_SRC_FILENAMES_OBJECTS = &
|
|||||||
$(____ADVANCED_SRC_FILENAMES_OBJECTS) &
|
$(____ADVANCED_SRC_FILENAMES_OBJECTS) &
|
||||||
$(OBJS)\monodll_mediactrlcmn.obj &
|
$(OBJS)\monodll_mediactrlcmn.obj &
|
||||||
$(OBJS)\monodll_mediactrl.obj &
|
$(OBJS)\monodll_mediactrl.obj &
|
||||||
|
$(OBJS)\monodll_activex.obj &
|
||||||
$(OBJS)\monodll_helpbest.obj &
|
$(OBJS)\monodll_helpbest.obj &
|
||||||
$(OBJS)\monodll_helpctrl.obj &
|
$(OBJS)\monodll_helpctrl.obj &
|
||||||
$(OBJS)\monodll_helpdata.obj &
|
$(OBJS)\monodll_helpdata.obj &
|
||||||
@@ -623,6 +624,7 @@ ____MONOLIB_GUI_SRC_FILENAMES_1_OBJECTS = &
|
|||||||
$(____ADVANCED_SRC_FILENAMES_1_OBJECTS) &
|
$(____ADVANCED_SRC_FILENAMES_1_OBJECTS) &
|
||||||
$(OBJS)\monolib_mediactrlcmn.obj &
|
$(OBJS)\monolib_mediactrlcmn.obj &
|
||||||
$(OBJS)\monolib_mediactrl.obj &
|
$(OBJS)\monolib_mediactrl.obj &
|
||||||
|
$(OBJS)\monolib_activex.obj &
|
||||||
$(OBJS)\monolib_helpbest.obj &
|
$(OBJS)\monolib_helpbest.obj &
|
||||||
$(OBJS)\monolib_helpctrl.obj &
|
$(OBJS)\monolib_helpctrl.obj &
|
||||||
$(OBJS)\monolib_helpdata.obj &
|
$(OBJS)\monolib_helpdata.obj &
|
||||||
@@ -3026,7 +3028,8 @@ MEDIADLL_CXXFLAGS = -bd $(__DEBUGINFO) $(__OPTIMIZEFLAG) $(__THREADSFLAG) &
|
|||||||
MEDIADLL_OBJECTS = &
|
MEDIADLL_OBJECTS = &
|
||||||
$(OBJS)\mediadll_dummy.obj &
|
$(OBJS)\mediadll_dummy.obj &
|
||||||
$(OBJS)\mediadll_mediactrlcmn.obj &
|
$(OBJS)\mediadll_mediactrlcmn.obj &
|
||||||
$(OBJS)\mediadll_mediactrl.obj
|
$(OBJS)\mediadll_mediactrl.obj &
|
||||||
|
$(OBJS)\mediadll_activex.obj
|
||||||
MEDIALIB_CXXFLAGS = $(__DEBUGINFO) $(__OPTIMIZEFLAG) $(__THREADSFLAG) &
|
MEDIALIB_CXXFLAGS = $(__DEBUGINFO) $(__OPTIMIZEFLAG) $(__THREADSFLAG) &
|
||||||
$(__RUNTIME_LIBS) -d__WXMSW__ $(__WXUNIV_DEFINE_p) $(__DEBUG_DEFINE_p) &
|
$(__RUNTIME_LIBS) -d__WXMSW__ $(__WXUNIV_DEFINE_p) $(__DEBUG_DEFINE_p) &
|
||||||
$(__EXCEPTIONS_DEFINE_p) $(__RTTI_DEFINE_p) $(__THREAD_DEFINE_p) &
|
$(__EXCEPTIONS_DEFINE_p) $(__RTTI_DEFINE_p) $(__THREAD_DEFINE_p) &
|
||||||
@@ -3038,7 +3041,8 @@ MEDIALIB_CXXFLAGS = $(__DEBUGINFO) $(__OPTIMIZEFLAG) $(__THREADSFLAG) &
|
|||||||
MEDIALIB_OBJECTS = &
|
MEDIALIB_OBJECTS = &
|
||||||
$(OBJS)\medialib_dummy.obj &
|
$(OBJS)\medialib_dummy.obj &
|
||||||
$(OBJS)\medialib_mediactrlcmn.obj &
|
$(OBJS)\medialib_mediactrlcmn.obj &
|
||||||
$(OBJS)\medialib_mediactrl.obj
|
$(OBJS)\medialib_mediactrl.obj &
|
||||||
|
$(OBJS)\medialib_activex.obj
|
||||||
ODBCDLL_CXXFLAGS = -bd $(__DEBUGINFO) $(__OPTIMIZEFLAG) $(__THREADSFLAG) &
|
ODBCDLL_CXXFLAGS = -bd $(__DEBUGINFO) $(__OPTIMIZEFLAG) $(__THREADSFLAG) &
|
||||||
$(__RUNTIME_LIBS) -d__WXMSW__ $(__WXUNIV_DEFINE_p) $(__DEBUG_DEFINE_p) &
|
$(__RUNTIME_LIBS) -d__WXMSW__ $(__WXUNIV_DEFINE_p) $(__DEBUG_DEFINE_p) &
|
||||||
$(__EXCEPTIONS_DEFINE_p) $(__RTTI_DEFINE_p) $(__THREAD_DEFINE_p) &
|
$(__EXCEPTIONS_DEFINE_p) $(__RTTI_DEFINE_p) $(__THREAD_DEFINE_p) &
|
||||||
@@ -4634,6 +4638,9 @@ $(OBJS)\monodll_mediactrlcmn.obj : .AUTODEPEND ..\..\src\common\mediactrlcmn.cp
|
|||||||
$(OBJS)\monodll_mediactrl.obj : .AUTODEPEND ..\..\src\msw\mediactrl.cpp
|
$(OBJS)\monodll_mediactrl.obj : .AUTODEPEND ..\..\src\msw\mediactrl.cpp
|
||||||
$(CXX) -zq -fo=$^@ $(MONODLL_CXXFLAGS) $<
|
$(CXX) -zq -fo=$^@ $(MONODLL_CXXFLAGS) $<
|
||||||
|
|
||||||
|
$(OBJS)\monodll_activex.obj : .AUTODEPEND ..\..\src\msw\ole\activex.cpp
|
||||||
|
$(CXX) -zq -fo=$^@ $(MONODLL_CXXFLAGS) $<
|
||||||
|
|
||||||
$(OBJS)\monodll_helpbest.obj : .AUTODEPEND ..\..\src\msw\helpbest.cpp
|
$(OBJS)\monodll_helpbest.obj : .AUTODEPEND ..\..\src\msw\helpbest.cpp
|
||||||
$(CXX) -zq -fo=$^@ $(MONODLL_CXXFLAGS) $<
|
$(CXX) -zq -fo=$^@ $(MONODLL_CXXFLAGS) $<
|
||||||
|
|
||||||
@@ -6419,6 +6426,9 @@ $(OBJS)\monolib_mediactrlcmn.obj : .AUTODEPEND ..\..\src\common\mediactrlcmn.cp
|
|||||||
$(OBJS)\monolib_mediactrl.obj : .AUTODEPEND ..\..\src\msw\mediactrl.cpp
|
$(OBJS)\monolib_mediactrl.obj : .AUTODEPEND ..\..\src\msw\mediactrl.cpp
|
||||||
$(CXX) -zq -fo=$^@ $(MONOLIB_CXXFLAGS) $<
|
$(CXX) -zq -fo=$^@ $(MONOLIB_CXXFLAGS) $<
|
||||||
|
|
||||||
|
$(OBJS)\monolib_activex.obj : .AUTODEPEND ..\..\src\msw\ole\activex.cpp
|
||||||
|
$(CXX) -zq -fo=$^@ $(MONOLIB_CXXFLAGS) $<
|
||||||
|
|
||||||
$(OBJS)\monolib_helpbest.obj : .AUTODEPEND ..\..\src\msw\helpbest.cpp
|
$(OBJS)\monolib_helpbest.obj : .AUTODEPEND ..\..\src\msw\helpbest.cpp
|
||||||
$(CXX) -zq -fo=$^@ $(MONOLIB_CXXFLAGS) $<
|
$(CXX) -zq -fo=$^@ $(MONOLIB_CXXFLAGS) $<
|
||||||
|
|
||||||
@@ -10936,6 +10946,9 @@ $(OBJS)\mediadll_mediactrlcmn.obj : .AUTODEPEND ..\..\src\common\mediactrlcmn.c
|
|||||||
$(OBJS)\mediadll_mediactrl.obj : .AUTODEPEND ..\..\src\msw\mediactrl.cpp
|
$(OBJS)\mediadll_mediactrl.obj : .AUTODEPEND ..\..\src\msw\mediactrl.cpp
|
||||||
$(CXX) -zq -fo=$^@ $(MEDIADLL_CXXFLAGS) $<
|
$(CXX) -zq -fo=$^@ $(MEDIADLL_CXXFLAGS) $<
|
||||||
|
|
||||||
|
$(OBJS)\mediadll_activex.obj : .AUTODEPEND ..\..\src\msw\ole\activex.cpp
|
||||||
|
$(CXX) -zq -fo=$^@ $(MEDIADLL_CXXFLAGS) $<
|
||||||
|
|
||||||
$(OBJS)\medialib_dummy.obj : .AUTODEPEND ..\..\src\msw\dummy.cpp
|
$(OBJS)\medialib_dummy.obj : .AUTODEPEND ..\..\src\msw\dummy.cpp
|
||||||
$(CXX) -zq -fo=$^@ $(MEDIALIB_CXXFLAGS) $<
|
$(CXX) -zq -fo=$^@ $(MEDIALIB_CXXFLAGS) $<
|
||||||
|
|
||||||
@@ -10945,6 +10958,9 @@ $(OBJS)\medialib_mediactrlcmn.obj : .AUTODEPEND ..\..\src\common\mediactrlcmn.c
|
|||||||
$(OBJS)\medialib_mediactrl.obj : .AUTODEPEND ..\..\src\msw\mediactrl.cpp
|
$(OBJS)\medialib_mediactrl.obj : .AUTODEPEND ..\..\src\msw\mediactrl.cpp
|
||||||
$(CXX) -zq -fo=$^@ $(MEDIALIB_CXXFLAGS) $<
|
$(CXX) -zq -fo=$^@ $(MEDIALIB_CXXFLAGS) $<
|
||||||
|
|
||||||
|
$(OBJS)\medialib_activex.obj : .AUTODEPEND ..\..\src\msw\ole\activex.cpp
|
||||||
|
$(CXX) -zq -fo=$^@ $(MEDIALIB_CXXFLAGS) $<
|
||||||
|
|
||||||
$(OBJS)\odbcdll_dummy.obj : .AUTODEPEND ..\..\src\msw\dummy.cpp
|
$(OBJS)\odbcdll_dummy.obj : .AUTODEPEND ..\..\src\msw\dummy.cpp
|
||||||
$(CXX) -zq -fo=$^@ $(ODBCDLL_CXXFLAGS) $<
|
$(CXX) -zq -fo=$^@ $(ODBCDLL_CXXFLAGS) $<
|
||||||
|
|
||||||
|
@@ -7412,6 +7412,10 @@ SOURCE=..\..\include\wx\msw\ole\access.h
|
|||||||
# End Source File
|
# End Source File
|
||||||
# Begin Source File
|
# Begin Source File
|
||||||
|
|
||||||
|
SOURCE=..\..\include\wx\msw\ole\activex.h
|
||||||
|
# End Source File
|
||||||
|
# Begin Source File
|
||||||
|
|
||||||
SOURCE=..\..\include\wx\msw\app.h
|
SOURCE=..\..\include\wx\msw\app.h
|
||||||
# End Source File
|
# End Source File
|
||||||
# Begin Source File
|
# Begin Source File
|
||||||
|
@@ -460,6 +460,10 @@ SOURCE=..\..\src\common\mediactrlcmn.cpp
|
|||||||
# PROP Default_Filter ""
|
# PROP Default_Filter ""
|
||||||
# Begin Source File
|
# Begin Source File
|
||||||
|
|
||||||
|
SOURCE=..\..\src\msw\ole\activex.cpp
|
||||||
|
# End Source File
|
||||||
|
# Begin Source File
|
||||||
|
|
||||||
SOURCE=..\..\src\msw\dummy.cpp
|
SOURCE=..\..\src\msw\dummy.cpp
|
||||||
# ADD BASE CPP /Yc"wx/wxprec.h"
|
# ADD BASE CPP /Yc"wx/wxprec.h"
|
||||||
# ADD CPP /Yc"wx/wxprec.h"
|
# ADD CPP /Yc"wx/wxprec.h"
|
||||||
@@ -804,6 +808,14 @@ InputPath=..\include\wx\msw\setup.h
|
|||||||
|
|
||||||
!ENDIF
|
!ENDIF
|
||||||
|
|
||||||
|
# End Source File
|
||||||
|
# End Group
|
||||||
|
# Begin Group "MSW Headers"
|
||||||
|
|
||||||
|
# PROP Default_Filter ""
|
||||||
|
# Begin Source File
|
||||||
|
|
||||||
|
SOURCE=..\..\include\wx\msw\ole\activex.h
|
||||||
# End Source File
|
# End Source File
|
||||||
# End Group
|
# End Group
|
||||||
# Begin Group "Common Headers"
|
# Begin Group "Common Headers"
|
||||||
|
@@ -326,6 +326,7 @@ public:
|
|||||||
DECLARE_DYNAMIC_CLASS(wxMediaBackend)
|
DECLARE_DYNAMIC_CLASS(wxMediaBackend)
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
//Event ID to give to our events
|
//Event ID to give to our events
|
||||||
#define wxMEDIA_FINISHED_ID 13000
|
#define wxMEDIA_FINISHED_ID 13000
|
||||||
#define wxMEDIA_STOP_ID 13001
|
#define wxMEDIA_STOP_ID 13001
|
||||||
@@ -350,6 +351,34 @@ typedef void (wxEvtHandler::*wxMediaEventFunction)(wxMediaEvent&);
|
|||||||
# define EVT_MEDIA_LOADED(winid, fn) DECLARE_EVENT_TABLE_ENTRY( wxEVT_MEDIA_LOADED, winid, wxID_ANY, wxMediaEventHandler(fn), (wxObject *) NULL ),
|
# define EVT_MEDIA_LOADED(winid, fn) DECLARE_EVENT_TABLE_ENTRY( wxEVT_MEDIA_LOADED, winid, wxID_ANY, wxMediaEventHandler(fn), (wxObject *) NULL ),
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
// common backend base class used by many other backends
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
class WXDLLIMPEXP_MEDIA wxMediaBackendCommonBase : public wxMediaBackend
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
// add a pending wxMediaEvent of the given type
|
||||||
|
void QueueEvent(wxEventType evtType);
|
||||||
|
|
||||||
|
// notify that the movie playback is finished
|
||||||
|
void QueueFinishEvent() { QueueEvent(wxEVT_MEDIA_FINISHED); }
|
||||||
|
|
||||||
|
// send the stop event and return true if it hasn't been vetoed
|
||||||
|
bool SendStopEvent();
|
||||||
|
|
||||||
|
protected:
|
||||||
|
// call this when the movie size has changed but not because it has just
|
||||||
|
// been loaded (in this case, call NotifyMovieLoaded() below)
|
||||||
|
void NotifyMovieSizeChanged();
|
||||||
|
|
||||||
|
// call this when the movie is fully loaded
|
||||||
|
void NotifyMovieLoaded();
|
||||||
|
|
||||||
|
|
||||||
|
wxMediaCtrl *m_ctrl; // parent control
|
||||||
|
};
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
// End compilation gaurd
|
// End compilation gaurd
|
||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
|
185
include/wx/msw/ole/activex.h
Normal file
185
include/wx/msw/ole/activex.h
Normal file
@@ -0,0 +1,185 @@
|
|||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
// Name: wx/activex.h
|
||||||
|
// Purpose: wxActiveXContainer class
|
||||||
|
// Author: Ryan Norton <wxprojects@comcast.net>
|
||||||
|
// Modified by:
|
||||||
|
// Created: 8/18/05
|
||||||
|
// RCS-ID: $Id$
|
||||||
|
// Copyright: (c) Ryan Norton
|
||||||
|
// Licence: wxWindows licence
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
// ============================================================================
|
||||||
|
// Definitions
|
||||||
|
// ============================================================================
|
||||||
|
|
||||||
|
#ifndef _WX_MSW_OLE_ACTIVEXCONTAINER_H_
|
||||||
|
#define _WX_MSW_OLE_ACTIVEXCONTAINER_H_
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------
|
||||||
|
// COM includes
|
||||||
|
//---------------------------------------------------------------------------
|
||||||
|
#include "wx/msw/ole/oleutils.h" //wxBasicString, IID etc.
|
||||||
|
#include "wx/msw/ole/uuid.h" //IID etc..
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------
|
||||||
|
// COM compatability definitions
|
||||||
|
//---------------------------------------------------------------------------
|
||||||
|
#ifndef STDMETHODCALLTYPE
|
||||||
|
#define STDMETHODCALLTYPE __stdcall
|
||||||
|
#endif
|
||||||
|
#ifndef STDMETHOD
|
||||||
|
#define STDMETHOD(funcname) virtual HRESULT STDMETHODCALLTYPE funcname
|
||||||
|
#endif
|
||||||
|
#ifndef PURE
|
||||||
|
#define PURE = 0
|
||||||
|
#endif
|
||||||
|
#ifndef __RPC_FAR
|
||||||
|
#define __RPC_FAR FAR
|
||||||
|
#endif
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------
|
||||||
|
// WX includes
|
||||||
|
//---------------------------------------------------------------------------
|
||||||
|
#include "wx/window.h"
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------
|
||||||
|
// MSW COM includes
|
||||||
|
//---------------------------------------------------------------------------
|
||||||
|
#include <oleidl.h>
|
||||||
|
#include <olectl.h>
|
||||||
|
#include <exdisp.h>
|
||||||
|
#include <docobj.h>
|
||||||
|
|
||||||
|
//
|
||||||
|
// These defines are from another ole header - but its not in the
|
||||||
|
// latest sdk. Also the ifndef DISPID_READYSTATE is here because at
|
||||||
|
// least on my machine with the latest sdk olectl.h defines these 3
|
||||||
|
//
|
||||||
|
#ifndef DISPID_READYSTATE
|
||||||
|
#define DISPID_READYSTATE -525
|
||||||
|
#define DISPID_READYSTATECHANGE -609
|
||||||
|
#define DISPID_AMBIENT_TRANSFERPRIORITY -728
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define DISPID_AMBIENT_OFFLINEIFNOTCONNECTED -5501
|
||||||
|
#define DISPID_AMBIENT_SILENT -5502
|
||||||
|
|
||||||
|
#ifndef DISPID_AMBIENT_CODEPAGE
|
||||||
|
# define DISPID_AMBIENT_CODEPAGE -725
|
||||||
|
# define DISPID_AMBIENT_CHARSET -727
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
// wxActiveXContainer
|
||||||
|
//
|
||||||
|
//---------------------------------------------------------------------------
|
||||||
|
|
||||||
|
#define WX_DECLARE_AUTOOLE(wxAutoOleInterface, I) \
|
||||||
|
class wxAutoOleInterface \
|
||||||
|
{ \
|
||||||
|
protected: \
|
||||||
|
I *m_interface; \
|
||||||
|
\
|
||||||
|
public: \
|
||||||
|
explicit wxAutoOleInterface(I *pInterface = NULL) : m_interface(pInterface) {} \
|
||||||
|
wxAutoOleInterface(REFIID riid, IUnknown *pUnk) : m_interface(NULL) \
|
||||||
|
{ QueryInterface(riid, pUnk); } \
|
||||||
|
wxAutoOleInterface(REFIID riid, IDispatch *pDispatch) : m_interface(NULL) \
|
||||||
|
{ QueryInterface(riid, pDispatch); } \
|
||||||
|
wxAutoOleInterface(REFCLSID clsid, REFIID riid) : m_interface(NULL)\
|
||||||
|
{ CreateInstance(clsid, riid); }\
|
||||||
|
wxAutoOleInterface(const wxAutoOleInterface& ti) : m_interface(NULL)\
|
||||||
|
{ operator = (ti); }\
|
||||||
|
\
|
||||||
|
wxAutoOleInterface& operator = (const wxAutoOleInterface& ti)\
|
||||||
|
{\
|
||||||
|
if (ti.m_interface)\
|
||||||
|
ti.m_interface->AddRef();\
|
||||||
|
Free();\
|
||||||
|
m_interface = ti.m_interface;\
|
||||||
|
return *this;\
|
||||||
|
}\
|
||||||
|
\
|
||||||
|
wxAutoOleInterface& operator = (I *&ti)\
|
||||||
|
{\
|
||||||
|
Free();\
|
||||||
|
m_interface = ti;\
|
||||||
|
return *this;\
|
||||||
|
}\
|
||||||
|
\
|
||||||
|
~wxAutoOleInterface() { Free(); }\
|
||||||
|
\
|
||||||
|
inline void Free()\
|
||||||
|
{\
|
||||||
|
if (m_interface)\
|
||||||
|
m_interface->Release();\
|
||||||
|
m_interface = NULL;\
|
||||||
|
}\
|
||||||
|
\
|
||||||
|
HRESULT QueryInterface(REFIID riid, IUnknown *pUnk)\
|
||||||
|
{\
|
||||||
|
Free();\
|
||||||
|
wxASSERT(pUnk != NULL);\
|
||||||
|
return pUnk->QueryInterface(riid, (void **) &m_interface);\
|
||||||
|
}\
|
||||||
|
\
|
||||||
|
HRESULT CreateInstance(REFCLSID clsid, REFIID riid)\
|
||||||
|
{\
|
||||||
|
Free();\
|
||||||
|
return CoCreateInstance(clsid, NULL, CLSCTX_ALL, riid, (void **) &m_interface);\
|
||||||
|
}\
|
||||||
|
\
|
||||||
|
inline operator I *() const {return m_interface;}\
|
||||||
|
inline I* operator ->() {return m_interface;}\
|
||||||
|
inline I** GetRef() {return &m_interface;}\
|
||||||
|
inline bool Ok() const {return m_interface != NULL;}\
|
||||||
|
};
|
||||||
|
|
||||||
|
WX_DECLARE_AUTOOLE(wxAutoIDispatch, IDispatch)
|
||||||
|
WX_DECLARE_AUTOOLE(wxAutoIOleClientSite, IOleClientSite)
|
||||||
|
WX_DECLARE_AUTOOLE(wxAutoIUnknown, IUnknown)
|
||||||
|
WX_DECLARE_AUTOOLE(wxAutoIOleObject, IOleObject)
|
||||||
|
WX_DECLARE_AUTOOLE(wxAutoIOleInPlaceObject, IOleInPlaceObject)
|
||||||
|
WX_DECLARE_AUTOOLE(wxAutoIOleInPlaceActiveObject, IOleInPlaceActiveObject)
|
||||||
|
WX_DECLARE_AUTOOLE(wxAutoIOleDocumentView, IOleDocumentView)
|
||||||
|
WX_DECLARE_AUTOOLE(wxAutoIViewObject, IViewObject)
|
||||||
|
WX_DECLARE_AUTOOLE(wxAutoIOleInPlaceSite, IOleInPlaceSite)
|
||||||
|
WX_DECLARE_AUTOOLE(wxAutoIOleDocument, IOleDocument)
|
||||||
|
WX_DECLARE_AUTOOLE(wxAutoIPersistStreamInit, IPersistStreamInit)
|
||||||
|
WX_DECLARE_AUTOOLE(wxAutoIAdviseSink, IAdviseSink)
|
||||||
|
|
||||||
|
class wxActiveXContainer : public wxWindow
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
wxActiveXContainer(wxWindow * parent, REFIID iid, IUnknown* pUnk);
|
||||||
|
virtual ~wxActiveXContainer();
|
||||||
|
|
||||||
|
void OnSize(wxSizeEvent&);
|
||||||
|
void OnPaint(wxPaintEvent&);
|
||||||
|
void OnSetFocus(wxFocusEvent&);
|
||||||
|
void OnKillFocus(wxFocusEvent&);
|
||||||
|
|
||||||
|
protected:
|
||||||
|
friend class FrameSite;
|
||||||
|
|
||||||
|
wxAutoIDispatch m_Dispatch;
|
||||||
|
wxAutoIOleClientSite m_clientSite;
|
||||||
|
wxAutoIUnknown m_ActiveX;
|
||||||
|
wxAutoIOleObject m_oleObject;
|
||||||
|
wxAutoIOleInPlaceObject m_oleInPlaceObject;
|
||||||
|
wxAutoIOleInPlaceActiveObject m_oleInPlaceActiveObject;
|
||||||
|
wxAutoIOleDocumentView m_docView;
|
||||||
|
wxAutoIViewObject m_viewObject;
|
||||||
|
HWND m_oleObjectHWND;
|
||||||
|
bool m_bAmbientUserMode;
|
||||||
|
DWORD m_docAdviseCookie;
|
||||||
|
wxWindow* m_realparent;
|
||||||
|
|
||||||
|
void CreateActiveX(REFIID, IUnknown*);
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif // _WX_MSW_OLE_ACTIVEXCONTAINER_H_
|
||||||
|
|
@@ -207,13 +207,6 @@ private:
|
|||||||
void DoOpenFile(const wxString& path, bool bNewPage);
|
void DoOpenFile(const wxString& path, bool bNewPage);
|
||||||
void DoPlayFile(const wxString& path);
|
void DoPlayFile(const wxString& path);
|
||||||
|
|
||||||
// Get the controls of current notebook page
|
|
||||||
wxMediaCtrl* GetCurrentMediaCtrl();
|
|
||||||
wxSlider* GetCurrentSlider();
|
|
||||||
wxGauge* GetCurrentGauge();
|
|
||||||
|
|
||||||
int m_nLastFileId; //List ID of played file in listctrl
|
|
||||||
wxString m_szFile; //Name of currently playing file/location
|
|
||||||
class wxMediaPlayerTimer* m_timer; //Timer to write info to status bar
|
class wxMediaPlayerTimer* m_timer; //Timer to write info to status bar
|
||||||
wxString m_basestatus; //Base status string (see ResetStatus())
|
wxString m_basestatus; //Base status string (see ResetStatus())
|
||||||
wxNotebook* m_notebook; //Notebook containing our pages
|
wxNotebook* m_notebook; //Notebook containing our pages
|
||||||
@@ -249,6 +242,9 @@ public:
|
|||||||
//make wxMediaPlayerFrame able to access the private members
|
//make wxMediaPlayerFrame able to access the private members
|
||||||
friend class wxMediaPlayerFrame;
|
friend class wxMediaPlayerFrame;
|
||||||
|
|
||||||
|
int m_nLastFileId; //List ID of played file in listctrl
|
||||||
|
wxString m_szFile; //Name of currently playing file/location
|
||||||
|
|
||||||
wxMediaCtrl* m_mediactrl; //Our media control
|
wxMediaCtrl* m_mediactrl; //Our media control
|
||||||
class wxMediaPlayerListCtrl* m_playlist; //Our playlist
|
class wxMediaPlayerListCtrl* m_playlist; //Our playlist
|
||||||
wxSlider* m_slider; //The slider below our media control
|
wxSlider* m_slider; //The slider below our media control
|
||||||
@@ -292,14 +288,13 @@ public:
|
|||||||
wxListItem kNewItem;
|
wxListItem kNewItem;
|
||||||
kNewItem.SetAlign(wxLIST_FORMAT_LEFT);
|
kNewItem.SetAlign(wxLIST_FORMAT_LEFT);
|
||||||
|
|
||||||
int nID;
|
int nID = this->GetItemCount();
|
||||||
|
kNewItem.SetId(nID);
|
||||||
kNewItem.SetId(nID = this->GetItemCount());
|
|
||||||
kNewItem.SetMask(wxLIST_MASK_DATA);
|
kNewItem.SetMask(wxLIST_MASK_DATA);
|
||||||
kNewItem.SetData(new wxString(szString));
|
kNewItem.SetData(new wxString(szString));
|
||||||
|
|
||||||
this->InsertItem(kNewItem);
|
this->InsertItem(kNewItem);
|
||||||
this->SetItem(nID, 0, _T("*"));
|
this->SetItem(nID, 0, wxT("*"));
|
||||||
this->SetItem(nID, 1, wxFileName(szString).GetName());
|
this->SetItem(nID, 1, wxFileName(szString).GetName());
|
||||||
|
|
||||||
if (nID % 2)
|
if (nID % 2)
|
||||||
@@ -328,7 +323,6 @@ public:
|
|||||||
listitem.SetId(nLastSelected == -1 ? nLast : nLastSelected);
|
listitem.SetId(nLastSelected == -1 ? nLast : nLastSelected);
|
||||||
this->GetItem(listitem);
|
this->GetItem(listitem);
|
||||||
}
|
}
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
@@ -416,7 +410,7 @@ IMPLEMENT_APP(wxMediaPlayerApp)
|
|||||||
bool wxMediaPlayerApp::OnInit()
|
bool wxMediaPlayerApp::OnInit()
|
||||||
{
|
{
|
||||||
wxMediaPlayerFrame *frame =
|
wxMediaPlayerFrame *frame =
|
||||||
new wxMediaPlayerFrame(_T("MediaPlayer wxWidgets Sample"));
|
new wxMediaPlayerFrame(wxT("MediaPlayer wxWidgets Sample"));
|
||||||
frame->Show(true);
|
frame->Show(true);
|
||||||
|
|
||||||
#if wxUSE_CMDLINE_PARSER
|
#if wxUSE_CMDLINE_PARSER
|
||||||
@@ -479,8 +473,7 @@ void wxMediaPlayerApp::MacOpenFile(const wxString & fileName )
|
|||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
|
|
||||||
wxMediaPlayerFrame::wxMediaPlayerFrame(const wxString& title)
|
wxMediaPlayerFrame::wxMediaPlayerFrame(const wxString& title)
|
||||||
: wxFrame(NULL, wxID_ANY, title, wxDefaultPosition, wxSize(600,600)),
|
: wxFrame(NULL, wxID_ANY, title, wxDefaultPosition, wxSize(600,600))
|
||||||
m_nLastFileId(-1)
|
|
||||||
{
|
{
|
||||||
//
|
//
|
||||||
// Create Menus
|
// Create Menus
|
||||||
@@ -491,50 +484,50 @@ wxMediaPlayerFrame::wxMediaPlayerFrame(const wxString& title)
|
|||||||
wxMenu *helpMenu = new wxMenu;
|
wxMenu *helpMenu = new wxMenu;
|
||||||
wxMenu *debugMenu = new wxMenu;
|
wxMenu *debugMenu = new wxMenu;
|
||||||
|
|
||||||
fileMenu->Append(wxID_OPENFILESAMEPAGE, _T("&Open File\tCtrl-Shift-O"),
|
fileMenu->Append(wxID_OPENFILESAMEPAGE, wxT("&Open File\tCtrl-Shift-O"),
|
||||||
_T("Open a File in the current notebook page"));
|
wxT("Open a File in the current notebook page"));
|
||||||
fileMenu->Append(wxID_OPENFILENEWPAGE, _T("&Open File in a new page"),
|
fileMenu->Append(wxID_OPENFILENEWPAGE, wxT("&Open File in a new page"),
|
||||||
_T("Open a File in a new notebook page"));
|
wxT("Open a File in a new notebook page"));
|
||||||
fileMenu->Append(wxID_OPENURLSAMEPAGE, _T("&Open URL"),
|
fileMenu->Append(wxID_OPENURLSAMEPAGE, wxT("&Open URL"),
|
||||||
_T("Open a URL in the current notebook page"));
|
wxT("Open a URL in the current notebook page"));
|
||||||
fileMenu->Append(wxID_OPENURLNEWPAGE, _T("&Open URL in a new page"),
|
fileMenu->Append(wxID_OPENURLNEWPAGE, wxT("&Open URL in a new page"),
|
||||||
_T("Open a URL in a new notebook page"));
|
wxT("Open a URL in a new notebook page"));
|
||||||
fileMenu->AppendSeparator();
|
fileMenu->AppendSeparator();
|
||||||
fileMenu->Append(wxID_CLOSECURRENTPAGE, _T("&Close Current Page\tCtrl-C"),
|
fileMenu->Append(wxID_CLOSECURRENTPAGE, wxT("&Close Current Page\tCtrl-C"),
|
||||||
_T("Close current notebook page"));
|
wxT("Close current notebook page"));
|
||||||
fileMenu->AppendSeparator();
|
fileMenu->AppendSeparator();
|
||||||
fileMenu->Append(wxID_EXIT,
|
fileMenu->Append(wxID_EXIT,
|
||||||
_T("E&xit\tAlt-X"),
|
wxT("E&xit\tAlt-X"),
|
||||||
_T("Quit this program"));
|
wxT("Quit this program"));
|
||||||
|
|
||||||
controlsMenu->Append(wxID_PLAY, _T("&Play/Pause\tCtrl-P"), _T("Resume/Pause playback"));
|
controlsMenu->Append(wxID_PLAY, wxT("&Play/Pause\tCtrl-P"), wxT("Resume/Pause playback"));
|
||||||
controlsMenu->Append(wxID_STOP, _T("&Stop\tCtrl-S"), _T("Stop playback"));
|
controlsMenu->Append(wxID_STOP, wxT("&Stop\tCtrl-S"), wxT("Stop playback"));
|
||||||
controlsMenu->AppendSeparator();
|
controlsMenu->AppendSeparator();
|
||||||
controlsMenu->Append(wxID_PREV, _T("&Previous\tCtrl-B"), _T("Go to previous track"));
|
controlsMenu->Append(wxID_PREV, wxT("&Previous\tCtrl-B"), wxT("Go to previous track"));
|
||||||
controlsMenu->Append(wxID_NEXT, _T("&Next\tCtrl-N"), _T("Skip to next track"));
|
controlsMenu->Append(wxID_NEXT, wxT("&Next\tCtrl-N"), wxT("Skip to next track"));
|
||||||
|
|
||||||
optionsMenu->AppendCheckItem(wxID_LOOP,
|
optionsMenu->AppendCheckItem(wxID_LOOP,
|
||||||
_T("&Loop\tCtrl-L"),
|
wxT("&Loop\tCtrl-L"),
|
||||||
_T("Loop Selected Media"));
|
wxT("Loop Selected Media"));
|
||||||
optionsMenu->AppendCheckItem(wxID_SHOWINTERFACE,
|
optionsMenu->AppendCheckItem(wxID_SHOWINTERFACE,
|
||||||
_T("&Show Interface\tCtrl-I"),
|
wxT("&Show Interface\tCtrl-I"),
|
||||||
_T("Show wxMediaCtrl native controls"));
|
wxT("Show wxMediaCtrl native controls"));
|
||||||
|
|
||||||
debugMenu->Append(wxID_SELECTBACKEND,
|
debugMenu->Append(wxID_SELECTBACKEND,
|
||||||
_T("&Select Backend...\tCtrl-D"),
|
wxT("&Select Backend...\tCtrl-D"),
|
||||||
_T("Select a backend manually"));
|
wxT("Select a backend manually"));
|
||||||
|
|
||||||
helpMenu->Append(wxID_ABOUT,
|
helpMenu->Append(wxID_ABOUT,
|
||||||
_T("&About...\tF1"),
|
wxT("&About...\tF1"),
|
||||||
_T("Show about dialog"));
|
wxT("Show about dialog"));
|
||||||
|
|
||||||
|
|
||||||
wxMenuBar *menuBar = new wxMenuBar();
|
wxMenuBar *menuBar = new wxMenuBar();
|
||||||
menuBar->Append(fileMenu, _T("&File"));
|
menuBar->Append(fileMenu, wxT("&File"));
|
||||||
menuBar->Append(controlsMenu, _T("&Controls"));
|
menuBar->Append(controlsMenu, wxT("&Controls"));
|
||||||
menuBar->Append(optionsMenu, _T("&Options"));
|
menuBar->Append(optionsMenu, wxT("&Options"));
|
||||||
menuBar->Append(debugMenu, _T("&Debug"));
|
menuBar->Append(debugMenu, wxT("&Debug"));
|
||||||
menuBar->Append(helpMenu, _T("&Help"));
|
menuBar->Append(helpMenu, wxT("&Help"));
|
||||||
SetMenuBar(menuBar);
|
SetMenuBar(menuBar);
|
||||||
|
|
||||||
//
|
//
|
||||||
@@ -692,10 +685,32 @@ wxMediaPlayerFrame::wxMediaPlayerFrame(const wxString& title)
|
|||||||
// Create an initial notebook page so the user has something
|
// Create an initial notebook page so the user has something
|
||||||
// to work with without having to go file->open every time :).
|
// to work with without having to go file->open every time :).
|
||||||
//
|
//
|
||||||
m_notebook->AddPage(new wxMediaPlayerNotebookPage(this, m_notebook),
|
wxMediaPlayerNotebookPage* page =
|
||||||
|
new wxMediaPlayerNotebookPage(this, m_notebook);
|
||||||
|
m_notebook->AddPage(page,
|
||||||
wxT(""),
|
wxT(""),
|
||||||
true);
|
true);
|
||||||
|
|
||||||
|
//
|
||||||
|
// Here we load the our configuration -
|
||||||
|
// in our case we load all the files that were left in
|
||||||
|
// the playlist the last time the user closed our application
|
||||||
|
//
|
||||||
|
// As an exercise to the reader try modifying it so that
|
||||||
|
// it properly loads the playlist for each page without
|
||||||
|
// conflicting (loading the same data) with the other ones.
|
||||||
|
//
|
||||||
|
wxConfigBase* conf = wxConfigBase::Get();
|
||||||
|
wxString key, outstring;
|
||||||
|
for(int i = 0; ; ++i)
|
||||||
|
{
|
||||||
|
key.clear();
|
||||||
|
key << i;
|
||||||
|
if(!conf->Read(key, &outstring))
|
||||||
|
break;
|
||||||
|
page->m_playlist->AddToPlayList(outstring);
|
||||||
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Create a timer to update our status bar
|
// Create a timer to update our status bar
|
||||||
//
|
//
|
||||||
@@ -710,15 +725,6 @@ wxMediaPlayerFrame::wxMediaPlayerFrame(const wxString& title)
|
|||||||
// 2) Delete our timer explicitly
|
// 2) Delete our timer explicitly
|
||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
wxMediaPlayerFrame::~wxMediaPlayerFrame()
|
wxMediaPlayerFrame::~wxMediaPlayerFrame()
|
||||||
{
|
|
||||||
delete m_timer;
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------
|
|
||||||
// wxMediaPlayerFrame::OnClose
|
|
||||||
// ----------------------------------------------------------------------------
|
|
||||||
void wxMediaPlayerFrame::OnClose(wxCloseEvent& event)
|
|
||||||
{
|
{
|
||||||
//
|
//
|
||||||
// Here we save our info to the registry or whatever
|
// Here we save our info to the registry or whatever
|
||||||
@@ -737,21 +743,32 @@ void wxMediaPlayerFrame::OnClose(wxCloseEvent& event)
|
|||||||
// all you'd need to do is just remove everything after
|
// all you'd need to do is just remove everything after
|
||||||
// conf->DeleteAll() here
|
// conf->DeleteAll() here
|
||||||
//
|
//
|
||||||
wxMediaPlayerListCtrl* m_playlist =
|
// As an exercise to the reader, try modifying this so
|
||||||
((wxMediaPlayerNotebookPage*)m_notebook->GetCurrentPage())->m_playlist;
|
// that it saves the data for each notebook page
|
||||||
|
//
|
||||||
|
wxMediaPlayerListCtrl* playlist =
|
||||||
|
((wxMediaPlayerNotebookPage*)m_notebook->GetPage(0))->m_playlist;
|
||||||
|
|
||||||
wxConfigBase* conf = wxConfigBase::Get();
|
wxConfigBase* conf = wxConfigBase::Get();
|
||||||
conf->DeleteAll();
|
conf->DeleteAll();
|
||||||
|
|
||||||
for(int i = 0; i < m_playlist->GetItemCount(); ++i)
|
for(int i = 0; i < playlist->GetItemCount(); ++i)
|
||||||
{
|
{
|
||||||
wxString* pData = (wxString*) m_playlist->GetItemData(i);
|
wxString* pData = (wxString*) playlist->GetItemData(i);
|
||||||
wxString s;
|
wxString s;
|
||||||
s << i;
|
s << i;
|
||||||
conf->Write(s, *(pData));
|
conf->Write(s, *(pData));
|
||||||
delete pData;
|
delete pData;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
delete m_timer;
|
||||||
|
}
|
||||||
|
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
// wxMediaPlayerFrame::OnClose
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
void wxMediaPlayerFrame::OnClose(wxCloseEvent& event)
|
||||||
|
{
|
||||||
event.Skip(); //really close the frame
|
event.Skip(); //really close the frame
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -786,10 +803,11 @@ void wxMediaPlayerFrame::AddToPlayList(const wxString& szString)
|
|||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
void wxMediaPlayerFrame::ResetStatus()
|
void wxMediaPlayerFrame::ResetStatus()
|
||||||
{
|
{
|
||||||
wxMediaCtrl* currentMediaCtrl = GetCurrentMediaCtrl();
|
wxMediaCtrl* currentMediaCtrl =
|
||||||
|
((wxMediaPlayerNotebookPage*)m_notebook->GetCurrentPage())->m_mediactrl;
|
||||||
|
|
||||||
m_basestatus = wxString::Format(_T("Size(x,y):%i,%i ")
|
m_basestatus = wxString::Format(wxT("Size(x,y):%i,%i ")
|
||||||
_T("Length(Seconds):%u Speed:%1.1fx"),
|
wxT("Length(Seconds):%u Speed:%1.1fx"),
|
||||||
currentMediaCtrl->GetBestSize().x,
|
currentMediaCtrl->GetBestSize().x,
|
||||||
currentMediaCtrl->GetBestSize().y,
|
currentMediaCtrl->GetBestSize().y,
|
||||||
(unsigned)((currentMediaCtrl->Length() / 1000)),
|
(unsigned)((currentMediaCtrl->Length() / 1000)),
|
||||||
@@ -797,37 +815,6 @@ void wxMediaPlayerFrame::ResetStatus()
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------
|
|
||||||
// wxMediaPlayerFrame::GetCurrentMediaCtrl
|
|
||||||
//
|
|
||||||
// Obtains the media control of the current page, or NULL if there are no
|
|
||||||
// pages open
|
|
||||||
// ----------------------------------------------------------------------------
|
|
||||||
wxMediaCtrl* wxMediaPlayerFrame::GetCurrentMediaCtrl()
|
|
||||||
{
|
|
||||||
return ((wxMediaPlayerNotebookPage*)m_notebook->GetCurrentPage())->m_mediactrl;
|
|
||||||
}
|
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------
|
|
||||||
// wxMediaPlayerFrame::GetCurrentSlider
|
|
||||||
//
|
|
||||||
// Obtains the slider of the current page
|
|
||||||
// ----------------------------------------------------------------------------
|
|
||||||
wxSlider* wxMediaPlayerFrame::GetCurrentSlider()
|
|
||||||
{
|
|
||||||
return ((wxMediaPlayerNotebookPage*)m_notebook->GetCurrentPage())->m_slider;
|
|
||||||
}
|
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------
|
|
||||||
// wxMediaPlayerFrame::GetCurrentGauge
|
|
||||||
//
|
|
||||||
// Obtains the gauge of the current page
|
|
||||||
// ----------------------------------------------------------------------------
|
|
||||||
wxGauge* wxMediaPlayerFrame::GetCurrentGauge()
|
|
||||||
{
|
|
||||||
return ((wxMediaPlayerNotebookPage*)m_notebook->GetCurrentPage())->m_gauge;
|
|
||||||
}
|
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
// wxMediaPlayerFrame::OnQuit
|
// wxMediaPlayerFrame::OnQuit
|
||||||
//
|
//
|
||||||
@@ -849,10 +836,10 @@ void wxMediaPlayerFrame::OnQuit(wxCommandEvent& WXUNUSED(event))
|
|||||||
void wxMediaPlayerFrame::OnAbout(wxCommandEvent& WXUNUSED(event))
|
void wxMediaPlayerFrame::OnAbout(wxCommandEvent& WXUNUSED(event))
|
||||||
{
|
{
|
||||||
wxString msg;
|
wxString msg;
|
||||||
msg.Printf( _T("This is a test of wxMediaCtrl.\n")
|
msg.Printf( wxT("This is a test of wxMediaCtrl.\n")
|
||||||
_T("Welcome to %s"), wxVERSION_STRING);
|
wxT("Welcome to %s"), wxVERSION_STRING);
|
||||||
|
|
||||||
wxMessageBox(msg, _T("About wxMediaCtrl test"), wxOK | wxICON_INFORMATION, this);
|
wxMessageBox(msg, wxT("About wxMediaCtrl test"), wxOK | wxICON_INFORMATION, this);
|
||||||
}
|
}
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
@@ -863,14 +850,10 @@ void wxMediaPlayerFrame::OnAbout(wxCommandEvent& WXUNUSED(event))
|
|||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
void wxMediaPlayerFrame::OnLoop(wxCommandEvent& WXUNUSED(event))
|
void wxMediaPlayerFrame::OnLoop(wxCommandEvent& WXUNUSED(event))
|
||||||
{
|
{
|
||||||
if(!m_notebook->GetCurrentPage())
|
wxMediaPlayerNotebookPage* currentpage =
|
||||||
{
|
((wxMediaPlayerNotebookPage*)m_notebook->GetCurrentPage());
|
||||||
wxMessageBox(wxT("No files are currently open!"));
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
((wxMediaPlayerNotebookPage*)m_notebook->GetCurrentPage())->m_bLoop =
|
currentpage->m_bLoop = !currentpage->m_bLoop;
|
||||||
!((wxMediaPlayerNotebookPage*)m_notebook->GetCurrentPage())->m_bLoop;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
@@ -881,15 +864,23 @@ void wxMediaPlayerFrame::OnLoop(wxCommandEvent& WXUNUSED(event))
|
|||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
void wxMediaPlayerFrame::OnShowInterface(wxCommandEvent& event)
|
void wxMediaPlayerFrame::OnShowInterface(wxCommandEvent& event)
|
||||||
{
|
{
|
||||||
if(!m_notebook->GetCurrentPage())
|
wxMediaPlayerNotebookPage* currentpage =
|
||||||
{
|
((wxMediaPlayerNotebookPage*)m_notebook->GetCurrentPage());
|
||||||
wxMessageBox(wxT("No files are currently open!"));
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
GetCurrentMediaCtrl()->ShowPlayerControls(event.IsChecked() ?
|
if( !currentpage->m_mediactrl->ShowPlayerControls(event.IsChecked() ?
|
||||||
wxMEDIACTRLPLAYERCONTROLS_DEFAULT :
|
wxMEDIACTRLPLAYERCONTROLS_DEFAULT :
|
||||||
wxMEDIACTRLPLAYERCONTROLS_NONE);
|
wxMEDIACTRLPLAYERCONTROLS_NONE) )
|
||||||
|
{
|
||||||
|
//error - uncheck and warn user
|
||||||
|
wxMenuItem* pSIItem = GetMenuBar()->FindItem(wxID_SHOWINTERFACE);
|
||||||
|
wxASSERT(pSIItem);
|
||||||
|
pSIItem->Check(!event.IsChecked());
|
||||||
|
|
||||||
|
if(event.IsChecked())
|
||||||
|
wxMessageBox(wxT("Could not show player controls"));
|
||||||
|
else
|
||||||
|
wxMessageBox(wxT("Could not hide player controls"));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
@@ -946,34 +937,34 @@ void wxMediaPlayerFrame::DoOpenFile(const wxString& path, bool bNewPage)
|
|||||||
true);
|
true);
|
||||||
}
|
}
|
||||||
|
|
||||||
wxMediaPlayerListCtrl* m_playlist =
|
wxMediaPlayerNotebookPage* currentpage =
|
||||||
((wxMediaPlayerNotebookPage*)m_notebook->GetCurrentPage())->m_playlist;
|
(wxMediaPlayerNotebookPage*) m_notebook->GetCurrentPage();
|
||||||
|
|
||||||
if(m_nLastFileId != -1)
|
if(currentpage->m_nLastFileId != -1)
|
||||||
m_playlist->SetItemState(m_nLastFileId, 0, wxLIST_STATE_SELECTED);
|
currentpage->m_playlist->SetItemState(currentpage->m_nLastFileId,
|
||||||
|
0, wxLIST_STATE_SELECTED);
|
||||||
|
|
||||||
wxListItem newlistitem;
|
wxListItem newlistitem;
|
||||||
newlistitem.SetAlign(wxLIST_FORMAT_LEFT);
|
newlistitem.SetAlign(wxLIST_FORMAT_LEFT);
|
||||||
|
|
||||||
int nID;
|
int nID;
|
||||||
|
|
||||||
newlistitem.SetId(nID = m_playlist->GetItemCount());
|
newlistitem.SetId(nID = currentpage->m_playlist->GetItemCount());
|
||||||
newlistitem.SetMask(wxLIST_MASK_DATA | wxLIST_MASK_STATE);
|
newlistitem.SetMask(wxLIST_MASK_DATA | wxLIST_MASK_STATE);
|
||||||
newlistitem.SetState(wxLIST_STATE_SELECTED);
|
newlistitem.SetState(wxLIST_STATE_SELECTED);
|
||||||
newlistitem.SetData(new wxString(path));
|
newlistitem.SetData(new wxString(path));
|
||||||
|
|
||||||
m_playlist->InsertItem(newlistitem);
|
currentpage->m_playlist->InsertItem(newlistitem);
|
||||||
m_playlist->SetItem(nID, 0, _T("*"));
|
currentpage->m_playlist->SetItem(nID, 0, wxT("*"));
|
||||||
m_playlist->SetItem(nID, 1, wxFileName(path).GetName());
|
currentpage->m_playlist->SetItem(nID, 1, wxFileName(path).GetName());
|
||||||
|
|
||||||
if (nID % 2)
|
if (nID % 2)
|
||||||
{
|
{
|
||||||
newlistitem.SetBackgroundColour(wxColour(192,192,192));
|
newlistitem.SetBackgroundColour(wxColour(192,192,192));
|
||||||
m_playlist->SetItem(newlistitem);
|
currentpage->m_playlist->SetItem(newlistitem);
|
||||||
}
|
}
|
||||||
|
|
||||||
DoPlayFile(path);
|
DoPlayFile(path);
|
||||||
// m_playlist->Focus(nID);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
@@ -984,69 +975,80 @@ void wxMediaPlayerFrame::DoOpenFile(const wxString& path, bool bNewPage)
|
|||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
void wxMediaPlayerFrame::DoPlayFile(const wxString& path)
|
void wxMediaPlayerFrame::DoPlayFile(const wxString& path)
|
||||||
{
|
{
|
||||||
wxMediaPlayerListCtrl* m_playlist =
|
wxMediaPlayerNotebookPage* currentpage =
|
||||||
((wxMediaPlayerNotebookPage*)m_notebook->GetCurrentPage())->m_playlist;
|
(wxMediaPlayerNotebookPage*) m_notebook->GetCurrentPage();
|
||||||
|
|
||||||
wxListItem listitem;
|
wxListItem listitem;
|
||||||
m_playlist->GetSelectedItem(listitem);
|
currentpage->m_playlist->GetSelectedItem(listitem);
|
||||||
|
|
||||||
if(listitem.GetData() &&
|
if( ( listitem.GetData() &&
|
||||||
m_szFile.compare(path) == 0 &&
|
currentpage->m_nLastFileId == listitem.GetId() &&
|
||||||
m_nLastFileId == listitem.GetId())
|
currentpage->m_szFile.compare(path) == 0 ) ||
|
||||||
|
( !listitem.GetData() &&
|
||||||
|
currentpage->m_nLastFileId != -1 &&
|
||||||
|
currentpage->m_szFile.compare(path) == 0)
|
||||||
|
)
|
||||||
{
|
{
|
||||||
if(GetCurrentMediaCtrl()->GetState() == wxMEDIASTATE_PLAYING)
|
if(currentpage->m_mediactrl->GetState() == wxMEDIASTATE_PLAYING)
|
||||||
{
|
{
|
||||||
if( !GetCurrentMediaCtrl()->Pause() )
|
if( !currentpage->m_mediactrl->Pause() )
|
||||||
wxMessageBox(wxT("Couldn't pause movie!"));
|
wxMessageBox(wxT("Couldn't pause movie!"));
|
||||||
else
|
else
|
||||||
m_playlist->SetItem(listitem.GetId(), 0, _T("||"));
|
currentpage->m_playlist->SetItem(
|
||||||
|
currentpage->m_nLastFileId, 0, wxT("||"));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if( !GetCurrentMediaCtrl()->Play() )
|
if( !currentpage->m_mediactrl->Play() )
|
||||||
wxMessageBox(wxT("Couldn't pause movie!"));
|
wxMessageBox(wxT("Couldn't play movie!"));
|
||||||
else
|
else
|
||||||
m_playlist->SetItem(listitem.GetId(), 0, _T(">"));
|
currentpage->m_playlist->SetItem(
|
||||||
|
currentpage->m_nLastFileId, 0, wxT(">"));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
int nNewId = listitem.GetData() ? listitem.GetId() :
|
||||||
|
currentpage->m_playlist->GetItemCount()-1;
|
||||||
m_notebook->SetPageText(m_notebook->GetSelection(),
|
m_notebook->SetPageText(m_notebook->GetSelection(),
|
||||||
wxFileName(path).GetName());
|
wxFileName(path).GetName());
|
||||||
|
|
||||||
if(m_nLastFileId != -1)
|
if(currentpage->m_nLastFileId != -1)
|
||||||
m_playlist->SetItem(m_nLastFileId, 0, _T("*"));
|
currentpage->m_playlist->SetItem(
|
||||||
|
currentpage->m_nLastFileId, 0, wxT("*"));
|
||||||
|
|
||||||
wxURI uripath(path);
|
wxURI uripath(path);
|
||||||
if( uripath.IsReference() )
|
if( uripath.IsReference() )
|
||||||
{
|
{
|
||||||
if( !GetCurrentMediaCtrl()->Load(path) )
|
if( !currentpage->m_mediactrl->Load(path) )
|
||||||
{
|
{
|
||||||
wxMessageBox(wxT("Couldn't load file!"));
|
wxMessageBox(wxT("Couldn't load file!"));
|
||||||
m_playlist->SetItem(listitem.GetId(), 0, _T("E"));
|
currentpage->m_playlist->SetItem(nNewId, 0, wxT("E"));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
m_playlist->SetItem(listitem.GetId(), 0, _T("O"));
|
currentpage->m_playlist->SetItem(nNewId, 0, wxT("O"));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if( !GetCurrentMediaCtrl()->Load(uripath) )
|
if( !currentpage->m_mediactrl->Load(uripath) )
|
||||||
{
|
{
|
||||||
wxMessageBox(wxT("Couldn't load file!"));
|
wxMessageBox(wxT("Couldn't load URL!"));
|
||||||
m_playlist->SetItem(listitem.GetId(), 0, _T("E"));
|
currentpage->m_playlist->SetItem(nNewId, 0, wxT("E"));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
m_playlist->SetItem(listitem.GetId(), 0, _T("O"));
|
currentpage->m_playlist->SetItem(nNewId, 0, wxT("O"));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
m_nLastFileId = listitem.GetId();
|
currentpage->m_nLastFileId = nNewId;
|
||||||
m_szFile = path;
|
currentpage->m_szFile = path;
|
||||||
m_playlist->SetItem(m_nLastFileId, 1, wxFileName(path).GetName());
|
currentpage->m_playlist->SetItem(currentpage->m_nLastFileId,
|
||||||
m_playlist->SetItem(m_nLastFileId, 2, wxT(""));
|
1, wxFileName(path).GetName());
|
||||||
|
currentpage->m_playlist->SetItem(currentpage->m_nLastFileId,
|
||||||
|
2, wxT(""));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1058,29 +1060,29 @@ void wxMediaPlayerFrame::DoPlayFile(const wxString& path)
|
|||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
void wxMediaPlayerFrame::OnMediaLoaded(wxMediaEvent& WXUNUSED(evt))
|
void wxMediaPlayerFrame::OnMediaLoaded(wxMediaEvent& WXUNUSED(evt))
|
||||||
{
|
{
|
||||||
wxMediaPlayerListCtrl* m_playlist =
|
wxMediaPlayerNotebookPage* currentpage =
|
||||||
((wxMediaPlayerNotebookPage*)m_notebook->GetCurrentPage())->m_playlist;
|
(wxMediaPlayerNotebookPage*) m_notebook->GetCurrentPage();
|
||||||
wxListItem listitem;
|
|
||||||
m_playlist->GetSelectedItem(listitem);
|
|
||||||
|
|
||||||
if( !GetCurrentMediaCtrl()->Play() )
|
if( !currentpage->m_mediactrl->Play() )
|
||||||
{
|
{
|
||||||
wxMessageBox(wxT("Couldn't play movie!"));
|
wxMessageBox(wxT("Couldn't play movie!"));
|
||||||
m_playlist->SetItem(listitem.GetId(), 0, _T("E"));
|
currentpage->m_playlist->SetItem(currentpage->m_nLastFileId, 0, wxT("E"));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
m_playlist->SetItem(listitem.GetId(), 0, _T(">"));
|
currentpage->m_playlist->SetItem(currentpage->m_nLastFileId, 0, wxT(">"));
|
||||||
}
|
}
|
||||||
|
|
||||||
m_playlist->SetItem(listitem.GetId(), 2, wxString::Format(wxT("%u"),
|
currentpage->m_playlist->SetItem(currentpage->m_nLastFileId,
|
||||||
(unsigned) GetCurrentMediaCtrl()->Length() / 1000) );
|
2, wxString::Format(wxT("%u"),
|
||||||
|
(unsigned) currentpage->m_mediactrl->Length() / 1000)
|
||||||
|
);
|
||||||
|
|
||||||
ResetStatus();
|
ResetStatus();
|
||||||
|
|
||||||
GetCurrentSlider()->SetRange(0,
|
currentpage->m_slider->SetRange(0,
|
||||||
(int)(GetCurrentMediaCtrl()->Length() / 1000));
|
(int)(currentpage->m_mediactrl->Length() / 1000));
|
||||||
GetCurrentGauge()->SetRange((int)(GetCurrentMediaCtrl()->Length() / 1000));
|
currentpage->m_gauge->SetRange((int)(currentpage->m_mediactrl->Length() / 1000));
|
||||||
}
|
}
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
@@ -1106,7 +1108,10 @@ void wxMediaPlayerFrame::OnSelectBackend(wxCommandEvent& WXUNUSED(evt))
|
|||||||
m_notebook->AddPage(new wxMediaPlayerNotebookPage(this, m_notebook,
|
m_notebook->AddPage(new wxMediaPlayerNotebookPage(this, m_notebook,
|
||||||
sBackend
|
sBackend
|
||||||
), wxT(""), true);
|
), wxT(""), true);
|
||||||
DoOpenFile(m_szFile, false);
|
|
||||||
|
DoOpenFile(
|
||||||
|
((wxMediaPlayerNotebookPage*) m_notebook->GetCurrentPage())->m_szFile,
|
||||||
|
false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1184,35 +1189,36 @@ void wxMediaPlayerFrame::OnCloseCurrentPage(wxCommandEvent& WXUNUSED(event))
|
|||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
void wxMediaPlayerFrame::OnPlay(wxCommandEvent& WXUNUSED(event))
|
void wxMediaPlayerFrame::OnPlay(wxCommandEvent& WXUNUSED(event))
|
||||||
{
|
{
|
||||||
wxMediaPlayerListCtrl* m_playlist =
|
wxMediaPlayerNotebookPage* currentpage =
|
||||||
((wxMediaPlayerNotebookPage*)m_notebook->GetCurrentPage())->m_playlist;
|
(wxMediaPlayerNotebookPage*) m_notebook->GetCurrentPage();
|
||||||
|
|
||||||
wxListItem listitem;
|
wxListItem listitem;
|
||||||
m_playlist->GetSelectedItem(listitem);
|
currentpage->m_playlist->GetSelectedItem(listitem);
|
||||||
if ( !listitem.GetData() )
|
if ( !listitem.GetData() )
|
||||||
{
|
{
|
||||||
int nLast = -1;
|
int nLast = -1;
|
||||||
if ((nLast = m_playlist->GetNextItem(nLast,
|
if ((nLast = currentpage->m_playlist->GetNextItem(nLast,
|
||||||
wxLIST_NEXT_ALL,
|
wxLIST_NEXT_ALL,
|
||||||
wxLIST_STATE_DONTCARE)) == -1)
|
wxLIST_STATE_DONTCARE)) == -1)
|
||||||
{
|
{
|
||||||
//no items in list
|
//no items in list
|
||||||
wxMessageBox(_T("No items in playlist!"));
|
wxMessageBox(wxT("No items in playlist!"));
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
wxListItem listitem;
|
else
|
||||||
|
{
|
||||||
listitem.SetId(nLast);
|
listitem.SetId(nLast);
|
||||||
m_playlist->GetItem(listitem);
|
currentpage->m_playlist->GetItem(listitem);
|
||||||
listitem.SetMask(listitem.GetMask() | wxLIST_MASK_STATE);
|
listitem.SetMask(listitem.GetMask() | wxLIST_MASK_STATE);
|
||||||
listitem.SetState(listitem.GetState() | wxLIST_STATE_SELECTED);
|
listitem.SetState(listitem.GetState() | wxLIST_STATE_SELECTED);
|
||||||
m_playlist->SetItem(listitem);
|
currentpage->m_playlist->SetItem(listitem);
|
||||||
wxListEvent event;
|
wxASSERT(listitem.GetData());
|
||||||
OnChangeSong(event);
|
DoPlayFile((*((wxString*) listitem.GetData())));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
wxListEvent event;
|
wxASSERT(listitem.GetData());
|
||||||
OnChangeSong(event);
|
DoPlayFile((*((wxString*) listitem.GetData())));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1225,22 +1231,22 @@ void wxMediaPlayerFrame::OnKeyDown(wxKeyEvent& event)
|
|||||||
{
|
{
|
||||||
if(event.GetKeyCode() == WXK_BACK/*DELETE*/)
|
if(event.GetKeyCode() == WXK_BACK/*DELETE*/)
|
||||||
{
|
{
|
||||||
wxMediaPlayerListCtrl* m_playlist =
|
wxMediaPlayerNotebookPage* currentpage =
|
||||||
((wxMediaPlayerNotebookPage*)m_notebook->GetCurrentPage())->m_playlist;
|
(wxMediaPlayerNotebookPage*) m_notebook->GetCurrentPage();
|
||||||
//delete all selected items
|
//delete all selected items
|
||||||
while(true)
|
while(true)
|
||||||
{
|
{
|
||||||
wxInt32 nSelectedItem = m_playlist->GetNextItem(
|
wxInt32 nSelectedItem = currentpage->m_playlist->GetNextItem(
|
||||||
-1, wxLIST_NEXT_ALL, wxLIST_STATE_SELECTED);
|
-1, wxLIST_NEXT_ALL, wxLIST_STATE_SELECTED);
|
||||||
if (nSelectedItem == -1)
|
if (nSelectedItem == -1)
|
||||||
break;
|
break;
|
||||||
|
|
||||||
wxListItem listitem;
|
wxListItem listitem;
|
||||||
listitem.SetId(nSelectedItem);
|
listitem.SetId(nSelectedItem);
|
||||||
m_playlist->GetItem(listitem);
|
currentpage->m_playlist->GetItem(listitem);
|
||||||
delete (wxString*) listitem.GetData();
|
delete (wxString*) listitem.GetData();
|
||||||
|
|
||||||
m_playlist->DeleteItem(nSelectedItem);
|
currentpage->m_playlist->DeleteItem(nSelectedItem);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1260,21 +1266,14 @@ void wxMediaPlayerFrame::OnKeyDown(wxKeyEvent& event)
|
|||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
void wxMediaPlayerFrame::OnStop(wxCommandEvent& WXUNUSED(evt))
|
void wxMediaPlayerFrame::OnStop(wxCommandEvent& WXUNUSED(evt))
|
||||||
{
|
{
|
||||||
wxMediaPlayerListCtrl* m_playlist =
|
wxMediaPlayerNotebookPage* currentpage =
|
||||||
((wxMediaPlayerNotebookPage*)m_notebook->GetCurrentPage())->m_playlist;
|
(wxMediaPlayerNotebookPage*) m_notebook->GetCurrentPage();
|
||||||
|
|
||||||
wxListItem listitem;
|
if( !currentpage->m_mediactrl->Stop() )
|
||||||
m_playlist->GetSelectedItem(listitem);
|
|
||||||
m_playlist->SetItem(listitem.GetId(), 0, _T("[]"));
|
|
||||||
|
|
||||||
if(!m_notebook->GetCurrentPage())
|
|
||||||
{
|
|
||||||
wxMessageBox(wxT("No files are currently open!"));
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if( !GetCurrentMediaCtrl()->Stop() )
|
|
||||||
wxMessageBox(wxT("Couldn't stop movie!"));
|
wxMessageBox(wxT("Couldn't stop movie!"));
|
||||||
|
else
|
||||||
|
currentpage->m_playlist->SetItem(
|
||||||
|
currentpage->m_nLastFileId, 0, wxT("[]"));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -1287,12 +1286,15 @@ void wxMediaPlayerFrame::OnStop(wxCommandEvent& WXUNUSED(evt))
|
|||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
void wxMediaPlayerFrame::OnChangeSong(wxListEvent& WXUNUSED(evt))
|
void wxMediaPlayerFrame::OnChangeSong(wxListEvent& WXUNUSED(evt))
|
||||||
{
|
{
|
||||||
wxMediaPlayerListCtrl* m_playlist =
|
wxMediaPlayerNotebookPage* currentpage =
|
||||||
((wxMediaPlayerNotebookPage*)m_notebook->GetCurrentPage())->m_playlist;
|
(wxMediaPlayerNotebookPage*) m_notebook->GetCurrentPage();
|
||||||
|
|
||||||
wxListItem listitem;
|
wxListItem listitem;
|
||||||
m_playlist->GetSelectedItem(listitem);
|
currentpage->m_playlist->GetSelectedItem(listitem);
|
||||||
|
if(listitem.GetData())
|
||||||
DoPlayFile((*((wxString*) listitem.GetData())));
|
DoPlayFile((*((wxString*) listitem.GetData())));
|
||||||
|
else
|
||||||
|
wxMessageBox(wxT("No selected item!"));
|
||||||
}
|
}
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
@@ -1303,37 +1305,49 @@ void wxMediaPlayerFrame::OnChangeSong(wxListEvent& WXUNUSED(evt))
|
|||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
void wxMediaPlayerFrame::OnPrev(wxCommandEvent& WXUNUSED(event))
|
void wxMediaPlayerFrame::OnPrev(wxCommandEvent& WXUNUSED(event))
|
||||||
{
|
{
|
||||||
wxMediaPlayerListCtrl* m_playlist =
|
wxMediaPlayerNotebookPage* currentpage =
|
||||||
((wxMediaPlayerNotebookPage*)m_notebook->GetCurrentPage())->m_playlist;
|
(wxMediaPlayerNotebookPage*) m_notebook->GetCurrentPage();
|
||||||
|
|
||||||
if (m_playlist->GetItemCount() == 0)
|
if (currentpage->m_playlist->GetItemCount() == 0)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
wxInt32 nLastSelectedItem = -1;
|
wxInt32 nLastSelectedItem = -1;
|
||||||
while(true)
|
while(true)
|
||||||
{
|
{
|
||||||
wxInt32 nSelectedItem = m_playlist->GetNextItem(nLastSelectedItem,
|
wxInt32 nSelectedItem = currentpage->m_playlist->GetNextItem(nLastSelectedItem,
|
||||||
wxLIST_NEXT_ALL, wxLIST_STATE_SELECTED);
|
wxLIST_NEXT_ALL, wxLIST_STATE_SELECTED);
|
||||||
if (nSelectedItem == -1)
|
if (nSelectedItem == -1)
|
||||||
break;
|
break;
|
||||||
nLastSelectedItem = nSelectedItem;
|
nLastSelectedItem = nSelectedItem;
|
||||||
m_playlist->SetItemState(nSelectedItem, 0, wxLIST_STATE_SELECTED);
|
currentpage->m_playlist->SetItemState(nSelectedItem, 0, wxLIST_STATE_SELECTED);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (nLastSelectedItem <= 0)
|
if (nLastSelectedItem == -1)
|
||||||
nLastSelectedItem = m_playlist->GetItemCount() - 1;
|
{
|
||||||
|
//nothing selected, default to the file before the currently playing one
|
||||||
|
if(currentpage->m_nLastFileId == 0)
|
||||||
|
nLastSelectedItem = currentpage->m_playlist->GetItemCount() - 1;
|
||||||
|
else
|
||||||
|
nLastSelectedItem = currentpage->m_nLastFileId - 1;
|
||||||
|
}
|
||||||
|
else if (nLastSelectedItem == 0)
|
||||||
|
nLastSelectedItem = currentpage->m_playlist->GetItemCount() - 1;
|
||||||
else
|
else
|
||||||
nLastSelectedItem -= 1;
|
nLastSelectedItem -= 1;
|
||||||
|
|
||||||
|
if(nLastSelectedItem == currentpage->m_nLastFileId)
|
||||||
|
return; //already playing... nothing to do
|
||||||
|
|
||||||
wxListItem listitem;
|
wxListItem listitem;
|
||||||
listitem.SetId(nLastSelectedItem);
|
listitem.SetId(nLastSelectedItem);
|
||||||
m_playlist->GetItem(listitem);
|
listitem.SetMask(wxLIST_MASK_TEXT | wxLIST_MASK_DATA);
|
||||||
|
currentpage->m_playlist->GetItem(listitem);
|
||||||
listitem.SetMask(listitem.GetMask() | wxLIST_MASK_STATE);
|
listitem.SetMask(listitem.GetMask() | wxLIST_MASK_STATE);
|
||||||
listitem.SetState(listitem.GetState() | wxLIST_STATE_SELECTED);
|
listitem.SetState(listitem.GetState() | wxLIST_STATE_SELECTED);
|
||||||
m_playlist->SetItem(listitem);
|
currentpage->m_playlist->SetItem(listitem);
|
||||||
|
|
||||||
wxListEvent emptyEvent;
|
wxASSERT(listitem.GetData());
|
||||||
OnChangeSong(emptyEvent);
|
DoPlayFile((*((wxString*) listitem.GetData())));
|
||||||
}
|
}
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
@@ -1344,42 +1358,48 @@ void wxMediaPlayerFrame::OnPrev(wxCommandEvent& WXUNUSED(event))
|
|||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
void wxMediaPlayerFrame::OnNext(wxCommandEvent& WXUNUSED(event))
|
void wxMediaPlayerFrame::OnNext(wxCommandEvent& WXUNUSED(event))
|
||||||
{
|
{
|
||||||
wxMediaPlayerListCtrl* m_playlist =
|
wxMediaPlayerNotebookPage* currentpage =
|
||||||
((wxMediaPlayerNotebookPage*)m_notebook->GetCurrentPage())->m_playlist;
|
(wxMediaPlayerNotebookPage*) m_notebook->GetCurrentPage();
|
||||||
|
|
||||||
if (m_playlist->GetItemCount() == 0)
|
if (currentpage->m_playlist->GetItemCount() == 0)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
wxInt32 nLastSelectedItem = -1;
|
wxInt32 nLastSelectedItem = -1;
|
||||||
while(true)
|
while(true)
|
||||||
{
|
{
|
||||||
wxInt32 nSelectedItem = m_playlist->GetNextItem(nLastSelectedItem,
|
wxInt32 nSelectedItem = currentpage->m_playlist->GetNextItem(nLastSelectedItem,
|
||||||
wxLIST_NEXT_ALL, wxLIST_STATE_SELECTED);
|
wxLIST_NEXT_ALL, wxLIST_STATE_SELECTED);
|
||||||
if (nSelectedItem == -1)
|
if (nSelectedItem == -1)
|
||||||
break;
|
break;
|
||||||
nLastSelectedItem = nSelectedItem;
|
nLastSelectedItem = nSelectedItem;
|
||||||
m_playlist->SetItemState(nSelectedItem, 0, wxLIST_STATE_SELECTED);
|
currentpage->m_playlist->SetItemState(nSelectedItem, 0, wxLIST_STATE_SELECTED);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (nLastSelectedItem == -1)
|
if (nLastSelectedItem == -1)
|
||||||
|
{
|
||||||
|
if(currentpage->m_nLastFileId == currentpage->m_playlist->GetItemCount() - 1)
|
||||||
nLastSelectedItem = 0;
|
nLastSelectedItem = 0;
|
||||||
else
|
else
|
||||||
{
|
nLastSelectedItem = currentpage->m_nLastFileId + 1;
|
||||||
if (nLastSelectedItem == m_playlist->GetItemCount() - 1)
|
}
|
||||||
|
else if (nLastSelectedItem == currentpage->m_playlist->GetItemCount() - 1)
|
||||||
nLastSelectedItem = 0;
|
nLastSelectedItem = 0;
|
||||||
else
|
else
|
||||||
nLastSelectedItem += 1;
|
nLastSelectedItem += 1;
|
||||||
}
|
|
||||||
|
if(nLastSelectedItem == currentpage->m_nLastFileId)
|
||||||
|
return; //already playing... nothing to do
|
||||||
|
|
||||||
wxListItem listitem;
|
wxListItem listitem;
|
||||||
|
listitem.SetMask(wxLIST_MASK_TEXT | wxLIST_MASK_DATA);
|
||||||
listitem.SetId(nLastSelectedItem);
|
listitem.SetId(nLastSelectedItem);
|
||||||
m_playlist->GetItem(listitem);
|
currentpage->m_playlist->GetItem(listitem);
|
||||||
listitem.SetMask(listitem.GetMask() | wxLIST_MASK_STATE);
|
listitem.SetMask(listitem.GetMask() | wxLIST_MASK_STATE);
|
||||||
listitem.SetState(listitem.GetState() | wxLIST_STATE_SELECTED);
|
listitem.SetState(listitem.GetState() | wxLIST_STATE_SELECTED);
|
||||||
m_playlist->SetItem(listitem);
|
currentpage->m_playlist->SetItem(listitem);
|
||||||
|
|
||||||
wxListEvent emptyEvent;
|
wxASSERT(listitem.GetData());
|
||||||
OnChangeSong(emptyEvent);
|
DoPlayFile((*((wxString*) listitem.GetData())));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -1390,8 +1410,11 @@ void wxMediaPlayerFrame::OnNext(wxCommandEvent& WXUNUSED(event))
|
|||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
void wxMediaPlayerFrame::OnVolumeDown(wxCommandEvent& WXUNUSED(event))
|
void wxMediaPlayerFrame::OnVolumeDown(wxCommandEvent& WXUNUSED(event))
|
||||||
{
|
{
|
||||||
double dVolume = GetCurrentMediaCtrl()->GetVolume();
|
wxMediaPlayerNotebookPage* currentpage =
|
||||||
GetCurrentMediaCtrl()->SetVolume(dVolume < 0.1 ? 0.0 : dVolume - .1);
|
(wxMediaPlayerNotebookPage*) m_notebook->GetCurrentPage();
|
||||||
|
|
||||||
|
double dVolume = currentpage->m_mediactrl->GetVolume();
|
||||||
|
currentpage->m_mediactrl->SetVolume(dVolume < 0.1 ? 0.0 : dVolume - .1);
|
||||||
}
|
}
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
@@ -1401,16 +1424,18 @@ void wxMediaPlayerFrame::OnVolumeDown(wxCommandEvent& WXUNUSED(event))
|
|||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
void wxMediaPlayerFrame::OnVolumeUp(wxCommandEvent& WXUNUSED(event))
|
void wxMediaPlayerFrame::OnVolumeUp(wxCommandEvent& WXUNUSED(event))
|
||||||
{
|
{
|
||||||
double dVolume = GetCurrentMediaCtrl()->GetVolume();
|
wxMediaPlayerNotebookPage* currentpage =
|
||||||
GetCurrentMediaCtrl()->SetVolume(dVolume > 0.9 ? 1.0 : dVolume + .1);
|
(wxMediaPlayerNotebookPage*) m_notebook->GetCurrentPage();
|
||||||
|
|
||||||
|
double dVolume = currentpage->m_mediactrl->GetVolume();
|
||||||
|
currentpage->m_mediactrl->SetVolume(dVolume > 0.9 ? 1.0 : dVolume + .1);
|
||||||
}
|
}
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
// wxMediaPlayerFrame::OnCloseCurrentPage
|
// wxMediaPlayerFrame::OnPageChange
|
||||||
//
|
//
|
||||||
// Called when the user wants to closes the current notebook page
|
// Called when the user changes the current notebook page shown
|
||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
|
|
||||||
void wxMediaPlayerFrame::OnPageChange(wxNotebookEvent& WXUNUSED(event))
|
void wxMediaPlayerFrame::OnPageChange(wxNotebookEvent& WXUNUSED(event))
|
||||||
{
|
{
|
||||||
ResetStatus();
|
ResetStatus();
|
||||||
@@ -1432,35 +1457,30 @@ void wxMediaPlayerFrame::OnPageChange(wxNotebookEvent& WXUNUSED(event))
|
|||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
void wxMediaPlayerTimer::Notify()
|
void wxMediaPlayerTimer::Notify()
|
||||||
{
|
{
|
||||||
if(m_frame->m_notebook->GetCurrentPage())
|
wxMediaPlayerNotebookPage* currentpage =
|
||||||
{
|
(wxMediaPlayerNotebookPage*) m_frame->m_notebook->GetCurrentPage();
|
||||||
// get some control pointers from current notebook page
|
|
||||||
wxMediaCtrl* mediactrl =
|
|
||||||
((wxMediaPlayerNotebookPage*)m_frame->m_notebook->GetCurrentPage())->m_mediactrl;
|
|
||||||
wxSlider* slider =
|
|
||||||
((wxMediaPlayerNotebookPage*)m_frame->m_notebook->GetCurrentPage())->m_slider;
|
|
||||||
wxGauge* gauge =
|
|
||||||
((wxMediaPlayerNotebookPage*)m_frame->m_notebook->GetCurrentPage())->m_gauge;
|
|
||||||
|
|
||||||
|
if(currentpage)
|
||||||
|
{
|
||||||
// if the slider is being dragged then update it with the song position
|
// if the slider is being dragged then update it with the song position
|
||||||
if(((wxMediaPlayerNotebookPage*)m_frame->m_notebook->GetCurrentPage())->IsBeingDragged() == false)
|
if(currentpage->IsBeingDragged() == false)
|
||||||
{
|
{
|
||||||
long lPosition = (long)( mediactrl->Tell() / 1000 );
|
long lPosition = (long)( currentpage->m_mediactrl->Tell() / 1000 );
|
||||||
slider->SetValue(lPosition);
|
currentpage->m_slider->SetValue(lPosition);
|
||||||
}
|
}
|
||||||
|
|
||||||
// update guage with value from slider
|
// update guage with value from slider
|
||||||
gauge->SetValue(slider->GetValue());
|
currentpage->m_gauge->SetValue(currentpage->m_slider->GetValue());
|
||||||
#if wxUSE_STATUSBAR
|
#if wxUSE_STATUSBAR
|
||||||
m_frame->SetStatusText(wxString::Format(
|
m_frame->SetStatusText(wxString::Format(
|
||||||
wxT("%s Pos:%u State:%s Loops:%i D/T:[%i]/[%i] V:%i%%"),
|
wxT("%s Pos:%u State:%s Loops:%i D/T:[%i]/[%i] V:%i%%"),
|
||||||
m_frame->m_basestatus.c_str(),
|
m_frame->m_basestatus.c_str(),
|
||||||
slider->GetValue(),
|
currentpage->m_slider->GetValue(),
|
||||||
wxGetMediaStateText(mediactrl->GetState()),
|
wxGetMediaStateText(currentpage->m_mediactrl->GetState()),
|
||||||
((wxMediaPlayerNotebookPage*)m_frame->m_notebook->GetCurrentPage())->m_nLoops,
|
currentpage->m_nLoops,
|
||||||
(int)mediactrl->GetDownloadProgress(),
|
(int)currentpage->m_mediactrl->GetDownloadProgress(),
|
||||||
(int)mediactrl->GetDownloadTotal(),
|
(int)currentpage->m_mediactrl->GetDownloadTotal(),
|
||||||
(int)(mediactrl->GetVolume() * 100)));
|
(int)(currentpage->m_mediactrl->GetVolume() * 100)));
|
||||||
#endif // wxUSE_STATUSBAR
|
#endif // wxUSE_STATUSBAR
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1478,11 +1498,11 @@ void wxMediaPlayerTimer::Notify()
|
|||||||
// Creates a media control and slider and adds it to this panel,
|
// Creates a media control and slider and adds it to this panel,
|
||||||
// along with some sizers for positioning
|
// along with some sizers for positioning
|
||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
|
|
||||||
wxMediaPlayerNotebookPage::wxMediaPlayerNotebookPage(wxMediaPlayerFrame* parentFrame,
|
wxMediaPlayerNotebookPage::wxMediaPlayerNotebookPage(wxMediaPlayerFrame* parentFrame,
|
||||||
wxNotebook* theBook,
|
wxNotebook* theBook,
|
||||||
const wxString& szBackend)
|
const wxString& szBackend)
|
||||||
: wxPanel(theBook, wxID_ANY),
|
: wxPanel(theBook, wxID_ANY),
|
||||||
|
m_nLastFileId(-1),
|
||||||
m_nLoops(0),
|
m_nLoops(0),
|
||||||
m_bLoop(false),
|
m_bLoop(false),
|
||||||
m_bIsBeingDragged(false),
|
m_bIsBeingDragged(false),
|
||||||
@@ -1562,30 +1582,6 @@ wxMediaPlayerNotebookPage::wxMediaPlayerNotebookPage(wxMediaPlayerFrame* parentF
|
|||||||
m_playlist->SetDropTarget(new wxPlayListDropTarget(*m_playlist));
|
m_playlist->SetDropTarget(new wxPlayListDropTarget(*m_playlist));
|
||||||
sizer->Add(m_playlist, 0, wxALIGN_CENTER_HORIZONTAL|wxALL|wxEXPAND, 5);
|
sizer->Add(m_playlist, 0, wxALIGN_CENTER_HORIZONTAL|wxALL|wxEXPAND, 5);
|
||||||
|
|
||||||
//
|
|
||||||
// Here we load the our configuration -
|
|
||||||
// in our case we load all the files that were left in
|
|
||||||
// the playlist the last time the user closed our application
|
|
||||||
//
|
|
||||||
// TODO: This is probably not the best practice since
|
|
||||||
// the user will load multiple notebook pages with multiple
|
|
||||||
// wxMediaCtrl elements.
|
|
||||||
//
|
|
||||||
// As an exercise to the reader try modifying it so that
|
|
||||||
// it properly loads the playlist for each page without
|
|
||||||
// conflicting (loading the same data) with the other ones.
|
|
||||||
//
|
|
||||||
wxConfigBase* conf = wxConfigBase::Get();
|
|
||||||
wxString key, outstring;
|
|
||||||
for(int i = 0; ; ++i)
|
|
||||||
{
|
|
||||||
key.clear();
|
|
||||||
key << i;
|
|
||||||
if(!conf->Read(key, &outstring))
|
|
||||||
break;
|
|
||||||
m_playlist->AddToPlayList(outstring);
|
|
||||||
}
|
|
||||||
|
|
||||||
//
|
//
|
||||||
// Create the control buttons
|
// Create the control buttons
|
||||||
// TODO/FIXME/HACK: This part about sizers is really a nice hack
|
// TODO/FIXME/HACK: This part about sizers is really a nice hack
|
||||||
@@ -1601,12 +1597,12 @@ wxMediaPlayerNotebookPage::wxMediaPlayerNotebookPage(wxMediaPlayerFrame* parentF
|
|||||||
m_vdButton = new wxButton();
|
m_vdButton = new wxButton();
|
||||||
m_vuButton = new wxButton();
|
m_vuButton = new wxButton();
|
||||||
|
|
||||||
m_prevButton->Create(this, wxID_BUTTONPREV, _T("|<"));
|
m_prevButton->Create(this, wxID_BUTTONPREV, wxT("|<"));
|
||||||
m_playButton->Create(this, wxID_BUTTONPLAY, _T(">"));
|
m_playButton->Create(this, wxID_BUTTONPLAY, wxT(">"));
|
||||||
m_stopButton->Create(this, wxID_BUTTONSTOP, _T("[]"));
|
m_stopButton->Create(this, wxID_BUTTONSTOP, wxT("[]"));
|
||||||
m_nextButton->Create(this, wxID_BUTTONNEXT, _T(">|"));
|
m_nextButton->Create(this, wxID_BUTTONNEXT, wxT(">|"));
|
||||||
m_vdButton->Create(this, wxID_BUTTONVD, _T("(("));
|
m_vdButton->Create(this, wxID_BUTTONVD, wxT("(("));
|
||||||
m_vuButton->Create(this, wxID_BUTTONVU, _T("))"));
|
m_vuButton->Create(this, wxID_BUTTONVU, wxT("))"));
|
||||||
vertsizer->Add(m_prevButton, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
|
vertsizer->Add(m_prevButton, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
|
||||||
vertsizer->Add(m_playButton, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
|
vertsizer->Add(m_playButton, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
|
||||||
vertsizer->Add(m_stopButton, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
|
vertsizer->Add(m_stopButton, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5);
|
||||||
@@ -1735,14 +1731,14 @@ void wxMediaPlayerNotebookPage::OnMediaFinished(wxMediaEvent& WXUNUSED(event))
|
|||||||
if ( !m_mediactrl->Play() )
|
if ( !m_mediactrl->Play() )
|
||||||
{
|
{
|
||||||
wxMessageBox(wxT("Couldn't loop movie!"));
|
wxMessageBox(wxT("Couldn't loop movie!"));
|
||||||
m_playlist->SetItem(m_parentFrame->m_nLastFileId, 0, _T("E"));
|
m_playlist->SetItem(m_nLastFileId, 0, wxT("E"));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
++m_nLoops;
|
++m_nLoops;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
m_playlist->SetItem(m_parentFrame->m_nLastFileId, 0, _T("[]"));
|
m_playlist->SetItem(m_nLastFileId, 0, wxT("[]"));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -468,6 +468,49 @@ void wxMediaCtrl::DoMoveWindow(int x, int y, int w, int h)
|
|||||||
m_imp->Move(x, y, w, h);
|
m_imp->Move(x, y, w, h);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
||||||
|
//
|
||||||
|
// wxMediaBackendCommonBase
|
||||||
|
//
|
||||||
|
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
||||||
|
|
||||||
|
void wxMediaBackendCommonBase::NotifyMovieSizeChanged()
|
||||||
|
{
|
||||||
|
// our best size changed after opening a new file
|
||||||
|
m_ctrl->InvalidateBestSize();
|
||||||
|
m_ctrl->SetSize(m_ctrl->GetSize());
|
||||||
|
|
||||||
|
// if the parent of the control has a sizer ask it to refresh our size
|
||||||
|
wxWindow * const parent = m_ctrl->GetParent();
|
||||||
|
if ( parent->GetSizer() )
|
||||||
|
{
|
||||||
|
m_ctrl->GetParent()->Layout();
|
||||||
|
m_ctrl->GetParent()->Refresh();
|
||||||
|
m_ctrl->GetParent()->Update();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void wxMediaBackendCommonBase::NotifyMovieLoaded()
|
||||||
|
{
|
||||||
|
NotifyMovieSizeChanged();
|
||||||
|
|
||||||
|
// notify about movie being fully loaded
|
||||||
|
QueueEvent(wxEVT_MEDIA_LOADED);
|
||||||
|
}
|
||||||
|
|
||||||
|
bool wxMediaBackendCommonBase::SendStopEvent()
|
||||||
|
{
|
||||||
|
wxMediaEvent theEvent(wxEVT_MEDIA_STOP, m_ctrl->GetId());
|
||||||
|
|
||||||
|
return !m_ctrl->ProcessEvent(theEvent) || theEvent.IsAllowed();
|
||||||
|
}
|
||||||
|
|
||||||
|
void wxMediaBackendCommonBase::QueueEvent(wxEventType evtType)
|
||||||
|
{
|
||||||
|
wxMediaEvent theEvent(evtType, m_ctrl->GetId());
|
||||||
|
m_ctrl->AddPendingEvent(theEvent);
|
||||||
|
}
|
||||||
|
|
||||||
#include "wx/html/forcelnk.h"
|
#include "wx/html/forcelnk.h"
|
||||||
FORCE_LINK(basewxmediabackends);
|
FORCE_LINK(basewxmediabackends);
|
||||||
|
|
||||||
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
824
src/msw/ole/activex.cpp
Normal file
824
src/msw/ole/activex.cpp
Normal file
@@ -0,0 +1,824 @@
|
|||||||
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
|
// Name: msw/ole/activex.cpp
|
||||||
|
// Purpose: wxActiveXContainer implementation
|
||||||
|
// Author: Ryan Norton <wxprojects@comcast.net>, Lindsay Mathieson <???>
|
||||||
|
// Modified by:
|
||||||
|
// Created: 11/07/04
|
||||||
|
// RCS-ID: $Id$
|
||||||
|
// Copyright: (c) 2003 Lindsay Mathieson, (c) 2005 Ryan Norton
|
||||||
|
// Licence: wxWindows licence
|
||||||
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
//===========================================================================
|
||||||
|
// DECLARATIONS
|
||||||
|
//===========================================================================
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------
|
||||||
|
// WX include
|
||||||
|
//---------------------------------------------------------------------------
|
||||||
|
#include "wx/wxprec.h"
|
||||||
|
|
||||||
|
#include "wx/msw/ole/activex.h"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
||||||
|
//
|
||||||
|
// wxActiveXContainer
|
||||||
|
//
|
||||||
|
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
||||||
|
|
||||||
|
#define DECLARE_OLE_UNKNOWN(cls)\
|
||||||
|
private:\
|
||||||
|
class TAutoInitInt\
|
||||||
|
{\
|
||||||
|
public:\
|
||||||
|
LONG l;\
|
||||||
|
TAutoInitInt() : l(0) {}\
|
||||||
|
};\
|
||||||
|
TAutoInitInt refCount, lockCount;\
|
||||||
|
static void _GetInterface(cls *self, REFIID iid, void **_interface, const char *&desc);\
|
||||||
|
public:\
|
||||||
|
LONG GetRefCount();\
|
||||||
|
HRESULT STDMETHODCALLTYPE QueryInterface(REFIID iid, void ** ppvObject);\
|
||||||
|
ULONG STDMETHODCALLTYPE AddRef();\
|
||||||
|
ULONG STDMETHODCALLTYPE Release();\
|
||||||
|
ULONG STDMETHODCALLTYPE AddLock();\
|
||||||
|
ULONG STDMETHODCALLTYPE ReleaseLock()
|
||||||
|
|
||||||
|
#define DEFINE_OLE_TABLE(cls)\
|
||||||
|
LONG cls::GetRefCount() {return refCount.l;}\
|
||||||
|
HRESULT STDMETHODCALLTYPE cls::QueryInterface(REFIID iid, void ** ppvObject)\
|
||||||
|
{\
|
||||||
|
if (! ppvObject)\
|
||||||
|
{\
|
||||||
|
return E_FAIL;\
|
||||||
|
};\
|
||||||
|
const char *desc = NULL;\
|
||||||
|
cls::_GetInterface(this, iid, ppvObject, desc);\
|
||||||
|
if (! *ppvObject)\
|
||||||
|
{\
|
||||||
|
return E_NOINTERFACE;\
|
||||||
|
};\
|
||||||
|
((IUnknown * )(*ppvObject))->AddRef();\
|
||||||
|
return S_OK;\
|
||||||
|
};\
|
||||||
|
ULONG STDMETHODCALLTYPE cls::AddRef()\
|
||||||
|
{\
|
||||||
|
InterlockedIncrement(&refCount.l);\
|
||||||
|
return refCount.l;\
|
||||||
|
};\
|
||||||
|
ULONG STDMETHODCALLTYPE cls::Release()\
|
||||||
|
{\
|
||||||
|
if (refCount.l > 0)\
|
||||||
|
{\
|
||||||
|
InterlockedDecrement(&refCount.l);\
|
||||||
|
if (refCount.l == 0)\
|
||||||
|
{\
|
||||||
|
delete this;\
|
||||||
|
return 0;\
|
||||||
|
};\
|
||||||
|
return refCount.l;\
|
||||||
|
}\
|
||||||
|
else\
|
||||||
|
return 0;\
|
||||||
|
}\
|
||||||
|
ULONG STDMETHODCALLTYPE cls::AddLock()\
|
||||||
|
{\
|
||||||
|
InterlockedIncrement(&lockCount.l);\
|
||||||
|
return lockCount.l;\
|
||||||
|
};\
|
||||||
|
ULONG STDMETHODCALLTYPE cls::ReleaseLock()\
|
||||||
|
{\
|
||||||
|
if (lockCount.l > 0)\
|
||||||
|
{\
|
||||||
|
InterlockedDecrement(&lockCount.l);\
|
||||||
|
return lockCount.l;\
|
||||||
|
}\
|
||||||
|
else\
|
||||||
|
return 0;\
|
||||||
|
}\
|
||||||
|
DEFINE_OLE_BASE(cls)
|
||||||
|
|
||||||
|
#define DEFINE_OLE_BASE(cls)\
|
||||||
|
void cls::_GetInterface(cls *self, REFIID iid, void **_interface, const char *&desc)\
|
||||||
|
{\
|
||||||
|
*_interface = NULL;\
|
||||||
|
desc = NULL;
|
||||||
|
|
||||||
|
#define OLE_INTERFACE(_iid, _type)\
|
||||||
|
if (IsEqualIID(iid, _iid))\
|
||||||
|
{\
|
||||||
|
*_interface = (IUnknown *) (_type *) self;\
|
||||||
|
desc = # _iid;\
|
||||||
|
return;\
|
||||||
|
}
|
||||||
|
|
||||||
|
#define OLE_IINTERFACE(_face) OLE_INTERFACE(IID_##_face, _face)
|
||||||
|
|
||||||
|
#define OLE_INTERFACE_CUSTOM(func)\
|
||||||
|
if (func(self, iid, _interface, desc))\
|
||||||
|
{\
|
||||||
|
return;\
|
||||||
|
}
|
||||||
|
|
||||||
|
#define END_OLE_TABLE\
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
class FrameSite :
|
||||||
|
public IOleClientSite,
|
||||||
|
public IOleInPlaceSiteEx,
|
||||||
|
public IOleInPlaceFrame,
|
||||||
|
public IOleItemContainer,
|
||||||
|
public IDispatch,
|
||||||
|
public IOleCommandTarget,
|
||||||
|
public IOleDocumentSite,
|
||||||
|
public IAdviseSink,
|
||||||
|
public IOleControlSite
|
||||||
|
{
|
||||||
|
private:
|
||||||
|
DECLARE_OLE_UNKNOWN(FrameSite);
|
||||||
|
|
||||||
|
public:
|
||||||
|
FrameSite(wxWindow * win, wxActiveXContainer * win2)
|
||||||
|
{
|
||||||
|
m_window = win2;
|
||||||
|
m_bSupportsWindowlessActivation = true;
|
||||||
|
m_bInPlaceLocked = false;
|
||||||
|
m_bUIActive = false;
|
||||||
|
m_bInPlaceActive = false;
|
||||||
|
m_bWindowless = false;
|
||||||
|
|
||||||
|
m_nAmbientLocale = 0;
|
||||||
|
m_clrAmbientForeColor = ::GetSysColor(COLOR_WINDOWTEXT);
|
||||||
|
m_clrAmbientBackColor = ::GetSysColor(COLOR_WINDOW);
|
||||||
|
m_bAmbientShowHatching = true;
|
||||||
|
m_bAmbientShowGrabHandles = true;
|
||||||
|
m_bAmbientAppearance = true;
|
||||||
|
|
||||||
|
m_hDCBuffer = NULL;
|
||||||
|
m_hWndParent = (HWND)win->GetHWND();
|
||||||
|
}
|
||||||
|
virtual ~FrameSite(){}
|
||||||
|
//***************************IDispatch*****************************
|
||||||
|
HRESULT STDMETHODCALLTYPE GetIDsOfNames(REFIID, OLECHAR ** ,
|
||||||
|
unsigned int , LCID ,
|
||||||
|
DISPID * )
|
||||||
|
{ return E_NOTIMPL; }
|
||||||
|
STDMETHOD(GetTypeInfo)(unsigned int, LCID, ITypeInfo **)
|
||||||
|
{ return E_NOTIMPL; }
|
||||||
|
HRESULT STDMETHODCALLTYPE GetTypeInfoCount(unsigned int *)
|
||||||
|
{ return E_NOTIMPL; }
|
||||||
|
HRESULT STDMETHODCALLTYPE Invoke(DISPID dispIdMember, REFIID, LCID,
|
||||||
|
WORD wFlags, DISPPARAMS *,
|
||||||
|
VARIANT * pVarResult, EXCEPINFO *,
|
||||||
|
unsigned int *)
|
||||||
|
{
|
||||||
|
if (!(wFlags & DISPATCH_PROPERTYGET))
|
||||||
|
return S_OK;
|
||||||
|
|
||||||
|
if (pVarResult == NULL)
|
||||||
|
return E_INVALIDARG;
|
||||||
|
|
||||||
|
//The most common case is boolean, use as an initial type
|
||||||
|
V_VT(pVarResult) = VT_BOOL;
|
||||||
|
|
||||||
|
switch (dispIdMember)
|
||||||
|
{
|
||||||
|
case DISPID_AMBIENT_MESSAGEREFLECT:
|
||||||
|
V_BOOL(pVarResult)= FALSE;
|
||||||
|
return S_OK;
|
||||||
|
|
||||||
|
case DISPID_AMBIENT_DISPLAYASDEFAULT:
|
||||||
|
V_BOOL(pVarResult)= TRUE;
|
||||||
|
return S_OK;
|
||||||
|
|
||||||
|
case DISPID_AMBIENT_OFFLINEIFNOTCONNECTED:
|
||||||
|
V_BOOL(pVarResult) = TRUE;
|
||||||
|
return S_OK;
|
||||||
|
|
||||||
|
case DISPID_AMBIENT_SILENT:
|
||||||
|
V_BOOL(pVarResult)= TRUE;
|
||||||
|
return S_OK;
|
||||||
|
|
||||||
|
case DISPID_AMBIENT_APPEARANCE:
|
||||||
|
pVarResult->vt = VT_BOOL;
|
||||||
|
pVarResult->boolVal = m_bAmbientAppearance;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case DISPID_AMBIENT_FORECOLOR:
|
||||||
|
pVarResult->vt = VT_I4;
|
||||||
|
pVarResult->lVal = (long) m_clrAmbientForeColor;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case DISPID_AMBIENT_BACKCOLOR:
|
||||||
|
pVarResult->vt = VT_I4;
|
||||||
|
pVarResult->lVal = (long) m_clrAmbientBackColor;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case DISPID_AMBIENT_LOCALEID:
|
||||||
|
pVarResult->vt = VT_I4;
|
||||||
|
pVarResult->lVal = (long) m_nAmbientLocale;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case DISPID_AMBIENT_USERMODE:
|
||||||
|
pVarResult->vt = VT_BOOL;
|
||||||
|
pVarResult->boolVal = m_window->m_bAmbientUserMode;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case DISPID_AMBIENT_SHOWGRABHANDLES:
|
||||||
|
pVarResult->vt = VT_BOOL;
|
||||||
|
pVarResult->boolVal = m_bAmbientShowGrabHandles;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case DISPID_AMBIENT_SHOWHATCHING:
|
||||||
|
pVarResult->vt = VT_BOOL;
|
||||||
|
pVarResult->boolVal = m_bAmbientShowHatching;
|
||||||
|
break;
|
||||||
|
|
||||||
|
default:
|
||||||
|
return DISP_E_MEMBERNOTFOUND;
|
||||||
|
}
|
||||||
|
|
||||||
|
return S_OK;
|
||||||
|
}
|
||||||
|
|
||||||
|
//**************************IOleWindow***************************
|
||||||
|
HRESULT STDMETHODCALLTYPE GetWindow(HWND * phwnd)
|
||||||
|
{
|
||||||
|
if (phwnd == NULL)
|
||||||
|
return E_INVALIDARG;
|
||||||
|
(*phwnd) = m_hWndParent;
|
||||||
|
return S_OK;
|
||||||
|
}
|
||||||
|
HRESULT STDMETHODCALLTYPE ContextSensitiveHelp(BOOL)
|
||||||
|
{return S_OK;}
|
||||||
|
//**************************IOleInPlaceUIWindow*****************
|
||||||
|
HRESULT STDMETHODCALLTYPE GetBorder(LPRECT lprectBorder)
|
||||||
|
{
|
||||||
|
if (lprectBorder == NULL)
|
||||||
|
return E_INVALIDARG;
|
||||||
|
return INPLACE_E_NOTOOLSPACE;
|
||||||
|
}
|
||||||
|
HRESULT STDMETHODCALLTYPE RequestBorderSpace(LPCBORDERWIDTHS pborderwidths)
|
||||||
|
{
|
||||||
|
if (pborderwidths == NULL)
|
||||||
|
return E_INVALIDARG;
|
||||||
|
return INPLACE_E_NOTOOLSPACE;
|
||||||
|
}
|
||||||
|
HRESULT STDMETHODCALLTYPE SetBorderSpace(LPCBORDERWIDTHS)
|
||||||
|
{return S_OK;}
|
||||||
|
HRESULT STDMETHODCALLTYPE SetActiveObject(
|
||||||
|
IOleInPlaceActiveObject *pActiveObject, LPCOLESTR)
|
||||||
|
{
|
||||||
|
if (pActiveObject)
|
||||||
|
pActiveObject->AddRef();
|
||||||
|
|
||||||
|
m_window->m_oleInPlaceActiveObject = pActiveObject;
|
||||||
|
return S_OK;
|
||||||
|
}
|
||||||
|
|
||||||
|
//********************IOleInPlaceFrame************************
|
||||||
|
|
||||||
|
STDMETHOD(InsertMenus)(HMENU, LPOLEMENUGROUPWIDTHS){return S_OK;}
|
||||||
|
STDMETHOD(SetMenu)(HMENU, HOLEMENU, HWND){ return S_OK;}
|
||||||
|
STDMETHOD(RemoveMenus)(HMENU){return S_OK;}
|
||||||
|
STDMETHOD(SetStatusText)(LPCOLESTR){ return S_OK;}
|
||||||
|
HRESULT STDMETHODCALLTYPE EnableModeless(BOOL){return S_OK;}
|
||||||
|
HRESULT STDMETHODCALLTYPE TranslateAccelerator(LPMSG lpmsg, WORD)
|
||||||
|
{
|
||||||
|
// TODO: send an event with this id
|
||||||
|
if (m_window->m_oleInPlaceActiveObject.Ok())
|
||||||
|
m_window->m_oleInPlaceActiveObject->TranslateAccelerator(lpmsg);
|
||||||
|
return S_FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
//*******************IOleInPlaceSite**************************
|
||||||
|
HRESULT STDMETHODCALLTYPE CanInPlaceActivate(){return S_OK;}
|
||||||
|
HRESULT STDMETHODCALLTYPE OnInPlaceActivate()
|
||||||
|
{ m_bInPlaceActive = true; return S_OK; }
|
||||||
|
HRESULT STDMETHODCALLTYPE OnUIActivate()
|
||||||
|
{ m_bUIActive = true; return S_OK; }
|
||||||
|
HRESULT STDMETHODCALLTYPE GetWindowContext(IOleInPlaceFrame **ppFrame,
|
||||||
|
IOleInPlaceUIWindow **ppDoc,
|
||||||
|
LPRECT lprcPosRect,
|
||||||
|
LPRECT lprcClipRect,
|
||||||
|
LPOLEINPLACEFRAMEINFO lpFrameInfo)
|
||||||
|
{
|
||||||
|
if (ppFrame == NULL || ppDoc == NULL || lprcPosRect == NULL ||
|
||||||
|
lprcClipRect == NULL || lpFrameInfo == NULL)
|
||||||
|
{
|
||||||
|
if (ppFrame != NULL)
|
||||||
|
(*ppFrame) = NULL;
|
||||||
|
if (ppDoc != NULL)
|
||||||
|
(*ppDoc) = NULL;
|
||||||
|
return E_INVALIDARG;
|
||||||
|
}
|
||||||
|
|
||||||
|
HRESULT hr = QueryInterface(IID_IOleInPlaceFrame, (void **) ppFrame);
|
||||||
|
if (! SUCCEEDED(hr))
|
||||||
|
{
|
||||||
|
return E_UNEXPECTED;
|
||||||
|
};
|
||||||
|
|
||||||
|
hr = QueryInterface(IID_IOleInPlaceUIWindow, (void **) ppDoc);
|
||||||
|
if (! SUCCEEDED(hr))
|
||||||
|
{
|
||||||
|
(*ppFrame)->Release();
|
||||||
|
*ppFrame = NULL;
|
||||||
|
return E_UNEXPECTED;
|
||||||
|
};
|
||||||
|
|
||||||
|
RECT rect;
|
||||||
|
::GetClientRect(m_hWndParent, &rect);
|
||||||
|
if (lprcPosRect)
|
||||||
|
{
|
||||||
|
lprcPosRect->left = lprcPosRect->top = 0;
|
||||||
|
lprcPosRect->right = rect.right;
|
||||||
|
lprcPosRect->bottom = rect.bottom;
|
||||||
|
};
|
||||||
|
if (lprcClipRect)
|
||||||
|
{
|
||||||
|
lprcClipRect->left = lprcClipRect->top = 0;
|
||||||
|
lprcClipRect->right = rect.right;
|
||||||
|
lprcClipRect->bottom = rect.bottom;
|
||||||
|
};
|
||||||
|
|
||||||
|
memset(lpFrameInfo, 0, sizeof(OLEINPLACEFRAMEINFO));
|
||||||
|
lpFrameInfo->cb = sizeof(OLEINPLACEFRAMEINFO);
|
||||||
|
lpFrameInfo->hwndFrame = m_hWndParent;
|
||||||
|
|
||||||
|
return S_OK;
|
||||||
|
}
|
||||||
|
HRESULT STDMETHODCALLTYPE Scroll(SIZE){return S_OK;}
|
||||||
|
HRESULT STDMETHODCALLTYPE OnUIDeactivate(BOOL)
|
||||||
|
{ m_bUIActive = false; return S_OK; }
|
||||||
|
HRESULT STDMETHODCALLTYPE OnInPlaceDeactivate()
|
||||||
|
{ m_bInPlaceActive = false; return S_OK; }
|
||||||
|
HRESULT STDMETHODCALLTYPE DiscardUndoState(){return S_OK;}
|
||||||
|
HRESULT STDMETHODCALLTYPE DeactivateAndUndo(){return S_OK; }
|
||||||
|
HRESULT STDMETHODCALLTYPE OnPosRectChange(LPCRECT lprcPosRect)
|
||||||
|
{
|
||||||
|
if (m_window->m_oleInPlaceObject.Ok() && lprcPosRect)
|
||||||
|
{
|
||||||
|
m_window->m_oleInPlaceObject->SetObjectRects(
|
||||||
|
lprcPosRect, lprcPosRect);
|
||||||
|
}
|
||||||
|
return S_OK;
|
||||||
|
}
|
||||||
|
//*************************IOleInPlaceSiteEx***********************
|
||||||
|
HRESULT STDMETHODCALLTYPE OnInPlaceActivateEx(BOOL * pfNoRedraw, DWORD)
|
||||||
|
{
|
||||||
|
OleLockRunning(m_window->m_ActiveX, TRUE, FALSE);
|
||||||
|
if (pfNoRedraw)
|
||||||
|
(*pfNoRedraw) = FALSE;
|
||||||
|
return S_OK;
|
||||||
|
}
|
||||||
|
|
||||||
|
HRESULT STDMETHODCALLTYPE OnInPlaceDeactivateEx(BOOL)
|
||||||
|
{
|
||||||
|
OleLockRunning(m_window->m_ActiveX, FALSE, FALSE);
|
||||||
|
return S_OK;
|
||||||
|
}
|
||||||
|
STDMETHOD(RequestUIActivate)(){ return S_OK;}
|
||||||
|
//*************************IOleClientSite**************************
|
||||||
|
HRESULT STDMETHODCALLTYPE SaveObject(){return S_OK;}
|
||||||
|
const char *OleGetMonikerToStr(DWORD dwAssign)
|
||||||
|
{
|
||||||
|
switch (dwAssign)
|
||||||
|
{
|
||||||
|
case OLEGETMONIKER_ONLYIFTHERE : return "OLEGETMONIKER_ONLYIFTHERE";
|
||||||
|
case OLEGETMONIKER_FORCEASSIGN : return "OLEGETMONIKER_FORCEASSIGN";
|
||||||
|
case OLEGETMONIKER_UNASSIGN : return "OLEGETMONIKER_UNASSIGN";
|
||||||
|
case OLEGETMONIKER_TEMPFORUSER : return "OLEGETMONIKER_TEMPFORUSER";
|
||||||
|
default : return "Bad Enum";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
const char *OleGetWhicMonikerStr(DWORD dwWhichMoniker)
|
||||||
|
{
|
||||||
|
switch(dwWhichMoniker)
|
||||||
|
{
|
||||||
|
case OLEWHICHMK_CONTAINER : return "OLEWHICHMK_CONTAINER";
|
||||||
|
case OLEWHICHMK_OBJREL : return "OLEWHICHMK_OBJREL";
|
||||||
|
case OLEWHICHMK_OBJFULL : return "OLEWHICHMK_OBJFULL";
|
||||||
|
default : return "Bad Enum";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
STDMETHOD(GetMoniker)(DWORD, DWORD, IMoniker **){return E_FAIL;}
|
||||||
|
HRESULT STDMETHODCALLTYPE GetContainer(LPOLECONTAINER * ppContainer)
|
||||||
|
{
|
||||||
|
if (ppContainer == NULL)
|
||||||
|
return E_INVALIDARG;
|
||||||
|
HRESULT hr = QueryInterface(
|
||||||
|
IID_IOleContainer, (void**)(ppContainer));
|
||||||
|
wxASSERT(SUCCEEDED(hr));
|
||||||
|
return hr;
|
||||||
|
}
|
||||||
|
HRESULT STDMETHODCALLTYPE ShowObject()
|
||||||
|
{
|
||||||
|
if (m_window->m_oleObjectHWND)
|
||||||
|
::ShowWindow(m_window->m_oleObjectHWND, SW_SHOW);
|
||||||
|
return S_OK;
|
||||||
|
}
|
||||||
|
STDMETHOD(OnShowWindow)(BOOL){return S_OK;}
|
||||||
|
STDMETHOD(RequestNewObjectLayout)(){return E_NOTIMPL;}
|
||||||
|
//********************IParseDisplayName***************************
|
||||||
|
HRESULT STDMETHODCALLTYPE ParseDisplayName(
|
||||||
|
IBindCtx *, LPOLESTR, ULONG *, IMoniker **){return E_NOTIMPL;}
|
||||||
|
//********************IOleContainer*******************************
|
||||||
|
STDMETHOD(EnumObjects)(DWORD, IEnumUnknown **){return E_NOTIMPL;}
|
||||||
|
HRESULT STDMETHODCALLTYPE LockContainer(BOOL){return S_OK;}
|
||||||
|
//********************IOleItemContainer***************************
|
||||||
|
HRESULT STDMETHODCALLTYPE
|
||||||
|
#ifdef _UNICODE
|
||||||
|
GetObjectW
|
||||||
|
#else
|
||||||
|
GetObjectA
|
||||||
|
#endif
|
||||||
|
(LPOLESTR pszItem, DWORD, IBindCtx *, REFIID, void ** ppvObject)
|
||||||
|
{
|
||||||
|
if (pszItem == NULL || ppvObject == NULL)
|
||||||
|
return E_INVALIDARG;
|
||||||
|
*ppvObject = NULL;
|
||||||
|
return MK_E_NOOBJECT;
|
||||||
|
}
|
||||||
|
HRESULT STDMETHODCALLTYPE GetObjectStorage(
|
||||||
|
LPOLESTR pszItem, IBindCtx * , REFIID, void ** ppvStorage)
|
||||||
|
{
|
||||||
|
if (pszItem == NULL || ppvStorage == NULL)
|
||||||
|
return E_INVALIDARG;
|
||||||
|
*ppvStorage = NULL;
|
||||||
|
return MK_E_NOOBJECT;
|
||||||
|
}
|
||||||
|
HRESULT STDMETHODCALLTYPE IsRunning(LPOLESTR pszItem)
|
||||||
|
{
|
||||||
|
if (pszItem == NULL)
|
||||||
|
return E_INVALIDARG;
|
||||||
|
return MK_E_NOOBJECT;
|
||||||
|
}
|
||||||
|
//***********************IOleControlSite*****************************
|
||||||
|
HRESULT STDMETHODCALLTYPE OnControlInfoChanged()
|
||||||
|
{return S_OK;}
|
||||||
|
HRESULT STDMETHODCALLTYPE LockInPlaceActive(BOOL fLock)
|
||||||
|
{
|
||||||
|
m_bInPlaceLocked = (fLock) ? true : false;
|
||||||
|
return S_OK;
|
||||||
|
}
|
||||||
|
HRESULT STDMETHODCALLTYPE GetExtendedControl(IDispatch **)
|
||||||
|
{return E_NOTIMPL;}
|
||||||
|
HRESULT STDMETHODCALLTYPE TransformCoords(
|
||||||
|
POINTL * pPtlHimetric, POINTF * pPtfContainer, DWORD)
|
||||||
|
{
|
||||||
|
if (pPtlHimetric == NULL || pPtfContainer == NULL)
|
||||||
|
return E_INVALIDARG;
|
||||||
|
return E_NOTIMPL;
|
||||||
|
}
|
||||||
|
HRESULT STDMETHODCALLTYPE TranslateAccelerator(LPMSG, DWORD)
|
||||||
|
{return E_NOTIMPL;}
|
||||||
|
HRESULT STDMETHODCALLTYPE OnFocus(BOOL){return S_OK;}
|
||||||
|
HRESULT STDMETHODCALLTYPE ShowPropertyFrame(){return E_NOTIMPL;}
|
||||||
|
//**************************IOleCommandTarget***********************
|
||||||
|
HRESULT STDMETHODCALLTYPE QueryStatus(const GUID *, ULONG cCmds,
|
||||||
|
OLECMD prgCmds[], OLECMDTEXT *)
|
||||||
|
{
|
||||||
|
if (prgCmds == NULL) return E_INVALIDARG;
|
||||||
|
for (ULONG nCmd = 0; nCmd < cCmds; nCmd++)
|
||||||
|
{
|
||||||
|
// unsupported by default
|
||||||
|
prgCmds[nCmd].cmdf = 0;
|
||||||
|
}
|
||||||
|
return OLECMDERR_E_UNKNOWNGROUP;
|
||||||
|
}
|
||||||
|
|
||||||
|
HRESULT STDMETHODCALLTYPE Exec(const GUID *, DWORD,
|
||||||
|
DWORD, VARIANTARG *, VARIANTARG *)
|
||||||
|
{return OLECMDERR_E_NOTSUPPORTED;}
|
||||||
|
|
||||||
|
//**********************IAdviseSink************************************
|
||||||
|
void STDMETHODCALLTYPE OnDataChange(FORMATETC *, STGMEDIUM *) {}
|
||||||
|
void STDMETHODCALLTYPE OnViewChange(DWORD, LONG) {}
|
||||||
|
void STDMETHODCALLTYPE OnRename(IMoniker *){}
|
||||||
|
void STDMETHODCALLTYPE OnSave(){}
|
||||||
|
void STDMETHODCALLTYPE OnClose(){}
|
||||||
|
|
||||||
|
//**********************IOleDocumentSite***************************
|
||||||
|
HRESULT STDMETHODCALLTYPE ActivateMe(
|
||||||
|
IOleDocumentView __RPC_FAR *pViewToActivate)
|
||||||
|
{
|
||||||
|
wxAutoIOleInPlaceSite inPlaceSite(
|
||||||
|
IID_IOleInPlaceSite, (IDispatch *) this);
|
||||||
|
if (!inPlaceSite.Ok())
|
||||||
|
return E_FAIL;
|
||||||
|
|
||||||
|
if (pViewToActivate)
|
||||||
|
{
|
||||||
|
m_window->m_docView = pViewToActivate;
|
||||||
|
m_window->m_docView->SetInPlaceSite(inPlaceSite);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
wxAutoIOleDocument oleDoc(
|
||||||
|
IID_IOleDocument, m_window->m_oleObject);
|
||||||
|
if (! oleDoc.Ok())
|
||||||
|
return E_FAIL;
|
||||||
|
|
||||||
|
HRESULT hr = oleDoc->CreateView(inPlaceSite, NULL,
|
||||||
|
0, m_window->m_docView.GetRef());
|
||||||
|
if (hr != S_OK)
|
||||||
|
return E_FAIL;
|
||||||
|
|
||||||
|
m_window->m_docView->SetInPlaceSite(inPlaceSite);
|
||||||
|
};
|
||||||
|
|
||||||
|
m_window->m_docView->UIActivate(TRUE);
|
||||||
|
return S_OK;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
protected:
|
||||||
|
wxActiveXContainer * m_window;
|
||||||
|
|
||||||
|
HDC m_hDCBuffer;
|
||||||
|
HWND m_hWndParent;
|
||||||
|
|
||||||
|
bool m_bSupportsWindowlessActivation;
|
||||||
|
bool m_bInPlaceLocked;
|
||||||
|
bool m_bInPlaceActive;
|
||||||
|
bool m_bUIActive;
|
||||||
|
bool m_bWindowless;
|
||||||
|
|
||||||
|
LCID m_nAmbientLocale;
|
||||||
|
COLORREF m_clrAmbientForeColor;
|
||||||
|
COLORREF m_clrAmbientBackColor;
|
||||||
|
bool m_bAmbientShowHatching;
|
||||||
|
bool m_bAmbientShowGrabHandles;
|
||||||
|
bool m_bAmbientAppearance;
|
||||||
|
};
|
||||||
|
|
||||||
|
DEFINE_OLE_TABLE(FrameSite)
|
||||||
|
OLE_INTERFACE(IID_IUnknown, IOleClientSite)
|
||||||
|
OLE_IINTERFACE(IOleClientSite)
|
||||||
|
OLE_INTERFACE(IID_IOleWindow, IOleInPlaceSite)
|
||||||
|
OLE_IINTERFACE(IOleInPlaceSite)
|
||||||
|
OLE_IINTERFACE(IOleInPlaceSiteEx)
|
||||||
|
OLE_IINTERFACE(IOleInPlaceUIWindow)
|
||||||
|
OLE_IINTERFACE(IOleInPlaceFrame)
|
||||||
|
OLE_IINTERFACE(IParseDisplayName)
|
||||||
|
OLE_IINTERFACE(IOleContainer)
|
||||||
|
OLE_IINTERFACE(IOleItemContainer)
|
||||||
|
OLE_IINTERFACE(IDispatch)
|
||||||
|
OLE_IINTERFACE(IOleCommandTarget)
|
||||||
|
OLE_IINTERFACE(IOleDocumentSite)
|
||||||
|
OLE_IINTERFACE(IAdviseSink)
|
||||||
|
OLE_IINTERFACE(IOleControlSite)
|
||||||
|
END_OLE_TABLE;
|
||||||
|
|
||||||
|
|
||||||
|
wxActiveXContainer::wxActiveXContainer(wxWindow * parent, REFIID iid, IUnknown* pUnk)
|
||||||
|
: m_realparent(parent)
|
||||||
|
{
|
||||||
|
m_bAmbientUserMode = true;
|
||||||
|
m_docAdviseCookie = 0;
|
||||||
|
CreateActiveX(iid, pUnk);
|
||||||
|
}
|
||||||
|
|
||||||
|
wxActiveXContainer::~wxActiveXContainer()
|
||||||
|
{
|
||||||
|
// disconnect connection points
|
||||||
|
if (m_oleInPlaceObject.Ok())
|
||||||
|
{
|
||||||
|
m_oleInPlaceObject->InPlaceDeactivate();
|
||||||
|
m_oleInPlaceObject->UIDeactivate();
|
||||||
|
}
|
||||||
|
|
||||||
|
if (m_oleObject.Ok())
|
||||||
|
{
|
||||||
|
if (m_docAdviseCookie != 0)
|
||||||
|
m_oleObject->Unadvise(m_docAdviseCookie);
|
||||||
|
|
||||||
|
m_oleObject->DoVerb(
|
||||||
|
OLEIVERB_HIDE, NULL, m_clientSite, 0, (HWND) GetHWND(), NULL);
|
||||||
|
m_oleObject->Close(OLECLOSE_NOSAVE);
|
||||||
|
m_oleObject->SetClientSite(NULL);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void wxActiveXContainer::CreateActiveX(REFIID iid, IUnknown* pUnk)
|
||||||
|
{
|
||||||
|
HRESULT hret;
|
||||||
|
hret = m_ActiveX.QueryInterface(iid, pUnk);
|
||||||
|
wxASSERT(SUCCEEDED(hret));
|
||||||
|
|
||||||
|
// FrameSite
|
||||||
|
FrameSite *frame = new FrameSite(m_realparent, this);
|
||||||
|
// oleClientSite
|
||||||
|
hret = m_clientSite.QueryInterface(
|
||||||
|
IID_IOleClientSite, (IDispatch *) frame);
|
||||||
|
wxASSERT(SUCCEEDED(hret));
|
||||||
|
// adviseSink
|
||||||
|
wxAutoIAdviseSink adviseSink(IID_IAdviseSink, (IDispatch *) frame);
|
||||||
|
wxASSERT(adviseSink.Ok());
|
||||||
|
|
||||||
|
// Get Dispatch interface
|
||||||
|
hret = m_Dispatch.QueryInterface(IID_IDispatch, m_ActiveX);
|
||||||
|
|
||||||
|
// Get IOleObject interface
|
||||||
|
hret = m_oleObject.QueryInterface(IID_IOleObject, m_ActiveX);
|
||||||
|
wxASSERT(SUCCEEDED(hret));
|
||||||
|
|
||||||
|
// get IViewObject Interface
|
||||||
|
hret = m_viewObject.QueryInterface(IID_IViewObject, m_ActiveX);
|
||||||
|
wxASSERT(SUCCEEDED(hret));
|
||||||
|
|
||||||
|
// document advise
|
||||||
|
m_docAdviseCookie = 0;
|
||||||
|
hret = m_oleObject->Advise(adviseSink, &m_docAdviseCookie);
|
||||||
|
m_oleObject->SetHostNames(L"wxActiveXContainer", NULL);
|
||||||
|
OleSetContainedObject(m_oleObject, TRUE);
|
||||||
|
OleRun(m_oleObject);
|
||||||
|
|
||||||
|
|
||||||
|
// Get IOleInPlaceObject interface
|
||||||
|
hret = m_oleInPlaceObject.QueryInterface(
|
||||||
|
IID_IOleInPlaceObject, m_ActiveX);
|
||||||
|
wxASSERT(SUCCEEDED(hret));
|
||||||
|
|
||||||
|
// status
|
||||||
|
DWORD dwMiscStatus;
|
||||||
|
m_oleObject->GetMiscStatus(DVASPECT_CONTENT, &dwMiscStatus);
|
||||||
|
wxASSERT(SUCCEEDED(hret));
|
||||||
|
|
||||||
|
// set client site first ?
|
||||||
|
if (dwMiscStatus & OLEMISC_SETCLIENTSITEFIRST)
|
||||||
|
m_oleObject->SetClientSite(m_clientSite);
|
||||||
|
|
||||||
|
|
||||||
|
// stream init
|
||||||
|
wxAutoIPersistStreamInit
|
||||||
|
pPersistStreamInit(IID_IPersistStreamInit, m_oleObject);
|
||||||
|
|
||||||
|
if (pPersistStreamInit.Ok())
|
||||||
|
{
|
||||||
|
hret = pPersistStreamInit->InitNew();
|
||||||
|
}
|
||||||
|
|
||||||
|
if (! (dwMiscStatus & OLEMISC_SETCLIENTSITEFIRST))
|
||||||
|
m_oleObject->SetClientSite(m_clientSite);
|
||||||
|
|
||||||
|
|
||||||
|
RECT posRect;
|
||||||
|
::GetClientRect((HWND)m_realparent->GetHWND(), &posRect);
|
||||||
|
|
||||||
|
m_oleObjectHWND = 0;
|
||||||
|
|
||||||
|
if (m_oleInPlaceObject.Ok())
|
||||||
|
{
|
||||||
|
hret = m_oleInPlaceObject->GetWindow(&m_oleObjectHWND);
|
||||||
|
if (SUCCEEDED(hret))
|
||||||
|
::SetActiveWindow(m_oleObjectHWND);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
if (! (dwMiscStatus & OLEMISC_INVISIBLEATRUNTIME))
|
||||||
|
{
|
||||||
|
if (posRect.right > 0 && posRect.bottom > 0 &&
|
||||||
|
m_oleInPlaceObject.Ok())
|
||||||
|
m_oleInPlaceObject->SetObjectRects(&posRect, &posRect);
|
||||||
|
|
||||||
|
hret = m_oleObject->DoVerb(OLEIVERB_INPLACEACTIVATE, NULL,
|
||||||
|
m_clientSite, 0, (HWND)m_realparent->GetHWND(), &posRect);
|
||||||
|
hret = m_oleObject->DoVerb(OLEIVERB_SHOW, 0, m_clientSite, 0,
|
||||||
|
(HWND)m_realparent->GetHWND(), &posRect);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (! m_oleObjectHWND && m_oleInPlaceObject.Ok())
|
||||||
|
{
|
||||||
|
hret = m_oleInPlaceObject->GetWindow(&m_oleObjectHWND);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (m_oleObjectHWND)
|
||||||
|
{
|
||||||
|
::SetActiveWindow(m_oleObjectHWND);
|
||||||
|
::ShowWindow(m_oleObjectHWND, SW_SHOW);
|
||||||
|
|
||||||
|
this->AssociateHandle(m_oleObjectHWND);
|
||||||
|
this->Reparent(m_realparent);
|
||||||
|
|
||||||
|
wxWindow* pWnd = m_realparent;
|
||||||
|
int id = m_realparent->GetId();
|
||||||
|
|
||||||
|
pWnd->Connect(id, wxEVT_SIZE,
|
||||||
|
wxSizeEventHandler(wxActiveXContainer::OnSize), 0, this);
|
||||||
|
pWnd->Connect(id, wxEVT_SET_FOCUS,
|
||||||
|
wxFocusEventHandler(wxActiveXContainer::OnSetFocus), 0, this);
|
||||||
|
pWnd->Connect(id, wxEVT_KILL_FOCUS,
|
||||||
|
wxFocusEventHandler(wxActiveXContainer::OnKillFocus), 0, this);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#define HIMETRIC_PER_INCH 2540
|
||||||
|
#define MAP_PIX_TO_LOGHIM(x,ppli) MulDiv(HIMETRIC_PER_INCH, (x), (ppli))
|
||||||
|
|
||||||
|
static void PixelsToHimetric(SIZEL &sz)
|
||||||
|
{
|
||||||
|
static int logX = 0;
|
||||||
|
static int logY = 0;
|
||||||
|
|
||||||
|
if (logY == 0)
|
||||||
|
{
|
||||||
|
// initaliase
|
||||||
|
HDC dc = GetDC(NULL);
|
||||||
|
logX = GetDeviceCaps(dc, LOGPIXELSX);
|
||||||
|
logY = GetDeviceCaps(dc, LOGPIXELSY);
|
||||||
|
ReleaseDC(NULL, dc);
|
||||||
|
};
|
||||||
|
|
||||||
|
#define HIMETRIC_INCH 2540
|
||||||
|
#define CONVERT(x, logpixels) MulDiv(HIMETRIC_INCH, (x), (logpixels))
|
||||||
|
|
||||||
|
sz.cx = CONVERT(sz.cx, logX);
|
||||||
|
sz.cy = CONVERT(sz.cy, logY);
|
||||||
|
|
||||||
|
#undef CONVERT
|
||||||
|
#undef HIMETRIC_INCH
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void wxActiveXContainer::OnSize(wxSizeEvent& event)
|
||||||
|
{
|
||||||
|
int w, h;
|
||||||
|
GetParent()->GetClientSize(&w, &h);
|
||||||
|
|
||||||
|
RECT posRect;
|
||||||
|
posRect.left = 0;
|
||||||
|
posRect.top = 0;
|
||||||
|
posRect.right = w;
|
||||||
|
posRect.bottom = h;
|
||||||
|
|
||||||
|
if (w <= 0 && h <= 0)
|
||||||
|
return;
|
||||||
|
|
||||||
|
// extents are in HIMETRIC units
|
||||||
|
if (m_oleObject.Ok())
|
||||||
|
{
|
||||||
|
SIZEL sz = {w, h};
|
||||||
|
PixelsToHimetric(sz);
|
||||||
|
|
||||||
|
SIZEL sz2;
|
||||||
|
|
||||||
|
m_oleObject->GetExtent(DVASPECT_CONTENT, &sz2);
|
||||||
|
if (sz2.cx != sz.cx || sz.cy != sz2.cy)
|
||||||
|
m_oleObject->SetExtent(DVASPECT_CONTENT, &sz);
|
||||||
|
};
|
||||||
|
|
||||||
|
if (m_oleInPlaceObject.Ok())
|
||||||
|
m_oleInPlaceObject->SetObjectRects(&posRect, &posRect);
|
||||||
|
|
||||||
|
event.Skip();
|
||||||
|
}
|
||||||
|
|
||||||
|
void wxActiveXContainer::OnPaint(wxPaintEvent& WXUNUSED(event))
|
||||||
|
{
|
||||||
|
wxPaintDC dc(this);
|
||||||
|
// Draw only when control is windowless or deactivated
|
||||||
|
if (m_viewObject)
|
||||||
|
{
|
||||||
|
dc.BeginDrawing();
|
||||||
|
int w, h;
|
||||||
|
GetParent()->GetSize(&w, &h);
|
||||||
|
RECT posRect;
|
||||||
|
posRect.left = 0;
|
||||||
|
posRect.top = 0;
|
||||||
|
posRect.right = w;
|
||||||
|
posRect.bottom = h;
|
||||||
|
|
||||||
|
::RedrawWindow(m_oleObjectHWND, NULL, NULL, RDW_INTERNALPAINT);
|
||||||
|
RECTL *prcBounds = (RECTL *) &posRect;
|
||||||
|
m_viewObject->Draw(DVASPECT_CONTENT, -1, NULL, NULL, NULL,
|
||||||
|
(HDC)dc.GetHDC(), prcBounds, NULL, NULL, 0);
|
||||||
|
|
||||||
|
dc.EndDrawing();
|
||||||
|
}
|
||||||
|
|
||||||
|
// We've got this one I think
|
||||||
|
// event.Skip();
|
||||||
|
}
|
||||||
|
|
||||||
|
void wxActiveXContainer::OnSetFocus(wxFocusEvent& event)
|
||||||
|
{
|
||||||
|
if (m_oleInPlaceActiveObject.Ok())
|
||||||
|
m_oleInPlaceActiveObject->OnFrameWindowActivate(TRUE);
|
||||||
|
|
||||||
|
event.Skip();
|
||||||
|
}
|
||||||
|
|
||||||
|
void wxActiveXContainer::OnKillFocus(wxFocusEvent& event)
|
||||||
|
{
|
||||||
|
if (m_oleInPlaceActiveObject.Ok())
|
||||||
|
m_oleInPlaceActiveObject->OnFrameWindowActivate(FALSE);
|
||||||
|
|
||||||
|
event.Skip();
|
||||||
|
}
|
@@ -1435,6 +1435,10 @@ SOURCE=.\msw\ole\access.cpp
|
|||||||
# End Source File
|
# End Source File
|
||||||
# Begin Source File
|
# Begin Source File
|
||||||
|
|
||||||
|
SOURCE=.\msw\ole\activex.cpp
|
||||||
|
# End Source File
|
||||||
|
# Begin Source File
|
||||||
|
|
||||||
SOURCE=.\msw\ole\automtn.cpp
|
SOURCE=.\msw\ole\automtn.cpp
|
||||||
# End Source File
|
# End Source File
|
||||||
# Begin Source File
|
# Begin Source File
|
||||||
@@ -3491,6 +3495,10 @@ SOURCE=..\include\wx\msw\ole\access.h
|
|||||||
# End Source File
|
# End Source File
|
||||||
# Begin Source File
|
# Begin Source File
|
||||||
|
|
||||||
|
SOURCE=..\include\wx\msw\ole\activex.h
|
||||||
|
# End Source File
|
||||||
|
# Begin Source File
|
||||||
|
|
||||||
SOURCE=..\include\wx\msw\ole\automtn.h
|
SOURCE=..\include\wx\msw\ole\automtn.h
|
||||||
# End Source File
|
# End Source File
|
||||||
# Begin Source File
|
# Begin Source File
|
||||||
|
Reference in New Issue
Block a user