66 from plugger import PluginsRoot |
66 from plugger import PluginsRoot |
67 |
67 |
68 SCROLLBAR_UNIT = 10 |
68 SCROLLBAR_UNIT = 10 |
69 WINDOW_COLOUR = wx.Colour(240,240,240) |
69 WINDOW_COLOUR = wx.Colour(240,240,240) |
70 TITLE_COLOUR = wx.Colour(200,200,220) |
70 TITLE_COLOUR = wx.Colour(200,200,220) |
|
71 CHANGED_TITLE_COLOUR = wx.Colour(220,200,220) |
|
72 CHANGED_WINDOW_COLOUR = wx.Colour(255,240,240) |
71 |
73 |
72 if wx.Platform == '__WXMSW__': |
74 if wx.Platform == '__WXMSW__': |
73 faces = { 'times': 'Times New Roman', |
75 faces = { 'times': 'Times New Roman', |
74 'mono' : 'Courier New', |
76 'mono' : 'Courier New', |
75 'helv' : 'Arial', |
77 'helv' : 'Arial', |
320 style=wx.DEFAULT_FRAME_STYLE|wx.CLIP_CHILDREN, title=u'Beremiz') |
322 style=wx.DEFAULT_FRAME_STYLE|wx.CLIP_CHILDREN, title=u'Beremiz') |
321 self._init_utils() |
323 self._init_utils() |
322 self.SetClientSize(wx.Size(1000, 600)) |
324 self.SetClientSize(wx.Size(1000, 600)) |
323 self.SetMenuBar(self.menuBar1) |
325 self.SetMenuBar(self.menuBar1) |
324 self.Bind(wx.EVT_ACTIVATE, self.OnFrameActivated) |
326 self.Bind(wx.EVT_ACTIVATE, self.OnFrameActivated) |
|
327 self.Bind(wx.EVT_CLOSE, self.OnCloseFrame) |
325 |
328 |
326 if wx.VERSION < (2, 8, 0): |
329 if wx.VERSION < (2, 8, 0): |
327 self.MainSplitter = wx.SplitterWindow(id=ID_BEREMIZMAINSPLITTER, |
330 self.MainSplitter = wx.SplitterWindow(id=ID_BEREMIZMAINSPLITTER, |
328 name='MainSplitter', parent=self, point=wx.Point(0, 0), |
331 name='MainSplitter', parent=self, point=wx.Point(0, 0), |
329 size=wx.Size(0, 0), style=wx.SP_3D) |
332 size=wx.Size(0, 0), style=wx.SP_3D) |
382 self.PluginRoot.LoadProject(projectOpen, self.Log) |
385 self.PluginRoot.LoadProject(projectOpen, self.Log) |
383 self.RefreshPLCParams() |
386 self.RefreshPLCParams() |
384 self.RefreshPluginTree() |
387 self.RefreshPluginTree() |
385 |
388 |
386 self.RefreshMainMenu() |
389 self.RefreshMainMenu() |
|
390 |
|
391 def OnCloseFrame(self, event): |
|
392 if self.PluginRoot.HasProjectOpened(): |
|
393 if self.PluginRoot.runningPLC is not None: |
|
394 wx.MessageBox("Please stop any running PLC before closing") |
|
395 event.Veto() |
|
396 return |
|
397 if self.PluginRoot.ProjectTestModified(): |
|
398 self.PluginRoot.SaveProject() |
|
399 wx.MessageBox("Project saved") |
|
400 event.Skip() |
387 |
401 |
388 def OnMoveWindow(self, event): |
402 def OnMoveWindow(self, event): |
389 self.GetBestSize() |
403 self.GetBestSize() |
390 self.RefreshScrollBars() |
404 self.RefreshScrollBars() |
391 event.Skip() |
405 event.Skip() |
420 |
434 |
421 def RefreshPLCParams(self): |
435 def RefreshPLCParams(self): |
422 self.Freeze() |
436 self.Freeze() |
423 self.ClearSizer(self.PLCParamsSizer) |
437 self.ClearSizer(self.PLCParamsSizer) |
424 |
438 |
425 if self.PluginRoot.HasProjectOpened(): |
439 if self.PluginRoot.HasProjectOpened(): |
426 plcwindow = wx.Panel(self.PLCConfig, -1, size=wx.Size(-1, -1)) |
440 plcwindow = wx.Panel(self.PLCConfig, -1, size=wx.Size(-1, -1)) |
|
441 if self.PluginRoot.PlugTestModified(): |
|
442 bkgdclr = CHANGED_TITLE_COLOUR |
|
443 else: |
|
444 bkgdclr = TITLE_COLOUR |
427 plcwindow.SetBackgroundColour(TITLE_COLOUR) |
445 plcwindow.SetBackgroundColour(TITLE_COLOUR) |
428 self.PLCParamsSizer.AddWindow(plcwindow, 0, border=0, flag=wx.GROW) |
446 self.PLCParamsSizer.AddWindow(plcwindow, 0, border=0, flag=wx.GROW) |
429 |
447 |
430 plcwindowsizer = wx.BoxSizer(wx.HORIZONTAL) |
448 plcwindowsizer = wx.BoxSizer(wx.HORIZONTAL) |
431 plcwindow.SetSizer(plcwindowsizer) |
449 plcwindow.SetSizer(plcwindowsizer) |
539 |
559 |
540 def RefreshPluginTree(self): |
560 def RefreshPluginTree(self): |
541 self.Freeze() |
561 self.Freeze() |
542 self.ClearSizer(self.PluginTreeSizer) |
562 self.ClearSizer(self.PluginTreeSizer) |
543 if self.PluginRoot.HasProjectOpened(): |
563 if self.PluginRoot.HasProjectOpened(): |
544 index = [0] |
|
545 for child in self.PluginRoot.IECSortedChilds(): |
564 for child in self.PluginRoot.IECSortedChilds(): |
546 self.GenerateTreeBranch(child, index) |
565 self.GenerateTreeBranch(child) |
547 if not self.PluginInfos[child]["expanded"]: |
566 if not self.PluginInfos[child]["expanded"]: |
548 self.CollapsePlugin(child) |
567 self.CollapsePlugin(child) |
549 self.PLCConfigMainSizer.Layout() |
568 self.PLCConfigMainSizer.Layout() |
550 self.RefreshScrollBars() |
569 self.RefreshScrollBars() |
551 self.Thaw() |
570 self.Thaw() |
552 |
571 |
|
572 def SetPluginParamsAttribute(self, plugin, *args, **kwargs): |
|
573 res, StructChanged = plugin.SetParamsAttribute(*args, **kwargs) |
|
574 if StructChanged: |
|
575 wx.CallAfter(self.RefreshPluginTree) |
|
576 else: |
|
577 if plugin == self.PluginRoot: |
|
578 bkgdclr = CHANGED_TITLE_COLOUR |
|
579 items = ["main", "params"] |
|
580 else: |
|
581 bkgdclr = CHANGED_WINDOW_COLOUR |
|
582 items = ["left", "middle", "params"] |
|
583 for i in items: |
|
584 self.PluginInfos[plugin][i].SetBackgroundColour(bkgdclr) |
|
585 self.PluginInfos[plugin][i].Refresh() |
|
586 return res |
|
587 |
553 def ExpandPlugin(self, plugin, force = False): |
588 def ExpandPlugin(self, plugin, force = False): |
554 for child in self.PluginInfos[plugin]["children"]: |
589 for child in self.PluginInfos[plugin]["children"]: |
555 self.PluginTreeSizer.Show(self.PluginInfos[child]["left"]) |
590 self.PluginInfos[child]["left"].Show() |
556 self.PluginTreeSizer.Show(self.PluginInfos[child]["middle"]) |
591 self.PluginInfos[child]["middle"].Show() |
557 # self.PluginTreeSizer.Show(self.PluginInfos[child]["right"]) |
592 # self.PluginTreeSizer.Show(self.PluginInfos[child]["right"]) |
558 if force or not self.PluginInfos[child]["expanded"]: |
593 if force or not self.PluginInfos[child]["expanded"]: |
559 self.ExpandPlugin(child, force) |
594 self.ExpandPlugin(child, force) |
560 if force: |
595 if force: |
561 self.PluginInfos[child]["expanded"] = True |
596 self.PluginInfos[child]["expanded"] = True |
562 |
597 |
563 def CollapsePlugin(self, plugin, force = False): |
598 def CollapsePlugin(self, plugin, force = False): |
564 for child in self.PluginInfos[plugin]["children"]: |
599 for child in self.PluginInfos[plugin]["children"]: |
565 self.PluginTreeSizer.Hide(self.PluginInfos[child]["left"]) |
600 self.PluginInfos[child]["left"].Hide() |
566 self.PluginTreeSizer.Hide(self.PluginInfos[child]["middle"]) |
601 self.PluginInfos[child]["middle"].Hide() |
567 # self.PluginTreeSizer.Hide(self.PluginInfos[child]["right"]) |
602 # self.PluginTreeSizer.Hide(self.PluginInfos[child]["right"]) |
568 if force or self.PluginInfos[child]["expanded"]: |
603 if force or self.PluginInfos[child]["expanded"]: |
569 self.CollapsePlugin(child, force) |
604 self.CollapsePlugin(child, force) |
570 if force: |
605 if force: |
571 self.PluginInfos[child]["expanded"] = False |
606 self.PluginInfos[child]["expanded"] = False |
572 |
607 |
573 def GenerateTreeBranch(self, plugin, index): |
608 def GenerateTreeBranch(self, plugin): |
574 leftwindow = wx.Panel(self.PLCConfig, -1, size=wx.Size(-1, -1)) |
609 leftwindow = wx.Panel(self.PLCConfig, -1, size=wx.Size(-1, -1)) |
575 leftwindow.SetBackgroundColour(WINDOW_COLOUR) |
610 if plugin.PlugTestModified(): |
|
611 bkgdclr=CHANGED_WINDOW_COLOUR |
|
612 else: |
|
613 bkgdclr=WINDOW_COLOUR |
|
614 |
|
615 leftwindow.SetBackgroundColour(bkgdclr) |
576 |
616 |
577 if plugin not in self.PluginInfos: |
617 if plugin not in self.PluginInfos: |
578 self.PluginInfos[plugin] = {"expanded" : False, "left_visible" : False, "middle_visible" : False} |
618 self.PluginInfos[plugin] = {"expanded" : False, "left_visible" : False, "middle_visible" : False} |
579 |
619 |
580 self.PluginInfos[plugin]["children"] = plugin.IECSortedChilds() |
620 self.PluginInfos[plugin]["children"] = plugin.IECSortedChilds() |
605 enablebutton.SetToolTipString("Enable/Disable this plugin") |
645 enablebutton.SetToolTipString("Enable/Disable this plugin") |
606 make_genbitmaptogglebutton_flat(enablebutton) |
646 make_genbitmaptogglebutton_flat(enablebutton) |
607 enablebutton.SetBitmapSelected(wx.Bitmap(os.path.join(CWD, 'images', 'Enabled.png'))) |
647 enablebutton.SetBitmapSelected(wx.Bitmap(os.path.join(CWD, 'images', 'Enabled.png'))) |
608 enablebutton.SetToggle(plugin.MandatoryParams[1].getEnabled()) |
648 enablebutton.SetToggle(plugin.MandatoryParams[1].getEnabled()) |
609 def toggleenablebutton(event): |
649 def toggleenablebutton(event): |
610 res, StructChanged = plugin.SetParamsAttribute("BaseParams.Enabled", enablebutton.GetToggle(), self.Log) |
650 res = self.SetPluginParamsAttribute(plugin, "BaseParams.Enabled", enablebutton.GetToggle(), self.Log) |
611 if StructChanged: wx.CallAfter(self.RefreshPluginTree) |
|
612 enablebutton.SetToggle(res) |
651 enablebutton.SetToggle(res) |
613 event.Skip() |
652 event.Skip() |
614 enablebutton.Bind(wx.EVT_BUTTON, toggleenablebutton, id=enablebutton_id) |
653 enablebutton.Bind(wx.EVT_BUTTON, toggleenablebutton, id=enablebutton_id) |
615 rolesizer.AddWindow(enablebutton, 0, border=0, flag=wx.RIGHT|wx.ALIGN_CENTER_VERTICAL) |
654 rolesizer.AddWindow(enablebutton, 0, border=0, flag=wx.RIGHT|wx.ALIGN_CENTER_VERTICAL) |
616 |
655 |
688 event.Skip() |
727 event.Skip() |
689 expandbutton.Bind(wx.EVT_BUTTON, togglebutton, id=expandbutton_id) |
728 expandbutton.Bind(wx.EVT_BUTTON, togglebutton, id=expandbutton_id) |
690 leftbuttonsizer.AddWindow(expandbutton, 0, border=5, flag=wx.RIGHT|wx.ALIGN_CENTER_VERTICAL) |
729 leftbuttonsizer.AddWindow(expandbutton, 0, border=5, flag=wx.RIGHT|wx.ALIGN_CENTER_VERTICAL) |
691 |
730 |
692 tc_id = wx.NewId() |
731 tc_id = wx.NewId() |
693 tc = wx.TextCtrl(leftwindow, tc_id, size=wx.Size(150, 35), style=wx.TE_PROCESS_ENTER|wx.NO_BORDER) |
732 tc = wx.TextCtrl(leftwindow, tc_id, size=wx.Size(150, 35), style=wx.NO_BORDER) |
694 tc.SetFont(wx.Font(faces["size"] * 0.75, wx.DEFAULT, wx.NORMAL, wx.BOLD, faceName = faces["helv"])) |
733 tc.SetFont(wx.Font(faces["size"] * 0.75, wx.DEFAULT, wx.NORMAL, wx.BOLD, faceName = faces["helv"])) |
695 tc.SetValue(plugin.MandatoryParams[1].getName()) |
734 tc.SetValue(plugin.MandatoryParams[1].getName()) |
696 tc.Bind(wx.EVT_TEXT_ENTER, self.GetTextCtrlCallBackFunction(tc, plugin, "BaseParams.Name"), id=tc_id) |
735 tc.Bind(wx.EVT_KILL_FOCUS, self.GetTextCtrlCallBackFunction(tc, plugin, "BaseParams.Name"), id=tc_id) |
697 leftbuttonsizer.AddWindow(tc, 0, border=5, flag=wx.RIGHT|wx.ALIGN_CENTER_VERTICAL) |
736 leftbuttonsizer.AddWindow(tc, 0, border=5, flag=wx.RIGHT|wx.ALIGN_CENTER_VERTICAL) |
698 |
737 |
699 |
738 |
700 leftminimizebutton_id = wx.NewId() |
739 leftminimizebutton_id = wx.NewId() |
701 leftminimizebutton = wx.lib.buttons.GenBitmapToggleButton(id=leftminimizebutton_id, bitmap=wx.Bitmap(os.path.join(CWD, 'images', 'ShowVars.png')), |
740 leftminimizebutton = wx.lib.buttons.GenBitmapToggleButton(id=leftminimizebutton_id, bitmap=wx.Bitmap(os.path.join(CWD, 'images', 'ShowVars.png')), |
724 lb.Hide() |
763 lb.Hide() |
725 self.PluginInfos[plugin]["variable_list"] = lb |
764 self.PluginInfos[plugin]["variable_list"] = lb |
726 leftwindowsizer.AddWindow(lb, 0, border=5, flag=wx.GROW|wx.LEFT|wx.RIGHT|wx.BOTTOM) |
765 leftwindowsizer.AddWindow(lb, 0, border=5, flag=wx.GROW|wx.LEFT|wx.RIGHT|wx.BOTTOM) |
727 |
766 |
728 middlewindow = wx.Panel(self.PLCConfig, -1, size=wx.Size(-1, -1)) |
767 middlewindow = wx.Panel(self.PLCConfig, -1, size=wx.Size(-1, -1)) |
729 middlewindow.SetBackgroundColour(wx.Colour(240,240,240)) |
768 middlewindow.SetBackgroundColour(bkgdclr) |
730 |
769 |
731 self.PluginTreeSizer.AddWindow(middlewindow, 0, border=0, flag=wx.GROW) |
770 self.PluginTreeSizer.AddWindow(middlewindow, 0, border=0, flag=wx.GROW) |
732 |
771 |
733 middlewindowmainsizer = wx.BoxSizer(wx.VERTICAL) |
772 middlewindowmainsizer = wx.BoxSizer(wx.VERTICAL) |
734 middlewindow.SetSizer(middlewindowmainsizer) |
773 middlewindow.SetSizer(middlewindowmainsizer) |
743 |
782 |
744 middleparamssizer = wx.BoxSizer(wx.HORIZONTAL) |
783 middleparamssizer = wx.BoxSizer(wx.HORIZONTAL) |
745 middlewindowsizer.AddSizer(middleparamssizer, 0, border=0, flag=wx.ALIGN_RIGHT) |
784 middlewindowsizer.AddSizer(middleparamssizer, 0, border=0, flag=wx.ALIGN_RIGHT) |
746 |
785 |
747 paramswindow = wx.Panel(middlewindow, -1, size=wx.Size(-1, -1)) |
786 paramswindow = wx.Panel(middlewindow, -1, size=wx.Size(-1, -1)) |
748 paramswindow.SetBackgroundColour(WINDOW_COLOUR) |
787 paramswindow.SetBackgroundColour(bkgdclr) |
749 |
788 |
750 psizer = wx.BoxSizer(wx.HORIZONTAL) |
789 psizer = wx.BoxSizer(wx.HORIZONTAL) |
751 paramswindow.SetSizer(psizer) |
790 paramswindow.SetSizer(psizer) |
|
791 self.PluginInfos[plugin]["params"] = paramswindow |
752 |
792 |
753 middleparamssizer.AddWindow(paramswindow, 0, border=5, flag=wx.ALL) |
793 middleparamssizer.AddWindow(paramswindow, 0, border=5, flag=wx.ALL) |
754 |
794 |
755 plugin_infos = plugin.GetParamsAttributes() |
795 plugin_infos = plugin.GetParamsAttributes() |
756 self.RefreshSizerElement(paramswindow, psizer, plugin, plugin_infos, None, False) |
796 self.RefreshSizerElement(paramswindow, psizer, plugin, plugin_infos, None, False) |
799 self.PLCConfigMainSizer.Layout() |
839 self.PLCConfigMainSizer.Layout() |
800 self.RefreshScrollBars() |
840 self.RefreshScrollBars() |
801 event.Skip() |
841 event.Skip() |
802 middleminimizebutton.Bind(wx.EVT_BUTTON, togglemiddlerightwindow, id=middleminimizebutton_id) |
842 middleminimizebutton.Bind(wx.EVT_BUTTON, togglemiddlerightwindow, id=middleminimizebutton_id) |
803 |
843 |
804 self.PluginInfos[plugin]["left"] = index[0] |
844 self.PluginInfos[plugin]["left"] = leftwindow |
805 self.PluginInfos[plugin]["middle"] = index[0] + 1 |
845 self.PluginInfos[plugin]["middle"] = middlewindow |
806 # self.PluginInfos[plugin]["right"] = index[0] + 2 |
846 # self.PluginInfos[plugin]["right"] = rightwindow |
807 # index[0] += 3 |
|
808 index[0] += 2 |
|
809 for child in self.PluginInfos[plugin]["children"]: |
847 for child in self.PluginInfos[plugin]["children"]: |
810 self.GenerateTreeBranch(child, index) |
848 self.GenerateTreeBranch(child) |
811 if not self.PluginInfos[child]["expanded"]: |
849 if not self.PluginInfos[child]["expanded"]: |
812 self.CollapsePlugin(child) |
850 self.CollapsePlugin(child) |
813 |
851 |
814 def RefreshVariableLists(self): |
852 def RefreshVariableLists(self): |
815 for plugin, infos in self.PluginInfos.items(): |
853 for plugin, infos in self.PluginInfos.items(): |
825 self.RefreshPLCParams() |
863 self.RefreshPLCParams() |
826 self.RefreshPluginTree() |
864 self.RefreshPluginTree() |
827 |
865 |
828 def GetItemChannelChangedFunction(self, plugin, value): |
866 def GetItemChannelChangedFunction(self, plugin, value): |
829 def OnPluginTreeItemChannelChanged(event): |
867 def OnPluginTreeItemChannelChanged(event): |
830 res, StructChanged = plugin.SetParamsAttribute("BaseParams.IEC_Channel", value, self.Log) |
868 res = self.SetPluginParamsAttribute(plugin, "BaseParams.IEC_Channel", value, self.Log) |
831 wx.CallAfter(self.RefreshPluginTree) |
|
832 event.Skip() |
869 event.Skip() |
833 return OnPluginTreeItemChannelChanged |
870 return OnPluginTreeItemChannelChanged |
834 |
871 |
835 def _GetAddPluginFunction(self, name, plugin): |
872 def _GetAddPluginFunction(self, name, plugin): |
836 def OnPluginMenu(event): |
873 def OnPluginMenu(event): |
864 event.Skip() |
901 event.Skip() |
865 return OnButtonClick |
902 return OnButtonClick |
866 |
903 |
867 def GetChoiceCallBackFunction(self, choicectrl, plugin, path): |
904 def GetChoiceCallBackFunction(self, choicectrl, plugin, path): |
868 def OnChoiceChanged(event): |
905 def OnChoiceChanged(event): |
869 res, StructChanged = plugin.SetParamsAttribute(path, choicectrl.GetStringSelection(), self.Log) |
906 res = self.SetPluginParamsAttribute(plugin, path, choicectrl.GetStringSelection(), self.Log) |
870 if StructChanged: wx.CallAfter(self.RefreshPluginTree) |
|
871 choicectrl.SetStringSelection(res) |
907 choicectrl.SetStringSelection(res) |
872 event.Skip() |
908 event.Skip() |
873 return OnChoiceChanged |
909 return OnChoiceChanged |
874 |
910 |
875 def GetChoiceContentCallBackFunction(self, choicectrl, staticboxsizer, plugin, path): |
911 def GetChoiceContentCallBackFunction(self, choicectrl, staticboxsizer, plugin, path): |
876 def OnChoiceContentChanged(event): |
912 def OnChoiceContentChanged(event): |
877 res, StructChanged = plugin.SetParamsAttribute(path, choicectrl.GetStringSelection(), self.Log) |
913 res = self.SetPluginParamsAttribute(plugin, path, choicectrl.GetStringSelection(), self.Log) |
878 if StructChanged: wx.CallAfter(self.RefreshPluginTree) |
|
879 choicectrl.SetStringSelection(res) |
914 choicectrl.SetStringSelection(res) |
880 infos = self.PluginRoot.GetParamsAttributes(path) |
915 infos = self.PluginRoot.GetParamsAttributes(path) |
881 staticbox = staticboxsizer.GetStaticBox() |
916 staticbox = staticboxsizer.GetStaticBox() |
882 staticbox.SetLabel("%(name)s - %(value)s"%infos) |
917 staticbox.SetLabel("%(name)s - %(value)s"%infos) |
883 if wx.VERSION < (2, 8, 0): |
918 if wx.VERSION < (2, 8, 0): |
891 event.Skip() |
926 event.Skip() |
892 return OnChoiceContentChanged |
927 return OnChoiceContentChanged |
893 |
928 |
894 def GetTextCtrlCallBackFunction(self, textctrl, plugin, path): |
929 def GetTextCtrlCallBackFunction(self, textctrl, plugin, path): |
895 def OnTextCtrlChanged(event): |
930 def OnTextCtrlChanged(event): |
896 res, StructChanged = plugin.SetParamsAttribute(path, textctrl.GetValue(), self.Log) |
931 res = self.SetPluginParamsAttribute(plugin, path, textctrl.GetValue(), self.Log) |
897 if StructChanged: wx.CallAfter(self.RefreshPluginTree) |
|
898 textctrl.SetValue(res) |
932 textctrl.SetValue(res) |
899 event.Skip() |
933 event.Skip() |
900 return OnTextCtrlChanged |
934 return OnTextCtrlChanged |
901 |
935 |
902 def GetCheckBoxCallBackFunction(self, chkbx, plugin, path): |
936 def GetCheckBoxCallBackFunction(self, chkbx, plugin, path): |
903 def OnCheckBoxChanged(event): |
937 def OnCheckBoxChanged(event): |
904 res, StructChanged = plugin.SetParamsAttribute(path, chkbx.IsChecked(), self.Log) |
938 res = self.SetPluginParamsAttribute(plugin, path, chkbx.IsChecked(), self.Log) |
905 if StructChanged: wx.CallAfter(self.RefreshPluginTree) |
|
906 chkbx.SetValue(res) |
939 chkbx.SetValue(res) |
907 event.Skip() |
940 event.Skip() |
908 return OnCheckBoxChanged |
941 return OnCheckBoxChanged |
909 |
942 |
910 def ClearSizer(self, sizer): |
943 def ClearSizer(self, sizer): |
1038 boxsizer.AddWindow(spinctrl, 0, border=0, flag=0) |
1071 boxsizer.AddWindow(spinctrl, 0, border=0, flag=0) |
1039 spinctrl.SetValue(element_infos["value"]) |
1072 spinctrl.SetValue(element_infos["value"]) |
1040 spinctrl.Bind(wx.EVT_SPINCTRL, self.GetTextCtrlCallBackFunction(spinctrl, plugin, element_path), id=id) |
1073 spinctrl.Bind(wx.EVT_SPINCTRL, self.GetTextCtrlCallBackFunction(spinctrl, plugin, element_path), id=id) |
1041 else: |
1074 else: |
1042 textctrl = wx.TextCtrl(id=id, name=element_infos["name"], parent=parent, |
1075 textctrl = wx.TextCtrl(id=id, name=element_infos["name"], parent=parent, |
1043 pos=wx.Point(0, 0), size=wx.Size(150, 25), style=wx.TE_PROCESS_ENTER) |
1076 pos=wx.Point(0, 0), size=wx.Size(150, 25), style=0)#wx.TE_PROCESS_ENTER) |
1044 boxsizer.AddWindow(textctrl, 0, border=0, flag=0) |
1077 boxsizer.AddWindow(textctrl, 0, border=0, flag=0) |
1045 textctrl.SetValue(str(element_infos["value"])) |
1078 textctrl.SetValue(str(element_infos["value"])) |
1046 textctrl.Bind(wx.EVT_TEXT_ENTER, self.GetTextCtrlCallBackFunction(textctrl, plugin, element_path), id=id) |
|
1047 textctrl.Bind(wx.EVT_KILL_FOCUS, self.GetTextCtrlCallBackFunction(textctrl, plugin, element_path)) |
1079 textctrl.Bind(wx.EVT_KILL_FOCUS, self.GetTextCtrlCallBackFunction(textctrl, plugin, element_path)) |
1048 first = False |
1080 first = False |
1049 |
1081 |
1050 def OnNewProjectMenu(self, event): |
1082 def OnNewProjectMenu(self, event): |
1051 defaultpath = self.PluginRoot.GetProjectPath() |
1083 defaultpath = self.PluginRoot.GetProjectPath() |