From 28ef2da74ed899bf888f537422a856e942b9d396 Mon Sep 17 00:00:00 2001 From: Robin Dunn Date: Tue, 22 May 2012 00:17:34 +0000 Subject: [PATCH] Add wx.adv.AnimationCtrl git-svn-id: https://svn.wxwidgets.org/svn/wx/wxPython/Phoenix/trunk@71529 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- etg/_adv.py | 2 +- etg/animate.py | 54 ++++++++++++++++++++++++++++++++++++++ unittests/BD13656_.gif | Bin 0 -> 12877 bytes unittests/test_animate.py | 31 ++++++++++++++++++++++ 4 files changed, 86 insertions(+), 1 deletion(-) create mode 100644 etg/animate.py create mode 100644 unittests/BD13656_.gif create mode 100644 unittests/test_animate.py diff --git a/etg/_adv.py b/etg/_adv.py index 7c5cfc56..8ef1a42f 100644 --- a/etg/_adv.py +++ b/etg/_adv.py @@ -36,12 +36,12 @@ INCLUDES = [ 'taskbar', 'sound', 'joystick', + 'animate', # TODOs - # These modules are also in the C++ adv lib and so should be included here: # - #'animate', #'bannerwindow', #'bmpcbox', #'editlbox', diff --git a/etg/animate.py b/etg/animate.py new file mode 100644 index 00000000..879af7f7 --- /dev/null +++ b/etg/animate.py @@ -0,0 +1,54 @@ +#--------------------------------------------------------------------------- +# Name: etg/animate.py +# Author: Robin Dunn +# +# Created: 21-May-2012 +# Copyright: (c) 2012 by Total Control Software +# License: wxWindows License +#--------------------------------------------------------------------------- + +import etgtools +import etgtools.tweaker_tools as tools + +PACKAGE = "wx" +MODULE = "_adv" +NAME = "animate" # Base name of the file to generate to for this script +DOCSTRING = "" + +# The classes and/or the basename of the Doxygen XML files to be processed by +# this script. +ITEMS = [ "wxAnimation", + "wxAnimationCtrl", + ] + +#--------------------------------------------------------------------------- + +def run(): + # Parse the XML file(s) building a collection of Extractor objects + module = etgtools.ModuleDef(PACKAGE, MODULE, NAME, DOCSTRING) + etgtools.parseDoxyXML(module, ITEMS) + + #----------------------------------------------------------------- + # Tweak the parsed meta objects in the module object as needed for + # customizing the generated code and docstrings. + + c = module.find('wxAnimation') + assert isinstance(c, etgtools.ClassDef) + + c = module.find('wxAnimationCtrl') + tools.fixWindowClass(c) + module.addGlobalStr('wxAnimationCtrlNameStr', c) + + + # TODO: It would be nice to be able to use the generic verison on all + # platforms since the native GTK version has some limitations... + + #----------------------------------------------------------------- + tools.doCommonTweaks(module) + tools.runGenerators(module) + + +#--------------------------------------------------------------------------- +if __name__ == '__main__': + run() + diff --git a/unittests/BD13656_.gif b/unittests/BD13656_.gif new file mode 100644 index 0000000000000000000000000000000000000000..3cf8d04a1a7577822f3935796988c5977a2118c3 GIT binary patch literal 12877 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 YAKc}C!TpK-2Pge6xIZy6GC<*f0s7iB@&Et; literal 0 HcmV?d00001 diff --git a/unittests/test_animate.py b/unittests/test_animate.py new file mode 100644 index 00000000..be57da34 --- /dev/null +++ b/unittests/test_animate.py @@ -0,0 +1,31 @@ +import imp_unittest, unittest +import wtc +import wx +import wx.adv +import os + +gifFile = os.path.join(os.path.dirname(__file__), 'BD13656_.gif') + + +#--------------------------------------------------------------------------- + +class animate_Tests(wtc.WidgetTestCase): + + def test_animate1(self): + ani = wx.adv.Animation() + ani.LoadFile(gifFile) + self.assertTrue(ani.IsOk()) + anictrl = wx.adv.AnimationCtrl(self.frame, anim=ani) + anictrl.Play() + + + def test_animate2(self): + ani = wx.adv.Animation(gifFile) + self.assertTrue(ani.IsOk()) + anictrl = wx.adv.AnimationCtrl(self.frame, anim=ani) + anictrl.Play() + +#--------------------------------------------------------------------------- + +if __name__ == '__main__': + unittest.main()