wxglade_hmi/wxglade_hmi.py
changeset 1061 02f371f3e063
parent 1014 e2f7d6c95db0
child 1062 fd7c9a7cf882
--- a/wxglade_hmi/wxglade_hmi.py	Wed Apr 24 10:03:47 2013 +0200
+++ b/wxglade_hmi/wxglade_hmi.py	Wed Apr 24 17:27:08 2013 +0200
@@ -1,5 +1,5 @@
 import wx
-import os, sys
+import os, sys, shutil
 from xml.dom import minidom
 
 from py_ext import PythonFileCTNMixin
@@ -16,9 +16,11 @@
     def ConfNodePath(self):
         return os.path.join(os.path.dirname(__file__))
 
-    def _getWXGLADEpath(self):
-        # define name for IEC raw code file
-        return os.path.join(self.CTNPath(), "hmi.wxg")
+    def _getWXGLADEpath(self, project_path=None):
+        if project_path is None:
+            project_path = self.CTNPath()
+        # define name for wxGlade gui file
+        return os.path.join(project_path, "hmi.wxg")
 
     def launch_wxglade(self, options, wait=False):
         from wxglade import __file__ as fileName
@@ -29,6 +31,11 @@
         mode = {False:os.P_NOWAIT, True:os.P_WAIT}[wait]
         os.spawnv(mode, sys.executable, ["\"%s\""%sys.executable] + [glade] + options)
 
+    def OnCTNSave(self, from_project_path=None):
+        if from_project_path is not None:
+            shutil.copyfile(self._getWXGLADEpath(from_project_path),
+                            self._getWXGLADEpath())
+        return PythonFileCTNMixin.OnCTNSave(self, from_project_path)
 
     def CTNGenerate_C(self, buildpath, locations):
         """
@@ -128,3 +135,4 @@
             if wx.Platform == '__WXMSW__':
                 wxg_filename = "\"%s\""%wxg_filename
             self.launch_wxglade([wxg_filename])
+