From 0d5eda9ccdc4c24ac09f58bd0cb6a0709e9ead72 Mon Sep 17 00:00:00 2001 From: Francesco Montorsi Date: Mon, 6 Oct 2008 09:37:27 +0000 Subject: [PATCH] added the automatic screenshot generator utility by Utensil Candel (with some revisions and reorganizations) git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@56106 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- utils/screenshotgen/Makefile.in | 7 + utils/screenshotgen/README.txt | 19 + utils/screenshotgen/src/Makefile.in | 267 ++ utils/screenshotgen/src/autocapture.cpp | 180 + utils/screenshotgen/src/autocapture.h | 228 ++ utils/screenshotgen/src/bitmaps/bell.png | Bin 0 -> 224 bytes utils/screenshotgen/src/bitmaps/dropbuth.png | Bin 0 -> 371 bytes utils/screenshotgen/src/bitmaps/dropbutn.png | Bin 0 -> 237 bytes utils/screenshotgen/src/bitmaps/dropbutp.png | Bin 0 -> 366 bytes utils/screenshotgen/src/bitmaps/sound.png | Bin 0 -> 227 bytes utils/screenshotgen/src/bitmaps/throbber.gif | Bin 0 -> 2704 bytes .../screenshotgen/src/bitmaps/wxwin32x32.png | Bin 0 -> 1267 bytes utils/screenshotgen/src/ctrlmaskout.cpp | 440 +++ utils/screenshotgen/src/ctrlmaskout.h | 58 + utils/screenshotgen/src/customcombo.cpp | 191 ++ utils/screenshotgen/src/customcombo.h | 248 ++ utils/screenshotgen/src/guidesign.fbp | 2960 +++++++++++++++++ utils/screenshotgen/src/guiframe.cpp | 452 +++ utils/screenshotgen/src/guiframe.h | 161 + utils/screenshotgen/src/makefile.bcc | 285 ++ utils/screenshotgen/src/makefile.gcc | 285 ++ utils/screenshotgen/src/makefile.vc | 361 ++ utils/screenshotgen/src/makefile.wat | 315 ++ utils/screenshotgen/src/richtext.xml | 100 + utils/screenshotgen/src/screenshot_app.cpp | 45 + utils/screenshotgen/src/screenshot_app.h | 20 + utils/screenshotgen/src/screenshot_main.cpp | 361 ++ utils/screenshotgen/src/screenshot_main.h | 61 + utils/screenshotgen/src/screenshotgen.bkl | 59 + utils/screenshotgen/src/screenshotgen.dsp | 312 ++ utils/screenshotgen/src/screenshotgen.dsw | 121 + utils/screenshotgen/src/screenshotgen.rc | 1 + utils/screenshotgen/src/screenshotgen_vc7.sln | 37 + .../src/screenshotgen_vc7.vcproj | 583 ++++ utils/screenshotgen/src/screenshotgen_vc8.sln | 38 + .../src/screenshotgen_vc8.vcproj | 860 +++++ 36 files changed, 9055 insertions(+) create mode 100644 utils/screenshotgen/Makefile.in create mode 100644 utils/screenshotgen/README.txt create mode 100644 utils/screenshotgen/src/Makefile.in create mode 100644 utils/screenshotgen/src/autocapture.cpp create mode 100644 utils/screenshotgen/src/autocapture.h create mode 100644 utils/screenshotgen/src/bitmaps/bell.png create mode 100644 utils/screenshotgen/src/bitmaps/dropbuth.png create mode 100644 utils/screenshotgen/src/bitmaps/dropbutn.png create mode 100644 utils/screenshotgen/src/bitmaps/dropbutp.png create mode 100644 utils/screenshotgen/src/bitmaps/sound.png create mode 100644 utils/screenshotgen/src/bitmaps/throbber.gif create mode 100644 utils/screenshotgen/src/bitmaps/wxwin32x32.png create mode 100644 utils/screenshotgen/src/ctrlmaskout.cpp create mode 100644 utils/screenshotgen/src/ctrlmaskout.h create mode 100644 utils/screenshotgen/src/customcombo.cpp create mode 100644 utils/screenshotgen/src/customcombo.h create mode 100644 utils/screenshotgen/src/guidesign.fbp create mode 100644 utils/screenshotgen/src/guiframe.cpp create mode 100644 utils/screenshotgen/src/guiframe.h create mode 100644 utils/screenshotgen/src/makefile.bcc create mode 100644 utils/screenshotgen/src/makefile.gcc create mode 100644 utils/screenshotgen/src/makefile.vc create mode 100644 utils/screenshotgen/src/makefile.wat create mode 100644 utils/screenshotgen/src/richtext.xml create mode 100644 utils/screenshotgen/src/screenshot_app.cpp create mode 100644 utils/screenshotgen/src/screenshot_app.h create mode 100644 utils/screenshotgen/src/screenshot_main.cpp create mode 100644 utils/screenshotgen/src/screenshot_main.h create mode 100644 utils/screenshotgen/src/screenshotgen.bkl create mode 100644 utils/screenshotgen/src/screenshotgen.dsp create mode 100644 utils/screenshotgen/src/screenshotgen.dsw create mode 100644 utils/screenshotgen/src/screenshotgen.rc create mode 100644 utils/screenshotgen/src/screenshotgen_vc7.sln create mode 100644 utils/screenshotgen/src/screenshotgen_vc7.vcproj create mode 100644 utils/screenshotgen/src/screenshotgen_vc8.sln create mode 100644 utils/screenshotgen/src/screenshotgen_vc8.vcproj diff --git a/utils/screenshotgen/Makefile.in b/utils/screenshotgen/Makefile.in new file mode 100644 index 0000000000..6d36395442 --- /dev/null +++ b/utils/screenshotgen/Makefile.in @@ -0,0 +1,7 @@ + +all: + cd src; $(MAKE) + +clean: + cd src; $(MAKE) clean + diff --git a/utils/screenshotgen/README.txt b/utils/screenshotgen/README.txt new file mode 100644 index 0000000000..8f278eeb28 --- /dev/null +++ b/utils/screenshotgen/README.txt @@ -0,0 +1,19 @@ + + wxWidgets Controls Screenshot Generator + ======================================= + + Author: Utensil Candel (Email: UtensilCandel at GMail dot com) + Licence: wxWidgets Licence + + Thanks: Auria, frm, tierra, Jorg (these are the names they use on the wxWidgets forum) + + This utility is developed to generate automatically screenshots of the wxWidgets + controls for use in wxWidgets documentation. + + The main part of the GUI (guiframe.h/guiframe.cpp) is generated with wxFormBuilder + (http://wxformbuilder.org/), a powerful cross-platform open-source RAD tool. + To add a control that wxFormBuilder doesn't support directly, "custom controls" + feature of wxFormBuilder has been used. + + Please DO NOT modify guiframe.h/guiframe.cpp; modify the code in the wxFormBuilder + project file, instead. diff --git a/utils/screenshotgen/src/Makefile.in b/utils/screenshotgen/src/Makefile.in new file mode 100644 index 0000000000..197597bec0 --- /dev/null +++ b/utils/screenshotgen/src/Makefile.in @@ -0,0 +1,267 @@ +# ========================================================================= +# This makefile was generated by +# Bakefile 0.2.4 (http://www.bakefile.org) +# Do not modify, all changes will be overwritten! +# ========================================================================= + + +@MAKE_SET@ + +prefix = @prefix@ +exec_prefix = @exec_prefix@ +datarootdir = @datarootdir@ +INSTALL = @INSTALL@ +EXEEXT = @EXEEXT@ +WINDRES = @WINDRES@ +SETFILE = @SETFILE@ +STRIP = @STRIP@ +NM = @NM@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_DIR = @INSTALL_DIR@ +BK_DEPS = @BK_DEPS@ +srcdir = @srcdir@ +top_srcdir = @top_srcdir@ +bindir = @bindir@ +LIBS = @LIBS@ +LDFLAGS_GUI = @LDFLAGS_GUI@ +CXX = @CXX@ +CXXFLAGS = @CXXFLAGS@ +CPPFLAGS = @CPPFLAGS@ +LDFLAGS = @LDFLAGS@ +WX_LIB_FLAVOUR = @WX_LIB_FLAVOUR@ +TOOLKIT = @TOOLKIT@ +TOOLKIT_LOWERCASE = @TOOLKIT_LOWERCASE@ +TOOLKIT_VERSION = @TOOLKIT_VERSION@ +TOOLCHAIN_FULLNAME = @TOOLCHAIN_FULLNAME@ +EXTRALIBS = @EXTRALIBS@ +EXTRALIBS_XML = @EXTRALIBS_XML@ +EXTRALIBS_HTML = @EXTRALIBS_HTML@ +EXTRALIBS_GUI = @EXTRALIBS_GUI@ +EXTRALIBS_SDL = @EXTRALIBS_SDL@ +CXXWARNINGS = @CXXWARNINGS@ +HOST_SUFFIX = @HOST_SUFFIX@ +SAMPLES_RPATH_FLAG = @SAMPLES_RPATH_FLAG@ +SAMPLES_RPATH_POSTLINK = @SAMPLES_RPATH_POSTLINK@ +wx_top_builddir = @wx_top_builddir@ + +### Variables: ### + +DESTDIR = +WX_RELEASE = 2.9 +WX_VERSION = $(WX_RELEASE).0 +LIBDIRNAME = $(wx_top_builddir)/lib +SCREENSHOTGEN_CXXFLAGS = -D__WX$(TOOLKIT)__ $(__WXUNIV_DEFINE_p) \ + $(__EXCEPTIONS_DEFINE_p) $(__RTTI_DEFINE_p) $(__THREAD_DEFINE_p) \ + -I$(srcdir) $(__DLLFLAG_p) -I$(srcdir)/../../../samples $(CXXWARNINGS) \ + $(CPPFLAGS) $(CXXFLAGS) +SCREENSHOTGEN_OBJECTS = \ + $(__screenshotgen_os2_lib_res) \ + screenshotgen_screenshot_app.o \ + screenshotgen_screenshot_main.o \ + screenshotgen_guiframe.o \ + screenshotgen_ctrlmaskout.o \ + screenshotgen_customcombo.o \ + screenshotgen_autocapture.o \ + $(__screenshotgen___win32rc) + +### Conditionally set variables: ### + +@COND_DEPS_TRACKING_0@CXXC = $(CXX) +@COND_DEPS_TRACKING_1@CXXC = $(BK_DEPS) $(CXX) +@COND_USE_PLUGINS_0@PLUGIN_ADV_EXTRALIBS = $(EXTRALIBS_SDL) +@COND_USE_GUI_0@PORTNAME = base +@COND_USE_GUI_1@PORTNAME = $(TOOLKIT_LOWERCASE)$(TOOLKIT_VERSION) +@COND_TOOLKIT_MAC@WXBASEPORT = _carbon +@COND_BUILD_debug_DEBUG_FLAG_default@WXDEBUGFLAG = d +@COND_DEBUG_FLAG_1@WXDEBUGFLAG = d +@COND_UNICODE_1@WXUNICODEFLAG = u +@COND_WXUNIV_1@WXUNIVNAME = univ +@COND_MONOLITHIC_0@EXTRALIBS_FOR_BASE = $(EXTRALIBS) +@COND_MONOLITHIC_1@EXTRALIBS_FOR_BASE = $(EXTRALIBS) $(EXTRALIBS_GUI) +@COND_MONOLITHIC_0@EXTRALIBS_FOR_GUI = $(EXTRALIBS_GUI) +@COND_MONOLITHIC_1@EXTRALIBS_FOR_GUI = +@COND_PLATFORM_MAC_0@__screenshotgen___mac_setfilecmd = @true +@COND_PLATFORM_MAC_1@__screenshotgen___mac_setfilecmd \ +@COND_PLATFORM_MAC_1@ = $(SETFILE) -t APPL screenshotgen$(EXEEXT) +@COND_WXUNIV_1@__WXUNIV_DEFINE_p = -D__WXUNIVERSAL__ +@COND_WXUNIV_1@__WXUNIV_DEFINE_p_2 = --define __WXUNIVERSAL__ +@COND_USE_EXCEPTIONS_0@__EXCEPTIONS_DEFINE_p = -DwxNO_EXCEPTIONS +@COND_USE_EXCEPTIONS_0@__EXCEPTIONS_DEFINE_p_2 = --define wxNO_EXCEPTIONS +@COND_USE_RTTI_0@__RTTI_DEFINE_p = -DwxNO_RTTI +@COND_USE_RTTI_0@__RTTI_DEFINE_p_2 = --define wxNO_RTTI +@COND_USE_THREADS_0@__THREAD_DEFINE_p = -DwxNO_THREADS +@COND_USE_THREADS_0@__THREAD_DEFINE_p_2 = --define wxNO_THREADS +@COND_SHARED_1@__DLLFLAG_p = -DWXUSINGDLL +@COND_SHARED_1@__DLLFLAG_p_2 = --define WXUSINGDLL +COND_PLATFORM_OS2_1___screenshotgen___os2_emxbindcmd = $(NM) \ + screenshotgen$(EXEEXT) | if grep -q pmwin.763 ; then emxbind -ep \ + screenshotgen$(EXEEXT) ; fi +@COND_PLATFORM_OS2_1@__screenshotgen___os2_emxbindcmd = $(COND_PLATFORM_OS2_1___screenshotgen___os2_emxbindcmd) +@COND_TOOLKIT_MSW@__RCDEFDIR_p_1 = --include-dir \ +@COND_TOOLKIT_MSW@ $(LIBDIRNAME)/wx/include/$(TOOLCHAIN_FULLNAME) +@COND_PLATFORM_OS2_1@__screenshotgen_os2_lib_res = \ +@COND_PLATFORM_OS2_1@ $(top_srcdir)/include/wx/os2/wx.res +@COND_PLATFORM_MACOSX_1@__screenshotgen_app_Contents_PkgInfo___depname \ +@COND_PLATFORM_MACOSX_1@ = screenshotgen.app/Contents/PkgInfo +@COND_PLATFORM_MACOSX_1@__screenshotgen_bundle___depname \ +@COND_PLATFORM_MACOSX_1@ = screenshotgen_bundle +@COND_TOOLKIT_MAC@____screenshotgen_BUNDLE_TGT_REF_DEP = \ +@COND_TOOLKIT_MAC@ $(__screenshotgen_app_Contents_PkgInfo___depname) +@COND_TOOLKIT_OSX_CARBON@____screenshotgen_BUNDLE_TGT_REF_DEP \ +@COND_TOOLKIT_OSX_CARBON@ = \ +@COND_TOOLKIT_OSX_CARBON@ $(__screenshotgen_app_Contents_PkgInfo___depname) +@COND_TOOLKIT_OSX_COCOA@____screenshotgen_BUNDLE_TGT_REF_DEP \ +@COND_TOOLKIT_OSX_COCOA@ = \ +@COND_TOOLKIT_OSX_COCOA@ $(__screenshotgen_app_Contents_PkgInfo___depname) +@COND_TOOLKIT_OSX_IPHONE@____screenshotgen_BUNDLE_TGT_REF_DEP \ +@COND_TOOLKIT_OSX_IPHONE@ = \ +@COND_TOOLKIT_OSX_IPHONE@ $(__screenshotgen_app_Contents_PkgInfo___depname) +@COND_TOOLKIT_COCOA@____screenshotgen_BUNDLE_TGT_REF_DEP \ +@COND_TOOLKIT_COCOA@ = $(__screenshotgen_app_Contents_PkgInfo___depname) +COND_MONOLITHIC_0___WXLIB_AUI_p = \ + -lwx_$(PORTNAME)$(WXUNIVNAME)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_aui-$(WX_RELEASE)$(HOST_SUFFIX) +@COND_MONOLITHIC_0@__WXLIB_AUI_p = $(COND_MONOLITHIC_0___WXLIB_AUI_p) +COND_MONOLITHIC_0___WXLIB_ADV_p = \ + -lwx_$(PORTNAME)$(WXUNIVNAME)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_adv-$(WX_RELEASE)$(HOST_SUFFIX) +@COND_MONOLITHIC_0@__WXLIB_ADV_p = $(COND_MONOLITHIC_0___WXLIB_ADV_p) +COND_MONOLITHIC_0___WXLIB_RICHTEXT_p = \ + -lwx_$(PORTNAME)$(WXUNIVNAME)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_richtext-$(WX_RELEASE)$(HOST_SUFFIX) +@COND_MONOLITHIC_0@__WXLIB_RICHTEXT_p = $(COND_MONOLITHIC_0___WXLIB_RICHTEXT_p) +COND_MONOLITHIC_0___WXLIB_HTML_p = \ + -lwx_$(PORTNAME)$(WXUNIVNAME)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_html-$(WX_RELEASE)$(HOST_SUFFIX) +@COND_MONOLITHIC_0@__WXLIB_HTML_p = $(COND_MONOLITHIC_0___WXLIB_HTML_p) +COND_MONOLITHIC_0___WXLIB_XML_p = \ + -lwx_base$(WXBASEPORT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_xml-$(WX_RELEASE)$(HOST_SUFFIX) +@COND_MONOLITHIC_0@__WXLIB_XML_p = $(COND_MONOLITHIC_0___WXLIB_XML_p) +COND_MONOLITHIC_0___WXLIB_CORE_p = \ + -lwx_$(PORTNAME)$(WXUNIVNAME)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_core-$(WX_RELEASE)$(HOST_SUFFIX) +@COND_MONOLITHIC_0@__WXLIB_CORE_p = $(COND_MONOLITHIC_0___WXLIB_CORE_p) +COND_MONOLITHIC_0___WXLIB_BASE_p = \ + -lwx_base$(WXBASEPORT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)-$(WX_RELEASE)$(HOST_SUFFIX) +@COND_MONOLITHIC_0@__WXLIB_BASE_p = $(COND_MONOLITHIC_0___WXLIB_BASE_p) +@COND_PLATFORM_WIN32_1@__screenshotgen___win32rc = \ +@COND_PLATFORM_WIN32_1@ screenshotgen_screenshotgen_rc.o +COND_MONOLITHIC_1___WXLIB_MONO_p = \ + -lwx_$(PORTNAME)$(WXUNIVNAME)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)-$(WX_RELEASE)$(HOST_SUFFIX) +@COND_MONOLITHIC_1@__WXLIB_MONO_p = $(COND_MONOLITHIC_1___WXLIB_MONO_p) +@COND_USE_GUI_1_wxUSE_LIBTIFF_builtin@__LIB_TIFF_p \ +@COND_USE_GUI_1_wxUSE_LIBTIFF_builtin@ = \ +@COND_USE_GUI_1_wxUSE_LIBTIFF_builtin@ -lwxtiff$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)-$(WX_RELEASE)$(HOST_SUFFIX) +@COND_USE_GUI_1_wxUSE_LIBJPEG_builtin@__LIB_JPEG_p \ +@COND_USE_GUI_1_wxUSE_LIBJPEG_builtin@ = \ +@COND_USE_GUI_1_wxUSE_LIBJPEG_builtin@ -lwxjpeg$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)-$(WX_RELEASE)$(HOST_SUFFIX) +@COND_USE_GUI_1_wxUSE_LIBPNG_builtin@__LIB_PNG_p \ +@COND_USE_GUI_1_wxUSE_LIBPNG_builtin@ = \ +@COND_USE_GUI_1_wxUSE_LIBPNG_builtin@ -lwxpng$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)-$(WX_RELEASE)$(HOST_SUFFIX) +@COND_wxUSE_ZLIB_builtin@__LIB_ZLIB_p = \ +@COND_wxUSE_ZLIB_builtin@ -lwxzlib$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)-$(WX_RELEASE)$(HOST_SUFFIX) +COND_wxUSE_REGEX_builtin___LIB_REGEX_p = \ + -lwxregex$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)-$(WX_RELEASE)$(HOST_SUFFIX) +@COND_wxUSE_REGEX_builtin@__LIB_REGEX_p = $(COND_wxUSE_REGEX_builtin___LIB_REGEX_p) +@COND_wxUSE_EXPAT_builtin@__LIB_EXPAT_p = \ +@COND_wxUSE_EXPAT_builtin@ -lwxexpat$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)-$(WX_RELEASE)$(HOST_SUFFIX) + +### Targets: ### + +all: screenshotgen$(EXEEXT) $(__screenshotgen_bundle___depname) data + +install: install_screenshotgen + +uninstall: uninstall_screenshotgen + +install-strip: install + $(STRIP) $(DESTDIR)$(bindir)/screenshotgen$(EXEEXT) + +clean: + rm -rf ./.deps ./.pch + rm -f ./*.o + rm -f screenshotgen$(EXEEXT) + rm -rf screenshotgen.app + +distclean: clean + rm -f config.cache config.log config.status bk-deps bk-make-pch shared-ld-sh Makefile + +screenshotgen$(EXEEXT): $(SCREENSHOTGEN_OBJECTS) $(__screenshotgen___win32rc) + $(CXX) -o $@ $(SCREENSHOTGEN_OBJECTS) -L$(LIBDIRNAME) $(LDFLAGS_GUI) $(SAMPLES_RPATH_FLAG) $(LDFLAGS) $(__WXLIB_AUI_p) $(__WXLIB_ADV_p) $(PLUGIN_ADV_EXTRALIBS) $(__WXLIB_RICHTEXT_p) $(__WXLIB_HTML_p) $(EXTRALIBS_HTML) $(__WXLIB_XML_p) $(EXTRALIBS_XML) $(__WXLIB_CORE_p) $(__WXLIB_BASE_p) $(__WXLIB_MONO_p) $(__LIB_TIFF_p) $(__LIB_JPEG_p) $(__LIB_PNG_p) $(EXTRALIBS_FOR_GUI) $(__LIB_ZLIB_p) $(__LIB_REGEX_p) $(__LIB_EXPAT_p) $(EXTRALIBS_FOR_BASE) $(LIBS) + + $(__screenshotgen___mac_setfilecmd) + $(__screenshotgen___os2_emxbindcmd) + $(SAMPLES_RPATH_POSTLINK) + +@COND_PLATFORM_MACOSX_1@screenshotgen.app/Contents/PkgInfo: screenshotgen$(EXEEXT) $(top_srcdir)/src/osx/carbon/Info.plist.in $(top_srcdir)/src/osx/carbon/wxmac.icns +@COND_PLATFORM_MACOSX_1@ mkdir -p screenshotgen.app/Contents +@COND_PLATFORM_MACOSX_1@ mkdir -p screenshotgen.app/Contents/MacOS +@COND_PLATFORM_MACOSX_1@ mkdir -p screenshotgen.app/Contents/Resources +@COND_PLATFORM_MACOSX_1@ +@COND_PLATFORM_MACOSX_1@ +@COND_PLATFORM_MACOSX_1@ sed -e "s/IDENTIFIER/`echo $(srcdir) | sed -e 's,\.\./,,g' | sed -e 's,/,.,g'`/" \ +@COND_PLATFORM_MACOSX_1@ -e "s/EXECUTABLE/screenshotgen/" \ +@COND_PLATFORM_MACOSX_1@ -e "s/VERSION/$(WX_VERSION)/" \ +@COND_PLATFORM_MACOSX_1@ $(top_srcdir)/src/osx/carbon/Info.plist.in >screenshotgen.app/Contents/Info.plist +@COND_PLATFORM_MACOSX_1@ +@COND_PLATFORM_MACOSX_1@ +@COND_PLATFORM_MACOSX_1@ echo -n "APPL????" >screenshotgen.app/Contents/PkgInfo +@COND_PLATFORM_MACOSX_1@ +@COND_PLATFORM_MACOSX_1@ +@COND_PLATFORM_MACOSX_1@ ln -f screenshotgen$(EXEEXT) screenshotgen.app/Contents/MacOS/screenshotgen +@COND_PLATFORM_MACOSX_1@ +@COND_PLATFORM_MACOSX_1@ +@COND_PLATFORM_MACOSX_1@ cp -f $(top_srcdir)/src/osx/carbon/wxmac.icns screenshotgen.app/Contents/Resources/wxmac.icns + +@COND_PLATFORM_MACOSX_1@screenshotgen_bundle: $(____screenshotgen_BUNDLE_TGT_REF_DEP) + +install_screenshotgen: screenshotgen$(EXEEXT) + $(INSTALL_DIR) $(DESTDIR)$(bindir) + $(INSTALL_PROGRAM) screenshotgen$(EXEEXT) $(DESTDIR)$(bindir) + +uninstall_screenshotgen: + rm -f $(DESTDIR)$(bindir)/screenshotgen$(EXEEXT) + +data: + @mkdir -p . + @for f in richtext.xml bitmaps/wxwin32x32.png bitmaps/bell.png bitmaps/info.png bitmaps/sound.png bitmaps/dropbuth.png bitmaps/dropbutn.png bitmaps/dropbutp.png bitmaps/throbber.gif; do \ + if test ! -f ./$$f -a ! -d ./$$f ; \ + then x=yep ; \ + else x=`find $(srcdir)/$$f -newer ./$$f -print` ; \ + fi; \ + case "$$x" in ?*) \ + cp -pRf $(srcdir)/$$f . ;; \ + esac; \ + done + +screenshotgen_screenshot_app.o: $(srcdir)/screenshot_app.cpp + $(CXXC) -c -o $@ $(SCREENSHOTGEN_CXXFLAGS) $(srcdir)/screenshot_app.cpp + +screenshotgen_screenshot_main.o: $(srcdir)/screenshot_main.cpp + $(CXXC) -c -o $@ $(SCREENSHOTGEN_CXXFLAGS) $(srcdir)/screenshot_main.cpp + +screenshotgen_guiframe.o: $(srcdir)/guiframe.cpp + $(CXXC) -c -o $@ $(SCREENSHOTGEN_CXXFLAGS) $(srcdir)/guiframe.cpp + +screenshotgen_ctrlmaskout.o: $(srcdir)/ctrlmaskout.cpp + $(CXXC) -c -o $@ $(SCREENSHOTGEN_CXXFLAGS) $(srcdir)/ctrlmaskout.cpp + +screenshotgen_customcombo.o: $(srcdir)/customcombo.cpp + $(CXXC) -c -o $@ $(SCREENSHOTGEN_CXXFLAGS) $(srcdir)/customcombo.cpp + +screenshotgen_autocapture.o: $(srcdir)/autocapture.cpp + $(CXXC) -c -o $@ $(SCREENSHOTGEN_CXXFLAGS) $(srcdir)/autocapture.cpp + +screenshotgen_screenshotgen_rc.o: $(srcdir)/screenshotgen.rc + $(WINDRES) -i$< -o$@ --define __WX$(TOOLKIT)__ $(__WXUNIV_DEFINE_p_2) $(__EXCEPTIONS_DEFINE_p_2) $(__RTTI_DEFINE_p_2) $(__THREAD_DEFINE_p_2) --include-dir $(srcdir) $(__DLLFLAG_p_2) --include-dir $(srcdir)/../../../samples $(__RCDEFDIR_p_1) --include-dir $(top_srcdir)/include + + +$(srcdir)/include/wx/stc/stc.h: \ +$(srcdir)/src/stc/scintilla/include/Scintilla.iface \ +$(srcdir)/src/stc/stc.cpp.in \ +$(srcdir)/src/stc/stc.h.in \ +$(srcdir)/src/stc/gen_iface.py + cd $(srcdir)/src/stc && ./gen_iface.py +monolib_stc.o monodll_stc.o stcdll_stc.o stclib_stc.o: \ +$(srcdir)/include/wx/stc/stc.h + +# Include dependency info, if present: +@IF_GNU_MAKE@-include ./.deps/*.d + +.PHONY: all install uninstall clean distclean screenshotgen_bundle \ + install_screenshotgen uninstall_screenshotgen data diff --git a/utils/screenshotgen/src/autocapture.cpp b/utils/screenshotgen/src/autocapture.cpp new file mode 100644 index 0000000000..0d729281cf --- /dev/null +++ b/utils/screenshotgen/src/autocapture.cpp @@ -0,0 +1,180 @@ +///////////////////////////////////////////////////////////////////////////// +// Name: autocapture.cpp +// Purpose: Implement wxCtrlMaskOut class +// Author: Utensil Candel (UtensilCandel@@gmail.com) +// RCS-ID: $Id$ +// Licence: wxWindows license +///////////////////////////////////////////////////////////////////////////// + +// For compilers that support precompilation, includes "wx/wx.h". +#include "wx/wxprec.h" + +#ifdef __BORLANDC__ + #pragma hdrstop +#endif + +// for all others, include the necessary headers +#ifndef WX_PRECOMP + #include "wx/wx.h" +#endif + +#include + +#include "autocapture.h" + + +wxBitmap Capture(int x, int y, int width, int height) +{ + //Somehow wxScreenDC.Blit() doesn't work under Mac for now. Here is a trick. + #ifdef __WXMAC__ + + //wxExecute(_T("screencapture -x ") + tempfile, wxEXEC_SYNC); + + system("screencapture -x /tmp/wx_screen_capture.png"); + + wxBitmap fullscreen; + + do + { + fullscreen = wxBitmap(_T("/tmp/wx_screen_capture.png"), wxBITMAP_TYPE_PNG); + } + while(!fullscreen.IsOk()); + + wxBitmap screenshot = fullscreen.GetSubBitmap(wxRect(x,y,width,height)); + + #else //Under other paltforms, take a real screenshot + + //Create a DC for the whole screen area + wxScreenDC dcScreen; + + //Create a Bitmap that will later on hold the screenshot image + //Note that the Bitmap must have a size big enough to hold the screenshot + //-1 means using the current default colour depth + wxBitmap screenshot(width, height, -1); + + //Create a memory DC that will be used for actually taking the screenshot + wxMemoryDC memDC; + //Tell the memory DC to use our Bitmap + //all drawing action on the memory DC will go to the Bitmap now + memDC.SelectObject(screenshot); + //Blit (in this case copy) the actual screen on the memory DC + //and thus the Bitmap + memDC.Blit( 0, //Copy to this X coordinate + 0, //Copy to this Y coordinate + width, //Copy this width + height, //Copy this height + &dcScreen, //From where do we copy? + x, //What's the X offset in the original DC? + y //What's the Y offset in the original DC? + ); + //Select the Bitmap out of the memory DC by selecting a new + //uninitialized Bitmap + memDC.SelectObject(wxNullBitmap); + #endif //#ifdef __WXMAC__ + +// wxMessageBox(_(""),_("")); + + return screenshot; + +} + +wxBitmap Capture(wxRect rect) +{ + wxPoint origin = rect.GetPosition(); + return Capture(origin.x, origin.y, rect.GetWidth(), rect.GetHeight()); +} + +void AutoCaptureMechanism::Save(wxBitmap screenshot, wxString fileName) +{ + //Check if m_defaultDir already existed + if(!wxDirExists(m_dir)) + wxMkdir(m_dir); + + wxString fullFileName = m_dir + wxFileName::GetPathSeparator() + fileName; + + //to prvent overwritten + while(wxFileName::FileExists(fullFileName + _T(".png"))) fullFileName += _T("_"); + + //Our Bitmap now has the screenshot, so let's save it as an png + //The filename itself is without extension. + screenshot.SaveFile(fullFileName + _T(".png"), wxBITMAP_TYPE_PNG); +} + +wxRect AutoCaptureMechanism::GetRect(wxWindow* ctrl, int flag) +{ + if(flag & AJ_RegionAdjust) + { + wxWindow * parent = ctrl->GetParent(); + wxSizer * sizer = parent->GetSizer(); + + if(sizer) + { + sizer->Detach(ctrl); + + /* + +---------+-----------+---------+ + | 0 | label | 1 | + +---------+-----------+---------+ + | label | ctrl | label | + +---------+-----------+---------+ + | 2 | label | 3 | + +---------+-----------+---------+ + */ + + m_grid = new wxFlexGridSizer(3, 3, m_border, m_border); + + wxStaticText* l[4]; + + for(int i = 0; i < 4; ++i) + l[i] = new wxStaticText(parent, wxID_ANY, wxT(" ")); + + m_grid->Add(l[0]); + m_grid->Add(new wxStaticText(parent, wxID_ANY, wxT(" "))); + m_grid->Add(l[1]); + m_grid->Add(new wxStaticText(parent, wxID_ANY, wxT(" "))); + m_grid->Add(ctrl); + m_grid->Add(new wxStaticText(parent, wxID_ANY, wxT(" "))); + m_grid->Add(l[2]); + m_grid->Add(new wxStaticText(parent, wxID_ANY, wxT(" "))); + m_grid->Add(l[3]); + + sizer->Add(m_grid); + parent->SetSizer(sizer); + parent->Layout(); + + parent->Refresh(); + wxYield(); + + return wxRect(l[0]->GetScreenRect().GetBottomRight(), + l[3]->GetScreenRect().GetTopLeft()); + + } + else //Actually it won't get here working with the current guiframe.h/guiframe.cpp + { + return ctrl->GetScreenRect().Inflate(m_border); + } + } + else + { + return ctrl->GetScreenRect().Inflate(m_border); + } +} + +void AutoCaptureMechanism::PutBack(wxWindow * ctrl) +{ + m_grid->Detach(ctrl); + + wxSizerItemList children = m_grid->GetChildren(); + + for(wxSizerItemList::iterator it = children.begin(); it != children.end(); ++it) + { + wxSizerItem* item = *it; + if(item->IsWindow()) delete (*it)->GetWindow(); + } + + wxSizer * sizer = ctrl->GetParent()->GetSizer(); + sizer->Detach(m_grid); + delete m_grid; + sizer->Add(ctrl); +} + diff --git a/utils/screenshotgen/src/autocapture.h b/utils/screenshotgen/src/autocapture.h new file mode 100644 index 0000000000..6893cc498d --- /dev/null +++ b/utils/screenshotgen/src/autocapture.h @@ -0,0 +1,228 @@ +///////////////////////////////////////////////////////////////////////////// +// Name: autocapture.h +// Purpose: Defines the AutoCaptureMechanism class +// Author: Utensil Candel (UtensilCandel@@gmail.com) +// RCS-ID: $Id$ +// Licence: wxWindows license +///////////////////////////////////////////////////////////////////////////// + +#ifndef AUTOCAP_H +#define AUTOCAP_H + +#include +#include +#include +#include + +// Global helper functions. to take screenshot for a rect region +wxBitmap Capture(wxRect rect); +wxBitmap Capture(int x, int y, int width, int height); + +enum AdjustFlags +{ + AJ_Normal = 0, + AJ_RegionAdjust = 1 << 0, + AJ_Dropdown = 1 << 1, + AJ_TurnPage = 1 << 2, + AJ_Union = 1 << 3, + AJ_UnionEnd = 1 << 4 +}; + +class AutoCaptureMechanism +{ +public: + AutoCaptureMechanism(wxNotebook * notebook, + wxString directory = wxT("screenshots"), + int border = 5) + : m_notebook(notebook), m_dir(directory), m_border(border) {} + ~AutoCaptureMechanism(){} + + /* + If wxRTTI can't get the name correctly, specify name; + If wxWindow::GetScreenRect doesn't get the rect correctly, set flag to AJ_RegionAdjust + */ + void RegisterControl(wxWindow * ctrl, wxString name = wxT(""), + int flag = AJ_Normal) + { + m_controlList.push_back(Control(ctrl, name, flag)); + } + + void RegisterControl(wxWindow * ctrl, int flag) + { + RegisterControl(ctrl, wxT(""), flag); + } + + void RegisterPageTurn() + { + m_controlList.push_back(Control(0, wxT(""), AJ_TurnPage)); + } + + void CaptureAll() + { + m_notebook->SetSelection(0); + wxYield(); + + for(ControlList::iterator it = m_controlList.begin(); + it != m_controlList.end(); + ++it) + { + Control & ctrl = *it; + + if(ctrl.flag == AJ_TurnPage) // Turn to next page + { + m_notebook->SetSelection(m_notebook->GetSelection() + 1); + wxYield(); + continue; + } + + wxBitmap screenshot = Capture(ctrl); + + if(ctrl.flag & AJ_Union) + { + screenshot = Union(screenshot, Capture(*(++it))); + } + + Save(screenshot, ctrl.name); + } + } + +private: + struct Control + { + Control() {} + + Control(wxWindow * _ctrl, wxString _name, int _flag) + : ctrl(_ctrl), name(_name), flag(_flag) {} + + wxWindow * ctrl; + wxString name; + int flag; + }; + + typedef std::vector ControlList; + ControlList m_controlList; + + // here we introduce the dependency on wxNotebook. + // The assumption of this whole class is that the gui has the following top-down structure + // wxNotebook wxPanel wxSizer wxControls + wxNotebook* m_notebook; + + wxFlexGridSizer* m_grid; + + wxString m_dir; + int m_border; + + + + wxBitmap Capture(Control & ctrl) + { + if(ctrl.name == wxT("")) //no mannual specification for the control name + { + //Get name from wxRTTI + ctrl.name = ctrl.ctrl->GetClassInfo()->GetClassName(); + } + + int choice = wxNO; + + if(ctrl.flag & AJ_Dropdown) + { + wxString caption = _("Do you wish to capture the dropdown list of ") + ctrl.name + _("?"); + wxString notice = _("Click YES to capture it.\nAnd you MUST drop down the ") + ctrl.name + _(" in 3 seconds after close me.\n"); + notice += _("Click NO otherwise."); + + choice = wxMessageBox(notice, caption, wxYES_NO, m_notebook); + + if(choice == wxYES) + { + //Wait for 3 seconds + using std::clock; + using std::clock_t; + + clock_t start = clock(); + while(clock() - start < CLOCKS_PER_SEC * 3) + { + wxYieldIfNeeded(); + } + } + } + + wxRect rect = GetRect(ctrl.ctrl, ctrl.flag); + + //Do some rect adjust so it can include the dropdown list + //Currently it only works well under MSW, not adjusted for Linux and Mac OS + if(ctrl.flag & AJ_Dropdown && choice == wxYES) + { +// #ifdef __WXMSW__ + int h = rect.GetHeight(); + rect.SetHeight(h * 4); +// #endif + } + + //cut off "wx" and change them into lowercase. + // e.g. wxButton will have a name of "button" at the end + ctrl.name.StartsWith(_T("wx"), &(ctrl.name)); + ctrl.name.MakeLower(); + + wxBitmap screenshot = ::Capture(rect); + + if(ctrl.flag & AJ_RegionAdjust) + { + PutBack(ctrl.ctrl); + } + + return screenshot; + } + + //if AJ_RegionAdjust is specified, the following line will use the label trick to adjust + //the region position and size + wxRect GetRect(wxWindow* ctrl, int flag); + //put the control back after the label trick(Using reparent/resizer approach) + void PutBack(wxWindow * ctrl); + + wxBitmap Union(wxBitmap pic1, wxBitmap pic2) + { + int w1, w2, h1, h2, w, h; + w1 = pic1.GetWidth(); + w2 = pic2.GetWidth(); + h1 = pic1.GetHeight(); + h2 = pic2.GetHeight(); + + const int gap_between = 20; + + w = (w1 >= w2) ? w1 : w2; + h = h1 + h2 + gap_between; + + wxBitmap result(w, h, -1); + + wxMemoryDC dstDC; + dstDC.SelectObject(result); + + dstDC.DrawBitmap(pic1, 0, 0, false); + dstDC.DrawBitmap(pic2, 0, h1 + gap_between, false); + + dstDC.SelectObject(wxNullBitmap); + + wxMemoryDC maskDC; + wxBitmap mask(w, h, 1); + maskDC.SelectObject(mask); + + maskDC.SetPen(*wxTRANSPARENT_PEN); + maskDC.SetBrush(*wxBLACK_BRUSH); + maskDC.DrawRectangle(0, 0, w + 1, h + 1); + + maskDC.SetBrush(*wxWHITE_BRUSH); + maskDC.DrawRectangle(0, 0, w1, h1); + maskDC.DrawRectangle(0, h1 + gap_between, w2, h2); + maskDC.SelectObject(wxNullBitmap); + + result.SetMask(new wxMask(mask)); + + return result; + } + + void Save(wxBitmap screenshot, wxString fileName); +}; + +#endif // AUTOCAP_H + + diff --git a/utils/screenshotgen/src/bitmaps/bell.png b/utils/screenshotgen/src/bitmaps/bell.png new file mode 100644 index 0000000000000000000000000000000000000000..567909169eb28d680c53775f735effaaff6587f2 GIT binary patch literal 224 zcmeAS@N?(olHy`uVBq!ia0vp^B0wz4!VDz0{JuOJNErn9gt!9f1~6^_Qw=~~L&Jds z2O1h0{sYDTGyDfrKpMyb0)JsOPoOwwfk$L90|U1Z2s2)~TlWVj80P8X7{W0#S)-kq zEhLSRnVES?gTe~DWM4f{7_67 literal 0 HcmV?d00001 diff --git a/utils/screenshotgen/src/bitmaps/dropbuth.png b/utils/screenshotgen/src/bitmaps/dropbuth.png new file mode 100644 index 0000000000000000000000000000000000000000..089eda926db75e8d6998564440a6553693ca0708 GIT binary patch literal 371 zcmeAS@N?(olHy`uVBq!ia0vp^d_c_4!3HF+i2N%7Qfx`y?k)`L7*;bpzbhVp2`Iu@ z;1OBOz@VoL!i*J5?aP3I>?NMQuI$%X#Q8Ki*?&$m1PaNPxJHyX=jZ08=9Mrw7o{ea zq^2m8XO?6rgk+>DxO@5ryiZZh11h}k>Eaktack}*M=xhXfwui8pIl86tKHiiE@0bi z9b3(IaB&4!|1yP$Q{5J`Q)2c+tvY*oTcZQV{ps~>Jacv|DSY0(VWaCE`?Z>>HI6Lv zY~q$BL)v*VqCidhS|zZMiuWC`uyik*-wG}Z5Q#JX+O zJl63a_U_zmx7goleoHFXmKk@g{yg1lFynKgpIN$rdbFx^O0ittx$WoPv;E19J@HI> zN8Y(}Z?FDgzdvVAsNU@FdgVjYXVK&ES3t(>I`yY>8_`iF1B#Zfaf$gL6@8Vo7R> zLV0FMhC)b2s)DZ{rEqA-E2Y4q=>g3RSpZ* zin0bi?k?A0&x}0q{r%O@dIrJ03H#UVShey)O>=oNZ?pUn5w6L?EDVuPc-AcN+4E%E aI!-1{DdC9nrTsv|89ZJ6T-G@yGywpzi%c&7 literal 0 HcmV?d00001 diff --git a/utils/screenshotgen/src/bitmaps/dropbutp.png b/utils/screenshotgen/src/bitmaps/dropbutp.png new file mode 100644 index 0000000000000000000000000000000000000000..82e905e081c5f9a0cd848b63ce925166ae113574 GIT binary patch literal 366 zcmeAS@N?(olHy`uVBq!ia0vp^d_c_4!3HF+i2N%7Qfx`y?k)`L7*;bpzbhVp2`Iu@ z;1OBOz@VoL!i*J5?aP3I>?NMQuI$%X#Q8M1KfE~>0~C@iag8W(&d<$F%`0JWE=o-- zNlj5G&n(GM2+2rQaQE~Lc%P!02UK{;)5S5Q;?~?rzI;sv0zQ?vbdo$PRjXEapOA`O=%b>0bu;hp4BxP9 z(S!#(T_&x`u6z9K#mNl~e-$$-Zr4RE-L7?$<*R4uo3|Bv86O(^@v2^LtOfdx!PC{x JWt~$(69C7UkSPEF literal 0 HcmV?d00001 diff --git a/utils/screenshotgen/src/bitmaps/sound.png b/utils/screenshotgen/src/bitmaps/sound.png new file mode 100644 index 0000000000000000000000000000000000000000..a62c127a2b2eff270d20c5c7b26075bbabc1efb0 GIT binary patch literal 227 zcmeAS@N?(olHy`uVBq!ia0vp^B0wz4!VDz0{JuOJNU@iA`ns}TW)&6T6*SJ+`5q|5 zS>O>_%)r1c1j3A$?$-SQ3K|6Xgt!9f1~6^_Qw=~~L&Jds2O1h0{sYDTGyDfrKpMyb z0)JsOPoOwQNswPKSO6%0uX%4IP|V2F#WAGfRE*%6^>ewk&io&2KED91Z z0YVZWkP!AY0R;k#hN5+4nliR%fto4^ST+TQX|>0R`nT=&DGV_oj-qmdV0F6t1Buh%H7@l=+UEMvH1S|`)}SI%Quwh z(7k(t17kwnoLz_@005T1La-h{0~~dC-J?tZfZk~CL>_au7sm~(kJNJSetkCO7_W|> z4t6_6F}KW%qKJW54VzhN@Gw<%Xi1%%X%b>Jth}p2Mr;&a`A3b5_3uqFlf}8wV-#wV zhwX~bAx>ta-F(JQgRmmj$&?RpHxEx1)qh7;L9rbG69_PHnLz|V5C{MecXy;*D8?Ic zkO<3Uu#gHgH35WncY*@!ZVc+BsDuN9U|Vmeuxk*gX_qUA!~d!-DXY_vDkX{u27qD+ zI+g*VXp05#GqQk9nM3%@3|>S>7k+zU|7>;5{NcjzDQO^wfK#=v!dX)G*#$E*;FdHI z%)>Ut-6k0XiY_rdOjDQFX?!mZ@{^C9{%CD&#_C2*^Rm;lH`(!k)n+YA9TlFpzj`+8 zaN_O4kZlYS{&OiuJo zbSPuIjS3U$V;qgmTC46YXKnP&J|3n;l~KhZV`89i!<1Xt=Ge~h|EwF`Japb6I5ylq z>d>yBw_N(~*v;bc02IN{LOz2CK}0%$A+-XLnAF%PDU;WtVmh&@i70CmbW)+N<{pIL z+}S?>wYGJ1DhG(tHmsiib#o0W6ZR=8C1c};Bpilu67QZ)lWKDkj4hNuwIhP~Dn4tD zFD_mVT3h>;`fx5u5pF?%z|oPFF)ajhe(S(eQkN5mgd--NH@tX(`j?E{XeR-wf!6md z`b{1-7f^jY*J6-kXnXibXgqM=JVI#C{`lgAwLb6}|5%J{yFp?u1N=i8m+wT{+66Im zG_sZ4!lAP%`*_LxOf-pEsxHoExNJ7ea?9aaDko2Zfr(=M*B_#?wExCW9>i=) zO`vp}SIgdl;HK2W7qfml2jrXZgLmWsuC`dpOb0j&m~Gjf%HvsZ{%M3xQPj)e-Lg;a zN+@?ylJ4eAg#5JE^h)scY~akf{69{$jzxPn?E8^dNn!aJQ|Se=xZUA<7$cUP+5Z7~ zOa^e8!A%H@b4N|Qh7(mTs~_Sr#S3ql2W-==06#LFpy~appCZg&+~60;-aEZwg&*4E z|LBxx8n;Te06vO}-tO$ew)Xb*b0~Ir5BxF%#CBpJjfj_);*gLA63ESDf$>5SEjZGQoHpX) z^Y~M9og^!IlsQ9SVPR<#vbu_RLYiCD@*EICu~eqz(De*5L_eXqGsG#}(CL$9q72%e z?eBpk+(^0ec$iHekFD@@dzy3R&HR@pfU_Dr2JN@#i(8!VkMNabRBD;FVFc`A%g(;P zNcGHT^;h-`tdqXxM(ON0#!D_u4`wrmm`3yQ5$qHuK$E#vZq=ols&?_lxe1|h9=>rt z8=m|clGYL%o`2+|hf2dbW1~v;q+b9&pN(ndJTP8p$MQpQ$Uf@euAseO4$D6#fW_le z-!-FWiQ&7Z3@pRt_|^(4fKXZ~2msX8?Jj}a+F(#A&!`~uv=UVPgC*Cl6BPa3{Hxbt zS7k#*b5BPpsa(|PC#ktNKCZK(m<3|3*bT-L(&FMX0(pfzV&>4Y>c9iF z+K=dL<~Zy11sK2~AzS06(%Nj;+1M>@mQ;%qjoqAn`1#iI@3s^H*eqB0K3+QdQL#0vd+MMKq#Ba-m3ACr6>C zYH4k|NTICZUPTC4qq2qD){atptIN9EF=KwI)V&tfJTSx&G8xHyKUwJvod;+1C=<>I zWs!nBr6aSmh#kDNbc#V~uJM|?@Jb}SRps=ZIr z4_@QiAO0Yxv?%DB^&EaPXO5ZtU}Rt$QdUNr|H*psC8AN{? zM(_4KRB*1jdS3hsQLn)Iqf`El&Mt0SynXjM6gj*@o>uJjb{{r^1Qv@RC?euwF%Drh zHCQ>dzCjF9T3M71rSi(v-f~q#%hmRBk;=EaM%Do-8msuF`S)&u$sJ?#cdd|R{azC@ z04XU!9-HYF`vrzRGlHK#hpq9KFGmdt%aL>*&f#QaY1fjZok0N{UCvwrUNAT0{l0N` zpKVOd&?Sbu!QlSe+Q0RrJ%8vULSJf0+?D6Cnr}ubbITD3qj+_gIagUJN0KA?f!k!T Nt(EtWmIPqi{{az}4IBUf literal 0 HcmV?d00001 diff --git a/utils/screenshotgen/src/bitmaps/wxwin32x32.png b/utils/screenshotgen/src/bitmaps/wxwin32x32.png new file mode 100644 index 0000000000000000000000000000000000000000..20eda44161cbf3397a03b044cea10b78ddbb76db GIT binary patch literal 1267 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE3?yBabR7dyq9v{oCC){ui6xo&c?uz!xv327 zm$+F4m5iBJ-(Ch(z+U3%>k1aqREmFh@I6q7v%n*=n1O*?2!t6g-L3n>z`)E9;1l8s zlxzUw1~AnCK@<0elbFeIWqT^vIyZk@gC$aO%0$K~S9 z@aO-g>vFK&TIqH~XG{HGF*TPvlRv08_{;5BqM)#y@dq>KiAg6EJ*F`g@lIfyC%EXr zS@v%etUmBv(8=Ob`EvYu!?O(c<5iCyw>UEL&Sg0w-!<(X&>99$S3j3^P6 + #include +#endif + +#include +#include + +#include "ctrlmaskout.h" + + +// It's copied from src/aui/framemanager.cpp and modified, a failed attempt to +// visualize the process of taking the screenshot when wxTopLevelWindow::CanSetTransparent +// returns false. see wxCtrlMaskOut::CreateMask for more info +// now it shows nothing and does nothing +///////////////////////////////////////////////////////////////////////////// + +class wxPseudoTransparentFrame : public wxFrame +{ +public: + wxPseudoTransparentFrame(wxWindow* parent = NULL, + wxWindowID id = wxID_ANY, + const wxString& title = wxEmptyString, + const wxPoint& pos = wxDefaultPosition, + const wxSize& size = wxDefaultSize, + long style = wxDEFAULT_FRAME_STYLE, + const wxString &name = wxT("frame")) + : wxFrame(parent, id, title, pos, size, style | wxFRAME_SHAPED, name) + { + m_lastWidth=0; + m_lastHeight=0; + } + + virtual bool SetTransparent(wxByte alpha) + { + return true; + } + + void OnPaint(wxPaintEvent& WXUNUSED(event)){} + + virtual void SetSize(const wxRect& rect){} + virtual void SetSize(int x, int y, int width, int height, int sizeFlags = wxSIZE_AUTO){} + virtual void SetSize(int width, int height){} + virtual void SetSize(const wxSize& size){} + + virtual bool Show(bool show = true){ return true;} + + void OnSize(wxSizeEvent& event) + { +// // We sometimes get surplus size events +// if ((event.GetSize().GetWidth() == m_lastWidth) && +// (event.GetSize().GetHeight() == m_lastHeight)) +// { +// event.Skip(); +// return; +// } +// +// Show(false); +// +// GetParent()->Update(); +// +// Show(true); +// +// +// m_lastWidth = event.GetSize().GetWidth(); +// m_lastHeight = event.GetSize().GetHeight(); + } + +private: + int m_lastWidth,m_lastHeight; + + DECLARE_DYNAMIC_CLASS(wxPseudoTransparentFrame) + DECLARE_EVENT_TABLE() +}; + +IMPLEMENT_DYNAMIC_CLASS(wxPseudoTransparentFrame, wxFrame) + +BEGIN_EVENT_TABLE(wxPseudoTransparentFrame, wxFrame) + EVT_PAINT(wxPseudoTransparentFrame::OnPaint) + EVT_SIZE(wxPseudoTransparentFrame::OnSize) +END_EVENT_TABLE() + + + +// ---------------------------------------------------------------------------- +// wxCtrlMaskOut +// ---------------------------------------------------------------------------- + +wxCtrlMaskOut::wxCtrlMaskOut() + : m_defaultDir(_T("screenshots")), + m_controlName(_T("")), + m_currentRect(0, 0, 0, 0), + m_inflateBorder(5), + m_mask(NULL), + m_isTiming(false) +{ +} + +wxCtrlMaskOut::~wxCtrlMaskOut() +{ + if (m_mask != NULL) + { + m_mask->Destroy(); + m_mask = NULL; + } +} + +void wxCtrlMaskOut::OnLeftButtonDown(wxMouseEvent& event) +{ + if (m_isTiming) event.Skip(); + + // Start draging at the left-top corner. + wxWindow * thePanel = (wxWindow *)event.GetEventObject(); + m_currentRect.SetPosition(thePanel->ClientToScreen(event.GetPosition())); + m_currentRect.SetSize(wxSize(1, 1)); + + // Create a transparent mask to visulize the process of specifying a rect region.. + CreateMask(thePanel); +} + +void wxCtrlMaskOut::OnMouseMoving(wxMouseEvent& event) +{ + if (!event.Dragging()) + { + event.Skip(); + return; + } + + wxWindow * thePanel = (wxWindow *)event.GetEventObject(); + + // Determine the current rect region + m_currentRect.SetBottomRight(thePanel->ClientToScreen(event.GetPosition()) - wxPoint(5, 5)); + // /Because Mac can't get the left btn up event fired if we don't minus wxPoint(5, 5), + // /May fix it by making the panel handle this event later + // /This is the current trick + // /See also line 200 in CreateMask + + // Visualize the current rect region + m_mask->SetSize(m_currentRect); +} + +void wxCtrlMaskOut::OnLeftButtonUp(wxMouseEvent& event) +{ + if (m_mask == NULL)// Which means it's not after specifying a rect region + { + event.Skip(); + return; + } + + DestroyMask(); + + // End dragging at the right-bottom corner. + wxWindow * thePanel = (wxWindow *)event.GetEventObject(); + m_currentRect.SetRightBottom(thePanel->ClientToScreen(event.GetPosition())); + + if (event.ControlDown()) + { + m_isTiming = true; + (new wxTimer(this))->Start(3000, wxTIMER_ONE_SHOT); + this->Connect(wxEVT_TIMER, wxTimerEventHandler( wxCtrlMaskOut::OnTimingFinished ), NULL, this); + } + else + { + // The final rect region is determined. + DetermineCtrlNameAndRect(); + + Capture(m_currentRect, m_controlName); + } +} + +void wxCtrlMaskOut::OnTimingFinished(wxTimerEvent& event) +{ + // The final rect region is determined. + DetermineCtrlNameAndRect(); + + Capture(m_currentRect, m_controlName); + + m_isTiming = false; + this->Disconnect(wxEVT_TIMER, wxTimerEventHandler( wxCtrlMaskOut::OnTimingFinished ), NULL, this); +} + +void wxCtrlMaskOut::Capture(int x, int y, int width, int height, wxString fileName) +{ + // Somehow wxScreenDC.Blit() doesn't work under Mac for now. Here is a trick. +#ifdef __WXMAC__ + + // wxExecute(_T("screencapture -x ") + tempfile, wxEXEC_SYNC); + + system("screencapture -x /tmp/wx_screen_capture.png"); + + wxBitmap fullscreen; + + do + { + fullscreen = wxBitmap(_T("/tmp/wx_screen_capture.png"), wxBITMAP_TYPE_PNG); + } + while(!fullscreen.IsOk()); + + wxBitmap screenshot = fullscreen.GetSubBitmap(wxRect(x,y,width,height)); + + #else // Under other paltforms, take a real screenshot + + // Create a DC for the whole screen area + wxScreenDC dcScreen; + + // Create a Bitmap that will later on hold the screenshot image + // Note that the Bitmap must have a size big enough to hold the screenshot + // -1 means using the current default colour depth + wxBitmap screenshot(width, height, -1); + + // Create a memory DC that will be used for actually taking the screenshot + wxMemoryDC memDC; + // Tell the memory DC to use our Bitmap + // all drawing action on the memory DC will go to the Bitmap now + memDC.SelectObject(screenshot); + // Blit (in this case copy) the actual screen on the memory DC + // and thus the Bitmap + memDC.Blit( 0, // Copy to this X coordinate + 0, // Copy to this Y coordinate + width, // Copy this width + height, // Copy this height + &dcScreen, // From where do we copy? + x, // What's the X offset in the original DC? + y // What's the Y offset in the original DC? + ); + // Select the Bitmap out of the memory DC by selecting a new + // uninitialized Bitmap + memDC.SelectObject(wxNullBitmap); + +#endif // #ifdef __WXMAC__ + + // Check if m_defaultDir already existed + if (!wxDirExists(m_defaultDir)) + wxMkdir(m_defaultDir); + + // Our Bitmap now has the screenshot, so let's save it as an png + // The filename itself is without extension. + screenshot.SaveFile(m_defaultDir + wxFileName::GetPathSeparator() + + fileName + _T(".png"), wxBITMAP_TYPE_PNG); +} + +void wxCtrlMaskOut::Capture(wxRect rect, wxString fileName) +{ + wxPoint origin = rect.GetPosition(); + Capture(origin.x, origin.y, rect.GetWidth(), rect.GetHeight(), fileName); +} + +void wxCtrlMaskOut::DetermineCtrlNameAndRect() +{ + // Detect windows using (n-1)*(n-1) points + const int n = 5; + + wxPoint pt0 = m_currentRect.GetPosition(); + + int dx = m_currentRect.GetWidth() / n; + int dy = m_currentRect.GetHeight() / n; + + wxPoint pt; + wxWindow * ctrl; + wxString ctrlName; + wxRect ctrlSize; + + // use a set to make sure the same control won't be inserted twice + WX_DECLARE_HASH_SET(wxWindow*, wxPointerHash, wxPointerEqual, CtrlSet); + + CtrlSet ctrls; + + int i, j; + for (i = 1; i <= n - 1; ++i) + { + for (j = 1; j <= n - 1; ++j) + { + pt = wxPoint(pt0.x + i * dx, pt0.y + j * dy); + ctrls.insert(wxFindWindowAtPoint(pt)); + } + } + + // Store the manual specified rect region, we might need it + wxRect backup = m_currentRect; + + // Reset the control region and control name + m_currentRect = wxRect(0, 0, 0, 0); + m_controlName = _T(""); + + for (CtrlSet::iterator it = ctrls.begin(); it != ctrls.end(); ++it ) + { + ctrl = *it; + if (ctrl == NULL) + // which means no control was detected. + // This seldom happens, but without dealing with it, it will CRASH the program + { + static int count = 0; + ++count; + m_controlName = _T("nothing_"); + m_controlName << count; + m_currentRect = backup; + return; + } + ctrlName = ctrl->GetClassInfo()->GetClassName(); + + if (ctrlName != _T("wxPanel")) // Avoid detecting "wxPanel", which is only the backgroud + { + // Get a rect region to contain every window detected by unioning one by one. + m_currentRect.Union(ctrl->GetScreenRect()); + + // Get the name of the control, cut off "wx" and change them into lowercase. + // e.g. wxButton will have a filename of "button" and be saved as "button.png" + ctrlName.StartsWith(_T("wx"), &ctrlName); + ctrlName.MakeLower(); + + if (m_controlName.IsEmpty() || m_controlName == ctrlName) + { + m_controlName = ctrlName; + } + else // more than one types of controls are in the region selected + { + m_controlName += _T("_"); + m_controlName += ctrlName; + } + } + } + + if (m_controlName.IsEmpty() && backup.GetHeight() > 15 && backup.GetWidth() > 15) + // which means no control other than the wxPanel was detected. + // if the size of the specified rect(backup) is smaller than 15x15, + // then it could be just an accident + { + static int count = 0; + ++count; + m_controlName = _T("unknown_"); + m_controlName << count; + m_currentRect = backup; + return; + } + + // Increase its border so that it looks nicer. + m_currentRect.Inflate(m_inflateBorder); +} + +void wxCtrlMaskOut::CreateMask(wxWindow* parent) +{ + if (m_mask != NULL) + m_mask->Destroy(); + + // Make a frame to visualize the process of specifying the rect region. +#if defined(__WXMSW__) || defined(__WXGTK__) + m_mask = new wxFrame(parent, wxID_ANY, wxEmptyString, + m_currentRect.GetPosition(), m_currentRect.GetSize(), + wxFRAME_TOOL_WINDOW | + wxFRAME_FLOAT_ON_PARENT | + wxFRAME_NO_TASKBAR); +// wxNO_BORDER); +// with the border, it looks better under windows + + m_mask->SetBackgroundColour(wxSystemSettings::GetColour(wxSYS_COLOUR_ACTIVECAPTION)); + +#elif defined(__WXMAC__) + // Using a miniframe with float and tool styles keeps the parent + // frame activated and highlighted as such... + m_mask = new wxMiniFrame(parent, wxID_ANY, wxEmptyString, + m_currentRect.GetPosition(), m_currentRect.GetSize(), + wxFRAME_FLOAT_ON_PARENT + | wxFRAME_TOOL_WINDOW ); + + // Can't set the bg colour of a Frame in wxMac + wxPanel* p = new wxPanel(m_mask); + + // The default wxSYS_COLOUR_ACTIVECAPTION colour is a light silver + // color that is really hard to see, especially transparent. + // Until a better system color is decided upon we'll just use + // blue. + p->SetBackgroundColour(*wxBLUE); + + // So that even if the cursor run into the mask, the events are still correctly processed. + p->Connect( wxEVT_LEFT_DOWN, wxMouseEventHandler( wxCtrlMaskOut::OnLeftButtonDown ), NULL, this); + p->Connect( wxEVT_LEFT_UP, wxMouseEventHandler( wxCtrlMaskOut::OnLeftButtonUp ), NULL, this); + p->Connect( wxEVT_MOTION, wxMouseEventHandler( wxCtrlMaskOut::OnMouseMoving ), NULL, this); +#endif + + // If the platform doesn't support SetTransparent() + // we will use a dummy mask(which does and shows nothing) + // /this is the current trick, shall make it visible later + if (!m_mask->CanSetTransparent()) + { + m_mask->Destroy(); + + m_mask = new wxPseudoTransparentFrame(parent, + wxID_ANY, + wxEmptyString, + wxDefaultPosition, + wxSize(1,1), + wxFRAME_TOOL_WINDOW | + wxFRAME_FLOAT_ON_PARENT | + wxFRAME_NO_TASKBAR + ); + + } + + m_mask->SetTransparent(100); // Full value is 255 + m_mask->Show(true); + + // So that even if the cursor run into the mask, the events are still correctly processed. + m_mask->Connect( wxEVT_LEFT_DOWN, wxMouseEventHandler( wxCtrlMaskOut::OnLeftButtonDown ), NULL, this); + m_mask->Connect( wxEVT_LEFT_UP, wxMouseEventHandler( wxCtrlMaskOut::OnLeftButtonUp ), NULL, this); + m_mask->Connect( wxEVT_MOTION, wxMouseEventHandler( wxCtrlMaskOut::OnMouseMoving ), NULL, this); +} + +void wxCtrlMaskOut::DestroyMask() +{ + m_mask->Disconnect( wxEVT_LEFT_DOWN, wxMouseEventHandler( wxCtrlMaskOut::OnLeftButtonDown ), NULL, this); + m_mask->Disconnect( wxEVT_LEFT_UP, wxMouseEventHandler( wxCtrlMaskOut::OnLeftButtonUp ), NULL, this); + m_mask->Disconnect( wxEVT_MOTION, wxMouseEventHandler( wxCtrlMaskOut::OnMouseMoving ), NULL, this); + wxWindow * parent = m_mask->GetParent(); +// m_mask->Destroy(); + delete m_mask; + + parent->Update(); + m_mask = NULL; +} + diff --git a/utils/screenshotgen/src/ctrlmaskout.h b/utils/screenshotgen/src/ctrlmaskout.h new file mode 100644 index 0000000000..3f1c894edc --- /dev/null +++ b/utils/screenshotgen/src/ctrlmaskout.h @@ -0,0 +1,58 @@ +///////////////////////////////////////////////////////////////////////////// +// Name: ctrlmaskout.h +// Purpose: Defines the wxCtrlMaskOut class +// Author: Utensil Candel (UtensilCandel@@gmail.com) +// RCS-ID: $Id$ +// Licence: wxWindows license +///////////////////////////////////////////////////////////////////////////// + +#ifndef WX_CTRL_MASK_OUT +#define WX_CTRL_MASK_OUT + +#include + + +// ---------------------------------------------------------------------------- +// class wxCtrlMaskOut +// ---------------------------------------------------------------------------- + +class wxCtrlMaskOut : public wxEvtHandler +{ +public: + wxCtrlMaskOut(); + ~wxCtrlMaskOut(); + +public: + void OnLeftButtonDown(wxMouseEvent& event); + void OnLeftButtonUp(wxMouseEvent& event); + void OnMouseMoving(wxMouseEvent& event); + + void Capture(wxRect rect, wxString fileName); + void Capture(int x, int y, int width, int height, wxString fileName); + + wxString GetDefaultDirectory(){return m_defaultDir;} + +private: + // Helper functions + void CreateMask(wxWindow* parent); + void DestroyMask(); + void DetermineCtrlNameAndRect(); + + void OnTimingFinished(wxTimerEvent& event); + + + // Data members + wxString m_defaultDir; + + wxString m_controlName; + wxRect m_currentRect; + wxCoord m_inflateBorder; + + wxFrame * m_mask; + + bool m_isTiming; +}; + +#endif // WX_CTRL_MASK_OUT + + diff --git a/utils/screenshotgen/src/customcombo.cpp b/utils/screenshotgen/src/customcombo.cpp new file mode 100644 index 0000000000..447c5aaeb9 --- /dev/null +++ b/utils/screenshotgen/src/customcombo.cpp @@ -0,0 +1,191 @@ +///////////////////////////////////////////////////////////////////////////// +// Name: customcombo.cpp +// Purpose: Implement some custom wxComboCtrls +// Author: Utensil Candel (UtensilCandel@@gmail.com) +// RCS-ID: $Id$ +// Licence: wxWindows license +///////////////////////////////////////////////////////////////////////////// + +// For compilers that support precompilation, includes "wx/wx.h". +#include "wx/wxprec.h" + +#ifdef __BORLANDC__ + #pragma hdrstop +#endif + +// for all others, include the necessary headers +#ifndef WX_PRECOMP + #include "wx/wx.h" +#endif + +#if !wxUSE_COMBOCTRL + #error "Please set wxUSE_COMBOCTRL to 1 and rebuild the library." +#endif + +#include "customcombo.h" + + +BEGIN_EVENT_TABLE(ListViewComboPopup, wxListView) + EVT_MOTION(ListViewComboPopup::OnMouseMove) + // NOTE: Left down event is used instead of left up right now + // since MSW wxListCtrl doesn't seem to emit left ups + // consistently. + EVT_LEFT_DOWN(ListViewComboPopup::OnMouseClick) +END_EVENT_TABLE() + +BEGIN_EVENT_TABLE(TreeCtrlComboPopup, wxTreeCtrl) + EVT_MOTION(TreeCtrlComboPopup::OnMouseMove) + // NOTE: Left down event is used instead of left up right now + // since MSW wxTreeCtrl doesn't seem to emit left ups + // consistently. + EVT_LEFT_DOWN(TreeCtrlComboPopup::OnMouseClick) +END_EVENT_TABLE() + + + +// ---------------------------------------------------------------------------- +// wxPenStyleComboBox +// ---------------------------------------------------------------------------- + +void wxPenStyleComboBox::OnDrawItem( wxDC& dc, + const wxRect& rect, + int item, + int flags ) const +{ + if ( item == wxNOT_FOUND ) + return; + + wxRect r(rect); + r.Deflate(3); + r.height -= 2; + + int penStyle = wxSOLID; +// if ( item == 1 ) +// penStyle = wxTRANSPARENT; +// else if ( item == 2 ) +// penStyle = wxDOT; +// else if ( item == 3 ) +// penStyle = wxLONG_DASH; +// else if ( item == 4 ) +// penStyle = wxSHORT_DASH; + if ( item == 0 ) + penStyle = wxDOT_DASH; + else if ( item == 1 ) + penStyle = wxBDIAGONAL_HATCH; + else if ( item == 2 ) + penStyle = wxCROSSDIAG_HATCH; +// else if ( item == 8 ) +// penStyle = wxFDIAGONAL_HATCH; +// else if ( item == 9 ) +// penStyle = wxCROSS_HATCH; +// else if ( item == 10 ) +// penStyle = wxHORIZONTAL_HATCH; +// else if ( item == 11 ) +// penStyle = wxVERTICAL_HATCH; + + wxPen pen( dc.GetTextForeground(), 3, penStyle ); + + // Get text colour as pen colour + dc.SetPen( pen ); + + if ( !(flags & wxODCB_PAINTING_CONTROL) ) + { + dc.DrawText(GetString( item ), + r.x + 3, + (r.y + 0) + ( (r.height/2) - dc.GetCharHeight() )/2 + ); + + dc.DrawLine( r.x+5, r.y+((r.height/4)*3), r.x+r.width - 5, r.y+((r.height/4)*3) ); + } + else + { + dc.DrawLine( r.x+5, r.y+r.height/2, r.x+r.width - 5, r.y+r.height/2 ); + } +} + +void wxPenStyleComboBox::OnDrawBackground( wxDC& dc, const wxRect& rect, + int item, int flags ) const +{ + // If item is selected or even, or we are painting the + // combo control itself, use the default rendering. + if ( (flags & (wxODCB_PAINTING_CONTROL|wxODCB_PAINTING_SELECTED)) || + (item & 1) == 0 ) + { + wxOwnerDrawnComboBox::OnDrawBackground(dc,rect,item,flags); + return; + } + + // Otherwise, draw every other background with different colour. + wxColour bgCol(240,240,250); + dc.SetBrush(wxBrush(bgCol)); + dc.SetPen(wxPen(bgCol)); + dc.DrawRectangle(rect); +} + +inline wxCoord wxPenStyleComboBox::OnMeasureItem( size_t item ) const +{ + // Simply demonstrate the ability to have variable-height items + if ( item & 1 ) + return 36; + else + return 24; +} + +inline wxCoord wxPenStyleComboBox::OnMeasureItemWidth( size_t WXUNUSED(item) ) const +{ + return -1; // default - will be measured from text width +} + +wxPenStyleComboBox * wxPenStyleComboBox::CreateSample(wxWindow* parent) +{ + wxPenStyleComboBox* odc; + + // Common list of items for all dialogs. + wxArrayString arrItems; + + // Create common strings array +// arrItems.Add( wxT("Solid") ); +// arrItems.Add( wxT("Transparent") ); +// arrItems.Add( wxT("Dot") ); +// arrItems.Add( wxT("Long Dash") ); +// arrItems.Add( wxT("Short Dash") ); + // Comment the following since we don't need too long a drop list + arrItems.Add( wxT("Dot Dash") ); + arrItems.Add( wxT("Backward Diagonal Hatch") ); + arrItems.Add( wxT("Cross-diagonal Hatch") ); +// arrItems.Add( wxT("Forward Diagonal Hatch") ); +// arrItems.Add( wxT("Cross Hatch") ); +// arrItems.Add( wxT("Horizontal Hatch") ); +// arrItems.Add( wxT("Vertical Hatch") ); + + // When defining derivative class for callbacks, we need + // to use two-stage creation (or redefine the common wx + // constructor). + odc = new wxPenStyleComboBox(); + odc->Create(parent,wxID_ANY,wxEmptyString, + wxDefaultPosition, wxDefaultSize, + arrItems, + wxCB_READONLY //wxNO_BORDER | wxCB_READONLY + ); + + + odc->SetSelection(0); + + // Load images from disk + wxImage imgNormal(wxT("dropbutn.png")); + wxImage imgPressed(wxT("dropbutp.png")); + wxImage imgHover(wxT("dropbuth.png")); + + if ( imgNormal.IsOk() && imgPressed.IsOk() && imgHover.IsOk() ) + { + wxBitmap bmpNormal(imgNormal); + wxBitmap bmpPressed(imgPressed); + wxBitmap bmpHover(imgHover); + odc->SetButtonBitmaps(bmpNormal,false,bmpPressed,bmpHover); + } + else + wxLogError(wxT("Dropbutton images not found")); + + return odc; +} + diff --git a/utils/screenshotgen/src/customcombo.h b/utils/screenshotgen/src/customcombo.h new file mode 100644 index 0000000000..e438060e9b --- /dev/null +++ b/utils/screenshotgen/src/customcombo.h @@ -0,0 +1,248 @@ +///////////////////////////////////////////////////////////////////////////// +// Name: custom_combo.h +// Purpose: Define some custom wxComboCtrls +// Author: Utensil Candel (UtensilCandel@@gmail.com) +// RCS-ID: $Id$ +// Licence: wxWindows license +///////////////////////////////////////////////////////////////////////////// + +#ifndef WX_CUSTOM_COMBO_H +#define WX_CUSTOM_COMBO_H + +// ---------------------------------------------------------------------------- +// class wxPenStyleComboBox +// This class is a modified version of the one from samples/combo.cpp +// ---------------------------------------------------------------------------- + +#include + +class wxPenStyleComboBox : public wxOwnerDrawnComboBox +{ +public: + virtual void OnDrawItem( wxDC& dc, + const wxRect& rect, + int item, + int flags ) const; + + + virtual void OnDrawBackground( wxDC& dc, const wxRect& rect, + int item, int flags ) const; + + virtual wxCoord OnMeasureItem( size_t item ) const; + + virtual wxCoord OnMeasureItemWidth( size_t WXUNUSED(item) ) const; + + static wxPenStyleComboBox* CreateSample(wxWindow* parent); +}; + + +// ---------------------------------------------------------------------------- +// wxListView Custom popup interface +// This class is a modified version of the one from samples/combo.cpp +// ---------------------------------------------------------------------------- + +#include + +class ListViewComboPopup : public wxListView, public wxComboPopup +{ +public: + + virtual void Init() + { + m_value = -1; + m_itemHere = -1; // hot item in list + } + + virtual bool Create( wxWindow* parent ) + { + return wxListView::Create(parent,1, + wxPoint(0,0),wxDefaultSize, + wxLC_LIST|wxLC_VRULES|wxBORDER_THEME); + } + + virtual wxWindow *GetControl() { return this; } + + virtual void SetStringValue( const wxString& s ) + { + int n = wxListView::FindItem(-1,s); + if ( n >= 0 && n < GetItemCount() ) + wxListView::Select(n); + } + + virtual wxString GetStringValue() const + { + if ( m_value >= 0 ) + return wxListView::GetItemText(m_value); + return wxEmptyString; + } + + // + // Popup event handlers + // + + // Mouse hot-tracking + void OnMouseMove(wxMouseEvent& event) + { + // Move selection to cursor if it is inside the popup + + int resFlags; + int itemHere = HitTest(event.GetPosition(),resFlags); + if ( itemHere >= 0 ) + { + wxListView::Select(itemHere,true); + m_itemHere = itemHere; + } + event.Skip(); + } + + // On mouse left, set the value and close the popup + void OnMouseClick(wxMouseEvent& WXUNUSED(event)) + { + m_value = m_itemHere; + // TODO: Send event + Dismiss(); + } + + // + // Utilies for item manipulation + // + + void AddSelection( const wxString& selstr ) + { + wxListView::InsertItem(GetItemCount(),selstr); + } + +protected: + int m_value; // current item index + int m_itemHere; // hot item in popup + +private: + DECLARE_EVENT_TABLE() +}; + + +// ---------------------------------------------------------------------------- +// wxTreeCtrl Custom popup interface +// This class is a modified version of the one from samples/combo.cpp +// ---------------------------------------------------------------------------- + +#include + +class TreeCtrlComboPopup : public wxTreeCtrl, public wxComboPopup +{ +public: + + virtual void Init() + { + } + + virtual bool Create( wxWindow* parent ) + { + return wxTreeCtrl::Create(parent,1, + wxPoint(0,0),wxDefaultSize, + wxTR_HAS_BUTTONS|wxTR_SINGLE| + wxTR_LINES_AT_ROOT|wxBORDER_THEME); + } + + virtual void OnShow() + { + // make sure selected item is visible + if ( m_value.IsOk() ) + EnsureVisible(m_value); + } + + virtual wxSize GetAdjustedSize( int minWidth, + int WXUNUSED(prefHeight), + int maxHeight ) + { + return wxSize(minWidth, wxMin(80, maxHeight)); + } + + virtual wxWindow *GetControl() { return this; } + + // Needed by SetStringValue + wxTreeItemId FindItemByText( wxTreeItemId parent, const wxString& text ) + { + wxTreeItemIdValue cookie; + wxTreeItemId child = GetFirstChild(parent,cookie); + while ( child.IsOk() ) + { + if ( GetItemText(child) == text ) + { + return child; + } + if ( ItemHasChildren(child) ) + { + wxTreeItemId found = FindItemByText(child,text); + if ( found.IsOk() ) + return found; + } + child = GetNextChild(parent,cookie); + } + return wxTreeItemId(); + } + + virtual void SetStringValue( const wxString& s ) + { + wxTreeItemId root = GetRootItem(); + if ( !root.IsOk() ) + return; + + wxTreeItemId found = FindItemByText(root,s); + if ( found.IsOk() ) + { + m_value = m_itemHere = found; + wxTreeCtrl::SelectItem(found); + } + } + + virtual wxString GetStringValue() const + { + if ( m_value.IsOk() ) + return wxTreeCtrl::GetItemText(m_value); + return wxEmptyString; + } + + // + // Popup event handlers + // + + // Mouse hot-tracking + void OnMouseMove(wxMouseEvent& event) + { + int resFlags; + wxTreeItemId itemHere = HitTest(event.GetPosition(),resFlags); + if ( itemHere.IsOk() && (resFlags & wxTREE_HITTEST_ONITEMLABEL) ) + { + wxTreeCtrl::SelectItem(itemHere,true); + m_itemHere = itemHere; + } + event.Skip(); + } + + // On mouse left, set the value and close the popup + void OnMouseClick(wxMouseEvent& event) + { + int resFlags; + wxTreeItemId itemHere = HitTest(event.GetPosition(),resFlags); + if ( itemHere.IsOk() && (resFlags & wxTREE_HITTEST_ONITEMLABEL) ) + { + m_itemHere = itemHere; + m_value = itemHere; + Dismiss(); + // TODO: Send event + } + event.Skip(); + } + +protected: + + wxTreeItemId m_value; // current item index + wxTreeItemId m_itemHere; // hot item in popup + +private: + DECLARE_EVENT_TABLE() +}; + + +#endif // WX_CUSTOM_COMBO_H diff --git a/utils/screenshotgen/src/guidesign.fbp b/utils/screenshotgen/src/guidesign.fbp new file mode 100644 index 0000000000..e40481bdc0 --- /dev/null +++ b/utils/screenshotgen/src/guidesign.fbp @@ -0,0 +1,2960 @@ + + + + + + C++ + 1 + UTF-8 + connect + guiframe + 1000 + none + 1 + MyProject + + . + // ---------------------------------------------------------------------------- // headers // ---------------------------------------------------------------------------- // For compilers that support precompilation, includes "wx/wx.h". #include "wx/wxprec.h" #ifdef __BORLANDC__ #pragma hdrstop #endif // for all others, include the necessary headers (this file is usually all you // need because it includes almost all "standard" wxWidgets headers) #ifndef WX_PRECOMP #include "wx/wx.h" #endif + 1 + 1 + 0 + + + + + 1 + + + + 0 + wxID_ANY + + + GUIFrame + + -1,-1 + wxDEFAULT_FRAME_STYLE + + wxWidgets Control Screenshot Generator + + + + wxTAB_TRAVERSAL + 1 + + + + OnClose + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1 + + + 0 + wxID_ANY + + + + mbar + protected + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + &File + fileMenu + protected + + + 0 + 1 + Open the directory where the screenshots generated. + idMenuOpen + wxITEM_NORMAL + See Screenshots + m_menuSeeScr + none + Ctrl+O + + OnSeeScreenshots + + + + + 0 + 1 + Quit the application + idMenuQuit + wxITEM_NORMAL + &Quit + m_menuFileQuit + none + Alt+F4 + + OnQuit + + + + + &Capture + captureMenu + protected + + + 0 + 1 + Can screenshot be taken properly? + idMenuCapFullScreen + wxITEM_NORMAL + &Full Screen + m_menuCapFullScreen + none + Ctrl+Alt+F + + OnCaptureFullScreen + + + + + 0 + 1 + Manually specify rectangular regions + idMenuCapRect + wxITEM_NORMAL + Regions<Begin> + m_menuCapRect + none + Ctrl+Alt+R + + OnCaptureRect + + + + + 0 + 0 + Stop generating screenshots... + idMenuEndCapRect + wxITEM_NORMAL + Regions<End> + m_menuEndCapRect + none + Ctrl+Alt+E + + OnEndCaptureRect + + + + + 0 + 1 + Take screenshot for all controls autoly. + idMenuCapAll + wxITEM_NORMAL + Capture All + m_menuCapAll + none + Ctrl+Alt+A + + OnCaptureAllControls + + + + + &Help + helpMenu + protected + + + 0 + 1 + Show info about this application + idMenuAbout + wxITEM_NORMAL + &About + m_menuHelpAbout + none + F1 + + OnAbout + + + + + + + bSizer0 + wxVERTICAL + none + + 0 + wxEXPAND | wxALL + 1 + + + + + 1 + + + 0 + wxID_ANY + + + m_notebook1 + protected + + + + + + + + + + + + + + + + + + + + + + + + + OnNotebookPageChanged + OnNotebookPageChanging + + + + + + + + + + Tiny Controls + 1 + + + + 1 + + + 0 + wxID_ANY + + + m_panel1 + protected + + + + + + + wxTAB_TRAVERSAL + + + + + + + + + + + + + + + + + + + + + + + + + 2 + wxBOTH + + + 0 + + fgSizer1 + wxFLEX_GROWMODE_NONE + none + 5 + 0 + + 20 + wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL + 0 + + + + 0 + 1 + + + 0 + wxID_ANY + wxButton + + + m_button1 + protected + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 20 + wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL + 0 + + + + 1 + + + 0 + wxID_ANY + wxStaticText + + + m_staticText1 + protected + + + + + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 20 + wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL + 0 + + + 1 + + 1 + + + 0 + wxID_ANY + Checked + + + m_checkBox1 + protected + + + + + wxCheckBox + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 20 + wxALL|wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL + 0 + + + 0 + + 1 + + + 0 + wxID_ANY + Not checked + + + m_checkBox2 + protected + + + + + wxCheckBox + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 20 + wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL + 0 + + + + 1 + + + 0 + wxID_ANY + Chosen + + + m_radioBtn1 + protected + + + + + wxRadioButton + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 20 + wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL + 0 + + + + 1 + + + 0 + wxID_ANY + Not chosen + + + m_radioBtn2 + protected + + + + + wxRadioButton + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 20 + wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL + 0 + + + wxwin32x32.png; Load From File + + 0 + + 1 + + + + 0 + + wxID_ANY + wxBitmapButton + + + m_bpButton1 + protected + + + + wxBU_AUTODRAW + + wxBitmapButton + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 20 + wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL + 0 + + + wxwin32x32.png; Load From File + + 1 + + + 0 + wxID_ANY + + + m_bitmap1 + protected + + + + wxStaticBitmap + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 20 + wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxEXPAND + 1 + + + + 1 + + + 0 + wxID_ANY + + + m_gauge1 + protected + + 100 + + wxGA_HORIZONTAL + + wxGauge + 50 + + _Gauge + + + + + + + + + + + + + + + + + + + + + + + + + + + + 20 + wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxEXPAND + 1 + + + + 1 + + + 0 + wxID_ANY + 100 + + 0 + + m_slider1 + protected + + + wxSL_HORIZONTAL + + wxSlider + 50 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 20 + wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL + 0 + + + + 1 + + + 0 + wxID_ANY + Not Toggled + + + m_toggleBtn1 + protected + + + + wxToggleButton + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 20 + wxALL|wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL + 0 + + + + 1 + + + 0 + wxID_ANY + Toggled + + + m_toggleBtn2 + protected + + + + wxToggleButton + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 20 + wxALL|wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL + 0 + + + + 1 + + + 0 + + wxID_ANY + www.wxWidgets.org + + + m_hyperlink1 + + protected + + + wxHL_DEFAULT_STYLE + + wxHyperlinkCtrl + http://www.wxWidgets.org + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 20 + wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL + 0 + + + + 1 + + + 0 + wxID_ANY + 0 + 10 + + 0 + + m_spinCtrl1 + protected + + + wxSP_ARROW_KEYS + + wxSpinCtrl + 5 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 20 + wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL + 0 + + + + 1 + + + 0 + wxID_ANY + + + m_spinBtn1 + protected + + + + + wxSpinButton + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 20 + wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxEXPAND + 1 + + + + 1 + + + 0 + wxID_ANY + + + m_scrollBar1 + 1 + protected + + 100 + + wxSB_HORIZONTAL + + 1 + wxScrollBar + 50 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Choosing Controls + 0 + + + + 1 + + + 0 + wxID_ANY + + + m_panel2 + protected + + + + + + + wxTAB_TRAVERSAL + + + + + + + + + + + + + + + + + + + + + + + + + 2 + wxBOTH + + + 0 + + fgSizer2 + wxFLEX_GROWMODE_SPECIFIED + none + 5 + 0 + + 20 + wxALL|wxEXPAND|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL + 1 + + + "wxCheckListBox" "Item1" "Item2" + + 1 + + + 0 + wxID_ANY + + + m_checkList1 + protected + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 20 + wxALL|wxEXPAND|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL + 1 + + + "wxListBox" "Item1" "Item2" + + 1 + + + 0 + wxID_ANY + + + m_listBox1 + protected + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 20 + wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL + 0 + + + "Item1" "Item2" + + 1 + + + 0 + wxID_ANY + wxRadioBox + 1 + + + m_radioBox1 + protected + + 0 + + wxRA_SPECIFY_COLS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 20 + wxALL|wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL|wxEXPAND + 1 + + + wxStaticBox + m_staticBox1 = new wxStaticBox(m_panel2,wxID_ANY, _("wxStaticBox"), wxDefaultPosition, wxDefaultSize, 0, _("_StaticBox")); + + wxStaticBox * m_staticBox1; + 1 + + + 0 + wxID_ANY + #include <wx/statbox.h> + + + m_staticBox1 + protected + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 20 + wxALL|wxEXPAND|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL + 1 + + + + 1 + + + 0 + wxID_ANY + + + m_treeCtrl1 + protected + + + wxTR_DEFAULT_STYLE + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 20 + wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxEXPAND + 1 + + + + 1 + + + 0 + wxID_ANY + + + m_listCtrl1 + protected + + + + + wxListCtrl + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 20 + wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL + 0 + + + wxAnimationCtrl + m_animationCtrl1 = new wxAnimationCtrl(m_panel2, wxID_ANY); + + wxAnimationCtrl * m_animationCtrl1; + 1 + + + 0 + wxID_ANY + #include "wx/animate.h" + + + m_animationCtrl1 + protected + + m_animationCtrl1->SetToolTip(_("wxAnimationCtrl")); if (m_animationCtrl1->LoadFile(wxT("throbber.gif"))) m_animationCtrl1->Play(); + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxEXPAND + 0 + + + wxCollapsiblePane + m_collPane1 = new wxCollapsiblePane(m_panel2, -1, wxT("Collapsed")); + + wxCollapsiblePane *m_collPane1; + 1 + + + 0 + wxID_ANY + #include "wx/collpane.h" + + + m_collPane1 + protected + + wxWindow *win = m_collPane1->GetPane(); m_collPane1->SetToolTip(_("wxCollapsiblePane")); wxBoxSizer * collbSizer = new wxBoxSizer(wxVERTICAL); wxStaticText* m_collSText = new wxStaticText(win, -1, wxT("You can place")); wxButton* m_collBut = new wxButton(win, -1, wxT("anything")); wxTextCtrl* m_collText = new wxTextCtrl(win, -1, wxT("inside a wxCollapsiblePane")); collbSizer->Add( m_collSText, 0, wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 0 ); collbSizer->Add( m_collBut, 0, wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 0 ); collbSizer->Add( m_collText, 0, wxALL|wxEXPAND|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 0 ); win->SetSizer(collbSizer); + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxEXPAND + 0 + + + wxCollapsiblePane + m_collPane2 = new wxCollapsiblePane(m_panel2, -1, wxT("Expanded")); + + wxCollapsiblePane *m_collPane2; + 1 + + + 0 + wxID_ANY + #include "wx/collpane.h" + + + m_collPane2 + protected + + wxWindow *win2 = m_collPane2->GetPane(); m_collPane2->SetToolTip(_("wxCollapsiblePane")); wxBoxSizer * collbSizer2 = new wxBoxSizer(wxVERTICAL); wxStaticText* m_collSText2 = new wxStaticText(win2, -1, wxT("You can place")); wxButton* m_collBut2 = new wxButton(win2, -1, wxT("anything")); wxTextCtrl* m_collText2 = new wxTextCtrl(win2, -1, wxT("inside a wxCollapsiblePane")); collbSizer2->Add( m_collSText2, 0, wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 0 ); collbSizer2->Add( m_collBut2, 0, wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 0 ); collbSizer2->Add( m_collText2, 0, wxALL|wxEXPAND|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 0 ); win2->SetSizer(collbSizer2); m_collPane2->Expand(); + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Text Richtext + 0 + + + + 1 + + + 0 + wxID_ANY + + + m_panel3 + protected + + + + + + + wxTAB_TRAVERSAL + + + + + + + + + + + + + + + + + + + + + + + + + + bSizer2 + wxVERTICAL + none + + 20 + wxTOP|wxRIGHT|wxLEFT + 0 + + + + 1 + + + 0 + wxID_ANY + + 0 + + m_textCtrl1 + protected + + + + + wxTextCtrl + Single-line + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + + 0 + + 10 + protected + 0 + + + + 20 + wxBOTTOM|wxRIGHT|wxLEFT + 0 + + + + 1 + + + 0 + wxID_ANY + + 0 + + m_textCtrl2 + protected + + + wxTE_MULTILINE + + wxTextCtrl + Multi-line Line1 Line2 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 20 + wxALL + 0 + + + + 1 + + + 0 + wxID_ANY + + 200,200 + m_richText1 + protected + + -1,-1 + + + wxRichTextCtrl + + + wxVSCROLL|wxHSCROLL|wxNO_BORDER|wxWANTS_CHARS + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Picker Controls + 0 + + + + 1 + + + 0 + wxID_ANY + + + m_panel4 + protected + + + + + + + wxTAB_TRAVERSAL + + + + + + + + + + + + + + + + + + + + + + + + + 2 + wxBOTH + + + 10 + + fgSizer5 + wxFLEX_GROWMODE_SPECIFIED + none + 2 + 10 + + 20 + wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL + 0 + + + + + 1 + + + 0 + wxID_ANY + + + m_colourPicker1 + protected + + + wxCLRP_DEFAULT_STYLE + + wxColourPickerCtrl + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 20 + wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL + 0 + + + + 1 + + + 0 + wxID_ANY + 100 + + + m_fontPicker1 + protected + + + wxFNTP_DEFAULT_STYLE + + wxFontPickerCtrl + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 20 + wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL + 0 + + + + 1 + + + 0 + wxID_ANY + + Select a file + + m_filePicker1 + protected + + + wxFLP_DEFAULT_STYLE + + wxFilePickerCtrl + + *.* + + _FilePickerCtrl + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxEXPAND + 1 + + 0 + protected + 0 + + + + 20 + wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL + 0 + + + + 1 + + + 0 + wxID_ANY + + + m_calendar1 + protected + + + wxCAL_SHOW_HOLIDAYS + + wxCalendarCtrl + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 20 + wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL + 0 + + + + 1 + + + 0 + wxID_ANY + + + m_datePicker1 + protected + + + wxDP_DEFAULT + + wxDatePickerCtrl + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 20 + wxEXPAND|wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL + 1 + + + + 0 + + 1 + + + + 0 + wxID_ANY + + -1,150 + m_genericDirCtrl1 + protected + + 0 + + wxDIRCTRL_3D_INTERNAL + + wxGenericDirCtrl + + _GenericDirCtrl + wxSUNKEN_BORDER + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 20 + wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL + 0 + + + + 1 + + + 0 + wxID_ANY + + Select a folder + + m_dirPicker1 + protected + + + wxDIRP_DEFAULT_STYLE + + wxDirPickerCtrl + + + _DirPickerCtrl + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Drop Down Controls + 0 + + + + 1 + + + 0 + wxID_ANY + + + m_panel5 + protected + + + + + + + wxTAB_TRAVERSAL + + + + + + + + + + + + + + + + + + + + + + + + + 2 + wxBOTH + + + 0 + + fgSizer4 + wxFLEX_GROWMODE_SPECIFIED + none + 2 + 0 + + 20 + wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL + 0 + + + "wxChoice" "Item1" "Item2" "Item3" "Item4" + + 1 + + + 0 + wxID_ANY + + + m_choice1 + protected + + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 20 + wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL + 0 + + + "wxComboBox" "Item1" "Item2" "Item3" "Item4" + + 1 + + + 0 + wxID_ANY + + + m_comboBox1 + protected + + + + + + wxComboBox + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxEXPAND + 1 + + 120 + protected + 0 + + + + 5 + wxEXPAND + 1 + + 120 + protected + 0 + + + + 20 + wxALL|wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL|wxEXPAND + 1 + + + wxBitmapComboBox + m_bmpComboBox1 = new wxBitmapComboBox(m_panel5, wxID_ANY,_("Item1")); + + wxBitmapComboBox * m_bmpComboBox1; + 1 + + + 0 + wxID_ANY + #include <wx/bmpcbox.h> + + + m_bmpComboBox1 + protected + + m_bmpComboBox1->Append(_("Item1"), wxBitmap(_T("bell.png"),wxBITMAP_TYPE_PNG)); m_bmpComboBox1->Append(_("Item2"), wxBitmap(_T("sound.png"),wxBITMAP_TYPE_PNG)); m_bmpComboBox1->Append(_("Item3"), wxBitmap(_T("bell.png"),wxBITMAP_TYPE_PNG)); m_bmpComboBox1->Append(_("Item4"), wxBitmap(_T("sound.png"),wxBITMAP_TYPE_PNG)); m_bmpComboBox1->SetToolTip(_("wxBitmapComboBox")); + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 20 + wxALL|wxEXPAND|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL + 1 + + + wxPenStyleComboBox + m_ownerDrawnComboBox1 = wxPenStyleComboBox::CreateSample(m_panel5); + + wxPenStyleComboBox * m_ownerDrawnComboBox1; + 1 + + + 0 + wxID_ANY + #include "custom_combo.h" + + + m_ownerDrawnComboBox1 + protected + + m_ownerDrawnComboBox1->SetToolTip(_("wxOwnerDrawnComboBox")); + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxEXPAND + 1 + + 90 + protected + 0 + + + + 5 + wxEXPAND + 1 + + 90 + protected + 0 + + + + 20 + wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxEXPAND + 1 + + + wxComboCtrl + m_comboCtrl1 = new wxComboCtrl(m_panel5,wxID_ANY,wxEmptyString); + + wxComboCtrl * m_comboCtrl1; + 1 + + + 0 + wxID_ANY + #include "custom_combo.h" + + + m_comboCtrl1 + protected + + m_comboCtrl1->SetText(wxT("wxComboCtrl")); m_comboCtrl1->SetToolTip(_("wxComboCtrl")); ListViewComboPopup* popupList = new ListViewComboPopup(); m_comboCtrl1->SetPopupControl(popupList); m_comboCtrl1->SetPopupMaxHeight(80); // Populate using wxListView methods popupList->InsertItem(popupList->GetItemCount(),wxT("wxComboCtrl")); popupList->InsertItem(popupList->GetItemCount(),wxT("with")); popupList->InsertItem(popupList->GetItemCount(),wxT("wxListView")); popupList->InsertItem(popupList->GetItemCount(),wxT("popup")); popupList->InsertItem(popupList->GetItemCount(),wxT("Item1")); popupList->InsertItem(popupList->GetItemCount(),wxT("Item2")); popupList->InsertItem(popupList->GetItemCount(),wxT("Item3")); popupList->Select(0, true); + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 20 + wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxEXPAND + 1 + + + wxComboCtrl + m_comboCtrl2 = new wxComboCtrl(m_panel5,wxID_ANY,wxEmptyString); + + wxComboCtrl * m_comboCtrl2; + 1 + + + 0 + wxID_ANY + #include "custom_combo.h" + + + m_comboCtrl2 + protected + + m_comboCtrl2->SetText(wxT("wxComboCtrl")); m_comboCtrl2->SetToolTip(_("wxComboCtrl")); TreeCtrlComboPopup* popupTree = new TreeCtrlComboPopup(); m_comboCtrl2->SetPopupControl(popupTree); m_comboCtrl2->SetPopupMaxHeight(80); //Add a root and some nodes using wxTreeCtrl methods wxTreeItemId root = popupTree->AddRoot(_("wxComboCtrl")); popupTree->AppendItem(root, _("with")); popupTree->AppendItem(root, _("wxTreeCtrl")); wxTreeItemId node2 = popupTree->AppendItem(root, _("popout")); popupTree->AppendItem(node2, _("Node1")); popupTree->AppendItem(node2, _("Node2")); popupTree->ExpandAll(); + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1 + + 1 + + 0 + wxID_ANY + + + statusBar + protected + + + wxST_SIZEGRIP + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/utils/screenshotgen/src/guiframe.cpp b/utils/screenshotgen/src/guiframe.cpp new file mode 100644 index 0000000000..ed1cbf90fe --- /dev/null +++ b/utils/screenshotgen/src/guiframe.cpp @@ -0,0 +1,452 @@ +/////////////////////////////////////////////////////////////////////////// +// C++ code generated with wxFormBuilder (version Apr 17 2008) +// http://www.wxformbuilder.org/ +// +// PLEASE DO "NOT" EDIT THIS FILE! +/////////////////////////////////////////////////////////////////////////// + +// ---------------------------------------------------------------------------- +// headers +// ---------------------------------------------------------------------------- + +// For compilers that support precompilation, includes "wx/wx.h". +#include "wx/wxprec.h" + +#ifdef __BORLANDC__ +#pragma hdrstop +#endif + +// for all others, include the necessary headers (this file is usually all you +// need because it includes almost all "standard" wxWidgets headers) +#ifndef WX_PRECOMP +#include "wx/wx.h" +#endif + +#include "guiframe.h" + +/////////////////////////////////////////////////////////////////////////// + +GUIFrame::GUIFrame( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style ) : wxFrame( parent, id, title, pos, size, style ) +{ + this->SetSizeHints( wxDefaultSize, wxDefaultSize ); + + mbar = new wxMenuBar( 0 ); + fileMenu = new wxMenu(); + wxMenuItem* m_menuSeeScr; + m_menuSeeScr = new wxMenuItem( fileMenu, idMenuOpen, wxString( _("See Screenshots") ) + wxT('\t') + wxT("Ctrl+O"), _("Open the directory where the screenshots generated."), wxITEM_NORMAL ); + fileMenu->Append( m_menuSeeScr ); + + wxMenuItem* m_menuFileQuit; + m_menuFileQuit = new wxMenuItem( fileMenu, idMenuQuit, wxString( _("&Quit") ) + wxT('\t') + wxT("Alt+F4"), _("Quit the application"), wxITEM_NORMAL ); + fileMenu->Append( m_menuFileQuit ); + + mbar->Append( fileMenu, _("&File") ); + + captureMenu = new wxMenu(); + wxMenuItem* m_menuCapFullScreen; + m_menuCapFullScreen = new wxMenuItem( captureMenu, idMenuCapFullScreen, wxString( _("&Full Screen") ) + wxT('\t') + wxT("Ctrl+Alt+F"), _("Can screenshot be taken properly?"), wxITEM_NORMAL ); + captureMenu->Append( m_menuCapFullScreen ); + + wxMenuItem* m_menuCapRect; + m_menuCapRect = new wxMenuItem( captureMenu, idMenuCapRect, wxString( _("Regions") ) + wxT('\t') + wxT("Ctrl+Alt+R"), _("Manually specify rectangular regions"), wxITEM_NORMAL ); + captureMenu->Append( m_menuCapRect ); + + wxMenuItem* m_menuEndCapRect; + m_menuEndCapRect = new wxMenuItem( captureMenu, idMenuEndCapRect, wxString( _("Regions") ) + wxT('\t') + wxT("Ctrl+Alt+E"), _("Stop generating screenshots..."), wxITEM_NORMAL ); + captureMenu->Append( m_menuEndCapRect ); + m_menuEndCapRect->Enable( false ); + + wxMenuItem* m_menuCapAll; + m_menuCapAll = new wxMenuItem( captureMenu, idMenuCapAll, wxString( _("Capture All") ) + wxT('\t') + wxT("Ctrl+Alt+A"), _("Take screenshot for all controls autoly."), wxITEM_NORMAL ); + captureMenu->Append( m_menuCapAll ); + + mbar->Append( captureMenu, _("&Capture") ); + + helpMenu = new wxMenu(); + wxMenuItem* m_menuHelpAbout; + m_menuHelpAbout = new wxMenuItem( helpMenu, idMenuAbout, wxString( _("&About") ) + wxT('\t') + wxT("F1"), _("Show info about this application"), wxITEM_NORMAL ); + helpMenu->Append( m_menuHelpAbout ); + + mbar->Append( helpMenu, _("&Help") ); + + this->SetMenuBar( mbar ); + + wxBoxSizer* bSizer0; + bSizer0 = new wxBoxSizer( wxVERTICAL ); + + m_notebook1 = new wxNotebook( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, 0 ); + m_panel1 = new wxPanel( m_notebook1, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); + wxFlexGridSizer* fgSizer1; + fgSizer1 = new wxFlexGridSizer( 5, 2, 0, 0 ); + fgSizer1->SetFlexibleDirection( wxBOTH ); + fgSizer1->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_NONE ); + + m_button1 = new wxButton( m_panel1, wxID_ANY, _("wxButton"), wxDefaultPosition, wxDefaultSize, 0 ); + fgSizer1->Add( m_button1, 0, wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 20 ); + + m_staticText1 = new wxStaticText( m_panel1, wxID_ANY, _("wxStaticText"), wxDefaultPosition, wxDefaultSize, 0 ); + m_staticText1->Wrap( -1 ); + fgSizer1->Add( m_staticText1, 0, wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 20 ); + + m_checkBox1 = new wxCheckBox( m_panel1, wxID_ANY, _("Checked"), wxDefaultPosition, wxDefaultSize, 0 ); + m_checkBox1->SetValue(true); + + m_checkBox1->SetToolTip( _("wxCheckBox") ); + + fgSizer1->Add( m_checkBox1, 0, wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 20 ); + + m_checkBox2 = new wxCheckBox( m_panel1, wxID_ANY, _("Not checked"), wxDefaultPosition, wxDefaultSize, 0 ); + + m_checkBox2->SetToolTip( _("wxCheckBox") ); + + fgSizer1->Add( m_checkBox2, 0, wxALL|wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 20 ); + + m_radioBtn1 = new wxRadioButton( m_panel1, wxID_ANY, _("Chosen"), wxDefaultPosition, wxDefaultSize, 0 ); + m_radioBtn1->SetValue( true ); + m_radioBtn1->SetToolTip( _("wxRadioButton") ); + + fgSizer1->Add( m_radioBtn1, 0, wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 20 ); + + m_radioBtn2 = new wxRadioButton( m_panel1, wxID_ANY, _("Not chosen"), wxDefaultPosition, wxDefaultSize, 0 ); + m_radioBtn2->SetToolTip( _("wxRadioButton") ); + + fgSizer1->Add( m_radioBtn2, 0, wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 20 ); + + m_bpButton1 = new wxBitmapButton( m_panel1, wxID_ANY, wxBitmap( wxT("wxwin32x32.png"), wxBITMAP_TYPE_ANY ), wxDefaultPosition, wxDefaultSize, wxBU_AUTODRAW ); + m_bpButton1->SetToolTip( _("wxBitmapButton") ); + + m_bpButton1->SetToolTip( _("wxBitmapButton") ); + + fgSizer1->Add( m_bpButton1, 0, wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 20 ); + + m_bitmap1 = new wxStaticBitmap( m_panel1, wxID_ANY, wxBitmap( wxT("wxwin32x32.png"), wxBITMAP_TYPE_ANY ), wxDefaultPosition, wxDefaultSize, 0 ); + m_bitmap1->SetToolTip( _("wxStaticBitmap") ); + + fgSizer1->Add( m_bitmap1, 0, wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 20 ); + + m_gauge1 = new wxGauge( m_panel1, wxID_ANY, 100, wxDefaultPosition, wxDefaultSize, wxGA_HORIZONTAL, wxDefaultValidator, wxT("_Gauge") ); + m_gauge1->SetValue( 50 ); + m_gauge1->SetToolTip( _("wxGauge") ); + + fgSizer1->Add( m_gauge1, 1, wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxEXPAND, 20 ); + + m_slider1 = new wxSlider( m_panel1, wxID_ANY, 50, 0, 100, wxDefaultPosition, wxDefaultSize, wxSL_HORIZONTAL ); + m_slider1->SetToolTip( _("wxSlider") ); + + fgSizer1->Add( m_slider1, 1, wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxEXPAND, 20 ); + + m_toggleBtn1 = new wxToggleButton( m_panel1, wxID_ANY, _("Not Toggled"), wxDefaultPosition, wxDefaultSize, 0 ); + m_toggleBtn1->SetToolTip( _("wxToggleButton") ); + + fgSizer1->Add( m_toggleBtn1, 0, wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 20 ); + + m_toggleBtn2 = new wxToggleButton( m_panel1, wxID_ANY, _("Toggled"), wxDefaultPosition, wxDefaultSize, 0 ); + m_toggleBtn2->SetValue( true ); + m_toggleBtn2->SetToolTip( _("wxToggleButton") ); + + fgSizer1->Add( m_toggleBtn2, 0, wxALL|wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 20 ); + + m_hyperlink1 = new wxHyperlinkCtrl( m_panel1, wxID_ANY, _("www.wxWidgets.org"), wxT("http://www.wxWidgets.org"), wxDefaultPosition, wxDefaultSize, wxHL_DEFAULT_STYLE ); + m_hyperlink1->SetToolTip( _("wxHyperlinkCtrl") ); + + fgSizer1->Add( m_hyperlink1, 0, wxALL|wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 20 ); + + m_spinCtrl1 = new wxSpinCtrl( m_panel1, wxID_ANY, wxT("5"), wxDefaultPosition, wxDefaultSize, wxSP_ARROW_KEYS, 0, 10, 0 ); + m_spinCtrl1->SetToolTip( _("wxSpinCtrl") ); + + fgSizer1->Add( m_spinCtrl1, 0, wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 20 ); + + m_spinBtn1 = new wxSpinButton( m_panel1, wxID_ANY, wxDefaultPosition, wxDefaultSize, 0 ); + m_spinBtn1->SetToolTip( _("wxSpinButton") ); + + fgSizer1->Add( m_spinBtn1, 0, wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 20 ); + + m_scrollBar1 = new wxScrollBar( m_panel1, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxSB_HORIZONTAL ); + m_scrollBar1->SetToolTip( _("wxScrollBar") ); + + fgSizer1->Add( m_scrollBar1, 1, wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxEXPAND, 20 ); + + m_panel1->SetSizer( fgSizer1 ); + m_panel1->Layout(); + fgSizer1->Fit( m_panel1 ); + m_notebook1->AddPage( m_panel1, _("Tiny Controls"), true ); + m_panel2 = new wxPanel( m_notebook1, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); + wxFlexGridSizer* fgSizer2; + fgSizer2 = new wxFlexGridSizer( 5, 2, 0, 0 ); + fgSizer2->SetFlexibleDirection( wxBOTH ); + fgSizer2->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED ); + + wxString m_checkList1Choices[] = { _("wxCheckListBox"), _("Item1"), _("Item2") }; + int m_checkList1NChoices = sizeof( m_checkList1Choices ) / sizeof( wxString ); + m_checkList1 = new wxCheckListBox( m_panel2, wxID_ANY, wxDefaultPosition, wxDefaultSize, m_checkList1NChoices, m_checkList1Choices, 0 ); + fgSizer2->Add( m_checkList1, 1, wxALL|wxEXPAND|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 20 ); + + m_listBox1 = new wxListBox( m_panel2, wxID_ANY, wxDefaultPosition, wxDefaultSize, 0, NULL, 0 ); + m_listBox1->Append( _("wxListBox") ); + m_listBox1->Append( _("Item1") ); + m_listBox1->Append( _("Item2") ); + fgSizer2->Add( m_listBox1, 1, wxALL|wxEXPAND|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 20 ); + + wxString m_radioBox1Choices[] = { _("Item1"), _("Item2") }; + int m_radioBox1NChoices = sizeof( m_radioBox1Choices ) / sizeof( wxString ); + m_radioBox1 = new wxRadioBox( m_panel2, wxID_ANY, _("wxRadioBox"), wxDefaultPosition, wxDefaultSize, m_radioBox1NChoices, m_radioBox1Choices, 1, wxRA_SPECIFY_COLS ); + m_radioBox1->SetSelection( 0 ); + fgSizer2->Add( m_radioBox1, 0, wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 20 ); + + m_staticBox1 = new wxStaticBox(m_panel2,wxID_ANY, _("wxStaticBox"), wxDefaultPosition, wxDefaultSize, 0, _("_StaticBox")); + + + fgSizer2->Add( m_staticBox1, 1, wxALL|wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL|wxEXPAND, 20 ); + + m_treeCtrl1 = new wxTreeCtrl( m_panel2, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTR_DEFAULT_STYLE ); + fgSizer2->Add( m_treeCtrl1, 1, wxALL|wxEXPAND|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 20 ); + + m_listCtrl1 = new wxListCtrl( m_panel2, wxID_ANY, wxDefaultPosition, wxDefaultSize, 0 ); + m_listCtrl1->SetToolTip( _("wxListCtrl") ); + + fgSizer2->Add( m_listCtrl1, 1, wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxEXPAND, 20 ); + + m_animationCtrl1 = new wxAnimationCtrl(m_panel2, wxID_ANY); + m_animationCtrl1->SetToolTip(_("wxAnimationCtrl")); + if (m_animationCtrl1->LoadFile(wxT("throbber.gif"))) + m_animationCtrl1->Play(); + fgSizer2->Add( m_animationCtrl1, 0, wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 20 ); + + m_collPane1 = new wxCollapsiblePane(m_panel2, -1, wxT("Collapsed")); + wxWindow *win = m_collPane1->GetPane(); + m_collPane1->SetToolTip(_("wxCollapsiblePane")); + + wxBoxSizer * collbSizer = new wxBoxSizer(wxVERTICAL); + wxStaticText* m_collSText = new wxStaticText(win, -1, wxT("You can place")); + wxButton* m_collBut = new wxButton(win, -1, wxT("anything")); + wxTextCtrl* m_collText = new wxTextCtrl(win, -1, wxT("inside a wxCollapsiblePane")); + collbSizer->Add( m_collSText, 0, wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 0 ); + collbSizer->Add( m_collBut, 0, wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 0 ); + collbSizer->Add( m_collText, 0, wxALL|wxEXPAND|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 0 ); + win->SetSizer(collbSizer); + fgSizer2->Add( m_collPane1, 0, wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 ); + + m_collPane2 = new wxCollapsiblePane(m_panel2, -1, wxT("Expanded")); + wxWindow *win2 = m_collPane2->GetPane(); + m_collPane2->SetToolTip(_("wxCollapsiblePane")); + + wxBoxSizer * collbSizer2 = new wxBoxSizer(wxVERTICAL); + wxStaticText* m_collSText2 = new wxStaticText(win2, -1, wxT("You can place")); + wxButton* m_collBut2 = new wxButton(win2, -1, wxT("anything")); + wxTextCtrl* m_collText2 = new wxTextCtrl(win2, -1, wxT("inside a wxCollapsiblePane")); + collbSizer2->Add( m_collSText2, 0, wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 0 ); + collbSizer2->Add( m_collBut2, 0, wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 0 ); + collbSizer2->Add( m_collText2, 0, wxALL|wxEXPAND|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 0 ); + win2->SetSizer(collbSizer2); + + m_collPane2->Expand(); + fgSizer2->Add( m_collPane2, 0, wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxEXPAND, 5 ); + + m_panel2->SetSizer( fgSizer2 ); + m_panel2->Layout(); + fgSizer2->Fit( m_panel2 ); + m_notebook1->AddPage( m_panel2, _("Choosing Controls"), false ); + m_panel3 = new wxPanel( m_notebook1, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); + wxBoxSizer* bSizer2; + bSizer2 = new wxBoxSizer( wxVERTICAL ); + + m_textCtrl1 = new wxTextCtrl( m_panel3, wxID_ANY, _("Single-line"), wxDefaultPosition, wxDefaultSize, 0 ); + m_textCtrl1->SetToolTip( _("wxTextCtrl") ); + + bSizer2->Add( m_textCtrl1, 0, wxTOP|wxRIGHT|wxLEFT, 20 ); + + + bSizer2->Add( 0, 10, 0, 0, 5 ); + + m_textCtrl2 = new wxTextCtrl( m_panel3, wxID_ANY, _("Multi-line\nLine1\nLine2\n"), wxDefaultPosition, wxDefaultSize, wxTE_MULTILINE ); + m_textCtrl2->SetToolTip( _("wxTextCtrl") ); + + bSizer2->Add( m_textCtrl2, 0, wxBOTTOM|wxRIGHT|wxLEFT, 20 ); + + m_richText1 = new wxRichTextCtrl( m_panel3, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize( -1,-1 ), 0|wxVSCROLL|wxHSCROLL|wxNO_BORDER|wxWANTS_CHARS ); + m_richText1->SetToolTip( _("wxRichTextCtrl") ); + m_richText1->SetMinSize( wxSize( 200,200 ) ); + + bSizer2->Add( m_richText1, 0, wxALL, 20 ); + + m_panel3->SetSizer( bSizer2 ); + m_panel3->Layout(); + bSizer2->Fit( m_panel3 ); + m_notebook1->AddPage( m_panel3, _("Text Richtext"), false ); + m_panel4 = new wxPanel( m_notebook1, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); + wxFlexGridSizer* fgSizer5; + fgSizer5 = new wxFlexGridSizer( 2, 2, 10, 10 ); + fgSizer5->SetFlexibleDirection( wxBOTH ); + fgSizer5->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED ); + + m_colourPicker1 = new wxColourPickerCtrl( m_panel4, wxID_ANY, *wxBLACK, wxDefaultPosition, wxDefaultSize, wxCLRP_DEFAULT_STYLE ); + m_colourPicker1->SetToolTip( _("wxColourPickerCtrl") ); + + fgSizer5->Add( m_colourPicker1, 0, wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 20 ); + + m_fontPicker1 = new wxFontPickerCtrl( m_panel4, wxID_ANY, wxNullFont, wxDefaultPosition, wxDefaultSize, wxFNTP_DEFAULT_STYLE ); + m_fontPicker1->SetMaxPointSize( 100 ); + m_fontPicker1->SetToolTip( _("wxFontPickerCtrl") ); + + fgSizer5->Add( m_fontPicker1, 0, wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 20 ); + + m_filePicker1 = new wxFilePickerCtrl( m_panel4, wxID_ANY, wxEmptyString, _("Select a file"), wxT("*.*"), wxDefaultPosition, wxDefaultSize, wxFLP_DEFAULT_STYLE, wxDefaultValidator, wxT("_FilePickerCtrl") ); + m_filePicker1->SetToolTip( _("wxFilePickerCtrl") ); + + fgSizer5->Add( m_filePicker1, 0, wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 20 ); + + + fgSizer5->Add( 0, 0, 1, wxEXPAND, 5 ); + + m_calendar1 = new wxCalendarCtrl( m_panel4, wxID_ANY, wxDefaultDateTime, wxDefaultPosition, wxDefaultSize, wxCAL_SHOW_HOLIDAYS ); + m_calendar1->SetToolTip( _("wxCalendarCtrl") ); + + fgSizer5->Add( m_calendar1, 0, wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 20 ); + + m_datePicker1 = new wxDatePickerCtrl( m_panel4, wxID_ANY, wxDefaultDateTime, wxDefaultPosition, wxDefaultSize, wxDP_DEFAULT ); + m_datePicker1->SetToolTip( _("wxDatePickerCtrl") ); + + fgSizer5->Add( m_datePicker1, 0, wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 20 ); + + m_genericDirCtrl1 = new wxGenericDirCtrl( m_panel4, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxDIRCTRL_3D_INTERNAL|wxSUNKEN_BORDER, wxEmptyString, 0, wxT("_GenericDirCtrl") ); + + m_genericDirCtrl1->ShowHidden( false ); + m_genericDirCtrl1->SetToolTip( _("wxGenericDirCtrl") ); + m_genericDirCtrl1->SetMinSize( wxSize( -1,150 ) ); + + fgSizer5->Add( m_genericDirCtrl1, 1, wxEXPAND|wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 20 ); + + m_dirPicker1 = new wxDirPickerCtrl( m_panel4, wxID_ANY, wxEmptyString, _("Select a folder"), wxDefaultPosition, wxDefaultSize, wxDIRP_DEFAULT_STYLE, wxDefaultValidator, wxT("_DirPickerCtrl") ); + m_dirPicker1->SetToolTip( _("wxDirPickerCtrl") ); + + fgSizer5->Add( m_dirPicker1, 0, wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 20 ); + + m_panel4->SetSizer( fgSizer5 ); + m_panel4->Layout(); + fgSizer5->Fit( m_panel4 ); + m_notebook1->AddPage( m_panel4, _("Picker Controls"), false ); + m_panel5 = new wxPanel( m_notebook1, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); + wxFlexGridSizer* fgSizer4; + fgSizer4 = new wxFlexGridSizer( 2, 2, 0, 0 ); + fgSizer4->SetFlexibleDirection( wxBOTH ); + fgSizer4->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED ); + + wxString m_choice1Choices[] = { _("wxChoice"), _("Item1"), _("Item2"), _("Item3"), _("Item4") }; + int m_choice1NChoices = sizeof( m_choice1Choices ) / sizeof( wxString ); + m_choice1 = new wxChoice( m_panel5, wxID_ANY, wxDefaultPosition, wxDefaultSize, m_choice1NChoices, m_choice1Choices, 0 ); + m_choice1->SetSelection( 0 ); + fgSizer4->Add( m_choice1, 0, wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 20 ); + + m_comboBox1 = new wxComboBox( m_panel5, wxID_ANY, _("wxComboBox"), wxDefaultPosition, wxDefaultSize, 0, NULL, 0 ); + m_comboBox1->Append( _("wxComboBox") ); + m_comboBox1->Append( _("Item1") ); + m_comboBox1->Append( _("Item2") ); + m_comboBox1->Append( _("Item3") ); + m_comboBox1->Append( _("Item4") ); + fgSizer4->Add( m_comboBox1, 0, wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 20 ); + + + fgSizer4->Add( 0, 120, 1, wxEXPAND, 5 ); + + + fgSizer4->Add( 0, 120, 1, wxEXPAND, 5 ); + + m_bmpComboBox1 = new wxBitmapComboBox(m_panel5, wxID_ANY,_("Item1")); + m_bmpComboBox1->Append(_("Item1"), wxBitmap(_T("bell.png"),wxBITMAP_TYPE_PNG)); + m_bmpComboBox1->Append(_("Item2"), wxBitmap(_T("sound.png"),wxBITMAP_TYPE_PNG)); + m_bmpComboBox1->Append(_("Item3"), wxBitmap(_T("bell.png"),wxBITMAP_TYPE_PNG)); + m_bmpComboBox1->Append(_("Item4"), wxBitmap(_T("sound.png"),wxBITMAP_TYPE_PNG)); + m_bmpComboBox1->SetToolTip(_("wxBitmapComboBox")); + fgSizer4->Add( m_bmpComboBox1, 1, wxALL|wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL|wxEXPAND, 20 ); + + m_ownerDrawnComboBox1 = wxPenStyleComboBox::CreateSample(m_panel5); + m_ownerDrawnComboBox1->SetToolTip(_("wxOwnerDrawnComboBox")); + fgSizer4->Add( m_ownerDrawnComboBox1, 1, wxALL|wxEXPAND|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 20 ); + + + fgSizer4->Add( 0, 90, 1, wxEXPAND, 5 ); + + + fgSizer4->Add( 0, 90, 1, wxEXPAND, 5 ); + + m_comboCtrl1 = new wxComboCtrl(m_panel5,wxID_ANY,wxEmptyString); + m_comboCtrl1->SetText(wxT("wxComboCtrl")); + m_comboCtrl1->SetToolTip(_("wxComboCtrl")); + + ListViewComboPopup* popupList = new ListViewComboPopup(); + m_comboCtrl1->SetPopupControl(popupList); + m_comboCtrl1->SetPopupMaxHeight(80); + + // Populate using wxListView methods + popupList->InsertItem(popupList->GetItemCount(),wxT("wxComboCtrl")); + popupList->InsertItem(popupList->GetItemCount(),wxT("with")); + popupList->InsertItem(popupList->GetItemCount(),wxT("wxListView")); + popupList->InsertItem(popupList->GetItemCount(),wxT("popup")); + popupList->InsertItem(popupList->GetItemCount(),wxT("Item1")); + popupList->InsertItem(popupList->GetItemCount(),wxT("Item2")); + popupList->InsertItem(popupList->GetItemCount(),wxT("Item3")); + + popupList->Select(0, true); + fgSizer4->Add( m_comboCtrl1, 1, wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxEXPAND, 20 ); + + m_comboCtrl2 = new wxComboCtrl(m_panel5,wxID_ANY,wxEmptyString); + m_comboCtrl2->SetText(wxT("wxComboCtrl")); + m_comboCtrl2->SetToolTip(_("wxComboCtrl")); + + TreeCtrlComboPopup* popupTree = new TreeCtrlComboPopup(); + + m_comboCtrl2->SetPopupControl(popupTree); + m_comboCtrl2->SetPopupMaxHeight(80); + + //Add a root and some nodes using wxTreeCtrl methods + wxTreeItemId root = popupTree->AddRoot(_("wxComboCtrl")); + + popupTree->AppendItem(root, _("with")); + popupTree->AppendItem(root, _("wxTreeCtrl")); + + wxTreeItemId node2 = popupTree->AppendItem(root, _("popout")); + popupTree->AppendItem(node2, _("Node1")); + popupTree->AppendItem(node2, _("Node2")); + + popupTree->ExpandAll(); + fgSizer4->Add( m_comboCtrl2, 1, wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxEXPAND, 20 ); + + m_panel5->SetSizer( fgSizer4 ); + m_panel5->Layout(); + fgSizer4->Fit( m_panel5 ); + m_notebook1->AddPage( m_panel5, _("Drop Down Controls"), false ); + + bSizer0->Add( m_notebook1, 1, wxEXPAND | wxALL, 0 ); + + this->SetSizer( bSizer0 ); + this->Layout(); + bSizer0->Fit( this ); + statusBar = this->CreateStatusBar( 1, wxST_SIZEGRIP, wxID_ANY ); + + // Connect Events + this->Connect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( GUIFrame::OnClose ) ); + this->Connect( m_menuSeeScr->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( GUIFrame::OnSeeScreenshots ) ); + this->Connect( m_menuFileQuit->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( GUIFrame::OnQuit ) ); + this->Connect( m_menuCapFullScreen->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( GUIFrame::OnCaptureFullScreen ) ); + this->Connect( m_menuCapRect->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( GUIFrame::OnCaptureRect ) ); + this->Connect( m_menuEndCapRect->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( GUIFrame::OnEndCaptureRect ) ); + this->Connect( m_menuCapAll->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( GUIFrame::OnCaptureAllControls ) ); + this->Connect( m_menuHelpAbout->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( GUIFrame::OnAbout ) ); + m_notebook1->Connect( wxEVT_COMMAND_NOTEBOOK_PAGE_CHANGED, wxNotebookEventHandler( GUIFrame::OnNotebookPageChanged ), NULL, this ); + m_notebook1->Connect( wxEVT_COMMAND_NOTEBOOK_PAGE_CHANGING, wxNotebookEventHandler( GUIFrame::OnNotebookPageChanging ), NULL, this ); +} + +GUIFrame::~GUIFrame() +{ + // Disconnect Events + this->Disconnect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( GUIFrame::OnClose ) ); + this->Disconnect( wxID_ANY, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( GUIFrame::OnSeeScreenshots ) ); + this->Disconnect( wxID_ANY, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( GUIFrame::OnQuit ) ); + this->Disconnect( wxID_ANY, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( GUIFrame::OnCaptureFullScreen ) ); + this->Disconnect( wxID_ANY, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( GUIFrame::OnCaptureRect ) ); + this->Disconnect( wxID_ANY, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( GUIFrame::OnEndCaptureRect ) ); + this->Disconnect( wxID_ANY, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( GUIFrame::OnCaptureAllControls ) ); + this->Disconnect( wxID_ANY, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( GUIFrame::OnAbout ) ); + m_notebook1->Disconnect( wxEVT_COMMAND_NOTEBOOK_PAGE_CHANGED, wxNotebookEventHandler( GUIFrame::OnNotebookPageChanged ), NULL, this ); + m_notebook1->Disconnect( wxEVT_COMMAND_NOTEBOOK_PAGE_CHANGING, wxNotebookEventHandler( GUIFrame::OnNotebookPageChanging ), NULL, this ); +} diff --git a/utils/screenshotgen/src/guiframe.h b/utils/screenshotgen/src/guiframe.h new file mode 100644 index 0000000000..d366f72ccf --- /dev/null +++ b/utils/screenshotgen/src/guiframe.h @@ -0,0 +1,161 @@ +/////////////////////////////////////////////////////////////////////////// +// C++ code generated with wxFormBuilder (version Apr 17 2008) +// http://www.wxformbuilder.org/ +// +// PLEASE DO "NOT" EDIT THIS FILE! +/////////////////////////////////////////////////////////////////////////// + +#ifndef __guiframe__ +#define __guiframe__ + +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include "wx/animate.h" +#include "wx/collpane.h" +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include "customcombo.h" +#include +#include +#include + +/////////////////////////////////////////////////////////////////////////// + +/////////////////////////////////////////////////////////////////////////////// +/// Class GUIFrame +/////////////////////////////////////////////////////////////////////////////// +class GUIFrame : public wxFrame +{ + private: + + protected: + enum + { + idMenuOpen = 1000, + idMenuQuit, + idMenuCapFullScreen, + idMenuCapRect, + idMenuEndCapRect, + idMenuCapAll, + idMenuAbout, + }; + + wxMenuBar* mbar; + wxMenu* fileMenu; + wxMenu* captureMenu; + wxMenu* helpMenu; + wxNotebook* m_notebook1; + wxPanel* m_panel1; + wxButton* m_button1; + wxStaticText* m_staticText1; + wxCheckBox* m_checkBox1; + wxCheckBox* m_checkBox2; + wxRadioButton* m_radioBtn1; + wxRadioButton* m_radioBtn2; + wxBitmapButton* m_bpButton1; + wxStaticBitmap* m_bitmap1; + wxGauge* m_gauge1; + wxSlider* m_slider1; + wxToggleButton* m_toggleBtn1; + wxToggleButton* m_toggleBtn2; + wxHyperlinkCtrl* m_hyperlink1; + wxSpinCtrl* m_spinCtrl1; + wxSpinButton* m_spinBtn1; + wxScrollBar* m_scrollBar1; + wxPanel* m_panel2; + wxCheckListBox* m_checkList1; + wxListBox* m_listBox1; + wxRadioBox* m_radioBox1; + wxStaticBox * m_staticBox1; + wxTreeCtrl* m_treeCtrl1; + wxListCtrl* m_listCtrl1; + wxAnimationCtrl * m_animationCtrl1; + wxCollapsiblePane *m_collPane1; + wxCollapsiblePane *m_collPane2; + wxPanel* m_panel3; + wxTextCtrl* m_textCtrl1; + + wxTextCtrl* m_textCtrl2; + wxRichTextCtrl* m_richText1; + wxPanel* m_panel4; + wxColourPickerCtrl* m_colourPicker1; + wxFontPickerCtrl* m_fontPicker1; + wxFilePickerCtrl* m_filePicker1; + + wxCalendarCtrl* m_calendar1; + wxDatePickerCtrl* m_datePicker1; + wxGenericDirCtrl* m_genericDirCtrl1; + wxDirPickerCtrl* m_dirPicker1; + wxPanel* m_panel5; + wxChoice* m_choice1; + wxComboBox* m_comboBox1; + + + wxBitmapComboBox * m_bmpComboBox1; + wxPenStyleComboBox * m_ownerDrawnComboBox1; + + + wxComboCtrl * m_comboCtrl1; + wxComboCtrl * m_comboCtrl2; + wxStatusBar* statusBar; + + // Virtual event handlers, overide them in your derived class + virtual void OnClose( wxCloseEvent& event ){ event.Skip(); } + virtual void OnSeeScreenshots( wxCommandEvent& event ){ event.Skip(); } + virtual void OnQuit( wxCommandEvent& event ){ event.Skip(); } + virtual void OnCaptureFullScreen( wxCommandEvent& event ){ event.Skip(); } + virtual void OnCaptureRect( wxCommandEvent& event ){ event.Skip(); } + virtual void OnEndCaptureRect( wxCommandEvent& event ){ event.Skip(); } + virtual void OnCaptureAllControls( wxCommandEvent& event ){ event.Skip(); } + virtual void OnAbout( wxCommandEvent& event ){ event.Skip(); } + virtual void OnNotebookPageChanged( wxNotebookEvent& event ){ event.Skip(); } + virtual void OnNotebookPageChanging( wxNotebookEvent& event ){ event.Skip(); } + + + public: + GUIFrame( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("wxWidgets Control Screenshot Generator"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( -1,-1 ), long style = wxDEFAULT_FRAME_STYLE|wxTAB_TRAVERSAL ); + ~GUIFrame(); + +}; + +#endif //__guiframe__ diff --git a/utils/screenshotgen/src/makefile.bcc b/utils/screenshotgen/src/makefile.bcc new file mode 100644 index 0000000000..77735f7507 --- /dev/null +++ b/utils/screenshotgen/src/makefile.bcc @@ -0,0 +1,285 @@ +# ========================================================================= +# This makefile was generated by +# Bakefile 0.2.4 (http://www.bakefile.org) +# Do not modify, all changes will be overwritten! +# ========================================================================= + +.autodepend + +!ifndef BCCDIR +!ifndef MAKEDIR +!error Your Borland compiler does not define MAKEDIR. Please define the BCCDIR variable, e.g. BCCDIR=d:\bc4 +!endif +BCCDIR = $(MAKEDIR)\.. +!endif + +!include ../../../build/msw/config.bcc + +# ------------------------------------------------------------------------- +# Do not modify the rest of this file! +# ------------------------------------------------------------------------- + +### Variables: ### + +WX_RELEASE_NODOT = 29 +COMPILER_PREFIX = bcc +OBJS = \ + $(COMPILER_PREFIX)_$(PORTNAME)$(WXUNIVNAME)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WXDLLFLAG)$(CFG) +LIBDIRNAME = .\..\..\..\lib\$(COMPILER_PREFIX)_$(LIBTYPE_SUFFIX)$(CFG) +SETUPHDIR = \ + $(LIBDIRNAME)\$(PORTNAME)$(WXUNIVNAME)$(WXUNICODEFLAG)$(WXDEBUGFLAG) +SCREENSHOTGEN_CXXFLAGS = $(__RUNTIME_LIBS_7) -I$(BCCDIR)\include \ + $(__DEBUGINFO) $(__OPTIMIZEFLAG_2) $(__THREADSFLAG_6) -D__WXMSW__ \ + $(__WXUNIV_DEFINE_p) $(__DEBUG_DEFINE_p) $(__EXCEPTIONS_DEFINE_p) \ + $(__RTTI_DEFINE_p) $(__THREAD_DEFINE_p) $(__UNICODE_DEFINE_p) \ + $(__MSLU_DEFINE_p) $(__GFXCTX_DEFINE_p) -I$(SETUPHDIR) -I.\..\..\..\include \ + -I. $(__DLLFLAG_p) -I.\..\..\..\samples -DNOPCH $(CPPFLAGS) $(CXXFLAGS) +SCREENSHOTGEN_OBJECTS = \ + $(OBJS)\screenshotgen_screenshot_app.obj \ + $(OBJS)\screenshotgen_screenshot_main.obj \ + $(OBJS)\screenshotgen_guiframe.obj \ + $(OBJS)\screenshotgen_ctrlmaskout.obj \ + $(OBJS)\screenshotgen_customcombo.obj \ + $(OBJS)\screenshotgen_autocapture.obj + +### Conditionally set variables: ### + +!if "$(USE_GUI)" == "0" +PORTNAME = base +!endif +!if "$(USE_GUI)" == "1" +PORTNAME = msw +!endif +!if "$(BUILD)" == "debug" && "$(DEBUG_FLAG)" == "default" +WXDEBUGFLAG = d +!endif +!if "$(DEBUG_FLAG)" == "1" +WXDEBUGFLAG = d +!endif +!if "$(UNICODE)" == "1" +WXUNICODEFLAG = u +!endif +!if "$(WXUNIV)" == "1" +WXUNIVNAME = univ +!endif +!if "$(SHARED)" == "1" +WXDLLFLAG = dll +!endif +!if "$(SHARED)" == "0" +LIBTYPE_SUFFIX = lib +!endif +!if "$(SHARED)" == "1" +LIBTYPE_SUFFIX = dll +!endif +!if "$(MONOLITHIC)" == "0" +EXTRALIBS_FOR_BASE = +!endif +!if "$(MONOLITHIC)" == "1" +EXTRALIBS_FOR_BASE = +!endif +!if "$(BUILD)" == "debug" +__OPTIMIZEFLAG_2 = -Od +!endif +!if "$(BUILD)" == "release" +__OPTIMIZEFLAG_2 = -O2 +!endif +!if "$(USE_THREADS)" == "0" +__THREADSFLAG_5 = +!endif +!if "$(USE_THREADS)" == "1" +__THREADSFLAG_5 = mt +!endif +!if "$(USE_THREADS)" == "0" +__THREADSFLAG_6 = +!endif +!if "$(USE_THREADS)" == "1" +__THREADSFLAG_6 = -tWM +!endif +!if "$(RUNTIME_LIBS)" == "dynamic" +__RUNTIME_LIBS_7 = -tWR +!endif +!if "$(RUNTIME_LIBS)" == "static" +__RUNTIME_LIBS_7 = +!endif +!if "$(RUNTIME_LIBS)" == "dynamic" +__RUNTIME_LIBS_8 = i +!endif +!if "$(RUNTIME_LIBS)" == "static" +__RUNTIME_LIBS_8 = +!endif +!if "$(WXUNIV)" == "1" +__WXUNIV_DEFINE_p = -D__WXUNIVERSAL__ +!endif +!if "$(WXUNIV)" == "1" +__WXUNIV_DEFINE_p_1 = -d__WXUNIVERSAL__ +!endif +!if "$(BUILD)" == "debug" && "$(DEBUG_FLAG)" == "default" +__DEBUG_DEFINE_p = -D__WXDEBUG__ +!endif +!if "$(DEBUG_FLAG)" == "1" +__DEBUG_DEFINE_p = -D__WXDEBUG__ +!endif +!if "$(BUILD)" == "debug" && "$(DEBUG_FLAG)" == "default" +__DEBUG_DEFINE_p_1 = -d__WXDEBUG__ +!endif +!if "$(DEBUG_FLAG)" == "1" +__DEBUG_DEFINE_p_1 = -d__WXDEBUG__ +!endif +!if "$(USE_EXCEPTIONS)" == "0" +__EXCEPTIONS_DEFINE_p = -DwxNO_EXCEPTIONS +!endif +!if "$(USE_EXCEPTIONS)" == "0" +__EXCEPTIONS_DEFINE_p_1 = -dwxNO_EXCEPTIONS +!endif +!if "$(USE_RTTI)" == "0" +__RTTI_DEFINE_p = -DwxNO_RTTI +!endif +!if "$(USE_RTTI)" == "0" +__RTTI_DEFINE_p_1 = -dwxNO_RTTI +!endif +!if "$(USE_THREADS)" == "0" +__THREAD_DEFINE_p = -DwxNO_THREADS +!endif +!if "$(USE_THREADS)" == "0" +__THREAD_DEFINE_p_1 = -dwxNO_THREADS +!endif +!if "$(UNICODE)" == "0" +__UNICODE_DEFINE_p = -DwxUSE_UNICODE=0 +!endif +!if "$(UNICODE)" == "1" +__UNICODE_DEFINE_p = -D_UNICODE +!endif +!if "$(UNICODE)" == "0" +__UNICODE_DEFINE_p_1 = -dwxUSE_UNICODE=0 +!endif +!if "$(UNICODE)" == "1" +__UNICODE_DEFINE_p_1 = -d_UNICODE +!endif +!if "$(MSLU)" == "1" +__MSLU_DEFINE_p = -DwxUSE_UNICODE_MSLU=1 +!endif +!if "$(MSLU)" == "1" +__MSLU_DEFINE_p_1 = -dwxUSE_UNICODE_MSLU=1 +!endif +!if "$(USE_GDIPLUS)" == "1" +__GFXCTX_DEFINE_p = -DwxUSE_GRAPHICS_CONTEXT=1 +!endif +!if "$(USE_GDIPLUS)" == "1" +__GFXCTX_DEFINE_p_1 = -dwxUSE_GRAPHICS_CONTEXT=1 +!endif +!if "$(SHARED)" == "1" +__DLLFLAG_p = -DWXUSINGDLL +!endif +!if "$(SHARED)" == "1" +__DLLFLAG_p_1 = -dWXUSINGDLL +!endif +!if "$(MONOLITHIC)" == "0" +__WXLIB_AUI_p = \ + wx$(PORTNAME)$(WXUNIVNAME)$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_aui.lib +!endif +!if "$(MONOLITHIC)" == "0" +__WXLIB_ADV_p = \ + wx$(PORTNAME)$(WXUNIVNAME)$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_adv.lib +!endif +!if "$(MONOLITHIC)" == "0" +__WXLIB_RICHTEXT_p = \ + wx$(PORTNAME)$(WXUNIVNAME)$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_richtext.lib +!endif +!if "$(MONOLITHIC)" == "0" +__WXLIB_HTML_p = \ + wx$(PORTNAME)$(WXUNIVNAME)$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_html.lib +!endif +!if "$(MONOLITHIC)" == "0" +__WXLIB_XML_p = \ + wxbase$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_xml.lib +!endif +!if "$(MONOLITHIC)" == "0" +__WXLIB_CORE_p = \ + wx$(PORTNAME)$(WXUNIVNAME)$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_core.lib +!endif +!if "$(MONOLITHIC)" == "0" +__WXLIB_BASE_p = \ + wxbase$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR).lib +!endif +!if "$(MONOLITHIC)" == "1" +__WXLIB_MONO_p = \ + wx$(PORTNAME)$(WXUNIVNAME)$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR).lib +!endif +!if "$(USE_GUI)" == "1" +__LIB_TIFF_p = wxtiff$(WXDEBUGFLAG).lib +!endif +!if "$(USE_GUI)" == "1" +__LIB_JPEG_p = wxjpeg$(WXDEBUGFLAG).lib +!endif +!if "$(USE_GUI)" == "1" +__LIB_PNG_p = wxpng$(WXDEBUGFLAG).lib +!endif +!if "$(MSLU)" == "1" +__UNICOWS_LIB_p = unicows.lib +!endif +!if "$(USE_GDIPLUS)" == "1" +__GDIPLUS_LIB_p = gdiplus.lib +!endif +!if "$(BUILD)" == "debug" && "$(DEBUG_INFO)" == "default" +__DEBUGINFO = -v +!endif +!if "$(BUILD)" == "release" && "$(DEBUG_INFO)" == "default" +__DEBUGINFO = -v- +!endif +!if "$(DEBUG_INFO)" == "0" +__DEBUGINFO = -v- +!endif +!if "$(DEBUG_INFO)" == "1" +__DEBUGINFO = -v +!endif + + +all: $(OBJS) +$(OBJS): + -if not exist $(OBJS) mkdir $(OBJS) + +### Targets: ### + +all: $(OBJS)\screenshotgen.exe data + +clean: + -if exist $(OBJS)\*.obj del $(OBJS)\*.obj + -if exist $(OBJS)\*.res del $(OBJS)\*.res + -if exist $(OBJS)\*.csm del $(OBJS)\*.csm + -if exist $(OBJS)\screenshotgen.exe del $(OBJS)\screenshotgen.exe + -if exist $(OBJS)\screenshotgen.tds del $(OBJS)\screenshotgen.tds + -if exist $(OBJS)\screenshotgen.ilc del $(OBJS)\screenshotgen.ilc + -if exist $(OBJS)\screenshotgen.ild del $(OBJS)\screenshotgen.ild + -if exist $(OBJS)\screenshotgen.ilf del $(OBJS)\screenshotgen.ilf + -if exist $(OBJS)\screenshotgen.ils del $(OBJS)\screenshotgen.ils + +$(OBJS)\screenshotgen.exe: $(SCREENSHOTGEN_OBJECTS) $(OBJS)\screenshotgen_screenshotgen.res + ilink32 -Tpe -q -L$(BCCDIR)\lib -L$(BCCDIR)\lib\psdk $(__DEBUGINFO) -L$(LIBDIRNAME) -aa $(LDFLAGS) @&&| + c0w32.obj $(SCREENSHOTGEN_OBJECTS),$@,, $(__WXLIB_AUI_p) $(__WXLIB_ADV_p) $(__WXLIB_RICHTEXT_p) $(__WXLIB_HTML_p) $(__WXLIB_XML_p) $(__WXLIB_CORE_p) $(__WXLIB_BASE_p) $(__WXLIB_MONO_p) $(__LIB_TIFF_p) $(__LIB_JPEG_p) $(__LIB_PNG_p) wxzlib$(WXDEBUGFLAG).lib wxregex$(WXUNICODEFLAG)$(WXDEBUGFLAG).lib wxexpat$(WXDEBUGFLAG).lib $(EXTRALIBS_FOR_BASE) $(__UNICOWS_LIB_p) $(__GDIPLUS_LIB_p) ole2w32.lib oleacc.lib import32.lib cw32$(__THREADSFLAG_5)$(__RUNTIME_LIBS_8).lib,, $(OBJS)\screenshotgen_screenshotgen.res +| + +data: + if not exist $(OBJS) mkdir $(OBJS) + for %f in (richtext.xml bitmaps/wxwin32x32.png bitmaps/bell.png bitmaps/info.png bitmaps/sound.png bitmaps/dropbuth.png bitmaps/dropbutn.png bitmaps/dropbutp.png bitmaps/throbber.gif) do if not exist $(OBJS)\%f copy .\%f $(OBJS) + +$(OBJS)\screenshotgen_screenshot_app.obj: .\screenshot_app.cpp + $(CXX) -q -c -P -o$@ $(SCREENSHOTGEN_CXXFLAGS) .\screenshot_app.cpp + +$(OBJS)\screenshotgen_screenshot_main.obj: .\screenshot_main.cpp + $(CXX) -q -c -P -o$@ $(SCREENSHOTGEN_CXXFLAGS) .\screenshot_main.cpp + +$(OBJS)\screenshotgen_guiframe.obj: .\guiframe.cpp + $(CXX) -q -c -P -o$@ $(SCREENSHOTGEN_CXXFLAGS) .\guiframe.cpp + +$(OBJS)\screenshotgen_ctrlmaskout.obj: .\ctrlmaskout.cpp + $(CXX) -q -c -P -o$@ $(SCREENSHOTGEN_CXXFLAGS) .\ctrlmaskout.cpp + +$(OBJS)\screenshotgen_customcombo.obj: .\customcombo.cpp + $(CXX) -q -c -P -o$@ $(SCREENSHOTGEN_CXXFLAGS) .\customcombo.cpp + +$(OBJS)\screenshotgen_autocapture.obj: .\autocapture.cpp + $(CXX) -q -c -P -o$@ $(SCREENSHOTGEN_CXXFLAGS) .\autocapture.cpp + +$(OBJS)\screenshotgen_screenshotgen.res: .\screenshotgen.rc + brcc32 -32 -r -fo$@ -i$(BCCDIR)\include -d__WXMSW__ $(__WXUNIV_DEFINE_p_1) $(__DEBUG_DEFINE_p_1) $(__EXCEPTIONS_DEFINE_p_1) $(__RTTI_DEFINE_p_1) $(__THREAD_DEFINE_p_1) $(__UNICODE_DEFINE_p_1) $(__MSLU_DEFINE_p_1) $(__GFXCTX_DEFINE_p_1) -i$(SETUPHDIR) -i.\..\..\..\include -i. $(__DLLFLAG_p_1) -i.\..\..\..\samples -dNOPCH .\screenshotgen.rc + diff --git a/utils/screenshotgen/src/makefile.gcc b/utils/screenshotgen/src/makefile.gcc new file mode 100644 index 0000000000..2bc26bd51d --- /dev/null +++ b/utils/screenshotgen/src/makefile.gcc @@ -0,0 +1,285 @@ +# ========================================================================= +# This makefile was generated by +# Bakefile 0.2.4 (http://www.bakefile.org) +# Do not modify, all changes will be overwritten! +# ========================================================================= + +include ../../../build/msw/config.gcc + +# ------------------------------------------------------------------------- +# Do not modify the rest of this file! +# ------------------------------------------------------------------------- + +### Variables: ### + +CPPDEPS = -MT$@ -MF$@.d -MD -MP +WX_RELEASE_NODOT = 29 +COMPILER_PREFIX = gcc +OBJS = \ + $(COMPILER_PREFIX)_$(PORTNAME)$(WXUNIVNAME)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WXDLLFLAG)$(CFG) +LIBDIRNAME = .\..\..\..\lib\$(COMPILER_PREFIX)_$(LIBTYPE_SUFFIX)$(CFG) +SETUPHDIR = \ + $(LIBDIRNAME)\$(PORTNAME)$(WXUNIVNAME)$(WXUNICODEFLAG)$(WXDEBUGFLAG) +SCREENSHOTGEN_CXXFLAGS = $(__DEBUGINFO) $(__OPTIMIZEFLAG_2) $(__THREADSFLAG) \ + $(GCCFLAGS) -DHAVE_W32API_H -D__WXMSW__ $(__WXUNIV_DEFINE_p) \ + $(__DEBUG_DEFINE_p) $(__EXCEPTIONS_DEFINE_p) $(__RTTI_DEFINE_p) \ + $(__THREAD_DEFINE_p) $(__UNICODE_DEFINE_p) $(__MSLU_DEFINE_p) \ + $(__GFXCTX_DEFINE_p) -I$(SETUPHDIR) -I.\..\..\..\include -W -Wall -I. \ + $(__DLLFLAG_p) -I.\..\..\..\samples -DNOPCH $(__RTTIFLAG_5) \ + $(__EXCEPTIONSFLAG_6) -Wno-ctor-dtor-privacy $(CPPFLAGS) $(CXXFLAGS) +SCREENSHOTGEN_OBJECTS = \ + $(OBJS)\screenshotgen_screenshot_app.o \ + $(OBJS)\screenshotgen_screenshot_main.o \ + $(OBJS)\screenshotgen_guiframe.o \ + $(OBJS)\screenshotgen_ctrlmaskout.o \ + $(OBJS)\screenshotgen_customcombo.o \ + $(OBJS)\screenshotgen_autocapture.o \ + $(OBJS)\screenshotgen_screenshotgen_rc.o + +### Conditionally set variables: ### + +ifeq ($(GCC_VERSION),2.95) +GCCFLAGS = -fvtable-thunks +endif +ifeq ($(USE_GUI),0) +PORTNAME = base +endif +ifeq ($(USE_GUI),1) +PORTNAME = msw +endif +ifeq ($(BUILD),debug) +ifeq ($(DEBUG_FLAG),default) +WXDEBUGFLAG = d +endif +endif +ifeq ($(DEBUG_FLAG),1) +WXDEBUGFLAG = d +endif +ifeq ($(UNICODE),1) +WXUNICODEFLAG = u +endif +ifeq ($(WXUNIV),1) +WXUNIVNAME = univ +endif +ifeq ($(SHARED),1) +WXDLLFLAG = dll +endif +ifeq ($(SHARED),0) +LIBTYPE_SUFFIX = lib +endif +ifeq ($(SHARED),1) +LIBTYPE_SUFFIX = dll +endif +ifeq ($(MONOLITHIC),0) +EXTRALIBS_FOR_BASE = +endif +ifeq ($(MONOLITHIC),1) +EXTRALIBS_FOR_BASE = +endif +ifeq ($(BUILD),debug) +__OPTIMIZEFLAG_2 = -O0 +endif +ifeq ($(BUILD),release) +__OPTIMIZEFLAG_2 = -O2 +endif +ifeq ($(USE_RTTI),0) +__RTTIFLAG_5 = -fno-rtti +endif +ifeq ($(USE_RTTI),1) +__RTTIFLAG_5 = +endif +ifeq ($(USE_EXCEPTIONS),0) +__EXCEPTIONSFLAG_6 = -fno-exceptions +endif +ifeq ($(USE_EXCEPTIONS),1) +__EXCEPTIONSFLAG_6 = +endif +ifeq ($(WXUNIV),1) +__WXUNIV_DEFINE_p = -D__WXUNIVERSAL__ +endif +ifeq ($(WXUNIV),1) +__WXUNIV_DEFINE_p_1 = --define __WXUNIVERSAL__ +endif +ifeq ($(BUILD),debug) +ifeq ($(DEBUG_FLAG),default) +__DEBUG_DEFINE_p = -D__WXDEBUG__ +endif +endif +ifeq ($(DEBUG_FLAG),1) +__DEBUG_DEFINE_p = -D__WXDEBUG__ +endif +ifeq ($(BUILD),debug) +ifeq ($(DEBUG_FLAG),default) +__DEBUG_DEFINE_p_1 = --define __WXDEBUG__ +endif +endif +ifeq ($(DEBUG_FLAG),1) +__DEBUG_DEFINE_p_1 = --define __WXDEBUG__ +endif +ifeq ($(USE_EXCEPTIONS),0) +__EXCEPTIONS_DEFINE_p = -DwxNO_EXCEPTIONS +endif +ifeq ($(USE_EXCEPTIONS),0) +__EXCEPTIONS_DEFINE_p_1 = --define wxNO_EXCEPTIONS +endif +ifeq ($(USE_RTTI),0) +__RTTI_DEFINE_p = -DwxNO_RTTI +endif +ifeq ($(USE_RTTI),0) +__RTTI_DEFINE_p_1 = --define wxNO_RTTI +endif +ifeq ($(USE_THREADS),0) +__THREAD_DEFINE_p = -DwxNO_THREADS +endif +ifeq ($(USE_THREADS),0) +__THREAD_DEFINE_p_1 = --define wxNO_THREADS +endif +ifeq ($(UNICODE),0) +__UNICODE_DEFINE_p = -DwxUSE_UNICODE=0 +endif +ifeq ($(UNICODE),1) +__UNICODE_DEFINE_p = -D_UNICODE +endif +ifeq ($(UNICODE),0) +__UNICODE_DEFINE_p_1 = --define wxUSE_UNICODE=0 +endif +ifeq ($(UNICODE),1) +__UNICODE_DEFINE_p_1 = --define _UNICODE +endif +ifeq ($(MSLU),1) +__MSLU_DEFINE_p = -DwxUSE_UNICODE_MSLU=1 +endif +ifeq ($(MSLU),1) +__MSLU_DEFINE_p_1 = --define wxUSE_UNICODE_MSLU=1 +endif +ifeq ($(USE_GDIPLUS),1) +__GFXCTX_DEFINE_p = -DwxUSE_GRAPHICS_CONTEXT=1 +endif +ifeq ($(USE_GDIPLUS),1) +__GFXCTX_DEFINE_p_1 = --define wxUSE_GRAPHICS_CONTEXT=1 +endif +ifeq ($(SHARED),1) +__DLLFLAG_p = -DWXUSINGDLL +endif +ifeq ($(SHARED),1) +__DLLFLAG_p_1 = --define WXUSINGDLL +endif +ifeq ($(MONOLITHIC),0) +__WXLIB_AUI_p = \ + -lwx$(PORTNAME)$(WXUNIVNAME)$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_aui +endif +ifeq ($(MONOLITHIC),0) +__WXLIB_ADV_p = \ + -lwx$(PORTNAME)$(WXUNIVNAME)$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_adv +endif +ifeq ($(MONOLITHIC),0) +__WXLIB_RICHTEXT_p = \ + -lwx$(PORTNAME)$(WXUNIVNAME)$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_richtext +endif +ifeq ($(MONOLITHIC),0) +__WXLIB_HTML_p = \ + -lwx$(PORTNAME)$(WXUNIVNAME)$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_html +endif +ifeq ($(MONOLITHIC),0) +__WXLIB_XML_p = \ + -lwxbase$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_xml +endif +ifeq ($(MONOLITHIC),0) +__WXLIB_CORE_p = \ + -lwx$(PORTNAME)$(WXUNIVNAME)$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_core +endif +ifeq ($(MONOLITHIC),0) +__WXLIB_BASE_p = \ + -lwxbase$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR) +endif +ifeq ($(MONOLITHIC),1) +__WXLIB_MONO_p = \ + -lwx$(PORTNAME)$(WXUNIVNAME)$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR) +endif +ifeq ($(USE_GUI),1) +__LIB_TIFF_p = -lwxtiff$(WXDEBUGFLAG) +endif +ifeq ($(USE_GUI),1) +__LIB_JPEG_p = -lwxjpeg$(WXDEBUGFLAG) +endif +ifeq ($(USE_GUI),1) +__LIB_PNG_p = -lwxpng$(WXDEBUGFLAG) +endif +ifeq ($(MSLU),1) +__UNICOWS_LIB_p = -lunicows +endif +ifeq ($(USE_GDIPLUS),1) +__GDIPLUS_LIB_p = -lgdiplus +endif +ifeq ($(BUILD),debug) +ifeq ($(DEBUG_INFO),default) +__DEBUGINFO = -g +endif +endif +ifeq ($(BUILD),release) +ifeq ($(DEBUG_INFO),default) +__DEBUGINFO = +endif +endif +ifeq ($(DEBUG_INFO),0) +__DEBUGINFO = +endif +ifeq ($(DEBUG_INFO),1) +__DEBUGINFO = -g +endif +ifeq ($(USE_THREADS),0) +__THREADSFLAG = +endif +ifeq ($(USE_THREADS),1) +__THREADSFLAG = -mthreads +endif + + +all: $(OBJS) +$(OBJS): + -if not exist $(OBJS) mkdir $(OBJS) + +### Targets: ### + +all: $(OBJS)\screenshotgen.exe data + +clean: + -if exist $(OBJS)\*.o del $(OBJS)\*.o + -if exist $(OBJS)\*.d del $(OBJS)\*.d + -if exist $(OBJS)\screenshotgen.exe del $(OBJS)\screenshotgen.exe + +$(OBJS)\screenshotgen.exe: $(SCREENSHOTGEN_OBJECTS) $(OBJS)\screenshotgen_screenshotgen_rc.o + $(CXX) -o $@ $(SCREENSHOTGEN_OBJECTS) $(__DEBUGINFO) $(__THREADSFLAG) -L$(LIBDIRNAME) -Wl,--subsystem,windows -mwindows $(LDFLAGS) $(__WXLIB_AUI_p) $(__WXLIB_ADV_p) $(__WXLIB_RICHTEXT_p) $(__WXLIB_HTML_p) $(__WXLIB_XML_p) $(__WXLIB_CORE_p) $(__WXLIB_BASE_p) $(__WXLIB_MONO_p) $(__LIB_TIFF_p) $(__LIB_JPEG_p) $(__LIB_PNG_p) -lwxzlib$(WXDEBUGFLAG) -lwxregex$(WXUNICODEFLAG)$(WXDEBUGFLAG) -lwxexpat$(WXDEBUGFLAG) $(EXTRALIBS_FOR_BASE) $(__UNICOWS_LIB_p) $(__GDIPLUS_LIB_p) -lkernel32 -luser32 -lgdi32 -lcomdlg32 -lwinspool -lwinmm -lshell32 -lcomctl32 -lole32 -loleaut32 -luuid -lrpcrt4 -ladvapi32 -lwsock32 + +data: + if not exist $(OBJS) mkdir $(OBJS) + for %%f in (richtext.xml bitmaps/wxwin32x32.png bitmaps/bell.png bitmaps/info.png bitmaps/sound.png bitmaps/dropbuth.png bitmaps/dropbutn.png bitmaps/dropbutp.png bitmaps/throbber.gif) do if not exist $(OBJS)\%%f copy .\%%f $(OBJS) + +$(OBJS)\screenshotgen_screenshot_app.o: ./screenshot_app.cpp + $(CXX) -c -o $@ $(SCREENSHOTGEN_CXXFLAGS) $(CPPDEPS) $< + +$(OBJS)\screenshotgen_screenshot_main.o: ./screenshot_main.cpp + $(CXX) -c -o $@ $(SCREENSHOTGEN_CXXFLAGS) $(CPPDEPS) $< + +$(OBJS)\screenshotgen_guiframe.o: ./guiframe.cpp + $(CXX) -c -o $@ $(SCREENSHOTGEN_CXXFLAGS) $(CPPDEPS) $< + +$(OBJS)\screenshotgen_ctrlmaskout.o: ./ctrlmaskout.cpp + $(CXX) -c -o $@ $(SCREENSHOTGEN_CXXFLAGS) $(CPPDEPS) $< + +$(OBJS)\screenshotgen_customcombo.o: ./customcombo.cpp + $(CXX) -c -o $@ $(SCREENSHOTGEN_CXXFLAGS) $(CPPDEPS) $< + +$(OBJS)\screenshotgen_autocapture.o: ./autocapture.cpp + $(CXX) -c -o $@ $(SCREENSHOTGEN_CXXFLAGS) $(CPPDEPS) $< + +$(OBJS)\screenshotgen_screenshotgen_rc.o: ./screenshotgen.rc + windres --use-temp-file -i$< -o$@ --define __WXMSW__ $(__WXUNIV_DEFINE_p_1) $(__DEBUG_DEFINE_p_1) $(__EXCEPTIONS_DEFINE_p_1) $(__RTTI_DEFINE_p_1) $(__THREAD_DEFINE_p_1) $(__UNICODE_DEFINE_p_1) $(__MSLU_DEFINE_p_1) $(__GFXCTX_DEFINE_p_1) --include-dir $(SETUPHDIR) --include-dir ./../../../include --include-dir . $(__DLLFLAG_p_1) --include-dir ./../../../samples --define NOPCH + +.PHONY: all clean data + + +SHELL := $(COMSPEC) + +# Dependencies tracking: +-include $(OBJS)/*.d diff --git a/utils/screenshotgen/src/makefile.vc b/utils/screenshotgen/src/makefile.vc new file mode 100644 index 0000000000..ed1159e2de --- /dev/null +++ b/utils/screenshotgen/src/makefile.vc @@ -0,0 +1,361 @@ +# ========================================================================= +# This makefile was generated by +# Bakefile 0.2.4 (http://www.bakefile.org) +# Do not modify, all changes will be overwritten! +# ========================================================================= + +!include <../../../build/msw/config.vc> + +# ------------------------------------------------------------------------- +# Do not modify the rest of this file! +# ------------------------------------------------------------------------- + +### Variables: ### + +WX_RELEASE_NODOT = 29 +COMPILER_PREFIX = vc +OBJS = \ + $(COMPILER_PREFIX)_$(PORTNAME)$(WXUNIVNAME)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WXDLLFLAG)$(CFG)$(DIR_SUFFIX_CPU) +LIBDIRNAME = \ + .\..\..\..\lib\$(COMPILER_PREFIX)$(DIR_SUFFIX_CPU)_$(LIBTYPE_SUFFIX)$(CFG) +SETUPHDIR = \ + $(LIBDIRNAME)\$(PORTNAME)$(WXUNIVNAME)$(WXUNICODEFLAG)$(WXDEBUGFLAG) +SCREENSHOTGEN_CXXFLAGS = /M$(__RUNTIME_LIBS_8)$(__DEBUGRUNTIME_3) /DWIN32 \ + $(__DEBUGINFO_0) /Fd$(OBJS)\screenshotgen.pdb $(____DEBUGRUNTIME_2_p) \ + $(__OPTIMIZEFLAG_4) $(__NO_VC_CRTDBG_p) /D__WXMSW__ $(__WXUNIV_DEFINE_p) \ + $(__DEBUG_DEFINE_p) $(__EXCEPTIONS_DEFINE_p) $(__RTTI_DEFINE_p) \ + $(__THREAD_DEFINE_p) $(__UNICODE_DEFINE_p) $(__MSLU_DEFINE_p) \ + $(__GFXCTX_DEFINE_p) /I$(SETUPHDIR) /I.\..\..\..\include /W4 /I. \ + $(__DLLFLAG_p) /D_WINDOWS /I.\..\..\..\samples /DNOPCH $(__RTTIFLAG_9) \ + $(__EXCEPTIONSFLAG_10) $(CPPFLAGS) $(CXXFLAGS) +SCREENSHOTGEN_OBJECTS = \ + $(OBJS)\screenshotgen_screenshot_app.obj \ + $(OBJS)\screenshotgen_screenshot_main.obj \ + $(OBJS)\screenshotgen_guiframe.obj \ + $(OBJS)\screenshotgen_ctrlmaskout.obj \ + $(OBJS)\screenshotgen_customcombo.obj \ + $(OBJS)\screenshotgen_autocapture.obj \ + $(OBJS)\screenshotgen_screenshotgen.res + +### Conditionally set variables: ### + +!if "$(USE_GUI)" == "0" +PORTNAME = base +!endif +!if "$(USE_GUI)" == "1" +PORTNAME = msw +!endif +!if "$(BUILD)" == "debug" && "$(DEBUG_FLAG)" == "default" +WXDEBUGFLAG = d +!endif +!if "$(DEBUG_FLAG)" == "1" +WXDEBUGFLAG = d +!endif +!if "$(UNICODE)" == "1" +WXUNICODEFLAG = u +!endif +!if "$(WXUNIV)" == "1" +WXUNIVNAME = univ +!endif +!if "$(TARGET_CPU)" == "AMD64" +DIR_SUFFIX_CPU = _amd64 +!endif +!if "$(TARGET_CPU)" == "IA64" +DIR_SUFFIX_CPU = _ia64 +!endif +!if "$(TARGET_CPU)" == "amd64" +DIR_SUFFIX_CPU = _amd64 +!endif +!if "$(TARGET_CPU)" == "ia64" +DIR_SUFFIX_CPU = _ia64 +!endif +!if "$(SHARED)" == "1" +WXDLLFLAG = dll +!endif +!if "$(SHARED)" == "0" +LIBTYPE_SUFFIX = lib +!endif +!if "$(SHARED)" == "1" +LIBTYPE_SUFFIX = dll +!endif +!if "$(TARGET_CPU)" == "AMD64" +LINK_TARGET_CPU = /MACHINE:AMD64 +!endif +!if "$(TARGET_CPU)" == "IA64" +LINK_TARGET_CPU = /MACHINE:IA64 +!endif +!if "$(TARGET_CPU)" == "amd64" +LINK_TARGET_CPU = /MACHINE:AMD64 +!endif +!if "$(TARGET_CPU)" == "ia64" +LINK_TARGET_CPU = /MACHINE:IA64 +!endif +!if "$(MONOLITHIC)" == "0" +EXTRALIBS_FOR_BASE = +!endif +!if "$(MONOLITHIC)" == "1" +EXTRALIBS_FOR_BASE = +!endif +!if "$(BUILD)" == "debug" && "$(DEBUG_INFO)" == "default" +__DEBUGINFO_0 = /Zi +!endif +!if "$(BUILD)" == "release" && "$(DEBUG_INFO)" == "default" +__DEBUGINFO_0 = +!endif +!if "$(DEBUG_INFO)" == "0" +__DEBUGINFO_0 = +!endif +!if "$(DEBUG_INFO)" == "1" +__DEBUGINFO_0 = /Zi +!endif +!if "$(BUILD)" == "debug" && "$(DEBUG_INFO)" == "default" +__DEBUGINFO_1 = /DEBUG +!endif +!if "$(BUILD)" == "release" && "$(DEBUG_INFO)" == "default" +__DEBUGINFO_1 = +!endif +!if "$(DEBUG_INFO)" == "0" +__DEBUGINFO_1 = +!endif +!if "$(DEBUG_INFO)" == "1" +__DEBUGINFO_1 = /DEBUG +!endif +!if "$(BUILD)" == "debug" && "$(DEBUG_RUNTIME_LIBS)" == "default" +____DEBUGRUNTIME_2_p = /D_DEBUG +!endif +!if "$(BUILD)" == "release" && "$(DEBUG_RUNTIME_LIBS)" == "default" +____DEBUGRUNTIME_2_p = +!endif +!if "$(DEBUG_RUNTIME_LIBS)" == "0" +____DEBUGRUNTIME_2_p = +!endif +!if "$(DEBUG_RUNTIME_LIBS)" == "1" +____DEBUGRUNTIME_2_p = /D_DEBUG +!endif +!if "$(BUILD)" == "debug" && "$(DEBUG_RUNTIME_LIBS)" == "default" +____DEBUGRUNTIME_2_p_1 = /d _DEBUG +!endif +!if "$(BUILD)" == "release" && "$(DEBUG_RUNTIME_LIBS)" == "default" +____DEBUGRUNTIME_2_p_1 = +!endif +!if "$(DEBUG_RUNTIME_LIBS)" == "0" +____DEBUGRUNTIME_2_p_1 = +!endif +!if "$(DEBUG_RUNTIME_LIBS)" == "1" +____DEBUGRUNTIME_2_p_1 = /d _DEBUG +!endif +!if "$(BUILD)" == "debug" && "$(DEBUG_RUNTIME_LIBS)" == "default" +__DEBUGRUNTIME_3 = d +!endif +!if "$(BUILD)" == "release" && "$(DEBUG_RUNTIME_LIBS)" == "default" +__DEBUGRUNTIME_3 = +!endif +!if "$(DEBUG_RUNTIME_LIBS)" == "0" +__DEBUGRUNTIME_3 = +!endif +!if "$(DEBUG_RUNTIME_LIBS)" == "1" +__DEBUGRUNTIME_3 = d +!endif +!if "$(BUILD)" == "debug" +__OPTIMIZEFLAG_4 = /Od +!endif +!if "$(BUILD)" == "release" +__OPTIMIZEFLAG_4 = /O2 +!endif +!if "$(USE_THREADS)" == "0" +__THREADSFLAG_7 = L +!endif +!if "$(USE_THREADS)" == "1" +__THREADSFLAG_7 = T +!endif +!if "$(RUNTIME_LIBS)" == "dynamic" +__RUNTIME_LIBS_8 = D +!endif +!if "$(RUNTIME_LIBS)" == "static" +__RUNTIME_LIBS_8 = $(__THREADSFLAG_7) +!endif +!if "$(USE_RTTI)" == "0" +__RTTIFLAG_9 = +!endif +!if "$(USE_RTTI)" == "1" +__RTTIFLAG_9 = /GR +!endif +!if "$(USE_EXCEPTIONS)" == "0" +__EXCEPTIONSFLAG_10 = +!endif +!if "$(USE_EXCEPTIONS)" == "1" +__EXCEPTIONSFLAG_10 = /EHsc +!endif +!if "$(BUILD)" == "debug" && "$(DEBUG_RUNTIME_LIBS)" == "0" +__NO_VC_CRTDBG_p = /D__NO_VC_CRTDBG__ +!endif +!if "$(BUILD)" == "release" && "$(DEBUG_FLAG)" == "1" +__NO_VC_CRTDBG_p = /D__NO_VC_CRTDBG__ +!endif +!if "$(BUILD)" == "debug" && "$(DEBUG_RUNTIME_LIBS)" == "0" +__NO_VC_CRTDBG_p_1 = /d __NO_VC_CRTDBG__ +!endif +!if "$(BUILD)" == "release" && "$(DEBUG_FLAG)" == "1" +__NO_VC_CRTDBG_p_1 = /d __NO_VC_CRTDBG__ +!endif +!if "$(WXUNIV)" == "1" +__WXUNIV_DEFINE_p = /D__WXUNIVERSAL__ +!endif +!if "$(WXUNIV)" == "1" +__WXUNIV_DEFINE_p_1 = /d __WXUNIVERSAL__ +!endif +!if "$(BUILD)" == "debug" && "$(DEBUG_FLAG)" == "default" +__DEBUG_DEFINE_p = /D__WXDEBUG__ +!endif +!if "$(DEBUG_FLAG)" == "1" +__DEBUG_DEFINE_p = /D__WXDEBUG__ +!endif +!if "$(BUILD)" == "debug" && "$(DEBUG_FLAG)" == "default" +__DEBUG_DEFINE_p_1 = /d __WXDEBUG__ +!endif +!if "$(DEBUG_FLAG)" == "1" +__DEBUG_DEFINE_p_1 = /d __WXDEBUG__ +!endif +!if "$(USE_EXCEPTIONS)" == "0" +__EXCEPTIONS_DEFINE_p = /DwxNO_EXCEPTIONS +!endif +!if "$(USE_EXCEPTIONS)" == "0" +__EXCEPTIONS_DEFINE_p_1 = /d wxNO_EXCEPTIONS +!endif +!if "$(USE_RTTI)" == "0" +__RTTI_DEFINE_p = /DwxNO_RTTI +!endif +!if "$(USE_RTTI)" == "0" +__RTTI_DEFINE_p_1 = /d wxNO_RTTI +!endif +!if "$(USE_THREADS)" == "0" +__THREAD_DEFINE_p = /DwxNO_THREADS +!endif +!if "$(USE_THREADS)" == "0" +__THREAD_DEFINE_p_1 = /d wxNO_THREADS +!endif +!if "$(UNICODE)" == "0" +__UNICODE_DEFINE_p = /DwxUSE_UNICODE=0 +!endif +!if "$(UNICODE)" == "1" +__UNICODE_DEFINE_p = /D_UNICODE +!endif +!if "$(UNICODE)" == "0" +__UNICODE_DEFINE_p_1 = /d wxUSE_UNICODE=0 +!endif +!if "$(UNICODE)" == "1" +__UNICODE_DEFINE_p_1 = /d _UNICODE +!endif +!if "$(MSLU)" == "1" +__MSLU_DEFINE_p = /DwxUSE_UNICODE_MSLU=1 +!endif +!if "$(MSLU)" == "1" +__MSLU_DEFINE_p_1 = /d wxUSE_UNICODE_MSLU=1 +!endif +!if "$(USE_GDIPLUS)" == "1" +__GFXCTX_DEFINE_p = /DwxUSE_GRAPHICS_CONTEXT=1 +!endif +!if "$(USE_GDIPLUS)" == "1" +__GFXCTX_DEFINE_p_1 = /d wxUSE_GRAPHICS_CONTEXT=1 +!endif +!if "$(SHARED)" == "1" +__DLLFLAG_p = /DWXUSINGDLL +!endif +!if "$(SHARED)" == "1" +__DLLFLAG_p_1 = /d WXUSINGDLL +!endif +!if "$(MONOLITHIC)" == "0" +__WXLIB_AUI_p = \ + wx$(PORTNAME)$(WXUNIVNAME)$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_aui.lib +!endif +!if "$(MONOLITHIC)" == "0" +__WXLIB_ADV_p = \ + wx$(PORTNAME)$(WXUNIVNAME)$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_adv.lib +!endif +!if "$(MONOLITHIC)" == "0" +__WXLIB_RICHTEXT_p = \ + wx$(PORTNAME)$(WXUNIVNAME)$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_richtext.lib +!endif +!if "$(MONOLITHIC)" == "0" +__WXLIB_HTML_p = \ + wx$(PORTNAME)$(WXUNIVNAME)$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_html.lib +!endif +!if "$(MONOLITHIC)" == "0" +__WXLIB_XML_p = \ + wxbase$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_xml.lib +!endif +!if "$(MONOLITHIC)" == "0" +__WXLIB_CORE_p = \ + wx$(PORTNAME)$(WXUNIVNAME)$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_core.lib +!endif +!if "$(MONOLITHIC)" == "0" +__WXLIB_BASE_p = \ + wxbase$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR).lib +!endif +!if "$(MONOLITHIC)" == "1" +__WXLIB_MONO_p = \ + wx$(PORTNAME)$(WXUNIVNAME)$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR).lib +!endif +!if "$(USE_GUI)" == "1" +__LIB_TIFF_p = wxtiff$(WXDEBUGFLAG).lib +!endif +!if "$(USE_GUI)" == "1" +__LIB_JPEG_p = wxjpeg$(WXDEBUGFLAG).lib +!endif +!if "$(USE_GUI)" == "1" +__LIB_PNG_p = wxpng$(WXDEBUGFLAG).lib +!endif +!if "$(MSLU)" == "1" +__UNICOWS_LIB_p = unicows.lib +!endif +!if "$(USE_GDIPLUS)" == "1" +__GDIPLUS_LIB_p = gdiplus.lib +!endif + + +all: $(OBJS) +$(OBJS): + -if not exist $(OBJS) mkdir $(OBJS) + +### Targets: ### + +all: $(OBJS)\screenshotgen.exe data + +clean: + -if exist $(OBJS)\*.obj del $(OBJS)\*.obj + -if exist $(OBJS)\*.res del $(OBJS)\*.res + -if exist $(OBJS)\*.pch del $(OBJS)\*.pch + -if exist $(OBJS)\screenshotgen.exe del $(OBJS)\screenshotgen.exe + -if exist $(OBJS)\screenshotgen.ilk del $(OBJS)\screenshotgen.ilk + -if exist $(OBJS)\screenshotgen.pdb del $(OBJS)\screenshotgen.pdb + +$(OBJS)\screenshotgen.exe: $(SCREENSHOTGEN_OBJECTS) $(OBJS)\screenshotgen_screenshotgen.res + link /NOLOGO /OUT:$@ $(__DEBUGINFO_1) /pdb:"$(OBJS)\screenshotgen.pdb" $(LINK_TARGET_CPU) /LIBPATH:$(LIBDIRNAME) /SUBSYSTEM:WINDOWS $(LDFLAGS) @<< + $(SCREENSHOTGEN_OBJECTS) $(__WXLIB_AUI_p) $(__WXLIB_ADV_p) $(__WXLIB_RICHTEXT_p) $(__WXLIB_HTML_p) $(__WXLIB_XML_p) $(__WXLIB_CORE_p) $(__WXLIB_BASE_p) $(__WXLIB_MONO_p) $(__LIB_TIFF_p) $(__LIB_JPEG_p) $(__LIB_PNG_p) wxzlib$(WXDEBUGFLAG).lib wxregex$(WXUNICODEFLAG)$(WXDEBUGFLAG).lib wxexpat$(WXDEBUGFLAG).lib $(EXTRALIBS_FOR_BASE) $(__UNICOWS_LIB_p) $(__GDIPLUS_LIB_p) kernel32.lib user32.lib gdi32.lib comdlg32.lib winspool.lib winmm.lib shell32.lib comctl32.lib ole32.lib oleaut32.lib uuid.lib rpcrt4.lib advapi32.lib wsock32.lib +<< + +data: + if not exist $(OBJS) mkdir $(OBJS) + for %f in (richtext.xml bitmaps/wxwin32x32.png bitmaps/bell.png bitmaps/info.png bitmaps/sound.png bitmaps/dropbuth.png bitmaps/dropbutn.png bitmaps/dropbutp.png bitmaps/throbber.gif) do if not exist $(OBJS)\%f copy .\%f $(OBJS) + +$(OBJS)\screenshotgen_screenshot_app.obj: .\screenshot_app.cpp + $(CXX) /c /nologo /TP /Fo$@ $(SCREENSHOTGEN_CXXFLAGS) .\screenshot_app.cpp + +$(OBJS)\screenshotgen_screenshot_main.obj: .\screenshot_main.cpp + $(CXX) /c /nologo /TP /Fo$@ $(SCREENSHOTGEN_CXXFLAGS) .\screenshot_main.cpp + +$(OBJS)\screenshotgen_guiframe.obj: .\guiframe.cpp + $(CXX) /c /nologo /TP /Fo$@ $(SCREENSHOTGEN_CXXFLAGS) .\guiframe.cpp + +$(OBJS)\screenshotgen_ctrlmaskout.obj: .\ctrlmaskout.cpp + $(CXX) /c /nologo /TP /Fo$@ $(SCREENSHOTGEN_CXXFLAGS) .\ctrlmaskout.cpp + +$(OBJS)\screenshotgen_customcombo.obj: .\customcombo.cpp + $(CXX) /c /nologo /TP /Fo$@ $(SCREENSHOTGEN_CXXFLAGS) .\customcombo.cpp + +$(OBJS)\screenshotgen_autocapture.obj: .\autocapture.cpp + $(CXX) /c /nologo /TP /Fo$@ $(SCREENSHOTGEN_CXXFLAGS) .\autocapture.cpp + +$(OBJS)\screenshotgen_screenshotgen.res: .\screenshotgen.rc + rc /fo$@ /d WIN32 $(____DEBUGRUNTIME_2_p_1) $(__NO_VC_CRTDBG_p_1) /d __WXMSW__ $(__WXUNIV_DEFINE_p_1) $(__DEBUG_DEFINE_p_1) $(__EXCEPTIONS_DEFINE_p_1) $(__RTTI_DEFINE_p_1) $(__THREAD_DEFINE_p_1) $(__UNICODE_DEFINE_p_1) $(__MSLU_DEFINE_p_1) $(__GFXCTX_DEFINE_p_1) /i $(SETUPHDIR) /i .\..\..\..\include /i . $(__DLLFLAG_p_1) /d _WINDOWS /i .\..\..\..\samples /d NOPCH .\screenshotgen.rc + diff --git a/utils/screenshotgen/src/makefile.wat b/utils/screenshotgen/src/makefile.wat new file mode 100644 index 0000000000..12ed10a493 --- /dev/null +++ b/utils/screenshotgen/src/makefile.wat @@ -0,0 +1,315 @@ +# ========================================================================= +# This makefile was generated by +# Bakefile 0.2.4 (http://www.bakefile.org) +# Do not modify, all changes will be overwritten! +# ========================================================================= + +!include ../../../build/msw/config.wat + +# ------------------------------------------------------------------------- +# Do not modify the rest of this file! +# ------------------------------------------------------------------------- + +# Speed up compilation a bit: +!ifdef __LOADDLL__ +! loaddll wcc wccd +! loaddll wccaxp wccdaxp +! loaddll wcc386 wccd386 +! loaddll wpp wppdi86 +! loaddll wppaxp wppdaxp +! loaddll wpp386 wppd386 +! loaddll wlink wlink +! loaddll wlib wlibd +!endif + +# We need these variables in some bakefile-made rules: +WATCOM_CWD = $+ $(%cdrive):$(%cwd) $- + +### Conditionally set variables: ### + +PORTNAME = +!ifeq USE_GUI 0 +PORTNAME = base +!endif +!ifeq USE_GUI 1 +PORTNAME = msw +!endif +WXDEBUGFLAG = +!ifeq BUILD debug +!ifeq DEBUG_FLAG default +WXDEBUGFLAG = d +!endif +!endif +!ifeq DEBUG_FLAG 1 +WXDEBUGFLAG = d +!endif +WXUNICODEFLAG = +!ifeq UNICODE 1 +WXUNICODEFLAG = u +!endif +WXUNIVNAME = +!ifeq WXUNIV 1 +WXUNIVNAME = univ +!endif +WXDLLFLAG = +!ifeq SHARED 1 +WXDLLFLAG = dll +!endif +LIBTYPE_SUFFIX = +!ifeq SHARED 0 +LIBTYPE_SUFFIX = lib +!endif +!ifeq SHARED 1 +LIBTYPE_SUFFIX = dll +!endif +EXTRALIBS_FOR_BASE = +!ifeq MONOLITHIC 0 +EXTRALIBS_FOR_BASE = +!endif +!ifeq MONOLITHIC 1 +EXTRALIBS_FOR_BASE = +!endif +__DEBUGINFO_0 = +!ifeq BUILD debug +!ifeq DEBUG_INFO default +__DEBUGINFO_0 = -d2 +!endif +!endif +!ifeq BUILD release +!ifeq DEBUG_INFO default +__DEBUGINFO_0 = -d0 +!endif +!endif +!ifeq DEBUG_INFO 0 +__DEBUGINFO_0 = -d0 +!endif +!ifeq DEBUG_INFO 1 +__DEBUGINFO_0 = -d2 +!endif +__DEBUGINFO_1 = +!ifeq BUILD debug +!ifeq DEBUG_INFO default +__DEBUGINFO_1 = debug all +!endif +!endif +!ifeq BUILD release +!ifeq DEBUG_INFO default +__DEBUGINFO_1 = +!endif +!endif +!ifeq DEBUG_INFO 0 +__DEBUGINFO_1 = +!endif +!ifeq DEBUG_INFO 1 +__DEBUGINFO_1 = debug all +!endif +__OPTIMIZEFLAG_2 = +!ifeq BUILD debug +__OPTIMIZEFLAG_2 = -od +!endif +!ifeq BUILD release +__OPTIMIZEFLAG_2 = -ot -ox +!endif +__THREADSFLAG_5 = +!ifeq USE_THREADS 0 +__THREADSFLAG_5 = +!endif +!ifeq USE_THREADS 1 +__THREADSFLAG_5 = -bm +!endif +__RUNTIME_LIBS_6 = +!ifeq RUNTIME_LIBS dynamic +__RUNTIME_LIBS_6 = -br +!endif +!ifeq RUNTIME_LIBS static +__RUNTIME_LIBS_6 = +!endif +__RTTIFLAG_7 = +!ifeq USE_RTTI 0 +__RTTIFLAG_7 = +!endif +!ifeq USE_RTTI 1 +__RTTIFLAG_7 = -xr +!endif +__EXCEPTIONSFLAG_8 = +!ifeq USE_EXCEPTIONS 0 +__EXCEPTIONSFLAG_8 = +!endif +!ifeq USE_EXCEPTIONS 1 +__EXCEPTIONSFLAG_8 = -xs +!endif +__WXLIB_AUI_p = +!ifeq MONOLITHIC 0 +__WXLIB_AUI_p = & + wx$(PORTNAME)$(WXUNIVNAME)$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_aui.lib +!endif +__WXLIB_ADV_p = +!ifeq MONOLITHIC 0 +__WXLIB_ADV_p = & + wx$(PORTNAME)$(WXUNIVNAME)$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_adv.lib +!endif +__WXLIB_RICHTEXT_p = +!ifeq MONOLITHIC 0 +__WXLIB_RICHTEXT_p = & + wx$(PORTNAME)$(WXUNIVNAME)$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_richtext.lib +!endif +__WXLIB_HTML_p = +!ifeq MONOLITHIC 0 +__WXLIB_HTML_p = & + wx$(PORTNAME)$(WXUNIVNAME)$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_html.lib +!endif +__WXLIB_XML_p = +!ifeq MONOLITHIC 0 +__WXLIB_XML_p = & + wxbase$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_xml.lib +!endif +__WXLIB_CORE_p = +!ifeq MONOLITHIC 0 +__WXLIB_CORE_p = & + wx$(PORTNAME)$(WXUNIVNAME)$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_core.lib +!endif +__WXLIB_BASE_p = +!ifeq MONOLITHIC 0 +__WXLIB_BASE_p = & + wxbase$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR).lib +!endif +__WXLIB_MONO_p = +!ifeq MONOLITHIC 1 +__WXLIB_MONO_p = & + wx$(PORTNAME)$(WXUNIVNAME)$(WX_RELEASE_NODOT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR).lib +!endif +__LIB_TIFF_p = +!ifeq USE_GUI 1 +__LIB_TIFF_p = wxtiff$(WXDEBUGFLAG).lib +!endif +__LIB_JPEG_p = +!ifeq USE_GUI 1 +__LIB_JPEG_p = wxjpeg$(WXDEBUGFLAG).lib +!endif +__LIB_PNG_p = +!ifeq USE_GUI 1 +__LIB_PNG_p = wxpng$(WXDEBUGFLAG).lib +!endif +__GDIPLUS_LIB_p = +!ifeq USE_GDIPLUS 1 +__GDIPLUS_LIB_p = gdiplus.lib +!endif +__WXUNIV_DEFINE_p = +!ifeq WXUNIV 1 +__WXUNIV_DEFINE_p = -d__WXUNIVERSAL__ +!endif +__DEBUG_DEFINE_p = +!ifeq BUILD debug +!ifeq DEBUG_FLAG default +__DEBUG_DEFINE_p = -d__WXDEBUG__ +!endif +!endif +!ifeq DEBUG_FLAG 1 +__DEBUG_DEFINE_p = -d__WXDEBUG__ +!endif +__EXCEPTIONS_DEFINE_p = +!ifeq USE_EXCEPTIONS 0 +__EXCEPTIONS_DEFINE_p = -dwxNO_EXCEPTIONS +!endif +__RTTI_DEFINE_p = +!ifeq USE_RTTI 0 +__RTTI_DEFINE_p = -dwxNO_RTTI +!endif +__THREAD_DEFINE_p = +!ifeq USE_THREADS 0 +__THREAD_DEFINE_p = -dwxNO_THREADS +!endif +__UNICODE_DEFINE_p = +!ifeq UNICODE 0 +__UNICODE_DEFINE_p = -dwxUSE_UNICODE=0 +!endif +!ifeq UNICODE 1 +__UNICODE_DEFINE_p = -d_UNICODE +!endif +__GFXCTX_DEFINE_p = +!ifeq USE_GDIPLUS 1 +__GFXCTX_DEFINE_p = -dwxUSE_GRAPHICS_CONTEXT=1 +!endif +__DLLFLAG_p = +!ifeq SHARED 1 +__DLLFLAG_p = -dWXUSINGDLL +!endif + +### Variables: ### + +WX_RELEASE_NODOT = 29 +COMPILER_PREFIX = wat +OBJS = & + $(COMPILER_PREFIX)_$(PORTNAME)$(WXUNIVNAME)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WXDLLFLAG)$(CFG) +LIBDIRNAME = .\..\..\..\lib\$(COMPILER_PREFIX)_$(LIBTYPE_SUFFIX)$(CFG) +SETUPHDIR = & + $(LIBDIRNAME)\$(PORTNAME)$(WXUNIVNAME)$(WXUNICODEFLAG)$(WXDEBUGFLAG) +SCREENSHOTGEN_CXXFLAGS = $(__DEBUGINFO_0) $(__OPTIMIZEFLAG_2) & + $(__THREADSFLAG_5) $(__RUNTIME_LIBS_6) -d__WXMSW__ $(__WXUNIV_DEFINE_p) & + $(__DEBUG_DEFINE_p) $(__EXCEPTIONS_DEFINE_p) $(__RTTI_DEFINE_p) & + $(__THREAD_DEFINE_p) $(__UNICODE_DEFINE_p) $(__GFXCTX_DEFINE_p) & + -i=$(SETUPHDIR) -i=.\..\..\..\include -wx -wcd=549 -wcd=656 -wcd=657 -wcd=667 & + -i=. $(__DLLFLAG_p) -i=.\..\..\..\samples -dNOPCH $(__RTTIFLAG_7) & + $(__EXCEPTIONSFLAG_8) $(CPPFLAGS) $(CXXFLAGS) +SCREENSHOTGEN_OBJECTS = & + $(OBJS)\screenshotgen_screenshot_app.obj & + $(OBJS)\screenshotgen_screenshot_main.obj & + $(OBJS)\screenshotgen_guiframe.obj & + $(OBJS)\screenshotgen_ctrlmaskout.obj & + $(OBJS)\screenshotgen_customcombo.obj & + $(OBJS)\screenshotgen_autocapture.obj + + +all : $(OBJS) +$(OBJS) : + -if not exist $(OBJS) mkdir $(OBJS) + +### Targets: ### + +all : .SYMBOLIC $(OBJS)\screenshotgen.exe data + +clean : .SYMBOLIC + -if exist $(OBJS)\*.obj del $(OBJS)\*.obj + -if exist $(OBJS)\*.res del $(OBJS)\*.res + -if exist $(OBJS)\*.lbc del $(OBJS)\*.lbc + -if exist $(OBJS)\*.ilk del $(OBJS)\*.ilk + -if exist $(OBJS)\*.pch del $(OBJS)\*.pch + -if exist $(OBJS)\screenshotgen.exe del $(OBJS)\screenshotgen.exe + +$(OBJS)\screenshotgen.exe : $(SCREENSHOTGEN_OBJECTS) $(OBJS)\screenshotgen_screenshotgen.res + @%create $(OBJS)\screenshotgen.lbc + @%append $(OBJS)\screenshotgen.lbc option quiet + @%append $(OBJS)\screenshotgen.lbc name $^@ + @%append $(OBJS)\screenshotgen.lbc option caseexact + @%append $(OBJS)\screenshotgen.lbc $(__DEBUGINFO_1) libpath $(LIBDIRNAME) system nt_win ref '_WinMain@16' $(LDFLAGS) + @for %i in ($(SCREENSHOTGEN_OBJECTS)) do @%append $(OBJS)\screenshotgen.lbc file %i + @for %i in ( $(__WXLIB_AUI_p) $(__WXLIB_ADV_p) $(__WXLIB_RICHTEXT_p) $(__WXLIB_HTML_p) $(__WXLIB_XML_p) $(__WXLIB_CORE_p) $(__WXLIB_BASE_p) $(__WXLIB_MONO_p) $(__LIB_TIFF_p) $(__LIB_JPEG_p) $(__LIB_PNG_p) wxzlib$(WXDEBUGFLAG).lib wxregex$(WXUNICODEFLAG)$(WXDEBUGFLAG).lib wxexpat$(WXDEBUGFLAG).lib $(EXTRALIBS_FOR_BASE) $(__GDIPLUS_LIB_p) kernel32.lib user32.lib gdi32.lib comdlg32.lib winspool.lib winmm.lib shell32.lib comctl32.lib ole32.lib oleaut32.lib uuid.lib rpcrt4.lib advapi32.lib wsock32.lib) do @%append $(OBJS)\screenshotgen.lbc library %i + @%append $(OBJS)\screenshotgen.lbc option resource=$(OBJS)\screenshotgen_screenshotgen.res + @for %i in () do @%append $(OBJS)\screenshotgen.lbc option stack=%i + wlink @$(OBJS)\screenshotgen.lbc + +data : .SYMBOLIC + if not exist $(OBJS) mkdir $(OBJS) + for %f in (richtext.xml bitmaps/wxwin32x32.png bitmaps/bell.png bitmaps/info.png bitmaps/sound.png bitmaps/dropbuth.png bitmaps/dropbutn.png bitmaps/dropbutp.png bitmaps/throbber.gif) do if not exist $(OBJS)\%f copy .\%f $(OBJS) + +$(OBJS)\screenshotgen_screenshot_app.obj : .AUTODEPEND .\screenshot_app.cpp + $(CXX) -bt=nt -zq -fo=$^@ $(SCREENSHOTGEN_CXXFLAGS) $< + +$(OBJS)\screenshotgen_screenshot_main.obj : .AUTODEPEND .\screenshot_main.cpp + $(CXX) -bt=nt -zq -fo=$^@ $(SCREENSHOTGEN_CXXFLAGS) $< + +$(OBJS)\screenshotgen_guiframe.obj : .AUTODEPEND .\guiframe.cpp + $(CXX) -bt=nt -zq -fo=$^@ $(SCREENSHOTGEN_CXXFLAGS) $< + +$(OBJS)\screenshotgen_ctrlmaskout.obj : .AUTODEPEND .\ctrlmaskout.cpp + $(CXX) -bt=nt -zq -fo=$^@ $(SCREENSHOTGEN_CXXFLAGS) $< + +$(OBJS)\screenshotgen_customcombo.obj : .AUTODEPEND .\customcombo.cpp + $(CXX) -bt=nt -zq -fo=$^@ $(SCREENSHOTGEN_CXXFLAGS) $< + +$(OBJS)\screenshotgen_autocapture.obj : .AUTODEPEND .\autocapture.cpp + $(CXX) -bt=nt -zq -fo=$^@ $(SCREENSHOTGEN_CXXFLAGS) $< + +$(OBJS)\screenshotgen_screenshotgen.res : .AUTODEPEND .\screenshotgen.rc + wrc -q -ad -bt=nt -r -fo=$^@ -d__WXMSW__ $(__WXUNIV_DEFINE_p) $(__DEBUG_DEFINE_p) $(__EXCEPTIONS_DEFINE_p) $(__RTTI_DEFINE_p) $(__THREAD_DEFINE_p) $(__UNICODE_DEFINE_p) $(__GFXCTX_DEFINE_p) -i=$(SETUPHDIR) -i=.\..\..\..\include -i=. $(__DLLFLAG_p) -i=.\..\..\..\samples -dNOPCH $< + diff --git a/utils/screenshotgen/src/richtext.xml b/utils/screenshotgen/src/richtext.xml new file mode 100644 index 0000000000..f09b5bd943 --- /dev/null +++ b/utils/screenshotgen/src/richtext.xml @@ -0,0 +1,100 @@ + + + + + Welcome to wxRichTextCtrl, a wxWidgets control + 29 + for editing and presenting styled text and images + + + by Julian Smart + + + + 89504E470D0A1A0A0000000D49484452000000800000005C0806000000A6C2BD9F0000000473424954080808087C08648800001C1149444154789CED7D5B8C1DC779E6F757F7B9CC7DC8B990142991144591B62C594AB496614596A5C0B2B2EBB59168EDC8F2FAC1486004BB2F5E0B49EC75E244411681B50A12253102C40EE23C0436EC0446B0762CADB572249994A958374B22AD0B45F34ECDEDCCCCB9F6A5EADF87EAE2A9D3A7BB4F9F99A13883CC8F29744F759DEE3AF57DFFA52E5D07D8944DD9944DD9947FA74297BB02AB1166BE2CF52722BE1CCFBD14B2E108C0CC028000A088485DA63A1000070047F5D8B084D830048880870D3A333B000A6F7355241105B1BA394424DFE67AAC896C0802D80DFCDA6B959B5E7C71EE575E7F7DE103BEAFAE544A8D304300808AA8A114C0DC4EFA1EED63FC5ABC3CB3FDECCE24043595C2CCAE5D433FB9E596C9EF7EF08357FC8088544450DE68D660DD13C080FFB39FCD1EFCEE774FFEC1F1E34B1F574A894241002028C589E0C5F35692D2EE03108240210818DBB60D3C77D75D3BFFF8539FDAFB9DA8BEB49148B0AE0960C07FFCF1D3F7FCE33FBEF635661E1F1870E17961282593108284102002F50BACB116FD92210C99C35031C0ECBAAE9012A252F171C71DDBFFE281076EF81C745CB0612CC1BA258001FF7BDF3B7EDFB7BFFDFA3F6CDD5A4618AA3008947BE5955BB06FDF14262686512A154024A0142E2666A4FEBF926B76BEE705A8565B387F7E1E67CFCEC2F743552E17D5DC5CCB3D7870EC1B5FFDEA2DF745B1C986080ED725010CF8478E9CBBF9EFFEEEE88F06069C82E73106065C71E79D0770E0C0348400C21090B213B45E290E72BFD78C45500A989FAFE385175EC75B6FCDA1542A048B8B41E1CE3BAF78E08107AEFBC38D1218AE57020800F4FBBF7FF850A5D2BA858864B95C70EEB9E7266CDF3E845A8D1186BAAC068800F025033D2D390E414AC633CF1CC5E9D3E7B8582CA985051F0F3DF40BEFFEA55FDA7A14005DAEAE6A5E1197BB027161669788D4134F9CF9E8F9F38D5B5CD79152C2B9EBAEEB30353584C5450522C2E828616C8C30344428140029E96D4D4A119A4D461010AEBFFE1D18191923DF972814C8F9E6374F7E2932FFEB52C16C597704800EA2F0DC73B3F7390E71BD1EF0FEFDDBB067CF162C2F331C47607212181C048874725D5C74092649D94E76FE5A5E538AE0FB0C2104F6EDBB1A612845A924F8E59797EE3E7B76799288E4E51AADCC2BEB8A0051174ACECDF1E88913D55B5DD7212238D75EBB0341A01B7DCB16C0718020688311046D736D804A032EE99A5D262F214C9E5284560B181FDF8AC1C1619212AA5A0D471F7B6CE9FDD1D7722E6BA3F610F7725720260480ABD5EA4ECF5353448C72B984F1F121B45A80108472590310F7CF369849BEFB52C401E69A94DA0A0C0D0DA35AADB15240B5EA5F7BB91B338FAC47024029352C253B448A0B850209E1C2F7B5A927EA0425AEDDF15E41BF64E8F53929BBAF49A9AD92E3942EE6016ACBE56DCA7CB2DE08000010821C29399A7513C44C9052831F0725C944A701BC1232E4B300176B0EA5185212C290D665DBC665DD5652A936E03AE0D2819EDD0FB74960FBE7B7DF05745B878D221B92005956206960682500F7631992DCC24621C1BA244010B4096003EB38D9FEBF970B5809E079E20503B64DBE8D22EB9200409B007A02A653D36C37601ADD26401C38639E5703761E22C49FB111645D1340087BD045F7027AB980240B7029FDBF79BEE374E76F0459B7044832F549DADD2B0658694068AC0D908F04712BB35164DD12C0B800A53A47DEB2C0B763000346BCD710BF871DBD9BCF00FAFF20009A4DA0D5027CBFF33AA0EBE738DA52954A9B16604D258B0097B21B0868C09797817ABD1D90264D07DBF148A904D46A9D966323C8BA268010DD00DB8D9F340A98C7056499F04A45836FA69B935605C50351A5B4A5A8D78146439FEB7B3201A04B3D21B49A8527EB9A00E6986401ECE83F1E27F41BD8015AEB6767F5D1AE437C5550A70560000C6606B303A5CC3431C1F7F5B2306696977A6550B40289A0572CF7F5AC0D45803470CD35336398A5F9F17C00A85681B939740D3727997B730E28048140B3492002CA65C071245C3744A92440141698B90CC065E6F0123513139167AF3CEA7739DABA24800111E8D4ECA47180A440306F379008585C04E6E7F5B3EC80304DF399194A11EA758189893A6EBCF118F6EF3F86A9A919140ACB206AB94A014343CE6F1C3E2C3EA6A7B89571205642EC68924AC9EF2E4F44C1E1C39F592C16C75EDFB2E5C647B66FBFF9FB4474567F1716795623AD4B02009DA0D973F049DA9F1403F41AB801B4BFAF543A6718D3345E1386D16A111C47E1AEBB7E88F7BDEF87D8BA750E00210C0522970F40414A1E6AB5D45027884909E8041F3DCA7726225CD56C9EBFA15279F19E9327BF35F7F2CB7FFC57D75DF7E9FF4D448D3C2458B704F0FD76D7CA26402FEDCFE302988185056069A93DDC9C65F20DF8CD26617C7C09F7DDF7F73870E025B45A83A856CB50CA87107ABD021141AFB3611642AF556C03DD0B6011FB3FAB2C0390AC5408A598851862213079EEDCFFFBC3C5C597FEF3E2E2B3F712D11BBD48B02E091004DA348F8FEBA55F6931403C00CC720166CA5629EDEF6BB5F6FFBDBA7980067F6C6C19BFF55B7F81E9E933585E1E8352750C0D6DC1F4F4BB313EBE03A5D2201CC74164C6491F8D4957E8FE3F9E9F758DBBCE950AC8F31A585C9CC5CCCC69D46A4B5C288C86BEBFFC8BCF3E7BFFBF562A2FDC464427B248B02E090068209796B415B0BB7CBD2C405237D0802FA506BF5E6F077B59819E7D1442E2939FFC3AA6A7CFA05E1F06D0C09E3D3763CF9EF7A2501802200184688324910E721AB0FD5F1B1E1EC7C4C40EECDE7D0D4E9FFE199D38F1B302911B109576BEFCF203FFC47CFE3600CDB43796D6D59A405B4CBF7B7111387B16F0BC4EE0ED215B1B7CB356303E30D46C02E7CFB7353F3E8914BF4F9B700AB51AE1D65B0FE3E0C19FA25E1F0250C781037760FFFE0FA25070C0BC04E61A989B606E44472F4AAD84E4A55CF7FABCE645CFABC375197BF75E8777BEF3DD60F60A42B841B379FEA663C7BEFAB948FB13D726AEC80244031BFAE5BCB5158799E98517161C7BF0A552D144705DF3FCE460D0B600766FA156D33EDFB60479B41E6084A1C0D8580BEF7FFFFF85E795A1541DBB77DF845DBB6E06F31288184443D04D190268016846E72BD5FE7EF3F535A53C6CDF7E151A8D451C3FFEAA5B288CA80B177EF8B96AF5F8DF10D15B49AEA02F0218E0A37EA7EC557E051202C04BAFB61692066ADE7A4B1FED402F694410D047CF6B0FE9DA133B69815E9C0C448C468370FDF5AF616AEA026AB512060787B077EF7F00D0005108601240098017358903DDAC3E56EF06FA730F42283087D8BD7B0F2E5C384DBEEF2929ABE30B0B4FFE0A80AF23DA57C16EF0DC04B05E7592CC5C9E79FEF95FF02A950360DECACC45680A765B04A5B2FFB7F29402B942F1D1C71EBB12340C5621B1EAD4EA20D080D66A7AD8D5F3DA03409EA74DBDEFB78764EDC19D3C5ADF49007D7EE0C02B205290D2C3E4E4B5281486C05C05D1288021688D373A61E20046BA15E84588B4321C3D23EB9E211CA780E9E9499C3871828570797EFED0DDD004E88A01721120321DB27EF2E415271F7FFC7FFCE80B5FF8556F69691F1B758B0F90AF30290606C9C3E9FA2E40DC07A54252DCE9AFCDE33C4F8FE02D2DE954A9E8019D7ABDB35C52DC9015F177BA0F8210C0E4E4ECC5AEE0E8E854046C086030D6F83609CCF94A34BF1709B2CAEA2F3F3A3A0C215810817C7F691F0024BDABD89300C66F1CFFCE777EF3C70F3EF8271C86934EA904512C3287A1525276BFA06FEC6D5A1ED0B6041D65001083DD0229862312A27DFB56E63641A0B5DE0480263F4BDB7B59037D4E6006CAE56528C52022944A250041D4D8A69F6F0321D16D0D5663EA5742068562D189D6502A00183738C67B0399043066FFC5AF7CE5A1138F3C72BF333000769C30F43C511E1D15C33B7638A5C14138F6529D6455CAA5724A32CA6E80C5992D506F30983A7D7CAF019E78995EC0A755315E56EF08A31B5B0FEE180BC05632E09B6388D5598095B800F33C82E3B4EBA594749112B0A712C0807FEC1BDFF89FA77EF083FBCBE3E361D06C8AF2C888BBFBF6DB317DCD35289A17F44CEBDBC7B431D8F835BB7CA8809242FD5582FC8182E350575F3F0E58D2A0505E1F9FC732E86961D3B8C2023FAEDD6916A097CFBE1404A118F92C9399870006FCB3870FDFFACAD7BEF6BFCAE3E3A1DF68385B77EDA2EB3EFC6194C6C77584D56880E3E1781209B28861E529A9200289A0E982D500D85A0F90D4BD4B2241D26011B0728BA0F34C639B868D077BB6F6AB8432AB0135CFF5787E9C00E91DB6B481206666E7F4638F7DD91D1840D86AD1E8E424DDF0D18FA2343808AE54B46A148BA062110480A40429A58FCCFADC24732D294969A576BE62802DEE64AD088A5B80F8C290A4B5037162257DBEDDAD8C036D9B77BBF193B43F4CC8B753DA359990F27CCE4E76DD92A5CB0218ED7FEBA597DE573B75EA56676040210C9D831FF800DC52095CAB818686809111DD3ABEAFDD40A3A1CFE3E8F4D2FE0EA40050800209B802900A103244182A28E5A4AEF38B5B00A0F3112B35FFEDAA33DA01B4695C13172405817699240DB5C9C4B17C193BC6AFE57101C655D924CD490044C1C2EC91231F6580C3564B4DEFDD2B4677EE0457ABA06211D8BAB5FB5DE9F822FE349F9F952FF517187303945D46C3170882009EE7C1750751A9309696E8E27271738BA481A03C80F70A02DB2E24CB02C4C18FA7D598F23480B3620A1303D879E9044872011200EA67CFBEC7118220254D5C79A56E8920D09A4FD409B43D0D97779785787E1842C810EC296C1F6E62F778002F109061805AAD0222DDDF7FE2093D41047402CEAC4709B34C7DDC3524B98CA46337008604F15E8001206E09F29AFA34F7609F6793448FF4C663943E2C80E923B294532C25044003C3C3EDE5B18542B246A7B5B0AD4E49C1A1DDDACC9021C32DFBB86D4F0D877F5E46B94CA854CE607070070A05C2A14340B1085C738D9E1B309B45CCCFEBC1A1BCA37E792D827101E808AEEC5E401220710B9064CEB3B45CC53E07001252B610864D48E9813904B38C30334BD41D08E1A050284444B0099B8300669080999DA7BFF8C52128BD1F8FEBBAEDF1D6B4D0DB4CC5C55D40961B48B82614032D858FBF630E5F3BB2058174A1C22A66678F6372723F88188F3C024C4D11C6C6F4C8DFFCBCEE9498C51DC9917C7EDF1FE7661B107B0C2029084CD2FC3C40A7E503CC217C7F19BE5F8D8037A4B02D8F7D64140A2EEA751F4A05206208D15F0CA0C5B49C10207BAA2DA975E326BF5FDF6F5D134A417A8CBD534BF8CD1B67F0474F5E811D430A8B4BA7C0EC606CEC6A148BC0CC0C70EE1C00BD2CAA03FC5EDA6EBE5E9EB2C916206E62E39A1F37C3FD80DED6FA20A8A1D95C80945EC7F7EC244067625650CA87EFD7E1FB0D10F92895D2D7A4F62600900D6E56FF6B0516405B010555073EFBDE93F8B73383F8FE9BE3D8361060B1F2269ACD250C0FEF46A13016CDC553D7AD92B43DAFC98F97D74D6000329369711760076036F8694160162118CC12CDE63C3C6FF922F069DADE7DAE89AA3D3943A9106168AD755F1101EC602DA985E2815D3F9A9F904FAC8090517242FCCDDD2FE353FF7C3D1E3F358E897200BF358FD9E6021C67088E3308A222984507904027B07675D3AEA5253D1FD08C40889BF734FF1F1F034806BAFB1AA0948F7A7D0661D88CD617F602DE3E9A3A9AA35DBE5F02D82D96E402D2E2803CDDC01C16819402078CAD8526FEE9233FC1179EBC167FFFCA2EB46401836E08A83AA45F058311FD4503477A6E0A048670A44D081BFC3811E265DACD4060F61D40516710981503A4B9802C370048D942AD3603A57C1009741224DDE777E721E159AB254012B871F0D35CC00AC940CCE08051661F7F76FBF3B8F7EA53F8CA4FF7E2D0F9AD38DF28235002521198497F572238C20183A0C290D0ACAEC99A47BD5F9169D895F4027A2542183650AFCF40A930D2FCF8FDD34C7E529EA9A71D1F24CBCA5D40120956E202F2904031D817B865FB0C6ED97601B34B653C3FBB05A7AB65D43C82540A0442B3D9C4D9D939461850716A7A66E77DFFF5CF93014DFDD61D5FDFC8F4347FD6F7E534201808A9DB05D831802148806C17D0D6CC20A8A35E9F03202D579347E3EDFBC60910CF4F967402D8E6DEEEE2257594E3245803E02FDA61294141000A02A85002A1C49453C55D53E78169064434CB4904CCCFE399F01853B349A3575FF7D6C1DFFEE29FA47EBF3EE4D0A15FFF44B5BA3C5D2C8E312029DB02C407766C20BA7DBEEF57D168CCA313AC34E0E380A75903C49EB5163140D6A47C1E179005B6B96E48A75B4677F2EB753DC2232544746F567AF5902E49602140E532169B024BE130103A08BD019799D7C4053CF5D4C7DD30ACA33D0EA0D04D0099916CE0DADD3CCF5B42A351B918B1F76FEAD3F210CB5F29018CADB4B53B09C8F8D06E1C709B14492381A68C79D6D2925ECD69269762911A81E170FBF9AC14A85983DB68C06954812080CB21935EB5B96A79EAA98FB11E67F050AB9DC5E868395A18626B7E1CE4B45E803E6F342AF0BCE58C2E5E5EB0B3CADACF4C966C021880B25EBDB55D40520C9047F38DA56936F59B1BCDA6FE3FEF4B7BCC9DBB49349BDA6AAC99E886D42468A25E3F0DD72DA35C5611804916203E12A80152CA43A3B1802030DDBC3C80F77B0D58BB20D0DEAB2D4E80F8CC49FC3C2F1100ADF5F3F3EDFF93C0CE2203D019B7846BA2FC91B4354A9B6B85667306422CA350188610CA2A17278206853980E7D5E079CB56A41FF7D3FD029D560E17EBDB99D72DF909608F03C41B3FC905E401DFDC637E5EBFF991A6F179C860EA1C77196B22B6266950755525C2B009E62A846845C944FF01985B90D2471836E1FB0DE8B1794424EA35A6BF1A32D8F7374448967C0430C0C637CC89077FFD10C0E4CDCDE9F5DD4983F979CDBF4D54DBAAACA9D83ED5EE0602CC2182A00EE645004B506A11CC95E8A8DD401BF8BCC0665D4F033DAB6CB2E48B016C0B90D4F8FD4C06D9D76666F44A22A0DB2AE405DE26C0DB62016C22B4FDABB6080C3D4D1B80D907105AD3B22BD172647C26EBB3710B932EE904585AD21A5F2A752EE48807807927834C3EA0EF3733D39EC3CD32F979C900749372CDC46EDC6EFFDE4D0A95905662D67B99FAB47288D56F2516C0F7F5EB365BA26DEF935C4092F6A7B900B36CCCF735F866F546DA1C6E1ECD8F13C0B6506B6A0192FAF2493E5CC5CA24CD18F6A3E52B2543FC9EE92E317BA0C4BCA45FA900C3C3C9663ACD05C4CD3DA0CDFDDC9C2612D05DA61FC07B59804B1A04C60990A5F9792D401EC0F39221CD2A744B760C608E172EE8F39191769E0DB20D7EBC4B68CA57ABFA1DEDAC6EDE6AC800747603D75CE220C72D409C00496E220F88FDBA87B4FBACD605D8DA09684BB0B0A0575E0E0CB41BDA009EB666C0F7F5676BB54E4D4D0236CFB55E4160BCDEAB10B3448E082D408159210C03740EF6C41BDF06DE9E0D5C8D96F7CAEFBC0F11230CDB43CE4250332AD4B5A964B60BB007550C98F5BA0E0CCD8BFAB6C61930C2B05DB6566B0FCAAC46CBF3740FE34BD6562F04808550B3BAFA8A5BAD168886C1EC43A90B106227BA81B62D40BF1ADD8FA94F2689DECD4C4229C57AA4D29B8FD67A766D1393BE454C9299B7A3F87A5D0FDED8A952D1DB6D5EB8A0D3E262E7FC41DA7AED5ED7E27146BCC7119F6B306458BD0800181979E78FA5F41860AE546AD0033A0E82E029302F416F10612FDD06F48611F6C211FB18EF49645DEBF73312CC128B8B210062A588C7C66E3A1255AA6B9B987402C4B5CDEE061A91525B825AAD4D82E5E5F6CE0C59E30449DDC73412241121EDB36BE802A216C6F6EDFFE9FF1029725D219696EAA854965128B890F21C7CFFDB00960114610C2AF32298ABE874097150FB0136A97C77596609D795585C0C50A948B82E0B8069C78E5FFFE7E8FB74354A3E1760377852F78BB93D8C9B16A0A5F9F67EFBFB59E736E9D640A2F7E90580E7C7C7DFF9F8F2F21B771215E59B6FCE3AC3C30E8AC52282E028A43C0921B64520CC837939BAC36A7D7C1E57A0FF6766380E230C15DE7C330433A494D2191DBDE2C75353F73ECD7CAF48DA2022DD02C447FD6C0B10EF061ABF9FA6C959D77AE567598BA4B26B1B0300D10F40EFDBF7DF3E1F040BEC380EEA758F8F1EBD8056AB8562B104A206A47C1552BE0EA52AD023823225A9D8314F52A9E73AE8532814247C5FE2E8D100D5AA62C771380C25F6EEBDFFF3D1B4787FFB03249AFFB89F4DEB0EAEB63BB79A6EA1FDFFDAA02FA31766FFEDD8B1DFFDEDD75E7BF8A152695B58AD36C58B2F9E13BB768D60626200A55221DA31CC0E06F3047079343FF99A269A82EF332E5C50387346A2D5622E140AD2F37C77DFBE4FFEC15557DDFF44D64FD9F75E116493C08EFA6DE09382C57E23F8D5BA07A03346592337007490E04F9F7DF6DEC973E7BEFB79D71D4510203C7EBC224E9F5E1443432E8A45012160819596806E92A495B341EFBCB7520CDF576834189E07258450AECB6E1004EEF6EDB73DFCAE77FDC31F99DDC3D3BE5B1A015800A1695C99B6015F9A05E8C777AFC6EFC7EAA33A83D435E90618B148F085575FFDBD57DF78E3E12F2B25A75D77106158E0C5C550B116D3845602BA01CCCA4B3AEFAA5134C328888885E348118652288585FDFB7FE3F70E1EFCDBBF369B7B657DAF0E02983E2211A92377DC5105339452F07D5F0FFE983DDAC6C7D3353F29505C6B32A4E47B528295D29B1906411500D2B6485D8944241044F4F55AED278FBEF1C6C39F9D9D7DF21ECF3BBF8F39741005636FA798F8BB541AF9F9B66DEFFFCEEEDDBFF3671313B79FCE32FBB6A46E10511C1E3ECE6178A312422D371A627A644413E0A73F05CCEBE271F0935E1EE905E24A7A0229445A9612E64EC5B1B1D7A3AF64DEB05813897A060E119D07F0BBCCAF7D6966E6D95F6C36CFBD4329770B735848FE64964BEA55BDE4CF12210078A954DA7EEC8A2BEE7E8E686703F81EF2820F646C1031F1CBBFFCC8DCE1C3FFC51D1CA499E565EC1D1B83281681A79F0676EE04AEBA4AF7F981F60FFCD9BF9AD48F26AF32562066044A61360CE13A0E85006DFDB55FFB173CFD749E36E85B224B60764DF5001C8ED26595C8DF735EF08184AE81D94FAE76F4E88E9F7CE843C7B85018098280F66DD942574F4C40791E8410C00D370013131AF4B367813367DA8B39FBD1EE787E9EFEBE75CE11015E0F439C9452B942C01162E1B6E79E3B40EF7AD7C25ABA8024B984FB26F7550D20FFCFC4D892B4418462669788CE1FFBCC671E3EFDCD6F7EA9383111FC7C61A1304884ED912BE04387DABB379BB1FEB417F457EBF753EE41513A1B863825258AAEABBC2070AFF8C4271E8CC077D76A69789A507B81DF869444D69A9F3BC32BAF0C1EBAE79E437EB57A832814421904EE9ED1515C353C0CD771DA513FD0A9BDFD68713F0488950994C2C9283942048AB9303839F9CC7B8F1CB91D7BF6F8D0E6F0ED8DCA3698A49A2DE30A160F1FBEE6D9BBEF7E92060676886231F07DDF1D715D9A1A18C0B8EBA22404449259CF02BFD7FF19F7924AC163C6A25298510A75662EBA6E28C3B0208093B73CF3CC6D83EF79CFE9BC3F9AF4EF5D32FD9669C4A51FFDE8C04B9FFEF4371AA74EDD549C988004422525096612E63E3658FAC3ED633C3FAB5CD667A24A49D62F853B424048E9F8CC18DEB6EDC7EFF8D6B7EEDB72FBED993F91B2299DD23370315D0A7EE185A1A30F3EF83BB38F3CF2DF836A754294CB2021F44EA146CC793A78F9C890A3D20CDD392A10CD6CFBD8C7FEF2E097BFFC10EDDDDBDA04BF3FC915B9DA8DDA78E6992B671F7DF43FCE3FFAE887BCD9D96B9510A350CAB50AA7839A460AA06DF6D3AEB72514444BA5EDDB5FDDFAE10F7F7FF2231FF997E19B6F3E1FAFE7A6E493DC5D97D8AF85D879C57EEEB306C2007C3BB8EBF7D73237A52D7D0317CD8F0BF439E0B0D6B29ADFCBDD94B6AC4A732FF5AF6267C926E89BB2299BB2299BB229AB92FF0FCB1A8A8F803A086D0000000049454E44AE426082 + + + + + + "What can you do with this thing? " + + 89504E470D0A1A0A0000000D4948445200000020000000200806000000737A7AF40000000473424954080808087C0864880000013A494441545885ED57D116C2200845D787EDD3F763450FC622075E3477D643BC5483EEBD03454C292F74A5DD46FEC48F3BD7CF525ED2A90234291FE889527AFB7BC424540221B6487DD0B8908CC899FBC8894A3CB35DAADACC0C8CBCB54FF0FA74B2E1666006B9E0B4B271102069B72C818A223F1480C8997D12E4F7B2D05C8435B800D524C8DF12B10BF0DE5E836B20F43B5A0E98010DDEB306A28B385482332D13B5179F361413C5D0EBE03732F01780ACB7C3F5C467A2725044B6D8B41875308507924D0110D9FD4162D62868548074B6CD10A28985BC6F7851F300EA0722C2B308F97009883E7BBC16B22A7F0F7979564D44D1AED8DBF72D7222631B467684908ECC8B50C02E6468CAB771BCB72FFEC6581E2D47931C8CE6CD4E28E518E98411F2121BBC1BE29B91FA3EF36684C48C907E2D60A65D7E1C3F01DF3DAE9FE1B576060000000049454E44AE426082 + + " Well, you can change text " + colour, like this red bit. + " And this blue on green bit." + " Naturally you can make things " + "bold " + "or italic " + or underlined. + " Different font sizes on the same line is allowed, too." + " Next we'll show an indented paragraph." + + + It was in January, the most down-trodden month of an Edinburgh winter. An attractive woman came into the cafe, which is nothing remarkable. + + + Next, we'll show a first-line indent, achieved using BeginLeftIndent(100, -40). + + + It was in January, the most down-trodden month of an Edinburgh winter. An attractive woman came into the cafe, which is nothing remarkable. + + + Numbered bullets are possible, again using subindents: + + + This is my first item. Note that wxRichTextCtrl can apply numbering and bullets automatically based on list styles, but this list is formatted explicitly by setting indents. + + + This is my second item. + + + The following paragraph is right-indented: + + + It was in January, the most down-trodden month of an Edinburgh winter. An attractive woman came into the cafe, which is nothing remarkable. + + + The following paragraph is right-aligned with 1.5 line spacing: + + + It was in January, the most down-trodden month of an Edinburgh winter. An attractive woman came into the cafe, which is nothing remarkable. + + + This line contains tabs: First tab Second tab Third tab + + + Other notable features of wxRichTextCtrl include: + + + Compatibility with wxTextCtrl API + + + Easy stack-based BeginXXX()...EndXXX() style setting in addition to SetStyle() + + + XML loading and saving + + + Undo/Redo, with batching option and Undo suppressing + + + Clipboard copy and paste + + + wxRichTextStyleSheet with named character and paragraph styles, and control for applying named styles + + + A design that can easily be extended to other content types, ultimately with text boxes, tables, controls, and so on + + + "wxRichTextCtrl can also display URLs, such as this one: " + The wxWidgets Web Site + . Click on the URL to generate an event. + + + Note: this sample content was generated programmatically from within the MyFrame constructor in the demo. The images were loaded from inline XPMs. Enjoy wxRichTextCtrl! + + + diff --git a/utils/screenshotgen/src/screenshot_app.cpp b/utils/screenshotgen/src/screenshot_app.cpp new file mode 100644 index 0000000000..e2b0c85380 --- /dev/null +++ b/utils/screenshotgen/src/screenshot_app.cpp @@ -0,0 +1,45 @@ +///////////////////////////////////////////////////////////////////////////// +// Name: screenshot_app.cpp +// Purpose: Implement Application Class +// Author: Utensil Candel (UtensilCandel@@gmail.com) +// RCS-ID: $Id$ +// Licence: wxWindows license +///////////////////////////////////////////////////////////////////////////// + +// For compilers that support precompilation, includes "wx/wx.h". +#include "wx/wxprec.h" + +#ifdef __BORLANDC__ + #pragma hdrstop +#endif + +// for all others, include the necessary headers +#ifndef WX_PRECOMP + #include "wx/wx.h" +#endif + +#include + +#include "screenshot_app.h" +#include "screenshot_main.h" + + +// ---------------------------------------------------------------------------- +// wxScreenshotApp +// ---------------------------------------------------------------------------- + +IMPLEMENT_APP(wxScreenshotApp); + +bool wxScreenshotApp::OnInit() +{ + // Init all Image handlers + wxInitAllImageHandlers(); + + // Add richtext extra handlers (plain text is automatically added) + wxRichTextBuffer::AddHandler(new wxRichTextXMLHandler); + + wxScreenshotFrame* frame = new wxScreenshotFrame(0L); + frame->Show(); + + return true; +} diff --git a/utils/screenshotgen/src/screenshot_app.h b/utils/screenshotgen/src/screenshot_app.h new file mode 100644 index 0000000000..331b2d1c5e --- /dev/null +++ b/utils/screenshotgen/src/screenshot_app.h @@ -0,0 +1,20 @@ +///////////////////////////////////////////////////////////////////////////// +// Name: screenshot_app.h +// Purpose: Defines the Application Class +// Author: Utensil Candel (UtensilCandel@@gmail.com) +// RCS-ID: $Id$ +// Licence: wxWindows license +///////////////////////////////////////////////////////////////////////////// + +#ifndef WXSCREENSHOTAPP_H +#define WXSCREENSHOTAPP_H + +#include + +class wxScreenshotApp : public wxApp +{ +public: + virtual bool OnInit(); +}; + +#endif // WXSCREENSHOTAPP_H diff --git a/utils/screenshotgen/src/screenshot_main.cpp b/utils/screenshotgen/src/screenshot_main.cpp new file mode 100644 index 0000000000..7181cf9d5f --- /dev/null +++ b/utils/screenshotgen/src/screenshot_main.cpp @@ -0,0 +1,361 @@ +///////////////////////////////////////////////////////////////////////////// +// Name: screenshot_main.cpp +// Purpose: Implement the Application Frame +// Author: Utensil Candel (UtensilCandel@@gmail.com) +// RCS-ID: $Id$ +// Licence: wxWindows license +///////////////////////////////////////////////////////////////////////////// + +// For compilers that support precompilation, includes "wx/wx.h". +#include "wx/wxprec.h" + +#ifdef __BORLANDC__ + #pragma hdrstop +#endif + +// for all others, include the necessary headers +#ifndef WX_PRECOMP + #include + #include + #include + #include + #include + #include +#endif + +#include +#include "screenshot_main.h" +#include "ctrlmaskout.h" +#include "autocapture.h" + + +// Global helper functions +enum wxBuildInfoFormat +{ + short_f, + long_f +}; + +wxString wxbuildinfo(wxBuildInfoFormat format) +{ + wxString wxbuild(wxVERSION_STRING); + + if (format == long_f ) + { + #if defined(__WXMSW__) + wxbuild << _T("-Windows"); + #elif defined(__WXMAC__) + wxbuild << _T("-Mac"); + #elif defined(__UNIX__) + wxbuild << _T("-Linux"); + #endif + + #if wxUSE_UNICODE + wxbuild << _T("-Unicode build"); + #else + wxbuild << _T("-ANSI build"); + #endif // wxUSE_UNICODE + } + + return wxbuild; +} + + +// ---------------------------------------------------------------------------- +// wxScreenshotFrame +// ---------------------------------------------------------------------------- + +wxScreenshotFrame::wxScreenshotFrame(wxFrame *frame) +#if SCREENSHOTGEN_USE_AUI +: AuiGUIFrame(frame) +#else +: GUIFrame(frame) +#endif +{ +#if wxUSE_STATUSBAR + statusBar->SetStatusText(_("Hello wxWidgets user!"), 0); + // statusBar->SetStatusText(wxbuildinfo(short_f), 1); +#endif + + // We will hold one during the whole life time of the main frame + m_maskout = new wxCtrlMaskOut(); + + // At the begining, we are not specifying the rect region + capturingRect = false; + + // Do some further customization on some controls generated by wxFormBuilder + InitFBControls(); +#if SCREENSHOTGEN_USE_AUI + // Somehow it will be very small after I move to Aui + SetSize(600, 600); + // Maximize(true); +#endif +} + +wxScreenshotFrame::~wxScreenshotFrame() +{ + delete m_maskout; +} + +/* + Do some further customization on some controls generated by wxFormBuilder. + + Some controls can only be generated by wxFormBuilder without further + customization, e.g. unable to load a richtext file in a wxRichtextCtrl + during initialization. + + Those customizations will be done here. +*/ +void wxScreenshotFrame::InitFBControls() +{ + // Do the default selection for wxComboBox + m_comboBox1->Select(0); + + // To look better under gtk +#ifdef __WXGTK__ + m_comboBox1->Delete(4); +#endif + + // Add a root and some nodes for wxTreeCtrl + wxTreeItemId root = m_treeCtrl1->AddRoot(_("wxTreeCtrl")); + + m_treeCtrl1->AppendItem(root, _("Node1")); + + wxTreeItemId node2 = m_treeCtrl1->AppendItem(root, _("Node2")); + m_treeCtrl1->AppendItem(node2, _("Node3")); + + m_treeCtrl1->ExpandAll(); + + // Add items into wxListCtrl + for(long index = 0; index < 5; index++) + m_listCtrl1->InsertItem( index, wxString::Format(_("Item\n(0,%d)"),index)); + + // Check the first item in wxCheckListBox + m_checkList1->Check(0); + + // Load richtext.xml into wxRichtextCtrl + m_richText1->LoadFile(_T("richtext.xml")); + m_richText1->ShowPosition(335); +} + + + +// ---------------------------------------------------------------------------- +// wxScreenshotFrame - event handlers +// ---------------------------------------------------------------------------- + +void wxScreenshotFrame::OnClose(wxCloseEvent& WXUNUSED(event)) +{ + Destroy(); +} + +void wxScreenshotFrame::OnQuit(wxCommandEvent& WXUNUSED(event)) +{ + Destroy(); +} + +void wxScreenshotFrame::OnSeeScreenshots(wxCommandEvent& WXUNUSED(event)) +{ + wxString defaultDir = m_maskout->GetDefaultDirectory(); + + // Check if defaultDir already existed + if(!wxDirExists(defaultDir)) + wxMkdir(defaultDir); + + // Use the native file browser to open defaultDir + #if defined(__WXMSW__) + wxExecute(_T("explorer ") + defaultDir); + #elif defined(__UNIX__) // nautilus is the GNOME file browser but works also for KDE + wxExecute(_T("nautilus ") + defaultDir); + #elif defined(_WXMAC_) + wxExecute(_T("open ") + defaultDir); + #else + wxMessageBox(_("Sorry, not Implemeted for this platform yet! Please open subdirectory \"") + + defaultDir + + _("\" manually.") ); + #endif +} + +void wxScreenshotFrame::OnAbout(wxCommandEvent& WXUNUSED(event)) +{ + wxString msg = wxbuildinfo(long_f); + wxMessageBox(msg, _("Welcome to...")); +} + +void wxScreenshotFrame::OnCaptureFullScreen(wxCommandEvent& WXUNUSED(event)) +{ + // Create a DC for the whole screen area + wxScreenDC dcScreen; + + // Get the size of the screenDC + wxCoord screenWidth, screenHeight; + dcScreen.GetSize(&screenWidth, &screenHeight); + + m_maskout->Capture(0, 0, screenWidth, screenHeight, _T("fullscreen")); +} + +void wxScreenshotFrame::OnCaptureRect(wxCommandEvent& WXUNUSED(event)) +{ + capturingRect = true; + wxMenuBar * menubar = this->GetMenuBar(); + menubar->FindItem(idMenuCapRect)->Enable(false); + menubar->FindItem(idMenuEndCapRect)->Enable(true); + + wxWindow * thePage = m_notebook1->GetPage(m_notebook1->GetSelection()); + + thePage->Connect( wxEVT_LEFT_DOWN, wxMouseEventHandler( wxCtrlMaskOut::OnLeftButtonDown ), NULL, m_maskout); + thePage->Connect( wxEVT_LEFT_UP, wxMouseEventHandler( wxCtrlMaskOut::OnLeftButtonUp ), NULL, m_maskout); + thePage->Connect( wxEVT_MOTION, wxMouseEventHandler( wxCtrlMaskOut::OnMouseMoving ), NULL, m_maskout); +} + +void wxScreenshotFrame::OnEndCaptureRect(wxCommandEvent& WXUNUSED(event)) +{ + capturingRect = false; + wxMenuBar * menubar = this->GetMenuBar(); + menubar->FindItem(idMenuCapRect)->Enable(true); + menubar->FindItem(idMenuEndCapRect)->Enable(false); + + wxWindow * thePage = m_notebook1->GetPage(m_notebook1->GetSelection()); + + thePage->Disconnect( wxEVT_LEFT_DOWN, wxMouseEventHandler( wxCtrlMaskOut::OnLeftButtonDown ), NULL, m_maskout); + thePage->Disconnect( wxEVT_LEFT_UP, wxMouseEventHandler( wxCtrlMaskOut::OnLeftButtonUp ), NULL, m_maskout); + thePage->Disconnect( wxEVT_MOTION, wxMouseEventHandler( wxCtrlMaskOut::OnMouseMoving ), NULL, m_maskout); +} + +void wxScreenshotFrame::OnNotebookPageChanging( +#if SCREENSHOTGEN_USE_AUI +wxAuiNotebookEvent& event +#else +wxNotebookEvent& event +#endif +) +{ + if (!capturingRect) + { + event.Skip(); + return; + } + + wxWindow * thePage = m_notebook1->GetPage(event.GetOldSelection()); + + thePage->Disconnect( wxEVT_LEFT_DOWN, wxMouseEventHandler( wxCtrlMaskOut::OnLeftButtonDown ), NULL, m_maskout); + thePage->Disconnect( wxEVT_LEFT_UP, wxMouseEventHandler( wxCtrlMaskOut::OnLeftButtonUp ), NULL, m_maskout); + thePage->Disconnect( wxEVT_MOTION, wxMouseEventHandler( wxCtrlMaskOut::OnMouseMoving ), NULL, m_maskout); + + event.Skip(); +} + +void wxScreenshotFrame::OnNotebookPageChanged( +#if SCREENSHOTGEN_USE_AUI +wxAuiNotebookEvent& event +#else +wxNotebookEvent& event +#endif +) +{ + if(!capturingRect) + { + event.Skip(); + return; + } + + wxWindow *thePage = m_notebook1->GetPage(event.GetSelection()); + + thePage->Connect( wxEVT_LEFT_DOWN, wxMouseEventHandler( wxCtrlMaskOut::OnLeftButtonDown ), NULL, m_maskout); + thePage->Connect( wxEVT_LEFT_UP, wxMouseEventHandler( wxCtrlMaskOut::OnLeftButtonUp ), NULL, m_maskout); + thePage->Connect( wxEVT_MOTION, wxMouseEventHandler( wxCtrlMaskOut::OnMouseMoving ), NULL, m_maskout); + + event.Skip(); +} + +void wxScreenshotFrame::OnCaptureAllControls(wxCommandEvent& WXUNUSED(event)) +{ + wxString dir = wxT("screenshots"); + + if (wxFileName::DirExists(dir)) + { + int choice = wxMessageBox(_("It seems that you have already generated some screenshots.\nClick YES to delete them all(recommended), NO to preserve them\nCANCEL to cancel this auto-capture(so you can save them elsewhere)."), + _("Do you want to delete the existing screenshots?"), + wxYES_NO|wxCANCEL|wxICON_QUESTION, this); + switch(choice) + { + case wxYES : + { + wxArrayString files; + wxDir::GetAllFiles(dir, &files, wxT("*.png"), wxDIR_FILES); + + int n = files.GetCount(); + for (int i = 0; i < n; ++i) + wxRemoveFile(files[i]); + } + break; + + case wxNO : break; + case wxCANCEL : return; + } + } + + this->Maximize(); + + AutoCaptureMechanism auto_cap(m_notebook1); + + auto_cap.RegisterControl(m_button1); + auto_cap.RegisterControl(m_staticText1); + auto_cap.RegisterControl(m_checkBox1, AJ_Union); + auto_cap.RegisterControl(m_checkBox2, AJ_UnionEnd); + auto_cap.RegisterControl(m_radioBtn1, AJ_Union); + auto_cap.RegisterControl(m_radioBtn2, AJ_UnionEnd); + auto_cap.RegisterControl(m_bpButton1); + auto_cap.RegisterControl(m_bitmap1); + auto_cap.RegisterControl(m_gauge1, wxT("wxGauge")); + auto_cap.RegisterControl(m_slider1); + auto_cap.RegisterControl(m_toggleBtn1, AJ_Union); + auto_cap.RegisterControl(m_toggleBtn2, AJ_UnionEnd); + auto_cap.RegisterControl(m_hyperlink1); + auto_cap.RegisterControl(m_spinCtrl1, AJ_RegionAdjust); + auto_cap.RegisterControl(m_spinBtn1); + auto_cap.RegisterControl(m_scrollBar1); + + auto_cap.RegisterPageTurn(); + + auto_cap.RegisterControl(m_checkList1); + auto_cap.RegisterControl(m_listBox1); + auto_cap.RegisterControl(m_radioBox1); + auto_cap.RegisterControl(m_staticBox1); + auto_cap.RegisterControl(m_treeCtrl1); + auto_cap.RegisterControl(m_listCtrl1, wxT("wxListCtrl")); + + auto_cap.RegisterControl(m_animationCtrl1); + auto_cap.RegisterControl(m_collPane1, wxT("wxCollapsiblePane"), AJ_Union); + auto_cap.RegisterControl(m_collPane2, AJ_UnionEnd); + + auto_cap.RegisterPageTurn(); + + auto_cap.RegisterControl(m_textCtrl1, AJ_Union); + auto_cap.RegisterControl(m_textCtrl2, AJ_UnionEnd); + auto_cap.RegisterControl(m_richText1); + + auto_cap.RegisterPageTurn(); + + auto_cap.RegisterControl(m_colourPicker1, wxT("wxColourPickerCtrl")); + auto_cap.RegisterControl(m_fontPicker1, wxT("wxFontPickerCtrl")); + auto_cap.RegisterControl(m_filePicker1, wxT("wxFilePickerCtrl"), AJ_RegionAdjust); + auto_cap.RegisterControl(m_calendar1, wxT("wxCalendarCtrl"), AJ_RegionAdjust); + auto_cap.RegisterControl(m_datePicker1, wxT("wxDatePickerCtrl")); + auto_cap.RegisterControl(m_genericDirCtrl1, wxT("wxGenericDirCtrl")); + auto_cap.RegisterControl(m_dirPicker1, wxT("wxDirPickerCtrl"), AJ_RegionAdjust); + + auto_cap.RegisterPageTurn(); + + auto_cap.RegisterControl(m_choice1, AJ_Dropdown); + auto_cap.RegisterControl(m_comboBox1, AJ_Dropdown); + auto_cap.RegisterControl(m_bmpComboBox1, AJ_Dropdown); + auto_cap.RegisterControl(m_ownerDrawnComboBox1, AJ_Dropdown); + auto_cap.RegisterControl(m_comboCtrl1, AJ_Dropdown|AJ_Union); + auto_cap.RegisterControl(m_comboCtrl2, AJ_Dropdown|AJ_UnionEnd); + + auto_cap.CaptureAll(); + + wxMessageBox(_("All screenshots are generated successfully.\nSelect \"File->See screenshots\" to see them."), + _("Success"), wxOK, this); +} diff --git a/utils/screenshotgen/src/screenshot_main.h b/utils/screenshotgen/src/screenshot_main.h new file mode 100644 index 0000000000..ae922361fe --- /dev/null +++ b/utils/screenshotgen/src/screenshot_main.h @@ -0,0 +1,61 @@ +///////////////////////////////////////////////////////////////////////////// +// Name: screenshot_main.h +// Purpose: Defines the Application Frame +// Author: Utensil Candel (UtensilCandel@@gmail.com) +// RCS-ID: $Id$ +// Licence: wxWindows license +///////////////////////////////////////////////////////////////////////////// + +#ifndef WXSCREENSHOTMAIN_H +#define WXSCREENSHOTMAIN_H + +#include "guiframe.h" + +// when defined to 1, wxAui for the main frame +#define SCREENSHOTGEN_USE_AUI 0 + + +class wxCtrlMaskOut; + + +class wxScreenshotFrame +#if SCREENSHOTGEN_USE_AUI +: public AuiGUIFrame +#else +: public GUIFrame +#endif +{ +public: + wxScreenshotFrame(wxFrame *frame); + ~wxScreenshotFrame(); + +protected: // event handlers + + virtual void OnClose(wxCloseEvent& event); + virtual void OnQuit(wxCommandEvent& event); + virtual void OnAbout(wxCommandEvent& event); + virtual void OnSeeScreenshots( wxCommandEvent& event); + + virtual void OnCaptureFullScreen( wxCommandEvent& event ); + virtual void OnCaptureRect( wxCommandEvent& event ); + virtual void OnEndCaptureRect( wxCommandEvent& event ); + virtual void OnCaptureAllControls( wxCommandEvent& event ); + +#if SCREENSHOTGEN_USE_AUI + virtual void OnNotebookPageChanged( wxAuiNotebookEvent& event ); + virtual void OnNotebookPageChanging( wxAuiNotebookEvent& event ); +#else + virtual void OnNotebookPageChanged( wxNotebookEvent& event ); + virtual void OnNotebookPageChanging( wxNotebookEvent& event ); +#endif + +private: + // Helper functions + void InitFBControls(); + + // Data members + bool capturingRect; + wxCtrlMaskOut * m_maskout; +}; + +#endif // WXSCREENSHOTMAIN_H diff --git a/utils/screenshotgen/src/screenshotgen.bkl b/utils/screenshotgen/src/screenshotgen.bkl new file mode 100644 index 0000000000..c90f91b6fe --- /dev/null +++ b/utils/screenshotgen/src/screenshotgen.bkl @@ -0,0 +1,59 @@ + + + + + + + + + + + $(SAMPLES_RPATH_FLAG) + $(SAMPLES_RPATH_POSTLINK) + + + + screenshot_app.cpp + screenshot_main.cpp + guiframe.cpp + ctrlmaskout.cpp + customcombo.cpp + autocapture.cpp + + + + screenshot_app.h + screenshot_main.h + guiframe.h + ctrlmaskout.h + customcombo.h + autocapture.h + + + aui + adv + richtext + html + xml + core + base + + screenshotgen.rc + $(BINDIR) + + + + + richtext.xml + bitmaps/wxwin32x32.png + bitmaps/bell.png + bitmaps/info.png + bitmaps/sound.png + bitmaps/dropbuth.png + bitmaps/dropbutn.png + bitmaps/dropbutp.png + bitmaps/throbber.gif + + + + diff --git a/utils/screenshotgen/src/screenshotgen.dsp b/utils/screenshotgen/src/screenshotgen.dsp new file mode 100644 index 0000000000..6ae76d5b74 --- /dev/null +++ b/utils/screenshotgen/src/screenshotgen.dsp @@ -0,0 +1,312 @@ +# Microsoft Developer Studio Project File - Name="screenshotgen" - Package Owner=<4> +# Microsoft Developer Studio Generated Build File, Format Version 6.00 +# ** DO NOT EDIT ** + +# TARGTYPE "Win32 (x86) Application" 0x0101 + +CFG=screenshotgen - Win32 Debug +!MESSAGE This is not a valid makefile. To build this project using NMAKE, +!MESSAGE use the Export Makefile command and run +!MESSAGE +!MESSAGE NMAKE /f "screenshotgen.mak". +!MESSAGE +!MESSAGE You can specify a configuration when running NMAKE +!MESSAGE by defining the macro CFG on the command line. For example: +!MESSAGE +!MESSAGE NMAKE /f "screenshotgen.mak" CFG="screenshotgen - Win32 Debug" +!MESSAGE +!MESSAGE Possible choices for configuration are: +!MESSAGE +!MESSAGE "screenshotgen - Win32 DLL Universal Release" (based on "Win32 (x86) Application") +!MESSAGE "screenshotgen - Win32 DLL Universal Debug" (based on "Win32 (x86) Application") +!MESSAGE "screenshotgen - Win32 DLL Release" (based on "Win32 (x86) Application") +!MESSAGE "screenshotgen - Win32 DLL Debug" (based on "Win32 (x86) Application") +!MESSAGE "screenshotgen - Win32 Universal Release" (based on "Win32 (x86) Application") +!MESSAGE "screenshotgen - Win32 Universal Debug" (based on "Win32 (x86) Application") +!MESSAGE "screenshotgen - Win32 Release" (based on "Win32 (x86) Application") +!MESSAGE "screenshotgen - Win32 Debug" (based on "Win32 (x86) Application") +!MESSAGE + +# Begin Project +# PROP AllowPerConfigDependencies 0 +# PROP Scc_ProjName "" +# PROP Scc_LocalPath "" +CPP=cl.exe +MTL=midl.exe +RSC=rc.exe + +!IF "$(CFG)" == "screenshotgen - Win32 DLL Universal Release" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "vc_mswunivudll" +# PROP BASE Intermediate_Dir "vc_mswunivudll\screenshotgen" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "vc_mswunivudll" +# PROP Intermediate_Dir "vc_mswunivudll\screenshotgen" +# PROP Target_Dir "" +# ADD BASE CPP /nologo /FD /MD /Zi /Fdvc_mswunivudll\screenshotgen.pdb /O2 /GR /EHsc /I ".\..\..\..\lib\vc_dll\mswunivu" /I ".\..\..\..\include" /W4 /I "." /I ".\..\..\..\samples" /D "WIN32" /D "__WXMSW__" /D "__WXUNIVERSAL__" /D "_UNICODE" /D "WXUSINGDLL" /D "_WINDOWS" /D "NOPCH" /c +# ADD CPP /nologo /FD /MD /Zi /Fdvc_mswunivudll\screenshotgen.pdb /O2 /GR /EHsc /I ".\..\..\..\lib\vc_dll\mswunivu" /I ".\..\..\..\include" /W4 /I "." /I ".\..\..\..\samples" /D "WIN32" /D "__WXMSW__" /D "__WXUNIVERSAL__" /D "_UNICODE" /D "WXUSINGDLL" /D "_WINDOWS" /D "NOPCH" /c +# ADD BASE MTL /nologo /D "WIN32" /D "__WXMSW__" /D "__WXUNIVERSAL__" /D "_UNICODE" /D "WXUSINGDLL" /D "_WINDOWS" /D "NOPCH" /mktyplib203 /win32 +# ADD MTL /nologo /D "WIN32" /D "__WXMSW__" /D "__WXUNIVERSAL__" /D "_UNICODE" /D "WXUSINGDLL" /D "_WINDOWS" /D "NOPCH" /mktyplib203 /win32 +# ADD BASE RSC /l 0x409 /d "__WXMSW__" /d "__WXUNIVERSAL__" /d "_UNICODE" /i ".\..\..\..\lib\vc_dll\mswunivu" /i ".\..\..\..\include" /i "." /d "WXUSINGDLL" /d "_WINDOWS" /i ".\..\..\..\samples" /d NOPCH +# ADD RSC /l 0x409 /d "__WXMSW__" /d "__WXUNIVERSAL__" /d "_UNICODE" /i ".\..\..\..\lib\vc_dll\mswunivu" /i ".\..\..\..\include" /i "." /d "WXUSINGDLL" /d "_WINDOWS" /i ".\..\..\..\samples" /d NOPCH +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 wxmswuniv29u_aui.lib wxmswuniv29u_adv.lib wxmswuniv29u_richtext.lib wxmswuniv29u_html.lib wxbase29u_xml.lib wxmswuniv29u_core.lib wxbase29u.lib wxtiff.lib wxjpeg.lib wxpng.lib wxzlib.lib wxregexu.lib wxexpat.lib kernel32.lib user32.lib gdi32.lib comdlg32.lib winspool.lib winmm.lib shell32.lib comctl32.lib ole32.lib oleaut32.lib uuid.lib rpcrt4.lib advapi32.lib wsock32.lib /nologo /machine:i386 /out:"vc_mswunivudll\screenshotgen.exe" /debug /pdb:"vc_mswunivudll\screenshotgen.pdb" /libpath:".\..\..\..\lib\vc_dll" /subsystem:windows +# ADD LINK32 wxmswuniv29u_aui.lib wxmswuniv29u_adv.lib wxmswuniv29u_richtext.lib wxmswuniv29u_html.lib wxbase29u_xml.lib wxmswuniv29u_core.lib wxbase29u.lib wxtiff.lib wxjpeg.lib wxpng.lib wxzlib.lib wxregexu.lib wxexpat.lib kernel32.lib user32.lib gdi32.lib comdlg32.lib winspool.lib winmm.lib shell32.lib comctl32.lib ole32.lib oleaut32.lib uuid.lib rpcrt4.lib advapi32.lib wsock32.lib /nologo /machine:i386 /out:"vc_mswunivudll\screenshotgen.exe" /debug /pdb:"vc_mswunivudll\screenshotgen.pdb" /libpath:".\..\..\..\lib\vc_dll" /subsystem:windows + +!ELSEIF "$(CFG)" == "screenshotgen - Win32 DLL Universal Debug" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "vc_mswunivuddll" +# PROP BASE Intermediate_Dir "vc_mswunivuddll\screenshotgen" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "vc_mswunivuddll" +# PROP Intermediate_Dir "vc_mswunivuddll\screenshotgen" +# PROP Target_Dir "" +# ADD BASE CPP /nologo /FD /MDd /Zi /Fdvc_mswunivuddll\screenshotgen.pdb /Od /Gm /GR /EHsc /I ".\..\..\..\lib\vc_dll\mswunivud" /I ".\..\..\..\include" /W4 /I "." /I ".\..\..\..\samples" /D "WIN32" /D "_DEBUG" /D "__WXMSW__" /D "__WXUNIVERSAL__" /D "__WXDEBUG__" /D "_UNICODE" /D "WXUSINGDLL" /D "_WINDOWS" /D "NOPCH" /c +# ADD CPP /nologo /FD /MDd /Zi /Fdvc_mswunivuddll\screenshotgen.pdb /Od /Gm /GR /EHsc /I ".\..\..\..\lib\vc_dll\mswunivud" /I ".\..\..\..\include" /W4 /I "." /I ".\..\..\..\samples" /D "WIN32" /D "_DEBUG" /D "__WXMSW__" /D "__WXUNIVERSAL__" /D "__WXDEBUG__" /D "_UNICODE" /D "WXUSINGDLL" /D "_WINDOWS" /D "NOPCH" /c +# ADD BASE MTL /nologo /D "WIN32" /D "_DEBUG" /D "__WXMSW__" /D "__WXUNIVERSAL__" /D "__WXDEBUG__" /D "_UNICODE" /D "WXUSINGDLL" /D "_WINDOWS" /D "NOPCH" /mktyplib203 /win32 +# ADD MTL /nologo /D "WIN32" /D "_DEBUG" /D "__WXMSW__" /D "__WXUNIVERSAL__" /D "__WXDEBUG__" /D "_UNICODE" /D "WXUSINGDLL" /D "_WINDOWS" /D "NOPCH" /mktyplib203 /win32 +# ADD BASE RSC /l 0x409 /d "_DEBUG" /d "__WXMSW__" /d "__WXUNIVERSAL__" /d "__WXDEBUG__" /d "_UNICODE" /i ".\..\..\..\lib\vc_dll\mswunivud" /i ".\..\..\..\include" /i "." /d "WXUSINGDLL" /d "_WINDOWS" /i ".\..\..\..\samples" /d NOPCH +# ADD RSC /l 0x409 /d "_DEBUG" /d "__WXMSW__" /d "__WXUNIVERSAL__" /d "__WXDEBUG__" /d "_UNICODE" /i ".\..\..\..\lib\vc_dll\mswunivud" /i ".\..\..\..\include" /i "." /d "WXUSINGDLL" /d "_WINDOWS" /i ".\..\..\..\samples" /d NOPCH +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 wxmswuniv29ud_aui.lib wxmswuniv29ud_adv.lib wxmswuniv29ud_richtext.lib wxmswuniv29ud_html.lib wxbase29ud_xml.lib wxmswuniv29ud_core.lib wxbase29ud.lib wxtiffd.lib wxjpegd.lib wxpngd.lib wxzlibd.lib wxregexud.lib wxexpatd.lib kernel32.lib user32.lib gdi32.lib comdlg32.lib winspool.lib winmm.lib shell32.lib comctl32.lib ole32.lib oleaut32.lib uuid.lib rpcrt4.lib advapi32.lib wsock32.lib /nologo /machine:i386 /out:"vc_mswunivuddll\screenshotgen.exe" /debug /pdb:"vc_mswunivuddll\screenshotgen.pdb" /libpath:".\..\..\..\lib\vc_dll" /subsystem:windows +# ADD LINK32 wxmswuniv29ud_aui.lib wxmswuniv29ud_adv.lib wxmswuniv29ud_richtext.lib wxmswuniv29ud_html.lib wxbase29ud_xml.lib wxmswuniv29ud_core.lib wxbase29ud.lib wxtiffd.lib wxjpegd.lib wxpngd.lib wxzlibd.lib wxregexud.lib wxexpatd.lib kernel32.lib user32.lib gdi32.lib comdlg32.lib winspool.lib winmm.lib shell32.lib comctl32.lib ole32.lib oleaut32.lib uuid.lib rpcrt4.lib advapi32.lib wsock32.lib /nologo /machine:i386 /out:"vc_mswunivuddll\screenshotgen.exe" /debug /pdb:"vc_mswunivuddll\screenshotgen.pdb" /libpath:".\..\..\..\lib\vc_dll" /subsystem:windows + +!ELSEIF "$(CFG)" == "screenshotgen - Win32 DLL Release" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "vc_mswudll" +# PROP BASE Intermediate_Dir "vc_mswudll\screenshotgen" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "vc_mswudll" +# PROP Intermediate_Dir "vc_mswudll\screenshotgen" +# PROP Target_Dir "" +# ADD BASE CPP /nologo /FD /MD /Zi /Fdvc_mswudll\screenshotgen.pdb /O2 /GR /EHsc /I ".\..\..\..\lib\vc_dll\mswu" /I ".\..\..\..\include" /W4 /I "." /I ".\..\..\..\samples" /D "WIN32" /D "__WXMSW__" /D "_UNICODE" /D "WXUSINGDLL" /D "_WINDOWS" /D "NOPCH" /c +# ADD CPP /nologo /FD /MD /Zi /Fdvc_mswudll\screenshotgen.pdb /O2 /GR /EHsc /I ".\..\..\..\lib\vc_dll\mswu" /I ".\..\..\..\include" /W4 /I "." /I ".\..\..\..\samples" /D "WIN32" /D "__WXMSW__" /D "_UNICODE" /D "WXUSINGDLL" /D "_WINDOWS" /D "NOPCH" /c +# ADD BASE MTL /nologo /D "WIN32" /D "__WXMSW__" /D "_UNICODE" /D "WXUSINGDLL" /D "_WINDOWS" /D "NOPCH" /mktyplib203 /win32 +# ADD MTL /nologo /D "WIN32" /D "__WXMSW__" /D "_UNICODE" /D "WXUSINGDLL" /D "_WINDOWS" /D "NOPCH" /mktyplib203 /win32 +# ADD BASE RSC /l 0x409 /d "__WXMSW__" /d "_UNICODE" /i ".\..\..\..\lib\vc_dll\mswu" /i ".\..\..\..\include" /i "." /d "WXUSINGDLL" /d "_WINDOWS" /i ".\..\..\..\samples" /d NOPCH +# ADD RSC /l 0x409 /d "__WXMSW__" /d "_UNICODE" /i ".\..\..\..\lib\vc_dll\mswu" /i ".\..\..\..\include" /i "." /d "WXUSINGDLL" /d "_WINDOWS" /i ".\..\..\..\samples" /d NOPCH +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 wxmsw29u_aui.lib wxmsw29u_adv.lib wxmsw29u_richtext.lib wxmsw29u_html.lib wxbase29u_xml.lib wxmsw29u_core.lib wxbase29u.lib wxtiff.lib wxjpeg.lib wxpng.lib wxzlib.lib wxregexu.lib wxexpat.lib kernel32.lib user32.lib gdi32.lib comdlg32.lib winspool.lib winmm.lib shell32.lib comctl32.lib ole32.lib oleaut32.lib uuid.lib rpcrt4.lib advapi32.lib wsock32.lib /nologo /machine:i386 /out:"vc_mswudll\screenshotgen.exe" /debug /pdb:"vc_mswudll\screenshotgen.pdb" /libpath:".\..\..\..\lib\vc_dll" /subsystem:windows +# ADD LINK32 wxmsw29u_aui.lib wxmsw29u_adv.lib wxmsw29u_richtext.lib wxmsw29u_html.lib wxbase29u_xml.lib wxmsw29u_core.lib wxbase29u.lib wxtiff.lib wxjpeg.lib wxpng.lib wxzlib.lib wxregexu.lib wxexpat.lib kernel32.lib user32.lib gdi32.lib comdlg32.lib winspool.lib winmm.lib shell32.lib comctl32.lib ole32.lib oleaut32.lib uuid.lib rpcrt4.lib advapi32.lib wsock32.lib /nologo /machine:i386 /out:"vc_mswudll\screenshotgen.exe" /debug /pdb:"vc_mswudll\screenshotgen.pdb" /libpath:".\..\..\..\lib\vc_dll" /subsystem:windows + +!ELSEIF "$(CFG)" == "screenshotgen - Win32 DLL Debug" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "vc_mswuddll" +# PROP BASE Intermediate_Dir "vc_mswuddll\screenshotgen" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "vc_mswuddll" +# PROP Intermediate_Dir "vc_mswuddll\screenshotgen" +# PROP Target_Dir "" +# ADD BASE CPP /nologo /FD /MDd /Zi /Fdvc_mswuddll\screenshotgen.pdb /Od /Gm /GR /EHsc /I ".\..\..\..\lib\vc_dll\mswud" /I ".\..\..\..\include" /W4 /I "." /I ".\..\..\..\samples" /D "WIN32" /D "_DEBUG" /D "__WXMSW__" /D "__WXDEBUG__" /D "_UNICODE" /D "WXUSINGDLL" /D "_WINDOWS" /D "NOPCH" /c +# ADD CPP /nologo /FD /MDd /Zi /Fdvc_mswuddll\screenshotgen.pdb /Od /Gm /GR /EHsc /I ".\..\..\..\lib\vc_dll\mswud" /I ".\..\..\..\include" /W4 /I "." /I ".\..\..\..\samples" /D "WIN32" /D "_DEBUG" /D "__WXMSW__" /D "__WXDEBUG__" /D "_UNICODE" /D "WXUSINGDLL" /D "_WINDOWS" /D "NOPCH" /c +# ADD BASE MTL /nologo /D "WIN32" /D "_DEBUG" /D "__WXMSW__" /D "__WXDEBUG__" /D "_UNICODE" /D "WXUSINGDLL" /D "_WINDOWS" /D "NOPCH" /mktyplib203 /win32 +# ADD MTL /nologo /D "WIN32" /D "_DEBUG" /D "__WXMSW__" /D "__WXDEBUG__" /D "_UNICODE" /D "WXUSINGDLL" /D "_WINDOWS" /D "NOPCH" /mktyplib203 /win32 +# ADD BASE RSC /l 0x409 /d "_DEBUG" /d "__WXMSW__" /d "__WXDEBUG__" /d "_UNICODE" /i ".\..\..\..\lib\vc_dll\mswud" /i ".\..\..\..\include" /i "." /d "WXUSINGDLL" /d "_WINDOWS" /i ".\..\..\..\samples" /d NOPCH +# ADD RSC /l 0x409 /d "_DEBUG" /d "__WXMSW__" /d "__WXDEBUG__" /d "_UNICODE" /i ".\..\..\..\lib\vc_dll\mswud" /i ".\..\..\..\include" /i "." /d "WXUSINGDLL" /d "_WINDOWS" /i ".\..\..\..\samples" /d NOPCH +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 wxmsw29ud_aui.lib wxmsw29ud_adv.lib wxmsw29ud_richtext.lib wxmsw29ud_html.lib wxbase29ud_xml.lib wxmsw29ud_core.lib wxbase29ud.lib wxtiffd.lib wxjpegd.lib wxpngd.lib wxzlibd.lib wxregexud.lib wxexpatd.lib kernel32.lib user32.lib gdi32.lib comdlg32.lib winspool.lib winmm.lib shell32.lib comctl32.lib ole32.lib oleaut32.lib uuid.lib rpcrt4.lib advapi32.lib wsock32.lib /nologo /machine:i386 /out:"vc_mswuddll\screenshotgen.exe" /debug /pdb:"vc_mswuddll\screenshotgen.pdb" /libpath:".\..\..\..\lib\vc_dll" /subsystem:windows +# ADD LINK32 wxmsw29ud_aui.lib wxmsw29ud_adv.lib wxmsw29ud_richtext.lib wxmsw29ud_html.lib wxbase29ud_xml.lib wxmsw29ud_core.lib wxbase29ud.lib wxtiffd.lib wxjpegd.lib wxpngd.lib wxzlibd.lib wxregexud.lib wxexpatd.lib kernel32.lib user32.lib gdi32.lib comdlg32.lib winspool.lib winmm.lib shell32.lib comctl32.lib ole32.lib oleaut32.lib uuid.lib rpcrt4.lib advapi32.lib wsock32.lib /nologo /machine:i386 /out:"vc_mswuddll\screenshotgen.exe" /debug /pdb:"vc_mswuddll\screenshotgen.pdb" /libpath:".\..\..\..\lib\vc_dll" /subsystem:windows + +!ELSEIF "$(CFG)" == "screenshotgen - Win32 Universal Release" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "vc_mswunivu" +# PROP BASE Intermediate_Dir "vc_mswunivu\screenshotgen" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "vc_mswunivu" +# PROP Intermediate_Dir "vc_mswunivu\screenshotgen" +# PROP Target_Dir "" +# ADD BASE CPP /nologo /FD /MD /Zi /Fdvc_mswunivu\screenshotgen.pdb /O2 /GR /EHsc /I ".\..\..\..\lib\vc_lib\mswunivu" /I ".\..\..\..\include" /W4 /I "." /I ".\..\..\..\samples" /D "WIN32" /D "__WXMSW__" /D "__WXUNIVERSAL__" /D "_UNICODE" /D "_WINDOWS" /D "NOPCH" /c +# ADD CPP /nologo /FD /MD /Zi /Fdvc_mswunivu\screenshotgen.pdb /O2 /GR /EHsc /I ".\..\..\..\lib\vc_lib\mswunivu" /I ".\..\..\..\include" /W4 /I "." /I ".\..\..\..\samples" /D "WIN32" /D "__WXMSW__" /D "__WXUNIVERSAL__" /D "_UNICODE" /D "_WINDOWS" /D "NOPCH" /c +# ADD BASE MTL /nologo /D "WIN32" /D "__WXMSW__" /D "__WXUNIVERSAL__" /D "_UNICODE" /D "_WINDOWS" /D "NOPCH" /mktyplib203 /win32 +# ADD MTL /nologo /D "WIN32" /D "__WXMSW__" /D "__WXUNIVERSAL__" /D "_UNICODE" /D "_WINDOWS" /D "NOPCH" /mktyplib203 /win32 +# ADD BASE RSC /l 0x409 /d "__WXMSW__" /d "__WXUNIVERSAL__" /d "_UNICODE" /i ".\..\..\..\lib\vc_lib\mswunivu" /i ".\..\..\..\include" /i "." /d "_WINDOWS" /i ".\..\..\..\samples" /d NOPCH +# ADD RSC /l 0x409 /d "__WXMSW__" /d "__WXUNIVERSAL__" /d "_UNICODE" /i ".\..\..\..\lib\vc_lib\mswunivu" /i ".\..\..\..\include" /i "." /d "_WINDOWS" /i ".\..\..\..\samples" /d NOPCH +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 wxmswuniv29u_aui.lib wxmswuniv29u_adv.lib wxmswuniv29u_richtext.lib wxmswuniv29u_html.lib wxbase29u_xml.lib wxmswuniv29u_core.lib wxbase29u.lib wxtiff.lib wxjpeg.lib wxpng.lib wxzlib.lib wxregexu.lib wxexpat.lib kernel32.lib user32.lib gdi32.lib comdlg32.lib winspool.lib winmm.lib shell32.lib comctl32.lib ole32.lib oleaut32.lib uuid.lib rpcrt4.lib advapi32.lib wsock32.lib /nologo /machine:i386 /out:"vc_mswunivu\screenshotgen.exe" /debug /pdb:"vc_mswunivu\screenshotgen.pdb" /libpath:".\..\..\..\lib\vc_lib" /subsystem:windows +# ADD LINK32 wxmswuniv29u_aui.lib wxmswuniv29u_adv.lib wxmswuniv29u_richtext.lib wxmswuniv29u_html.lib wxbase29u_xml.lib wxmswuniv29u_core.lib wxbase29u.lib wxtiff.lib wxjpeg.lib wxpng.lib wxzlib.lib wxregexu.lib wxexpat.lib kernel32.lib user32.lib gdi32.lib comdlg32.lib winspool.lib winmm.lib shell32.lib comctl32.lib ole32.lib oleaut32.lib uuid.lib rpcrt4.lib advapi32.lib wsock32.lib /nologo /machine:i386 /out:"vc_mswunivu\screenshotgen.exe" /debug /pdb:"vc_mswunivu\screenshotgen.pdb" /libpath:".\..\..\..\lib\vc_lib" /subsystem:windows + +!ELSEIF "$(CFG)" == "screenshotgen - Win32 Universal Debug" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "vc_mswunivud" +# PROP BASE Intermediate_Dir "vc_mswunivud\screenshotgen" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "vc_mswunivud" +# PROP Intermediate_Dir "vc_mswunivud\screenshotgen" +# PROP Target_Dir "" +# ADD BASE CPP /nologo /FD /MDd /Zi /Fdvc_mswunivud\screenshotgen.pdb /Od /Gm /GR /EHsc /I ".\..\..\..\lib\vc_lib\mswunivud" /I ".\..\..\..\include" /W4 /I "." /I ".\..\..\..\samples" /D "WIN32" /D "_DEBUG" /D "__WXMSW__" /D "__WXUNIVERSAL__" /D "__WXDEBUG__" /D "_UNICODE" /D "_WINDOWS" /D "NOPCH" /c +# ADD CPP /nologo /FD /MDd /Zi /Fdvc_mswunivud\screenshotgen.pdb /Od /Gm /GR /EHsc /I ".\..\..\..\lib\vc_lib\mswunivud" /I ".\..\..\..\include" /W4 /I "." /I ".\..\..\..\samples" /D "WIN32" /D "_DEBUG" /D "__WXMSW__" /D "__WXUNIVERSAL__" /D "__WXDEBUG__" /D "_UNICODE" /D "_WINDOWS" /D "NOPCH" /c +# ADD BASE MTL /nologo /D "WIN32" /D "_DEBUG" /D "__WXMSW__" /D "__WXUNIVERSAL__" /D "__WXDEBUG__" /D "_UNICODE" /D "_WINDOWS" /D "NOPCH" /mktyplib203 /win32 +# ADD MTL /nologo /D "WIN32" /D "_DEBUG" /D "__WXMSW__" /D "__WXUNIVERSAL__" /D "__WXDEBUG__" /D "_UNICODE" /D "_WINDOWS" /D "NOPCH" /mktyplib203 /win32 +# ADD BASE RSC /l 0x409 /d "_DEBUG" /d "__WXMSW__" /d "__WXUNIVERSAL__" /d "__WXDEBUG__" /d "_UNICODE" /i ".\..\..\..\lib\vc_lib\mswunivud" /i ".\..\..\..\include" /i "." /d "_WINDOWS" /i ".\..\..\..\samples" /d NOPCH +# ADD RSC /l 0x409 /d "_DEBUG" /d "__WXMSW__" /d "__WXUNIVERSAL__" /d "__WXDEBUG__" /d "_UNICODE" /i ".\..\..\..\lib\vc_lib\mswunivud" /i ".\..\..\..\include" /i "." /d "_WINDOWS" /i ".\..\..\..\samples" /d NOPCH +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 wxmswuniv29ud_aui.lib wxmswuniv29ud_adv.lib wxmswuniv29ud_richtext.lib wxmswuniv29ud_html.lib wxbase29ud_xml.lib wxmswuniv29ud_core.lib wxbase29ud.lib wxtiffd.lib wxjpegd.lib wxpngd.lib wxzlibd.lib wxregexud.lib wxexpatd.lib kernel32.lib user32.lib gdi32.lib comdlg32.lib winspool.lib winmm.lib shell32.lib comctl32.lib ole32.lib oleaut32.lib uuid.lib rpcrt4.lib advapi32.lib wsock32.lib /nologo /machine:i386 /out:"vc_mswunivud\screenshotgen.exe" /debug /pdb:"vc_mswunivud\screenshotgen.pdb" /libpath:".\..\..\..\lib\vc_lib" /subsystem:windows +# ADD LINK32 wxmswuniv29ud_aui.lib wxmswuniv29ud_adv.lib wxmswuniv29ud_richtext.lib wxmswuniv29ud_html.lib wxbase29ud_xml.lib wxmswuniv29ud_core.lib wxbase29ud.lib wxtiffd.lib wxjpegd.lib wxpngd.lib wxzlibd.lib wxregexud.lib wxexpatd.lib kernel32.lib user32.lib gdi32.lib comdlg32.lib winspool.lib winmm.lib shell32.lib comctl32.lib ole32.lib oleaut32.lib uuid.lib rpcrt4.lib advapi32.lib wsock32.lib /nologo /machine:i386 /out:"vc_mswunivud\screenshotgen.exe" /debug /pdb:"vc_mswunivud\screenshotgen.pdb" /libpath:".\..\..\..\lib\vc_lib" /subsystem:windows + +!ELSEIF "$(CFG)" == "screenshotgen - Win32 Release" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "vc_mswu" +# PROP BASE Intermediate_Dir "vc_mswu\screenshotgen" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "vc_mswu" +# PROP Intermediate_Dir "vc_mswu\screenshotgen" +# PROP Target_Dir "" +# ADD BASE CPP /nologo /FD /MD /Zi /Fdvc_mswu\screenshotgen.pdb /O2 /GR /EHsc /I ".\..\..\..\lib\vc_lib\mswu" /I ".\..\..\..\include" /W4 /I "." /I ".\..\..\..\samples" /D "WIN32" /D "__WXMSW__" /D "_UNICODE" /D "_WINDOWS" /D "NOPCH" /c +# ADD CPP /nologo /FD /MD /Zi /Fdvc_mswu\screenshotgen.pdb /O2 /GR /EHsc /I ".\..\..\..\lib\vc_lib\mswu" /I ".\..\..\..\include" /W4 /I "." /I ".\..\..\..\samples" /D "WIN32" /D "__WXMSW__" /D "_UNICODE" /D "_WINDOWS" /D "NOPCH" /c +# ADD BASE MTL /nologo /D "WIN32" /D "__WXMSW__" /D "_UNICODE" /D "_WINDOWS" /D "NOPCH" /mktyplib203 /win32 +# ADD MTL /nologo /D "WIN32" /D "__WXMSW__" /D "_UNICODE" /D "_WINDOWS" /D "NOPCH" /mktyplib203 /win32 +# ADD BASE RSC /l 0x409 /d "__WXMSW__" /d "_UNICODE" /i ".\..\..\..\lib\vc_lib\mswu" /i ".\..\..\..\include" /i "." /d "_WINDOWS" /i ".\..\..\..\samples" /d NOPCH +# ADD RSC /l 0x409 /d "__WXMSW__" /d "_UNICODE" /i ".\..\..\..\lib\vc_lib\mswu" /i ".\..\..\..\include" /i "." /d "_WINDOWS" /i ".\..\..\..\samples" /d NOPCH +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 wxmsw29u_aui.lib wxmsw29u_adv.lib wxmsw29u_richtext.lib wxmsw29u_html.lib wxbase29u_xml.lib wxmsw29u_core.lib wxbase29u.lib wxtiff.lib wxjpeg.lib wxpng.lib wxzlib.lib wxregexu.lib wxexpat.lib kernel32.lib user32.lib gdi32.lib comdlg32.lib winspool.lib winmm.lib shell32.lib comctl32.lib ole32.lib oleaut32.lib uuid.lib rpcrt4.lib advapi32.lib wsock32.lib /nologo /machine:i386 /out:"vc_mswu\screenshotgen.exe" /debug /pdb:"vc_mswu\screenshotgen.pdb" /libpath:".\..\..\..\lib\vc_lib" /subsystem:windows +# ADD LINK32 wxmsw29u_aui.lib wxmsw29u_adv.lib wxmsw29u_richtext.lib wxmsw29u_html.lib wxbase29u_xml.lib wxmsw29u_core.lib wxbase29u.lib wxtiff.lib wxjpeg.lib wxpng.lib wxzlib.lib wxregexu.lib wxexpat.lib kernel32.lib user32.lib gdi32.lib comdlg32.lib winspool.lib winmm.lib shell32.lib comctl32.lib ole32.lib oleaut32.lib uuid.lib rpcrt4.lib advapi32.lib wsock32.lib /nologo /machine:i386 /out:"vc_mswu\screenshotgen.exe" /debug /pdb:"vc_mswu\screenshotgen.pdb" /libpath:".\..\..\..\lib\vc_lib" /subsystem:windows + +!ELSEIF "$(CFG)" == "screenshotgen - Win32 Debug" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "vc_mswud" +# PROP BASE Intermediate_Dir "vc_mswud\screenshotgen" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "vc_mswud" +# PROP Intermediate_Dir "vc_mswud\screenshotgen" +# PROP Target_Dir "" +# ADD BASE CPP /nologo /FD /MDd /Zi /Fdvc_mswud\screenshotgen.pdb /Od /Gm /GR /EHsc /I ".\..\..\..\lib\vc_lib\mswud" /I ".\..\..\..\include" /W4 /I "." /I ".\..\..\..\samples" /D "WIN32" /D "_DEBUG" /D "__WXMSW__" /D "__WXDEBUG__" /D "_UNICODE" /D "_WINDOWS" /D "NOPCH" /c +# ADD CPP /nologo /FD /MDd /Zi /Fdvc_mswud\screenshotgen.pdb /Od /Gm /GR /EHsc /I ".\..\..\..\lib\vc_lib\mswud" /I ".\..\..\..\include" /W4 /I "." /I ".\..\..\..\samples" /D "WIN32" /D "_DEBUG" /D "__WXMSW__" /D "__WXDEBUG__" /D "_UNICODE" /D "_WINDOWS" /D "NOPCH" /c +# ADD BASE MTL /nologo /D "WIN32" /D "_DEBUG" /D "__WXMSW__" /D "__WXDEBUG__" /D "_UNICODE" /D "_WINDOWS" /D "NOPCH" /mktyplib203 /win32 +# ADD MTL /nologo /D "WIN32" /D "_DEBUG" /D "__WXMSW__" /D "__WXDEBUG__" /D "_UNICODE" /D "_WINDOWS" /D "NOPCH" /mktyplib203 /win32 +# ADD BASE RSC /l 0x409 /d "_DEBUG" /d "__WXMSW__" /d "__WXDEBUG__" /d "_UNICODE" /i ".\..\..\..\lib\vc_lib\mswud" /i ".\..\..\..\include" /i "." /d "_WINDOWS" /i ".\..\..\..\samples" /d NOPCH +# ADD RSC /l 0x409 /d "_DEBUG" /d "__WXMSW__" /d "__WXDEBUG__" /d "_UNICODE" /i ".\..\..\..\lib\vc_lib\mswud" /i ".\..\..\..\include" /i "." /d "_WINDOWS" /i ".\..\..\..\samples" /d NOPCH +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 wxmsw29ud_aui.lib wxmsw29ud_adv.lib wxmsw29ud_richtext.lib wxmsw29ud_html.lib wxbase29ud_xml.lib wxmsw29ud_core.lib wxbase29ud.lib wxtiffd.lib wxjpegd.lib wxpngd.lib wxzlibd.lib wxregexud.lib wxexpatd.lib kernel32.lib user32.lib gdi32.lib comdlg32.lib winspool.lib winmm.lib shell32.lib comctl32.lib ole32.lib oleaut32.lib uuid.lib rpcrt4.lib advapi32.lib wsock32.lib /nologo /machine:i386 /out:"vc_mswud\screenshotgen.exe" /debug /pdb:"vc_mswud\screenshotgen.pdb" /libpath:".\..\..\..\lib\vc_lib" /subsystem:windows +# ADD LINK32 wxmsw29ud_aui.lib wxmsw29ud_adv.lib wxmsw29ud_richtext.lib wxmsw29ud_html.lib wxbase29ud_xml.lib wxmsw29ud_core.lib wxbase29ud.lib wxtiffd.lib wxjpegd.lib wxpngd.lib wxzlibd.lib wxregexud.lib wxexpatd.lib kernel32.lib user32.lib gdi32.lib comdlg32.lib winspool.lib winmm.lib shell32.lib comctl32.lib ole32.lib oleaut32.lib uuid.lib rpcrt4.lib advapi32.lib wsock32.lib /nologo /machine:i386 /out:"vc_mswud\screenshotgen.exe" /debug /pdb:"vc_mswud\screenshotgen.pdb" /libpath:".\..\..\..\lib\vc_lib" /subsystem:windows + +!ENDIF + +# Begin Target + +# Name "screenshotgen - Win32 DLL Universal Release" +# Name "screenshotgen - Win32 DLL Universal Debug" +# Name "screenshotgen - Win32 DLL Release" +# Name "screenshotgen - Win32 DLL Debug" +# Name "screenshotgen - Win32 Universal Release" +# Name "screenshotgen - Win32 Universal Debug" +# Name "screenshotgen - Win32 Release" +# Name "screenshotgen - Win32 Debug" +# Begin Group "Source Files" + +# PROP Default_Filter "" +# Begin Source File + +SOURCE=.\autocapture.cpp +# End Source File +# Begin Source File + +SOURCE=.\ctrlmaskout.cpp +# End Source File +# Begin Source File + +SOURCE=.\customcombo.cpp +# End Source File +# Begin Source File + +SOURCE=.\guiframe.cpp +# End Source File +# Begin Source File + +SOURCE=.\screenshot_app.cpp +# End Source File +# Begin Source File + +SOURCE=.\screenshot_main.cpp +# End Source File +# Begin Source File + +SOURCE=.\screenshotgen.rc +# End Source File +# End Group +# Begin Group "Header Files" + +# PROP Default_Filter "" +# Begin Source File + +SOURCE=.\autocapture.h +# End Source File +# Begin Source File + +SOURCE=.\ctrlmaskout.h +# End Source File +# Begin Source File + +SOURCE=.\customcombo.h +# End Source File +# Begin Source File + +SOURCE=.\guiframe.h +# End Source File +# Begin Source File + +SOURCE=.\screenshot_app.h +# End Source File +# Begin Source File + +SOURCE=.\screenshot_main.h +# End Source File +# End Group +# End Target +# End Project + diff --git a/utils/screenshotgen/src/screenshotgen.dsw b/utils/screenshotgen/src/screenshotgen.dsw new file mode 100644 index 0000000000..5ae7fd6c28 --- /dev/null +++ b/utils/screenshotgen/src/screenshotgen.dsw @@ -0,0 +1,121 @@ +Microsoft Developer Studio Workspace File, Format Version 6.00 +# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE! + +############################################################################### +Project: "screenshotgen"=screenshotgen.dsp - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ +Begin Project Dependency +Project_Dep_Name aui +End Project Dependency +Begin Project Dependency +Project_Dep_Name adv +End Project Dependency +Begin Project Dependency +Project_Dep_Name richtext +End Project Dependency +Begin Project Dependency +Project_Dep_Name html +End Project Dependency +Begin Project Dependency +Project_Dep_Name xml +End Project Dependency +Begin Project Dependency +Project_Dep_Name core +End Project Dependency +Begin Project Dependency +Project_Dep_Name base +End Project Dependency +}}} + +############################################################################### + +Project: "aui"=..\..\..\build\msw\wx_aui.dsp - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Project: "adv"=..\..\..\build\msw\wx_adv.dsp - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Project: "richtext"=..\..\..\build\msw\wx_richtext.dsp - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Project: "html"=..\..\..\build\msw\wx_html.dsp - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Project: "xml"=..\..\..\build\msw\wx_xml.dsp - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Project: "core"=..\..\..\build\msw\wx_core.dsp - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Project: "base"=..\..\..\build\msw\wx_base.dsp - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + diff --git a/utils/screenshotgen/src/screenshotgen.rc b/utils/screenshotgen/src/screenshotgen.rc new file mode 100644 index 0000000000..b86c4e2265 --- /dev/null +++ b/utils/screenshotgen/src/screenshotgen.rc @@ -0,0 +1 @@ +#include "wx/msw/wx.rc" diff --git a/utils/screenshotgen/src/screenshotgen_vc7.sln b/utils/screenshotgen/src/screenshotgen_vc7.sln new file mode 100644 index 0000000000..05527113db --- /dev/null +++ b/utils/screenshotgen/src/screenshotgen_vc7.sln @@ -0,0 +1,37 @@ +Microsoft Visual Studio Solution File, Format Version 8.00 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "screenshotgen", "screenshotgen_vc7.vcproj", "{65A1C4C8-E1D5-5972-8550-0F5631031FBB}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + DLL Universal Release|Win32 = DLL Universal Release|Win32 + DLL Universal Debug|Win32 = DLL Universal Debug|Win32 + DLL Release|Win32 = DLL Release|Win32 + DLL Debug|Win32 = DLL Debug|Win32 + Universal Release|Win32 = Universal Release|Win32 + Universal Debug|Win32 = Universal Debug|Win32 + Release|Win32 = Release|Win32 + Debug|Win32 = Debug|Win32 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {65A1C4C8-E1D5-5972-8550-0F5631031FBB}.DLL Universal Release|Win32.ActiveCfg = DLL Universal Release|Win32 + {65A1C4C8-E1D5-5972-8550-0F5631031FBB}.DLL Universal Release|Win32.Build.0 = DLL Universal Release|Win32 + {65A1C4C8-E1D5-5972-8550-0F5631031FBB}.DLL Universal Debug|Win32.ActiveCfg = DLL Universal Debug|Win32 + {65A1C4C8-E1D5-5972-8550-0F5631031FBB}.DLL Universal Debug|Win32.Build.0 = DLL Universal Debug|Win32 + {65A1C4C8-E1D5-5972-8550-0F5631031FBB}.DLL Release|Win32.ActiveCfg = DLL Release|Win32 + {65A1C4C8-E1D5-5972-8550-0F5631031FBB}.DLL Release|Win32.Build.0 = DLL Release|Win32 + {65A1C4C8-E1D5-5972-8550-0F5631031FBB}.DLL Debug|Win32.ActiveCfg = DLL Debug|Win32 + {65A1C4C8-E1D5-5972-8550-0F5631031FBB}.DLL Debug|Win32.Build.0 = DLL Debug|Win32 + {65A1C4C8-E1D5-5972-8550-0F5631031FBB}.Universal Release|Win32.ActiveCfg = Universal Release|Win32 + {65A1C4C8-E1D5-5972-8550-0F5631031FBB}.Universal Release|Win32.Build.0 = Universal Release|Win32 + {65A1C4C8-E1D5-5972-8550-0F5631031FBB}.Universal Debug|Win32.ActiveCfg = Universal Debug|Win32 + {65A1C4C8-E1D5-5972-8550-0F5631031FBB}.Universal Debug|Win32.Build.0 = Universal Debug|Win32 + {65A1C4C8-E1D5-5972-8550-0F5631031FBB}.Release|Win32.ActiveCfg = Release|Win32 + {65A1C4C8-E1D5-5972-8550-0F5631031FBB}.Release|Win32.Build.0 = Release|Win32 + {65A1C4C8-E1D5-5972-8550-0F5631031FBB}.Debug|Win32.ActiveCfg = Debug|Win32 + {65A1C4C8-E1D5-5972-8550-0F5631031FBB}.Debug|Win32.Build.0 = Debug|Win32 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal + diff --git a/utils/screenshotgen/src/screenshotgen_vc7.vcproj b/utils/screenshotgen/src/screenshotgen_vc7.vcproj new file mode 100644 index 0000000000..61e42a54b6 --- /dev/null +++ b/utils/screenshotgen/src/screenshotgen_vc7.vcproj @@ -0,0 +1,583 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/utils/screenshotgen/src/screenshotgen_vc8.sln b/utils/screenshotgen/src/screenshotgen_vc8.sln new file mode 100644 index 0000000000..ec2c5f2357 --- /dev/null +++ b/utils/screenshotgen/src/screenshotgen_vc8.sln @@ -0,0 +1,38 @@ +Microsoft Visual Studio Solution File, Format Version 9.00 +# Visual Studio 2005 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "screenshotgen", "screenshotgen_vc8.vcproj", "{D36F115C-330D-5EAE-B66F-885D6BE20540}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + DLL Universal Release|Win32 = DLL Universal Release|Win32 + DLL Universal Debug|Win32 = DLL Universal Debug|Win32 + DLL Release|Win32 = DLL Release|Win32 + DLL Debug|Win32 = DLL Debug|Win32 + Universal Release|Win32 = Universal Release|Win32 + Universal Debug|Win32 = Universal Debug|Win32 + Release|Win32 = Release|Win32 + Debug|Win32 = Debug|Win32 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {D36F115C-330D-5EAE-B66F-885D6BE20540}.DLL Universal Release|Win32.ActiveCfg = DLL Universal Release|Win32 + {D36F115C-330D-5EAE-B66F-885D6BE20540}.DLL Universal Release|Win32.Build.0 = DLL Universal Release|Win32 + {D36F115C-330D-5EAE-B66F-885D6BE20540}.DLL Universal Debug|Win32.ActiveCfg = DLL Universal Debug|Win32 + {D36F115C-330D-5EAE-B66F-885D6BE20540}.DLL Universal Debug|Win32.Build.0 = DLL Universal Debug|Win32 + {D36F115C-330D-5EAE-B66F-885D6BE20540}.DLL Release|Win32.ActiveCfg = DLL Release|Win32 + {D36F115C-330D-5EAE-B66F-885D6BE20540}.DLL Release|Win32.Build.0 = DLL Release|Win32 + {D36F115C-330D-5EAE-B66F-885D6BE20540}.DLL Debug|Win32.ActiveCfg = DLL Debug|Win32 + {D36F115C-330D-5EAE-B66F-885D6BE20540}.DLL Debug|Win32.Build.0 = DLL Debug|Win32 + {D36F115C-330D-5EAE-B66F-885D6BE20540}.Universal Release|Win32.ActiveCfg = Universal Release|Win32 + {D36F115C-330D-5EAE-B66F-885D6BE20540}.Universal Release|Win32.Build.0 = Universal Release|Win32 + {D36F115C-330D-5EAE-B66F-885D6BE20540}.Universal Debug|Win32.ActiveCfg = Universal Debug|Win32 + {D36F115C-330D-5EAE-B66F-885D6BE20540}.Universal Debug|Win32.Build.0 = Universal Debug|Win32 + {D36F115C-330D-5EAE-B66F-885D6BE20540}.Release|Win32.ActiveCfg = Release|Win32 + {D36F115C-330D-5EAE-B66F-885D6BE20540}.Release|Win32.Build.0 = Release|Win32 + {D36F115C-330D-5EAE-B66F-885D6BE20540}.Debug|Win32.ActiveCfg = Debug|Win32 + {D36F115C-330D-5EAE-B66F-885D6BE20540}.Debug|Win32.Build.0 = Debug|Win32 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal + diff --git a/utils/screenshotgen/src/screenshotgen_vc8.vcproj b/utils/screenshotgen/src/screenshotgen_vc8.vcproj new file mode 100644 index 0000000000..63061e6317 --- /dev/null +++ b/utils/screenshotgen/src/screenshotgen_vc8.vcproj @@ -0,0 +1,860 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -- 2.45.2