This commit was manufactured by cvs2svn to create tag 'wxPy_2_6_0_0'.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/tags/wxPy_2_6_0_0@33890 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Bryan Petty
2005-04-26 21:17:20 +00:00
parent faaa9c8135
commit 73340cf75a
67 changed files with 1187 additions and 8504 deletions

View File

@@ -54,7 +54,8 @@ Consult README file for the details.</HTML>
"""
defaultIDs = {xxxPanel:'PANEL', xxxDialog:'DIALOG', xxxFrame:'FRAME',
xxxMenuBar:'MENUBAR', xxxMenu:'MENU', xxxToolBar:'TOOLBAR'}
xxxMenuBar:'MENUBAR', xxxMenu:'MENU', xxxToolBar:'TOOLBAR',
xxxWizard:'WIZARD'}
################################################################################
@@ -97,6 +98,14 @@ class Frame(wxFrame):
# Idle flag
self.inIdle = False
# Load our own resources
self.res = wxXmlResource('')
# !!! Blocking of assert failure occuring in older unicode builds
try:
self.res.Load(os.path.join(basePath, 'xrced.xrc'))
except wx._core.PyAssertionError:
print 'PyAssertionError was ignored'
# Make menus
menuBar = wxMenuBar()
@@ -124,8 +133,9 @@ class Frame(wxFrame):
menu.Append(wxID_PASTE, '&Paste\tCtrl-V', 'Paste from the clipboard')
self.ID_DELETE = wxNewId()
menu.Append(self.ID_DELETE, '&Delete\tCtrl-D', 'Delete object')
# menu.AppendSeparator()
menu.AppendSeparator()
self.ID_LOCATE = wxNewId()
self.ID_LOCATE_TOOL = wxNewId()
menu.Append(self.ID_LOCATE, '&Locate\tCtrl-L', 'Locate control in test window and select it')
menuBar.Append(menu, '&Edit')
@@ -146,6 +156,8 @@ class Frame(wxFrame):
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()
menu.Append(self.ID_TEST_HIDE, '&Hide\tCtrl-H', 'Close test window')
menuBar.Append(menu, '&View')
menu = wxMenu()
@@ -175,6 +187,10 @@ class Frame(wxFrame):
tb.AddSimpleTool(wxID_COPY, images.getCopyBitmap(), 'Copy', 'Copy')
tb.AddSimpleTool(wxID_PASTE, images.getPasteBitmap(), 'Paste', 'Paste')
tb.AddControl(wxStaticLine(tb, -1, size=(-1,23), style=wxLI_VERTICAL))
tb.AddCheckTool(self.ID_LOCATE_TOOL,
images.getLocateBitmap(), images.getLocateArmedBitmap(),
'Locate', 'Locate control in test window and select it')
tb.AddControl(wxStaticLine(tb, -1, size=(-1,23), style=wxLI_VERTICAL))
tb.AddSimpleTool(self.ID_TEST, images.getTestBitmap(), 'Test', 'Test window')
tb.AddSimpleTool(self.ID_REFRESH, images.getRefreshBitmap(),
'Refresh', 'Refresh view')
@@ -184,6 +200,7 @@ class Frame(wxFrame):
tb.AddSeparator() # otherwise auto-refresh sticks in status line
tb.ToggleTool(self.ID_AUTO_REFRESH, conf.autoRefresh)
tb.Realize()
self.tb = tb
self.minWidth = tb.GetSize()[0] # minimal width is the size of toolbar
@@ -201,12 +218,14 @@ class Frame(wxFrame):
EVT_MENU(self, wxID_PASTE, self.OnPaste)
EVT_MENU(self, self.ID_DELETE, self.OnCutDelete)
EVT_MENU(self, self.ID_LOCATE, self.OnLocate)
EVT_MENU(self, self.ID_LOCATE_TOOL, 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)
# Help
EVT_MENU(self, wxID_ABOUT, self.OnAbout)
EVT_MENU(self, self.ID_README, self.OnReadme)
@@ -215,6 +234,8 @@ class Frame(wxFrame):
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_LOCATE_TOOL, 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)
@@ -407,7 +428,7 @@ class Frame(wxFrame):
error = False
# Top-level
x = xxx.treeObject()
if x.__class__ in [xxxDialog, xxxFrame, xxxMenuBar]:
if x.__class__ in [xxxDialog, xxxFrame, xxxMenuBar, xxxWizard]:
# Top-level classes
if parent.__class__ != xxxMainNode: error = True
elif x.__class__ == xxxToolBar:
@@ -581,6 +602,9 @@ class Frame(wxFrame):
if not tree.selection: return # key pressed event
tree.ShowTestWindow(tree.selection)
def OnTestHide(self, evt):
tree.CloseTestWindow()
# Find object by relative position
def FindObject(self, item, obj):
# We simply perform depth-first traversal, sinse it's too much
@@ -603,6 +627,11 @@ class Frame(wxFrame):
item = self.FindObject(g.testWin.item, evt.GetEventObject())
if item:
tree.SelectItem(item)
self.tb.ToggleTool(self.ID_LOCATE_TOOL, False)
if item:
self.SetStatusText('Selected %s' % tree.GetItemText(item))
else:
self.SetStatusText('Locate failed!')
def SetHandler(self, w, h=None):
if h:
@@ -616,8 +645,16 @@ class Frame(wxFrame):
def OnLocate(self, evt):
if g.testWin:
self.SetHandler(g.testWin, g.testWin)
g.testWin.Connect(wxID_ANY, wxID_ANY, wxEVT_LEFT_DOWN, self.OnTestWinLeftDown)
if evt.GetId() == self.ID_LOCATE or \
evt.GetId() == self.ID_LOCATE_TOOL and evt.IsChecked():
self.SetHandler(g.testWin, g.testWin)
g.testWin.Connect(wxID_ANY, wxID_ANY, wxEVT_LEFT_DOWN, self.OnTestWinLeftDown)
if evt.GetId() == self.ID_LOCATE:
self.tb.ToggleTool(self.ID_LOCATE_TOOL, True)
elif evt.GetId() == self.ID_LOCATE_TOOL and not evt.IsChecked():
self.SetHandler(g.testWin, None)
g.testWin.Disconnect(wxID_ANY, wxID_ANY, wxEVT_LEFT_DOWN)
self.SetStatusText('Click somewhere in your test window now')
def OnRefresh(self, evt):
# If modified, apply first
@@ -744,6 +781,7 @@ Homepage: http://xrced.sourceforge.net\
nodes = elem.childNodes[:]
tags = []
for node in nodes:
if node.nodeType != minidom.Node.ELEMENT_NODE: continue
remove = False
tag = node.tagName
if tag == 'object':
@@ -766,6 +804,8 @@ Homepage: http://xrced.sourceforge.net\
dummy.unlink()
# Change class name
elem.setAttribute('class', className)
if elem.hasAttribute('subclass'):
elem.removeAttribute('subclass') # clear subclassing
# Re-create xxx element
xxx = MakeXXXFromDOM(parentXXX, elem)
# Update parent in child objects
@@ -835,6 +875,8 @@ Homepage: http://xrced.sourceforge.net\
evt.Enable((self.clipboard and tree.selection) != 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_LOCATE_TOOL]:
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())
@@ -894,7 +936,8 @@ Homepage: http://xrced.sourceforge.net\
# Numbers for new controls
self.maxIDs = {}
self.maxIDs[xxxPanel] = self.maxIDs[xxxDialog] = self.maxIDs[xxxFrame] = \
self.maxIDs[xxxMenuBar] = self.maxIDs[xxxMenu] = self.maxIDs[xxxToolBar] = 0
self.maxIDs[xxxMenuBar] = self.maxIDs[xxxMenu] = self.maxIDs[xxxToolBar] = \
self.maxIDs[xxxWizard] = 0
def Open(self, path):
if not os.path.exists(path):
@@ -1040,13 +1083,6 @@ class App(wxApp):
# Create main frame
frame = Frame(pos, size)
frame.Show(True)
# Load resources from XRC file (!!! should be transformed to .py later?)
frame.res = wxXmlResource('')
# !!! Temporary blocking of assert failure occuring in unicode build
try:
frame.res.Load(os.path.join(basePath, 'xrced.xrc'))
except wx._core.PyAssertionError:
pass
# Load file after showing
if args: