From 2acffba5fc716e11cd04f6dcf88c922966f1a95a Mon Sep 17 00:00:00 2001 From: Robin Dunn Date: Tue, 10 Apr 2012 03:23:53 +0000 Subject: [PATCH] Add wxHyperlinkCtrl to wx.adv git-svn-id: https://svn.wxwidgets.org/svn/wx/wxPython/Phoenix/trunk@71166 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- TODO.txt | 1 - etg/_adv.py | 2 +- etg/hyperlink.py | 63 +++++++++++++++++++++++++++++++++++++ unittests/test_hyperlink.py | 32 +++++++++++++++++++ 4 files changed, 96 insertions(+), 2 deletions(-) create mode 100644 etg/hyperlink.py create mode 100644 unittests/test_hyperlink.py diff --git a/TODO.txt b/TODO.txt index 94c7aa94..c172f79d 100644 --- a/TODO.txt +++ b/TODO.txt @@ -131,7 +131,6 @@ other dev stuff * taskbar * print (as in print framework classes) - * hyperlink * pickerbase, clrpicker, filepicker, fontpicker * filectrl * axbase (ActiveX. Need to figure out best ways to do MSW-only items...) diff --git a/etg/_adv.py b/etg/_adv.py index 14e476c2..5cacd861 100644 --- a/etg/_adv.py +++ b/etg/_adv.py @@ -31,6 +31,7 @@ INCLUDES = [ 'dateevt', 'datectrl', 'calctrl', + 'hyperlink', # TODOs - @@ -40,7 +41,6 @@ INCLUDES = [ #'bannerwindow', #'bmpcbox', #'editlbox', - #'hyperlink', #'joystick', #'laywin', #'notifmsg', diff --git a/etg/hyperlink.py b/etg/hyperlink.py new file mode 100644 index 00000000..f0015162 --- /dev/null +++ b/etg/hyperlink.py @@ -0,0 +1,63 @@ +#--------------------------------------------------------------------------- +# Name: etg/hyperlink.py +# Author: Robin Dunn +# +# Created: 09-Apr-2012 +# Copyright: (c) 2012 by Total Control Software +# License: wxWindows License +#--------------------------------------------------------------------------- + +import etgtools +import etgtools.tweaker_tools as tools + +PACKAGE = "wx" +MODULE = "_adv" +NAME = "hyperlink" # 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 = [ "wxHyperlinkEvent", + "wxHyperlinkCtrl", + ] + +#--------------------------------------------------------------------------- + +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. + + module.addHeaderCode("#include ") + + c = module.find('wxHyperlinkEvent') + assert isinstance(c, etgtools.ClassDef) + tools.fixEventClass(c) + c.addPyCode("""\ + EVT_HYPERLINK = wx.PyEventBinder( wxEVT_COMMAND_HYPERLINK, 1 ) + """) + + c = module.find('wxHyperlinkCtrl') + tools.fixWindowClass(c) + + c.find('wxHyperlinkCtrl.label').default = 'wxEmptyString' + c.find('wxHyperlinkCtrl.url').default = 'wxEmptyString' + c.find('Create.label').default = 'wxEmptyString' + c.find('Create.url').default = 'wxEmptyString' + + + module.addGlobalStr('wxHyperlinkCtrlNameStr', c) + + #----------------------------------------------------------------- + tools.doCommonTweaks(module) + tools.runGenerators(module) + + +#--------------------------------------------------------------------------- +if __name__ == '__main__': + run() + diff --git a/unittests/test_hyperlink.py b/unittests/test_hyperlink.py new file mode 100644 index 00000000..b482f1df --- /dev/null +++ b/unittests/test_hyperlink.py @@ -0,0 +1,32 @@ +import imp_unittest, unittest +import wtc +import wx +import wx.adv + +#--------------------------------------------------------------------------- + +class hyperlink_Tests(wtc.WidgetTestCase): + + def test_hyperlink1(self): + w = wx.adv.HyperlinkCtrl(self.frame, label='label', url='http://wxPython.org') + + def test_hyperlink2(self): + w = wx.adv.HyperlinkCtrl() + w.Create(self.frame, label='label', url='http://wxPython.org') + + def test_hyperlink3(self): + evt = wx.adv.HyperlinkCtrl(self.frame, 123, 'url') + + wx.adv.HL_CONTEXTMENU + wx.adv.HL_ALIGN_LEFT + wx.adv.HL_ALIGN_RIGHT + wx.adv.HL_ALIGN_CENTRE + wx.adv.HL_DEFAULT_STYLE + + wx.adv.wxEVT_COMMAND_HYPERLINK + wx.adv.EVT_HYPERLINK + +#--------------------------------------------------------------------------- + +if __name__ == '__main__': + unittest.main()