+
+ def ReadConfigurationFile(self):
+
+ self.auiConfigurations = {}
+ self.expansionState = [0, 1]
+
+ config = GetConfig()
+ val = config.Read('ExpansionState')
+ if val:
+ self.expansionState = eval(val)
+
+ val = config.Read('AUIPerspectives')
+ if val:
+ self.auiConfigurations = eval(val)
+
+
+ def BuildMenuBar(self):
+
+ # Make a File menu
+ self.mainmenu = wx.MenuBar()
+ menu = wx.Menu()
+ item = menu.Append(-1, '&Redirect Output',
+ 'Redirect print statements to a window',
+ wx.ITEM_CHECK)
+ self.Bind(wx.EVT_MENU, self.OnToggleRedirect, item)
+
+ exitItem = wx.MenuItem(menu, -1, 'E&xit\tCtrl-Q', 'Get the heck outta here!')
+ exitItem.SetBitmap(images.catalog['exit'].getBitmap())
+ menu.AppendItem(exitItem)
+ self.Bind(wx.EVT_MENU, self.OnFileExit, exitItem)
+ wx.App.SetMacExitMenuItemId(exitItem.GetId())
+ self.mainmenu.Append(menu, '&File')
+
+ # Make a Demo menu
+ menu = wx.Menu()
+ for indx, item in enumerate(_treeList[:-1]):
+ menuItem = wx.MenuItem(menu, -1, item[0])
+ submenu = wx.Menu()
+ for childItem in item[1]:
+ mi = submenu.Append(-1, childItem)
+ self.Bind(wx.EVT_MENU, self.OnDemoMenu, mi)
+ menuItem.SetBitmap(images.catalog[_demoPngs[indx+1]].getBitmap())
+ menuItem.SetSubMenu(submenu)
+ menu.AppendItem(menuItem)
+ self.mainmenu.Append(menu, '&Demo')
+
+ # Make an Option menu
+ # If we've turned off floatable panels then this menu is not needed
+ if ALLOW_AUI_FLOATING:
+ menu = wx.Menu()
+ auiPerspectives = self.auiConfigurations.keys()
+ auiPerspectives.sort()
+ perspectivesMenu = wx.Menu()
+ item = wx.MenuItem(perspectivesMenu, -1, DEFAULT_PERSPECTIVE, "Load startup default perspective", wx.ITEM_RADIO)
+ self.Bind(wx.EVT_MENU, self.OnAUIPerspectives, item)
+ perspectivesMenu.AppendItem(item)
+ for indx, key in enumerate(auiPerspectives):
+ if key == DEFAULT_PERSPECTIVE:
+ continue
+ item = wx.MenuItem(perspectivesMenu, -1, key, "Load user perspective %d"%indx, wx.ITEM_RADIO)
+ perspectivesMenu.AppendItem(item)
+ self.Bind(wx.EVT_MENU, self.OnAUIPerspectives, item)
+
+ menu.AppendMenu(wx.ID_ANY, "&AUI Perspectives", perspectivesMenu)
+ self.perspectives_menu = perspectivesMenu
+
+ item = wx.MenuItem(menu, -1, 'Save Perspective', 'Save AUI perspective')
+ item.SetBitmap(images.catalog['saveperspective'].getBitmap())
+ menu.AppendItem(item)
+ self.Bind(wx.EVT_MENU, self.OnSavePerspective, item)
+
+ item = wx.MenuItem(menu, -1, 'Delete Perspective', 'Delete AUI perspective')
+ item.SetBitmap(images.catalog['deleteperspective'].getBitmap())
+ menu.AppendItem(item)
+ self.Bind(wx.EVT_MENU, self.OnDeletePerspective, item)
+
+ menu.AppendSeparator()
+
+ item = wx.MenuItem(menu, -1, 'Restore Tree Expansion', 'Restore the initial tree expansion state')
+ item.SetBitmap(images.catalog['expansion'].getBitmap())
+ menu.AppendItem(item)
+ self.Bind(wx.EVT_MENU, self.OnTreeExpansion, item)
+
+ self.mainmenu.Append(menu, '&Options')
+
+ # Make a Help menu
+ menu = wx.Menu()
+ findItem = wx.MenuItem(menu, -1, '&Find\tCtrl-F', 'Find in the Demo Code')
+ findItem.SetBitmap(images.catalog['find'].getBitmap())
+ findNextItem = wx.MenuItem(menu, -1, 'Find &Next\tF3', 'Find Next')
+ findNextItem.SetBitmap(images.catalog['findnext'].getBitmap())
+ menu.AppendItem(findItem)
+ menu.AppendItem(findNextItem)
+ menu.AppendSeparator()
+
+ shellItem = wx.MenuItem(menu, -1, 'Open Py&Shell Window\tF5',
+ 'An interactive interpreter window with the demo app and frame objects in the namesapce')
+ shellItem.SetBitmap(images.catalog['pyshell'].getBitmap())
+ menu.AppendItem(shellItem)
+ inspToolItem = wx.MenuItem(menu, -1, 'Open &Widget Inspector\tF6',
+ 'A tool that lets you browse the live widgets and sizers in an application')
+ inspToolItem.SetBitmap(images.catalog['inspect'].getBitmap())
+ menu.AppendItem(inspToolItem)
+ menu.AppendSeparator()
+ helpItem = menu.Append(-1, '&About wxPython Demo', 'wxPython RULES!!!')
+ wx.App.SetMacAboutMenuItemId(helpItem.GetId())
+
+ self.Bind(wx.EVT_MENU, self.OnOpenShellWindow, shellItem)
+ self.Bind(wx.EVT_MENU, self.OnOpenWidgetInspector, inspToolItem)
+ self.Bind(wx.EVT_MENU, self.OnHelpAbout, helpItem)
+ self.Bind(wx.EVT_MENU, self.OnHelpFind, findItem)
+ self.Bind(wx.EVT_MENU, self.OnFindNext, findNextItem)
+ self.Bind(wx.EVT_FIND, self.OnFind)
+ self.Bind(wx.EVT_FIND_NEXT, self.OnFind)
+ self.Bind(wx.EVT_FIND_CLOSE, self.OnFindClose)
+ self.Bind(wx.EVT_UPDATE_UI, self.OnUpdateFindItems, findItem)
+ self.Bind(wx.EVT_UPDATE_UI, self.OnUpdateFindItems, findNextItem)
+ self.mainmenu.Append(menu, '&Help')
+ self.SetMenuBar(self.mainmenu)
+
+ if False:
+ # This is another way to set Accelerators, in addition to
+ # using the '\t<key>' syntax in the menu items.
+ aTable = wx.AcceleratorTable([(wx.ACCEL_ALT, ord('X'), exitItem.GetId()),
+ (wx.ACCEL_CTRL, ord('H'), helpItem.GetId()),
+ (wx.ACCEL_CTRL, ord('F'), findItem.GetId()),
+ (wx.ACCEL_NORMAL, wx.WXK_F3, findnextItem.GetId()),
+ (wx.ACCEL_NORMAL, wx.WXK_F9, shellItem.GetId()),
+ ])
+ self.SetAcceleratorTable(aTable)
+
+
+ #---------------------------------------------