Add wx.adv.PropertySheetDialog

This commit is contained in:
Robin Dunn
2016-09-30 13:45:41 -07:00
parent 936cdb7a66
commit 03c47b50df
6 changed files with 133 additions and 5 deletions

View File

@@ -136,12 +136,8 @@ Other Dev Stuff
* [] New activex classes in wx/msw/ole/activex.h ?
* Any others?
* Add _propdlg module
* Add _aui module ?? (or go with only agw aui?)
* Add _propgrid (in progress)
* Add the UTF8 PyMethods from classic (see _stc_utf8_methods.py) to StyledTextCtrl
* Reimplement the classes in the valgen, valnum and valtext headers as

View File

@@ -2623,6 +2623,14 @@
"PRINT_QUALITY_HIGH":"wx.",
"PRINT_QUALITY_LOW":"wx.",
"PRINT_QUALITY_MEDIUM":"wx.",
"PROPSHEET_BUTTONTOOLBOOK":"wx.adv.",
"PROPSHEET_CHOICEBOOK":"wx.adv.",
"PROPSHEET_DEFAULT":"wx.adv.",
"PROPSHEET_LISTBOOK":"wx.adv.",
"PROPSHEET_NOTEBOOK":"wx.adv.",
"PROPSHEET_SHRINKTOFIT":"wx.adv.",
"PROPSHEET_TOOLBOOK":"wx.adv.",
"PROPSHEET_TREEBOOK":"wx.adv.",
"PageSetupDialog":"wx.",
"PageSetupDialogData":"wx.",
"PaintDC":"wx.",
@@ -2693,6 +2701,8 @@
"PropertyGridManagerNameStr":"wx.propgrid.",
"PropertyGridPage":"wx.propgrid.",
"PropertyGridPageState":"wx.propgrid.",
"PropertySheetDialog":"wx.adv.",
"PropertySheetDialogFlags":"wx.adv.",
"PseudoDC":"wx.adv.",
"PyApp":"wx.",
"PyAxBaseWindow":"wx.msw.",

View File

@@ -53,6 +53,7 @@ INCLUDES = [
'timectrl',
'wizard',
'pseudodc',
'propdlg',
]

50
etg/propdlg.py Normal file
View File

@@ -0,0 +1,50 @@
#---------------------------------------------------------------------------
# Name: etg/propdlg.py
# Author: Robin Dunn
#
# Created: 30-Sep-2016
# Copyright: (c) 2016 by Total Control Software
# License: wxWindows License
#---------------------------------------------------------------------------
import etgtools
import etgtools.tweaker_tools as tools
PACKAGE = "wx"
MODULE = "_adv"
NAME = "propdlg" # 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 = [ 'wxPropertySheetDialog',
]
#---------------------------------------------------------------------------
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/propdlg.h>')
c = module.find('wxPropertySheetDialog')
assert isinstance(c, etgtools.ClassDef)
tools.fixTopLevelWindowClass(c, hideVirtuals=False)
#-----------------------------------------------------------------
tools.doCommonTweaks(module)
tools.runGenerators(module)
#---------------------------------------------------------------------------
if __name__ == '__main__':
run()

71
unittests/test_propdlg.py Normal file
View File

@@ -0,0 +1,71 @@
import unittest
from unittests import wtc
import wx
import wx.adv
#---------------------------------------------------------------------------
class propdlg_Tests(wtc.WidgetTestCase):
def test_propdlg1(self):
# Constants
wx.adv.PROPSHEET_DEFAULT
wx.adv.PROPSHEET_NOTEBOOK
wx.adv.PROPSHEET_TOOLBOOK
wx.adv.PROPSHEET_CHOICEBOOK
wx.adv.PROPSHEET_LISTBOOK
wx.adv.PROPSHEET_BUTTONTOOLBOOK
wx.adv.PROPSHEET_TREEBOOK
wx.adv.PROPSHEET_SHRINKTOFIT
def test_propgrid2(self):
# Normal, simple usage
dlg = wx.adv.PropertySheetDialog(self.frame, title="Property Sheet")
dlg.SetSheetStyle(wx.adv.PROPSHEET_NOTEBOOK)
dlg.Destroy()
def test_propgrid3(self):
# 2-Phase create
dlg = wx.adv.PropertySheetDialog()
dlg.Create(self.frame, title="Property Sheet")
dlg.SetSheetStyle(wx.adv.PROPSHEET_NOTEBOOK)
dlg.Destroy()
def test_propgrid4(self):
# Derived class
class MyPropSheetDlg(wx.adv.PropertySheetDialog):
def __init__(self, parent, title):
wx.adv.PropertySheetDialog.__init__(self) # 1st phase
# Setup
self.SetSheetStyle(wx.adv.PROPSHEET_NOTEBOOK)
self.SetSheetInnerBorder(10)
self.SetSheetOuterBorder(15)
self.Create(parent, title=title) # 2nd phase create
# Create the stock buttons
self.CreateButtons(wx.OK|wx.CANCEL)
# Add some pages
notebook = self.GetBookCtrl()
notebook.AddPage(wx.Panel(notebook), "Page1")
notebook.AddPage(wx.Panel(notebook), "Page2")
# Do the layout
self.LayoutDialog()
dlg = MyPropSheetDlg(self.frame, "Property Sheet Dlg")
wx.CallLater(250, dlg.EndModal, wx.ID_OK)
dlg.ShowModal()
dlg.Destroy()
#---------------------------------------------------------------------------
if __name__ == '__main__':
unittest.main()