]> git.saurik.com Git - wxWidgets.git/commitdiff
Ported XRCed to the wx namespace, and also enabled the selected,
authorRobin Dunn <robin@alldunn.com>
Wed, 17 May 2006 03:57:57 +0000 (03:57 +0000)
committerRobin Dunn <robin@alldunn.com>
Wed, 17 May 2006 03:57:57 +0000 (03:57 +0000)
focus, and disabled bitmaps of wxBitmapButton to actually be treated
like bitmaps.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@39174 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

wxPython/wx/tools/XRCed/globals.py
wxPython/wx/tools/XRCed/panel.py
wxPython/wx/tools/XRCed/params.py
wxPython/wx/tools/XRCed/tools.py
wxPython/wx/tools/XRCed/tree.py
wxPython/wx/tools/XRCed/xrced.py
wxPython/wx/tools/XRCed/xxx.py

index e2a470d9946d905a4948a9c2c3eb8a4dec6bed2e..202d5186e152d890ace98df2e34138c54c638c74 100644 (file)
@@ -4,10 +4,10 @@
 # Created:      02.12.2002
 # RCS-ID:       $Id$
 
-from wxPython.wx import *
-from wxPython.xrc import *
+import wx
+import wx.xrc as xrc
 try:
-    from wxPython.wizard import *
+    import wx.wizard
 except:
     pass
 import sys
@@ -16,19 +16,19 @@ import sys
 
 progname = 'XRCed'
 version = '0.1.7-4'
-# Minimal wxWindows version
+# Minimal wxWidgets version
 MinWxVersion = (2,6,0)
-if wxVERSION[:3] < MinWxVersion:
+if wx.VERSION[:3] < MinWxVersion:
     print '''\
 ******************************* WARNING **************************************
   This version of XRCed may not work correctly on your version of wxWidgets.
-  Please upgrade wxWindows to %d.%d.%d or higher.
+  Please upgrade wxWidgets to %d.%d.%d or higher.
 ******************************************************************************''' % MinWxVersion    
 
 # Can be changed to set other default encoding different
 #defaultEncoding = ''
 # you comment above and can uncomment this:
-defaultEncoding = wxGetDefaultPyEncoding()
+defaultEncoding = wx.GetDefaultPyEncoding()
 
 try:
     True
@@ -45,15 +45,15 @@ class Globals:
     tools = None
     undoMan = None
     testWin = None
-    testWinPos = wxDefaultPosition
+    testWinPos = wx.DefaultPosition
     currentXXX = None
     currentEncoding = defaultEncoding
 
     def _makeFonts(self):
-        self._sysFont = wxSystemSettings_GetFont(wxSYS_SYSTEM_FONT)
-        self._labelFont = wxFont(self._sysFont.GetPointSize(), wxDEFAULT, wxNORMAL, wxBOLD)
-        self._modernFont = wxFont(self._sysFont.GetPointSize(), wxMODERN, wxNORMAL, wxNORMAL)
-        self._smallerFont = wxFont(self._sysFont.GetPointSize()-2, wxDEFAULT, wxNORMAL, wxNORMAL)
+        self._sysFont = wx.SystemSettings.GetFont(wx.SYS_SYSTEM_FONT)
+        self._labelFont = wx.Font(self._sysFont.GetPointSize(), wx.DEFAULT, wx.NORMAL, wx.BOLD)
+        self._modernFont = wx.Font(self._sysFont.GetPointSize(), wx.MODERN, wx.NORMAL, wx.NORMAL)
+        self._smallerFont = wx.Font(self._sysFont.GetPointSize()-2, wx.DEFAULT, wx.NORMAL, wx.NORMAL)
         
     def sysFont(self):
         if not hasattr(self, "_sysFont"): self._makeFonts()
index 785cca2c87e7c2dd1d56342dc78a326624cdbc16..42722aa53e53bfb6b88ad8fdbe87e8ebe2927ee6 100644 (file)
@@ -6,21 +6,21 @@
 
 from xxx import *                       # xxx imports globals and params
 from undo import *
-from wxPython.html import wxHtmlWindow
+from wx.html import HtmlWindow
 
 # Properties panel containing notebook
-class Panel(wxNotebook):
+class Panel(wx.Notebook):
     def __init__(self, parent, id = -1):
-        if wxPlatform != '__WXMAC__':   # some problems with this style on macs
-            wxNotebook.__init__(self, parent, id, style=wxNB_BOTTOM)
+        if wx.Platform != '__WXMAC__':   # some problems with this style on macs
+            wx.Notebook.__init__(self, parent, id, style=wx.NB_BOTTOM)
         else:
-            wxNotebook.__init__(self, parent, id)
+            wx.Notebook.__init__(self, parent, id)
         global panel
         g.panel = panel = self
         self.modified = False
 
         # Set common button size for parameter buttons
-        bTmp = wxButton(self, -1, '')
+        bTmp = wx.Button(self, -1, '')
         import params
         params.buttonSize = (self.DLG_SZE(buttonSize)[0], bTmp.GetSize()[1])
         bTmp.Destroy()
@@ -29,17 +29,17 @@ class Panel(wxNotebook):
         # List of child windows
         self.pages = []
         # Create scrolled windows for pages
-        self.page1 = wxScrolledWindow(self, -1)
-        sizer = wxBoxSizer()
-        sizer.Add(wxBoxSizer())         # dummy sizer
+        self.page1 = wx.ScrolledWindow(self, -1)
+        sizer = wx.BoxSizer()
+        sizer.Add(wx.BoxSizer())         # dummy sizer
         self.page1.SetAutoLayout(True)
         self.page1.SetSizer(sizer)
         self.AddPage(self.page1, 'Properties')
         # Second page
-        self.page2 = wxScrolledWindow(self, -1)
+        self.page2 = wx.ScrolledWindow(self, -1)
         self.page2.Hide()
-        sizer = wxBoxSizer()
-        sizer.Add(wxBoxSizer())         # dummy sizer
+        sizer = wx.BoxSizer()
+        sizer.Add(wx.BoxSizer())         # dummy sizer
         self.page2.SetAutoLayout(True)
         self.page2.SetSizer(sizer)
         # Cache for already used panels
@@ -59,12 +59,12 @@ class Panel(wxNotebook):
                 w.Destroy()
         topSizer.Remove(sizer)
         # Create new windows
-        sizer = wxBoxSizer(wxVERTICAL)
+        sizer = wx.BoxSizer(wx.VERTICAL)
         # Special case - resize html window
         if g.conf.panic:
-            topSizer.Add(sizer, 1, wxEXPAND)
+            topSizer.Add(sizer, 1, wx.EXPAND)
         else:
-            topSizer.Add(sizer, 0, wxALL, 5)
+            topSizer.Add(sizer, 0, wx.ALL, 5)
         return sizer
 
     def SetData(self, xxx):
@@ -74,17 +74,17 @@ class Panel(wxNotebook):
         sizer = self.ResetPage(self.page1)
         if not xxx or (not xxx.allParams and not xxx.hasName and not xxx.hasChild):
             if g.tree.selection:
-                sizer.Add(wxStaticText(self.page1, -1, 'This item has no properties.'))
+                sizer.Add(wx.StaticText(self.page1, -1, 'This item has no properties.'))
             else:                       # nothing selected
                 # If first time, show some help
                 if g.conf.panic:
-                    html = wxHtmlWindow(self.page1, -1, wxDefaultPosition,
-                                        wxDefaultSize, wxSUNKEN_BORDER)
+                    html = HtmlWindow(self.page1, -1, wx.DefaultPosition,
+                                        wx.DefaultSize, wx.SUNKEN_BORDER)
                     html.SetPage(g.helpText)
-                    sizer.Add(html, 1, wxEXPAND)
+                    sizer.Add(html, 1, wx.EXPAND)
                     g.conf.panic = False
                 else:
-                    sizer.Add(wxStaticText(self.page1, -1, 'Select a tree item.'))
+                    sizer.Add(wx.StaticText(self.page1, -1, 'Select a tree item.'))
         else:
             g.currentXXX = xxx.treeObject()
             # Normal or SizerItem page
@@ -99,7 +99,7 @@ class Panel(wxNotebook):
                 self.pageCache[cacheID] = page
             page.SetValues(xxx)
             self.pages.append(page)
-            sizer.Add(page, 1, wxEXPAND)
+            sizer.Add(page, 1, wx.EXPAND)
             if xxx.hasChild:
                 # Special label for child objects - they may have different GUI
                 cacheID = (xxx.child.__class__, xxx.__class__)
@@ -112,7 +112,7 @@ class Panel(wxNotebook):
                     self.pageCache[cacheID] = page
                 page.SetValues(xxx.child)
                 self.pages.append(page)
-                sizer.Add(page, 0, wxEXPAND | wxTOP, 5)
+                sizer.Add(page, 0, wx.EXPAND | wx.TOP, 5)
         self.page1.Layout()
         size = self.page1.GetSizer().GetMinSize()
         self.page1.SetScrollbars(1, 1, size.width, size.height, 0, 0, True)
@@ -131,7 +131,7 @@ class Panel(wxNotebook):
                 self.stylePageCache[xxx.__class__] = page
             page.SetValues(xxx)
             self.pages.append(page)
-            sizer.Add(page, 0, wxEXPAND)
+            sizer.Add(page, 0, wx.EXPAND)
             # Add page if not exists
             if not self.GetPageCount() == 2:
                 self.AddPage(self.page2, 'Style')
@@ -168,13 +168,13 @@ class Panel(wxNotebook):
 ################################################################################
 
 # General class for notebook pages
-class ParamPage(wxPanel):
+class ParamPage(wx.Panel):
     def __init__(self, parent, xxx):
-        wxPanel.__init__(self, parent, -1)
+        wx.Panel.__init__(self, parent, -1)
         self.xxx = xxx
         # Register event handlers
         for id in paramIDs.values():
-            EVT_CHECKBOX(self, id, self.OnCheckParams)
+            wx.EVT_CHECKBOX(self, id, self.OnCheckParams)
         self.checks = {}
         self.controls = {}              # save python objects
         self.controlName = None
@@ -269,27 +269,27 @@ LABEL_WIDTH = 125
 class PropPage(ParamPage):
     def __init__(self, parent, label, xxx):
         ParamPage.__init__(self, parent, xxx)
-        self.box = wxStaticBox(self, -1, label)
+        self.box = wx.StaticBox(self, -1, label)
         self.box.SetFont(g.labelFont())
-        topSizer = wxStaticBoxSizer(self.box, wxVERTICAL)
-        sizer = wxFlexGridSizer(len(xxx.allParams), 2, 0, 1)
+        topSizer = wx.StaticBoxSizer(self.box, wx.VERTICAL)
+        sizer = wx.FlexGridSizer(len(xxx.allParams), 2, 0, 1)
         sizer.AddGrowableCol(1)
         if xxx.hasName:
-            label = wxStaticText(self, -1, 'XML ID:', size=(LABEL_WIDTH,-1))
+            label = wx.StaticText(self, -1, 'XML ID:', size=(LABEL_WIDTH,-1))
             control = ParamText(self, 'XML_name', 200)
-            sizer.AddMany([ (label, 0, wxALIGN_CENTER_VERTICAL),
-                            (control, 0, wxALIGN_CENTER_VERTICAL | wxBOTTOM | wxGROW, 10) ])
+            sizer.AddMany([ (label, 0, wx.ALIGN_CENTER_VERTICAL),
+                            (control, 0, wx.ALIGN_CENTER_VERTICAL | wx.BOTTOM | wx.GROW, 10) ])
             self.controlName = control
         for param in xxx.allParams:
             present = xxx.params.has_key(param)
             if param in xxx.required:
-                label = wxStaticText(self, paramIDs[param], param + ':',
+                label = wx.StaticText(self, paramIDs[param], param + ':',
                                      size = (LABEL_WIDTH,-1), name = param)
             else:
                 # Notebook has one very loooooong parameter
                 if param == 'usenotebooksizer': sParam = 'usesizer:'
                 else: sParam = param + ':'
-                label = wxCheckBox(self, paramIDs[param], sParam,
+                label = wx.CheckBox(self, paramIDs[param], sParam,
                                    size = (LABEL_WIDTH,-1), name = param)
                 self.checks[param] = label
             try:
@@ -303,10 +303,10 @@ class PropPage(ParamPage):
                     typeClass = ParamText
             control = typeClass(self, param)
             control.Enable(present)
-            sizer.AddMany([ (label, 0, wxALIGN_CENTER_VERTICAL),
-                            (control, 0, wxALIGN_CENTER_VERTICAL | wxGROW) ])
+            sizer.AddMany([ (label, 0, wx.ALIGN_CENTER_VERTICAL),
+                            (control, 0, wx.ALIGN_CENTER_VERTICAL | wx.GROW) ])
             self.controls[param] = control
-        topSizer.Add(sizer, 1, wxALL | wxEXPAND, 3)
+        topSizer.Add(sizer, 1, wx.ALL | wx.EXPAND, 3)
         self.SetAutoLayout(True)
         self.SetSizer(topSizer)
         topSizer.Fit(self)
@@ -342,23 +342,23 @@ class PropPage(ParamPage):
 class StylePage(ParamPage):
     def __init__(self, parent, label, xxx):
         ParamPage.__init__(self, parent, xxx)
-        box = wxStaticBox(self, -1, label)
+        box = wx.StaticBox(self, -1, label)
         box.SetFont(g.labelFont())
-        topSizer = wxStaticBoxSizer(box, wxVERTICAL)
-        sizer = wxFlexGridSizer(len(xxx.styles), 2, 0, 1)
+        topSizer = wx.StaticBoxSizer(box, wx.VERTICAL)
+        sizer = wx.FlexGridSizer(len(xxx.styles), 2, 0, 1)
         sizer.AddGrowableCol(1)
         for param in xxx.styles:
             present = xxx.params.has_key(param)
-            check = wxCheckBox(self, paramIDs[param],
+            check = wx.CheckBox(self, paramIDs[param],
                                param + ':', size = (LABEL_WIDTH,-1), name = param)
             check.SetValue(present)
             control = paramDict[param](self, name = param)
             control.Enable(present)
-            sizer.AddMany([ (check, 0, wxALIGN_CENTER_VERTICAL),
-                            (control, 0, wxALIGN_CENTER_VERTICAL | wxGROW) ])
+            sizer.AddMany([ (check, 0, wx.ALIGN_CENTER_VERTICAL),
+                            (control, 0, wx.ALIGN_CENTER_VERTICAL | wx.GROW) ])
             self.checks[param] = check
             self.controls[param] = control
-        topSizer.Add(sizer, 1, wxALL | wxEXPAND, 3)
+        topSizer.Add(sizer, 1, wx.ALL | wx.EXPAND, 3)
         self.SetAutoLayout(True)
         self.SetSizer(topSizer)
         topSizer.Fit(self)
index 442c9c22570c52be8c2acb02dc46c754347aeb7f..1fdb0883425af4132cdbc3fc1ca6f094270accf4 100644 (file)
@@ -8,7 +8,6 @@ import string
 import os.path
 from globals import *
 from types import *
-from wxPython.xrc import *
 
 genericStyles = [
     'wxSIMPLE_BORDER', 'wxSUNKEN_BORDER', 'wxDOUBLE_BORDER',
@@ -29,15 +28,15 @@ genericExStyles = [
 buttonSize = (35,-1)    # in dialog units, transformed to pixels in panel ctor
 
 # Class that can properly disable children
-class PPanel(wxPanel):
+class PPanel(wx.Panel):
     def __init__(self, parent, name):
-        wxPanel.__init__(self, parent, -1, name=name)
+        wx.Panel.__init__(self, parent, -1, name=name)
         self.modified = self.freeze = False
     def Enable(self, value):
         # Something strange is going on with enable so we make sure...
         for w in self.GetChildren():
             w.Enable(value)
-        #wxPanel.Enable(self, value)
+        #wx.Panel.Enable(self, value)
     def SetModified(self):
         self.modified = True
         g.panel.SetModified(True)
@@ -50,18 +49,18 @@ class PPanel(wxPanel):
 class ParamBinaryOr(PPanel):
     def __init__(self, parent, name):
         PPanel.__init__(self, parent, name)
-        self.ID_TEXT_CTRL = wxNewId()
-        self.ID_BUTTON_CHOICES = wxNewId()
-        sizer = wxBoxSizer()
-        self.text = wxTextCtrl(self, self.ID_TEXT_CTRL, size=wxSize(200,-1))
-        sizer.Add(self.text, 0, wxRIGHT | wxALIGN_CENTER_VERTICAL, 5)
-        self.button = wxButton(self, self.ID_BUTTON_CHOICES, 'Edit...', size=buttonSize)
-        sizer.Add(self.button, 0, wxALIGN_CENTER_VERTICAL)
+        self.ID_TEXT_CTRL = wx.NewId()
+        self.ID_BUTTON_CHOICES = wx.NewId()
+        sizer = wx.BoxSizer()
+        self.text = wx.TextCtrl(self, self.ID_TEXT_CTRL, size=wx.Size(200,-1))
+        sizer.Add(self.text, 0, wx.RIGHT | wx.ALIGN_CENTER_VERTICAL, 5)
+        self.button = wx.Button(self, self.ID_BUTTON_CHOICES, 'Edit...', size=buttonSize)
+        sizer.Add(self.button, 0, wx.ALIGN_CENTER_VERTICAL)
         self.SetAutoLayout(True)
         self.SetSizer(sizer)
         sizer.Fit(self)
-        EVT_BUTTON(self, self.ID_BUTTON_CHOICES, self.OnButtonChoices)
-        EVT_TEXT(self, self.ID_TEXT_CTRL, self.OnChange)
+        wx.EVT_BUTTON(self, self.ID_BUTTON_CHOICES, self.OnButtonChoices)
+        wx.EVT_TEXT(self, self.ID_TEXT_CTRL, self.OnChange)
     def GetValue(self):
         return self.text.GetValue()
     def SetValue(self, value):
@@ -73,7 +72,7 @@ class ParamBinaryOr(PPanel):
         if self.GetName() == 'flag':  dlg.SetTitle('Sizer item flags')
         elif self.GetName() == 'style':  dlg.SetTitle('Window styles')
         elif self.GetName() == 'exstyle':  dlg.SetTitle('Extended window styles')
-        listBox = XRCCTRL(dlg, 'CHECKLIST')
+        listBox = xrc.XRCCTRL(dlg, 'CHECKLIST')
         listBox.InsertItems(self.values, 0)
         value = map(string.strip, self.text.GetValue().split('|'))
         if value == ['']: value = []
@@ -88,7 +87,7 @@ class ParamBinaryOr(PPanel):
                 else:
                     print 'WARNING: unknown flag: %s: ignored.' % i
                     ignored.append(i)
-        if dlg.ShowModal() == wxID_OK:
+        if dlg.ShowModal() == wx.ID_OK:
             value = []
             for i in range(listBox.GetCount()):
                 if listBox.IsChecked(i):
@@ -132,14 +131,14 @@ class ParamStyle(ParamBinaryOr):
             # Remove duplicates
             self.valuesGeneric = [s for s in genericStyles
                                   if s not in self.valuesSpecific]
-            EVT_BUTTON(self, self.ID_BUTTON_CHOICES, self.OnButtonChoicesBoth)
+            wx.EVT_BUTTON(self, self.ID_BUTTON_CHOICES, self.OnButtonChoicesBoth)
         else:
             self.values = genericStyles
     def OnButtonChoicesBoth(self, evt):
         dlg = g.frame.res.LoadDialog(self, 'DIALOG_STYLES')
-        listBoxSpecific = XRCCTRL(dlg, 'CHECKLIST_SPECIFIC')
+        listBoxSpecific = xrc.XRCCTRL(dlg, 'CHECKLIST_SPECIFIC')
         listBoxSpecific.InsertItems(self.valuesSpecific, 0)
-        listBoxGeneric = XRCCTRL(dlg, 'CHECKLIST_GENERIC')
+        listBoxGeneric = xrc.XRCCTRL(dlg, 'CHECKLIST_GENERIC')
         listBoxGeneric.InsertItems(self.valuesGeneric, 0)
         value = map(string.strip, self.text.GetValue().split('|'))
         if value == ['']: value = []
@@ -166,7 +165,7 @@ class ParamStyle(ParamBinaryOr):
                 else:
                     print 'WARNING: unknown flag: %s: ignored.' % i
                     ignored.append(i)
-        if dlg.ShowModal() == wxID_OK:
+        if dlg.ShowModal() == wx.ID_OK:
             value = [self.valuesSpecific[i]
                      for i in range(listBoxSpecific.GetCount())
                      if listBoxSpecific.IsChecked(i)] + \
@@ -191,20 +190,20 @@ class ParamExStyle(ParamBinaryOr):
 class ParamColour(PPanel):
     def __init__(self, parent, name):
         PPanel.__init__(self, parent, name)
-        self.ID_TEXT_CTRL = wxNewId()
-        self.ID_BUTTON = wxNewId()
-        sizer = wxBoxSizer()
-        self.text = wxTextCtrl(self, self.ID_TEXT_CTRL, size=(80,-1))
-        sizer.Add(self.text, 0, wxALIGN_CENTER_VERTICAL | wxTOP | wxBOTTOM, 2)
-        self.button = wxPanel(self, self.ID_BUTTON, wxDefaultPosition, wxSize(20, 20))
-        sizer.Add(self.button, 0, wxALIGN_CENTER_VERTICAL | wxLEFT, 5)
+        self.ID_TEXT_CTRL = wx.NewId()
+        self.ID_BUTTON = wx.NewId()
+        sizer = wx.BoxSizer()
+        self.text = wx.TextCtrl(self, self.ID_TEXT_CTRL, size=(80,-1))
+        sizer.Add(self.text, 0, wx.ALIGN_CENTER_VERTICAL | wx.TOP | wx.BOTTOM, 2)
+        self.button = wx.Panel(self, self.ID_BUTTON, wx.DefaultPosition, wx.Size(20, 20))
+        sizer.Add(self.button, 0, wx.ALIGN_CENTER_VERTICAL | wx.LEFT, 5)
         self.SetAutoLayout(True)
         self.SetSizer(sizer)
         sizer.Fit(self)
         self.textModified = False
-        EVT_PAINT(self.button, self.OnPaintButton)
-        EVT_TEXT(self, self.ID_TEXT_CTRL, self.OnChange)
-        EVT_LEFT_DOWN(self.button, self.OnLeftDown)
+        wx.EVT_PAINT(self.button, self.OnPaintButton)
+        wx.EVT_TEXT(self, self.ID_TEXT_CTRL, self.OnChange)
+        wx.EVT_LEFT_DOWN(self.button, self.OnLeftDown)
     def GetValue(self):
         return self.text.GetValue()
     def SetValue(self, value):
@@ -212,24 +211,24 @@ class ParamColour(PPanel):
         if not value: value = '#FFFFFF'
         self.text.SetValue(str(value))  # update text ctrl
         try:
-            colour = wxColour(int(value[1:3], 16), int(value[3:5], 16), int(value[5:7], 16))
+            colour = wx.Colour(int(value[1:3], 16), int(value[3:5], 16), int(value[5:7], 16))
             self.button.SetBackgroundColour(colour)
         except:                         # ignore errors
             pass
         self.button.Refresh()
         self.freeze = False
     def OnPaintButton(self, evt):
-        dc = wxPaintDC(self.button)
-        dc.SetBrush(wxTRANSPARENT_BRUSH)
-        if self.IsEnabled(): dc.SetPen(wxBLACK_PEN)
-        else: dc.SetPen(wxGREY_PEN)
+        dc = wx.PaintDC(self.button)
+        dc.SetBrush(wx.TRANSPARENT_BRUSH)
+        if self.IsEnabled(): dc.SetPen(wx.BLACK_PEN)
+        else: dc.SetPen(wx.GREY_PEN)
         size = self.button.GetSize()
         dc.DrawRectangle(0, 0, size.width, size.height)
     def OnLeftDown(self, evt):
-        data = wxColourData()
+        data = wx.ColourData()
         data.SetColour(self.GetValue())
-        dlg = wxColourDialog(self, data)
-        if dlg.ShowModal() == wxID_OK:
+        dlg = wx.ColourDialog(self, data)
+        if dlg.ShowModal() == wx.ID_OK:
             self.SetValue('#%02X%02X%02X' % dlg.GetColourData().GetColour().Get())
             self.SetModified()
         dlg.Destroy()
@@ -237,11 +236,11 @@ class ParamColour(PPanel):
 ################################################################################
 
 # Mapping from wx constants to XML strings
-fontFamiliesWx2Xml = {wxDEFAULT: 'default', wxDECORATIVE: 'decorative',
-                wxROMAN: 'roman', wxSCRIPT: 'script', wxSWISS: 'swiss',
-                wxMODERN: 'modern'}
-fontStylesWx2Xml = {wxNORMAL: 'normal', wxSLANT: 'slant', wxITALIC: 'italic'}
-fontWeightsWx2Xml = {wxNORMAL: 'normal', wxLIGHT: 'light', wxBOLD: 'bold'}
+fontFamiliesWx2Xml = {wx.DEFAULT: 'default', wx.DECORATIVE: 'decorative',
+                wx.ROMAN: 'roman', wx.SCRIPT: 'script', wx.SWISS: 'swiss',
+                wx.MODERN: 'modern'}
+fontStylesWx2Xml = {wx.NORMAL: 'normal', wx.SLANT: 'slant', wx.ITALIC: 'italic'}
+fontWeightsWx2Xml = {wx.NORMAL: 'normal', wx.LIGHT: 'light', wx.BOLD: 'bold'}
 def ReverseMap(m):
     rm = {}
     for k,v in m.items(): rm[v] = k
@@ -253,19 +252,19 @@ fontWeightsXml2wx = ReverseMap(fontWeightsWx2Xml)
 class ParamFont(PPanel):
     def __init__(self, parent, name):
         PPanel.__init__(self, parent, name)
-        self.ID_TEXT_CTRL = wxNewId()
-        self.ID_BUTTON_SELECT = wxNewId()
-        sizer = wxBoxSizer()
-        self.text = wxTextCtrl(self, self.ID_TEXT_CTRL, size=(200,-1))
-        sizer.Add(self.text, 0, wxRIGHT | wxALIGN_CENTER_VERTICAL, 5)
-        self.button = wxButton(self, self.ID_BUTTON_SELECT, 'Select...', size=buttonSize)
-        sizer.Add(self.button, 0, wxALIGN_CENTER_VERTICAL)
+        self.ID_TEXT_CTRL = wx.NewId()
+        self.ID_BUTTON_SELECT = wx.NewId()
+        sizer = wx.BoxSizer()
+        self.text = wx.TextCtrl(self, self.ID_TEXT_CTRL, size=(200,-1))
+        sizer.Add(self.text, 0, wx.RIGHT | wx.ALIGN_CENTER_VERTICAL, 5)
+        self.button = wx.Button(self, self.ID_BUTTON_SELECT, 'Select...', size=buttonSize)
+        sizer.Add(self.button, 0, wx.ALIGN_CENTER_VERTICAL)
         self.SetAutoLayout(True)
         self.SetSizer(sizer)
         sizer.Fit(self)
         self.textModified = False
-        EVT_BUTTON(self, self.ID_BUTTON_SELECT, self.OnButtonSelect)
-        EVT_TEXT(self, self.ID_TEXT_CTRL, self.OnChange)
+        wx.EVT_BUTTON(self, self.ID_BUTTON_SELECT, self.OnButtonSelect)
+        wx.EVT_TEXT(self, self.ID_TEXT_CTRL, self.OnChange)
     def OnChange(self, evt):
         PPanel.OnChange(self, evt)
         self.textModified = True
@@ -276,7 +275,7 @@ class ParamFont(PPanel):
             try:
                 return eval(self.text.GetValue())
             except SyntaxError:
-                wxLogError('Syntax error in parameter value: ' + self.GetName())
+                wx.LogError('Syntax error in parameter value: ' + self.GetName())
                 return self._defaultValue()
         return self.value
     def SetValue(self, value):
@@ -290,48 +289,48 @@ class ParamFont(PPanel):
             try:
                 self.value = eval(self.text.GetValue())
             except SyntaxError:
-                wxLogError('Syntax error in parameter value: ' + self.GetName())
+                wx.LogError('Syntax error in parameter value: ' + self.GetName())
                 self.value = self._defaultValue()
         # Make initial font
         # Default values
         size = g._sysFont.GetPointSize()
-        family = wxDEFAULT
-        style = weight = wxNORMAL
+        family = wx.DEFAULT
+        style = weight = wx.NORMAL
         underlined = 0
         face = ''
-        enc = wxFONTENCODING_DEFAULT
+        enc = wx.FONTENCODING_DEFAULT
         # Fall back to default if exceptions
         error = False
         try:
             try: size = int(self.value[0])
-            except ValueError: error = True; wxLogError('Invalid size specification')
+            except ValueError: error = True; wx.LogError('Invalid size specification')
             try: family = fontFamiliesXml2wx[self.value[1]]
-            except KeyError: error = True; wxLogError('Invalid family specification')
+            except KeyError: error = True; wx.LogError('Invalid family specification')
             try: style = fontStylesXml2wx[self.value[2]]
-            except KeyError: error = True; wxLogError('Invalid style specification')
+            except KeyError: error = True; wx.LogError('Invalid style specification')
             try: weight = fontWeightsXml2wx[self.value[3]]
-            except KeyError: error = True; wxLogError('Invalid weight specification')
+            except KeyError: error = True; wx.LogError('Invalid weight specification')
             try: underlined = bool(self.value[4])
-            except ValueError: error = True; wxLogError('Invalid underlined flag specification')
+            except ValueError: error = True; wx.LogError('Invalid underlined flag specification')
             face = self.value[5]
         except IndexError:
             error = True
-        mapper = wxFontMapper()
+        mapper = wx.FontMapper()
         if not self.value[6]: enc = mapper.CharsetToEncoding(self.value[6])
             
-        if error: wxLogError('Invalid font specification')
-        if enc == wxFONTENCODING_DEFAULT: enc = wxFONTENCODING_SYSTEM
-        font = wxFont(size, family, style, weight, underlined, face, enc)
-        data = wxFontData()
+        if error: wx.LogError('Invalid font specification')
+        if enc == wx.FONTENCODING_DEFAULT: enc = wx.FONTENCODING_SYSTEM
+        font = wx.Font(size, family, style, weight, underlined, face, enc)
+        data = wx.FontData()
         data.SetInitialFont(font)
-        dlg = wxFontDialog(self, data)
-        if dlg.ShowModal() == wxID_OK:
+        dlg = wx.FontDialog(self, data)
+        if dlg.ShowModal() == wx.ID_OK:
             font = dlg.GetFontData().GetChosenFont()
             print font.GetEncoding()
-            if font.GetEncoding() == wxFONTENCODING_SYSTEM:
+            if font.GetEncoding() == wx.FONTENCODING_SYSTEM:
                 encName = ''
             else:
-                encName = wxFontMapper_GetEncodingName(font.GetEncoding()).encode()
+                encName = wx.FontMapper.GetEncodingName(font.GetEncoding()).encode()
             value = [str(font.GetPointSize()),
                      fontFamiliesWx2Xml.get(font.GetFamily(), "default"),
                      fontStylesWx2Xml.get(font.GetStyle(), "normal"),
@@ -350,15 +349,15 @@ class ParamFont(PPanel):
 class ParamInt(PPanel):
     def __init__(self, parent, name):
         PPanel.__init__(self, parent, name)
-        self.ID_SPIN_CTRL = wxNewId()
-        sizer = wxBoxSizer()
-        self.spin = wxSpinCtrl(self, self.ID_SPIN_CTRL, size=(60,-1))
+        self.ID_SPIN_CTRL = wx.NewId()
+        sizer = wx.BoxSizer()
+        self.spin = wx.SpinCtrl(self, self.ID_SPIN_CTRL, size=(60,-1))
         self.spin.SetRange(-2147483648, 2147483647) # min/max integers
         sizer.Add(self.spin)
         self.SetAutoLayout(True)
         self.SetSizer(sizer)
         sizer.Fit(self)
-        EVT_SPINCTRL(self, self.ID_SPIN_CTRL, self.OnChange)
+        wx.EVT_SPINCTRL(self, self.ID_SPIN_CTRL, self.OnChange)
     def GetValue(self):
         return str(self.spin.GetValue())
     def SetValue(self, value):
@@ -371,15 +370,15 @@ class ParamInt(PPanel):
 class ParamIntNN(PPanel):
     def __init__(self, parent, name):
         PPanel.__init__(self, parent, name)
-        self.ID_SPIN_CTRL = wxNewId()
-        sizer = wxBoxSizer()
-        self.spin = wxSpinCtrl(self, self.ID_SPIN_CTRL, size=(60,-1))
+        self.ID_SPIN_CTRL = wx.NewId()
+        sizer = wx.BoxSizer()
+        self.spin = wx.SpinCtrl(self, self.ID_SPIN_CTRL, size=(60,-1))
         self.spin.SetRange(0, 10000) # min/max integers
         sizer.Add(self.spin)
         self.SetAutoLayout(True)
         self.SetSizer(sizer)
         sizer.Fit(self)
-        EVT_SPINCTRL(self, self.ID_SPIN_CTRL, self.OnChange)
+        wx.EVT_SPINCTRL(self, self.ID_SPIN_CTRL, self.OnChange)
     def GetValue(self):
         return str(self.spin.GetValue())
     def SetValue(self, value):
@@ -392,21 +391,21 @@ class ParamIntNN(PPanel):
 class ParamUnit(PPanel):
     def __init__(self, parent, name):
         PPanel.__init__(self, parent, name)
-        self.ID_TEXT_CTRL = wxNewId()
-        self.ID_SPIN_BUTTON = wxNewId()
-        sizer = wxBoxSizer(wxHORIZONTAL)
-        self.spin = wxSpinButton(self, self.ID_SPIN_BUTTON, style = wxSP_VERTICAL, size=(-1,1))
+        self.ID_TEXT_CTRL = wx.NewId()
+        self.ID_SPIN_BUTTON = wx.NewId()
+        sizer = wx.BoxSizer(wx.HORIZONTAL)
+        self.spin = wx.SpinButton(self, self.ID_SPIN_BUTTON, style = wx.SP_VERTICAL, size=(-1,1))
         textW = 60 - self.spin.GetSize()[0]
-        self.text = wxTextCtrl(self, self.ID_TEXT_CTRL, size=(textW,-1))
+        self.text = wx.TextCtrl(self, self.ID_TEXT_CTRL, size=(textW,-1))
         self.spin.SetRange(-10000, 10000)
-        sizer.Add(self.text, 0, wxEXPAND)
-        sizer.Add(self.spin, 0, wxEXPAND)
+        sizer.Add(self.text, 0, wx.EXPAND)
+        sizer.Add(self.spin, 0, wx.EXPAND)
         #sizer.SetMinSize((50,-1))
         self.SetAutoLayout(True)
         self.SetSizer(sizer)
         sizer.Fit(self)
-        EVT_SPIN_UP(self, self.ID_SPIN_BUTTON, self.OnSpinUp)
-        EVT_SPIN_DOWN(self, self.ID_SPIN_BUTTON, self.OnSpinDown)
+        wx.EVT_SPIN_UP(self, self.ID_SPIN_BUTTON, self.OnSpinUp)
+        wx.EVT_SPIN_DOWN(self, self.ID_SPIN_BUTTON, self.OnSpinDown)
     def GetValue(self):
         return self.text.GetValue()
     def SetValue(self, value):
@@ -427,7 +426,7 @@ class ParamUnit(PPanel):
             self.text.SetValue(str(intValue) + units)
             self.SetModified()
         except:
-            # !!! Strange, if I use wxLogWarning, event is re-generated
+            # !!! Strange, if I use wx.LogWarning, event is re-generated
             print 'incorrect unit format'
     def OnSpinUp(self, evt):
         self.Change(1)
@@ -437,18 +436,18 @@ class ParamUnit(PPanel):
 class ParamMultilineText(PPanel):
     def __init__(self, parent, name, textWidth=-1):
         PPanel.__init__(self, parent, name)
-        self.ID_TEXT_CTRL = wxNewId()
-        self.ID_BUTTON_EDIT = wxNewId()
-        sizer = wxBoxSizer()
-        self.text = wxTextCtrl(self, self.ID_TEXT_CTRL, size=wxSize(200,-1))
-        sizer.Add(self.text, 0, wxRIGHT | wxALIGN_CENTER_VERTICAL, 5)
-        self.button = wxButton(self, self.ID_BUTTON_EDIT, 'Edit...', size=buttonSize)
-        sizer.Add(self.button, 0, wxALIGN_CENTER_VERTICAL)
+        self.ID_TEXT_CTRL = wx.NewId()
+        self.ID_BUTTON_EDIT = wx.NewId()
+        sizer = wx.BoxSizer()
+        self.text = wx.TextCtrl(self, self.ID_TEXT_CTRL, size=wx.Size(200,-1))
+        sizer.Add(self.text, 0, wx.RIGHT | wx.ALIGN_CENTER_VERTICAL, 5)
+        self.button = wx.Button(self, self.ID_BUTTON_EDIT, 'Edit...', size=buttonSize)
+        sizer.Add(self.button, 0, wx.ALIGN_CENTER_VERTICAL)
         self.SetAutoLayout(True)
         self.SetSizer(sizer)
         sizer.Fit(self)
-        EVT_BUTTON(self, self.ID_BUTTON_EDIT, self.OnButtonEdit)
-        EVT_TEXT(self, self.ID_TEXT_CTRL, self.OnChange)
+        wx.EVT_BUTTON(self, self.ID_BUTTON_EDIT, self.OnButtonEdit)
+        wx.EVT_TEXT(self, self.ID_TEXT_CTRL, self.OnChange)
     def GetValue(self):
         return self.text.GetValue()
     def SetValue(self, value):
@@ -457,9 +456,9 @@ class ParamMultilineText(PPanel):
         self.freeze = False             # disable other handlers
     def OnButtonEdit(self, evt):
         dlg = g.frame.res.LoadDialog(self, 'DIALOG_TEXT')
-        textCtrl = XRCCTRL(dlg, 'TEXT')
+        textCtrl = xrc.XRCCTRL(dlg, 'TEXT')
         textCtrl.SetValue(self.text.GetValue())
-        if dlg.ShowModal() == wxID_OK:
+        if dlg.ShowModal() == wx.ID_OK:
             self.text.SetValue(textCtrl.GetValue())
             self.SetModified()
         dlg.Destroy()
@@ -467,17 +466,17 @@ class ParamMultilineText(PPanel):
 class ParamText(PPanel):
     def __init__(self, parent, name, textWidth=-1):
         PPanel.__init__(self, parent, name)
-        self.ID_TEXT_CTRL = wxNewId()
+        self.ID_TEXT_CTRL = wx.NewId()
         # We use sizer even here to have the same size of text control
-        sizer = wxBoxSizer()
-        self.text = wxTextCtrl(self, self.ID_TEXT_CTRL, size=wxSize(textWidth,-1))
+        sizer = wx.BoxSizer()
+        self.text = wx.TextCtrl(self, self.ID_TEXT_CTRL, size=wx.Size(textWidth,-1))
         if textWidth == -1: option = 1
         else: option = 0
-        sizer.Add(self.text, option, wxALIGN_CENTER_VERTICAL | wxTOP | wxBOTTOM, 2)
+        sizer.Add(self.text, option, wx.ALIGN_CENTER_VERTICAL | wx.TOP | wx.BOTTOM, 2)
         self.SetAutoLayout(True)
         self.SetSizer(sizer)
         sizer.Fit(self)
-        EVT_TEXT(self, self.ID_TEXT_CTRL, self.OnChange)
+        wx.EVT_TEXT(self, self.ID_TEXT_CTRL, self.OnChange)
     def GetValue(self):
         return self.text.GetValue()
     def SetValue(self, value):
@@ -501,31 +500,30 @@ class ParamEncoding(ParamText):
     def __init__(self, parent, name):
         ParamText.__init__(self, parent, name, 100)
 
-class ContentDialog(wxDialog):
+class ContentDialog(wx.Dialog):
     def __init__(self, parent, value):
         # Load from resource
-        pre = wxPreDialog()
+        pre = wx.PreDialog()
         g.frame.res.LoadOnDialog(pre, parent, 'DIALOG_CONTENT')
-        self.this = pre.this
-        self._setOORInfo(self)
-        self.list = XRCCTRL(self, 'LIST')
+        self.PostCreate(pre)
+        self.list = xrc.XRCCTRL(self, 'LIST')
         # Set list items
         for v in value:
             self.list.Append(v)
         self.SetAutoLayout(True)
         self.GetSizer().Fit(self)
         # Callbacks
-        self.ID_BUTTON_APPEND = XRCID('BUTTON_APPEND')
-        self.ID_BUTTON_REMOVE = XRCID('BUTTON_REMOVE')
-        self.ID_BUTTON_UP = XRCID('BUTTON_UP')
-        self.ID_BUTTON_DOWN = XRCID('BUTTON_DOWN')
-        EVT_BUTTON(self, self.ID_BUTTON_UP, self.OnButtonUp)
-        EVT_BUTTON(self, self.ID_BUTTON_DOWN, self.OnButtonDown)
-        EVT_BUTTON(self, self.ID_BUTTON_APPEND, self.OnButtonAppend)
-        EVT_BUTTON(self, self.ID_BUTTON_REMOVE, self.OnButtonRemove)
-        EVT_UPDATE_UI(self, self.ID_BUTTON_UP, self.OnUpdateUI)
-        EVT_UPDATE_UI(self, self.ID_BUTTON_DOWN, self.OnUpdateUI)
-        EVT_UPDATE_UI(self, self.ID_BUTTON_REMOVE, self.OnUpdateUI)
+        self.ID_BUTTON_APPEND = xrc.XRCID('BUTTON_APPEND')
+        self.ID_BUTTON_REMOVE = xrc.XRCID('BUTTON_REMOVE')
+        self.ID_BUTTON_UP = xrc.XRCID('BUTTON_UP')
+        self.ID_BUTTON_DOWN = xrc.XRCID('BUTTON_DOWN')
+        wx.EVT_BUTTON(self, self.ID_BUTTON_UP, self.OnButtonUp)
+        wx.EVT_BUTTON(self, self.ID_BUTTON_DOWN, self.OnButtonDown)
+        wx.EVT_BUTTON(self, self.ID_BUTTON_APPEND, self.OnButtonAppend)
+        wx.EVT_BUTTON(self, self.ID_BUTTON_REMOVE, self.OnButtonRemove)
+        wx.EVT_UPDATE_UI(self, self.ID_BUTTON_UP, self.OnUpdateUI)
+        wx.EVT_UPDATE_UI(self, self.ID_BUTTON_DOWN, self.OnUpdateUI)
+        wx.EVT_UPDATE_UI(self, self.ID_BUTTON_REMOVE, self.OnUpdateUI)
     def OnButtonUp(self, evt):
         i = self.list.GetSelection()
         str = self.list.GetString(i)
@@ -539,7 +537,7 @@ class ContentDialog(wxDialog):
         self.list.InsertItems([str], i+1)
         self.list.SetSelection(i+1)
     def OnButtonAppend(self, evt):
-        str = wxGetTextFromUser('Enter new item:', 'Append', '', self)
+        str = wx.GetTextFromUser('Enter new item:', 'Append', '', self)
         self.list.Append(str)
     def OnButtonRemove(self, evt):
         self.list.Delete(self.list.GetSelection())
@@ -552,13 +550,12 @@ class ContentDialog(wxDialog):
             evt.Enable(self.list.GetSelection() != -1 and \
                        self.list.GetSelection() < self.list.GetCount() - 1)
 
-class ContentCheckListDialog(wxDialog):
+class ContentCheckListDialog(wx.Dialog):
     def __init__(self, parent, value):
-        pre = wxPreDialog()
+        pre = wx.PreDialog()
         g.frame.res.LoadOnDialog(pre, parent, 'DIALOG_CONTENT_CHECKLIST')
-        self.this = pre.this
-        self._setOORInfo(self)
-        self.list = XRCCTRL(self, 'CHECKLIST')
+        self.PostCreate(pre)
+        self.list = xrc.XRCCTRL(self, 'CHECKLIST')
         # Set list items
         i = 0
         for v,ch in value:
@@ -568,18 +565,18 @@ class ContentCheckListDialog(wxDialog):
         self.SetAutoLayout(True)
         self.GetSizer().Fit(self)
         # Callbacks
-        self.ID_BUTTON_APPEND = XRCID('BUTTON_APPEND')
-        self.ID_BUTTON_REMOVE = XRCID('BUTTON_REMOVE')
-        self.ID_BUTTON_UP = XRCID('BUTTON_UP')
-        self.ID_BUTTON_DOWN = XRCID('BUTTON_DOWN')
-        EVT_CHECKLISTBOX(self, self.list.GetId(), self.OnCheck)
-        EVT_BUTTON(self, self.ID_BUTTON_UP, self.OnButtonUp)
-        EVT_BUTTON(self, self.ID_BUTTON_DOWN, self.OnButtonDown)
-        EVT_BUTTON(self, self.ID_BUTTON_APPEND, self.OnButtonAppend)
-        EVT_BUTTON(self, self.ID_BUTTON_REMOVE, self.OnButtonRemove)
-        EVT_UPDATE_UI(self, self.ID_BUTTON_UP, self.OnUpdateUI)
-        EVT_UPDATE_UI(self, self.ID_BUTTON_DOWN, self.OnUpdateUI)
-        EVT_UPDATE_UI(self, self.ID_BUTTON_REMOVE, self.OnUpdateUI)
+        self.ID_BUTTON_APPEND = xrc.XRCID('BUTTON_APPEND')
+        self.ID_BUTTON_REMOVE = xrc.XRCID('BUTTON_REMOVE')
+        self.ID_BUTTON_UP = xrc.XRCID('BUTTON_UP')
+        self.ID_BUTTON_DOWN = xrc.XRCID('BUTTON_DOWN')
+        wx.EVT_CHECKLISTBOX(self, self.list.GetId(), self.OnCheck)
+        wx.EVT_BUTTON(self, self.ID_BUTTON_UP, self.OnButtonUp)
+        wx.EVT_BUTTON(self, self.ID_BUTTON_DOWN, self.OnButtonDown)
+        wx.EVT_BUTTON(self, self.ID_BUTTON_APPEND, self.OnButtonAppend)
+        wx.EVT_BUTTON(self, self.ID_BUTTON_REMOVE, self.OnButtonRemove)
+        wx.EVT_UPDATE_UI(self, self.ID_BUTTON_UP, self.OnUpdateUI)
+        wx.EVT_UPDATE_UI(self, self.ID_BUTTON_DOWN, self.OnUpdateUI)
+        wx.EVT_UPDATE_UI(self, self.ID_BUTTON_REMOVE, self.OnUpdateUI)
     def OnCheck(self, evt):
         # !!! Wrong wxGTK (wxMSW?) behavior: toggling selection if checking
         self.list.Deselect(evt.GetSelection())
@@ -598,7 +595,7 @@ class ContentCheckListDialog(wxDialog):
         self.list.Check(i+1, ch)
         self.list.SetSelection(i+1)
     def OnButtonAppend(self, evt):
-        str = wxGetTextFromUser('Enter new item:', 'Append', '', self)
+        str = wx.GetTextFromUser('Enter new item:', 'Append', '', self)
         self.list.Append(str)
     def OnButtonRemove(self, evt):
         self.list.Delete(self.list.GetSelection())
@@ -614,19 +611,19 @@ class ContentCheckListDialog(wxDialog):
 class ParamContent(PPanel):
     def __init__(self, parent, name):
         PPanel.__init__(self, parent, name)
-        self.ID_TEXT_CTRL = wxNewId()
-        self.ID_BUTTON_EDIT = wxNewId()
-        sizer = wxBoxSizer()
-        self.text = wxTextCtrl(self, self.ID_TEXT_CTRL, size=wxSize(200,-1))
-        sizer.Add(self.text, 0, wxRIGHT | wxALIGN_CENTER_VERTICAL, 5)
-        self.button = wxButton(self, self.ID_BUTTON_EDIT, 'Edit...', size=buttonSize)
-        sizer.Add(self.button, 0, wxALIGN_CENTER_VERTICAL)
+        self.ID_TEXT_CTRL = wx.NewId()
+        self.ID_BUTTON_EDIT = wx.NewId()
+        sizer = wx.BoxSizer()
+        self.text = wx.TextCtrl(self, self.ID_TEXT_CTRL, size=wx.Size(200,-1))
+        sizer.Add(self.text, 0, wx.RIGHT | wx.ALIGN_CENTER_VERTICAL, 5)
+        self.button = wx.Button(self, self.ID_BUTTON_EDIT, 'Edit...', size=buttonSize)
+        sizer.Add(self.button, 0, wx.ALIGN_CENTER_VERTICAL)
         self.SetAutoLayout(True)
         self.SetSizer(sizer)
         sizer.Fit(self)
         self.textModified = False
-        EVT_BUTTON(self, self.ID_BUTTON_EDIT, self.OnButtonEdit)
-        EVT_TEXT(self, self.ID_TEXT_CTRL, self.OnChange)
+        wx.EVT_BUTTON(self, self.ID_BUTTON_EDIT, self.OnButtonEdit)
+        wx.EVT_TEXT(self, self.ID_TEXT_CTRL, self.OnChange)
     def OnChange(self, evt):
         PPanel.OnChange(self, evt)
         self.textModified = True
@@ -635,7 +632,7 @@ class ParamContent(PPanel):
             try:
                 return eval(self.text.GetValue())
             except SyntaxError:
-                wxLogError('Syntax error in parameter value: ' + self.GetName())
+                wx.LogError('Syntax error in parameter value: ' + self.GetName())
                 return []
         return self.value
     def SetValue(self, value):
@@ -649,10 +646,10 @@ class ParamContent(PPanel):
             try:
                 self.value = eval(self.text.GetValue())
             except SyntaxError:
-                wxLogError('Syntax error in parameter value: ' + self.GetName())
+                wx.LogError('Syntax error in parameter value: ' + self.GetName())
                 self.value = []
         dlg = ContentDialog(self, self.value)
-        if dlg.ShowModal() == wxID_OK:
+        if dlg.ShowModal() == wx.ID_OK:
             value = []
             for i in range(dlg.list.GetCount()):
                 value.append(dlg.list.GetString(i))
@@ -670,10 +667,10 @@ class ParamContentCheckList(ParamContent):
             try:
                 self.value = eval(self.text.GetValue())
             except SyntaxError:
-                wxLogError('Syntax error in parameter value: ' + self.GetName())
+                wx.LogError('Syntax error in parameter value: ' + self.GetName())
                 self.value = []
         dlg = ContentCheckListDialog(self, self.value)
-        if dlg.ShowModal() == wxID_OK:
+        if dlg.ShowModal() == wx.ID_OK:
             value = []
             for i in range(dlg.list.GetCount()):
                 value.append((dlg.list.GetString(i), int(dlg.list.IsChecked(i))))
@@ -682,29 +679,28 @@ class ParamContentCheckList(ParamContent):
             self.textModified = False
         dlg.Destroy()
 
-class IntListDialog(wxDialog):
+class IntListDialog(wx.Dialog):
     def __init__(self, parent, value):
-        pre = wxPreDialog()
+        pre = wx.PreDialog()
         g.frame.res.LoadOnDialog(pre, parent, 'DIALOG_INTLIST')
-        self.this = pre.this
-        self._setOORInfo(self)
-        self.list = XRCCTRL(self, 'LIST')
+        self.PostCreate(pre)
+        self.list = xrc.XRCCTRL(self, 'LIST')
         # Set list items
         value.sort()
         for v in value:
             if type(v) != IntType:
-                wxLogError('Invalid item type')
+                wx.LogError('Invalid item type')
             else:
                 self.list.Append(str(v))
         self.SetAutoLayout(True)
         self.GetSizer().Fit(self)
         # Callbacks
-        self.spinCtrl = XRCCTRL(self, 'SPIN')
-        EVT_BUTTON(self, XRCID('BUTTON_ADD'), self.OnButtonAdd)
-        self.ID_BUTTON_REMOVE = XRCID('BUTTON_REMOVE')
-        EVT_BUTTON(self, self.ID_BUTTON_REMOVE, self.OnButtonRemove)
-        EVT_BUTTON(self, XRCID('BUTTON_CLEAR'), self.OnButtonClear)
-        EVT_UPDATE_UI(self, self.ID_BUTTON_REMOVE, self.OnUpdateUI)
+        self.spinCtrl = xrc.XRCCTRL(self, 'SPIN')
+        wx.EVT_BUTTON(self, xrc.XRCID('BUTTON_ADD'), self.OnButtonAdd)
+        self.ID_BUTTON_REMOVE = xrc.XRCID('BUTTON_REMOVE')
+        wx.EVT_BUTTON(self, self.ID_BUTTON_REMOVE, self.OnButtonRemove)
+        wx.EVT_BUTTON(self, xrc.XRCID('BUTTON_CLEAR'), self.OnButtonClear)
+        wx.EVT_UPDATE_UI(self, self.ID_BUTTON_REMOVE, self.OnUpdateUI)
     def OnButtonAdd(self, evt):
         # Check that it's unique
         try:
@@ -721,7 +717,7 @@ class IntListDialog(wxDialog):
                 if found: self.list.InsertItems([s], i)
                 else: self.list.Append(s)
         except ValueError:
-            wxLogError('List item is not an int!')
+            wx.LogError('List item is not an int!')
     def OnButtonRemove(self, evt):
         self.list.Delete(self.list.GetSelection())
     def OnButtonClear(self, evt):
@@ -739,10 +735,10 @@ class ParamIntList(ParamContent):
             try:
                 self.value = eval(self.text.GetValue())
             except SyntaxError:
-                wxLogError('Syntax error in parameter value: ' + self.GetName())
+                wx.LogError('Syntax error in parameter value: ' + self.GetName())
                 self.value = []
         dlg = IntListDialog(self, self.value)
-        if dlg.ShowModal() == wxID_OK:
+        if dlg.ShowModal() == wx.ID_OK:
             value = []
             for i in range(dlg.list.GetCount()):
                 value.append(int(dlg.list.GetString(i)))
@@ -754,14 +750,14 @@ class ParamIntList(ParamContent):
 # Boxless radiobox
 class RadioBox(PPanel):
     def __init__(self, parent, id, choices,
-                 pos=wxDefaultPosition, name='radiobox'):
+                 pos=wx.DefaultPosition, name='radiobox'):
         PPanel.__init__(self, parent, name)
         self.choices = choices
-        topSizer = wxBoxSizer()
+        topSizer = wx.BoxSizer()
         for i in choices:
-            button = wxRadioButton(self, -1, i, size=(-1,buttonSize[1]), name=i)
-            topSizer.Add(button, 0, wxRIGHT, 5)
-            EVT_RADIOBUTTON(self, button.GetId(), self.OnRadioChoice)
+            button = wx.RadioButton(self, -1, i, size=(-1,buttonSize[1]), name=i)
+            topSizer.Add(button, 0, wx.RIGHT, 5)
+            wx.EVT_RADIOBUTTON(self, button.GetId(), self.OnRadioChoice)
         self.SetAutoLayout(True)
         self.SetSizer(topSizer)
         topSizer.Fit(self)
@@ -815,19 +811,19 @@ class ParamOrientation(RadioBox):
 class ParamFile(PPanel):
     def __init__(self, parent, name):
         PPanel.__init__(self, parent, name)
-        self.ID_TEXT_CTRL = wxNewId()
-        self.ID_BUTTON_BROWSE = wxNewId()
-        sizer = wxBoxSizer()
-        self.text = wxTextCtrl(self, self.ID_TEXT_CTRL, size=wxSize(200,-1))
-        sizer.Add(self.text, 0, wxRIGHT | wxALIGN_CENTER_VERTICAL, 5)
-        self.button = wxButton(self, self.ID_BUTTON_BROWSE, 'Browse...',size=buttonSize)
-        sizer.Add(self.button, 0, wxALIGN_CENTER_VERTICAL)
+        self.ID_TEXT_CTRL = wx.NewId()
+        self.ID_BUTTON_BROWSE = wx.NewId()
+        sizer = wx.BoxSizer()
+        self.text = wx.TextCtrl(self, self.ID_TEXT_CTRL, size=wx.Size(200,-1))
+        sizer.Add(self.text, 0, wx.RIGHT | wx.ALIGN_CENTER_VERTICAL, 5)
+        self.button = wx.Button(self, self.ID_BUTTON_BROWSE, 'Browse...',size=buttonSize)
+        sizer.Add(self.button, 0, wx.ALIGN_CENTER_VERTICAL)
         self.SetAutoLayout(True)
         self.SetSizer(sizer)
         sizer.Fit(self)
         self.textModified = False
-        EVT_BUTTON(self, self.ID_BUTTON_BROWSE, self.OnButtonBrowse)
-        EVT_TEXT(self, self.ID_TEXT_CTRL, self.OnChange)
+        wx.EVT_BUTTON(self, self.ID_BUTTON_BROWSE, self.OnButtonBrowse)
+        wx.EVT_TEXT(self, self.ID_TEXT_CTRL, self.OnChange)
     def OnChange(self, evt):
         PPanel.OnChange(self, evt)
         self.textModified = True
@@ -843,10 +839,10 @@ class ParamFile(PPanel):
     def OnButtonBrowse(self, evt):
         if self.textModified:           # text has newer value
             self.value = self.text.GetValue()
-        dlg = wxFileDialog(self,
+        dlg = wx.FileDialog(self,
                            defaultDir = os.path.abspath(os.path.dirname(self.value)),
                            defaultFile = os.path.basename(self.value))
-        if dlg.ShowModal() == wxID_OK:
+        if dlg.ShowModal() == wx.ID_OK:
             # Get common part of selected path and current
             if g.frame.dataFile:
                 curpath = os.path.abspath(g.frame.dataFile)
@@ -860,26 +856,25 @@ class ParamFile(PPanel):
 
 class ParamBitmap(PPanel):
     def __init__(self, parent, name):
-        pre = wxPrePanel()
+        pre = wx.PrePanel()
         g.frame.res.LoadOnPanel(pre, parent, 'PANEL_BITMAP')
-        self.this = pre.this
-        self._setOORInfo(self)
+        self.PostCreate(pre)
         self.modified = self.freeze = False
-        self.radio_std = XRCCTRL(self, 'RADIO_STD')
-        self.radio_file = XRCCTRL(self, 'RADIO_FILE')
-        self.combo = XRCCTRL(self, 'COMBO_STD')
-        self.text = XRCCTRL(self, 'TEXT_FILE')
-        self.button = XRCCTRL(self, 'BUTTON_BROWSE')
+        self.radio_std = xrc.XRCCTRL(self, 'RADIO_STD')
+        self.radio_file = xrc.XRCCTRL(self, 'RADIO_FILE')
+        self.combo = xrc.XRCCTRL(self, 'COMBO_STD')
+        self.text = xrc.XRCCTRL(self, 'TEXT_FILE')
+        self.button = xrc.XRCCTRL(self, 'BUTTON_BROWSE')
         self.textModified = False
         self.SetAutoLayout(True)
         self.GetSizer().SetMinSize((260, -1))
         self.GetSizer().Fit(self)
-        EVT_RADIOBUTTON(self, XRCID('RADIO_STD'), self.OnRadioStd)
-        EVT_RADIOBUTTON(self, XRCID('RADIO_FILE'), self.OnRadioFile)
-        EVT_BUTTON(self, XRCID('BUTTON_BROWSE'), self.OnButtonBrowse)
-        EVT_COMBOBOX(self, XRCID('COMBO_STD'), self.OnCombo)
-        EVT_TEXT(self, XRCID('COMBO_STD'), self.OnChange)
-        EVT_TEXT(self, XRCID('TEXT_FILE'), self.OnChange)
+        wx.EVT_RADIOBUTTON(self, xrc.XRCID('RADIO_STD'), self.OnRadioStd)
+        wx.EVT_RADIOBUTTON(self, xrc.XRCID('RADIO_FILE'), self.OnRadioFile)
+        wx.EVT_BUTTON(self, xrc.XRCID('BUTTON_BROWSE'), self.OnButtonBrowse)
+        wx.EVT_COMBOBOX(self, xrc.XRCID('COMBO_STD'), self.OnCombo)
+        wx.EVT_TEXT(self, xrc.XRCID('COMBO_STD'), self.OnChange)
+        wx.EVT_TEXT(self, xrc.XRCID('TEXT_FILE'), self.OnChange)
     def OnRadioStd(self, evt):
         self.SetModified()
         self.SetValue(['wxART_MISSING_IMAGE',''])
@@ -922,10 +917,10 @@ class ParamBitmap(PPanel):
     def OnButtonBrowse(self, evt):
         if self.textModified:           # text has newer value
             self.value[1] = self.text.GetValue()
-        dlg = wxFileDialog(self,
+        dlg = wx.FileDialog(self,
                            defaultDir = os.path.abspath(os.path.dirname(self.value[1])),
                            defaultFile = os.path.basename(self.value[1]))
-        if dlg.ShowModal() == wxID_OK:
+        if dlg.ShowModal() == wx.ID_OK:
             # Get common part of selected path and current
             if g.frame.dataFile:
                 curpath = os.path.abspath(g.frame.dataFile)
index f13a9cbb57dc1d31e0184759800838d5f0bd37a7..e0e3ac86d2e124527be049950215ec6b7f756596 100644 (file)
@@ -18,16 +18,16 @@ GROUP_WINDOWS, GROUP_MENUS, GROUP_SIZERS, GROUP_CONTROLS = range(GROUPNUM)
 STATE_ROOT, STATE_MENUBAR, STATE_TOOLBAR, STATE_MENU, STATE_STDDLGBTN, STATE_ELSE = range(6)
 
 # Left toolbar for GUI elements
-class Tools(wxPanel):
+class Tools(wx.Panel):
     TOOL_SIZE = (30, 30)
     def __init__(self, parent):
-        if wxPlatform == '__WXGTK__':
-            wxPanel.__init__(self, parent, -1,
-                             style=wxRAISED_BORDER|wxWANTS_CHARS)
+        if wx.Platform == '__WXGTK__':
+            wx.Panel.__init__(self, parent, -1,
+                             style=wx.RAISED_BORDER|wx.WANTS_CHARS)
         else:
-            wxPanel.__init__(self, parent, -1, style=wxWANTS_CHARS)
+            wx.Panel.__init__(self, parent, -1, style=wx.WANTS_CHARS)
         # Create sizer for groups
-        self.sizer = wxBoxSizer(wxVERTICAL)
+        self.sizer = wx.BoxSizer(wx.VERTICAL)
         # Data to create buttons
         pullDownMenu = g.pullDownMenu
         self.groups = []
@@ -96,31 +96,31 @@ class Tools(wxPanel):
         # Allow to be resized in vertical direction only
         self.SetSizeHints(self.GetSize()[0], -1)
         # Events
-        EVT_COMMAND_RANGE(self, ID_NEW.PANEL, ID_NEW.LAST,
-                          wxEVT_COMMAND_BUTTON_CLICKED, g.frame.OnCreate)
-        EVT_KEY_DOWN(self, self.OnKeyDown)
-        EVT_KEY_UP(self, self.OnKeyUp)
+        wx.EVT_COMMAND_RANGE(self, ID_NEW.PANEL, ID_NEW.LAST,
+                          wx.wxEVT_COMMAND_BUTTON_CLICKED, g.frame.OnCreate)
+        wx.EVT_KEY_DOWN(self, self.OnKeyDown)
+        wx.EVT_KEY_UP(self, self.OnKeyUp)
 
     def AddButton(self, id, image, text):
-        from wxPython.lib import buttons
-        button = buttons.wxGenBitmapButton(self, id, image, size=self.TOOL_SIZE,
-                                           style=wxNO_BORDER|wxWANTS_CHARS)
+        from wx.lib import buttons
+        button = buttons.GenBitmapButton(self, id, image, size=self.TOOL_SIZE,
+                                           style=wx.NO_BORDER|wx.WANTS_CHARS)
         button.SetBezelWidth(0)
-        EVT_KEY_DOWN(button, self.OnKeyDown)
-        EVT_KEY_UP(button, self.OnKeyUp)
+        wx.EVT_KEY_DOWN(button, self.OnKeyDown)
+        wx.EVT_KEY_UP(button, self.OnKeyUp)
         button.SetToolTipString(text)
         self.curSizer.Add(button)
         self.groups[-1][1][id] = button
 
     def AddGroup(self, name):
         # Each group is inside box
-        box = wxStaticBox(self, -1, name, style=wxWANTS_CHARS)
+        box = wx.StaticBox(self, -1, name, style=wx.WANTS_CHARS)
         box.SetFont(g.smallerFont())
-        boxSizer = wxStaticBoxSizer(box, wxVERTICAL)
+        boxSizer = wx.StaticBoxSizer(box, wx.VERTICAL)
         boxSizer.Add((0, 4))
-        self.curSizer = wxGridSizer(0, 3)
+        self.curSizer = wx.GridSizer(0, 3)
         boxSizer.Add(self.curSizer)
-        self.sizer.Add(boxSizer, 0, wxTOP | wxLEFT | wxRIGHT, 4)
+        self.sizer.Add(boxSizer, 0, wx.TOP | wx.LEFT | wx.RIGHT, 4)
         self.groups.append((box,{}))
 
     # Enable/disable group
@@ -142,17 +142,17 @@ class Tools(wxPanel):
 
     # Process key events
     def OnKeyDown(self, evt):
-        if evt.GetKeyCode() == WXK_CONTROL:
+        if evt.GetKeyCode() == wx.WXK_CONTROL:
             g.tree.ctrl = True
-        elif evt.GetKeyCode() == WXK_SHIFT:
+        elif evt.GetKeyCode() == wx.WXK_SHIFT:
             g.tree.shift = True
         self.UpdateIfNeeded()
         evt.Skip()
 
     def OnKeyUp(self, evt):
-        if evt.GetKeyCode() == WXK_CONTROL:
+        if evt.GetKeyCode() == wx.WXK_CONTROL:
             g.tree.ctrl = False
-        elif evt.GetKeyCode() == WXK_SHIFT:
+        elif evt.GetKeyCode() == wx.WXK_SHIFT:
             g.tree.shift = False
         self.UpdateIfNeeded()
         evt.Skip()
index 3cb4c990c93efbee1aebcdcb20d1e99cc98533c3..5db6f8c7e9859c087691122cf88fdd7c08ebb576 100644 (file)
@@ -22,14 +22,14 @@ class MemoryFile:
         if g.currentEncoding:
             encoding = g.currentEncoding
         else:
-            encoding = wxGetDefaultPyEncoding()
+            encoding = wx.GetDefaultPyEncoding()
         try:
             self.buffer += data.encode(encoding)
         except UnicodeEncodeError:
             self.buffer += data.encode(encoding, 'xmlcharrefreplace')
             
     def close(self):
-        wxMemoryFSHandler_AddFile(self.name, self.buffer)
+        wx.MemoryFSHandler.AddFile(self.name, self.buffer)
 
 ################################################################################
 
@@ -49,103 +49,103 @@ class MyDocument(minidom.Document):
 
 # Ids for menu commands
 class ID_NEW:
-    PANEL = wxNewId()
-    DIALOG = wxNewId()
-    FRAME = wxNewId()
-    TOOL_BAR = wxNewId()
-    TOOL = wxNewId()
-    MENU_BAR = wxNewId()
-    MENU = wxNewId()
-    STATUS_BAR = wxNewId()
-
-    STATIC_TEXT = wxNewId()
-    TEXT_CTRL = wxNewId()
-
-    BUTTON = wxNewId()
-    BITMAP_BUTTON = wxNewId()
-    RADIO_BUTTON = wxNewId()
-    SPIN_BUTTON = wxNewId()
-    TOGGLE_BUTTON = wxNewId()
-
-    STATIC_BOX = wxNewId()
-    CHECK_BOX = wxNewId()
-    RADIO_BOX = wxNewId()
-    COMBO_BOX = wxNewId()
-    LIST_BOX = wxNewId()
-
-    STATIC_LINE = wxNewId()
-    STATIC_BITMAP = wxNewId()
-    CHOICE = wxNewId()
-    SLIDER = wxNewId()
-    GAUGE = wxNewId()
-    SCROLL_BAR = wxNewId()
-    TREE_CTRL = wxNewId()
-    LIST_CTRL = wxNewId()
-    CHECK_LIST = wxNewId()
-    NOTEBOOK = wxNewId()
-    CHOICEBOOK = wxNewId()
-    LISTBOOK = wxNewId()
-    SPLITTER_WINDOW = wxNewId()
-    SCROLLED_WINDOW = wxNewId()
-    HTML_WINDOW = wxNewId()
-    CALENDAR_CTRL = wxNewId()
-    DATE_CTRL = wxNewId()
-    GENERIC_DIR_CTRL = wxNewId()
-    SPIN_CTRL = wxNewId()
-    UNKNOWN = wxNewId()
-    WIZARD = wxNewId()
-    WIZARD_PAGE = wxNewId()
-    WIZARD_PAGE_SIMPLE = wxNewId()
-    BITMAP = wxNewId()
-    ICON = wxNewId()
-    STATUS_BAR = wxNewId()
-
-    BOX_SIZER = wxNewId()
-    STATIC_BOX_SIZER = wxNewId()
-    GRID_SIZER = wxNewId()
-    FLEX_GRID_SIZER = wxNewId()
-    GRID_BAG_SIZER = wxNewId()
-    STD_DIALOG_BUTTON_SIZER = wxNewId()
-    SPACER = wxNewId()
+    PANEL = wx.NewId()
+    DIALOG = wx.NewId()
+    FRAME = wx.NewId()
+    TOOL_BAR = wx.NewId()
+    TOOL = wx.NewId()
+    MENU_BAR = wx.NewId()
+    MENU = wx.NewId()
+    STATUS_BAR = wx.NewId()
+
+    STATIC_TEXT = wx.NewId()
+    TEXT_CTRL = wx.NewId()
+
+    BUTTON = wx.NewId()
+    BITMAP_BUTTON = wx.NewId()
+    RADIO_BUTTON = wx.NewId()
+    SPIN_BUTTON = wx.NewId()
+    TOGGLE_BUTTON = wx.NewId()
+
+    STATIC_BOX = wx.NewId()
+    CHECK_BOX = wx.NewId()
+    RADIO_BOX = wx.NewId()
+    COMBO_BOX = wx.NewId()
+    LIST_BOX = wx.NewId()
+
+    STATIC_LINE = wx.NewId()
+    STATIC_BITMAP = wx.NewId()
+    CHOICE = wx.NewId()
+    SLIDER = wx.NewId()
+    GAUGE = wx.NewId()
+    SCROLL_BAR = wx.NewId()
+    TREE_CTRL = wx.NewId()
+    LIST_CTRL = wx.NewId()
+    CHECK_LIST = wx.NewId()
+    NOTEBOOK = wx.NewId()
+    CHOICEBOOK = wx.NewId()
+    LISTBOOK = wx.NewId()
+    SPLITTER_WINDOW = wx.NewId()
+    SCROLLED_WINDOW = wx.NewId()
+    HTML_WINDOW = wx.NewId()
+    CALENDAR_CTRL = wx.NewId()
+    DATE_CTRL = wx.NewId()
+    GENERIC_DIR_CTRL = wx.NewId()
+    SPIN_CTRL = wx.NewId()
+    UNKNOWN = wx.NewId()
+    WIZARD = wx.NewId()
+    WIZARD_PAGE = wx.NewId()
+    WIZARD_PAGE_SIMPLE = wx.NewId()
+    BITMAP = wx.NewId()
+    ICON = wx.NewId()
+    STATUS_BAR = wx.NewId()
+
+    BOX_SIZER = wx.NewId()
+    STATIC_BOX_SIZER = wx.NewId()
+    GRID_SIZER = wx.NewId()
+    FLEX_GRID_SIZER = wx.NewId()
+    GRID_BAG_SIZER = wx.NewId()
+    STD_DIALOG_BUTTON_SIZER = wx.NewId()
+    SPACER = wx.NewId()
     
-    TOOL_BAR = wxNewId()
-    TOOL = wxNewId()
-    MENU = wxNewId()
-    MENU_ITEM = wxNewId()
-    SEPARATOR = wxNewId()
+    TOOL_BAR = wx.NewId()
+    TOOL = wx.NewId()
+    MENU = wx.NewId()
+    MENU_ITEM = wx.NewId()
+    SEPARATOR = wx.NewId()
 
-    OK_BUTTON = wxNewId()
-    YES_BUTTON = wxNewId()
-    SAVE_BUTTON = wxNewId()
-    APPLY_BUTTON = wxNewId()
-    NO_BUTTON = wxNewId()
-    CANCEL_BUTTON = wxNewId()
-    HELP_BUTTON = wxNewId()
-    CONTEXT_HELP_BUTTON = wxNewId()
+    OK_BUTTON = wx.NewId()
+    YES_BUTTON = wx.NewId()
+    SAVE_BUTTON = wx.NewId()
+    APPLY_BUTTON = wx.NewId()
+    NO_BUTTON = wx.NewId()
+    CANCEL_BUTTON = wx.NewId()
+    HELP_BUTTON = wx.NewId()
+    CONTEXT_HELP_BUTTON = wx.NewId()
 
-    REF = wxNewId()
+    REF = wx.NewId()
 
-    LAST = wxNewId()
+    LAST = wx.NewId()
 
     
 
 class PullDownMenu:
-    ID_EXPAND = wxNewId()
-    ID_COLLAPSE = wxNewId()
-    ID_PASTE_SIBLING = wxNewId()
-    ID_TOOL_PASTE = wxNewId()
-    ID_SUBCLASS = wxNewId()
+    ID_EXPAND = wx.NewId()
+    ID_COLLAPSE = wx.NewId()
+    ID_PASTE_SIBLING = wx.NewId()
+    ID_TOOL_PASTE = wx.NewId()
+    ID_SUBCLASS = wx.NewId()
 
     def __init__(self, parent):
         self.ID_DELETE = parent.ID_DELETE
-        EVT_MENU_RANGE(parent, ID_NEW.PANEL, ID_NEW.LAST, parent.OnCreate)
-        EVT_MENU_RANGE(parent, 1000 + ID_NEW.PANEL, 1000 + ID_NEW.LAST, parent.OnReplace)
-        EVT_MENU(parent, self.ID_COLLAPSE, parent.OnCollapse)
-        EVT_MENU(parent, self.ID_EXPAND, parent.OnExpand)
-        EVT_MENU(parent, self.ID_PASTE_SIBLING, parent.OnPaste)
-        EVT_MENU(parent, self.ID_SUBCLASS, parent.OnSubclass)
+        wx.EVT_MENU_RANGE(parent, ID_NEW.PANEL, ID_NEW.LAST, parent.OnCreate)
+        wx.EVT_MENU_RANGE(parent, 1000 + ID_NEW.PANEL, 1000 + ID_NEW.LAST, parent.OnReplace)
+        wx.EVT_MENU(parent, self.ID_COLLAPSE, parent.OnCollapse)
+        wx.EVT_MENU(parent, self.ID_EXPAND, parent.OnExpand)
+        wx.EVT_MENU(parent, self.ID_PASTE_SIBLING, parent.OnPaste)
+        wx.EVT_MENU(parent, self.ID_SUBCLASS, parent.OnSubclass)
         # We connect to tree, but process in frame
-        EVT_MENU_HIGHLIGHT_ALL(g.tree, parent.OnPullDownHighlight)
+        wx.EVT_MENU_HIGHLIGHT_ALL(g.tree, parent.OnPullDownHighlight)
 
         # Mapping from IDs to element names
         self.createMap = {
@@ -387,9 +387,9 @@ def SetMenu(m, list, shift=False):
             if shift:  l = (1000 + l[0],) + l[1:]
             apply(m.Append, l)
         elif type(l) == types.ListType:
-            subMenu = wxMenu()
+            subMenu = wx.Menu()
             SetMenu(subMenu, l[2:], shift)
-            m.AppendMenu(wxNewId(), l[0], subMenu, l[1])
+            m.AppendMenu(wx.NewId(), l[0], subMenu, l[1])
         else:                           # separator
             m.AppendSeparator()
 
@@ -400,14 +400,14 @@ class HighLightBox:
         if size.width == -1: size.width = 0
         if size.height == -1: size.height = 0
         w = g.testWin.panel
-        l1 = wxWindow(w, -1, pos, wxSize(size.width, 2))
-        l1.SetBackgroundColour(wxRED)
-        l2 = wxWindow(w, -1, pos, wxSize(2, size.height))
-        l2.SetBackgroundColour(wxRED)
-        l3 = wxWindow(w, -1, wxPoint(pos.x + size.width - 2, pos.y), wxSize(2, size.height))
-        l3.SetBackgroundColour(wxRED)
-        l4 = wxWindow(w, -1, wxPoint(pos.x, pos.y + size.height - 2), wxSize(size.width, 2))
-        l4.SetBackgroundColour(wxRED)
+        l1 = wx.Window(w, -1, pos, wx.Size(size.width, 2))
+        l1.SetBackgroundColour(wx.RED)
+        l2 = wx.Window(w, -1, pos, wx.Size(2, size.height))
+        l2.SetBackgroundColour(wx.RED)
+        l3 = wx.Window(w, -1, wx.Point(pos.x + size.width - 2, pos.y), wx.Size(2, size.height))
+        l3.SetBackgroundColour(wx.RED)
+        l4 = wx.Window(w, -1, wx.Point(pos.x, pos.y + size.height - 2), wx.Size(size.width, 2))
+        l4.SetBackgroundColour(wx.RED)
         self.lines = [l1, l2, l3, l4]
     # Move highlight to a new position
     def Replace(self, pos, size):
@@ -419,27 +419,27 @@ class HighLightBox:
         self.lines[3].SetDimensions(pos.x, pos.y + size.height - 2, size.width, 2)
     # Remove it
     def Remove(self):
-        map(wxWindow.Destroy, self.lines)
+        map(wx.Window.Destroy, self.lines)
         g.testWin.highLight = None
     def Refresh(self):
-        map(wxWindow.Refresh, self.lines)
+        map(wx.Window.Refresh, self.lines)
 
 ################################################################################
 
-class XML_Tree(wxTreeCtrl):
+class XML_Tree(wx.TreeCtrl):
     def __init__(self, parent, id):
-        wxTreeCtrl.__init__(self, parent, id, style = wxTR_HAS_BUTTONS | wxTR_MULTIPLE)
-        self.SetBackgroundColour(wxColour(224, 248, 224))
+        wx.TreeCtrl.__init__(self, parent, id, style = wx.TR_HAS_BUTTONS | wx.TR_MULTIPLE)
+        self.SetBackgroundColour(wx.Colour(224, 248, 224))
         # Register events
-        EVT_TREE_SEL_CHANGED(self, self.GetId(), self.OnSelChanged)
+        wx.EVT_TREE_SEL_CHANGED(self, self.GetId(), self.OnSelChanged)
         # One works on Linux, another on Windows
-        if wxPlatform == '__WXGTK__':
-            EVT_TREE_ITEM_ACTIVATED(self, self.GetId(), self.OnItemActivated)
+        if wx.Platform == '__WXGTK__':
+            wx.EVT_TREE_ITEM_ACTIVATED(self, self.GetId(), self.OnItemActivated)
         else:
-            EVT_LEFT_DCLICK(self, self.OnDClick)
-        EVT_RIGHT_DOWN(self, self.OnRightDown)
-        EVT_TREE_ITEM_EXPANDED(self, self.GetId(), self.OnItemExpandedCollapsed)
-        EVT_TREE_ITEM_COLLAPSED(self, self.GetId(), self.OnItemExpandedCollapsed)
+            wx.EVT_LEFT_DCLICK(self, self.OnDClick)
+        wx.EVT_RIGHT_DOWN(self, self.OnRightDown)
+        wx.EVT_TREE_ITEM_EXPANDED(self, self.GetId(), self.OnItemExpandedCollapsed)
+        wx.EVT_TREE_ITEM_COLLAPSED(self, self.GetId(), self.OnItemExpandedCollapsed)
 
         self.selection = None
         self.selectionChanging = False
@@ -448,7 +448,7 @@ class XML_Tree(wxTreeCtrl):
         self.ctrl = self.shift = False
         self.dom = None
         # Create image list
-        il = wxImageList(16, 16, True)
+        il = wx.ImageList(16, 16, True)
         self.rootImage = il.Add(images.getTreeRootImage().Scale(16,16).ConvertToBitmap())
         xxxObject.image = il.Add(images.getTreeDefaultImage().Scale(16,16).ConvertToBitmap())
         xxxPanel.image = il.Add(images.getTreePanelImage().Scale(16,16).ConvertToBitmap())
@@ -470,10 +470,10 @@ class XML_Tree(wxTreeCtrl):
         self.SetImageList(il)
 
     def RegisterKeyEvents(self):
-        EVT_KEY_DOWN(self, g.tools.OnKeyDown)
-        EVT_KEY_UP(self, g.tools.OnKeyUp)
-        EVT_ENTER_WINDOW(self, g.tools.OnMouse)
-        EVT_LEAVE_WINDOW(self, g.tools.OnMouse)
+        wx.EVT_KEY_DOWN(self, g.tools.OnKeyDown)
+        wx.EVT_KEY_UP(self, g.tools.OnKeyUp)
+        wx.EVT_ENTER_WINDOW(self, g.tools.OnMouse)
+        wx.EVT_LEAVE_WINDOW(self, g.tools.OnMouse)
 
     def ExpandAll(self, item):
         if self.ItemHasChildren(item):
@@ -510,7 +510,7 @@ class XML_Tree(wxTreeCtrl):
         self.dom.appendChild(self.mainNode)
         self.rootObj = xxxMainNode(self.dom)
         self.root = self.AddRoot('XML tree', self.rootImage,
-                                 data=wxTreeItemData(self.rootObj))
+                                 data=wx.TreeItemData(self.rootObj))
         self.SetItemHasChildren(self.root)
         self.testElem = self.dom.createElement('dummy')
         self.mainNode.appendChild(self.testElem)
@@ -529,7 +529,7 @@ class XML_Tree(wxTreeCtrl):
         self.mainNode = dom.documentElement
         self.rootObj = xxxMainNode(self.dom)
         self.root = self.AddRoot('XML tree', self.rootImage,
-                                 data=wxTreeItemData(self.rootObj))
+                                 data=wx.TreeItemData(self.rootObj))
         self.SetItemHasChildren(self.root)
         nodes = self.mainNode.childNodes[:]
         for node in nodes:
@@ -559,7 +559,7 @@ class XML_Tree(wxTreeCtrl):
         # Append tree item
         item = self.AppendItem(itemParent, treeObj.treeName(),
                                image=treeObj.treeImage(),
-                               data=wxTreeItemData(xxx))
+                               data=wx.TreeItemData(xxx))
         # Different color for references
         if treeObj.ref:
             self.SetItemTextColour(item, 'DarkGreen')
@@ -589,7 +589,7 @@ class XML_Tree(wxTreeCtrl):
         else:
             parent.element.appendChild(elem)
             newItem = self.AppendItem(itemParent, xxx.treeName(), image=xxx.treeImage(),
-                                      data=wxTreeItemData(xxx))
+                                      data=wx.TreeItemData(xxx))
         # Different color for references
         if xxx.treeObject().ref:  self.SetItemTextColour(newItem, 'DarkGreen')
         # Add children items
@@ -613,7 +613,7 @@ class XML_Tree(wxTreeCtrl):
     # Find position relative to the top-level window
     def FindNodePos(self, item, obj=None):
         # Root at (0,0)
-        if item == g.testWin.item: return wxPoint(0, 0)
+        if item == g.testWin.item: return wx.Point(0, 0)
         itemParent = self.GetItemParent(item)
         # Select book page
         if not obj: obj = self.FindNodeObject(item)
@@ -635,7 +635,7 @@ class XML_Tree(wxTreeCtrl):
             winParent = self.GetItemParent(winParent)
         # Notebook children are layed out in a little strange way
         if self.GetPyData(itemParent).treeObject().__class__ == xxxNotebook:
-            parentPos = wxPoint(0,0)
+            parentPos = wx.Point(0,0)
         else:
             parentPos = self.FindNodePos(winParent)
         # Position (-1,-1) is really (0,0)
@@ -652,7 +652,7 @@ class XML_Tree(wxTreeCtrl):
         xxx = self.GetPyData(item).treeObject()
         parentWin = self.FindNodeObject(itemParent)
         # Top-level sizer? return window's sizer
-        if xxx.isSizer and isinstance(parentWin, wxWindow):
+        if xxx.isSizer and isinstance(parentWin, wx.Window):
             return parentWin.GetSizer()
         elif xxx.__class__ in [xxxMenu, xxxMenuItem, xxxSeparator]:  return None
         elif xxx.__class__ in [xxxToolBar, xxxMenuBar]:
@@ -764,16 +764,16 @@ class XML_Tree(wxTreeCtrl):
         while item and self.GetPyData(item).treeObject().className not in availableViews:
             item = self.GetItemParent(item)
         if not item or not item.IsOk():
-            wxLogMessage('No view for this element (yet)')
+            wx.LogMessage('No view for this element (yet)')
             return
         # Show item in bold
         if g.testWin:     # Reset old
             self.SetItemBold(g.testWin.item, False)
         try:
-            wxBeginBusyCursor()
+            wx.BeginBusyCursor()
             self.CreateTestWin(item)
         finally:
-            wxEndBusyCursor()
+            wx.EndBusyCursor()
         # Maybe an error occurred, so we need to test
         if g.testWin:
             self.SetItemBold(g.testWin.item)
@@ -788,7 +788,7 @@ class XML_Tree(wxTreeCtrl):
     # Double-click on Windows
     def OnDClick(self, evt):
         item, flags = self.HitTest(evt.GetPosition())
-        if flags in [wxTREE_HITTEST_ONITEMBUTTON, wxTREE_HITTEST_ONITEMLABEL]:
+        if flags in [wx.TREE_HITTEST_ONITEMBUTTON, wx.TREE_HITTEST_ONITEMLABEL]:
             if item != self.root: self.ShowTestWindow(item)
         else:
             evt.Skip()
@@ -811,8 +811,8 @@ class XML_Tree(wxTreeCtrl):
 #            child = self.GetFirstChild(item)[0]
 #            if child.IsOk() and self.GetPyData(child).__class__ == xxxPanel:
 #                # Clean-up before recursive call or error
-#                wxMemoryFSHandler_RemoveFile('xxx.xrc')
-#                wxEndBusyCursor()
+#                wx.MemoryFSHandler.RemoveFile('xxx.xrc')
+#                wx.EndBusyCursor()
 #                self.CreateTestWin(child)
 #                return
 
@@ -862,15 +862,15 @@ class XML_Tree(wxTreeCtrl):
             self.dom.writexml(memFile, encoding=encd)
         except:
             inf = sys.exc_info()
-            wxLogError(traceback.format_exception(inf[0], inf[1], None)[-1])
-            wxLogError('Error writing temporary file')
+            wx.LogError(traceback.format_exception(inf[0], inf[1], None)[-1])
+            wx.LogError('Error writing temporary file')
             if debug: raise            
         memFile.close()                 # write to wxMemoryFS
-        xmlFlags = wxXRC_NO_SUBCLASSING
+        xmlFlags = xrc.XRC_NO_SUBCLASSING
         # Use translations if encoding is not specified
         if not g.currentEncoding:
-            xmlFlags != wxXRC_USE_LOCALE
-        res = wxXmlResource('', xmlFlags)
+            xmlFlags != xrc.XRC_USE_LOCALE
+        res = xrc.XmlResource('', xmlFlags)
         res.Load('memory:xxx.xrc')
         try:
             if xxx.__class__ == xxxFrame:
@@ -879,12 +879,12 @@ class XML_Tree(wxTreeCtrl):
     #            child = self.GetFirstChild(item)[0]
     #            if child.IsOk() and self.GetPyData(child).__class__ == xxxPanel:
     #                # Clean-up before recursive call or error
-    #                wxMemoryFSHandler_RemoveFile('xxx.xrc')
-    #                wxEndBusyCursor()
+    #                wx.MemoryFSHandler.RemoveFile('xxx.xrc')
+    #                wx.EndBusyCursor()
     #                self.CreateTestWin(child)
     #                return
                 # This currently works under GTK, but not under MSW
-                testWin = g.testWin = wxPreFrame()
+                testWin = g.testWin = wx.PreFrame()
                 res.LoadOnFrame(testWin, g.frame, STD_NAME)
                 # Create status bar
                 testWin.panel = testWin
@@ -895,7 +895,7 @@ class XML_Tree(wxTreeCtrl):
             elif xxx.__class__ == xxxPanel:
                 # Create new frame
                 if not testWin:
-                    testWin = g.testWin = wxFrame(g.frame, -1, 'Panel: ' + name,
+                    testWin = g.testWin = wx.Frame(g.frame, -1, 'Panel: ' + name,
                                                   pos=pos, name=STD_NAME)
                 testWin.panel = res.LoadPanel(testWin, STD_NAME)
                 testWin.SetClientSize(testWin.GetBestSize())
@@ -906,20 +906,20 @@ class XML_Tree(wxTreeCtrl):
                 testWin.Layout()
                 testWin.SetPosition(pos)
                 testWin.Show(True)
-                # Dialog's default code does not produce EVT_CLOSE
-                EVT_BUTTON(testWin, wxID_OK, self.OnCloseTestWin)
-                EVT_BUTTON(testWin, wxID_CANCEL, self.OnCloseTestWin)
+                # Dialog's default code does not produce wx.EVT_CLOSE
+                wx.EVT_BUTTON(testWin, wx.ID_OK, self.OnCloseTestWin)
+                wx.EVT_BUTTON(testWin, wx.ID_CANCEL, self.OnCloseTestWin)
             elif xxx.__class__ == xxxWizard:
-                wiz = wxPreWizard()
+                wiz = wx.wizard.PreWizard()
                 res.LoadOnObject(wiz, None, STD_NAME, 'wxWizard')
                 # Find first page (don't know better way)
                 firstPage = None
                 for w in wiz.GetChildren():
-                    if isinstance(w, wxWizardPage):
+                    if isinstance(w, wx.wizard.WizardPage):
                         firstPage = w
                         break
                 if not firstPage:
-                    wxLogError('Wizard is empty')
+                    wx.LogError('Wizard is empty')
                 else:
                     # Wizard should be modal
                     self.SetItemBold(item)
@@ -929,14 +929,14 @@ class XML_Tree(wxTreeCtrl):
             elif xxx.__class__ in [xxxWizardPage, xxxWizardPageSimple]:
                 # Create new frame
                 if not testWin:
-                    testWin = g.testWin = wxFrame(g.frame, -1, 'Wizard page: ' + name,
+                    testWin = g.testWin = wx.Frame(g.frame, -1, 'Wizard page: ' + name,
                                                   pos=pos, name=STD_NAME)
-                testWin.panel = wxPrePanel()
+                testWin.panel = wx.PrePanel()
                 res.LoadOnObject(testWin.panel, testWin, STD_NAME, 'wxPanel')
                 testWin.SetClientSize(testWin.GetBestSize())
                 testWin.Show(True)
             elif xxx.__class__ == xxxMenuBar:
-                testWin = g.testWin = wxFrame(g.frame, -1, 'MenuBar: ' + name,
+                testWin = g.testWin = wx.Frame(g.frame, -1, 'MenuBar: ' + name,
                                               pos=pos, name=STD_NAME)
                 testWin.panel = None
                 # Set status bar to display help
@@ -945,7 +945,7 @@ class XML_Tree(wxTreeCtrl):
                 testWin.SetMenuBar(testWin.menuBar)
                 testWin.Show(True)
             elif xxx.__class__ == xxxToolBar:
-                testWin = g.testWin = wxFrame(g.frame, -1, 'ToolBar: ' + name,
+                testWin = g.testWin = wx.Frame(g.frame, -1, 'ToolBar: ' + name,
                                               pos=pos, name=STD_NAME)
                 testWin.panel = None
                 # Set status bar to display help
@@ -955,7 +955,7 @@ class XML_Tree(wxTreeCtrl):
                 testWin.Show(True)
             if testWin:
                 testWin.item = item
-                EVT_CLOSE(testWin, self.OnCloseTestWin)
+                wx.EVT_CLOSE(testWin, self.OnCloseTestWin)
                 testWin.highLight = None
                 if highLight and not self.pendingHighLight:
                     self.HighLight(highLight)
@@ -966,9 +966,9 @@ class XML_Tree(wxTreeCtrl):
                 g.testWin.Destroy()
                 g.testWin = None
             inf = sys.exc_info()
-            wxLogError(traceback.format_exception(inf[0], inf[1], None)[-1])
-            wxLogError('Error loading resource')
-        wxMemoryFSHandler_RemoveFile('xxx.xrc')
+            wx.LogError(traceback.format_exception(inf[0], inf[1], None)[-1])
+            wx.LogError('Error loading resource')
+        wx.MemoryFSHandler.RemoveFile('xxx.xrc')
 
     def CloseTestWindow(self):
         if not g.testWin: return
@@ -1011,7 +1011,7 @@ class XML_Tree(wxTreeCtrl):
         return l
     # Get item position from full index
     def ItemAtFullIndex(self, index):
-        if index is None: return wxTreeItemId()
+        if index is None: return wx.TreeItemId()
         item = self.root
         for i in index:
             item = self.GetFirstChild(item)[0]
@@ -1032,7 +1032,7 @@ class XML_Tree(wxTreeCtrl):
     def SelectItem(self, item):
         self.UnselectAll()
         self.ChangeSelection(item)
-        wxTreeCtrl.SelectItem(self, item)
+        wx.TreeCtrl.SelectItem(self, item)
 
     # Pull-down
     def OnRightDown(self, evt):
@@ -1040,11 +1040,11 @@ class XML_Tree(wxTreeCtrl):
         # select this item
         pt = evt.GetPosition();
         item, flags = self.HitTest(pt)
-        if item.Ok() and flags & wxTREE_HITTEST_ONITEM:
+        if item.Ok() and flags & wx.TREE_HITTEST_ONITEM:
             self.SelectItem(item)
 
         # Setup menu
-        menu = wxMenu()
+        menu = wx.Menu()
 
         item = self.selection
         if not item:
@@ -1053,7 +1053,7 @@ class XML_Tree(wxTreeCtrl):
         else:
 #            self.ctrl = evt.ControlDown() # save Ctrl state
 #            self.shift = evt.ShiftDown()  # and Shift too
-            m = wxMenu()                  # create menu
+            m = wx.Menu()                  # create menu
             if self.ctrl:
                 needInsert = True
             else:
@@ -1088,22 +1088,22 @@ class XML_Tree(wxTreeCtrl):
             # Select correct label for create menu
             if not needInsert:
                 if self.shift:
-                    menu.AppendMenu(wxNewId(), 'Insert Child', m,
+                    menu.AppendMenu(wx.NewId(), 'Insert Child', m,
                                     'Create child object as the first child')
                 else:
-                    menu.AppendMenu(wxNewId(), 'Append Child', m,
+                    menu.AppendMenu(wx.NewId(), 'Append Child', m,
                                     'Create child object as the last child')
             else:
                 if self.shift:
-                    menu.AppendMenu(wxNewId(), 'Create Sibling', m,
+                    menu.AppendMenu(wx.NewId(), 'Create Sibling', m,
                                     'Create sibling before selected object')
                 else:
-                    menu.AppendMenu(wxNewId(), 'Create Sibling', m,
+                    menu.AppendMenu(wx.NewId(), 'Create Sibling', m,
                                     'Create sibling after selected object')
             # Build replace menu
             if item != self.root:
                 xxx = self.GetPyData(item).treeObject()
-                m = wxMenu()                  # create replace menu
+                m = wx.Menu()                  # create replace menu
                 if xxx.__class__ == xxxMenuBar:
                     m.Append(1000 + ID_NEW.MENU, 'Menu', 'Create menu')
                 elif xxx.__class__ in [xxxMenu, xxxMenuItem]:
@@ -1120,20 +1120,20 @@ class XML_Tree(wxTreeCtrl):
                     SetMenu(m, pullDownMenu.sizers, shift=True)
                 else:
                     SetMenu(m, pullDownMenu.controls, shift=True)
-                id = wxNewId()
+                id = wx.NewId()
                 menu.AppendMenu(id, 'Replace With', m)
                 if not m.GetMenuItemCount(): menu.Enable(id, False)
                 menu.Append(pullDownMenu.ID_SUBCLASS, 'Subclass...',
                             'Set "subclass" property')
             menu.AppendSeparator()
             # Not using standart IDs because we don't want to show shortcuts
-            menu.Append(wxID_CUT, 'Cut', 'Cut to the clipboard')
-            menu.Append(wxID_COPY, 'Copy', 'Copy to the clipboard')
+            menu.Append(wx.ID_CUT, 'Cut', 'Cut to the clipboard')
+            menu.Append(wx.ID_COPY, 'Copy', 'Copy to the clipboard')
             if self.ctrl and item != self.root:
                 menu.Append(pullDownMenu.ID_PASTE_SIBLING, 'Paste Sibling',
                             'Paste from the clipboard as a sibling')
             else:
-                menu.Append(wxID_PASTE, 'Paste', 'Paste from the clipboard')
+                menu.Append(wx.ID_PASTE, 'Paste', 'Paste from the clipboard')
             menu.Append(pullDownMenu.ID_DELETE,
                                 'Delete', 'Delete object')
             if self.ItemHasChildren(item):
index 9fb1c03f4a06a2eb09846bed5406e54b471a77ad..4d9c55aa224855613a3049b162821611e645b67b 100644 (file)
@@ -6,7 +6,7 @@
 
 """
 
-xrced -- Simple resource editor for XRC format used by wxWindows/wxPython
+xrced -- Simple resource editor for XRC format used by wxWidgets/wxPython
          GUI toolkit.
 
 Usage:
@@ -62,35 +62,35 @@ defaultName = 'UNTITLED.xrc'
 ################################################################################
 
 # ScrolledMessageDialog - modified from wxPython lib to set fixed-width font
-class ScrolledMessageDialog(wxDialog):
-    def __init__(self, parent, msg, caption, pos = wxDefaultPosition, size = (500,300)):
-        from wxPython.lib.layoutf import Layoutf
-        wxDialog.__init__(self, parent, -1, caption, pos, size)
-        text = wxTextCtrl(self, -1, msg, wxDefaultPosition,
-                             wxDefaultSize, wxTE_MULTILINE | wxTE_READONLY)
+class ScrolledMessageDialog(wx.Dialog):
+    def __init__(self, parent, msg, caption, pos = wx.DefaultPosition, size = (500,300)):
+        from wx.lib.layoutf import Layoutf
+        wx.Dialog.__init__(self, parent, -1, caption, pos, size)
+        text = wx.TextCtrl(self, -1, msg, wx.DefaultPosition,
+                             wx.DefaultSize, wx.TE_MULTILINE | wx.TE_READONLY)
         text.SetFont(g.modernFont())
-        dc = wxWindowDC(text)
+        dc = wx.WindowDC(text)
         # !!! possible bug - GetTextExtent without font returns sysfont dims
         w, h = dc.GetFullTextExtent(' ', g.modernFont())[:2]
-        ok = wxButton(self, wxID_OK, "OK")
+        ok = wx.Button(self, wx.ID_OK, "OK")
         text.SetConstraints(Layoutf('t=t5#1;b=t5#2;l=l5#1;r=r5#1', (self,ok)))
         text.SetSize((w * 80 + 30, h * 40))
         text.ShowPosition(1)
         ok.SetConstraints(Layoutf('b=b5#1;x%w50#1;w!80;h!25', (self,)))
         self.SetAutoLayout(True)
         self.Fit()
-        self.CenterOnScreen(wxBOTH)
+        self.CenterOnScreen(wx.BOTH)
 
 ################################################################################
 
 # Event handler for using during location
-class Locator(wxEvtHandler):
+class Locator(wx.EvtHandler):
     def ProcessEvent(self, evt):
         print evt
 
-class Frame(wxFrame):
+class Frame(wx.Frame):
     def __init__(self, pos, size):
-        wxFrame.__init__(self, None, -1, '', pos, size)
+        wx.Frame.__init__(self, None, -1, '', pos, size)
         global frame
         frame = g.frame = self
         bar = self.CreateStatusBar(2)
@@ -101,7 +101,7 @@ class Frame(wxFrame):
         self.inIdle = False
 
         # Load our own resources
-        self.res = wxXmlResource('')
+        self.res = xrc.XmlResource('')
         # !!! Blocking of assert failure occurring in older unicode builds
         try:
             quietlog = wx.LogNull()
@@ -110,78 +110,78 @@ class Frame(wxFrame):
             print 'PyAssertionError was ignored'
 
         # Make menus
-        menuBar = wxMenuBar()
+        menuBar = wx.MenuBar()
 
-        menu = wxMenu()
-        menu.Append(wxID_NEW, '&New\tCtrl-N', 'New file')
+        menu = wx.Menu()
+        menu.Append(wx.ID_NEW, '&New\tCtrl-N', 'New file')
         menu.AppendSeparator()
-        menu.Append(wxID_OPEN, '&Open...\tCtrl-O', 'Open XRC file')
-        self.recentMenu = wxMenu()
+        menu.Append(wx.ID_OPEN, '&Open...\tCtrl-O', 'Open XRC file')
+        self.recentMenu = wx.Menu()
         self.AppendRecent(self.recentMenu)
         menu.AppendMenu(-1, 'Open Recent', self.recentMenu, 'Open a recent file')
         menu.AppendSeparator()
-        menu.Append(wxID_SAVE, '&Save\tCtrl-S', 'Save XRC file')
-        menu.Append(wxID_SAVEAS, 'Save &As...', 'Save XRC file under different name')
-        self.ID_GENERATE_PYTHON = wxNewId()
+        menu.Append(wx.ID_SAVE, '&Save\tCtrl-S', 'Save XRC file')
+        menu.Append(wx.ID_SAVEAS, 'Save &As...', 'Save XRC file under different name')
+        self.ID_GENERATE_PYTHON = wx.NewId()
         menu.Append(self.ID_GENERATE_PYTHON, '&Generate Python...', 
                     'Generate a Python module that uses this XRC')
         menu.AppendSeparator()
-        menu.Append(wxID_EXIT, '&Quit\tCtrl-Q', 'Exit application')
+        menu.Append(wx.ID_EXIT, '&Quit\tCtrl-Q', 'Exit application')
 
         menuBar.Append(menu, '&File')
 
-        menu = wxMenu()
-        menu.Append(wxID_UNDO, '&Undo\tCtrl-Z', 'Undo')
-        menu.Append(wxID_REDO, '&Redo\tCtrl-Y', 'Redo')
+        menu = wx.Menu()
+        menu.Append(wx.ID_UNDO, '&Undo\tCtrl-Z', 'Undo')
+        menu.Append(wx.ID_REDO, '&Redo\tCtrl-Y', 'Redo')
         menu.AppendSeparator()
-        menu.Append(wxID_CUT, 'Cut\tCtrl-X', 'Cut to the clipboard')
-        menu.Append(wxID_COPY, '&Copy\tCtrl-C', 'Copy to the clipboard')
-        menu.Append(wxID_PASTE, '&Paste\tCtrl-V', 'Paste from the clipboard')
-        self.ID_DELETE = wxNewId()
+        menu.Append(wx.ID_CUT, 'Cut\tCtrl-X', 'Cut to the clipboard')
+        menu.Append(wx.ID_COPY, '&Copy\tCtrl-C', 'Copy to the clipboard')
+        menu.Append(wx.ID_PASTE, '&Paste\tCtrl-V', 'Paste from the clipboard')
+        self.ID_DELETE = wx.NewId()
         menu.Append(self.ID_DELETE, '&Delete\tCtrl-D', 'Delete object')
         menu.AppendSeparator()
-        self.ID_LOCATE = wxNewId()
-        self.ID_TOOL_LOCATE = wxNewId()
-        self.ID_TOOL_PASTE = wxNewId()
+        self.ID_LOCATE = wx.NewId()
+        self.ID_TOOL_LOCATE = wx.NewId()
+        self.ID_TOOL_PASTE = wx.NewId()
         menu.Append(self.ID_LOCATE, '&Locate\tCtrl-L', 'Locate control in test window and select it')
         menuBar.Append(menu, '&Edit')
 
-        menu = wxMenu()
-        self.ID_EMBED_PANEL = wxNewId()
+        menu = wx.Menu()
+        self.ID_EMBED_PANEL = wx.NewId()
         menu.Append(self.ID_EMBED_PANEL, '&Embed Panel',
                     'Toggle embedding properties panel in the main window', True)
         menu.Check(self.ID_EMBED_PANEL, conf.embedPanel)
-        self.ID_SHOW_TOOLS = wxNewId()
+        self.ID_SHOW_TOOLS = wx.NewId()
         menu.Append(self.ID_SHOW_TOOLS, 'Show &Tools', 'Toggle tools', True)
         menu.Check(self.ID_SHOW_TOOLS, conf.showTools)
         menu.AppendSeparator()
-        self.ID_TEST = wxNewId()
+        self.ID_TEST = wx.NewId()
         menu.Append(self.ID_TEST, '&Test\tF5', 'Show test window')
-        self.ID_REFRESH = wxNewId()
+        self.ID_REFRESH = wx.NewId()
         menu.Append(self.ID_REFRESH, '&Refresh\tCtrl-R', 'Refresh test window')
-        self.ID_AUTO_REFRESH = wxNewId()
+        self.ID_AUTO_REFRESH = wx.NewId()
         menu.Append(self.ID_AUTO_REFRESH, '&Auto-refresh\tCtrl-A',
                     'Toggle auto-refresh mode', True)
         menu.Check(self.ID_AUTO_REFRESH, conf.autoRefresh)
-        self.ID_TEST_HIDE = wxNewId()
+        self.ID_TEST_HIDE = wx.NewId()
         menu.Append(self.ID_TEST_HIDE, '&Hide\tCtrl-H', 'Close test window')
         menuBar.Append(menu, '&View')
 
-        menu = wxMenu()
-        menu.Append(wxID_ABOUT, '&About...', 'About XCRed')
-        self.ID_README = wxNewId()
+        menu = wx.Menu()
+        menu.Append(wx.ID_ABOUT, '&About...', 'About XCRed')
+        self.ID_README = wx.NewId()
         menu.Append(self.ID_README, '&Readme...', 'View the README file')
         if debug:
-            self.ID_DEBUG_CMD = wxNewId()
+            self.ID_DEBUG_CMD = wx.NewId()
             menu.Append(self.ID_DEBUG_CMD, 'CMD', 'Python command line')
-            EVT_MENU(self, self.ID_DEBUG_CMD, self.OnDebugCMD)
+            wx.EVT_MENU(self, self.ID_DEBUG_CMD, self.OnDebugCMD)
         menuBar.Append(menu, '&Help')
 
         self.menuBar = menuBar
         self.SetMenuBar(menuBar)
 
         # Create toolbar
-        tb = self.CreateToolBar(wxTB_HORIZONTAL | wxNO_BORDER | wxTB_FLAT)
+        tb = self.CreateToolBar(wx.TB_HORIZONTAL | wx.NO_BORDER | wx.TB_FLAT)
         tb.SetToolBitmapSize((24,24))
         new_bmp  = wx.ArtProvider.GetBitmap(wx.ART_NORMAL_FILE, wx.ART_TOOLBAR)
         open_bmp = wx.ArtProvider.GetBitmap(wx.ART_FILE_OPEN, wx.ART_TOOLBAR)
@@ -192,27 +192,27 @@ class Frame(wxFrame):
         copy_bmp = wx.ArtProvider.GetBitmap(wx.ART_COPY, wx.ART_TOOLBAR)
         paste_bmp= wx.ArtProvider.GetBitmap(wx.ART_PASTE, wx.ART_TOOLBAR)
         
-        tb.AddSimpleTool(wxID_NEW, new_bmp, 'New', 'New file')
-        tb.AddSimpleTool(wxID_OPEN, open_bmp, 'Open', 'Open file')
-        tb.AddSimpleTool(wxID_SAVE, save_bmp, 'Save', 'Save file')
-        tb.AddControl(wxStaticLine(tb, -1, size=(-1,23), style=wxLI_VERTICAL))
-        tb.AddSimpleTool(wxID_UNDO, undo_bmp, 'Undo', 'Undo')
-        tb.AddSimpleTool(wxID_REDO, redo_bmp, 'Redo', 'Redo')
-        tb.AddControl(wxStaticLine(tb, -1, size=(-1,23), style=wxLI_VERTICAL))
-        tb.AddSimpleTool(wxID_CUT, cut_bmp, 'Cut', 'Cut')
-        tb.AddSimpleTool(wxID_COPY, copy_bmp, 'Copy', 'Copy')
+        tb.AddSimpleTool(wx.ID_NEW, new_bmp, 'New', 'New file')
+        tb.AddSimpleTool(wx.ID_OPEN, open_bmp, 'Open', 'Open file')
+        tb.AddSimpleTool(wx.ID_SAVE, save_bmp, 'Save', 'Save file')
+        tb.AddControl(wx.StaticLine(tb, -1, size=(-1,23), style=wx.LI_VERTICAL))
+        tb.AddSimpleTool(wx.ID_UNDO, undo_bmp, 'Undo', 'Undo')
+        tb.AddSimpleTool(wx.ID_REDO, redo_bmp, 'Redo', 'Redo')
+        tb.AddControl(wx.StaticLine(tb, -1, size=(-1,23), style=wx.LI_VERTICAL))
+        tb.AddSimpleTool(wx.ID_CUT, cut_bmp, 'Cut', 'Cut')
+        tb.AddSimpleTool(wx.ID_COPY, copy_bmp, 'Copy', 'Copy')
         tb.AddSimpleTool(self.ID_TOOL_PASTE, paste_bmp, 'Paste', 'Paste')
-        tb.AddControl(wxStaticLine(tb, -1, size=(-1,23), style=wxLI_VERTICAL))
+        tb.AddControl(wx.StaticLine(tb, -1, size=(-1,23), style=wx.LI_VERTICAL))
         tb.AddSimpleTool(self.ID_TOOL_LOCATE,
                         images.getLocateBitmap(), #images.getLocateArmedBitmap(),
                         'Locate', 'Locate control in test window and select it', True)
-        tb.AddControl(wxStaticLine(tb, -1, size=(-1,23), style=wxLI_VERTICAL))
+        tb.AddControl(wx.StaticLine(tb, -1, size=(-1,23), style=wx.LI_VERTICAL))
         tb.AddSimpleTool(self.ID_TEST, images.getTestBitmap(), 'Test', 'Test window')
         tb.AddSimpleTool(self.ID_REFRESH, images.getRefreshBitmap(),
                          'Refresh', 'Refresh view')
         tb.AddSimpleTool(self.ID_AUTO_REFRESH, images.getAutoRefreshBitmap(),
                          'Auto-refresh', 'Toggle auto-refresh mode', True)
-#        if wxPlatform == '__WXGTK__':
+#        if wx.Platform == '__WXGTK__':
 #            tb.AddSeparator()   # otherwise auto-refresh sticks in status line
         tb.ToggleTool(self.ID_AUTO_REFRESH, conf.autoRefresh)
         tb.Realize()
@@ -221,53 +221,53 @@ class Frame(wxFrame):
         self.minWidth = tb.GetSize()[0] # minimal width is the size of toolbar
 
         # File
-        EVT_MENU(self, wxID_NEW, self.OnNew)
-        EVT_MENU(self, wxID_OPEN, self.OnOpen)
-        EVT_MENU(self, wxID_SAVE, self.OnSaveOrSaveAs)
-        EVT_MENU(self, wxID_SAVEAS, self.OnSaveOrSaveAs)
-        EVT_MENU(self, self.ID_GENERATE_PYTHON, self.OnGeneratePython)
-        EVT_MENU(self, wxID_EXIT, self.OnExit)
+        wx.EVT_MENU(self, wx.ID_NEW, self.OnNew)
+        wx.EVT_MENU(self, wx.ID_OPEN, self.OnOpen)
+        wx.EVT_MENU(self, wx.ID_SAVE, self.OnSaveOrSaveAs)
+        wx.EVT_MENU(self, wx.ID_SAVEAS, self.OnSaveOrSaveAs)
+        wx.EVT_MENU(self, self.ID_GENERATE_PYTHON, self.OnGeneratePython)
+        wx.EVT_MENU(self, wx.ID_EXIT, self.OnExit)
         # Edit
-        EVT_MENU(self, wxID_UNDO, self.OnUndo)
-        EVT_MENU(self, wxID_REDO, self.OnRedo)
-        EVT_MENU(self, wxID_CUT, self.OnCutDelete)
-        EVT_MENU(self, wxID_COPY, self.OnCopy)
-        EVT_MENU(self, wxID_PASTE, self.OnPaste)
-        EVT_MENU(self, self.ID_TOOL_PASTE, self.OnPaste)
-        EVT_MENU(self, self.ID_DELETE, self.OnCutDelete)
-        EVT_MENU(self, self.ID_LOCATE, self.OnLocate)
-        EVT_MENU(self, self.ID_TOOL_LOCATE, self.OnLocate)
+        wx.EVT_MENU(self, wx.ID_UNDO, self.OnUndo)
+        wx.EVT_MENU(self, wx.ID_REDO, self.OnRedo)
+        wx.EVT_MENU(self, wx.ID_CUT, self.OnCutDelete)
+        wx.EVT_MENU(self, wx.ID_COPY, self.OnCopy)
+        wx.EVT_MENU(self, wx.ID_PASTE, self.OnPaste)
+        wx.EVT_MENU(self, self.ID_TOOL_PASTE, self.OnPaste)
+        wx.EVT_MENU(self, self.ID_DELETE, self.OnCutDelete)
+        wx.EVT_MENU(self, self.ID_LOCATE, self.OnLocate)
+        wx.EVT_MENU(self, self.ID_TOOL_LOCATE, self.OnLocate)
         # View
-        EVT_MENU(self, self.ID_EMBED_PANEL, self.OnEmbedPanel)
-        EVT_MENU(self, self.ID_SHOW_TOOLS, self.OnShowTools)
-        EVT_MENU(self, self.ID_TEST, self.OnTest)
-        EVT_MENU(self, self.ID_REFRESH, self.OnRefresh)
-        EVT_MENU(self, self.ID_AUTO_REFRESH, self.OnAutoRefresh)
-        EVT_MENU(self, self.ID_TEST_HIDE, self.OnTestHide)
+        wx.EVT_MENU(self, self.ID_EMBED_PANEL, self.OnEmbedPanel)
+        wx.EVT_MENU(self, self.ID_SHOW_TOOLS, self.OnShowTools)
+        wx.EVT_MENU(self, self.ID_TEST, self.OnTest)
+        wx.EVT_MENU(self, self.ID_REFRESH, self.OnRefresh)
+        wx.EVT_MENU(self, self.ID_AUTO_REFRESH, self.OnAutoRefresh)
+        wx.EVT_MENU(self, self.ID_TEST_HIDE, self.OnTestHide)
         # Help
-        EVT_MENU(self, wxID_ABOUT, self.OnAbout)
-        EVT_MENU(self, self.ID_README, self.OnReadme)
+        wx.EVT_MENU(self, wx.ID_ABOUT, self.OnAbout)
+        wx.EVT_MENU(self, self.ID_README, self.OnReadme)
 
         # Update events
-        EVT_UPDATE_UI(self, wxID_SAVE, self.OnUpdateUI)
-        EVT_UPDATE_UI(self, wxID_CUT, self.OnUpdateUI)
-        EVT_UPDATE_UI(self, wxID_COPY, self.OnUpdateUI)
-        EVT_UPDATE_UI(self, wxID_PASTE, self.OnUpdateUI)
-        EVT_UPDATE_UI(self, self.ID_LOCATE, self.OnUpdateUI)
-        EVT_UPDATE_UI(self, self.ID_TOOL_LOCATE, self.OnUpdateUI)
-        EVT_UPDATE_UI(self, self.ID_TOOL_PASTE, self.OnUpdateUI)
-        EVT_UPDATE_UI(self, wxID_UNDO, self.OnUpdateUI)
-        EVT_UPDATE_UI(self, wxID_REDO, self.OnUpdateUI)
-        EVT_UPDATE_UI(self, self.ID_DELETE, self.OnUpdateUI)
-        EVT_UPDATE_UI(self, self.ID_TEST, self.OnUpdateUI)
-        EVT_UPDATE_UI(self, self.ID_REFRESH, self.OnUpdateUI)
+        wx.EVT_UPDATE_UI(self, wx.ID_SAVE, self.OnUpdateUI)
+        wx.EVT_UPDATE_UI(self, wx.ID_CUT, self.OnUpdateUI)
+        wx.EVT_UPDATE_UI(self, wx.ID_COPY, self.OnUpdateUI)
+        wx.EVT_UPDATE_UI(self, wx.ID_PASTE, self.OnUpdateUI)
+        wx.EVT_UPDATE_UI(self, self.ID_LOCATE, self.OnUpdateUI)
+        wx.EVT_UPDATE_UI(self, self.ID_TOOL_LOCATE, self.OnUpdateUI)
+        wx.EVT_UPDATE_UI(self, self.ID_TOOL_PASTE, self.OnUpdateUI)
+        wx.EVT_UPDATE_UI(self, wx.ID_UNDO, self.OnUpdateUI)
+        wx.EVT_UPDATE_UI(self, wx.ID_REDO, self.OnUpdateUI)
+        wx.EVT_UPDATE_UI(self, self.ID_DELETE, self.OnUpdateUI)
+        wx.EVT_UPDATE_UI(self, self.ID_TEST, self.OnUpdateUI)
+        wx.EVT_UPDATE_UI(self, self.ID_REFRESH, self.OnUpdateUI)
 
         # Build interface
-        sizer = wxBoxSizer(wxVERTICAL)
-        sizer.Add(wxStaticLine(self, -1), 0, wxEXPAND)
+        sizer = wx.BoxSizer(wx.VERTICAL)
+        sizer.Add(wx.StaticLine(self, -1), 0, wx.EXPAND)
         # Horizontal sizer for toolbar and splitter
-        self.toolsSizer = sizer1 = wxBoxSizer()
-        splitter = wxSplitterWindow(self, -1, style=wxSP_3DSASH)
+        self.toolsSizer = sizer1 = wx.BoxSizer()
+        splitter = wx.SplitterWindow(self, -1, style=wx.SP_3DSASH)
         self.splitter = splitter
         splitter.SetMinimumPaneSize(100)
         # Create tree
@@ -281,20 +281,20 @@ class Frame(wxFrame):
         # Vertical toolbar for GUI buttons
         g.tools = tools = Tools(self)
         tools.Show(conf.showTools)
-        if conf.showTools: sizer1.Add(tools, 0, wxEXPAND)
+        if conf.showTools: sizer1.Add(tools, 0, wx.EXPAND)
 
         tree.RegisterKeyEvents()
 
         # !!! frame styles are broken
         # Miniframe for not embedded mode
-        miniFrame = wxFrame(self, -1, 'Properties & Style',
+        miniFrame = wx.Frame(self, -1, 'Properties & Style',
                             (conf.panelX, conf.panelY),
                             (conf.panelWidth, conf.panelHeight))
         self.miniFrame = miniFrame
-        sizer2 = wxBoxSizer()
+        sizer2 = wx.BoxSizer()
         miniFrame.SetAutoLayout(True)
         miniFrame.SetSizer(sizer2)
-        EVT_CLOSE(self.miniFrame, self.OnCloseMiniFrame)
+        wx.EVT_CLOSE(self.miniFrame, self.OnCloseMiniFrame)
         # Create panel for parameters
         global panel
         if conf.embedPanel:
@@ -303,11 +303,11 @@ class Frame(wxFrame):
             splitter.SplitVertically(tree, panel, conf.sashPos)
         else:
             panel = Panel(miniFrame)
-            sizer2.Add(panel, 1, wxEXPAND)
+            sizer2.Add(panel, 1, wx.EXPAND)
             miniFrame.Show(True)
             splitter.Initialize(tree)
-        sizer1.Add(splitter, 1, wxEXPAND)
-        sizer.Add(sizer1, 1, wxEXPAND)
+        sizer1.Add(splitter, 1, wx.EXPAND)
+        sizer.Add(sizer1, 1, wx.EXPAND)
         self.SetAutoLayout(True)
         self.SetSizer(sizer)
 
@@ -315,23 +315,23 @@ class Frame(wxFrame):
         self.Clear()
 
         # Other events
-        EVT_IDLE(self, self.OnIdle)
-        EVT_CLOSE(self, self.OnCloseWindow)
-        EVT_KEY_DOWN(self, tools.OnKeyDown)
-        EVT_KEY_UP(self, tools.OnKeyUp)
-        EVT_ICONIZE(self, self.OnIconize)
+        wx.EVT_IDLE(self, self.OnIdle)
+        wx.EVT_CLOSE(self, self.OnCloseWindow)
+        wx.EVT_KEY_DOWN(self, tools.OnKeyDown)
+        wx.EVT_KEY_UP(self, tools.OnKeyUp)
+        wx.EVT_ICONIZE(self, self.OnIconize)
     
     def AppendRecent(self, menu):
         # add recently used files to the menu
         for id,name in conf.recentfiles.iteritems():
             menu.Append(id,name)
-            EVT_MENU(self,id,self.OnRecentFile)
+            wx.EVT_MENU(self,id,self.OnRecentFile)
         return 
         
     def OnRecentFile(self,evt):
         # open recently used file
         if not self.AskSave(): return
-        wxBeginBusyCursor()
+        wx.BeginBusyCursor()
         try:
             path=conf.recentfiles[evt.GetId()]
             if self.Open(path):
@@ -340,7 +340,7 @@ class Frame(wxFrame):
                 self.SetStatusText('Failed')
         except KeyError:
             self.SetStatusText('No such file')
-        wxEndBusyCursor()
+        wx.EndBusyCursor()
 
     def OnNew(self, evt):
         if not self.AskSave(): return
@@ -348,12 +348,12 @@ class Frame(wxFrame):
 
     def OnOpen(self, evt):
         if not self.AskSave(): return
-        dlg = wxFileDialog(self, 'Open', os.path.dirname(self.dataFile),
-                           '', '*.xrc', wxOPEN | wxCHANGE_DIR)
-        if dlg.ShowModal() == wxID_OK:
+        dlg = wx.FileDialog(self, 'Open', os.path.dirname(self.dataFile),
+                           '', '*.xrc', wx.OPEN | wx.CHANGE_DIR)
+        if dlg.ShowModal() == wx.ID_OK:
             path = dlg.GetPath()
             self.SetStatusText('Loading...')
-            wxBeginBusyCursor()
+            wx.BeginBusyCursor()
             try:
                 if self.Open(path):
                     self.SetStatusText('Data loaded')
@@ -361,17 +361,17 @@ class Frame(wxFrame):
                     self.SetStatusText('Failed')
                 self.SaveRecent(path)
             finally:
-                wxEndBusyCursor()
+                wx.EndBusyCursor()
         dlg.Destroy()
 
     def OnSaveOrSaveAs(self, evt):
-        if evt.GetId() == wxID_SAVEAS or not self.dataFile:
+        if evt.GetId() == wx.ID_SAVEAS or not self.dataFile:
             if self.dataFile: name = ''
             else: name = defaultName
             dirname = os.path.abspath(os.path.dirname(self.dataFile))
-            dlg = wxFileDialog(self, 'Save As', dirname, name, '*.xrc',
-                               wxSAVE | wxOVERWRITE_PROMPT | wxCHANGE_DIR)
-            if dlg.ShowModal() == wxID_OK:
+            dlg = wx.FileDialog(self, 'Save As', dirname, name, '*.xrc',
+                               wx.SAVE | wx.OVERWRITE_PROMPT | wx.CHANGE_DIR)
+            if dlg.ShowModal() == wx.ID_OK:
                 path = dlg.GetPath()
                 dlg.Destroy()
             else:
@@ -394,7 +394,7 @@ class Frame(wxFrame):
         else:
             path = self.dataFile
         self.SetStatusText('Saving...')
-        wxBeginBusyCursor()
+        wx.BeginBusyCursor()
         try:
             try:
                 tmpFile,tmpName = tempfile.mkstemp(prefix='xrced-')
@@ -413,14 +413,14 @@ class Frame(wxFrame):
             except IOError:
                 self.SetStatusText('Failed')
         finally:
-            wxEndBusyCursor()        
+            wx.EndBusyCursor()        
 
     def SaveRecent(self,path):
         # append to recently used files
         if path not in conf.recentfiles.values():
-            newid = wxNewId()
+            newid = wx.NewId()
             self.recentMenu.Append(newid, path)
-            EVT_MENU(self, newid, self.OnRecentFile)
+            wx.EVT_MENU(self, newid, self.OnRecentFile)
             conf.recentfiles[newid] = path
 
     def GeneratePython(self, dataFile, pypath, embed, genGettext):
@@ -430,8 +430,8 @@ class Frame(wxFrame):
             rescomp.MakePythonModule(dataFile, pypath, embed, genGettext)
         except:
             inf = sys.exc_info()
-            wxLogError(traceback.format_exception(inf[0], inf[1], None)[-1])
-            wxLogError('Error generating python code : %s' % pypath)
+            wx.LogError(traceback.format_exception(inf[0], inf[1], None)[-1])
+            wx.LogError('Error generating python code : %s' % pypath)
             raise
         
 
@@ -495,7 +495,7 @@ class Frame(wxFrame):
             parentLeaf = selected
         else:
             # No children or unexpanded item - appendChild stays True
-            nextItem = wxTreeItemId()   # no next item
+            nextItem = wx.TreeItemId()   # no next item
             parentLeaf = selected
         parent = tree.GetPyData(parentLeaf).treeObject()
 
@@ -551,7 +551,7 @@ class Frame(wxFrame):
         if error:
             if parent.__class__ == xxxMainNode: parentClass = 'root'
             else: parentClass = parent.className
-            wxLogError('Incompatible parent/child: parent is %s, child is %s!' %
+            wx.LogError('Incompatible parent/child: parent is %s, child is %s!' %
                        (parentClass, x.className))
             return
 
@@ -612,7 +612,7 @@ class Frame(wxFrame):
         selected = tree.selection
         if not selected: return         # key pressed event
         # Undo info
-        if evt.GetId() == wxID_CUT:
+        if evt.GetId() == wx.ID_CUT:
             self.lastOp = 'CUT'
             status = 'Removed to clipboard'
         else:
@@ -635,7 +635,7 @@ class Frame(wxFrame):
         parent = tree.GetPyData(tree.GetItemParent(selected)).treeObject()
         elem = tree.RemoveLeaf(selected)
         undoMan.RegisterUndo(UndoCutDelete(index, parent, elem))
-        if evt.GetId() == wxID_CUT:
+        if evt.GetId() == wx.ID_CUT:
             if wx.TheClipboard.Open():
                 data = wx.CustomDataObject('XRCED')
                 # (False, True)
@@ -659,8 +659,8 @@ class Frame(wxFrame):
         xxx = tree.GetPyData(selected).treeObject()
         elem = xxx.element
         subclass = xxx.subclass
-        dlg = wxTextEntryDialog(self, 'Subclass:', defaultValue=subclass)
-        if dlg.ShowModal() == wxID_OK:
+        dlg = wx.TextEntryDialog(self, 'Subclass:', defaultValue=subclass)
+        if dlg.ShowModal() == wx.ID_OK:
             subclass = dlg.GetValue()
             if subclass:
                 elem.setAttribute('subclass', subclass)
@@ -696,7 +696,7 @@ class Frame(wxFrame):
             sizer = self.miniFrame.GetSizer()
             panel.Reparent(self.miniFrame)
             panel.Show(True)
-            sizer.Add(panel, 1, wxEXPAND)
+            sizer.Add(panel, 1, wx.EXPAND)
             self.miniFrame.Show(True)
             self.miniFrame.SetDimensions(conf.panelX, conf.panelY,
                                          conf.panelWidth, conf.panelHeight)
@@ -708,7 +708,7 @@ class Frame(wxFrame):
         conf.showTools = evt.IsChecked()
         g.tools.Show(conf.showTools)
         if conf.showTools:
-            self.toolsSizer.Prepend(g.tools, 0, wxEXPAND)
+            self.toolsSizer.Prepend(g.tools, 0, wx.EXPAND)
         else:
             self.toolsSizer.Remove(g.tools)
         self.toolsSizer.Layout()
@@ -725,7 +725,7 @@ class Frame(wxFrame):
         # We simply perform depth-first traversal, sinse it's too much
         # hassle to deal with all sizer/window combinations
         w = tree.FindNodeObject(item)
-        if w == obj or isinstance(w, wxGBSizerItem) and w.GetWindow() == obj:
+        if w == obj or isinstance(w, wx.GBSizerItem) and w.GetWindow() == obj:
             return item
         if tree.ItemHasChildren(item):
             child = tree.GetFirstChild(item)[0]
@@ -738,7 +738,7 @@ class Frame(wxFrame):
     def OnTestWinLeftDown(self, evt):
         pos = evt.GetPosition()
         self.SetHandler(g.testWin)
-        g.testWin.Disconnect(wxID_ANY, wxID_ANY, wxEVT_LEFT_DOWN)
+        g.testWin.Disconnect(wx.ID_ANY, wx.ID_ANY, wx.wxEVT_LEFT_DOWN)
         item = self.FindObject(g.testWin.item, evt.GetEventObject())
         if item:
             tree.EnsureVisible(item)
@@ -752,10 +752,10 @@ class Frame(wxFrame):
     def SetHandler(self, w, h=None):
         if h:
             w.SetEventHandler(h)
-            w.SetCursor(wxCROSS_CURSOR)
+            w.SetCursor(wx.CROSS_CURSOR)
         else:
             w.SetEventHandler(w)
-            w.SetCursor(wxNullCursor)
+            w.SetCursor(wx.NullCursor)
         for ch in w.GetChildren():
             self.SetHandler(ch, h)
 
@@ -764,12 +764,12 @@ class Frame(wxFrame):
             if evt.GetId() == self.ID_LOCATE or \
                evt.GetId() == self.ID_TOOL_LOCATE and evt.IsChecked():
                 self.SetHandler(g.testWin, g.testWin)
-                g.testWin.Connect(wxID_ANY, wxID_ANY, wxEVT_LEFT_DOWN, self.OnTestWinLeftDown)
+                g.testWin.Connect(wx.ID_ANY, wx.ID_ANY, wx.wxEVT_LEFT_DOWN, self.OnTestWinLeftDown)
                 if evt.GetId() == self.ID_LOCATE:
                     self.tb.ToggleTool(self.ID_TOOL_LOCATE, True)
             elif evt.GetId() == self.ID_TOOL_LOCATE and not evt.IsChecked():
                 self.SetHandler(g.testWin, None)
-                g.testWin.Disconnect(wxID_ANY, wxID_ANY, wxEVT_LEFT_DOWN)
+                g.testWin.Disconnect(wx.ID_ANY, wx.ID_ANY, wx.wxEVT_LEFT_DOWN)
             self.SetStatusText('Click somewhere in your test window now')
 
     def OnRefresh(self, evt):
@@ -797,7 +797,7 @@ XRCed version %s
 (c) Roman Rolinsky <rollrom@users.sourceforge.net>
 Homepage: http://xrced.sourceforge.net\
 ''' % version
-        dlg = wxMessageDialog(self, str, 'About XRCed', wxOK | wxCENTRE)
+        dlg = wx.MessageDialog(self, str, 'About XRCed', wx.OK | wx.CENTRE)
         dlg.ShowModal()
         dlg.Destroy()
 
@@ -843,14 +843,14 @@ Homepage: http://xrced.sourceforge.net\
             nextItem = tree.GetFirstChild(selected)[0]
             parentLeaf = selected
         else:
-            nextItem = wxTreeItemId()
+            nextItem = wx.TreeItemId()
             parentLeaf = selected
         parent = tree.GetPyData(parentLeaf)
         if parent.hasChild: parent = parent.child
 
         # Create object_ref?
         if evt.GetId() == ID_NEW.REF:
-            ref = wxGetTextFromUser('Create reference to:', 'Create reference')
+            ref = wx.GetTextFromUser('Create reference to:', 'Create reference')
             if not ref: return
             xxx = MakeEmptyRefXXX(parent, ref)
         else:
@@ -1021,18 +1021,18 @@ Homepage: http://xrced.sourceforge.net\
             self.SetStatusText('')
 
     def OnUpdateUI(self, evt):
-        if evt.GetId() in [wxID_CUT, wxID_COPY, self.ID_DELETE]:
+        if evt.GetId() in [wx.ID_CUT, wx.ID_COPY, self.ID_DELETE]:
             evt.Enable(tree.selection is not None and tree.selection != tree.root)
-        elif evt.GetId() == wxID_SAVE:
+        elif evt.GetId() == wx.ID_SAVE:
             evt.Enable(self.modified)
-        elif evt.GetId() in [wxID_PASTE, self.ID_TOOL_PASTE]:
+        elif evt.GetId() in [wx.ID_PASTE, self.ID_TOOL_PASTE]:
             evt.Enable(tree.selection is not None)
         elif evt.GetId() == self.ID_TEST:
             evt.Enable(tree.selection is not None and tree.selection != tree.root)
         elif evt.GetId() in [self.ID_LOCATE, self.ID_TOOL_LOCATE]:
             evt.Enable(g.testWin is not None)
-        elif evt.GetId() == wxID_UNDO:  evt.Enable(undoMan.CanUndo())
-        elif evt.GetId() == wxID_REDO:  evt.Enable(undoMan.CanRedo())
+        elif evt.GetId() == wx.ID_UNDO:  evt.Enable(undoMan.CanUndo())
+        elif evt.GetId() == wx.ID_REDO:  evt.Enable(undoMan.CanRedo())
 
     def OnIdle(self, evt):
         if self.inIdle: return          # Recursive call protection
@@ -1128,7 +1128,7 @@ Homepage: http://xrced.sourceforge.net\
 
     def Open(self, path):
         if not os.path.exists(path):
-            wxLogError('File does not exists: %s' % path)
+            wx.LogError('File does not exists: %s' % path)
             return False
         # Try to read the file
         try:
@@ -1152,8 +1152,8 @@ Homepage: http://xrced.sourceforge.net\
         except:
             # Nice exception printing
             inf = sys.exc_info()
-            wxLogError(traceback.format_exception(inf[0], inf[1], None)[-1])
-            wxLogError('Error reading file: %s' % path)
+            wx.LogError(traceback.format_exception(inf[0], inf[1], None)[-1])
+            wx.LogError('Error reading file: %s' % path)
             if debug: raise
             return False
         return True
@@ -1180,7 +1180,7 @@ Homepage: http://xrced.sourceforge.net\
             import codecs
             # Apply changes
             if tree.selection and panel.IsModified():
-                self.OnRefresh(wxCommandEvent())
+                self.OnRefresh(wx.CommandEvent())
             if g.currentEncoding:
                 f = codecs.open(path, 'wt', g.currentEncoding)
             else:
@@ -1204,23 +1204,23 @@ Homepage: http://xrced.sourceforge.net\
             conf.localconf.Flush()
         except:
             inf = sys.exc_info()
-            wxLogError(traceback.format_exception(inf[0], inf[1], None)[-1])
-            wxLogError('Error writing file: %s' % path)
+            wx.LogError(traceback.format_exception(inf[0], inf[1], None)[-1])
+            wx.LogError('Error writing file: %s' % path)
             raise
             
     def AskSave(self):
         if not (self.modified or panel.IsModified()): return True
-        flags = wxICON_EXCLAMATION | wxYES_NO | wxCANCEL | wxCENTRE
-        dlg = wxMessageDialog( self, 'File is modified. Save before exit?',
+        flags = wx.ICON_EXCLAMATION | wx.YES_NO | wx.CANCEL | wx.CENTRE
+        dlg = wx.MessageDialog( self, 'File is modified. Save before exit?',
                                'Save before too late?', flags )
         say = dlg.ShowModal()
         dlg.Destroy()
-        wxYield()
-        if say == wxID_YES:
-            self.OnSaveOrSaveAs(wxCommandEvent(wxID_SAVE))
+        wx.Yield()
+        if say == wx.ID_YES:
+            self.OnSaveOrSaveAs(wx.CommandEvent(wx.ID_SAVE))
             # If save was successful, modified flag is unset
             if not self.modified: return True
-        elif say == wxID_NO:
+        elif say == wx.ID_NO:
             self.SetModified(False)
             panel.SetModified(False)
             return True
@@ -1241,14 +1241,14 @@ class PythonOptions(wx.Dialog):
         self.cfg = cfg
         self.dataFile = dataFile
 
-        self.AutoGenerateCB = XRCCTRL(self, "AutoGenerateCB")
-        self.EmbedCB = XRCCTRL(self, "EmbedCB")
-        self.GettextCB = XRCCTRL(self, "GettextCB")
-        self.MakeXRSFileCB = XRCCTRL(self, "MakeXRSFileCB")
-        self.FileNameTC = XRCCTRL(self, "FileNameTC")
-        self.BrowseBtn = XRCCTRL(self, "BrowseBtn")
-        self.GenerateBtn = XRCCTRL(self, "GenerateBtn")
-        self.SaveOptsBtn = XRCCTRL(self, "SaveOptsBtn")
+        self.AutoGenerateCB = xrc.XRCCTRL(self, "AutoGenerateCB")
+        self.EmbedCB = xrc.XRCCTRL(self, "EmbedCB")
+        self.GettextCB = xrc.XRCCTRL(self, "GettextCB")
+        self.MakeXRSFileCB = xrc.XRCCTRL(self, "MakeXRSFileCB")
+        self.FileNameTC = xrc.XRCCTRL(self, "FileNameTC")
+        self.BrowseBtn = xrc.XRCCTRL(self, "BrowseBtn")
+        self.GenerateBtn = xrc.XRCCTRL(self, "GenerateBtn")
+        self.SaveOptsBtn = xrc.XRCCTRL(self, "SaveOptsBtn")
 
         self.Bind(wx.EVT_BUTTON, self.OnBrowse, self.BrowseBtn)
         self.Bind(wx.EVT_BUTTON, self.OnGenerate, self.GenerateBtn)
@@ -1270,9 +1270,9 @@ class PythonOptions(wx.Dialog):
         path = self.FileNameTC.GetValue()
         dirname = os.path.abspath(os.path.dirname(path))
         name = os.path.split(path)[1]
-        dlg = wxFileDialog(self, 'Save As', dirname, name, '*.py',
-                               wxSAVE | wxOVERWRITE_PROMPT)
-        if dlg.ShowModal() == wxID_OK:
+        dlg = wx.FileDialog(self, 'Save As', dirname, name, '*.py',
+                               wx.SAVE | wx.OVERWRITE_PROMPT)
+        if dlg.ShowModal() == wx.ID_OK:
             path = dlg.GetPath()
             self.FileNameTC.SetValue(path)
         dlg.Destroy()
@@ -1301,13 +1301,13 @@ class PythonOptions(wx.Dialog):
 def usage():
     print >> sys.stderr, 'usage: xrced [-dhiv] [file]'
 
-class App(wxApp):
+class App(wx.App):
     def OnInit(self):
         # Check version
-        if wxVERSION[:3] < MinWxVersion:
-            wxLogWarning('''\
-This version of XRCed may not work correctly on your version of wxWindows. \
-Please upgrade wxWindows to %d.%d.%d or higher.''' % MinWxVersion)
+        if wx.VERSION[:3] < MinWxVersion:
+            wx.LogWarning('''\
+This version of XRCed may not work correctly on your version of wxWidgets. \
+Please upgrade wxWidgets to %d.%d.%d or higher.''' % MinWxVersion)
         global debug
         # Process comand-line
         opts = args = None
@@ -1324,7 +1324,7 @@ Please upgrade wxWindows to %d.%d.%d or higher.''' % MinWxVersion)
                     sys.exit(0)
             
         except getopt.GetoptError:
-            if wxPlatform != '__WXMAC__': # macs have some extra parameters
+            if wx.Platform != '__WXMAC__': # macs have some extra parameters
                 print >> sys.stderr, 'Unknown option'
                 usage()
                 sys.exit(1)
@@ -1332,7 +1332,7 @@ Please upgrade wxWindows to %d.%d.%d or higher.''' % MinWxVersion)
         self.SetAppName('xrced')
         # Settings
         global conf
-        conf = g.conf = wxConfig(style = wxCONFIG_USE_LOCAL_FILE)
+        conf = g.conf = wx.Config(style = wx.CONFIG_USE_LOCAL_FILE)
         conf.localconf = None
         conf.autoRefresh = conf.ReadInt('autorefresh', True)
         pos = conf.ReadInt('x', -1), conf.ReadInt('y', -1)
@@ -1345,7 +1345,7 @@ Please upgrade wxWindows to %d.%d.%d or higher.''' % MinWxVersion)
         conf.recentfiles={}
         if recentfiles:
             for fil in recentfiles.split('|'):
-                conf.recentfiles[wxNewId()]=fil
+                conf.recentfiles[wx.NewId()]=fil
         if not conf.embedPanel:
             conf.panelX = conf.ReadInt('panelX', -1)
             conf.panelY = conf.ReadInt('panelY', -1)
@@ -1355,7 +1355,7 @@ Please upgrade wxWindows to %d.%d.%d or higher.''' % MinWxVersion)
         conf.panelHeight = conf.ReadInt('panelHeight', 200)
         conf.panic = not conf.HasEntry('nopanic')
         # Add handlers
-        wxFileSystem_AddHandler(wxMemoryFSHandler())
+        wx.FileSystem.AddHandler(wx.MemoryFSHandler())
         # Create main frame
         frame = Frame(pos, size)
         frame.Show(True)
@@ -1390,7 +1390,7 @@ Please upgrade wxWindows to %d.%d.%d or higher.''' % MinWxVersion)
 
 def main():
     app = App(0, useBestVisual=False)
-    #app.SetAssertMode(wxPYAPP_ASSERT_LOG)
+    #app.SetAssertMode(wx.PYAPP_ASSERT_LOG)
     app.MainLoop()
     app.OnExit()
     global conf
index fa6ea642e3dd70240f47b76920bbd497f117598c..e77d8fd6e8c8e1b3e5d3748cb96e208659b8ab59 100644 (file)
@@ -40,7 +40,7 @@ class xxxParam(xxxNode):
         # Use convertion from unicode to current encoding
         self.textNode = text
     # Value returns string
-    if wxUSE_UNICODE:   # no conversion is needed
+    if wx.USE_UNICODE:   # no conversion is needed
         def value(self):
             return self.textNode.data
         def update(self, value):
@@ -56,7 +56,7 @@ class xxxParam(xxxNode):
                 self.textNode.data = unicode(value, g.currentEncoding)
             except UnicodeDecodeError:
                 self.textNode.data = unicode(value)
-                #wxLogMessage("Unicode error: set encoding in file\nglobals.py to something appropriate")
+                #wx.LogMessage("Unicode error: set encoding in file\nglobals.py to something appropriate")
 
 # Integer parameter
 class xxxParamInt(xxxParam):
@@ -285,7 +285,7 @@ class xxxObject:
                     else:
                         self.element.appendChild(elem)
                 else:
-                    wxLogWarning('Required parameter %s of %s missing' %
+                    wx.LogWarning('Required parameter %s of %s missing' %
                                  (param, self.className))
     # Returns real tree object
     def treeObject(self):
@@ -338,7 +338,7 @@ def DoFindResource(parent, name, classname, recursive):
 def FindResource(name, classname='', recursive=True):
     found = DoFindResource(g.tree.mainNode, name, classname, recursive)
     if found:  return found
-    wxLogError('XRC resource "%s" not found!' % name)
+    wx.LogError('XRC resource "%s" not found!' % name)
                 
 
 ################################################################################
@@ -649,6 +649,8 @@ class xxxButton(xxxObject):
 class xxxBitmapButton(xxxObject):
     allParams = ['bitmap', 'selected', 'focus', 'disabled', 'default',
                  'pos', 'size', 'style']
+    paramDict = {'selected': ParamBitmap, 'focus': ParamBitmap, 'disabled': ParamBitmap,
+                 'default': ParamBool}
     required = ['bitmap']
     winStyles = ['wxBU_AUTODRAW', 'wxBU_LEFT', 'wxBU_RIGHT',
                  'wxBU_TOP', 'wxBU_BOTTOM', 'wxBU_EXACTFIT']
@@ -978,16 +980,16 @@ xxxDict = {
     }
 
 # Create IDs for all parameters of all classes
-paramIDs = {'fg': wxNewId(), 'bg': wxNewId(), 'exstyle': wxNewId(), 'font': wxNewId(),
-            'enabled': wxNewId(), 'focused': wxNewId(), 'hidden': wxNewId(),
-            'tooltip': wxNewId(), 'encoding': wxNewId(),
-            'cellpos': wxNewId(), 'cellspan': wxNewId()
+paramIDs = {'fg': wx.NewId(), 'bg': wx.NewId(), 'exstyle': wx.NewId(), 'font': wx.NewId(),
+            'enabled': wx.NewId(), 'focused': wx.NewId(), 'hidden': wx.NewId(),
+            'tooltip': wx.NewId(), 'encoding': wx.NewId(),
+            'cellpos': wx.NewId(), 'cellspan': wx.NewId()
             }
 for cl in xxxDict.values():
     if cl.allParams:
         for param in cl.allParams + cl.paramDict.keys():
             if not paramIDs.has_key(param):
-                paramIDs[param] = wxNewId()
+                paramIDs[param] = wx.NewId()
 
 ################################################################################
 # Helper functions