diff -r 7f7912ae5ee8 -r 87c925eaaa3a plugger.py --- a/plugger.py Sat Jan 17 02:34:45 2009 +0100 +++ b/plugger.py Sat Jan 17 02:36:46 2009 +0100 @@ -855,6 +855,10 @@ # define name for IEC raw code file return os.path.join(self.PlugPath(), "runtime.py") + def _getWXGLADEpath(self): + # define name for IEC raw code file + return os.path.join(self.PlugPath(), "hmi.wxg") + def GetLocations(self): locations = [] filepath = os.path.join(self._getBuildPath(),"LOCATED_VARIABLES.h") @@ -976,6 +980,14 @@ else: return None + def launch_wxglade(self,options, wait=False): + from wxglade import __file__ as fileName + path = os.path.dirname(fileName) + glade = os.path.join(path,'wxglade.py') + mode = {False:os.P_NOWAIT, True:os.P_WAIT}[wait] + print (mode,sys.executable,[sys.executable]+[glade]+options) + os.spawnv(mode,sys.executable,[sys.executable]+[glade]+options) + ####################################################################### # # C CODE GENERATION METHODS @@ -998,6 +1010,11 @@ pyfile=self._getPYTHONcodepath() if os.path.exists(pyfile): res += (("runtime.py", file(pyfile,"rb")),) + wxgfile=self._getWXGLADEpath() + if os.path.exists(wxgfile): + hmipyfile=os.path.join(self._getBuildPath(),"hmi.py") + self.launch_wxglade(['-o', hmipyfile, '-g','python', wxgfile], wait=True) + res += (("hmi.py", file(hmipyfile,"rb")),) return res @@ -1102,7 +1119,7 @@ python_eval_fb_list = [] for v in self._VariablesList : - if v["vartype"] == "FB" and v["type"] == "PYTHON_EVAL": + if v["vartype"] == "FB" and v["type"] in ["PYTHON_EVAL","PYTHON_POLL"]: python_eval_fb_list.append(v) python_eval_fb_count = max(1, len(python_eval_fb_list)) @@ -1290,6 +1307,19 @@ new_dialog.Show() + def _editWXGLADE(self): + wxg_filename = self._getWXGLADEpath() + if not os.path.exists(wxg_filename): + open(wxg_filename,"w").write(""" + + + + frame_1 + + +""") + self.launch_wxglade([wxg_filename]) + def _EditPLC(self): if self.PLCEditor is None: self.RefreshPluginsBlockLists() @@ -1700,4 +1730,8 @@ "name" : "Python code", "tooltip" : "Write Python runtime code, for use with python_eval FBs", "method" : "_editPYTHONcode"}, + {"bitmap" : opjimg("editWXGLADE"), + "name" : "WXGLADE GUI", + "tooltip" : "Edit a WxWidgets GUI with WXGlade", + "method" : "_editWXGLADE"}, ]