| 128 | |
| 129 | |
| 130 | class PanelManager(wx.aui.AuiManager): |
| 131 | |
| 132 | def __init__(self, frame): |
| 133 | wx.aui.AuiManager.__init__(self, frame) |
| 134 | self.startPerspective = self.SavePerspective() |
| 135 | |
| 136 | def _getPerspectiveName(self): |
| 137 | name = self.SavePerspective().split("=") |
| 138 | name = name[1].split(";") |
| 139 | name = name[0] |
| 140 | return name |
| 141 | |
| 142 | def getPerspective(self): |
| 143 | return self.SavePerspective().replace(self._getPerspectiveName(), "PERSPECTIVE_NAME") |
| 144 | |
| 145 | def savePosition(self): |
| 146 | playonlinux.SetSettings("PANEL_PERSPECTIVE", self.getPerspective()) |
| 147 | |
| 148 | def restorePosition(self): |
| 149 | self.startPerspective = self.SavePerspective() |
| 150 | |
| 151 | self.Update() |
| 152 | |
| 153 | try: |
| 154 | setting = playonlinux.GetSettings("PANEL_PERSPECTIVE") |
| 155 | if (setting.count("Actions") < 2 or setting.count("dock_size") < 2 or not "PERSPECTIVE_NAME" in setting): |
| 156 | self.LoadPerspective(self.startPerspective) |
| 157 | else: |
| 158 | setting = setting.replace("PERSPECTIVE_NAME", self._getPerspectiveName()) |
| 159 | if (setting != ""): |
| 160 | self.LoadPerspective(setting) |
| 161 | |
| 162 | except wx._core.PyAssertionError: |
| 163 | self.LoadPerspective(self.startPerspective) |
| 164 | |
| 165 | self.Update() |
| 166 | |
| 167 | def AddPane(self, data, settings): |
| 168 | wx.aui.AuiManager.AddPane(self, data, settings) |
| 169 | |
| 170 | def Destroy(self): |
| 171 | self.savePosition() |
| 172 | |
| 173 | |
| 174 | class MainWindow(wx.Frame): |