mirror of
https://github.com/wxWidgets/Phoenix.git
synced 2026-01-10 13:57:08 +01:00
Add wx.ColourDialog, wx.MultiChoiceDialog and wx.SingleChoiceDialog
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxPython/Phoenix/trunk@71063 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -150,19 +150,21 @@ INCLUDES = [ # core
|
||||
'listctrl',
|
||||
'treeitemdata',
|
||||
'treectrl',
|
||||
'dirctrl',
|
||||
|
||||
# toplevel and dialogs
|
||||
'nonownedwnd',
|
||||
'toplevel',
|
||||
'dialog',
|
||||
'dirdlg',
|
||||
'dirctrl',
|
||||
'filedlg',
|
||||
'frame',
|
||||
'msgdlg',
|
||||
'progdlg',
|
||||
'popupwin',
|
||||
'tipwin',
|
||||
'colordlg',
|
||||
'choicdlg',
|
||||
|
||||
# misc
|
||||
'utils',
|
||||
|
||||
99
etg/choicdlg.py
Normal file
99
etg/choicdlg.py
Normal file
@@ -0,0 +1,99 @@
|
||||
#---------------------------------------------------------------------------
|
||||
# Name: etg/choicdlg.py
|
||||
# Author: Robin Dunn
|
||||
#
|
||||
# Created: 30-Mar-2012
|
||||
# Copyright: (c) 2012 by Total Control Software
|
||||
# License: wxWindows License
|
||||
#---------------------------------------------------------------------------
|
||||
|
||||
import etgtools
|
||||
import etgtools.tweaker_tools as tools
|
||||
|
||||
PACKAGE = "wx"
|
||||
MODULE = "_core"
|
||||
NAME = "choicdlg" # 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 = [ "wxMultiChoiceDialog",
|
||||
"wxSingleChoiceDialog",
|
||||
]
|
||||
|
||||
#---------------------------------------------------------------------------
|
||||
|
||||
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('wxMultiChoiceDialog')
|
||||
assert isinstance(c, etgtools.ClassDef)
|
||||
tools.fixTopLevelWindowClass(c)
|
||||
|
||||
|
||||
|
||||
c = module.find('wxSingleChoiceDialog')
|
||||
tools.fixTopLevelWindowClass(c)
|
||||
|
||||
# Make a new class so we can ignore the clientData parameter in the
|
||||
c.addHeaderCode("""\
|
||||
class wxPySingleChoiceDialog : public wxSingleChoiceDialog {
|
||||
public:
|
||||
wxPySingleChoiceDialog(wxWindow* parent,
|
||||
const wxString& message,
|
||||
const wxString& caption,
|
||||
const wxArrayString& choices,
|
||||
long style = wxCHOICEDLG_STYLE,
|
||||
const wxPoint& pos = wxDefaultPosition)
|
||||
: wxSingleChoiceDialog(parent, message, caption, choices, (void**)NULL, style, pos)
|
||||
{}
|
||||
};
|
||||
""")
|
||||
|
||||
for item in c.allItems():
|
||||
if item.name == 'wxSingleChoiceDialog':
|
||||
item.name = 'wxPySingleChoiceDialog'
|
||||
c.pyName = 'SingleChoiceDialog'
|
||||
|
||||
# ignore this ctor
|
||||
c.find('wxPySingleChoiceDialog').findOverload('int n').ignore()
|
||||
|
||||
# and ignore the clientData param in this one
|
||||
ctor = c.find('wxPySingleChoiceDialog').findOverload('wxArrayString')
|
||||
ctor.find('clientData').ignore()
|
||||
|
||||
c.find('GetSelectionData').ignore()
|
||||
|
||||
|
||||
# ignore a bunch of the standalone functions
|
||||
for f in module.find('wxGetSingleChoiceIndex').all():
|
||||
f.ignore()
|
||||
for f in module.find('wxGetSingleChoiceData').all():
|
||||
f.ignore()
|
||||
for f in module.find('wxGetSelectedChoices').all(): # TODO, it might be nice to keep this one
|
||||
f.ignore()
|
||||
|
||||
# keep just the overloads of this function that use wxArrayString, and
|
||||
# ignore the ones that have "int n"
|
||||
for func in module.find('wxGetSingleChoice').all():
|
||||
for p in func:
|
||||
if p.type == 'int' and p.name == 'n':
|
||||
func.ignore()
|
||||
|
||||
|
||||
|
||||
#-----------------------------------------------------------------
|
||||
tools.doCommonTweaks(module)
|
||||
tools.runGenerators(module)
|
||||
|
||||
|
||||
#---------------------------------------------------------------------------
|
||||
if __name__ == '__main__':
|
||||
run()
|
||||
|
||||
50
etg/colordlg.py
Normal file
50
etg/colordlg.py
Normal file
@@ -0,0 +1,50 @@
|
||||
#---------------------------------------------------------------------------
|
||||
# Name: etg/colordlg.py
|
||||
# Author: Robin Dunn
|
||||
#
|
||||
# Created: 30-Mar-2012
|
||||
# Copyright: (c) 2012 by Total Control Software
|
||||
# License: wxWindows License
|
||||
#---------------------------------------------------------------------------
|
||||
|
||||
import etgtools
|
||||
import etgtools.tweaker_tools as tools
|
||||
|
||||
PACKAGE = "wx"
|
||||
MODULE = "_core"
|
||||
NAME = "colordlg" # 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 = [ "wxColourData",
|
||||
"wxColourDialog",
|
||||
]
|
||||
|
||||
#---------------------------------------------------------------------------
|
||||
|
||||
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 <wx/colordlg.h>")
|
||||
|
||||
c = module.find('wxColourDialog')
|
||||
assert isinstance(c, etgtools.ClassDef)
|
||||
tools.fixTopLevelWindowClass(c)
|
||||
|
||||
|
||||
#-----------------------------------------------------------------
|
||||
tools.doCommonTweaks(module)
|
||||
tools.runGenerators(module)
|
||||
|
||||
|
||||
#---------------------------------------------------------------------------
|
||||
if __name__ == '__main__':
|
||||
run()
|
||||
|
||||
31
unittests/test_choicdlg.py
Normal file
31
unittests/test_choicdlg.py
Normal file
@@ -0,0 +1,31 @@
|
||||
import imp_unittest, unittest
|
||||
import wtc
|
||||
import wx
|
||||
|
||||
#---------------------------------------------------------------------------
|
||||
|
||||
class choicdlg_Tests(wtc.WidgetTestCase):
|
||||
|
||||
def test_choicdlgSingle(self):
|
||||
d = wx.SingleChoiceDialog(self.frame, 'message', 'caption',
|
||||
choices="one two three four five".split())
|
||||
d.SetSelection(2)
|
||||
d.Destroy()
|
||||
|
||||
def test_choicdlgSingleFunc(self):
|
||||
wx.GetSingleChoice
|
||||
|
||||
|
||||
def test_choicdlgMulti(self):
|
||||
d = wx.MultiChoiceDialog(self.frame, 'message', 'caption',
|
||||
choices="one two three four five".split())
|
||||
d.SetSelections([2, 4])
|
||||
s = d.GetSelections()
|
||||
#self.assertEqual(s, [2,4]) the internal list isn't updated right away, can't test this here
|
||||
d.Destroy()
|
||||
|
||||
|
||||
#---------------------------------------------------------------------------
|
||||
|
||||
if __name__ == '__main__':
|
||||
unittest.main()
|
||||
21
unittests/test_colordlg.py
Normal file
21
unittests/test_colordlg.py
Normal file
@@ -0,0 +1,21 @@
|
||||
import imp_unittest, unittest
|
||||
import wtc
|
||||
import wx
|
||||
|
||||
#---------------------------------------------------------------------------
|
||||
|
||||
class colordlg_Tests(wtc.WidgetTestCase):
|
||||
|
||||
def test_colordlg1(self):
|
||||
data = wx.ColourData()
|
||||
dlg = wx.ColourDialog(self.frame, data)
|
||||
dlg.Destroy()
|
||||
|
||||
def test_colordlg2(self):
|
||||
wx.GetColourFromUser
|
||||
|
||||
|
||||
#---------------------------------------------------------------------------
|
||||
|
||||
if __name__ == '__main__':
|
||||
unittest.main()
|
||||
Reference in New Issue
Block a user