more backports

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_8_BRANCH@45872 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Robin Dunn
2007-05-08 02:34:23 +00:00
parent 9c57223c80
commit 03c88f6092
6 changed files with 89 additions and 57 deletions

View File

@@ -92,14 +92,29 @@ class Locator(wx.EvtHandler):
def ProcessEvent(self, evt):
print evt
class TaskBarIcon(wx.TaskBarIcon):
def __init__(self, frame):
wx.TaskBarIcon.__init__(self)
self.frame = frame
# Set the image
self.SetIcon(images.getIconIcon(), "XRCed")
class Frame(wx.Frame):
def __init__(self, pos, size):
wx.Frame.__init__(self, None, -1, '', pos, size)
pre = wx.PreFrame()
# pre.SetExtraStyle(wx.FRAME_EX_METAL)
pre.Create(None, -1, '', pos, size)
self.PostCreate(pre)
#wx.Frame.__init__(self, None, -1, '', pos, size)
global frame
frame = g.frame = self
bar = self.CreateStatusBar(2)
bar.SetStatusWidths([-1, 40])
self.SetIcon(images.getIconIcon())
try:
self.tbicon = TaskBarIcon(self)
except:
self.tbicon = None
# Idle flag
self.inIdle = False
@@ -156,7 +171,6 @@ class Frame(wx.Frame):
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 = wx.Menu()
self.ID_EMBED_PANEL = wx.NewId()
menu.Append(self.ID_EMBED_PANEL, '&Embed Panel',
@@ -204,31 +218,35 @@ class Frame(wx.Frame):
# Create toolbar
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)
save_bmp = wx.ArtProvider.GetBitmap(wx.ART_FILE_SAVE, wx.ART_TOOLBAR)
undo_bmp = wx.ArtProvider.GetBitmap(wx.ART_UNDO, wx.ART_TOOLBAR)
redo_bmp = wx.ArtProvider.GetBitmap(wx.ART_REDO, wx.ART_TOOLBAR)
cut_bmp = wx.ArtProvider.GetBitmap(wx.ART_CUT, wx.ART_TOOLBAR)
copy_bmp = wx.ArtProvider.GetBitmap(wx.ART_COPY, wx.ART_TOOLBAR)
paste_bmp= wx.ArtProvider.GetBitmap(wx.ART_PASTE, wx.ART_TOOLBAR)
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(wx.StaticLine(tb, -1, size=(-1,23), style=wx.LI_VERTICAL))
# Hide some icons on Mac to reduce the toolbar size,
# and comply more with the Apple LnF, besides
# wxMac icons are ugly
if wx.Platform != '__WXMAC__':
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)
save_bmp = wx.ArtProvider.GetBitmap(wx.ART_FILE_SAVE, wx.ART_TOOLBAR)
undo_bmp = wx.ArtProvider.GetBitmap(wx.ART_UNDO, wx.ART_TOOLBAR)
redo_bmp = wx.ArtProvider.GetBitmap(wx.ART_REDO, wx.ART_TOOLBAR)
cut_bmp = wx.ArtProvider.GetBitmap(wx.ART_CUT, wx.ART_TOOLBAR)
copy_bmp = wx.ArtProvider.GetBitmap(wx.ART_COPY, wx.ART_TOOLBAR)
paste_bmp= wx.ArtProvider.GetBitmap(wx.ART_PASTE, wx.ART_TOOLBAR)
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(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(wx.StaticLine(tb, -1, size=(-1,23), style=wx.LI_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')
@@ -328,9 +346,7 @@ class Frame(wx.Frame):
(conf.panelWidth, conf.panelHeight))
self.miniFrame = miniFrame
sizer2 = wx.BoxSizer()
miniFrame.SetAutoLayout(True)
miniFrame.SetSizer(sizer2)
wx.EVT_CLOSE(self.miniFrame, self.OnCloseMiniFrame)
# Create panel for parameters
global panel
if conf.embedPanel:
@@ -342,7 +358,10 @@ class Frame(wx.Frame):
sizer2.Add(panel, 1, wx.EXPAND)
miniFrame.Show(True)
splitter.Initialize(tree)
sizer1.Add(splitter, 1, wx.EXPAND)
if wx.Platform == '__WXMAC__':
sizer1.Add(splitter, 1, wx.EXPAND|wx.RIGHT, 5)
else:
sizer1.Add(splitter, 1, wx.EXPAND)
sizer.Add(sizer1, 1, wx.EXPAND)
self.SetAutoLayout(True)
self.SetSizer(sizer)
@@ -762,10 +781,9 @@ class Frame(wx.Frame):
# Check compatibility
if not self.ItemsAreCompatible(tree.GetPyData(pparent).treeObject(), tree.GetPyData(selected).treeObject()): return
# Remove highlight, update testWin
if g.testWin and g.testWin.highLight:
g.testWin.highLight.Remove()
tree.needUpdate = True
tree.needUpdate = True
# Undo info
self.lastOp = 'MOVELEFT'
@@ -806,7 +824,6 @@ class Frame(wx.Frame):
selected = tree.InsertNode(pparent, tree.GetPyData(pparent).treeObject(), elem, nextItem)
newIndex = tree.ItemIndex(selected)
tree.oldItem = None
tree.SelectItem(selected)
undoMan.RegisterUndo(UndoMove(oldParent, oldIndex, pparent, newIndex))
@@ -832,7 +849,7 @@ class Frame(wx.Frame):
# Remove highlight, update testWin
if g.testWin and g.testWin.highLight:
g.testWin.highLight.Remove()
tree.needUpdate = True
tree.needUpdate = True
# Undo info
self.lastOp = 'MOVERIGHT'
@@ -870,7 +887,6 @@ class Frame(wx.Frame):
selected = tree.InsertNode(newParent, tree.GetPyData(newParent).treeObject(), elem, wx.TreeItemId())
newIndex = tree.ItemIndex(selected)
tree.oldItem = None
tree.SelectItem(selected)
undoMan.RegisterUndo(UndoMove(oldParent, oldIndex, newParent, newIndex))
@@ -1323,8 +1339,11 @@ Homepage: http://xrced.sourceforge.net\
menuId = evt.GetMenuId()
if menuId != -1:
menu = evt.GetEventObject()
help = menu.GetHelpString(menuId)
self.SetStatusText(help)
try:
help = menu.GetHelpString(menuId)
self.SetStatusText(help)
except:
self.SetStatusText('')
else:
self.SetStatusText('')
@@ -1345,6 +1364,7 @@ Homepage: http://xrced.sourceforge.net\
def OnIdle(self, evt):
if self.inIdle: return # Recursive call protection
self.inIdle = True
#print 'onidle',tree.needUpdate,tree.pendingHighLight
try:
if tree.needUpdate:
if conf.autoRefresh:
@@ -1368,10 +1388,6 @@ Homepage: http://xrced.sourceforge.net\
finally:
self.inIdle = False
# We don't let close panel window
def OnCloseMiniFrame(self, evt):
return
def OnIconize(self, evt):
if evt.Iconized():
conf.x, conf.y = self.GetPosition()
@@ -1381,10 +1397,10 @@ Homepage: http://xrced.sourceforge.net\
else:
conf.panelX, conf.panelY = self.miniFrame.GetPosition()
conf.panelWidth, conf.panelHeight = self.miniFrame.GetSize()
self.miniFrame.Iconize()
self.miniFrame.Show(False)
else:
if not conf.embedPanel:
self.miniFrame.Iconize(False)
self.miniFrame.Show(True)
evt.Skip()
def OnCloseWindow(self, evt):
@@ -1397,7 +1413,10 @@ Homepage: http://xrced.sourceforge.net\
panel.RemovePage(1)
if not self.IsIconized():
conf.x, conf.y = self.GetPosition()
conf.width, conf.height = self.GetClientSize()
if wx.Platform == '__WXMAC__':
conf.width, conf.height = self.GetClientSize()
else:
conf.width, conf.height = self.GetSize()
if conf.embedPanel:
conf.sashPos = self.splitter.GetSashPosition()
else:
@@ -1763,7 +1782,9 @@ Please upgrade wxWidgets to %d.%d.%d or higher.''' % MinWxVersion)
wx.FileSystem.AddHandler(wx.MemoryFSHandler())
# Create main frame
frame = Frame(pos, size)
frame.SetClientSize(size)
# Mac does not set the correct size
if wx.Platform == '__WXMAC__':
frame.SetClientSize(size)
frame.Show(True)
# Load plugins