Example #1
0
    def __init__(self, parent):
        wx.Frame.__init__(self, parent, style=wx.DEFAULT_FRAME_STYLE|wx.SUNKEN_BORDER)
        self.SetTitle( 'Open Definition :: Warpig Code Environment' )
    
        self.projecttree    = WpTreeCtrl(self)
        self.notebook       = WpNoteBook(self)
        self.preferences    = WpPreferences(self)

        self.__setup()

        self.Centre()
        self.Maximize()
        self.Show( True )

        pub.subscribe(self.__showPaneSubscriber, 'mainframe.showpane')
        pub.subscribe(self.__setPaneCaption, 'mainframe.setpanetitle')

        self.Bind(wx.EVT_CLOSE, self.onCloseApplication)
Example #2
0
class WpAuiMainFrame(wx.Frame):
    
    def __init__(self, parent):
        wx.Frame.__init__(self, parent, style=wx.DEFAULT_FRAME_STYLE|wx.SUNKEN_BORDER)
        self.SetTitle( 'Open Definition :: Warpig Code Environment' )
    
        self.projecttree    = WpTreeCtrl(self)
        self.notebook       = WpNoteBook(self)
        self.preferences    = WpPreferences(self)

        self.__setup()

        self.Centre()
        self.Maximize()
        self.Show( True )

        pub.subscribe(self.__showPaneSubscriber, 'mainframe.showpane')
        pub.subscribe(self.__setPaneCaption, 'mainframe.setpanetitle')

        self.Bind(wx.EVT_CLOSE, self.onCloseApplication)

    def onCloseApplication(self, event):
        self.closeApplication()

    def closeApplication(self):
        dialog = wx.MessageDialog(
                                None,
                                'Are you sure you want to quit?',
                                'Question',
                                 wx.YES_NO | wx.NO_DEFAULT | wx.ICON_QUESTION
                            )

        status = dialog.ShowModal()

        if status == wx.ID_YES:
            ## Save notebook state (opened tabs)
            pub.sendMessage('notebook.savetabstate', True)

            ## De-initialize the frame manager
            self.__manager.UnInit()

            ## Delete the frame
            self.Destroy()
        else:
            dialog.Destroy()

    def __setup(self):
        ## Menubar
        self.SetMenuBar(WpMainMenu(self))

        mainbuttonpanel = MainButtonPanel(self)

        self.__manager = wx.aui.AuiManager(self)

        ## We always need a statusbar
        self.CreateStatusBar()

        ## Adding main button toolbar
        self.__manager.AddPane(
                mainbuttonpanel,
                wx.aui.AuiPaneInfo()
                            .CaptionVisible(False)
                            .Top()
                            .Gripper(False)
                            .ToolbarPane()
                        )

        self.__manager.AddPane(
                            self.notebook,
                            wx.aui.AuiPaneInfo()
                                .Name("notebook")
                                .Caption("Notebook")
                                .CaptionVisible(False)
                                .CloseButton(False)
                                .MaximizeButton(False)
                                .MinimizeButton(False)
                                .Center()
                        )

        self.__manager.AddPane(
                            self.projecttree,
                            wx.aui.AuiPaneInfo()
                                .Name("project")
                                .Caption("Project tree")
                                .CloseButton(False)
                                .Right()
                                .Hide()
                                .BottomDockable(False)
                                .TopDockable(False)
                                .MinSize((200,200))
                        )

        self.__manager.AddPane(
                            self.preferences,
                            wx.aui.AuiPaneInfo()
                                .Name("settings")
                                .Caption("Warpig Settings")
                                .Dockable(False)
                                .Float()
                                .Hide()
                                .MinimizeButton(True))

        self.__manager.Update()

        if self.notebook.openTabs() == 0:
            self.notebook.AddDefaultPage()

    def __showPaneSubscriber(self, message):
        self.__manager.GetPane(message.data).Show()
        self.__manager.Update()

    def __setPaneCaption(self, message):
        pane_name = message.data['pane']
        caption = message.data['caption']

        pane = self.__manager.GetPane(pane_name)
        pane.Caption('Project: ' + str(caption))

        self.__manager.Update()