1059 self.TabsOpened.SetSelection(new_index) |
1059 self.TabsOpened.SetSelection(new_index) |
1060 if not self.Debug: |
1060 if not self.Debug: |
1061 tagname = self.TabsOpened.GetPage(new_index).GetTagName() |
1061 tagname = self.TabsOpened.GetPage(new_index).GetTagName() |
1062 self.VariablePanelIndexer.ChangeVariablePanel(tagname) |
1062 self.VariablePanelIndexer.ChangeVariablePanel(tagname) |
1063 self._Refresh(TOOLBAR, FILEMENU, EDITMENU) |
1063 self._Refresh(TOOLBAR, FILEMENU, EDITMENU) |
1064 event.Skip() |
|
1065 |
1064 |
1066 def OnCloseProjectMenu(self, event): |
1065 def OnCloseProjectMenu(self, event): |
1067 if not self.CheckSaveBeforeClosing(): |
1066 if not self.CheckSaveBeforeClosing(): |
1068 return |
1067 return |
1069 self.DeleteAllPages() |
1068 self.DeleteAllPages() |
1077 def OnSaveProjectMenu(self, event): |
1076 def OnSaveProjectMenu(self, event): |
1078 if not self.ModeSolo and getattr(self, "_onsave", None) != None: |
1077 if not self.ModeSolo and getattr(self, "_onsave", None) != None: |
1079 self._onsave() |
1078 self._onsave() |
1080 else: |
1079 else: |
1081 self.SaveProject() |
1080 self.SaveProject() |
1082 event.Skip() |
|
1083 |
1081 |
1084 def OnSaveProjectAsMenu(self, event): |
1082 def OnSaveProjectAsMenu(self, event): |
1085 self.SaveProjectAs() |
1083 self.SaveProjectAs() |
1086 event.Skip() |
|
1087 |
1084 |
1088 def OnGenerateProgramMenu(self, event): |
1085 def OnGenerateProgramMenu(self, event): |
1089 dialog = wx.FileDialog(self, _("Choose a file"), os.getcwd(), self.Controler.GetProgramFilePath(), _("ST files (*.st)|*.st|All files|*.*"), wx.SAVE|wx.CHANGE_DIR) |
1086 dialog = wx.FileDialog(self, _("Choose a file"), os.getcwd(), self.Controler.GetProgramFilePath(), _("ST files (*.st)|*.st|All files|*.*"), wx.SAVE|wx.CHANGE_DIR) |
1090 if dialog.ShowModal() == wx.ID_OK: |
1087 if dialog.ShowModal() == wx.ID_OK: |
1091 filepath = dialog.GetPath() |
1088 filepath = dialog.GetPath() |
1138 dialog = wx.PageSetupDialog(self, self.PageSetupData) |
1135 dialog = wx.PageSetupDialog(self, self.PageSetupData) |
1139 if dialog.ShowModal() == wx.ID_OK: |
1136 if dialog.ShowModal() == wx.ID_OK: |
1140 self.PageSetupData = wx.PageSetupDialogData(dialog.GetPageSetupData()) |
1137 self.PageSetupData = wx.PageSetupDialogData(dialog.GetPageSetupData()) |
1141 self.PrintData = wx.PrintData(self.PageSetupData.GetPrintData()) |
1138 self.PrintData = wx.PrintData(self.PageSetupData.GetPrintData()) |
1142 dialog.Destroy() |
1139 dialog.Destroy() |
1143 event.Skip() |
|
1144 |
1140 |
1145 def OnPreviewMenu(self, event): |
1141 def OnPreviewMenu(self, event): |
1146 selected = self.TabsOpened.GetSelection() |
1142 selected = self.TabsOpened.GetSelection() |
1147 if selected != -1: |
1143 if selected != -1: |
1148 data = wx.PrintDialogData(self.PrintData) |
1144 data = wx.PrintDialogData(self.PrintData) |
1157 preview_frame = wx.PreviewFrame(preview, self, _("Print preview")) |
1153 preview_frame = wx.PreviewFrame(preview, self, _("Print preview")) |
1158 |
1154 |
1159 preview_frame.Initialize() |
1155 preview_frame.Initialize() |
1160 |
1156 |
1161 preview_frame.Show(True) |
1157 preview_frame.Show(True) |
1162 event.Skip() |
|
1163 |
1158 |
1164 def OnPrintMenu(self, event): |
1159 def OnPrintMenu(self, event): |
1165 selected = self.TabsOpened.GetSelection() |
1160 selected = self.TabsOpened.GetSelection() |
1166 if selected != -1: |
1161 if selected != -1: |
1167 dialog_data = wx.PrintDialogData(self.PrintData) |
1162 dialog_data = wx.PrintDialogData(self.PrintData) |
1173 printout = GraphicPrintout(self.TabsOpened.GetPage(selected), page_size, margins) |
1168 printout = GraphicPrintout(self.TabsOpened.GetPage(selected), page_size, margins) |
1174 |
1169 |
1175 if not printer.Print(self, printout, True): |
1170 if not printer.Print(self, printout, True): |
1176 self.ShowErrorMessage(_("There was a problem printing.\nPerhaps your current printer is not set correctly?")) |
1171 self.ShowErrorMessage(_("There was a problem printing.\nPerhaps your current printer is not set correctly?")) |
1177 printout.Destroy() |
1172 printout.Destroy() |
1178 event.Skip() |
|
1179 |
1173 |
1180 def OnPropertiesMenu(self, event): |
1174 def OnPropertiesMenu(self, event): |
1181 self.ShowProperties() |
1175 self.ShowProperties() |
1182 event.Skip() |
|
1183 |
1176 |
1184 def OnQuitMenu(self, event): |
1177 def OnQuitMenu(self, event): |
1185 self.Close() |
1178 self.Close() |
1186 # don't call event.Skip() here or it will attempt to close the |
|
1187 # frame twice for some reason |
|
1188 |
1179 |
1189 |
1180 |
1190 #------------------------------------------------------------------------------- |
1181 #------------------------------------------------------------------------------- |
1191 # Edit Menu Functions |
1182 # Edit Menu Functions |
1192 #------------------------------------------------------------------------------- |
1183 #------------------------------------------------------------------------------- |
1237 self.Controler.LoadPrevious() |
1228 self.Controler.LoadPrevious() |
1238 self.CloseTabsWithoutModel() |
1229 self.CloseTabsWithoutModel() |
1239 self.RefreshEditor() |
1230 self.RefreshEditor() |
1240 self._Refresh(TITLE, EDITMENU, TYPESTREE, INSTANCESTREE, LIBRARYTREE, |
1231 self._Refresh(TITLE, EDITMENU, TYPESTREE, INSTANCESTREE, LIBRARYTREE, |
1241 SCALING) |
1232 SCALING) |
1242 event.Skip() |
|
1243 |
1233 |
1244 def OnRedoMenu(self, event): |
1234 def OnRedoMenu(self, event): |
1245 self.Controler.LoadNext() |
1235 self.Controler.LoadNext() |
1246 self.CloseTabsWithoutModel() |
1236 self.CloseTabsWithoutModel() |
1247 self.RefreshEditor() |
1237 self.RefreshEditor() |
1248 self._Refresh(TITLE, EDITMENU, TYPESTREE, INSTANCESTREE, LIBRARYTREE, |
1238 self._Refresh(TITLE, EDITMENU, TYPESTREE, INSTANCESTREE, LIBRARYTREE, |
1249 SCALING) |
1239 SCALING) |
1250 event.Skip() |
|
1251 |
1240 |
1252 def OnEnableUndoRedoMenu(self, event): |
1241 def OnEnableUndoRedoMenu(self, event): |
1253 self.Controler.EnableProjectBuffer(event.IsChecked()) |
1242 self.Controler.EnableProjectBuffer(event.IsChecked()) |
1254 self.RefreshEditMenu() |
1243 self.RefreshEditMenu() |
1255 event.Skip() |
|
1256 |
1244 |
1257 OnCutMenu = GetShortcutKeyCallbackFunction("Cut") |
1245 OnCutMenu = GetShortcutKeyCallbackFunction("Cut") |
1258 OnCopyMenu = GetShortcutKeyCallbackFunction("Copy") |
1246 OnCopyMenu = GetShortcutKeyCallbackFunction("Copy") |
1259 OnPasteMenu = GetShortcutKeyCallbackFunction("Paste") |
1247 OnPasteMenu = GetShortcutKeyCallbackFunction("Paste") |
1260 |
1248 |
1264 control.SelectAll() |
1252 control.SelectAll() |
1265 elif isinstance(control, wx.TextCtrl): |
1253 elif isinstance(control, wx.TextCtrl): |
1266 control.SetSelection(0, control.GetLastPosition()) |
1254 control.SetSelection(0, control.GetLastPosition()) |
1267 elif isinstance(control, wx.ComboBox): |
1255 elif isinstance(control, wx.ComboBox): |
1268 control.SetMark(0, control.GetLastPosition() + 1) |
1256 control.SetMark(0, control.GetLastPosition() + 1) |
1269 event.Skip() |
|
1270 |
1257 |
1271 DeleteFunctions = { |
1258 DeleteFunctions = { |
1272 ITEM_DATATYPE: GetDeleteElementFunction(PLCControler.ProjectRemoveDataType, check_function=PLCControler.DataTypeIsUsed), |
1259 ITEM_DATATYPE: GetDeleteElementFunction(PLCControler.ProjectRemoveDataType, check_function=PLCControler.DataTypeIsUsed), |
1273 ITEM_POU: GetDeleteElementFunction(PLCControler.ProjectRemovePou, check_function=PLCControler.PouIsUsed), |
1260 ITEM_POU: GetDeleteElementFunction(PLCControler.ProjectRemovePou, check_function=PLCControler.PouIsUsed), |
1274 ITEM_TRANSITION: GetDeleteElementFunction(PLCControler.ProjectRemovePouTransition, ITEM_POU), |
1261 ITEM_TRANSITION: GetDeleteElementFunction(PLCControler.ProjectRemovePouTransition, ITEM_POU), |
1291 INSTANCESTREE, LIBRARYTREE) |
1278 INSTANCESTREE, LIBRARYTREE) |
1292 elif isinstance(window, (Viewer, TextViewer)): |
1279 elif isinstance(window, (Viewer, TextViewer)): |
1293 event = wx.KeyEvent(wx.EVT_CHAR._getEvtType()) |
1280 event = wx.KeyEvent(wx.EVT_CHAR._getEvtType()) |
1294 event.m_keyCode = wx.WXK_DELETE |
1281 event.m_keyCode = wx.WXK_DELETE |
1295 window.ProcessEvent(event) |
1282 window.ProcessEvent(event) |
1296 event.Skip() |
|
1297 |
1283 |
1298 |
1284 |
1299 #------------------------------------------------------------------------------- |
1285 #------------------------------------------------------------------------------- |
1300 # Display Menu Functions |
1286 # Display Menu Functions |
1301 #------------------------------------------------------------------------------- |
1287 #------------------------------------------------------------------------------- |
1327 self.DisplayMenu.Enable(wx.ID_CLEAR, False) |
1313 self.DisplayMenu.Enable(wx.ID_CLEAR, False) |
1328 self.DisplayMenu.Enable(wx.ID_ZOOM_FIT, False) |
1314 self.DisplayMenu.Enable(wx.ID_ZOOM_FIT, False) |
1329 |
1315 |
1330 def OnRefreshMenu(self, event): |
1316 def OnRefreshMenu(self, event): |
1331 self.RefreshEditor(not self.Debug) |
1317 self.RefreshEditor(not self.Debug) |
1332 event.Skip() |
|
1333 |
1318 |
1334 def OnClearErrorsMenu(self, event): |
1319 def OnClearErrorsMenu(self, event): |
1335 self.ClearErrors() |
1320 self.ClearErrors() |
1336 event.Skip() |
|
1337 |
1321 |
1338 def GenerateZoomFunction(self, idx): |
1322 def GenerateZoomFunction(self, idx): |
1339 def ZoomFunction(event): |
1323 def ZoomFunction(event): |
1340 selected = self.TabsOpened.GetSelection() |
1324 selected = self.TabsOpened.GetSelection() |
1341 if selected != -1: |
1325 if selected != -1: |
2384 self.Controler.ProjectAddDataType(dialog.GetValue()) |
2368 self.Controler.ProjectAddDataType(dialog.GetValue()) |
2385 self.RefreshTitle() |
2369 self.RefreshTitle() |
2386 self.RefreshEditMenu() |
2370 self.RefreshEditMenu() |
2387 self.RefreshTypesTree() |
2371 self.RefreshTypesTree() |
2388 dialog.Destroy() |
2372 dialog.Destroy() |
2389 event.Skip() |
|
2390 |
2373 |
2391 def GenerateAddPouFunction(self, pou_type): |
2374 def GenerateAddPouFunction(self, pou_type): |
2392 def OnAddPouMenu(event): |
2375 def OnAddPouMenu(event): |
2393 dialog = PouDialog(self, pou_type) |
2376 dialog = PouDialog(self, pou_type) |
2394 dialog.SetPouNames(self.Controler.GetProjectPouNames(self.Debug)) |
2377 dialog.SetPouNames(self.Controler.GetProjectPouNames(self.Debug)) |
2399 self.RefreshTitle() |
2382 self.RefreshTitle() |
2400 self.RefreshEditMenu() |
2383 self.RefreshEditMenu() |
2401 self.RefreshTypesTree() |
2384 self.RefreshTypesTree() |
2402 self.RefreshLibraryTree() |
2385 self.RefreshLibraryTree() |
2403 dialog.Destroy() |
2386 dialog.Destroy() |
2404 event.Skip() |
|
2405 return OnAddPouMenu |
2387 return OnAddPouMenu |
2406 |
2388 |
2407 def GenerateAddTransitionFunction(self, pou_name): |
2389 def GenerateAddTransitionFunction(self, pou_name): |
2408 def OnAddTransitionMenu(event): |
2390 def OnAddTransitionMenu(event): |
2409 dialog = PouTransitionDialog(self) |
2391 dialog = PouTransitionDialog(self) |
2414 self.Controler.ProjectAddPouTransition(pou_name, values["transitionName"], values["language"]) |
2396 self.Controler.ProjectAddPouTransition(pou_name, values["transitionName"], values["language"]) |
2415 self.RefreshTitle() |
2397 self.RefreshTitle() |
2416 self.RefreshEditMenu() |
2398 self.RefreshEditMenu() |
2417 self.RefreshTypesTree() |
2399 self.RefreshTypesTree() |
2418 dialog.Destroy() |
2400 dialog.Destroy() |
2419 event.Skip() |
|
2420 return OnAddTransitionMenu |
2401 return OnAddTransitionMenu |
2421 |
2402 |
2422 def GenerateAddActionFunction(self, pou_name): |
2403 def GenerateAddActionFunction(self, pou_name): |
2423 def OnAddActionMenu(event): |
2404 def OnAddActionMenu(event): |
2424 dialog = PouActionDialog(self) |
2405 dialog = PouActionDialog(self) |
2429 self.Controler.ProjectAddPouAction(pou_name, values["actionName"], values["language"]) |
2410 self.Controler.ProjectAddPouAction(pou_name, values["actionName"], values["language"]) |
2430 self.RefreshTitle() |
2411 self.RefreshTitle() |
2431 self.RefreshEditMenu() |
2412 self.RefreshEditMenu() |
2432 self.RefreshTypesTree() |
2413 self.RefreshTypesTree() |
2433 dialog.Destroy() |
2414 dialog.Destroy() |
2434 event.Skip() |
|
2435 return OnAddActionMenu |
2415 return OnAddActionMenu |
2436 |
2416 |
2437 def OnAddConfigurationMenu(self, event): |
2417 def OnAddConfigurationMenu(self, event): |
2438 dialog = ConfigurationNameDialog(self, _("Please enter configuration name"), _("Add new configuration")) |
2418 dialog = ConfigurationNameDialog(self, _("Please enter configuration name"), _("Add new configuration")) |
2439 dialog.SetPouNames(self.Controler.GetProjectPouNames(self.Debug)) |
2419 dialog.SetPouNames(self.Controler.GetProjectPouNames(self.Debug)) |
2444 self.RefreshTitle() |
2424 self.RefreshTitle() |
2445 self.RefreshEditMenu() |
2425 self.RefreshEditMenu() |
2446 self.RefreshTypesTree() |
2426 self.RefreshTypesTree() |
2447 self.RefreshInstancesTree() |
2427 self.RefreshInstancesTree() |
2448 dialog.Destroy() |
2428 dialog.Destroy() |
2449 event.Skip() |
|
2450 |
2429 |
2451 def GenerateAddResourceFunction(self, config_name): |
2430 def GenerateAddResourceFunction(self, config_name): |
2452 def OnAddResourceMenu(event): |
2431 def OnAddResourceMenu(event): |
2453 dialog = ResourceNameDialog(self, _("Please enter resource name"), _("Add new resource")) |
2432 dialog = ResourceNameDialog(self, _("Please enter resource name"), _("Add new resource")) |
2454 dialog.SetPouNames(self.Controler.GetProjectPouNames(self.Debug)) |
2433 dialog.SetPouNames(self.Controler.GetProjectPouNames(self.Debug)) |
2459 self.RefreshTitle() |
2438 self.RefreshTitle() |
2460 self.RefreshEditMenu() |
2439 self.RefreshEditMenu() |
2461 self.RefreshTypesTree() |
2440 self.RefreshTypesTree() |
2462 self.RefreshInstancesTree() |
2441 self.RefreshInstancesTree() |
2463 dialog.Destroy() |
2442 dialog.Destroy() |
2464 event.Skip() |
|
2465 return OnAddResourceMenu |
2443 return OnAddResourceMenu |
2466 |
2444 |
2467 def GenerateChangePouTypeFunction(self, name, new_type): |
2445 def GenerateChangePouTypeFunction(self, name, new_type): |
2468 def OnChangePouTypeMenu(event): |
2446 def OnChangePouTypeMenu(event): |
2469 selected = self.TypesTree.GetSelection() |
2447 selected = self.TypesTree.GetSelection() |