def __init__(self, title): title = "Ater" wx.Frame.__init__(self, None, wx.ID_ANY, title=title, size=(800, 600)) self.aui_mgr = AterAuiManager(self) # add session tree self.sessionTreePanel = SessionTreeCtrlPanel(self, size=(150, 600)) self.aui_mgr.AddPane( self.sessionTreePanel, aui.AuiPaneInfo().Name("AterSessionTree").Left().CloseButton( False).MaximizeButton(True).MinimizeButton(True).Floatable( True).PaneBorder(True)) # add terminal tabbed panel self.notebook = AterAuiNotebook(self) # self.notebook.addPanel("tab-default", TerminalTabPanel, TermEmulator, True) self._notebook_style = self.notebook.default_style self.aui_mgr.AddPane( self.notebook, aui.AuiPaneInfo().Name("AterTermainalPanel").Center().CloseButton( False).MaximizeButton(True).MinimizeButton(True).Floatable( True).PaneBorder(True)) self.aui_mgr.Update() self.setIcon() self.initBar()
def _PostInit(self): self._readPanel = ReadPanelCreator.Create(self, self._code, 1, self._font, self._delegate, mainWindow=True) self._readPanel.Delegate = self._delegate self._readPanel.SetPageNumber(None) self._readPanel.SetItemNumber(None) self._toolPanel = widgets.ReadToolPanel(self, self._dataSource) self._listPanel = self._CreateBookListPanel() self.SetCenterPane(self._readPanel, caption=True) info = aui.AuiPaneInfo().CaptionVisible(False).Resizable(False) info = info.FloatingSize((740, 75)).MinSize((740, 75)).Top().Layer(0) self.AddPane(self._toolPanel, info.Name('Tool')) info = aui.AuiPaneInfo().CaptionVisible(False).TopDockable( False).BottomDockable(False) info = info.BestSize((250, 768)).FloatingSize((250, 768)).MinSize( (0, 0)).Left().Layer(1) self.AddPane(self._listPanel, info.Name('BookList'))
def InitUI(self): panel = wx.Panel(self) self.mgr = aui.AuiManager() self.mgr.SetManagedWindow(panel) notebook = wx.Notebook(panel, -1, style=wx.CLIP_CHILDREN) stockRegisterPanel = StockRegisterPanel(notebook) stockReportPanel = StockReportPanel(notebook) notebook.AddPage(stockRegisterPanel, '物品登记') notebook.AddPage(stockReportPanel, '出入库报表') notebook.SetSelection(0) goodsTreeCtrlPanel = GoodsTreeCtrlPanel(panel) self.mgr.AddPane(notebook, aui.AuiPaneInfo().CenterPane().Name("Notebook")) self.mgr.AddPane( goodsTreeCtrlPanel, aui.AuiPaneInfo().Left().Layer(2).BestSize((240, -1)).MinSize( (240, -1)).Floatable(self.allowAuiFloating).FloatingSize( (240, 700)).Caption("").CloseButton(False).Name("GoodsTree")) self.mgr.Update() bSizer = wx.BoxSizer(wx.VERTICAL) bSizer.Add(panel, 1, wx.ALL | wx.EXPAND, 0) self.SetSizer(bSizer) self.Layout()
def __init__(self, title=u""): super(EclibDemoFrame, self).__init__(None, title=title, size=(850, 550)) # Attributes self.mgr = aui.AuiManager(self, aui.AUI_MGR_ALLOW_ACTIVE_PANE) self.tree = EclibDemoTree(self) self.pane = EclibDemoBook(self) path = os.path.dirname(__file__) self._loader = ModuleLoader(FindDemoModules(os.path.abspath(path))) # Setup self.mgr.AddPane(self.tree, aui.AuiPaneInfo().Left().Layer(0).\ Caption("Test Modules").CloseButton(False).\ MinSize((220,-1))) self.mgr.AddPane(self.pane, aui.AuiPaneInfo().CenterPane().\ Layer(1).CloseButton(False).MinSize((450,400))) self.mgr.Update() self.CenterOnParent() self.Bind(wx.EVT_TREE_SEL_CHANGED, self.OnTreeSel)
def add_panel(self): self._mgr.AddPane( self.CreateGrid(), aui.AuiPaneInfo().Name("数据").Caption("数据").MinSize( wx.Size(200, 150)).Bottom().Layer(0).Row(0).Position( 0).CloseButton(True).MaximizeButton(True)) self._mgr.AddPane( self.CreateSetting(), aui.AuiPaneInfo().Name("设置").Caption("设置").MinSize( wx.Size(330, 150)).Right().Layer(0).Row(0).Position( 0).CloseButton(True).MaximizeButton(True).Hide()) self._mgr.AddPane( self.CreateStatisticsCtrl(), aui.AuiPaneInfo().Name("统计").Caption("统计").MinSize( wx.Size(200, 150)).Bottom().Layer(0).Row(0).Position( 1).CloseButton(True).MaximizeButton(True)) self._mgr.AddPane( self.CreateQueryCtrl(), aui.AuiPaneInfo().Name("检索").Caption('检索').MinSize( wx.Size( 430, 100)).Left().Layer(0).Row(0).Position(0).CloseButton(True)) self._mgr.AddPane(self.CreateImageCtrl(), aui.AuiPaneInfo().Name("图像").CenterPane().Hide()) self._mgr.Update()
def __do_layout(self): self._mgr.AddPane( self.TabBook, wxaui.AuiPaneInfo().Center().CloseButton(False).Gripper(False), _("Tab Book")) self._mgr.AddPane( self.ContextPane, wxaui.AuiPaneInfo().Right().MinSize((200,200)).Floatable(False).CaptionVisible(True), _("Context")) self.menu_toggle_context.Check() self.ContextPane.Bind(wxaui.EVT_AUI_PANE_CLOSE, self.menu_toggle_context.Toggle) self._mgr.Update() # self.TabBook.SetMinSize(self.TabPane.sizer.GetSize()) self.OpenIntroPane()
def On_Create_MaxPlot(self, evt): # A count increment to ensure no duplicate panes self.count = self.count + 1 id_selected = evt.GetId() # canvas0, canvas1, ..... canvas_id = evt.GetEventObject().GetLabel(id_selected) + str( self.count) # Dictionary containing all maxplot windows! self.canvas_dict[canvas_id] = MaxPlotControl( self, canvas_id, self.main_frame.function_notebooks, self.main_frame.__auiManager, self, ) self.main_frame.__auiManager.AddPane( self.canvas_dict[canvas_id].panel, aui.AuiPaneInfo().Name(canvas_id).Caption(canvas_id).MinSize( 100, 100).DestroyOnClose().Float(), ) self.main_frame.__auiManager.Update()
def __init__(self, parent): super(View, self).__init__(parent, -1, title=_('Search'), style=wx.CAPTION | wx.NO_BORDER) self._parent = parent self._bookmarkMenu = None self.SetBackgroundColour(wx.Colour(0xED, 0xED, 0xED, 0xFF)) self._resultsWindow = widgets.ResultsWindow(self) self._resultsWindow.SetPage( u'<html><body bgcolor="%s"></body></html>' % (utils.LoadThemeBackgroundHex(constants.SEARCH))) self._font = utils.LoadFont(constants.SEARCH_FONT) if self._font and self._font.IsOk(): self._resultsWindow.SetStandardFonts(self._font.GetPointSize(), self._font.GetFaceName()) self._topBar = widgets.SearchToolPanel(self, self._font) self.SetCenterPane(self._resultsWindow) info = aui.AuiPaneInfo().CloseButton(False).Resizable( False).CaptionVisible(False) info = info.FloatingSize((720, 125)).MinSize((720, 125)).Top() self.AddPane(self._topBar, info) self._CreateHistoryListPane()
def ShowVesselsButton(self, event): self._mgr.AddPane( self.CreateGrid(), aui.AuiPaneInfo().Caption("Vessels").Float().FloatingPosition( self.GetStartPosition()).FloatingSize(wx.Size( 340, 300)).CloseButton(True).MaximizeButton(True)) self._mgr.Update()
def register_panel_stop(window, context): # Define Stop. stop = wx.BitmapButton( window, wx.ID_ANY, icons8_emergency_stop_button_50.GetBitmap() ) window.Bind( wx.EVT_BUTTON, ConsoleFunction(context, "estop\n"), stop, ) stop.SetBackgroundColour(wx.Colour(127, 0, 0)) stop.SetToolTip(_("Emergency stop/reset the controller.")) stop.SetSize(stop.GetBestSize()) pane = ( aui.AuiPaneInfo() .Bottom() .Caption(_("Stop")) .MinSize(40, 40) .FloatingSize(98, 98) .Name("stop") .Hide() .CaptionVisible(not context.pane_lock) ) pane.dock_proportion = 98 pane.control = stop window.on_pane_add(pane) context.register("pane/stop", pane)
def __init__(self, *args, **kwargs): super(AuiTestFrame, self).__init__(*args, **kwargs) # Attributes # Create some 'tool' windows self.textctrl = wx.TextCtrl(self, style=wx.TE_MULTILINE | wx.TE_RICH2) self.paneleft = TestPanel(self, "Left Pane", wx.BLUE) self.panebottom = TestPanel(self, "Bottom Pane", wx.WHITE) self.paneright = TestPanel(self, "Right Pane", wx.RED) # Set up some AuiInfo info = aui.AuiPaneInfo() info = info.Dockable(True).CloseButton(False) info = info.MaximizeButton(True).CaptionVisible(True) info = info.BestSize((250, 250)) # Add them to the AuiManager self.SetCenterPane(self.textctrl) for caption, loc, name in [("Left Pane", "Left", "paneleft"), ("Right Pane", "Right", "paneright"), ("Bottom Pane", "Bottom", "panebottom")]: info = info.Caption(caption) info = info.Name(name) # Set the default dock position (i.e info.Bottom()) info = getattr(info, loc)() # Get the window object pane = getattr(self, name) self.AddPane(pane, info) # Restore last session self.LoadDefaultPerspective()
def OnCreateHTML(self, event): self._mgr.AddPane( self.CreateHTMLCtrl(), aui.AuiPaneInfo().Caption("HTML Content").Float().FloatingPosition( self.GetStartPosition()).FloatingSize(wx.Size( 300, 200)).CloseButton(True).MaximizeButton(True)) self._mgr.Update()
def OnCreateText(self, event): self._mgr.AddPane( self.CreateTextCtrl(), aui.AuiPaneInfo().Caption("Text Control").Float().FloatingPosition( self.GetStartPosition()).CloseButton(True).MaximizeButton( True)) self._mgr.Update()
def ToggleFilterPanel(self, evt=0): print 'ToggleFilterPanel' if self.FilterPanel: spinfo = self._mgr.GetPane(self.FilterPanel) self._mgr.ClosePane(spinfo) self._mgr.Update() self.ClearFiltering() return if self.GetCurrentPane().paneltype not in ( 'FileListPanel', 'WebListPanel', 'BibListPanel', 'BibImpPanel', 'StagingListPanel', 'GBListPanel', 'RecentView', 'RecentActView', 'StarredView', 'FlaggedView', 'DirListPanel', 'TagListPanel'): if evt: evt.Skip() return if self.SearchPanel: spinfo = self._mgr.GetPane(self.SearchPanel) self._mgr.ClosePane(spinfo) self.FilterPanel = FilterToolsPanel(self) self._mgr.AddPane( self.FilterPanel, wxaui.AuiPaneInfo().Bottom().MinSize((300,50)).Floatable(False).Caption(_('Filter Current View')).DestroyOnClose(True) ) self._mgr.Update() self.FilterPanel.Bind(EVT_PIE_SEARCH_EVENT, self.GetCurrentPane().onFilterView)
def register_panel_go(window, context): # Define Go go = wx.BitmapButton(window, wx.ID_ANY, icons8_gas_industry_50.GetBitmap()) def busy_go_plan(*args): with wx.BusyInfo(_("Processing and sending...")): context( "plan clear copy preprocess validate blob preopt optimize spool\nplan clear\n" ) window.Bind( wx.EVT_BUTTON, busy_go_plan, go, ) go.SetBackgroundColour(wx.Colour(0, 127, 0)) go.SetToolTip(_("One Touch: Send Job To Laser ")) go.SetSize(go.GetBestSize()) pane = ( aui.AuiPaneInfo() .Bottom() .Caption(_("Go")) .MinSize(40, 40) .FloatingSize(98, 98) .Name("go") .CaptionVisible(not context.pane_lock) .Hide() ) pane.dock_proportion = 98 pane.control = go window.on_pane_add(pane) context.register("pane/go", pane)
def OnCreateSizeReport(self, event): self._mgr.AddPane( self.CreateSizeReportCtrl(), aui.AuiPaneInfo().Caption( "Client Size Reporter").Float().FloatingPosition( self.GetStartPosition()).CloseButton(True).MaximizeButton( True)) self._mgr.Update()
def register_panel_debugger(window, context): pane = (aui.AuiPaneInfo().Left().MinSize(225, 110).FloatingSize( 225, 110).Caption(_("Position")).CaptionVisible( not context.pane_lock).Name("debug_tree").Hide()) pane.dock_proportion = 225 pane.control = DebugTreePanel(window, wx.ID_ANY, context=context) pane.submenu = _("Debug") window.on_pane_add(pane) context.register("pane/debug_tree", pane)
def SetCenterPane(self, pane): """Set the main center pane of the frame. Convenience method for AddPane. @param pane: wx.Window instance """ info = aui.AuiPaneInfo() info = info.Center().Name("CenterPane") info = info.Dockable(False).CaptionVisible(False) self._mgr.AddPane(pane, info)
def register_panel(window, context): panel = DevicePanel(window, wx.ID_ANY, context=context, pane=True) pane = (aui.AuiPaneInfo().Bottom().Layer(2).MinSize(600, 100).FloatingSize( 600, 230).Caption(_("Devices")).Name("devices").CaptionVisible( not context.pane_lock).Hide()) pane.dock_proportion = 600 pane.control = panel window.on_pane_add(pane) context.register("pane/devices", pane)
def create_panes(self): # self.browser_panel = wx.Panel(self.parent, style=wx.WANTS_CHARS, size=(500, 300)) self.log_wnd = wx.TextCtrl(self.parent, -1, style=wx.TE_MULTILINE | wx.TE_READONLY, size=(200, 300)) # add a bunch of panes # SizeReportCtrl.create(self.parent, self.mgr) self.add_pane(self.factiva.get_center_pane(), aui.AuiPaneInfo().Name(self.factiva.name).CenterPane()) self.add_pane(self.zhihu.get_center_pane(), aui.AuiPaneInfo().Name(self.zhihu.name).CenterPane()) self.add_pane(self.weibo.get_center_pane(), aui.AuiPaneInfo().Name(self.weibo.name).CenterPane()) self.add_pane( self.log_wnd, aui.AuiPaneInfo().Bottom().Caption( _('Message')).CloseButton(False).MaximizeButton(True))
def register_panel(window, context): panel = NotePanel(window, wx.ID_ANY, context=context) pane = (aui.AuiPaneInfo().Float().MinSize(100, 100).FloatingSize( 170, 230).MaxSize(500, 500).Caption(_("Notes")).CaptionVisible( not context.pane_lock).Name("notes").Hide()) pane.dock_proportion = 100 pane.control = panel pane.submenu = _("Tools") window.on_pane_add(pane) context.register("pane/notes", pane)
def register_panel_tree(window, context): wxtree = TreePanel(window, wx.ID_ANY, context=context) minwd = 75 pane = (aui.AuiPaneInfo().Name("tree").Left().MinSize( minwd, -1).LeftDockable().RightDockable().BottomDockable(False).Caption( _("Tree")).CaptionVisible(not context.pane_lock).TopDockable(False) ) pane.dock_proportion = minwd pane.control = wxtree window.on_pane_add(pane) context.register("pane/tree", pane)
def create_views(self): self.log_view = views.LogView(self, controller = self.controller) self.log_view.info = aui.AuiPaneInfo().Caption('Logs').Bottom().Name('LogView') self.manager.AddPane(self.log_view, self.log_view.info) self.editor_view = views.EditorView(self, controller=self.controller) self.editor_view.info = aui.AuiPaneInfo().CentrePane().PaneBorder(False).Name('EditorView') self.manager.AddPane(self.editor_view, self.editor_view.info) self.project_view = views.ProjectView(self, controller=self.controller) self.project_view.Bind(views.EVT_PROJECT_DCLICK_FILE, self.on_project_dclick_file) self.project_view.info = aui.AuiPaneInfo().Caption('Project').Left().Name('ProjectView') self.manager.AddPane(self.project_view, self.project_view.info) self.runtime_view = views.RuntimeView(self, style=0, controller=self.controller) self.runtime_view.info = aui.AuiPaneInfo().Caption('Runtime').Right().Name('RuntimeView').MinSize((250,50)) self.manager.AddPane(self.runtime_view, self.runtime_view.info) #self.debug_view = views.GDBDebugView(self, controller=self.controller) #self.debug_view.info = aui.AuiPaneInfo().Caption('Debug').Right().Name('DebugView').MinSize((250,50)) #self.manager.AddPane(self.debug_view, self.debug_view.info) self.disassembly_view = views.DisassemblyView(self, controller=self.controller) self.disassembly_view.info = aui.AuiPaneInfo().Caption('Disassembly').Right().Name('DisassemblyView').MinSize((250,50)) self.manager.AddPane(self.disassembly_view, self.disassembly_view.info) self.memory_view = views.MemoryView(self, controller=self.controller) self.memory_view.info = aui.AuiPaneInfo().Caption('Memory').Right().Name('MemoryView').MinSize((250,50)) self.manager.AddPane(self.memory_view, self.memory_view.info) self.views = [self.log_view, self.editor_view, self.project_view, self.runtime_view, self.disassembly_view]
def register_panel_ribbon(window, context): iconsize = get_default_icon_size() minh = 3 * iconsize pane = (aui.AuiPaneInfo().Name("ribbon").Top().RightDockable( False).LeftDockable(False).MinSize(300, minh).FloatingSize( 640, minh).Caption(_("Ribbon")).CaptionVisible(not context.pane_lock)) pane.dock_proportion = 640 ribbon = RibbonPanel(window, wx.ID_ANY, context=context) pane.control = ribbon window.on_pane_add(pane) context.register("pane/ribbon", pane)
def create_toolbars(self, toolbars): for item in toolbars: defaults = "Top" item = item[:] item[2:] = [[j] for j in defaults.split()] + item[2:] info = aui.AuiPaneInfo()\ .Name(item[1]).Caption(_(item[1])).Row(0).ToolbarPane().\ LeftDockable(False).RightDockable(False) for attr in item[2:]: getattr(info, attr[0])(*attr[1:]) self.aui_mgr.AddPane(item[0], info)
def __init__(self, parent, log): wx.Panel.__init__(self, parent, wx.ID_ANY, size=(500, 500)) # Attributes self._paneNavi = None self.mgr = aui.AuiManager( self, aui.AUI_MGR_ALLOW_ACTIVE_PANE | aui.AUI_MGR_TRANSPARENT_HINT) self.log = log # Setup panes = list() for pane in range(4): tmp = wx.Panel(self, size=(100, 100)) panes.append(tmp) if wx.Platform != '__WXMAC__': txt = wx.StaticText(panes[0], label="Ctrl+Tab to activate navigator") else: txt = wx.StaticText(panes[0], label="Alt+Tab to activate navigator") sizer = wx.BoxSizer() sizer.Add(txt, 0, wx.ALIGN_CENTER | wx.ALL, 20) panes[0].SetSizer(sizer) # Populate aui manager name = "Panel%s" pos = ['Center', 'Left', 'Top', 'Right'] for idx, pane in enumerate(panes): tmp = name % idx if idx > 0: txt = wx.TextCtrl(pane) s = wx.BoxSizer() s.Add(txt, 1, wx.EXPAND) pane.SetSizer(s) ai = aui.AuiPaneInfo().Caption(tmp).MinSize((100, 100)).Name(tmp) ai = getattr(ai, pos[idx])() self.mgr.AddPane(pane, ai) self.mgr.Update() tlw = self.GetTopLevelParent() if wx.Platform != '__WXMAC__': tbl = wx.AcceleratorTable([(wx.ACCEL_CTRL, wx.WXK_TAB, ID_NAVI)]) else: tbl = wx.AcceleratorTable([(wx.ACCEL_ALT, wx.WXK_TAB, ID_NAVI)]) tlw.SetAcceleratorTable(tbl) tlw.Bind(wx.EVT_MENU, self.OnNavigate, id=ID_NAVI) self.Bind(wx.EVT_WINDOW_DESTROY, self.OnDestroy)
def create_items(self, items, use_startups=True): for frame, title, name, always_items, startup_items in items: defaults = "CaptionVisible MaximizeButton Movable Floatable " \ "MinimizeButton" items = [[j] for j in defaults.split()] items += always_items if use_startups: items += startup_items info = aui.AuiPaneInfo().BestSize((300, 300)) \ .Name(name).Caption(title).MinimizeButton(True).Layer(0) for attr in items: getattr(info, attr[0])(*attr[1:]) self.aui_mgr.AddPane(frame, info)
def _CreateHistoryListPane(self): panel = wx.Panel(self, wx.ID_ANY) panel.SetBackgroundColour('white') sizer = wx.StaticBoxSizer(wx.StaticBox(panel, wx.ID_ANY, _('History')), orient=wx.VERTICAL) self._historyList = wx.ListBox(panel, wx.ID_ANY, choices=[], style=wx.LB_SINGLE | wx.LB_NEEDED_SB) if 'wxMSW' in wx.PlatformInfo and self._font and self._font.IsOk(): self._historyList.SetFont(self._font) self._sortingRadioBox = wx.RadioBox( panel, wx.ID_ANY, _('Sorting'), choices=[_('Alphabet'), _('Creation')], majorDimension=2) self._filterCtrl = wx.SearchCtrl(panel, wx.ID_ANY, style=wx.TE_PROCESS_ENTER) if 'wxMac' in wx.PlatformInfo: font = wx.Font(14, wx.DEFAULT, wx.NORMAL, wx.NORMAL) font.SetFaceName('Tahoma') self._filterCtrl.SetFont(font) self._deleteButton = wx.BitmapButton( panel, wx.ID_ANY, wx.BitmapFromImage( wx.Image(constants.FILE_DELETE_IMAGE, wx.BITMAP_TYPE_PNG).Scale(18, 18))) bottomSizer = wx.BoxSizer(wx.HORIZONTAL) bottomSizer.Add(self._filterCtrl, 1, wx.ALIGN_CENTER) bottomSizer.Add((5, -1)) bottomSizer.Add(self._deleteButton, 0, wx.ALIGN_CENTER) sizer.Add(self._sortingRadioBox, 0, wx.ALIGN_CENTER | wx.BOTTOM, 5) sizer.Add(self._historyList, 1, wx.EXPAND | wx.BOTTOM, 2) sizer.Add(bottomSizer, 0, wx.EXPAND) panel.SetSizer(sizer) self.AddPane( panel, aui.AuiPaneInfo().CloseButton(False).CaptionVisible( False).BestSize((200, -1)).Right())
def ToggleWebPanel(self, evt=0): if self.WebPanel: wpinfo = self._mgr.GetPane(self.WebPanel) self._mgr.ClosePane(wpinfo) self._mgr.Update() return self.WebPanel = WebScrapePanel(self) self._mgr.AddPane( self.WebPanel, wxaui.AuiPaneInfo().Top().MinSize((300,120)).Floatable(False).DestroyOnClose(True) ) self.WebPanel.Bind(EVT_PIE_SCRAPE_EVENT, self.OnWebScrape) self.WebPanel.Bind(EVT_PIE_PREFETCH_START, self.OnPrefetch) self.Bind(EVT_PIE_PREFETCH_DONE, self.WebPanel.onPrefetchResult) self._mgr.Update()
def AddReadPanel(self, code): index = 1 if len(self._comparePanel.keys()) == 0 else sum( map(lambda k: int(k.startswith(code)), self._comparePanel.keys())) + 1 self._comparePanel[utils.MakeKey(code, index)] = ReadPanelCreator.Create( self, code, index, self._font, self._delegate) info = aui.AuiPaneInfo().Floatable(False).Center().Row( len(self._comparePanel)) self.AddPane(self._comparePanel[utils.MakeKey(code, index)], info.Name(utils.MakeKey(code, index))) return index