X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/2458faeb60f3d66a1fa462924eb3af59104a6cfc..f1560fa6df2c2d3bbba95250c838d1b540e7e535:/wxPython/wx/tools/XRCed/tree.py diff --git a/wxPython/wx/tools/XRCed/tree.py b/wxPython/wx/tools/XRCed/tree.py index 77a86720de..3cb4c990c9 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'), ], @@ -653,9 +654,9 @@ class XML_Tree(wxTreeCtrl): # Top-level sizer? return window's sizer if xxx.isSizer and isinstance(parentWin, wxWindow): return parentWin.GetSizer() - elif isinstance(xxx, xxxStatusBar): return None - elif isinstance(xxx, xxxToolBar): - # If it's the main toolbar, we can't really select it + elif xxx.__class__ in [xxxMenu, xxxMenuItem, xxxSeparator]: return None + elif xxx.__class__ in [xxxToolBar, xxxMenuBar]: + # If it's the main toolbar or menubar, we can't really select it if xxx.parent.__class__ == xxxFrame: return None elif isinstance(xxx.parent, xxxToolBar): # Select complete toolbar @@ -670,15 +671,12 @@ class XML_Tree(wxTreeCtrl): # First window is controld return parentWin.GetChildren()[self.ItemIndex(item)+1] # Otherwise get parent's object and it's child - child = parentWin.GetChildren()[self.ItemIndex(item)] + child = parentWin.GetChildren()[self.WindowIndex(item)] # Return window or sizer for sizer items if child.GetClassName() == 'wxSizerItem': if child.IsWindow(): child = child.GetWindow() elif child.IsSizer(): child = child.GetSizer() - # Test for notebook sizers (deprecated) - if isinstance(child, wxNotebookSizer): - child = child.GetNotebook() return child def OnSelChanged(self, evt): @@ -740,7 +738,9 @@ class XML_Tree(wxTreeCtrl): return # Get window/sizer object obj = self.FindNodeObject(item) - if not obj: return + if not obj: + if g.testWin.highLight: g.testWin.highLight.Remove() + return pos = self.FindNodePos(item, obj) size = obj.GetSize() # Highlight @@ -981,6 +981,17 @@ class XML_Tree(wxTreeCtrl): def OnCloseTestWin(self, evt): self.CloseTestWindow() + # Return index in parent, for real window children + def WindowIndex(self, item): + n = 0 # index of sibling + prev = self.GetPrevSibling(item) + while prev.IsOk(): + # MenuBar is not a child + if not isinstance(self.GetPyData(prev), xxxMenuBar): + n += 1 + prev = self.GetPrevSibling(prev) + return n + # Return item index in parent def ItemIndex(self, item): n = 0 # index of sibling @@ -1070,6 +1081,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