From f65bb0f8ab88e80a367b6fa361e92545c04f6914 Mon Sep 17 00:00:00 2001 From: Robin Dunn Date: Fri, 24 Mar 2006 01:49:58 +0000 Subject: [PATCH] * wx.Panel doesn't have a SetTitle anymore. What was this used for anyway? * Allow wxMenuBar to be created inside a wxFrame * More robust clipboard handling git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@38324 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- wxPython/wx/tools/XRCed/params.py | 3 +- wxPython/wx/tools/XRCed/tools.py | 2 ++ wxPython/wx/tools/XRCed/tree.py | 3 ++ wxPython/wx/tools/XRCed/xrced.py | 47 +++++++++++++++++++------------ 4 files changed, 35 insertions(+), 20 deletions(-) diff --git a/wxPython/wx/tools/XRCed/params.py b/wxPython/wx/tools/XRCed/params.py index 07094c545a..40372055e4 100644 --- a/wxPython/wx/tools/XRCed/params.py +++ b/wxPython/wx/tools/XRCed/params.py @@ -187,7 +187,6 @@ class ParamExStyle(ParamBinaryOr): else: self.values = [] ParamBinaryOr.__init__(self, parent, name) - self.SetTitle('Extended window styles') class ParamColour(PPanel): def __init__(self, parent, name): @@ -234,7 +233,7 @@ class ParamColour(PPanel): ################################################################################ -# Mapping from wx constants ro XML strings +# Mapping from wx constants to XML strings fontFamiliesWx2Xml = {wxDEFAULT: 'default', wxDECORATIVE: 'decorative', wxROMAN: 'roman', wxSCRIPT: 'script', wxSWISS: 'swiss', wxMODERN: 'modern'} diff --git a/wxPython/wx/tools/XRCed/tools.py b/wxPython/wx/tools/XRCed/tools.py index 00f7103b1e..f13a9cbb57 100644 --- a/wxPython/wx/tools/XRCed/tools.py +++ b/wxPython/wx/tools/XRCed/tools.py @@ -285,5 +285,7 @@ class Tools(wxPanel): self.EnableGroup(GROUP_SIZERS) if not (xxx.isSizer or xxx.parent and xxx.parent.isSizer): self.EnableGroupItem(GROUP_SIZERS, ID_NEW.SPACER, False) + if xxx.__class__ == xxxFrame: + self.EnableGroupItem(GROUP_MENUS, ID_NEW.MENU_BAR) # Save state self.state = state diff --git a/wxPython/wx/tools/XRCed/tree.py b/wxPython/wx/tools/XRCed/tree.py index 0e78ba4844..de22265b1a 100644 --- a/wxPython/wx/tools/XRCed/tree.py +++ b/wxPython/wx/tools/XRCed/tree.py @@ -298,6 +298,7 @@ class PullDownMenu: (ID_NEW.SPLITTER_WINDOW, 'SplitterWindow', 'Create splitter window'), (ID_NEW.TOOL_BAR, 'ToolBar', 'Create toolbar'), (ID_NEW.STATUS_BAR, 'StatusBar', 'Create status bar'), + (ID_NEW.MENU_BAR, 'MenuBar', 'Create menubar'), # (ID_NEW.WIZARD_PAGE, 'Wizard Page', 'Create wizard page'), (ID_NEW.WIZARD_PAGE_SIMPLE, 'WizardPageSimple', 'Create simple wizard page'), ], @@ -1070,6 +1071,8 @@ class XML_Tree(wxTreeCtrl): m.Enable(m.FindItem('sizer'), False) elif not (xxx.isSizer or xxx.parent and xxx.parent.isSizer): m.Enable(ID_NEW.SPACER, False) + if xxx.__class__ is not xxxFrame: + m.Enable(ID_NEW.MENU_BAR, False) m.AppendSeparator() m.Append(ID_NEW.REF, 'reference...', 'Create object_ref node') # Select correct label for create menu diff --git a/wxPython/wx/tools/XRCed/xrced.py b/wxPython/wx/tools/XRCed/xrced.py index ac593cb6e9..853c0abe96 100644 --- a/wxPython/wx/tools/XRCed/xrced.py +++ b/wxPython/wx/tools/XRCed/xrced.py @@ -103,6 +103,7 @@ class Frame(wxFrame): self.res = wxXmlResource('') # !!! Blocking of assert failure occurring in older unicode builds try: + quietlog = wx.LogNull() self.res.Load(os.path.join(basePath, 'xrced.xrc')) except wx._core.PyAssertionError: print 'PyAssertionError was ignored' @@ -413,12 +414,14 @@ class Frame(wxFrame): selected = tree.selection if not selected: return # key pressed event xxx = tree.GetPyData(selected) - wx.TheClipboard.Open() - data = wx.CustomDataObject('XRCED') - data.SetData(cPickle.dumps(xxx.element.toxml())) - wx.TheClipboard.SetData(data) - wx.TheClipboard.Close() - self.SetStatusText('Copied') + if wx.TheClipboard.Open(): + data = wx.CustomDataObject('XRCED') + data.SetData(cPickle.dumps(xxx.element.toxml())) + wx.TheClipboard.SetData(data) + wx.TheClipboard.Close() + self.SetStatusText('Copied') + else: + wx.MessageBox("Unable to open the clipboard", "Error") def OnPaste(self, evt): selected = tree.selection @@ -447,14 +450,19 @@ class Frame(wxFrame): parent = tree.GetPyData(parentLeaf).treeObject() # Create a copy of clipboard pickled element - wx.TheClipboard.Open() - data = wx.CustomDataObject('XRCED') - if not wx.TheClipboard.IsSupported(data.GetFormat()): + success = False + if wx.TheClipboard.Open(): + data = wx.CustomDataObject('XRCED') + if wx.TheClipboard.IsSupported(data.GetFormat()): + success = wx.TheClipboard.GetData(data) wx.TheClipboard.Close() - wx.LogError('unsupported clipboard format') + + if not success: + wx.MessageBox( + "There is no data in the clipboard in the required format", + "Error") return - wx.TheClipboard.GetData(data) - wx.TheClipboard.Close() + xml = cPickle.loads(data.GetData()) # xml representation of element elem = minidom.parseString(xml).childNodes[0] # Tempopary xxx object to test things @@ -549,6 +557,7 @@ class Frame(wxFrame): self.SetModified() self.SetStatusText('Pasted') + def OnCutDelete(self, evt): selected = tree.selection if not selected: return # key pressed event @@ -577,11 +586,13 @@ class Frame(wxFrame): elem = tree.RemoveLeaf(selected) undoMan.RegisterUndo(UndoCutDelete(index, parent, elem)) if evt.GetId() == wxID_CUT: - wx.TheClipboard.Open() - data = wx.CustomDataObject('XRCED') - data.SetData(cPickle.dumps(elem.toxml())) - wx.TheClipboard.SetData(data) - wx.TheClipboard.Close() + if wx.TheClipboard.Open(): + data = wx.CustomDataObject('XRCED') + data.SetData(cPickle.dumps(elem.toxml())) + wx.TheClipboard.SetData(data) + wx.TheClipboard.Close() + else: + wx.MessageBox("Unable to open the clipboard", "Error") tree.pendingHighLight = None tree.UnselectAll() tree.selection = None @@ -1141,6 +1152,7 @@ Homepage: http://xrced.sourceforge.net\ 'Save before too late?', flags ) say = dlg.ShowModal() dlg.Destroy() + wxYield() if say == wxID_YES: self.OnSaveOrSaveAs(wxCommandEvent(wxID_SAVE)) # If save was successful, modified flag is unset @@ -1213,7 +1225,6 @@ Please upgrade wxWindows to %d.%d.%d or higher.''' % MinWxVersion) conf.panic = not conf.HasEntry('nopanic') # Add handlers wxFileSystem_AddHandler(wxMemoryFSHandler()) - wxInitAllImageHandlers() # Create main frame frame = Frame(pos, size) frame.Show(True) -- 2.45.2