Exemple #1
0
    def __init__(self):
        wx.Frame.__init__(self,
                          None,
                          -1,
                          title="mplotlab",
                          size=(1200, 675),
                          style=wx.DEFAULT_FRAME_STYLE | wx.SUNKEN_BORDER
                          | wx.CLIP_CHILDREN)
        # model container
        self.__container = Container()
        # panels
        self.__graphicBook = GraphicBook(self)
        self.__configPanel = ConfigPanel(self)
        self.__treePanel = TreePanel(self, self.__configPanel)
        self.__shellPanel = ShellPanel(self)
        # tell FrameManager to manage this frame
        self._mgr = wx.aui.AuiManager()
        self._mgr.SetManagedWindow(self)

        self._perspectives = []
        self.n = 0
        self.x = 0

        # create menu
        mb = wx.MenuBar()

        file_menu = wx.Menu()
        file_menu.Append(ID_LoadXml, "Load Xml")
        file_menu.Append(ID_SaveXml, "Save Xml")
        file_menu.Append(wx.ID_EXIT, "Exit")

        self._perspectives_menu = wx.Menu()
        self._perspectives_menu.Append(ID_CreatePerspective,
                                       "Create Perspective")
        self._perspectives_menu.AppendSeparator()
        self._perspectives_menu.Append(ID_FirstPerspective + 0,
                                       "Default Startup")

        help_menu = wx.Menu()
        help_menu.Append(ID_About, "About...")

        mb.Append(file_menu, "File")
        mb.Append(self._perspectives_menu, "Perspectives")
        mb.Append(help_menu, "Help")

        self.SetMenuBar(mb)

        self.statusbar = self.CreateStatusBar(2, wx.ST_SIZEGRIP)
        self.statusbar.SetStatusWidths([-2, -3])
        self.statusbar.SetStatusText("Ready", 0)
        self.statusbar.SetStatusText("Welcome To mplotlab!", 1)

        # add a bunch of panes
        self._mgr.AddPane(
            self.__configPanel,
            wx.aui.AuiPaneInfo().Name("configPanel").Caption("configPanelC").
            Left().Layer(1).Position(2).CloseButton(True).MaximizeButton(True))

        self._mgr.AddPane(
            self.__shellPanel,
            wx.aui.AuiPaneInfo().Name("shellPanel").Caption(
                "shellPanelC").Bottom().Layer(1).Position(1).CloseButton(
                    True).MaximizeButton(True))

        self._mgr.AddPane(
            self.__treePanel,
            wx.aui.AuiPaneInfo().Caption("treePanel").Caption("treePanelC").
            Left().Layer(1).Position(1).CloseButton(True).MaximizeButton(True))

        # create some center panes
        self._mgr.AddPane(
            self.__graphicBook,
            wx.aui.AuiPaneInfo().CenterPane().Name("graphicBook").Caption(
                "graphicBookC").Center().Floatable(True).CloseButton(
                    False).MaximizeButton(True))

        # make some default perspectives
        perspective_default = self._mgr.SavePerspective()
        self._perspectives.append(perspective_default)

        # "commit" all changes made to FrameManager
        self._mgr.Update()

        self.Bind(wx.EVT_ERASE_BACKGROUND, self.OnEraseBackground)
        self.Bind(wx.EVT_SIZE, self.OnSize)
        self.Bind(wx.EVT_CLOSE, self.OnClose)

        # menuBar
        self.Bind(wx.EVT_MENU, self.OnLoadXml, id=ID_LoadXml)
        self.Bind(wx.EVT_MENU, self.OnSaveXml, id=ID_SaveXml)
        self.Bind(wx.EVT_MENU,
                  self.OnCreatePerspective,
                  id=ID_CreatePerspective)
        self.Bind(wx.EVT_MENU, self.OnExit, id=wx.ID_EXIT)
        self.Bind(wx.EVT_MENU, self.OnAbout, id=ID_About)
        self.Bind(wx.EVT_MENU_RANGE,
                  self.OnRestorePerspective,
                  id=ID_FirstPerspective,
                  id2=ID_FirstPerspective + 1000)