]> git.saurik.com Git - wxWidgets.git/blobdiff - wxPython/wx/tools/XRCed/xrced.py
fix for toolbar items selection - impossible to find exact coordinates
[wxWidgets.git] / wxPython / wx / tools / XRCed / xrced.py
index 7e69fbc5936f57e1a36f1729d1ec04894b14ad72..7da554998466a0a4e043d1928cd67b71725cbd86 100644 (file)
@@ -100,7 +100,7 @@ class Frame(wxFrame):
 
         # Load our own resources
         self.res = wxXmlResource('')
-        # !!! Blocking of assert failure occuring in older unicode builds
+        # !!! Blocking of assert failure occurring in older unicode builds
         try:
             self.res.Load(os.path.join(basePath, 'xrced.xrc'))
         except wx._core.PyAssertionError:
@@ -176,21 +176,30 @@ class Frame(wxFrame):
 
         # Create toolbar
         tb = self.CreateToolBar(wxTB_HORIZONTAL | wxNO_BORDER | wxTB_FLAT)
-        tb.SetToolBitmapSize((24, 23))
-        tb.AddSimpleTool(wxID_NEW, images.getNewBitmap(), 'New', 'New file')
-        tb.AddSimpleTool(wxID_OPEN, images.getOpenBitmap(), 'Open', 'Open file')
-        tb.AddSimpleTool(wxID_SAVE, images.getSaveBitmap(), 'Save', 'Save file')
+        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(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, images.getUndoBitmap(), 'Undo', 'Undo')
-        tb.AddSimpleTool(wxID_REDO, images.getRedoBitmap(), 'Redo', 'Redo')
+        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, images.getCutBitmap(), 'Cut', 'Cut')
-        tb.AddSimpleTool(wxID_COPY, images.getCopyBitmap(), 'Copy', 'Copy')
-        tb.AddSimpleTool(self.ID_TOOL_PASTE, images.getPasteBitmap(), 'Paste', 'Paste')
+        tb.AddSimpleTool(wxID_CUT, cut_bmp, 'Cut', 'Cut')
+        tb.AddSimpleTool(wxID_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.AddCheckTool(self.ID_TOOL_LOCATE,
-                        images.getLocateBitmap(), images.getLocateArmedBitmap(),
-                        'Locate', 'Locate control in test window and select it')
+        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.AddSimpleTool(self.ID_TEST, images.getTestBitmap(), 'Test', 'Test window')
         tb.AddSimpleTool(self.ID_REFRESH, images.getRefreshBitmap(),
@@ -352,7 +361,7 @@ class Frame(wxFrame):
         if evt.GetId() == wxID_SAVEAS or not self.dataFile:
             if self.dataFile: defaultName = ''
             else: defaultName = 'UNTITLED.xrc'
-            dirname = os.path.dirname(self.dataFile)
+            dirname = os.path.abspath(os.path.dirname(self.dataFile))
             dlg = wxFileDialog(self, 'Save As', dirname, defaultName, '*.xrc',
                                wxSAVE | wxOVERWRITE_PROMPT | wxCHANGE_DIR)
             if dlg.ShowModal() == wxID_OK:
@@ -447,7 +456,8 @@ class Frame(wxFrame):
             if parent.__class__ != xxxMainNode: error = True
         elif x.__class__ == xxxToolBar:
             # Toolbar can be top-level of child of panel or frame
-            if parent.__class__ not in [xxxMainNode, xxxPanel, xxxFrame]: error = True
+            if parent.__class__ not in [xxxMainNode, xxxPanel, xxxFrame] and \
+               not parent.isSizer: error = True
         elif x.__class__ == xxxPanel and parent.__class__ == xxxMainNode:
             pass
         elif x.__class__ == xxxSpacer:
@@ -707,7 +717,6 @@ Homepage: http://xrced.sourceforge.net\
 
     # Simple emulation of python command line
     def OnDebugCMD(self, evt):
-        import traceback
         while 1:
             try:
                 exec raw_input('C:\> ')
@@ -967,6 +976,8 @@ Homepage: http://xrced.sourceforge.net\
             if dom.encoding:
                 g.currentEncoding = dom.encoding
                 wx.SetDefaultPyEncoding(g.currentEncoding.encode())
+            else:
+                g.currentEncoding = ''
             # Change dir
             self.dataFile = path = os.path.abspath(path)
             dir = os.path.dirname(path)
@@ -1006,9 +1017,9 @@ Homepage: http://xrced.sourceforge.net\
             if tree.selection and panel.IsModified():
                 self.OnRefresh(wxCommandEvent())
             if g.currentEncoding:
-                f = codecs.open(path, 'w', g.currentEncoding)
+                f = codecs.open(path, 'wt', g.currentEncoding)
             else:
-                f = codecs.open(path, 'w')
+                f = codecs.open(path, 'wt')
             # Make temporary copy for formatting it
             # !!! We can't clone dom node, it works only once
             #self.domCopy = tree.dom.cloneNode(True)
@@ -1022,6 +1033,8 @@ Homepage: http://xrced.sourceforge.net\
             self.modified = False
             panel.SetModified(False)
         except:
+            inf = sys.exc_info()
+            wxLogError(traceback.format_exception(inf[0], inf[1], None)[-1])
             wxLogError('Error writing file: %s' % path)
             raise