PLCOpenEditor.py
changeset 64 dd6f693e46a1
parent 58 39cd981ff242
child 65 cb6bed0720f0
--- a/PLCOpenEditor.py	Tue Aug 07 17:37:38 2007 +0200
+++ b/PLCOpenEditor.py	Tue Aug 07 17:38:48 2007 +0200
@@ -22,11 +22,10 @@
 #License along with this library; if not, write to the Free Software
 #Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 
-from wxPython.wx import *
-from wxPython.grid import *
 from time import localtime
 from datetime import datetime
 import wx
+import wx.grid
 
 from SFCViewer import *
 from LDViewer import *
@@ -70,43 +69,43 @@
     if os.path.isfile(os.path.join(path, "PLCOpenEditor.py")):
         CWD = path
 
-[wxID_PLCOPENEDITOR, wxID_PLCOPENEDITORPROJECTTREE, 
- wxID_PLCOPENEDITORSPLITTERWINDOW1, wxID_PLCOPENEDITOREDITORPANEL,
- wxID_PLCOPENEDITORTABSOPENED, wxID_PLCOPENEDITORTOOLBAR,
- wxID_PLCOPENEDITORDEFAULTTOOLBAR, wxID_PLCOPENEDITORSFCTOOLBAR, 
- wxID_PLCOPENEDITORFBDTOOLBAR, wxID_PLCOPENEDITORLDTOOLBAR,
+[ID_PLCOPENEDITOR, ID_PLCOPENEDITORPROJECTTREE, 
+ ID_PLCOPENEDITORSPLITTERWINDOW1, ID_PLCOPENEDITOREDITORPANEL,
+ ID_PLCOPENEDITORTABSOPENED, ID_PLCOPENEDITORTOOLBAR,
+ ID_PLCOPENEDITORDEFAULTTOOLBAR, ID_PLCOPENEDITORSFCTOOLBAR, 
+ ID_PLCOPENEDITORFBDTOOLBAR, ID_PLCOPENEDITORLDTOOLBAR,
 ] = [wx.NewId() for _init_ctrls in range(10)]
 
-[wxID_PLCOPENEDITORFILEMENUITEMS0, wxID_PLCOPENEDITORFILEMENUITEMS1, 
- wxID_PLCOPENEDITORFILEMENUITEMS2, wxID_PLCOPENEDITORFILEMENUITEMS3, 
- wxID_PLCOPENEDITORFILEMENUITEMS5, wxID_PLCOPENEDITORFILEMENUITEMS6, 
- wxID_PLCOPENEDITORFILEMENUITEMS7, wxID_PLCOPENEDITORFILEMENUITEMS9, 
- wxID_PLCOPENEDITORFILEMENUITEMS11,
+[ID_PLCOPENEDITORFILEMENUITEMS0, ID_PLCOPENEDITORFILEMENUITEMS1, 
+ ID_PLCOPENEDITORFILEMENUITEMS2, ID_PLCOPENEDITORFILEMENUITEMS3, 
+ ID_PLCOPENEDITORFILEMENUITEMS5, ID_PLCOPENEDITORFILEMENUITEMS6, 
+ ID_PLCOPENEDITORFILEMENUITEMS7, ID_PLCOPENEDITORFILEMENUITEMS9, 
+ ID_PLCOPENEDITORFILEMENUITEMS11,
 ] = [wx.NewId() for _init_coll_FileMenu_Items in range(9)]
 
-[wxID_PLCOPENEDITORHELPMENUITEMS0, wxID_PLCOPENEDITORHELPMENUITEMS1, 
- wxID_PLCOPENEDITORHELPMENUITEMS2, wxID_PLCOPENEDITORHELPMENUITEMS3, 
+[ID_PLCOPENEDITORHELPMENUITEMS0, ID_PLCOPENEDITORHELPMENUITEMS1, 
+ ID_PLCOPENEDITORHELPMENUITEMS2, ID_PLCOPENEDITORHELPMENUITEMS3, 
 ] = [wx.NewId() for _init_coll_HelpMenu_Items in range(4)]
 
-[wxID_PLCOPENEDITORSFCMENUITEMS0, wxID_PLCOPENEDITORSFCMENUITEMS1, 
- wxID_PLCOPENEDITORSFCMENUITEMS2, wxID_PLCOPENEDITORSFCMENUITEMS3,
+[ID_PLCOPENEDITORSFCMENUITEMS0, ID_PLCOPENEDITORSFCMENUITEMS1, 
+ ID_PLCOPENEDITORSFCMENUITEMS2, ID_PLCOPENEDITORSFCMENUITEMS3,
 ] = [wx.NewId() for _init_coll_HelpMenu_Items in range(4)]
 
-[wxID_PLCOPENEDITORCONFIGMENUITEMS0, wxID_PLCOPENEDITORCONFIGMENUITEMS1, 
+[ID_PLCOPENEDITORCONFIGMENUITEMS0, ID_PLCOPENEDITORCONFIGMENUITEMS1, 
 ] = [wx.NewId() for _init_coll_HelpMenu_Items in range(2)]
 
-[wxID_PLCOPENEDITOREDITMENUITEMS0, wxID_PLCOPENEDITOREDITMENUITEMS1, 
- wxID_PLCOPENEDITOREDITMENUITEMS11, wxID_PLCOPENEDITOREDITMENUITEMS12, 
- wxID_PLCOPENEDITOREDITMENUITEMS2, wxID_PLCOPENEDITOREDITMENUITEMS4, 
- wxID_PLCOPENEDITOREDITMENUITEMS5, wxID_PLCOPENEDITOREDITMENUITEMS6, 
- wxID_PLCOPENEDITOREDITMENUITEMS8, wxID_PLCOPENEDITOREDITMENUITEMS9, 
+[ID_PLCOPENEDITOREDITMENUITEMS0, ID_PLCOPENEDITOREDITMENUITEMS1, 
+ ID_PLCOPENEDITOREDITMENUITEMS11, ID_PLCOPENEDITOREDITMENUITEMS12, 
+ ID_PLCOPENEDITOREDITMENUITEMS2, ID_PLCOPENEDITOREDITMENUITEMS4, 
+ ID_PLCOPENEDITOREDITMENUITEMS5, ID_PLCOPENEDITOREDITMENUITEMS6, 
+ ID_PLCOPENEDITOREDITMENUITEMS8, ID_PLCOPENEDITOREDITMENUITEMS9, 
 ] = [wx.NewId() for _init_coll_EditMenu_Items in range(10)]
 
-[wxID_PLCOPENEDITORSFCMENUITEMS0, wxID_PLCOPENEDITORSFCMENUITEMS1, 
- wxID_PLCOPENEDITORSFCMENUITEMS2, wxID_PLCOPENEDITORSFCMENUITEMS3, 
+[ID_PLCOPENEDITORSFCMENUITEMS0, ID_PLCOPENEDITORSFCMENUITEMS1, 
+ ID_PLCOPENEDITORSFCMENUITEMS2, ID_PLCOPENEDITORSFCMENUITEMS3, 
 ] = [wx.NewId() for _init_coll_SFCMenu_Items in range(4)]
 
-[wxID_PLCOPENEDITORCONFIGMENUITEMS0, wxID_PLCOPENEDITORCONFIGMENUITEMS1, 
+[ID_PLCOPENEDITORCONFIGMENUITEMS0, ID_PLCOPENEDITORCONFIGMENUITEMS1, 
 ] = [wx.NewId() for _init_coll_ConfigMenu_Items in range(2)]
 
 
@@ -115,46 +114,46 @@
 #-------------------------------------------------------------------------------
 
 
-[wxID_PLCOPENEDITORTOOLBARSELECTION, wxID_PLCOPENEDITORTOOLBARCOMMENT,
- wxID_PLCOPENEDITORTOOLBARVARIABLE, wxID_PLCOPENEDITORTOOLBARBLOCK,
- wxID_PLCOPENEDITORTOOLBARCONNECTION, wxID_PLCOPENEDITORTOOLBARWIRE,
- wxID_PLCOPENEDITORTOOLBARPOWERRAIL, wxID_PLCOPENEDITORTOOLBARRUNG,
- wxID_PLCOPENEDITORTOOLBARCOIL, wxID_PLCOPENEDITORTOOLBARCONTACT,
- wxID_PLCOPENEDITORTOOLBARBRANCH, wxID_PLCOPENEDITORTOOLBARINITIALSTEP,
- wxID_PLCOPENEDITORTOOLBARSTEP, wxID_PLCOPENEDITORTOOLBARTRANSITION,
- wxID_PLCOPENEDITORTOOLBARACTIONBLOCK, wxID_PLCOPENEDITORTOOLBARDIVERGENCE,
- wxID_PLCOPENEDITORTOOLBARJUMP,
+[ID_PLCOPENEDITORTOOLBARSELECTION, ID_PLCOPENEDITORTOOLBARCOMMENT,
+ ID_PLCOPENEDITORTOOLBARVARIABLE, ID_PLCOPENEDITORTOOLBARBLOCK,
+ ID_PLCOPENEDITORTOOLBARCONNECTION, ID_PLCOPENEDITORTOOLBARWIRE,
+ ID_PLCOPENEDITORTOOLBARPOWERRAIL, ID_PLCOPENEDITORTOOLBARRUNG,
+ ID_PLCOPENEDITORTOOLBARCOIL, ID_PLCOPENEDITORTOOLBARCONTACT,
+ ID_PLCOPENEDITORTOOLBARBRANCH, ID_PLCOPENEDITORTOOLBARINITIALSTEP,
+ ID_PLCOPENEDITORTOOLBARSTEP, ID_PLCOPENEDITORTOOLBARTRANSITION,
+ ID_PLCOPENEDITORTOOLBARACTIONBLOCK, ID_PLCOPENEDITORTOOLBARDIVERGENCE,
+ ID_PLCOPENEDITORTOOLBARJUMP,
 ] = [wx.NewId() for _init_coll_DefaultToolBar_Items in range(17)]
 
 ToolBarItems = {
-    "FBD" : [(True, FREEDRAWING_MODE|DRIVENDRAWING_MODE, wxID_PLCOPENEDITORTOOLBARCOMMENT, "OnCommentTool", "Images/comment.png", "Create a new comment"),
-             (True, FREEDRAWING_MODE|DRIVENDRAWING_MODE, wxID_PLCOPENEDITORTOOLBARVARIABLE, "OnVariableTool", "Images/variable.png", "Create a new variable"),
-             (True, FREEDRAWING_MODE|DRIVENDRAWING_MODE, wxID_PLCOPENEDITORTOOLBARBLOCK, "OnBlockTool", "Images/block.png", "Create a new block"),
-             (True, FREEDRAWING_MODE|DRIVENDRAWING_MODE, wxID_PLCOPENEDITORTOOLBARCONNECTION, "OnConnectionTool", "Images/connection.png", "Create a new connection"),
-             (True, FREEDRAWING_MODE|DRIVENDRAWING_MODE, wxID_PLCOPENEDITORTOOLBARWIRE, "OnWireTool", "Images/wire.png", "Create a new wire")],
-    "LD" :  [(True, FREEDRAWING_MODE, wxID_PLCOPENEDITORTOOLBARCOMMENT, "OnCommentTool", "Images/comment.png", "Create a new comment"),
-             (True, FREEDRAWING_MODE, wxID_PLCOPENEDITORTOOLBARPOWERRAIL, "OnPowerRailTool", "Images/powerrail.png", "Create a new power rail"),
-             (False, DRIVENDRAWING_MODE, wxID_PLCOPENEDITORTOOLBARRUNG, "OnRungTool", "Images/rung.png", "Create a new rung"),
-             (True, FREEDRAWING_MODE, wxID_PLCOPENEDITORTOOLBARCOIL, "OnCoilTool", "Images/coil.png", "Create a new coil"),
-             (False, FREEDRAWING_MODE|DRIVENDRAWING_MODE, wxID_PLCOPENEDITORTOOLBARCONTACT, "OnContactTool", "Images/contact.png", "Create a new contact"),
-             (False, DRIVENDRAWING_MODE, wxID_PLCOPENEDITORTOOLBARBRANCH, "OnBranchTool", "Images/branch.png", "Create a new branch"),
-             (True, FREEDRAWING_MODE, wxID_PLCOPENEDITORTOOLBARVARIABLE, "OnVariableTool", "Images/variable.png", "Create a new variable"),
-             (False, FREEDRAWING_MODE|DRIVENDRAWING_MODE, wxID_PLCOPENEDITORTOOLBARBLOCK, "OnBlockTool", "Images/block.png", "Create a new block"),
-             (True, FREEDRAWING_MODE, wxID_PLCOPENEDITORTOOLBARCONNECTION, "OnConnectionTool", "Images/connection.png", "Create a new connection"),
-             (True, FREEDRAWING_MODE, wxID_PLCOPENEDITORTOOLBARWIRE, "OnWireTool", "Images/wire.png", "Create a new wire")],
-    "SFC" : [(True, FREEDRAWING_MODE|DRIVENDRAWING_MODE, wxID_PLCOPENEDITORTOOLBARCOMMENT, "OnCommentTool", "Images/comment.png", "Create a new comment"),
-             (True, FREEDRAWING_MODE|DRIVENDRAWING_MODE, wxID_PLCOPENEDITORTOOLBARINITIALSTEP, "OnInitialStepTool", "Images/initial_step.png", "Create a new initial step"),
-             (False, FREEDRAWING_MODE|DRIVENDRAWING_MODE, wxID_PLCOPENEDITORTOOLBARSTEP, "OnStepTool", "Images/step.png", "Create a new step"),
-             (True, FREEDRAWING_MODE, wxID_PLCOPENEDITORTOOLBARTRANSITION, "OnTransitionTool", "Images/transition.png", "Create a new transition"),
-             (False, FREEDRAWING_MODE|DRIVENDRAWING_MODE, wxID_PLCOPENEDITORTOOLBARACTIONBLOCK, "OnActionBlockTool", "Images/action.png", "Create a new action block"),
-             (False, FREEDRAWING_MODE|DRIVENDRAWING_MODE, wxID_PLCOPENEDITORTOOLBARDIVERGENCE, "OnDivergenceTool", "Images/divergence.png", "Create a new divergence"),
-             (False, FREEDRAWING_MODE|DRIVENDRAWING_MODE, wxID_PLCOPENEDITORTOOLBARJUMP, "OnJumpTool", "Images/jump.png", "Create a new jump"),
-             (True, FREEDRAWING_MODE, wxID_PLCOPENEDITORTOOLBARVARIABLE, "OnVariableTool", "Images/variable.png", "Create a new variable"),
-             (True, FREEDRAWING_MODE, wxID_PLCOPENEDITORTOOLBARBLOCK, "OnBlockTool", "Images/block.png", "Create a new block"),
-             (True, FREEDRAWING_MODE, wxID_PLCOPENEDITORTOOLBARCONNECTION, "OnConnectionTool", "Images/connection.png", "Create a new connection"),
-             (True, FREEDRAWING_MODE, wxID_PLCOPENEDITORTOOLBARPOWERRAIL, "OnPowerRailTool", "Images/powerrail.png", "Create a new power rail"),
-             (True, FREEDRAWING_MODE, wxID_PLCOPENEDITORTOOLBARCONTACT, "OnContactTool", "Images/contact.png", "Create a new contact"),
-             (True, FREEDRAWING_MODE, wxID_PLCOPENEDITORTOOLBARWIRE, "OnWireTool", "Images/wire.png", "Create a new wire")],
+    "FBD" : [(True, FREEDRAWING_MODE|DRIVENDRAWING_MODE, ID_PLCOPENEDITORTOOLBARCOMMENT, "OnCommentTool", "Images/comment.png", "Create a new comment"),
+             (True, FREEDRAWING_MODE|DRIVENDRAWING_MODE, ID_PLCOPENEDITORTOOLBARVARIABLE, "OnVariableTool", "Images/variable.png", "Create a new variable"),
+             (True, FREEDRAWING_MODE|DRIVENDRAWING_MODE, ID_PLCOPENEDITORTOOLBARBLOCK, "OnBlockTool", "Images/block.png", "Create a new block"),
+             (True, FREEDRAWING_MODE|DRIVENDRAWING_MODE, ID_PLCOPENEDITORTOOLBARCONNECTION, "OnConnectionTool", "Images/connection.png", "Create a new connection"),
+             (True, FREEDRAWING_MODE|DRIVENDRAWING_MODE, ID_PLCOPENEDITORTOOLBARWIRE, "OnWireTool", "Images/wire.png", "Create a new wire")],
+    "LD" :  [(True, FREEDRAWING_MODE, ID_PLCOPENEDITORTOOLBARCOMMENT, "OnCommentTool", "Images/comment.png", "Create a new comment"),
+             (True, FREEDRAWING_MODE, ID_PLCOPENEDITORTOOLBARPOWERRAIL, "OnPowerRailTool", "Images/powerrail.png", "Create a new power rail"),
+             (False, DRIVENDRAWING_MODE, ID_PLCOPENEDITORTOOLBARRUNG, "OnRungTool", "Images/rung.png", "Create a new rung"),
+             (True, FREEDRAWING_MODE, ID_PLCOPENEDITORTOOLBARCOIL, "OnCoilTool", "Images/coil.png", "Create a new coil"),
+             (False, FREEDRAWING_MODE|DRIVENDRAWING_MODE, ID_PLCOPENEDITORTOOLBARCONTACT, "OnContactTool", "Images/contact.png", "Create a new contact"),
+             (False, DRIVENDRAWING_MODE, ID_PLCOPENEDITORTOOLBARBRANCH, "OnBranchTool", "Images/branch.png", "Create a new branch"),
+             (True, FREEDRAWING_MODE, ID_PLCOPENEDITORTOOLBARVARIABLE, "OnVariableTool", "Images/variable.png", "Create a new variable"),
+             (False, FREEDRAWING_MODE|DRIVENDRAWING_MODE, ID_PLCOPENEDITORTOOLBARBLOCK, "OnBlockTool", "Images/block.png", "Create a new block"),
+             (True, FREEDRAWING_MODE, ID_PLCOPENEDITORTOOLBARCONNECTION, "OnConnectionTool", "Images/connection.png", "Create a new connection"),
+             (True, FREEDRAWING_MODE, ID_PLCOPENEDITORTOOLBARWIRE, "OnWireTool", "Images/wire.png", "Create a new wire")],
+    "SFC" : [(True, FREEDRAWING_MODE|DRIVENDRAWING_MODE, ID_PLCOPENEDITORTOOLBARCOMMENT, "OnCommentTool", "Images/comment.png", "Create a new comment"),
+             (True, FREEDRAWING_MODE|DRIVENDRAWING_MODE, ID_PLCOPENEDITORTOOLBARINITIALSTEP, "OnInitialStepTool", "Images/initial_step.png", "Create a new initial step"),
+             (False, FREEDRAWING_MODE|DRIVENDRAWING_MODE, ID_PLCOPENEDITORTOOLBARSTEP, "OnStepTool", "Images/step.png", "Create a new step"),
+             (True, FREEDRAWING_MODE, ID_PLCOPENEDITORTOOLBARTRANSITION, "OnTransitionTool", "Images/transition.png", "Create a new transition"),
+             (False, FREEDRAWING_MODE|DRIVENDRAWING_MODE, ID_PLCOPENEDITORTOOLBARACTIONBLOCK, "OnActionBlockTool", "Images/action.png", "Create a new action block"),
+             (False, FREEDRAWING_MODE|DRIVENDRAWING_MODE, ID_PLCOPENEDITORTOOLBARDIVERGENCE, "OnDivergenceTool", "Images/divergence.png", "Create a new divergence"),
+             (False, FREEDRAWING_MODE|DRIVENDRAWING_MODE, ID_PLCOPENEDITORTOOLBARJUMP, "OnJumpTool", "Images/jump.png", "Create a new jump"),
+             (True, FREEDRAWING_MODE, ID_PLCOPENEDITORTOOLBARVARIABLE, "OnVariableTool", "Images/variable.png", "Create a new variable"),
+             (True, FREEDRAWING_MODE, ID_PLCOPENEDITORTOOLBARBLOCK, "OnBlockTool", "Images/block.png", "Create a new block"),
+             (True, FREEDRAWING_MODE, ID_PLCOPENEDITORTOOLBARCONNECTION, "OnConnectionTool", "Images/connection.png", "Create a new connection"),
+             (True, FREEDRAWING_MODE, ID_PLCOPENEDITORTOOLBARPOWERRAIL, "OnPowerRailTool", "Images/powerrail.png", "Create a new power rail"),
+             (True, FREEDRAWING_MODE, ID_PLCOPENEDITORTOOLBARCONTACT, "OnContactTool", "Images/contact.png", "Create a new contact"),
+             (True, FREEDRAWING_MODE, ID_PLCOPENEDITORTOOLBARWIRE, "OnWireTool", "Images/wire.png", "Create a new wire")],
     "ST" : [],
     "IL" : []
 }
@@ -163,152 +162,139 @@
     _custom_classes = {'wx.SashWindow' : ['Viewer']}
     
     def _init_coll_EditMenu_Items(self, parent):
-        # generated method, don't edit
-
-        parent.Append(help='', id=wxID_PLCOPENEDITOREDITMENUITEMS0,
+        parent.Append(help='', id=ID_PLCOPENEDITOREDITMENUITEMS0,
               kind=wx.ITEM_NORMAL, text=u'Refresh\tCTRL+R')
-        parent.Append(help='', id=wxID_PLCOPENEDITOREDITMENUITEMS1,
+        parent.Append(help='', id=ID_PLCOPENEDITOREDITMENUITEMS1,
               kind=wx.ITEM_NORMAL, text=u'Undo\tCTRL+Z')
-        parent.Append(help='', id=wxID_PLCOPENEDITOREDITMENUITEMS2,
+        parent.Append(help='', id=ID_PLCOPENEDITOREDITMENUITEMS2,
               kind=wx.ITEM_NORMAL, text=u'Redo\tCTRL+Y')
         parent.AppendSeparator()
-        parent.Append(help='', id=wxID_PLCOPENEDITOREDITMENUITEMS4,
+        parent.Append(help='', id=ID_PLCOPENEDITOREDITMENUITEMS4,
               kind=wx.ITEM_NORMAL, text=u'Cut\tCTRL+X')
-        parent.Append(help='', id=wxID_PLCOPENEDITOREDITMENUITEMS5,
+        parent.Append(help='', id=ID_PLCOPENEDITOREDITMENUITEMS5,
               kind=wx.ITEM_NORMAL, text=u'Copy\tCTRL+C')
-        parent.Append(help='', id=wxID_PLCOPENEDITOREDITMENUITEMS6,
+        parent.Append(help='', id=ID_PLCOPENEDITOREDITMENUITEMS6,
               kind=wx.ITEM_NORMAL, text=u'Paste\tCTRL+V')
         parent.AppendSeparator()
-        parent.Append(help='', id=wxID_PLCOPENEDITOREDITMENUITEMS8,
+        parent.Append(help='', id=ID_PLCOPENEDITOREDITMENUITEMS8,
               kind=wx.ITEM_NORMAL, text=u'Add POU')
-        parent.Append(help='', id=wxID_PLCOPENEDITOREDITMENUITEMS9,
+        parent.Append(help='', id=ID_PLCOPENEDITOREDITMENUITEMS9,
               kind=wx.ITEM_NORMAL, text=u'Remove POU')
         parent.AppendSeparator()
-        parent.Append(help='', id=wxID_PLCOPENEDITOREDITMENUITEMS11,
+        parent.Append(help='', id=ID_PLCOPENEDITOREDITMENUITEMS11,
               kind=wx.ITEM_NORMAL, text=u'Add Configuration')
-        parent.Append(help='', id=wxID_PLCOPENEDITOREDITMENUITEMS12,
+        parent.Append(help='', id=ID_PLCOPENEDITOREDITMENUITEMS12,
               kind=wx.ITEM_NORMAL, text=u'Remove Configuration')
         self.Bind(wx.EVT_MENU, self.OnRefreshMenu,
-              id=wxID_PLCOPENEDITOREDITMENUITEMS0)
+              id=ID_PLCOPENEDITOREDITMENUITEMS0)
         self.Bind(wx.EVT_MENU, self.OnUndoMenu,
-              id=wxID_PLCOPENEDITOREDITMENUITEMS1)
+              id=ID_PLCOPENEDITOREDITMENUITEMS1)
         self.Bind(wx.EVT_MENU, self.OnRedoMenu,
-              id=wxID_PLCOPENEDITOREDITMENUITEMS2)
+              id=ID_PLCOPENEDITOREDITMENUITEMS2)
         self.Bind(wx.EVT_MENU, self.OnCutMenu,
-              id=wxID_PLCOPENEDITOREDITMENUITEMS4)
+              id=ID_PLCOPENEDITOREDITMENUITEMS4)
         self.Bind(wx.EVT_MENU, self.OnCopyMenu,
-              id=wxID_PLCOPENEDITOREDITMENUITEMS5)
+              id=ID_PLCOPENEDITOREDITMENUITEMS5)
         self.Bind(wx.EVT_MENU, self.OnPasteMenu,
-              id=wxID_PLCOPENEDITOREDITMENUITEMS6)
+              id=ID_PLCOPENEDITOREDITMENUITEMS6)
         self.Bind(wx.EVT_MENU, self.OnAddPouMenu,
-              id=wxID_PLCOPENEDITOREDITMENUITEMS8)
+              id=ID_PLCOPENEDITOREDITMENUITEMS8)
         self.Bind(wx.EVT_MENU, self.OnRemovePouMenu,
-              id=wxID_PLCOPENEDITOREDITMENUITEMS9)
+              id=ID_PLCOPENEDITOREDITMENUITEMS9)
         self.Bind(wx.EVT_MENU, self.OnAddConfigurationMenu,
-              id=wxID_PLCOPENEDITOREDITMENUITEMS11)
+              id=ID_PLCOPENEDITOREDITMENUITEMS11)
         self.Bind(wx.EVT_MENU, self.OnRemoveConfigurationMenu,
-              id=wxID_PLCOPENEDITOREDITMENUITEMS12)
+              id=ID_PLCOPENEDITOREDITMENUITEMS12)
 
     def _init_coll_menuBar1_Menus(self, parent):
-        # generated method, don't edit
-        
         if self.ModeSolo:
             parent.Append(menu=self.FileMenu, title=u'File')
         parent.Append(menu=self.EditMenu, title=u'Edit')
         parent.Append(menu=self.HelpMenu, title=u'Help')
 
     def _init_coll_ConfigMenu_Items(self, parent):
-        # generated method, don't edit
-
-        parent.Append(help='', id=wxID_PLCOPENEDITORCONFIGMENUITEMS0,
+        parent.Append(help='', id=ID_PLCOPENEDITORCONFIGMENUITEMS0,
               kind=wx.ITEM_NORMAL, text=u'Add Resource')
-        parent.Append(help='', id=wxID_PLCOPENEDITORCONFIGMENUITEMS1,
+        parent.Append(help='', id=ID_PLCOPENEDITORCONFIGMENUITEMS1,
               kind=wx.ITEM_NORMAL, text=u'Remove Resource')
         self.Bind(wx.EVT_MENU, self.OnAddResourceMenu,
-              id=wxID_PLCOPENEDITORCONFIGMENUITEMS0)
+              id=ID_PLCOPENEDITORCONFIGMENUITEMS0)
         self.Bind(wx.EVT_MENU, self.OnRemoveResourceMenu,
-              id=wxID_PLCOPENEDITORCONFIGMENUITEMS1)
+              id=ID_PLCOPENEDITORCONFIGMENUITEMS1)
 
     def _init_coll_HelpMenu_Items(self, parent):
-        # generated method, don't edit
-
-        parent.Append(help='', id=wxID_PLCOPENEDITORHELPMENUITEMS0,
+        parent.Append(help='', id=ID_PLCOPENEDITORHELPMENUITEMS0,
               kind=wx.ITEM_NORMAL, text=u'PLCOpenEditor\tF1')
-        parent.Append(help='', id=wxID_PLCOPENEDITORHELPMENUITEMS1,
+        parent.Append(help='', id=ID_PLCOPENEDITORHELPMENUITEMS1,
               kind=wx.ITEM_NORMAL, text=u'PLCOpen\tF2')
-        parent.Append(help='', id=wxID_PLCOPENEDITORHELPMENUITEMS2,
+        parent.Append(help='', id=ID_PLCOPENEDITORHELPMENUITEMS2,
               kind=wx.ITEM_NORMAL, text=u'IEC 61131-3\tF3')
         if self.ModeSolo:
-            parent.Append(help='', id=wxID_PLCOPENEDITORHELPMENUITEMS3,
+            parent.Append(help='', id=ID_PLCOPENEDITORHELPMENUITEMS3,
                   kind=wx.ITEM_NORMAL, text=u'About')
         self.Bind(wx.EVT_MENU, self.OnPLCOpenMenu,
-              id=wxID_PLCOPENEDITORHELPMENUITEMS1)
+              id=ID_PLCOPENEDITORHELPMENUITEMS1)
 
     def _init_coll_FileMenu_Items(self, parent):
-        # generated method, don't edit
-
-        parent.Append(help='', id=wxID_PLCOPENEDITORFILEMENUITEMS0,
+        parent.Append(help='', id=ID_PLCOPENEDITORFILEMENUITEMS0,
               kind=wx.ITEM_NORMAL, text=u'New\tCTRL+N')
-        parent.Append(help='', id=wxID_PLCOPENEDITORFILEMENUITEMS1,
+        parent.Append(help='', id=ID_PLCOPENEDITORFILEMENUITEMS1,
               kind=wx.ITEM_NORMAL, text=u'Open\tCTRL+O')
-        parent.Append(help='', id=wxID_PLCOPENEDITORFILEMENUITEMS2,
+        parent.Append(help='', id=ID_PLCOPENEDITORFILEMENUITEMS2,
               kind=wx.ITEM_NORMAL, text=u'Close Tab\tCTRL+W')
-        parent.Append(help='', id=wxID_PLCOPENEDITORFILEMENUITEMS3,
+        parent.Append(help='', id=ID_PLCOPENEDITORFILEMENUITEMS3,
               kind=wx.ITEM_NORMAL, text=u'Close Project')
         parent.AppendSeparator()
-        parent.Append(help='', id=wxID_PLCOPENEDITORFILEMENUITEMS5,
+        parent.Append(help='', id=ID_PLCOPENEDITORFILEMENUITEMS5,
               kind=wx.ITEM_NORMAL, text=u'Save\tCTRL+S')
-        parent.Append(help='', id=wxID_PLCOPENEDITORFILEMENUITEMS6,
+        parent.Append(help='', id=ID_PLCOPENEDITORFILEMENUITEMS6,
               kind=wx.ITEM_NORMAL, text=u'Save As...\tCTRL+SHIFT+S')
-        parent.Append(help='', id=wxID_PLCOPENEDITORFILEMENUITEMS7,
+        parent.Append(help='', id=ID_PLCOPENEDITORFILEMENUITEMS7,
               kind=wx.ITEM_NORMAL, text=u'Generate Program\tCTRL+G')
         parent.AppendSeparator()
-        parent.Append(help='', id=wxID_PLCOPENEDITORFILEMENUITEMS9,
+        parent.Append(help='', id=ID_PLCOPENEDITORFILEMENUITEMS9,
               kind=wx.ITEM_NORMAL, text=u'Properties')
         parent.AppendSeparator()
-        parent.Append(help='', id=wxID_PLCOPENEDITORFILEMENUITEMS11,
+        parent.Append(help='', id=ID_PLCOPENEDITORFILEMENUITEMS11,
               kind=wx.ITEM_NORMAL, text=u'Quit\tCTRL+Q')
         self.Bind(wx.EVT_MENU, self.OnNewProjectMenu,
-              id=wxID_PLCOPENEDITORFILEMENUITEMS0)
+              id=ID_PLCOPENEDITORFILEMENUITEMS0)
         self.Bind(wx.EVT_MENU, self.OnOpenProjectMenu,
-              id=wxID_PLCOPENEDITORFILEMENUITEMS1)
+              id=ID_PLCOPENEDITORFILEMENUITEMS1)
         self.Bind(wx.EVT_MENU, self.OnCloseTabMenu,
-              id=wxID_PLCOPENEDITORFILEMENUITEMS2)
+              id=ID_PLCOPENEDITORFILEMENUITEMS2)
         self.Bind(wx.EVT_MENU, self.OnCloseProjectMenu,
-              id=wxID_PLCOPENEDITORFILEMENUITEMS3)
+              id=ID_PLCOPENEDITORFILEMENUITEMS3)
         self.Bind(wx.EVT_MENU, self.OnSaveProjectMenu,
-              id=wxID_PLCOPENEDITORFILEMENUITEMS5)
+              id=ID_PLCOPENEDITORFILEMENUITEMS5)
         self.Bind(wx.EVT_MENU, self.OnSaveProjectAsMenu,
-              id=wxID_PLCOPENEDITORFILEMENUITEMS6)
+              id=ID_PLCOPENEDITORFILEMENUITEMS6)
         self.Bind(wx.EVT_MENU, self.OnGenerateProgramMenu,
-              id=wxID_PLCOPENEDITORFILEMENUITEMS7)
+              id=ID_PLCOPENEDITORFILEMENUITEMS7)
         self.Bind(wx.EVT_MENU, self.OnPropertiesMenu,
-              id=wxID_PLCOPENEDITORFILEMENUITEMS9)
+              id=ID_PLCOPENEDITORFILEMENUITEMS9)
         self.Bind(wx.EVT_MENU, self.OnQuitMenu,
-              id=wxID_PLCOPENEDITORFILEMENUITEMS11)
+              id=ID_PLCOPENEDITORFILEMENUITEMS11)
 
     def _init_coll_SFCMenu_Items(self, parent):
-        # generated method, don't edit
-
-        parent.Append(help='', id=wxID_PLCOPENEDITORSFCMENUITEMS0,
+        parent.Append(help='', id=ID_PLCOPENEDITORSFCMENUITEMS0,
               kind=wx.ITEM_NORMAL, text=u'Add Transition')
-        parent.Append(help='', id=wxID_PLCOPENEDITORSFCMENUITEMS1,
+        parent.Append(help='', id=ID_PLCOPENEDITORSFCMENUITEMS1,
               kind=wx.ITEM_NORMAL, text=u'Add Action')
-        parent.Append(help='', id=wxID_PLCOPENEDITORSFCMENUITEMS2,
+        parent.Append(help='', id=ID_PLCOPENEDITORSFCMENUITEMS2,
               kind=wx.ITEM_NORMAL, text=u'Remove Transition')
-        parent.Append(help='', id=wxID_PLCOPENEDITORSFCMENUITEMS3,
+        parent.Append(help='', id=ID_PLCOPENEDITORSFCMENUITEMS3,
               kind=wx.ITEM_NORMAL, text=u'Remove Action')
         self.Bind(wx.EVT_MENU, self.OnAddPouTransitionMenu,
-              id=wxID_PLCOPENEDITORSFCMENUITEMS0)
+              id=ID_PLCOPENEDITORSFCMENUITEMS0)
         self.Bind(wx.EVT_MENU, self.OnAddPouActionMenu,
-              id=wxID_PLCOPENEDITORSFCMENUITEMS1)
+              id=ID_PLCOPENEDITORSFCMENUITEMS1)
         self.Bind(wx.EVT_MENU, self.OnRemovePouTransitionMenu,
-              id=wxID_PLCOPENEDITORSFCMENUITEMS2)
+              id=ID_PLCOPENEDITORSFCMENUITEMS2)
         self.Bind(wx.EVT_MENU, self.OnRemovePouActionMenu,
-              id=wxID_PLCOPENEDITORSFCMENUITEMS3)
+              id=ID_PLCOPENEDITORSFCMENUITEMS3)
 
     def _init_utils(self):
-        # generated method, don't edit
         self.menuBar1 = wx.MenuBar()
 
         if self.ModeSolo:
@@ -333,32 +319,22 @@
         self._init_coll_ConfigMenu_Items(self.ConfigMenu)
 
     def _init_coll_MainGridSizer_Items(self, parent):
-        # generated method, don't edit
-
-        parent.AddWindow(self.splitterWindow1, 0, border=0, flag=wxGROW)
+        parent.AddWindow(self.splitterWindow1, 0, border=0, flag=wx.GROW)
 
     def _init_coll_EditorGridSizer_Items(self, parent):
-        # generated method, don't edit
-
-        parent.AddWindow(self.ToolBar, 0, border=0, flag=wxGROW)
-        parent.AddWindow(self.TabsOpened, 0, border=0, flag=wxGROW)
+        parent.AddWindow(self.ToolBar, 0, border=0, flag=wx.GROW)
+        parent.AddWindow(self.TabsOpened, 0, border=0, flag=wx.GROW)
 
     def _init_coll_MainGridSizer_Growables(self, parent):
-        # generated method, don't edit
-
         parent.AddGrowableCol(0)
         parent.AddGrowableRow(0)
 
     def _init_coll_EditorGridSizer_Growables(self, parent):
-        # generated method, don't edit
-
         parent.AddGrowableCol(0)
         parent.AddGrowableRow(1)
 
     def _init_sizers(self):
-        # generated method, don't edit
         self.MainGridSizer = wx.FlexGridSizer(cols=1, hgap=0, rows=1, vgap=0)
-
         self.EditorGridSizer = wx.FlexGridSizer(cols=1, hgap=0, rows=2, vgap=0)
 
         self._init_coll_MainGridSizer_Growables(self.MainGridSizer)
@@ -370,54 +346,53 @@
         self.EditorPanel.SetSizer(self.EditorGridSizer)
 
     def _init_ctrls(self, prnt):
-        # generated method, don't edit
-        wx.Frame.__init__(self, id=wxID_PLCOPENEDITOR, name=u'PLCOpenEditor',
+        wx.Frame.__init__(self, id=ID_PLCOPENEDITOR, name=u'PLCOpenEditor',
               parent=prnt, pos=wx.Point(235, 287), size=wx.Size(1000, 600),
               style=wx.DEFAULT_FRAME_STYLE, title=u'PLCOpenEditor')
         self._init_utils()
         self.SetClientSize(wx.Size(1000, 600))
         self.SetMenuBar(self.menuBar1)
-        self.Bind(wx.EVT_CLOSE, self.OnCloseFrame, id=wxID_PLCOPENEDITOR)
-        
-        self.splitterWindow1 = wx.SplitterWindow(id=wxID_PLCOPENEDITORSPLITTERWINDOW1,
+        self.Bind(wx.EVT_CLOSE, self.OnCloseFrame, id=ID_PLCOPENEDITOR)
+        
+        self.splitterWindow1 = wx.SplitterWindow(id=ID_PLCOPENEDITORSPLITTERWINDOW1,
               name='splitterWindow1', parent=self, point=wx.Point(0, 0),
               size=wx.Size(-1, -1), style=wx.SP_3D)
         self.splitterWindow1.SetNeedUpdating(True)
         self.splitterWindow1.SetMinimumPaneSize(1)
 
-        self.EditorPanel = wx.Panel(id=wxID_PLCOPENEDITOREDITORPANEL, 
+        self.EditorPanel = wx.Panel(id=ID_PLCOPENEDITOREDITORPANEL, 
               name='TabPanel', parent=self.splitterWindow1, pos=wx.Point(0, 0),
               size=wx.Size(-1, -1), style=wx.TAB_TRAVERSAL)
         
-        self.TabsOpened = wx.Notebook(id=wxID_PLCOPENEDITORTABSOPENED,
+        self.TabsOpened = wx.Notebook(id=ID_PLCOPENEDITORTABSOPENED,
               name='TabsOpened', parent=self.EditorPanel, pos=wx.Point(0,
               0), size=wx.Size(-1, -1), style=0)
         self.TabsOpened.Bind(wx.EVT_NOTEBOOK_PAGE_CHANGED,
-              self.OnPouSelectedChanged, id=wxID_PLCOPENEDITORTABSOPENED)
-
-        self.ToolBar = wxToolBar(id=wxID_PLCOPENEDITORTOOLBAR, name='ToolBar',
+              self.OnPouSelectedChanged, id=ID_PLCOPENEDITORTABSOPENED)
+
+        self.ToolBar = wx.ToolBar(id=ID_PLCOPENEDITORTOOLBAR, name='ToolBar',
               parent=self.EditorPanel, pos=wx.Point(0, 0), size=wx.Size(0, 40),
-              style=wxTB_HORIZONTAL | wxNO_BORDER)
-        self.ToolBar.AddRadioTool(wxID_PLCOPENEDITORTOOLBARSELECTION, 
-              wxBitmap(os.path.join(CWD, 'Images/select.png')), wxNullBitmap, "Select an object")
+              style=wx.TB_HORIZONTAL | wx.NO_BORDER)
+        self.ToolBar.AddRadioTool(ID_PLCOPENEDITORTOOLBARSELECTION, 
+              wx.Bitmap(os.path.join(CWD, 'Images/select.png')), wx.NullBitmap, "Select an object")
         self.Bind(wx.EVT_TOOL, self.OnSelectionTool, 
-              id=wxID_PLCOPENEDITORTOOLBARSELECTION)
-        
-        self.ProjectTree = wx.TreeCtrl(id=wxID_PLCOPENEDITORPROJECTTREE,
+              id=ID_PLCOPENEDITORTOOLBARSELECTION)
+        
+        self.ProjectTree = wx.TreeCtrl(id=ID_PLCOPENEDITORPROJECTTREE,
               name='treeCtrl1', parent=self.splitterWindow1, pos=wx.Point(0, 0),
               size=wx.Size(-1, -1),
               style=wx.TR_HAS_BUTTONS|wx.TR_EDIT_LABELS|wx.TR_SINGLE|wx.SUNKEN_BORDER)
         self.ProjectTree.Bind(wx.EVT_RIGHT_UP, self.OnProjectTreeRightUp)
         self.Bind(wx.EVT_TREE_BEGIN_DRAG, self.OnProjectTreeBeginDrag,
-              id=wxID_PLCOPENEDITORPROJECTTREE)
+              id=ID_PLCOPENEDITORPROJECTTREE)
         self.Bind(wx.EVT_TREE_BEGIN_LABEL_EDIT, self.OnProjectTreeItemBeginEdit,
-              id=wxID_PLCOPENEDITORPROJECTTREE)
+              id=ID_PLCOPENEDITORPROJECTTREE)
         self.Bind(wx.EVT_TREE_END_LABEL_EDIT, self.OnProjectTreeItemEndEdit,
-              id=wxID_PLCOPENEDITORPROJECTTREE)
+              id=ID_PLCOPENEDITORPROJECTTREE)
         self.Bind(wx.EVT_TREE_ITEM_ACTIVATED, self.OnProjectTreeItemActivated,
-              id=wxID_PLCOPENEDITORPROJECTTREE)
+              id=ID_PLCOPENEDITORPROJECTTREE)
         self.Bind(wx.EVT_TREE_SEL_CHANGED, self.OnProjectTreeItemSelected,
-              id=wxID_PLCOPENEDITORPROJECTTREE)
+              id=ID_PLCOPENEDITORPROJECTTREE)
         self.splitterWindow1.SplitVertically(self.ProjectTree, self.EditorPanel,
               200)
         
@@ -427,9 +402,9 @@
         self.ModeSolo = controler == None
         self._init_ctrls(parent)
         
-        self.TreeImageList = wxImageList(16, 16)
+        self.TreeImageList = wx.ImageList(16, 16)
         for language in LANGUAGES:
-            self.TreeImageList.Add(wxBitmap(os.path.join(CWD, 'Images/%s.png'%language)))
+            self.TreeImageList.Add(wx.Bitmap(os.path.join(CWD, 'Images/%s.png'%language)))
         self.ProjectTree.SetImageList(self.TreeImageList)
         
         if self.ModeSolo:
@@ -443,8 +418,8 @@
         
         self.CurrentToolBar = []
         self.CurrentLanguage = ""
-        #self.DrawingMode = FREEDRAWING_MODE
-        self.DrawingMode = DRIVENDRAWING_MODE
+        self.DrawingMode = FREEDRAWING_MODE
+        #self.DrawingMode = DRIVENDRAWING_MODE
         
         self.RefreshFileMenu()
         self.RefreshEditMenu()
@@ -484,11 +459,11 @@
         if self.EditMenu:
             if self.Controler.HasOpenedProject():
                 undo, redo = self.Controler.GetBufferState()
-                self.EditMenu.Enable(wxID_PLCOPENEDITOREDITMENUITEMS1, undo)
-                self.EditMenu.Enable(wxID_PLCOPENEDITOREDITMENUITEMS2, redo)
+                self.EditMenu.Enable(ID_PLCOPENEDITOREDITMENUITEMS1, undo)
+                self.EditMenu.Enable(ID_PLCOPENEDITOREDITMENUITEMS2, redo)
             else:
-                self.EditMenu.Enable(wxID_PLCOPENEDITOREDITMENUITEMS1, False)
-                self.EditMenu.Enable(wxID_PLCOPENEDITOREDITMENUITEMS2, False)
+                self.EditMenu.Enable(ID_PLCOPENEDITOREDITMENUITEMS1, False)
+                self.EditMenu.Enable(ID_PLCOPENEDITOREDITMENUITEMS2, False)
             if self.Controler.HasOpenedProject():
                 if self.TabsOpened.GetPageCount() > 0:
                     self.EditMenu.FindItemByPosition(0).Enable(True)
@@ -514,7 +489,7 @@
         old_values = self.Controler.GetProjectProperties()
         dialog = ProjectDialog(self)
         dialog.SetValues(old_values)
-        if dialog.ShowModal() == wxID_OK:
+        if dialog.ShowModal() == wx.ID_OK:
             new_values = dialog.GetValues()
             projectname = new_values.pop("projectName")
             new_values["creationDateTime"] = old_values["creationDateTime"]
@@ -524,20 +499,20 @@
 
     def OnCloseFrame(self, event):
         if not self.Controler.ProjectIsSaved():
-            dialog = wxMessageDialog(self, "There are changes, do you want to save?",  "Close Application", wxYES_NO|wxCANCEL|wxICON_QUESTION)
+            dialog = wx.MessageDialog(self, "There are changes, do you want to save?",  "Close Application", wx.YES_NO|wx.CANCEL|wx.ICON_QUESTION)
             answer = dialog.ShowModal()
             dialog.Destroy()
-            if answer == wxID_YES:
+            if answer == wx.ID_YES:
                 self.SaveProject()
                 event.Skip()
-            elif answer == wxID_NO:
+            elif answer == wx.ID_NO:
                 event.Skip()
         else:
             event.Skip()
 
     def OnNewProjectMenu(self, event):
         dialog = ProjectDialog(self)
-        if dialog.ShowModal() == wxID_OK:
+        if dialog.ShowModal() == wx.ID_OK:
             values = dialog.GetValues()
             projectname = values.pop("projectName")
             values["creationDateTime"] = datetime(*localtime()[:6])
@@ -555,8 +530,8 @@
             directory = os.path.dirname(filepath)
         else:
             directory = os.getcwd()
-        dialog = wxFileDialog(self, "Choose a file", directory, "",  "PLCOpen files (*.xml)|*.xml|All files|*.*", wxOPEN)
-        if dialog.ShowModal() == wxID_OK:
+        dialog = wx.FileDialog(self, "Choose a file", directory, "",  "PLCOpen files (*.xml)|*.xml|All files|*.*", wx.OPEN)
+        if dialog.ShowModal() == wx.ID_OK:
             filepath = dialog.GetPath()
             if os.path.isfile(filepath):
                 self.Controler.OpenXMLFile(filepath)
@@ -601,17 +576,17 @@
         event.Skip()
 
     def OnGenerateProgramMenu(self, event):
-        dialog = wxFileDialog(self, "Choose a file", os.getcwd(), self.Controler.GetProgramFilePath(),  "ST files (*.st)|*.st|All files|*.*", wxSAVE|wxCHANGE_DIR)
-        if dialog.ShowModal() == wxID_OK:
+        dialog = wx.FileDialog(self, "Choose a file", os.getcwd(), self.Controler.GetProgramFilePath(),  "ST files (*.st)|*.st|All files|*.*", wx.SAVE|wx.CHANGE_DIR)
+        if dialog.ShowModal() == wx.ID_OK:
             filepath = dialog.GetPath()
             if os.path.isdir(os.path.dirname(filepath)):
                 result = self.Controler.GenerateProgram(filepath)
                 if not result:
-                    message = wxMessageDialog(self, "Can't generate program to file %s!"%filepath, "Error", wxOK|wxICON_ERROR)
+                    message = wx.MessageDialog(self, "Can't generate program to file %s!"%filepath, "Error", wx.OK|wx.ICON_ERROR)
                     message.ShowModal()
                     message.Destroy()
             else:
-                message = wxMessageDialog(self, "%s is not a valid folder!"%os.path.dirname(filepath), "Error", wxOK|wxICON_ERROR)
+                message = wx.MessageDialog(self, "%s is not a valid folder!"%os.path.dirname(filepath), "Error", wx.OK|wx.ICON_ERROR)
                 message.ShowModal()
                 message.Destroy()
         dialog.Destroy()
@@ -630,17 +605,17 @@
             directory, filename = os.path.split(filepath)
         else:
             directory, filename = os.getcwd(), "%(projectName)s.xml"%self.Controler.GetProjectProperties()
-        dialog = wxFileDialog(self, "Choose a file", directory, filename,  "PLCOpen files (*.xml)|*.xml|All files|*.*", wxSAVE|wxOVERWRITE_PROMPT)
-        if dialog.ShowModal() == wxID_OK:
+        dialog = wx.FileDialog(self, "Choose a file", directory, filename,  "PLCOpen files (*.xml)|*.xml|All files|*.*", wx.SAVE|wx.OVERWRITE_PROMPT)
+        if dialog.ShowModal() == wx.ID_OK:
             filepath = dialog.GetPath()
             if os.path.isdir(os.path.dirname(filepath)):
                 result = self.Controler.SaveXMLFile(filepath)
                 if not result:
-                    message = wxMessageDialog(self, "Can't save project to file %s!"%filepath, "Error", wxOK|wxICON_ERROR)
+                    message = wx.MessageDialog(self, "Can't save project to file %s!"%filepath, "Error", wx.OK|wx.ICON_ERROR)
                     message.ShowModal()
                     message.Destroy()
             else:
-                message = wxMessageDialog(self, "%s is not a valid folder!"%os.path.dirname(filepath), "Error", wxOK|wxICON_ERROR)
+                message = wx.MessageDialog(self, "%s is not a valid folder!"%os.path.dirname(filepath), "Error", wx.OK|wx.ICON_ERROR)
                 message.ShowModal()
                 message.Destroy()
             self.RefreshTitle()
@@ -661,7 +636,7 @@
         if selected != -1:
             window = self.TabsOpened.GetPage(selected)
             window.SetMode(MODE_SELECTION)
-        self.ToolBar.ToggleTool(wxID_PLCOPENEDITORTOOLBARSELECTION, True)
+        self.ToolBar.ToggleTool(ID_PLCOPENEDITORTOOLBARSELECTION, True)
 
     def ResetToolToggle(self, id):
         tool = self.ToolBar.FindById(id)
@@ -674,14 +649,14 @@
         event.Skip()
     
     def OnCommentTool(self, event):
-        self.ResetToolToggle(wxID_PLCOPENEDITORTOOLBARCOMMENT)
+        self.ResetToolToggle(ID_PLCOPENEDITORTOOLBARCOMMENT)
         selected = self.TabsOpened.GetSelection()
         if selected != -1:
             self.TabsOpened.GetPage(selected).SetMode(MODE_COMMENT)
         event.Skip()
     
     def OnVariableTool(self, event):
-        self.ResetToolToggle(wxID_PLCOPENEDITORTOOLBARVARIABLE)
+        self.ResetToolToggle(ID_PLCOPENEDITORTOOLBARVARIABLE)
         selected = self.TabsOpened.GetSelection()
         if selected != -1:
             self.TabsOpened.GetPage(selected).SetMode(MODE_VARIABLE)
@@ -694,21 +669,21 @@
         event.Skip()
         
     def OnConnectionTool(self, event):
-        self.ResetToolToggle(wxID_PLCOPENEDITORTOOLBARCONNECTION)
+        self.ResetToolToggle(ID_PLCOPENEDITORTOOLBARCONNECTION)
         selected = self.TabsOpened.GetSelection()
         if selected != -1:
             self.TabsOpened.GetPage(selected).SetMode(MODE_CONNECTION)
         event.Skip()
 
     def OnWireTool(self, event):
-        self.ResetToolToggle(wxID_PLCOPENEDITORTOOLBARWIRE)
+        self.ResetToolToggle(ID_PLCOPENEDITORTOOLBARWIRE)
         selected = self.TabsOpened.GetSelection()
         if selected != -1:
             self.TabsOpened.GetPage(selected).SetMode(MODE_WIRE)
         event.Skip()
 
     def OnPowerRailTool(self, event):
-        self.ResetToolToggle(wxID_PLCOPENEDITORTOOLBARPOWERRAIL)
+        self.ResetToolToggle(ID_PLCOPENEDITORTOOLBARPOWERRAIL)
         selected = self.TabsOpened.GetSelection()
         if selected != -1:
             self.TabsOpened.GetPage(selected).SetMode(MODE_POWERRAIL)
@@ -721,7 +696,7 @@
         event.Skip()
     
     def OnCoilTool(self, event):
-        self.ResetToolToggle(wxID_PLCOPENEDITORTOOLBARCOIL)
+        self.ResetToolToggle(ID_PLCOPENEDITORTOOLBARCOIL)
         selected = self.TabsOpened.GetSelection()
         if selected != -1:
             self.TabsOpened.GetPage(selected).SetMode(MODE_COIL)
@@ -729,7 +704,7 @@
     
     def OnContactTool(self, event):
         if self.DrawingMode == FREEDRAWING_MODE:
-            self.ResetToolToggle(wxID_PLCOPENEDITORTOOLBARCONTACT)
+            self.ResetToolToggle(ID_PLCOPENEDITORTOOLBARCONTACT)
         selected = self.TabsOpened.GetSelection()
         if selected != -1:
             if self.DrawingMode == FREEDRAWING_MODE:
@@ -745,7 +720,7 @@
         event.Skip()    
     
     def OnInitialStepTool(self, event):
-        self.ResetToolToggle(wxID_PLCOPENEDITORTOOLBARINITIALSTEP)
+        self.ResetToolToggle(ID_PLCOPENEDITORTOOLBARINITIALSTEP)
         selected = self.TabsOpened.GetSelection()
         if selected != -1:
             self.TabsOpened.GetPage(selected).SetMode(MODE_INITIALSTEP)
@@ -753,7 +728,7 @@
     
     def OnStepTool(self, event):
         if self.GetDrawingMode() == FREEDRAWING_MODE:
-            self.ResetToolToggle(wxID_PLCOPENEDITORTOOLBARSTEP)
+            self.ResetToolToggle(ID_PLCOPENEDITORTOOLBARSTEP)
         selected = self.TabsOpened.GetSelection()
         if selected != -1:
             if self.GetDrawingMode() == FREEDRAWING_MODE:
@@ -764,7 +739,7 @@
 
     def OnActionBlockTool(self, event):
         if self.GetDrawingMode() == FREEDRAWING_MODE:
-            self.ResetToolToggle(wxID_PLCOPENEDITORTOOLBARACTIONBLOCK)
+            self.ResetToolToggle(ID_PLCOPENEDITORTOOLBARACTIONBLOCK)
         selected = self.TabsOpened.GetSelection()
         if selected != -1:
             if self.GetDrawingMode() == FREEDRAWING_MODE:
@@ -774,7 +749,7 @@
         event.Skip()
 
     def OnTransitionTool(self, event):
-        self.ResetToolToggle(wxID_PLCOPENEDITORTOOLBARTRANSITION)
+        self.ResetToolToggle(ID_PLCOPENEDITORTOOLBARTRANSITION)
         selected = self.TabsOpened.GetSelection()
         if selected != -1:
             self.TabsOpened.GetPage(selected).SetMode(MODE_TRANSITION)
@@ -782,7 +757,7 @@
 
     def OnDivergenceTool(self, event):
         if self.GetDrawingMode() == FREEDRAWING_MODE:
-            self.ResetToolToggle(wxID_PLCOPENEDITORTOOLBARDIVERGENCE)
+            self.ResetToolToggle(ID_PLCOPENEDITORTOOLBARDIVERGENCE)
         selected = self.TabsOpened.GetSelection()
         if selected != -1:
             if self.GetDrawingMode() == FREEDRAWING_MODE:
@@ -793,7 +768,7 @@
     
     def OnJumpTool(self, event):
         if self.GetDrawingMode() == FREEDRAWING_MODE:
-            self.ResetToolToggle(wxID_PLCOPENEDITORTOOLBARJUMP)
+            self.ResetToolToggle(ID_PLCOPENEDITORTOOLBARJUMP)
         selected = self.TabsOpened.GetSelection()
         if selected != -1:
             if self.GetDrawingMode() == FREEDRAWING_MODE:
@@ -829,8 +804,8 @@
             block_name = self.ProjectTree.GetItemText(item)
             block_type = self.Controler.GetPouType(block_name)
             if block_type != "program":
-                data = wxTextDataObject(str((block_name, block_type, "")))
-                dragSource = wxDropSource(self.ProjectTree)
+                data = wx.TextDataObject(str((block_name, block_type, "")))
+                dragSource = wx.DropSource(self.ProjectTree)
                 dragSource.SetData(data)
                 dragSource.DoDragDrop()
 
@@ -853,8 +828,8 @@
                         message = "\"%s\" pou already exists!"%new_name
                         abort = True
                     elif new_name.upper() in self.Controler.GetProjectPouVariables():
-                        messageDialog = wxMessageDialog(self, "A variable is defined with \"%s\" as name. It can generate a conflict. Do you wish to continue?"%new_name, "Error", wxYES_NO|wxICON_QUESTION)
-                        if messageDialog.ShowModal() == wxID_NO:
+                        messageDialog = wx.MessageDialog(self, "A variable is defined with \"%s\" as name. It can generate a conflict. Do you wish to continue?"%new_name, "Error", wx.YES_NO|wx.ICON_QUESTION)
+                        if messageDialog.ShowModal() == wx.ID_NO:
                             abort = True
                         messageDialog.Destroy()
                     if not abort:
@@ -901,14 +876,14 @@
                         self.RefreshTabsOpenedTitles()
             if message or abort:
                 if message:
-                    messageDialog = wxMessageDialog(self, message, "Error", wxOK|wxICON_ERROR)
+                    messageDialog = wx.MessageDialog(self, message, "Error", wx.OK|wx.ICON_ERROR)
                     messageDialog.ShowModal()
                     messageDialog.Destroy()
                 item = event.GetItem()
-                wxCallAfter(self.ProjectTree.EditLabel, item)
+                wx.CallAfter(self.ProjectTree.EditLabel, item)
                 event.Veto()
             else:
-                wxCallAfter(self.RefreshProjectTree)
+                wx.CallAfter(self.RefreshProjectTree)
                 event.Skip()
 
     def OnProjectTreeItemBeginEdit(self, event):
@@ -942,7 +917,7 @@
 ##                values["returnType"] = self.Controler.GetPouInterfaceReturnTypeByName(item_name)
 ##                values["data"] = self.Controler.GetPouInterfaceVarsByName(item_name)
 ##                dialog.SetValues(values)
-##                if dialog.ShowModal() == wxID_OK:
+##                if dialog.ShowModal() == wx.ID_OK:
 ##                    new_values = dialog.GetValues()
 ##                    if "returnType" in new_values:
 ##                        self.Controler.SetPouInterfaceReturnType(item_name, new_values["returnType"])
@@ -964,7 +939,7 @@
 ##                dialog.SetPouNames(self.Controler.GetProjectPouNames())
 ##                values = {"data" : self.Controler.GetConfigurationGlobalVars(item_name)}
 ##                dialog.SetValues(values)
-##                if dialog.ShowModal() == wxID_OK:
+##                if dialog.ShowModal() == wx.ID_OK:
 ##                    new_values = dialog.GetValues()
 ##                    self.Controler.SetConfigurationGlobalVars(item_name, new_values["data"])
 ##                dialog.Destroy()
@@ -980,7 +955,7 @@
 ##                    dialog = EditVariableDialog(self, item_name, None, False, name)
 ##                    values = {"data" : self.Controler.GetConfigurationResourceGlobalVars(config_name, item_name)}
 ##                    dialog.SetValues(values)
-##                    if dialog.ShowModal() == wxID_OK:
+##                    if dialog.ShowModal() == wx.ID_OK:
 ##                        new_values = dialog.GetValues()
 ##                        self.Controler.SetConfigurationResourceGlobalVars(config_name, item_name, new_values["data"])
 ##                    dialog.Destroy()
@@ -1223,9 +1198,9 @@
             for radio, modes, id, method, picture, help in ToolBarItems[language]:
                 if modes & self.DrawingMode:
                     if radio or self.DrawingMode == FREEDRAWING_MODE:
-                        self.ToolBar.AddRadioTool(id, wxBitmap(os.path.join(CWD, picture)), wxNullBitmap, help)
+                        self.ToolBar.AddRadioTool(id, wx.Bitmap(os.path.join(CWD, picture)), wx.NullBitmap, help)
                     else:
-                        self.ToolBar.AddSimpleTool(id, wxBitmap(os.path.join(CWD, picture)), help)
+                        self.ToolBar.AddSimpleTool(id, wx.Bitmap(os.path.join(CWD, picture)), help)
                     self.Bind(wx.EVT_TOOL, getattr(self, method), id=id)
                     self.CurrentToolBar.append(id)
         self.ResetCurrentMode()
@@ -1292,7 +1267,7 @@
     def OnAddPouMenu(self, event):
         dialog = PouDialog(self)
         dialog.SetPouNames(self.Controler.GetProjectPouNames())
-        if dialog.ShowModal() == wxID_OK:
+        if dialog.ShowModal() == wx.ID_OK:
             values = dialog.GetValues()
             self.Controler.ProjectAddPou(values["pouName"], values["pouType"], values["language"])
             self.RefreshProjectTree()
@@ -1301,8 +1276,8 @@
 
     def OnRemovePouMenu(self, event):
         pous = self.Controler.GetProjectPouNames()
-        dialog = wxSingleChoiceDialog(self, "Select POU to remove:", "POU Remove", pous, wxOK|wxCANCEL)
-        if dialog.ShowModal() == wxID_OK:
+        dialog = wx.SingleChoiceDialog(self, "Select POU to remove:", "POU Remove", pous, wx.OK|wx.CANCEL)
+        if dialog.ShowModal() == wx.ID_OK:
             selected = dialog.GetStringSelection()
             if not self.Controler.PouIsUsed(selected):
                 self.Controler.ProjectRemovePou(selected)
@@ -1315,14 +1290,14 @@
                 self.RefreshProjectTree()
                 self.RefreshToolBar()
             else:
-                message = wxMessageDialog(self, "%s is used by one or more POUs. It can't be removed!"%selected, "Error", wxOK|wxICON_ERROR)
+                message = wx.MessageDialog(self, "%s is used by one or more POUs. It can't be removed!"%selected, "Error", wx.OK|wx.ICON_ERROR)
                 message.ShowModal()
                 message.Destroy()
         event.Skip()
 
     def OnAddConfigurationMenu(self, event):
-        dialog = wxTextEntryDialog(self, "Enter configuration name:", "Create new configuration", "", wxOK|wxCANCEL)
-        if dialog.ShowModal() == wxID_OK:
+        dialog = wx.TextEntryDialog(self, "Enter configuration name:", "Create new configuration", "", wx.OK|wx.CANCEL)
+        if dialog.ShowModal() == wx.ID_OK:
             value = dialog.GetValue()
             self.Controler.ProjectAddConfiguration(value)
             self.RefreshProjectTree()
@@ -1331,8 +1306,8 @@
 
     def OnRemoveConfigurationMenu(self, event):
         configs = self.Controler.GetProjectConfigNames()
-        dialog = wxSingleChoiceDialog(self, "Select Configuration to remove:", "Remove configuration", configs, wxOK|wxCANCEL)
-        if dialog.ShowModal() == wxID_OK:
+        dialog = wx.SingleChoiceDialog(self, "Select Configuration to remove:", "Remove configuration", configs, wx.OK|wx.CANCEL)
+        if dialog.ShowModal() == wx.ID_OK:
             selected = dialog.GetStringSelection()
             self.Controler.ProjectRemoveConfiguration(selected)
             self.RefreshProjectTree()
@@ -1344,7 +1319,7 @@
             pouname = self.ProjectTree.GetItemText(selected)
             if self.Controler.GetPouBodyType(pouname) == "SFC":
                 dialog = PouTransitionDialog(self)
-                if dialog.ShowModal() == wxID_OK: 
+                if dialog.ShowModal() == wx.ID_OK: 
                     values = dialog.GetValues()
                     self.Controler.ProjectAddPouTransition(pouname, values["transitionName"], values["language"])
                     self.RefreshProjectTree()
@@ -1357,8 +1332,8 @@
             pouname = self.ProjectTree.GetItemText(selected)
             if self.Controler.GetPouBodyType(pouname) == "SFC":
                 transitions = self.Controler.GetPouTransitions(pouname)
-                dialog = wxSingleChoiceDialog(self, "Select Transition to remove:", "Remove transition", transitions, wxOK|wxCANCEL)
-                if dialog.ShowModal() == wxID_OK: 
+                dialog = wx.SingleChoiceDialog(self, "Select Transition to remove:", "Remove transition", transitions, wx.OK|wx.CANCEL)
+                if dialog.ShowModal() == wx.ID_OK: 
                     selected = dialog.GetStringSelection()
                     self.Controler.ProjectRemovePouTransition(pouname, selected)
                     self.RefreshProjectTree()
@@ -1371,7 +1346,7 @@
             pouname = self.ProjectTree.GetItemText(selected)
             if self.Controler.GetPouBodyType(pouname) == "SFC":
                 dialog = PouActionDialog(self)
-                if dialog.ShowModal() == wxID_OK:
+                if dialog.ShowModal() == wx.ID_OK:
                     values = dialog.GetValues()
                     self.Controler.ProjectAddPouAction(pouname, values["actionName"], values["language"])
                     self.RefreshProjectTree()
@@ -1384,8 +1359,8 @@
             pouname = self.ProjectTree.GetItemText(selected)
             if self.Controler.GetPouBodyType(pouname) == "SFC":
                 actions = self.Controler.GetPouActions(pouname)
-                dialog = wxSingleChoiceDialog(self, "Select Action to remove:", "Remove action", actions, wxOK|wxCANCEL)
-                if dialog.ShowModal() == wxID_OK: 
+                dialog = wx.SingleChoiceDialog(self, "Select Action to remove:", "Remove action", actions, wx.OK|wx.CANCEL)
+                if dialog.ShowModal() == wx.ID_OK: 
                     selected = dialog.GetStringSelection()
                     self.Controler.ProjectRemovePouAction(pouname, selected)
                     self.RefreshProjectTree()
@@ -1396,8 +1371,8 @@
         selected = self.ProjectTree.GetSelection()
         if self.ProjectTree.GetPyData(selected) == ITEM_CONFIGURATION:
             config_name = self.ProjectTree.GetItemText(selected)
-            dialog = wxTextEntryDialog(self, "Enter Resource name:", "Create new Resource", "", wxOK|wxCANCEL)
-            if dialog.ShowModal() == wxID_OK:
+            dialog = wx.TextEntryDialog(self, "Enter Resource name:", "Create new Resource", "", wx.OK|wx.CANCEL)
+            if dialog.ShowModal() == wx.ID_OK:
                 value = dialog.GetValue()
                 self.Controler.ProjectAddConfigurationResource(config_name, value)
                 self.RefreshProjectTree()
@@ -1413,8 +1388,8 @@
             for config in infos["configs"]:
                 if config["name"] == config_name:
                     resources = config["resources"]
-            dialog = wxSingleChoiceDialog(self, "Select Resource to remove:", "Remove resource", resources, wxOK|wxCANCEL)
-            if dialog.ShowModal() == wxID_OK:
+            dialog = wx.SingleChoiceDialog(self, "Select Resource to remove:", "Remove resource", resources, wx.OK|wx.CANCEL)
+            if dialog.ShowModal() == wx.ID_OK:
                 resource = dialog.GetStringSelection()
                 self.Controler.ProjectRemoveConfigurationResource(config_name, resource)
                 self.RefreshProjectTree()
@@ -1424,7 +1399,7 @@
     def OnPLCOpenMenu(self, event):
         result = OpenPDFDoc()
         if type(result) == StringType:
-            message = wxMessageDialog(self, result, "ERROR", wxOK|wxICON_ERROR)
+            message = wx.MessageDialog(self, result, "ERROR", wx.OK|wx.ICON_ERROR)
             message.ShowModal()
             message.Destroy()
         event.Skip()
@@ -1439,108 +1414,127 @@
 #                            Create Project Dialog
 #-------------------------------------------------------------------------------
 
-[wxID_PROJECTDIALOG, wxID_PROJECTDIALOGMAINPANEL, 
- wxID_PROJECTDIALOGPROJECTNAME, wxID_PROJECTDIALOGCOMPANYNAME, 
- wxID_PROJECTDIALOGCOMPANYURL, wxID_PROJECTDIALOGPRODUCTNAME, 
- wxID_PROJECTDIALOGPRODUCTVERSION, wxID_PROJECTDIALOGPRODUCTRELEASE, 
- wxID_PROJECTDIALOGCONTENTDESCRIPTION, wxID_PROJECTDIALOGSTATICTEXT1,
- wxID_PROJECTDIALOGSTATICTEXT2, wxID_PROJECTDIALOGSTATICTEXT3, 
- wxID_PROJECTDIALOGSTATICTEXT4, wxID_PROJECTDIALOGSTATICTEXT5, 
- wxID_PROJECTDIALOGSTATICTEXT6, wxID_PROJECTDIALOGSTATICTEXT7, 
-] = [wx.NewId() for _init_ctrls in range(16)]
+[ID_PROJECTDIALOG, ID_PROJECTDIALOGPROJECTNAME, 
+ ID_PROJECTDIALOGCOMPANYNAME, ID_PROJECTDIALOGCOMPANYURL, 
+ ID_PROJECTDIALOGPRODUCTNAME, ID_PROJECTDIALOGPRODUCTVERSION, 
+ ID_PROJECTDIALOGPRODUCTRELEASE, ID_PROJECTDIALOGCONTENTDESCRIPTION, 
+ ID_PROJECTDIALOGSTATICTEXT1, ID_PROJECTDIALOGSTATICTEXT2, 
+ ID_PROJECTDIALOGSTATICTEXT3, ID_PROJECTDIALOGSTATICTEXT4, 
+ ID_PROJECTDIALOGSTATICTEXT5, ID_PROJECTDIALOGSTATICTEXT6, 
+ ID_PROJECTDIALOGSTATICTEXT7, 
+] = [wx.NewId() for _init_ctrls in range(15)]
         
 class ProjectDialog(wx.Dialog):
     def _init_coll_flexGridSizer1_Items(self, parent):
-        # generated method, don't edit
-
-        parent.AddWindow(self.MainPanel, 0, border=0, flag=0)
-
+        parent.AddSizer(self.MainSizer, 0, border=20, flag=wx.GROW|wx.TOP|wx.LEFT|wx.RIGHT)
+        parent.AddSizer(self.ButtonSizer, 0, border=20, flag=wx.ALIGN_RIGHT|wx.BOTTOM|wx.LEFT|wx.RIGHT)
+        
+    def _init_coll_flexGridSizer1_Growables(self, parent):
+        parent.AddGrowableCol(0)
+        parent.AddGrowableRow(0)
+    
+    def _init_coll_MainSizer_Items(self, parent):
+        parent.AddWindow(self.staticText1, 0, border=0, flag=wx.GROW)
+        parent.AddWindow(self.ProjectName, 0, border=0, flag=wx.GROW)
+        parent.AddWindow(self.staticText2, 0, border=0, flag=wx.GROW)
+        parent.AddWindow(self.CompanyName, 0, border=0, flag=wx.GROW)
+        parent.AddWindow(self.staticText3, 0, border=0, flag=wx.GROW)
+        parent.AddWindow(self.CompanyURL, 0, border=0, flag=wx.GROW)
+        parent.AddWindow(self.staticText4, 0, border=0, flag=wx.GROW)
+        parent.AddWindow(self.ProductName, 0, border=0, flag=wx.GROW)
+        parent.AddWindow(self.staticText5, 0, border=0, flag=wx.GROW)
+        parent.AddWindow(self.ProductVersion, 0, border=0, flag=wx.GROW)
+        parent.AddWindow(self.staticText6, 0, border=0, flag=wx.GROW)
+        parent.AddWindow(self.ProductRelease, 0, border=0, flag=wx.GROW)
+        parent.AddWindow(self.staticText7, 0, border=0, flag=wx.GROW)
+        parent.AddWindow(self.ContentDescription, 0, border=0, flag=wx.GROW)
+        
+    def _init_coll_MainSizer_Growables(self, parent):
+        parent.AddGrowableCol(1)
+        parent.AddGrowableRow(6)
+        
     def _init_sizers(self):
-        # generated method, don't edit
-        self.flexGridSizer1 = wx.FlexGridSizer(cols=1, hgap=0, rows=2, vgap=0)
+        self.flexGridSizer1 = wx.FlexGridSizer(cols=1, hgap=0, rows=2, vgap=10)
+        self.MainSizer = wx.FlexGridSizer(cols=2, hgap=0, rows=7, vgap=15)
 
         self._init_coll_flexGridSizer1_Items(self.flexGridSizer1)
+        self._init_coll_flexGridSizer1_Growables(self.flexGridSizer1)
+        self._init_coll_MainSizer_Items(self.MainSizer)
+        self._init_coll_MainSizer_Growables(self.MainSizer)
 
         self.SetSizer(self.flexGridSizer1)
 
     def _init_ctrls(self, prnt):
-        # generated method, don't edit
-        wx.Dialog.__init__(self, id=wxID_PROJECTDIALOG,
+        wx.Dialog.__init__(self, id=ID_PROJECTDIALOG,
               name='ProjectDialog', parent=prnt, pos=wx.Point(376, 223),
               size=wx.Size(550, 450), style=wx.DEFAULT_DIALOG_STYLE,
               title='Create a new project')
         self.SetClientSize(wx.Size(550, 450))
 
-        self.MainPanel = wx.Panel(id=wxID_PROJECTDIALOGMAINPANEL,
-              name='MainPanel', parent=self, pos=wx.Point(0, 0),
-              size=wx.Size(450, 400), style=wx.TAB_TRAVERSAL)
-        self.MainPanel.SetAutoLayout(True)
-
-        self.staticText1 = wx.StaticText(id=wxID_PROJECTDIALOGSTATICTEXT1,
-              label='Project Name (required):', name='staticText1', parent=self.MainPanel,
-              pos=wx.Point(24, 24), size=wx.Size(215, 17), style=0)
-
-        self.ProjectName = wx.TextCtrl(id=wxID_PROJECTDIALOGPROJECTNAME,
-              name='ProjectName', parent=self.MainPanel, pos=wx.Point(224, 24), 
-              size=wx.Size(295, 24), style=0)
-
-        self.staticText2 = wx.StaticText(id=wxID_PROJECTDIALOGSTATICTEXT2,
-              label='Company Name (required):', name='staticText2', parent=self.MainPanel,
-              pos=wx.Point(24, 64), size=wx.Size(215, 17), style=0)
-
-        self.CompanyName = wx.TextCtrl(id=wxID_PROJECTDIALOGCOMPANYNAME,
-              name='CompanyName', parent=self.MainPanel, pos=wx.Point(224, 64),
-              size=wx.Size(295, 24), style=0)
-
-        self.staticText3 = wx.StaticText(id=wxID_PROJECTDIALOGSTATICTEXT3,
-              label='Company URL (optional):', name='staticText3', parent=self.MainPanel,
-              pos=wx.Point(24, 104), size=wx.Size(215, 17), style=0)
-
-        self.CompanyURL = wx.TextCtrl(id=wxID_PROJECTDIALOGCOMPANYURL,
-              name='CompanyURL', parent=self.MainPanel, pos=wx.Point(224, 104),
-              size=wx.Size(295, 24), style=0)
-
-        self.staticText4 = wx.StaticText(id=wxID_PROJECTDIALOGSTATICTEXT4,
-              label='Product Name (required):', name='staticText4', parent=self.MainPanel,
-              pos=wx.Point(24, 144), size=wx.Size(215, 17), style=0)
-
-        self.ProductName = wx.TextCtrl(id=wxID_PROJECTDIALOGPRODUCTNAME,
-              name='ProductName', parent=self.MainPanel, pos=wx.Point(224, 144),
-              size=wx.Size(295, 24), style=0)
-
-        self.staticText5 = wx.StaticText(id=wxID_PROJECTDIALOGSTATICTEXT5,
-              label='Product Version (required):', name='staticText5', parent=self.MainPanel,
-              pos=wx.Point(24, 184), size=wx.Size(215, 17), style=0)
-
-        self.ProductVersion = wx.TextCtrl(id=wxID_PROJECTDIALOGPRODUCTVERSION,
-              name='ProductVersion', parent=self.MainPanel, pos=wx.Point(224, 184),
-              size=wx.Size(295, 24), style=0)
-
-        self.staticText6 = wx.StaticText(id=wxID_PROJECTDIALOGSTATICTEXT6,
-              label='Product Release (optional):', name='staticText6', parent=self.MainPanel,
-              pos=wx.Point(24, 224), size=wx.Size(215, 17), style=0)
-
-        self.ProductRelease = wx.TextCtrl(id=wxID_PROJECTDIALOGPRODUCTRELEASE,
-              name='ProductRelease', parent=self.MainPanel, pos=wx.Point(224, 224),
-              size=wx.Size(295, 24), style=0)
-
-        self.staticText7 = wx.StaticText(id=wxID_PROJECTDIALOGSTATICTEXT7,
-              label='Content Description (optional):', name='staticText7', parent=self.MainPanel,
-              pos=wx.Point(24, 264), size=wx.Size(215, 17), style=0)
-
-        self.ContentDescription = wx.TextCtrl(id=wxID_PROJECTDIALOGCONTENTDESCRIPTION,
-              name='ProductRelease', parent=self.MainPanel, pos=wx.Point(224, 264),
-              size=wx.Size(295, 120), style=wxTE_MULTILINE)
-
+        self.staticText1 = wx.StaticText(id=ID_PROJECTDIALOGSTATICTEXT1,
+              label='Project Name (required):', name='staticText1', parent=self,
+              pos=wx.Point(0, 0), size=wx.Size(200, 17), style=0)
+
+        self.ProjectName = wx.TextCtrl(id=ID_PROJECTDIALOGPROJECTNAME,
+              name='ProjectName', parent=self, pos=wx.Point(0, 0), 
+              size=wx.Size(0, 24), style=0)
+
+        self.staticText2 = wx.StaticText(id=ID_PROJECTDIALOGSTATICTEXT2,
+              label='Company Name (required):', name='staticText2', parent=self,
+              pos=wx.Point(0, 0), size=wx.Size(200, 17), style=0)
+
+        self.CompanyName = wx.TextCtrl(id=ID_PROJECTDIALOGCOMPANYNAME,
+              name='CompanyName', parent=self, pos=wx.Point(0, 0),
+              size=wx.Size(0, 24), style=0)
+
+        self.staticText3 = wx.StaticText(id=ID_PROJECTDIALOGSTATICTEXT3,
+              label='Company URL (optional):', name='staticText3', parent=self,
+              pos=wx.Point(0, 0), size=wx.Size(200, 17), style=0)
+
+        self.CompanyURL = wx.TextCtrl(id=ID_PROJECTDIALOGCOMPANYURL,
+              name='CompanyURL', parent=self, pos=wx.Point(0, 0),
+              size=wx.Size(0, 24), style=0)
+
+        self.staticText4 = wx.StaticText(id=ID_PROJECTDIALOGSTATICTEXT4,
+              label='Product Name (required):', name='staticText4', parent=self,
+              pos=wx.Point(0, 0), size=wx.Size(200, 17), style=0)
+
+        self.ProductName = wx.TextCtrl(id=ID_PROJECTDIALOGPRODUCTNAME,
+              name='ProductName', parent=self, pos=wx.Point(0, 0),
+              size=wx.Size(0, 24), style=0)
+
+        self.staticText5 = wx.StaticText(id=ID_PROJECTDIALOGSTATICTEXT5,
+              label='Product Version (required):', name='staticText5', parent=self,
+              pos=wx.Point(0, 0), size=wx.Size(200, 17), style=0)
+
+        self.ProductVersion = wx.TextCtrl(id=ID_PROJECTDIALOGPRODUCTVERSION,
+              name='ProductVersion', parent=self, pos=wx.Point(0, 0),
+              size=wx.Size(0, 24), style=0)
+
+        self.staticText6 = wx.StaticText(id=ID_PROJECTDIALOGSTATICTEXT6,
+              label='Product Release (optional):', name='staticText6', parent=self,
+              pos=wx.Point(0, 0), size=wx.Size(200, 17), style=0)
+
+        self.ProductRelease = wx.TextCtrl(id=ID_PROJECTDIALOGPRODUCTRELEASE,
+              name='ProductRelease', parent=self, pos=wx.Point(0, 0),
+              size=wx.Size(0, 24), style=0)
+
+        self.staticText7 = wx.StaticText(id=ID_PROJECTDIALOGSTATICTEXT7,
+              label='Content Description (optional):', name='staticText7', parent=self,
+              pos=wx.Point(0, 0), size=wx.Size(200, 17), style=0)
+
+        self.ContentDescription = wx.TextCtrl(id=ID_PROJECTDIALOGCONTENTDESCRIPTION,
+              name='ProductRelease', parent=self, pos=wx.Point(0, 0),
+              size=wx.Size(0, 120), style=wx.TE_MULTILINE)
+
+        self.ButtonSizer = self.CreateButtonSizer(wx.OK|wx.CANCEL|wx.CENTRE)
+        self.Bind(wx.EVT_BUTTON, self.OnOK, id=self.ButtonSizer.GetAffirmativeButton().GetId())
+        
         self._init_sizers()
 
     def __init__(self, parent):
         self._init_ctrls(parent)
-        self.ButtonSizer = self.CreateButtonSizer(wxOK|wxCANCEL|wxCENTRE)
-        self.flexGridSizer1.Add(self.ButtonSizer, 1, wxALIGN_RIGHT)
-        
-        EVT_BUTTON(self, self.ButtonSizer.GetAffirmativeButton().GetId(), self.OnOK)
-    
+        
     def OnOK(self, event):
         error = []
         if self.ProjectName.GetValue() == "":
@@ -1560,11 +1554,11 @@
                     text += " and %s"%item
                 else:
                     text += ", %s"%item 
-            message = wxMessageDialog(self, "Form isn't complete. %s must be filled!"%text, "Error", wxOK|wxICON_ERROR)
+            message = wx.MessageDialog(self, "Form isn't complete. %s must be filled!"%text, "Error", wx.OK|wx.ICON_ERROR)
             message.ShowModal()
             message.Destroy()
         else:
-            self.EndModal(wxID_OK)
+            self.EndModal(wx.ID_OK)
 
     def SetValues(self, values):
         for item, value in values.items():
@@ -1601,69 +1595,81 @@
 #                            Create Pou Dialog
 #-------------------------------------------------------------------------------
 
-[wxID_POUDIALOG, wxID_POUDIALOGMAINPANEL, wxID_POUDIALOGPOUNAME, 
- wxID_POUDIALOGPOUTYPE, wxID_POUDIALOGLANGUAGE, wxID_POUDIALOGSTATICTEXT1,
- wxID_POUDIALOGSTATICTEXT2, wxID_POUDIALOGSTATICTEXT3, 
-] = [wx.NewId() for _init_ctrls in range(8)]
+[ID_POUDIALOG, ID_POUDIALOGPOUNAME, 
+ ID_POUDIALOGPOUTYPE, ID_POUDIALOGLANGUAGE, ID_POUDIALOGSTATICTEXT1,
+ ID_POUDIALOGSTATICTEXT2, ID_POUDIALOGSTATICTEXT3, 
+] = [wx.NewId() for _init_ctrls in range(7)]
 
 class PouDialog(wx.Dialog):
     def _init_coll_flexGridSizer1_Items(self, parent):
-        # generated method, don't edit
-
-        parent.AddWindow(self.MainPanel, 0, border=0, flag=0)
-
+        parent.AddSizer(self.MainSizer, 0, border=20, flag=wx.GROW|wx.TOP|wx.LEFT|wx.RIGHT)
+        parent.AddSizer(self.ButtonSizer, 0, border=20, flag=wx.ALIGN_RIGHT|wx.BOTTOM|wx.LEFT|wx.RIGHT)
+        
+    def _init_coll_flexGridSizer1_Growables(self, parent):
+        parent.AddGrowableCol(0)
+        parent.AddGrowableRow(0)
+    
+    def _init_coll_MainSizer_Items(self, parent):
+        parent.AddWindow(self.staticText1, 0, border=0, flag=wx.GROW)
+        parent.AddWindow(self.PouName, 0, border=0, flag=wx.GROW)
+        parent.AddWindow(self.staticText2, 0, border=0, flag=wx.GROW)
+        parent.AddWindow(self.PouType, 0, border=0, flag=wx.GROW)
+        parent.AddWindow(self.staticText3, 0, border=0, flag=wx.GROW)
+        parent.AddWindow(self.Language, 0, border=0, flag=wx.GROW)
+        
+    def _init_coll_MainSizer_Growables(self, parent):
+        parent.AddGrowableCol(1)
+        
     def _init_sizers(self):
-        # generated method, don't edit
-        self.flexGridSizer1 = wx.FlexGridSizer(cols=1, hgap=0, rows=2, vgap=0)
+        self.flexGridSizer1 = wx.FlexGridSizer(cols=1, hgap=0, rows=2, vgap=10)
+        self.MainSizer = wx.FlexGridSizer(cols=2, hgap=0, rows=3, vgap=15)
 
         self._init_coll_flexGridSizer1_Items(self.flexGridSizer1)
+        self._init_coll_flexGridSizer1_Growables(self.flexGridSizer1)
+        self._init_coll_MainSizer_Items(self.MainSizer)
+        self._init_coll_MainSizer_Growables(self.MainSizer)
 
         self.SetSizer(self.flexGridSizer1)
-
+        
     def _init_ctrls(self, prnt):
-        # generated method, don't edit
-        wx.Dialog.__init__(self, id=wxID_POUDIALOG,
+        wx.Dialog.__init__(self, id=ID_POUDIALOG,
               name='PouDialog', parent=prnt, pos=wx.Point(376, 223),
               size=wx.Size(300, 200), style=wx.DEFAULT_DIALOG_STYLE,
               title='Create a new POU')
         self.SetClientSize(wx.Size(300, 200))
 
-        self.MainPanel = wx.Panel(id=wxID_POUDIALOGMAINPANEL,
-              name='MainPanel', parent=self, pos=wx.Point(0, 0),
-              size=wx.Size(300, 200), style=wx.TAB_TRAVERSAL)
-        self.MainPanel.SetAutoLayout(True)
-
-        self.staticText1 = wx.StaticText(id=wxID_POUDIALOGSTATICTEXT1,
-              label='POU Name:', name='staticText1', parent=self.MainPanel,
-              pos=wx.Point(24, 24), size=wx.Size(95, 17), style=0)
-
-        self.PouName = wx.TextCtrl(id=wxID_POUDIALOGPOUNAME,
-              name='POUName', parent=self.MainPanel, pos=wx.Point(104, 24), 
-              size=wx.Size(150, 24), style=0)
-
-        self.staticText2 = wx.StaticText(id=wxID_POUDIALOGSTATICTEXT2,
-              label='POU Type:', name='staticText2', parent=self.MainPanel,
-              pos=wx.Point(24, 64), size=wx.Size(95, 17), style=0)
-
-        self.PouType = wx.Choice(id=wxID_POUDIALOGPOUTYPE,
-              name='POUType', parent=self.MainPanel, pos=wx.Point(104, 64),
-              size=wx.Size(150, 24), style=0)
-        EVT_CHOICE(self, wxID_POUDIALOGPOUTYPE, self.OnTypeChanged)
-
-        self.staticText3 = wx.StaticText(id=wxID_POUDIALOGSTATICTEXT3,
-              label='Language:', name='staticText3', parent=self.MainPanel,
-              pos=wx.Point(24, 104), size=wx.Size(95, 17), style=0)
-
-        self.Language = wx.Choice(id=wxID_POUDIALOGLANGUAGE,
-              name='Language', parent=self.MainPanel, pos=wx.Point(104, 104),
-              size=wx.Size(150, 24), style=0)
-
+        self.staticText1 = wx.StaticText(id=ID_POUDIALOGSTATICTEXT1,
+              label='POU Name:', name='staticText1', parent=self,
+              pos=wx.Point(0, 0), size=wx.Size(100, 17), style=0)
+
+        self.PouName = wx.TextCtrl(id=ID_POUDIALOGPOUNAME,
+              name='POUName', parent=self, pos=wx.Point(0, 0), 
+              size=wx.Size(0, 24), style=0)
+
+        self.staticText2 = wx.StaticText(id=ID_POUDIALOGSTATICTEXT2,
+              label='POU Type:', name='staticText2', parent=self,
+              pos=wx.Point(0, 0), size=wx.Size(100, 17), style=0)
+
+        self.PouType = wx.Choice(id=ID_POUDIALOGPOUTYPE,
+              name='POUType', parent=self, pos=wx.Point(0, 0),
+              size=wx.Size(0, 24), style=0)
+        self.Bind(wx.EVT_CHOICE, self.OnTypeChanged, id=ID_POUDIALOGPOUTYPE)
+
+        self.staticText3 = wx.StaticText(id=ID_POUDIALOGSTATICTEXT3,
+              label='Language:', name='staticText3', parent=self,
+              pos=wx.Point(0, 0), size=wx.Size(100, 17), style=0)
+
+        self.Language = wx.Choice(id=ID_POUDIALOGLANGUAGE,
+              name='Language', parent=self, pos=wx.Point(0, 0),
+              size=wx.Size(0, 24), style=0)
+        
+        self.ButtonSizer = self.CreateButtonSizer(wx.OK|wx.CANCEL|wx.CENTRE)
+        self.Bind(wx.EVT_BUTTON, self.OnOK, id=self.ButtonSizer.GetAffirmativeButton().GetId())
+            
         self._init_sizers()
 
     def __init__(self, parent):
         self._init_ctrls(parent)
-        self.ButtonSizer = self.CreateButtonSizer(wxOK|wxCANCEL|wxCENTRE)
-        self.flexGridSizer1.Add(self.ButtonSizer, 1, wxALIGN_RIGHT)
         
         for option in ["function","functionBlock","program"]:
             self.PouType.Append(option)
@@ -1671,8 +1677,6 @@
 
         self.PouNames = []
 
-        EVT_BUTTON(self, self.ButtonSizer.GetAffirmativeButton().GetId(), self.OnOK)
-    
     def OnOK(self, event):
         error = []
         pou_name = self.PouName.GetValue()
@@ -1691,31 +1695,31 @@
                     text += " and %s"%item
                 else:
                     text += ", %s"%item 
-            message = wxMessageDialog(self, "Form isn't complete. %s must be filled!"%text, "Error", wxOK|wxICON_ERROR)
+            message = wx.MessageDialog(self, "Form isn't complete. %s must be filled!"%text, "Error", wx.OK|wx.ICON_ERROR)
             message.ShowModal()
             message.Destroy()
         elif not TestIdentifier(pou_name):
-            message = wxMessageDialog(self, "\"%s\" is not a valid identifier!"%pou_name, "Error", wxOK|wxICON_ERROR)
+            message = wx.MessageDialog(self, "\"%s\" is not a valid identifier!"%pou_name, "Error", wx.OK|wx.ICON_ERROR)
             message.ShowModal()
             message.Destroy()
         elif pou_name.upper() in IEC_KEYWORDS:
-            message = wxMessageDialog(self, "\"%s\" is a keyword. It can't be used!"%pou_name, "Error", wxOK|wxICON_ERROR)
+            message = wx.MessageDialog(self, "\"%s\" is a keyword. It can't be used!"%pou_name, "Error", wx.OK|wx.ICON_ERROR)
             message.ShowModal()
             message.Destroy()
         elif pou_name.upper() in self.PouNames:
-            message = wxMessageDialog(self, "\"%s\" pou already exists!"%pou_name, "Error", wxOK|wxICON_ERROR)
+            message = wx.MessageDialog(self, "\"%s\" pou already exists!"%pou_name, "Error", wx.OK|wx.ICON_ERROR)
             message.ShowModal()
             message.Destroy()
         else:
-            self.EndModal(wxID_OK)
+            self.EndModal(wx.ID_OK)
 
     def RefreshLanguage(self):
         selection = self.Language.GetStringSelection()
         self.Language.Clear()
         for option in ["IL","ST","LD","FBD","SFC"]:
-            if option != "SFC" or self.PouType.GetStringSelection() == "program":
+            if option != "SFC" or self.PouType.GetStringSelection() != "function":
                 self.Language.Append(option)
-        if self.Language.FindString(selection) != wxNOT_FOUND:
+        if self.Language.FindString(selection) != wx.NOT_FOUND:
             self.Language.SetStringSelection(selection)
 
     def OnTypeChanged(self, event):
@@ -1746,66 +1750,74 @@
 #                          Create Pou Transition Dialog
 #-------------------------------------------------------------------------------
 
-[wxID_POUTRANSITIONDIALOG, wxID_POUTRANSITIONDIALOGMAINPANEL, 
- wxID_POUTRANSITIONDIALOGTRANSITIONNAME, wxID_POUTRANSITIONDIALOGLANGUAGE, 
- wxID_POUTRANSITIONDIALOGSTATICTEXT1, wxID_POUTRANSITIONDIALOGSTATICTEXT2,
-] = [wx.NewId() for _init_ctrls in range(6)]
+[ID_POUTRANSITIONDIALOG, ID_POUTRANSITIONDIALOGTRANSITIONNAME, 
+ ID_POUTRANSITIONDIALOGLANGUAGE, ID_POUTRANSITIONDIALOGSTATICTEXT1, 
+ ID_POUTRANSITIONDIALOGSTATICTEXT2,
+] = [wx.NewId() for _init_ctrls in range(5)]
 
 class PouTransitionDialog(wx.Dialog):
     def _init_coll_flexGridSizer1_Items(self, parent):
-        # generated method, don't edit
-
-        parent.AddWindow(self.MainPanel, 0, border=0, flag=0)
-
+        parent.AddSizer(self.MainSizer, 0, border=20, flag=wx.GROW|wx.TOP|wx.LEFT|wx.RIGHT)
+        parent.AddSizer(self.ButtonSizer, 0, border=20, flag=wx.ALIGN_RIGHT|wx.BOTTOM|wx.LEFT|wx.RIGHT)
+        
+    def _init_coll_flexGridSizer1_Growables(self, parent):
+        parent.AddGrowableCol(0)
+        parent.AddGrowableRow(0)
+    
+    def _init_coll_MainSizer_Items(self, parent):
+        parent.AddWindow(self.staticText1, 0, border=0, flag=wx.GROW)
+        parent.AddWindow(self.TransitionName, 0, border=0, flag=wx.GROW)
+        parent.AddWindow(self.staticText2, 0, border=0, flag=wx.GROW)
+        parent.AddWindow(self.Language, 0, border=0, flag=wx.GROW)
+        
+    def _init_coll_MainSizer_Growables(self, parent):
+        parent.AddGrowableCol(1)
+        
     def _init_sizers(self):
-        # generated method, don't edit
-        self.flexGridSizer1 = wx.FlexGridSizer(cols=1, hgap=0, rows=2, vgap=0)
+        self.flexGridSizer1 = wx.FlexGridSizer(cols=1, hgap=0, rows=2, vgap=10)
+        self.MainSizer = wx.FlexGridSizer(cols=2, hgap=0, rows=2, vgap=15)
 
         self._init_coll_flexGridSizer1_Items(self.flexGridSizer1)
+        self._init_coll_flexGridSizer1_Growables(self.flexGridSizer1)
+        self._init_coll_MainSizer_Items(self.MainSizer)
+        self._init_coll_MainSizer_Growables(self.MainSizer)
 
         self.SetSizer(self.flexGridSizer1)
 
     def _init_ctrls(self, prnt):
-        # generated method, don't edit
-        wx.Dialog.__init__(self, id=wxID_POUTRANSITIONDIALOG,
+        wx.Dialog.__init__(self, id=ID_POUTRANSITIONDIALOG,
               name='PouTransitionDialog', parent=prnt, pos=wx.Point(376, 223),
               size=wx.Size(350, 200), style=wx.DEFAULT_DIALOG_STYLE,
               title='Create a new transition')
         self.SetClientSize(wx.Size(350, 160))
 
-        self.MainPanel = wx.Panel(id=wxID_POUTRANSITIONDIALOGMAINPANEL,
-              name='MainPanel', parent=self, pos=wx.Point(0, 0),
-              size=wx.Size(350, 200), style=wx.TAB_TRAVERSAL)
-        self.MainPanel.SetAutoLayout(True)
-
-        self.staticText1 = wx.StaticText(id=wxID_POUTRANSITIONDIALOGSTATICTEXT1,
-              label='Transition Name:', name='staticText1', parent=self.MainPanel,
-              pos=wx.Point(24, 24), size=wx.Size(145, 17), style=0)
-
-        self.TransitionName = wx.TextCtrl(id=wxID_POUTRANSITIONDIALOGTRANSITIONNAME,
-              name='TransitionName', parent=self.MainPanel, pos=wx.Point(154, 24),
-              size=wx.Size(150, 24), style=0)
-
-        self.staticText2 = wx.StaticText(id=wxID_POUTRANSITIONDIALOGSTATICTEXT2,
-              label='Language:', name='staticText2', parent=self.MainPanel,
-              pos=wx.Point(24, 64), size=wx.Size(145, 17), style=0)
-
-        self.Language = wx.Choice(id=wxID_POUTRANSITIONDIALOGLANGUAGE,
-              name='Language', parent=self.MainPanel, pos=wx.Point(154, 64),
-              size=wx.Size(150, 24), style=0)
-
+        self.staticText1 = wx.StaticText(id=ID_POUTRANSITIONDIALOGSTATICTEXT1,
+              label='Transition Name:', name='staticText1', parent=self,
+              pos=wx.Point(0, 0), size=wx.Size(120, 17), style=0)
+
+        self.TransitionName = wx.TextCtrl(id=ID_POUTRANSITIONDIALOGTRANSITIONNAME,
+              name='TransitionName', parent=self, pos=wx.Point(0, 0),
+              size=wx.Size(0, 24), style=0)
+
+        self.staticText2 = wx.StaticText(id=ID_POUTRANSITIONDIALOGSTATICTEXT2,
+              label='Language:', name='staticText2', parent=self,
+              pos=wx.Point(0, 0), size=wx.Size(120, 17), style=0)
+
+        self.Language = wx.Choice(id=ID_POUTRANSITIONDIALOGLANGUAGE,
+              name='Language', parent=self, pos=wx.Point(0, 0),
+              size=wx.Size(0, 24), style=0)
+        
+        self.ButtonSizer = self.CreateButtonSizer(wx.OK|wx.CANCEL|wx.CENTRE)
+        self.Bind(wx.EVT_BUTTON, self.OnOK, id=self.ButtonSizer.GetAffirmativeButton().GetId())
+        
         self._init_sizers()
 
     def __init__(self, parent):
         self._init_ctrls(parent)
-        self.ButtonSizer = self.CreateButtonSizer(wxOK|wxCANCEL|wxCENTRE)
-        self.flexGridSizer1.Add(self.ButtonSizer, 1, wxALIGN_RIGHT)
         
         for option in ["IL","ST","LD","FBD"]:
             self.Language.Append(option)
         
-        EVT_BUTTON(self, self.ButtonSizer.GetAffirmativeButton().GetId(), self.OnOK)
-    
     def OnOK(self, event):
         error = []
         if self.TransitionName.GetValue() == "":
@@ -1821,11 +1833,11 @@
                     text += " and %s"%item
                 else:
                     text += ", %s"%item 
-            message = wxMessageDialog(self, "Form isn't complete. %s must be filled!"%text, "Error", wxOK|wxICON_ERROR)
+            message = wx.MessageDialog(self, "Form isn't complete. %s must be filled!"%text, "Error", wx.OK|wx.ICON_ERROR)
             message.ShowModal()
             message.Destroy()
         else:
-            self.EndModal(wxID_OK)
+            self.EndModal(wx.ID_OK)
 
     def SetValues(self, values):
         for item, value in values.items():
@@ -1844,66 +1856,74 @@
 #                          Create Pou Action Dialog
 #-------------------------------------------------------------------------------
 
-[wxID_POUACTIONDIALOG, wxID_POUACTIONDIALOGMAINPANEL, 
- wxID_POUACTIONDIALOGACTIONNAME, wxID_POUACTIONDIALOGLANGUAGE, 
- wxID_POUACTIONDIALOGSTATICTEXT1, wxID_POUACTIONDIALOGSTATICTEXT2, 
-] = [wx.NewId() for _init_ctrls in range(6)]
+[ID_POUACTIONDIALOG, ID_POUACTIONDIALOGACTIONNAME, 
+ ID_POUACTIONDIALOGLANGUAGE, ID_POUACTIONDIALOGSTATICTEXT1, 
+ ID_POUACTIONDIALOGSTATICTEXT2, 
+] = [wx.NewId() for _init_ctrls in range(5)]
 
 class PouActionDialog(wx.Dialog):
     def _init_coll_flexGridSizer1_Items(self, parent):
-        # generated method, don't edit
-
-        parent.AddWindow(self.MainPanel, 0, border=0, flag=0)
-
+        parent.AddSizer(self.MainSizer, 0, border=20, flag=wx.GROW|wx.TOP|wx.LEFT|wx.RIGHT)
+        parent.AddSizer(self.ButtonSizer, 0, border=20, flag=wx.ALIGN_RIGHT|wx.BOTTOM|wx.LEFT|wx.RIGHT)
+        
+    def _init_coll_flexGridSizer1_Growables(self, parent):
+        parent.AddGrowableCol(0)
+        parent.AddGrowableRow(0)
+    
+    def _init_coll_MainSizer_Items(self, parent):
+        parent.AddWindow(self.staticText1, 0, border=0, flag=wx.GROW)
+        parent.AddWindow(self.ActionName, 0, border=0, flag=wx.GROW)
+        parent.AddWindow(self.staticText2, 0, border=0, flag=wx.GROW)
+        parent.AddWindow(self.Language, 0, border=0, flag=wx.GROW)
+        
+    def _init_coll_MainSizer_Growables(self, parent):
+        parent.AddGrowableCol(1)
+        
     def _init_sizers(self):
-        # generated method, don't edit
-        self.flexGridSizer1 = wx.FlexGridSizer(cols=1, hgap=0, rows=2, vgap=0)
+        self.flexGridSizer1 = wx.FlexGridSizer(cols=1, hgap=0, rows=2, vgap=10)
+        self.MainSizer = wx.FlexGridSizer(cols=2, hgap=0, rows=2, vgap=15)
 
         self._init_coll_flexGridSizer1_Items(self.flexGridSizer1)
+        self._init_coll_flexGridSizer1_Growables(self.flexGridSizer1)
+        self._init_coll_MainSizer_Items(self.MainSizer)
+        self._init_coll_MainSizer_Growables(self.MainSizer)
 
         self.SetSizer(self.flexGridSizer1)
 
     def _init_ctrls(self, prnt):
-        # generated method, don't edit
-        wx.Dialog.__init__(self, id=wxID_POUACTIONDIALOG,
+        wx.Dialog.__init__(self, id=ID_POUACTIONDIALOG,
               name='PouActionDialog', parent=prnt, pos=wx.Point(376, 223),
-              size=wx.Size(320, 200), style=wx.DEFAULT_DIALOG_STYLE,
+              size=wx.Size(320, 200), style=wx.DEFAULT_DIALOG_STYLE|wx.RESIZE_BORDER,
               title='Create a new action')
         self.SetClientSize(wx.Size(320, 160))
 
-        self.MainPanel = wx.Panel(id=wxID_POUACTIONDIALOGMAINPANEL,
-              name='MainPanel', parent=self, pos=wx.Point(0, 0),
-              size=wx.Size(350, 200), style=wx.TAB_TRAVERSAL)
-        self.MainPanel.SetAutoLayout(True)
-
-        self.staticText1 = wx.StaticText(id=wxID_POUACTIONDIALOGSTATICTEXT1,
-              label='Action Name:', name='staticText1', parent=self.MainPanel,
-              pos=wx.Point(24, 24), size=wx.Size(145, 17), style=0)
-
-        self.ActionName = wx.TextCtrl(id=wxID_POUACTIONDIALOGACTIONNAME,
-              name='ActionName', parent=self.MainPanel, pos=wx.Point(124, 24),
-              size=wx.Size(150, 24), style=0)
-
-        self.staticText3 = wx.StaticText(id=wxID_POUACTIONDIALOGSTATICTEXT2,
-              label='Language:', name='staticText2', parent=self.MainPanel,
-              pos=wx.Point(24, 64), size=wx.Size(145, 17), style=0)
-
-        self.Language = wx.Choice(id=wxID_POUACTIONDIALOGLANGUAGE,
-              name='Language', parent=self.MainPanel, pos=wx.Point(124, 64),
-              size=wx.Size(150, 24), style=0)
-
+        self.staticText1 = wx.StaticText(id=ID_POUACTIONDIALOGSTATICTEXT1,
+              label='Action Name:', name='staticText1', parent=self,
+              pos=wx.Point(0, 0), size=wx.Size(100, 17), style=0)
+
+        self.ActionName = wx.TextCtrl(id=ID_POUACTIONDIALOGACTIONNAME,
+              name='ActionName', parent=self, pos=wx.Point(0, 0),
+              size=wx.Size(0, 24), style=0)
+
+        self.staticText2 = wx.StaticText(id=ID_POUACTIONDIALOGSTATICTEXT2,
+              label='Language:', name='staticText2', parent=self,
+              pos=wx.Point(0, 0), size=wx.Size(100, 17), style=0)
+
+        self.Language = wx.Choice(id=ID_POUACTIONDIALOGLANGUAGE,
+              name='Language', parent=self, pos=wx.Point(0, 0),
+              size=wx.Size(0, 24), style=0)
+        
+        self.ButtonSizer = self.CreateButtonSizer(wx.OK|wx.CANCEL|wx.CENTRE)
+        self.Bind(wx.EVT_BUTTON, self.OnOK, id=self.ButtonSizer.GetAffirmativeButton().GetId())
+        
         self._init_sizers()
 
     def __init__(self, parent):
         self._init_ctrls(parent)
-        self.ButtonSizer = self.CreateButtonSizer(wxOK|wxCANCEL|wxCENTRE)
-        self.flexGridSizer1.Add(self.ButtonSizer, 1, wxALIGN_RIGHT)
         
         for option in ["IL","ST","LD","FBD"]:
             self.Language.Append(option)
         
-        EVT_BUTTON(self, self.ButtonSizer.GetAffirmativeButton().GetId(), self.OnOK)
-    
     def OnOK(self, event):
         error = []
         if self.ActionName.GetValue() == "":
@@ -1919,11 +1939,11 @@
                     text += " and %s"%item
                 else:
                     text += ", %s"%item 
-            message = wxMessageDialog(self, "Form isn't complete. %s must be filled!"%text, "Error", wxOK|wxICON_ERROR)
+            message = wx.MessageDialog(self, "Form isn't complete. %s must be filled!"%text, "Error", wx.OK|wx.ICON_ERROR)
             message.ShowModal()
             message.Destroy()
         else:
-            self.EndModal(wxID_OK)
+            self.EndModal(wx.ID_OK)
 
     def SetValues(self, values):
         for item, value in values.items():
@@ -1942,14 +1962,14 @@
 #                            Pou Interface Dialog
 #-------------------------------------------------------------------------------
 
-class VariableTable(wxPyGridTableBase):
+class VariableTable(wx.grid.PyGridTableBase):
     
     """
-    A custom wxGrid Table using user supplied data
+    A custom wx.grid.Grid Table using user supplied data
     """
     def __init__(self, parent, data, colnames):
         # The base class must be initialized *first*
-        wxPyGridTableBase.__init__(self)
+        wx.grid.PyGridTableBase.__init__(self)
         self.data = data
         self.old_value = None
         self.colnames = colnames
@@ -1995,19 +2015,19 @@
     
     def ResetView(self, grid):
         """
-        (wxGrid) -> Reset the grid view.   Call this to
+        (wx.grid.Grid) -> Reset the grid view.   Call this to
         update the grid if rows and columns have been added or deleted
         """
         grid.BeginBatch()
         for current, new, delmsg, addmsg in [
-            (self._rows, self.GetNumberRows(), wxGRIDTABLE_NOTIFY_ROWS_DELETED, wxGRIDTABLE_NOTIFY_ROWS_APPENDED),
-            (self._cols, self.GetNumberCols(), wxGRIDTABLE_NOTIFY_COLS_DELETED, wxGRIDTABLE_NOTIFY_COLS_APPENDED),
+            (self._rows, self.GetNumberRows(), wx.grid.GRIDTABLE_NOTIFY_ROWS_DELETED, wx.grid.GRIDTABLE_NOTIFY_ROWS_APPENDED),
+            (self._cols, self.GetNumberCols(), wx.grid.GRIDTABLE_NOTIFY_COLS_DELETED, wx.grid.GRIDTABLE_NOTIFY_COLS_APPENDED),
         ]:
             if new < current:
-                msg = wxGridTableMessage(self,delmsg,new,current-new)
+                msg = wx.grid.GridTableMessage(self,delmsg,new,current-new)
                 grid.ProcessTableMessage(msg)
             elif new > current:
-                msg = wxGridTableMessage(self,addmsg,new-current)
+                msg = wx.grid.GridTableMessage(self,addmsg,new-current)
                 grid.ProcessTableMessage(msg)
                 self.UpdateValues(grid)
         grid.EndBatch()
@@ -2024,20 +2044,20 @@
     def UpdateValues(self, grid):
         """Update all displayed values"""
         # This sends an event to the grid table to update all of the values
-        msg = wxGridTableMessage(self, wxGRIDTABLE_REQUEST_VIEW_GET_VALUES)
+        msg = wx.grid.GridTableMessage(self, wx.grid.GRIDTABLE_REQUEST_VIEW_GET_VALUES)
         grid.ProcessTableMessage(msg)
 
     def _updateColAttrs(self, grid):
         """
-        wxGrid -> update the column attributes to add the
+        wx.grid.Grid -> update the column attributes to add the
         appropriate renderer given the column name.
 
         Otherwise default to the default renderer.
         """
         
         for col in range(self.GetNumberCols()):
-            attr = wxGridCellAttr()
-            attr.SetAlignment(self.Parent.ColAlignements[col], wxALIGN_CENTRE)
+            attr = wx.grid.GridCellAttr()
+            attr.SetAlignment(self.Parent.ColAlignements[col], wx.ALIGN_CENTRE)
             grid.SetColAttr(col, attr)
             grid.SetColSize(col, self.Parent.ColSizes[col])
         
@@ -2055,16 +2075,16 @@
                     if self.Parent.PouIsUsed and self.GetValueByName(row, "Class") in ["Input", "Output", "InOut"]:
                         grid.SetReadOnly(row, col, True)
                     else:
-                        editor = wxGridCellTextEditor()
-                        renderer = wxGridCellStringRenderer()
+                        editor = wx.grid.GridCellTextEditor()
+                        renderer = wx.grid.GridCellStringRenderer()
                 elif colname in ["Initial Value","Location"]:
-                    editor = wxGridCellTextEditor()
-                    renderer = wxGridCellStringRenderer()
+                    editor = wx.grid.GridCellTextEditor()
+                    renderer = wx.grid.GridCellStringRenderer()
                 elif colname == "Class":
                     if len(self.Parent.ClassList) == 1 or self.Parent.PouIsUsed and self.GetValueByName(row, "Class") in ["Input", "Output", "InOut"]:
                         grid.SetReadOnly(row, col, True)
                     else:
-                        editor = wxGridCellChoiceEditor()
+                        editor = wx.grid.GridCellChoiceEditor()
                         excluded = []
                         if self.Parent.PouIsUsed:
                             excluded.extend(["Input","Output","InOut"])    
@@ -2073,16 +2093,16 @@
                     if self.Parent.PouIsUsed and self.GetValueByName(row, "Class") in ["Input", "Output", "InOut"]:
                         grid.SetReadOnly(row, col, True)
                     else:
-                        editor = wxGridCellChoiceEditor()
+                        editor = wx.grid.GridCellChoiceEditor()
                         editor.SetParameters(self.Parent.TypeList)
                 elif colname in ["Retain", "Constant"]:
-                    editor = wxGridCellChoiceEditor()
+                    editor = wx.grid.GridCellChoiceEditor()
                     editor.SetParameters(self.Parent.OptionList)
                     
                 grid.SetCellEditor(row, col, editor)
                 grid.SetCellRenderer(row, col, renderer)
                 
-                grid.SetCellBackgroundColour(row, col, wxWHITE)
+                grid.SetCellBackgroundColour(row, col, wx.WHITE)
     
     def SetData(self, data):
         self.data = data
@@ -2118,7 +2138,7 @@
     def OnDropText(self, x, y, data):
         col = self.Parent.VariablesGrid.XToCol(x)
         row = self.Parent.VariablesGrid.YToRow(y)
-        if col != wxNOT_FOUND and row != wxNOT_FOUND:
+        if col != wx.NOT_FOUND and row != wx.NOT_FOUND:
             if self.Parent.Table.GetColLabelValue(col) != "Location":
                 return
             try:
@@ -2126,8 +2146,8 @@
             except:
                 values = None
             if values and values[1] == "location":
-                dialog = wxSingleChoiceDialog(self.Parent, "Select a variable class:", "Variable class", ["Input", "Output", "Memory"], wxOK|wxCANCEL)
-                if dialog.ShowModal() == wxID_OK:
+                dialog = wx.SingleChoiceDialog(self.Parent, "Select a variable class:", "Variable class", ["Input", "Output", "Memory"], wx.OK|wx.CANCEL)
+                if dialog.ShowModal() == wx.ID_OK:
                     selected = dialog.GetSelection()
                     if selected == 0:
                         location = "%I" + values[0]
@@ -2140,71 +2160,53 @@
                     self.Parent.SaveValues()
                 dialog.Destroy()    
 
-[wxID_POUEDITORPANEL, wxID_POUEDITORPANELVIEWER, 
- wxID_POUEDITORPANELVARIABLESGRID, wxID_POUEDITORPANELRETURNTYPE, 
- wxID_POUEDITORPANELCLASSFILTER, wxID_POUEDITORPANELADDBUTTON,
- wxID_POUEDITORPANELDELETEBUTTON, wxID_POUEDITORPANELUPBUTTON, 
- wxID_POUEDITORPANELDOWNBUTTON, wxID_POUEDITORPANELSTATICTEXT1, 
- wxID_POUEDITORPANELSTATICTEXT2, wxID_POUEDITORPANELSTATICTEXT3,
+[ID_POUEDITORPANEL, ID_POUEDITORPANELVIEWER, 
+ ID_POUEDITORPANELVARIABLESGRID, ID_POUEDITORPANELRETURNTYPE, 
+ ID_POUEDITORPANELCLASSFILTER, ID_POUEDITORPANELADDBUTTON,
+ ID_POUEDITORPANELDELETEBUTTON, ID_POUEDITORPANELUPBUTTON, 
+ ID_POUEDITORPANELDOWNBUTTON, ID_POUEDITORPANELSTATICTEXT1, 
+ ID_POUEDITORPANELSTATICTEXT2, ID_POUEDITORPANELSTATICTEXT3,
 ] = [wx.NewId() for _init_ctrls in range(12)]
 
 class PouEditorPanel(wx.Panel):
     def _init_coll_MainPanelSizer_Items(self, parent):
-        # generated method, don't edit
-
-        parent.AddWindow(self.Viewer, 0, border=0, flag=wxGROW)
-        parent.AddSizer(self.VariablePanelSizer, 0, border=0, flag=wxGROW)
+        parent.AddWindow(self.Viewer, 0, border=0, flag=wx.GROW)
+        parent.AddSizer(self.VariablePanelSizer, 0, border=0, flag=wx.GROW)
 
     def _init_coll_MainPanelSizer_Growables(self, parent):
-        # generated method, don't edit
-
         parent.AddGrowableCol(0)
         parent.AddGrowableRow(0)
     
     def _init_coll_VariablePanelSizer_Items(self, parent):
-        # generated method, don't edit
-
-        parent.AddWindow(self.VariablesGrid, 0, border=0, flag=wxGROW)
-        parent.AddSizer(self.ControlPanelSizer, 0, border=0, flag=wxGROW)
+        parent.AddWindow(self.VariablesGrid, 0, border=0, flag=wx.GROW)
+        parent.AddSizer(self.ControlPanelSizer, 0, border=0, flag=wx.GROW)
     
     def _init_coll_VariablePanelSizer_Growables(self, parent):
-        # generated method, don't edit
-
         parent.AddGrowableCol(0)
         parent.AddGrowableRow(0)
     
     def _init_coll_ControlPanelSizer_Items(self, parent):
-        # generated method, don't edit
-
-        parent.AddSizer(self.ChoicePanelSizer, 0, border=0, flag=wxGROW)
-        parent.AddSizer(self.ButtonPanelSizer, 0, border=0, flag=wxALIGN_CENTER)
+        parent.AddSizer(self.ChoicePanelSizer, 0, border=0, flag=wx.GROW)
+        parent.AddSizer(self.ButtonPanelSizer, 0, border=0, flag=wx.ALIGN_CENTER)
 
     def _init_coll_ControlPanelSizer_Growables(self, parent):
-        # generated method, don't edit
-
         parent.AddGrowableCol(0)
         parent.AddGrowableRow(0)
         parent.AddGrowableRow(1)
 
     def _init_coll_ChoicePanelSizer_Items(self, parent):
-        # generated method, don't edit
-
-        parent.AddWindow(self.staticText1, 0, border=0, flag=wxALIGN_BOTTOM)
+        parent.AddWindow(self.staticText1, 0, border=0, flag=wx.ALIGN_BOTTOM)
         parent.AddWindow(self.ReturnType, 0, border=0, flag=0)
-        parent.AddWindow(self.staticText2, 0, border=0, flag=wxALIGN_BOTTOM)
+        parent.AddWindow(self.staticText2, 0, border=0, flag=wx.ALIGN_BOTTOM)
         parent.AddWindow(self.ClassFilter, 0, border=0, flag=0)
 
     def _init_coll_ButtonPanelSizer_Items(self, parent):
-        # generated method, don't edit
-
         parent.AddWindow(self.UpButton, 0, border=0, flag=0)
         parent.AddWindow(self.AddButton, 0, border=0, flag=0)
         parent.AddWindow(self.DownButton, 0, border=0, flag=0)
         parent.AddWindow(self.DeleteButton, 0, border=0, flag=0)
         
     def _init_coll_ButtonPanelSizer_Growables(self, parent):
-        # generated method, don't edit
-
         parent.AddGrowableCol(0)
         parent.AddGrowableCol(1)
         parent.AddGrowableCol(2)
@@ -2212,15 +2214,10 @@
         parent.AddGrowableRow(0)
 
     def _init_sizers(self):
-        # generated method, don't edit
         self.MainPanelSizer = wx.FlexGridSizer(cols=1, hgap=0, rows=2, vgap=0)
-        
         self.VariablePanelSizer = wx.FlexGridSizer(cols=2, hgap=10, rows=1, vgap=0)
-        
         self.ControlPanelSizer = wx.FlexGridSizer(cols=1, hgap=0, rows=2, vgap=10)
-        
         self.ChoicePanelSizer = wx.GridSizer(cols=1, hgap=5, rows=4, vgap=5)
-        
         self.ButtonPanelSizer = wx.FlexGridSizer(cols=2, hgap=5, rows=2, vgap=0)
         
         self._init_coll_MainPanelSizer_Items(self.MainPanelSizer)
@@ -2236,13 +2233,12 @@
         self.SetSizer(self.MainPanelSizer)
 
     def _init_ctrls(self, prnt, element_type):
-        # generated method, don't edit
-        wx.Panel.__init__(self, id=wxID_POUEDITORPANEL,
+        wx.Panel.__init__(self, id=ID_POUEDITORPANEL,
               name='EditVariablePanel', parent=prnt, pos=wx.Point(0, 0),
               size=wx.Size(-1, -1), style=0)
         
         if element_type == "config":
-            self.Viewer = wx.Panel(id=wxID_POUEDITORPANELVIEWER,
+            self.Viewer = wx.Panel(id=ID_POUEDITORPANELVIEWER,
               name='ConfigPanel', parent=self, pos=wx.Point(0, 0),
               size=wx.Size(-1, -1), style=wx.TAB_TRAVERSAL)
             self.Viewer.ResetBuffer = lambda: None
@@ -2263,26 +2259,26 @@
             else:
                 self.Viewer.SetKeywords(ST_KEYWORDS)
         
-        self.staticText1 = wx.StaticText(id=wxID_POUEDITORPANELSTATICTEXT1,
+        self.staticText1 = wx.StaticText(id=ID_POUEDITORPANELSTATICTEXT1,
               label='Return Type:', name='staticText1', parent=self,
               pos=wx.Point(0, 0), size=wx.Size(95, 17), style=0)
 
-        self.ReturnType = wx.Choice(id=wxID_POUEDITORPANELRETURNTYPE,
+        self.ReturnType = wx.Choice(id=ID_POUEDITORPANELRETURNTYPE,
               name='ReturnType', parent=self, pos=wx.Point(0, 0),
               size=wx.Size(145, 24), style=0)
 
-        self.staticText2 = wx.StaticText(id=wxID_POUEDITORPANELSTATICTEXT2,
+        self.staticText2 = wx.StaticText(id=ID_POUEDITORPANELSTATICTEXT2,
               label='Class Filter:', name='staticText2', parent=self,
               pos=wx.Point(0, 0), size=wx.Size(95, 17), style=0)
 
-        self.ClassFilter = wx.Choice(id=wxID_POUEDITORPANELCLASSFILTER,
+        self.ClassFilter = wx.Choice(id=ID_POUEDITORPANELCLASSFILTER,
               name='ClassFilter', parent=self, pos=wx.Point(0, 0),
               size=wx.Size(145, 24), style=0)
-        EVT_CHOICE(self, wxID_POUEDITORPANELCLASSFILTER, self.OnClassFilter)
-
-        self.VariablesGrid = wx.grid.Grid(id=wxID_POUEDITORPANELVARIABLESGRID,
+        self.Bind(wx.EVT_CHOICE, self.OnClassFilter, id=ID_POUEDITORPANELCLASSFILTER)
+
+        self.VariablesGrid = wx.grid.Grid(id=ID_POUEDITORPANELVARIABLESGRID,
               name='VariablesGrid', parent=self, pos=wx.Point(0, 0), 
-              size=wx.Size(0, 150), style=wxVSCROLL)
+              size=wx.Size(0, 150), style=wx.VSCROLL)
         self.VariablesGrid.SetFont(wx.Font(12, 77, wx.NORMAL, wx.NORMAL, False,
               'Sans'))
         self.VariablesGrid.SetLabelFont(wx.Font(10, 77, wx.NORMAL, wx.NORMAL,
@@ -2293,25 +2289,25 @@
         
         self.VariablesGrid.SetDropTarget(VariableDropTarget(self))
         
-        self.AddButton = wx.Button(id=wxID_POUEDITORPANELADDBUTTON, label='Add',
+        self.AddButton = wx.Button(id=ID_POUEDITORPANELADDBUTTON, label='Add',
               name='AddButton', parent=self, pos=wx.Point(345, 340),
               size=wx.Size(72, 32), style=0)
-        EVT_BUTTON(self, wxID_POUEDITORPANELADDBUTTON, self.OnAddButton)
-
-        self.DeleteButton = wx.Button(id=wxID_POUEDITORPANELDELETEBUTTON, label='Delete',
+        self.Bind(wx.EVT_BUTTON, self.OnAddButton, id=ID_POUEDITORPANELADDBUTTON)
+
+        self.DeleteButton = wx.Button(id=ID_POUEDITORPANELDELETEBUTTON, label='Delete',
               name='DeleteButton', parent=self, pos=wx.Point(425, 340),
               size=wx.Size(72, 32), style=0)
-        EVT_BUTTON(self, wxID_POUEDITORPANELDELETEBUTTON, self.OnDeleteButton)
-
-        self.UpButton = wx.Button(id=wxID_POUEDITORPANELUPBUTTON, label='^',
+        self.Bind(wx.EVT_BUTTON, self.OnDeleteButton, id=ID_POUEDITORPANELDELETEBUTTON)
+
+        self.UpButton = wx.Button(id=ID_POUEDITORPANELUPBUTTON, label='^',
               name='UpButton', parent=self, pos=wx.Point(505, 340),
               size=wx.Size(32, 32), style=0)
-        EVT_BUTTON(self, wxID_POUEDITORPANELUPBUTTON, self.OnUpButton)
-
-        self.DownButton = wx.Button(id=wxID_POUEDITORPANELDOWNBUTTON, label='v',
+        self.Bind(wx.EVT_BUTTON, self.OnUpButton, id=ID_POUEDITORPANELUPBUTTON)
+
+        self.DownButton = wx.Button(id=ID_POUEDITORPANELDOWNBUTTON, label='v',
               name='DownButton', parent=self, pos=wx.Point(545, 340),
               size=wx.Size(32, 32), style=0)
-        EVT_BUTTON(self, wxID_POUEDITORPANELDOWNBUTTON, self.OnDownButton)
+        self.Bind(wx.EVT_BUTTON, self.OnDownButton, id=ID_POUEDITORPANELDOWNBUTTON)
 
         self._init_sizers()
 
@@ -2360,12 +2356,12 @@
             else:
                 self.FilterChoices = ["All","Global","Access"]
             self.ColSizes = [40, 80, 70, 80, 80, 80, 60, 70]
-            self.ColAlignements = [wxALIGN_CENTER, wxALIGN_LEFT, wxALIGN_LEFT, wxALIGN_LEFT, wxALIGN_LEFT, wxALIGN_LEFT, wxALIGN_CENTER, wxALIGN_CENTER]
+            self.ColAlignements = [wx.ALIGN_CENTER, wx.ALIGN_LEFT, wx.ALIGN_LEFT, wx.ALIGN_LEFT, wx.ALIGN_LEFT, wx.ALIGN_LEFT, wx.ALIGN_CENTER, wx.ALIGN_CENTER]
         else:
             self.Table = VariableTable(self, [], ["#", "Name", "Class", "Type", "Initial Value", "Retain", "Constant"])
             self.FilterChoices = ["All","Interface","   Input","   Output","   InOut","   External","Variables","   Local","   Temp"]
             self.ColSizes = [40, 120, 70, 80, 120, 60, 70]
-            self.ColAlignements = [wxALIGN_CENTER, wxALIGN_LEFT, wxALIGN_LEFT, wxALIGN_LEFT, wxALIGN_LEFT, wxALIGN_CENTER, wxALIGN_CENTER]
+            self.ColAlignements = [wx.ALIGN_CENTER, wx.ALIGN_LEFT, wx.ALIGN_LEFT, wx.ALIGN_LEFT, wx.ALIGN_LEFT, wx.ALIGN_CENTER, wx.ALIGN_CENTER]
         for choice in self.FilterChoices:
             self.ClassFilter.Append(choice)
         reverse_transfer = {}
@@ -2502,22 +2498,22 @@
         value = self.Table.GetValue(row, col)
         if colname == "Name":
             if not TestIdentifier(value):
-                message = wxMessageDialog(self, "\"%s\" is not a valid identifier!"%value, "Error", wxOK|wxICON_ERROR)
+                message = wx.MessageDialog(self, "\"%s\" is not a valid identifier!"%value, "Error", wx.OK|wx.ICON_ERROR)
                 message.ShowModal()
                 message.Destroy()
                 event.Veto()
             elif value.upper() in IEC_KEYWORDS:
-                message = wxMessageDialog(self, "\"%s\" is a keyword. It can't be used!"%value, "Error", wxOK|wxICON_ERROR)
+                message = wx.MessageDialog(self, "\"%s\" is a keyword. It can't be used!"%value, "Error", wx.OK|wx.ICON_ERROR)
                 message.ShowModal()
                 message.Destroy()
                 event.Veto()
             elif value.upper() in self.PouNames:
-                message = wxMessageDialog(self, "A pou with \"%s\" as name exists!"%value, "Error", wxOK|wxICON_ERROR)
+                message = wx.MessageDialog(self, "A pou with \"%s\" as name exists!"%value, "Error", wx.OK|wx.ICON_ERROR)
                 message.ShowModal()
                 message.Destroy()
                 event.Veto()
             elif value.upper() in [var["Name"].upper() for var in self.Values if var != self.Table.data[row]]:
-                message = wxMessageDialog(self, "A variable with \"%s\" as name exists in this pou!"%value, "Error", wxOK|wxICON_ERROR)
+                message = wx.MessageDialog(self, "A variable with \"%s\" as name exists in this pou!"%value, "Error", wx.OK|wx.ICON_ERROR)
                 message.ShowModal()
                 message.Destroy()
                 event.Veto()
@@ -2541,14 +2537,14 @@
             var_name = self.Table.GetValueByName(row, "Name")
             var_class = self.Table.GetValueByName(row, "Class")
             var_type = self.Table.GetValueByName(row, "Type")
-            data = wxTextDataObject(str((var_name, var_class, var_type)))
-            dragSource = wxDropSource(self.VariablesGrid)
+            data = wx.TextDataObject(str((var_name, var_class, var_type)))
+            dragSource = wx.DropSource(self.VariablesGrid)
             dragSource.SetData(data)
             dragSource.DoDragDrop()
         event.Skip()
     
     def OnVariablesGridSelectCell(self, event):
-        wxCallAfter(self.RefreshButtons)
+        wx.CallAfter(self.RefreshButtons)
         event.Skip()
 
     def MoveValue(self, value_index, move):
@@ -2585,22 +2581,20 @@
             self.Parent.RefreshTitle()
             self.Parent.RefreshEditMenu()
 
-##[wxID_EDITVARIABLEDIALOG, wxID_EDITVARIABLEDIALOGMAINPANEL, 
-## wxID_EDITVARIABLEDIALOGVARIABLESGRID, wxID_EDITVARIABLEDIALOGRETURNTYPE, 
-## wxID_EDITVARIABLEDIALOGCLASSFILTER, wxID_EDITVARIABLEDIALOGADDBUTTON,
-## wxID_EDITVARIABLEDIALOGDELETEBUTTON, wxID_EDITVARIABLEDIALOGUPBUTTON, 
-## wxID_EDITVARIABLEDIALOGDOWNBUTTON, wxID_EDITVARIABLEDIALOGSTATICTEXT1, 
-## wxID_EDITVARIABLEDIALOGSTATICTEXT2, wxID_EDITVARIABLEDIALOGSTATICTEXT3,
+##[ID_EDITVARIABLEDIALOG, ID_EDITVARIABLEDIALOGMAINPANEL, 
+## ID_EDITVARIABLEDIALOGVARIABLESGRID, ID_EDITVARIABLEDIALOGRETURNTYPE, 
+## ID_EDITVARIABLEDIALOGCLASSFILTER, ID_EDITVARIABLEDIALOGADDBUTTON,
+## ID_EDITVARIABLEDIALOGDELETEBUTTON, ID_EDITVARIABLEDIALOGUPBUTTON, 
+## ID_EDITVARIABLEDIALOGDOWNBUTTON, ID_EDITVARIABLEDIALOGSTATICTEXT1, 
+## ID_EDITVARIABLEDIALOGSTATICTEXT2, ID_EDITVARIABLEDIALOGSTATICTEXT3,
 ##] = [wx.NewId() for _init_ctrls in range(12)]
 ##
 ##class EditVariableDialog(wx.Dialog):
 ##    def _init_coll_flexGridSizer1_Items(self, parent):
-##        # generated method, don't edit
-##
 ##        parent.AddWindow(self.MainPanel, 0, border=0, flag=0)
+##        parent.AddWindow(self.ButtonSizer, 0, border=0, flag=wx.ALIGN_RIGHT)
 ##
 ##    def _init_sizers(self):
-##        # generated method, don't edit
 ##        self.flexGridSizer1 = wx.FlexGridSizer(cols=1, hgap=0, rows=2, vgap=0)
 ##
 ##        self._init_coll_flexGridSizer1_Items(self.flexGridSizer1)
@@ -2608,42 +2602,41 @@
 ##        self.SetSizer(self.flexGridSizer1)
 ##
 ##    def _init_ctrls(self, prnt, name):
-##        # generated method, don't edit
-##        wx.Dialog.__init__(self, id=wxID_EDITVARIABLEDIALOG,
+##        wx.Dialog.__init__(self, id=ID_EDITVARIABLEDIALOG,
 ##              name='EditVariableDialog', parent=prnt, pos=wx.Point(376, 223),
 ##              size=wx.Size(600, 440), style=wx.DEFAULT_DIALOG_STYLE,
 ##              title='Edit variables of %s'%name)
 ##        self.SetClientSize(wx.Size(600, 440))
 ##
-##        self.MainPanel = wx.Panel(id=wxID_EDITVARIABLEDIALOGMAINPANEL,
+##        self.MainPanel = wx.Panel(id=ID_EDITVARIABLEDIALOGMAINPANEL,
 ##              name='MainPanel', parent=self, pos=wx.Point(0, 0),
 ##              size=wx.Size(600, 440), style=wx.TAB_TRAVERSAL)
 ##        self.MainPanel.SetAutoLayout(True)
 ##
-##        self.staticText1 = wx.StaticText(id=wxID_EDITVARIABLEDIALOGSTATICTEXT1,
+##        self.staticText1 = wx.StaticText(id=ID_EDITVARIABLEDIALOGSTATICTEXT1,
 ##              label='Return Type:', name='staticText1', parent=self.MainPanel,
 ##              pos=wx.Point(24, 29), size=wx.Size(95, 17), style=0)
 ##
-##        self.ReturnType = wx.Choice(id=wxID_EDITVARIABLEDIALOGRETURNTYPE,
+##        self.ReturnType = wx.Choice(id=ID_EDITVARIABLEDIALOGRETURNTYPE,
 ##              name='ReturnType', parent=self.MainPanel, pos=wx.Point(124, 24),
 ##              size=wx.Size(145, 24), style=0)
 ##
-##        self.staticText2 = wx.StaticText(id=wxID_EDITVARIABLEDIALOGSTATICTEXT2,
+##        self.staticText2 = wx.StaticText(id=ID_EDITVARIABLEDIALOGSTATICTEXT2,
 ##              label='Class Filter:', name='staticText2', parent=self.MainPanel,
 ##              pos=wx.Point(324, 29), size=wx.Size(95, 17), style=0)
 ##
-##        self.ClassFilter = wx.Choice(id=wxID_EDITVARIABLEDIALOGCLASSFILTER,
+##        self.ClassFilter = wx.Choice(id=ID_EDITVARIABLEDIALOGCLASSFILTER,
 ##              name='ClassFilter', parent=self.MainPanel, pos=wx.Point(424, 24),
 ##              size=wx.Size(145, 24), style=0)
-##        EVT_CHOICE(self, wxID_EDITVARIABLEDIALOGCLASSFILTER, self.OnClassFilter)
-##
-##        self.staticText3 = wx.StaticText(id=wxID_EDITVARIABLEDIALOGSTATICTEXT3,
+##        self.Bind(wx.EVT_CHOICE, self.OnClassFilter, id=ID_EDITVARIABLEDIALOGCLASSFILTER)
+##
+##        self.staticText3 = wx.StaticText(id=ID_EDITVARIABLEDIALOGSTATICTEXT3,
 ##              label='Variables:', name='staticText3', parent=self.MainPanel,
 ##              pos=wx.Point(24, 60), size=wx.Size(95, 17), style=0)
 ##
-##        self.VariablesGrid = wx.grid.Grid(id=wxID_EDITVARIABLEDIALOGVARIABLESGRID,
+##        self.VariablesGrid = wx.grid.Grid(id=ID_EDITVARIABLEDIALOGVARIABLESGRID,
 ##              name='VariablesGrid', parent=self.MainPanel, pos=wx.Point(24, 80), 
-##              size=wx.Size(550, 250), style=wxVSCROLL)
+##              size=wx.Size(550, 250), style=wx.VSCROLL)
 ##        self.VariablesGrid.SetFont(wx.Font(12, 77, wx.NORMAL, wx.NORMAL, False,
 ##              'Sans'))
 ##        self.VariablesGrid.SetLabelFont(wx.Font(10, 77, wx.NORMAL, wx.NORMAL,
@@ -2653,32 +2646,34 @@
 ##        self.VariablesGrid.Bind(wx.grid.EVT_GRID_CELL_CHANGE, self.OnVariablesGridCellChange)
 ##        self.VariablesGrid.Bind(wx.grid.EVT_GRID_SELECT_CELL, self.OnVariablesGridSelectCell)
 ##
-##        self.AddButton = wx.Button(id=wxID_EDITVARIABLEDIALOGADDBUTTON, label='Add',
+##        self.AddButton = wx.Button(id=ID_EDITVARIABLEDIALOGADDBUTTON, label='Add',
 ##              name='AddButton', parent=self.MainPanel, pos=wx.Point(345, 340),
 ##              size=wx.Size(72, 32), style=0)
-##        EVT_BUTTON(self, wxID_EDITVARIABLEDIALOGADDBUTTON, self.OnAddButton)
-##
-##        self.DeleteButton = wx.Button(id=wxID_EDITVARIABLEDIALOGDELETEBUTTON, label='Delete',
+##        self.Bind(wx.EVT_BUTTON, self.OnAddButton, id=ID_EDITVARIABLEDIALOGADDBUTTON)
+##
+##        self.DeleteButton = wx.Button(id=ID_EDITVARIABLEDIALOGDELETEBUTTON, label='Delete',
 ##              name='DeleteButton', parent=self.MainPanel, pos=wx.Point(425, 340),
 ##              size=wx.Size(72, 32), style=0)
-##        EVT_BUTTON(self, wxID_EDITVARIABLEDIALOGDELETEBUTTON, self.OnDeleteButton)
-##
-##        self.UpButton = wx.Button(id=wxID_EDITVARIABLEDIALOGUPBUTTON, label='^',
+##        self.Bind(wx.EVT_BUTTON, self.OnDeleteButton, id=ID_EDITVARIABLEDIALOGDELETEBUTTON)
+##
+##        self.UpButton = wx.Button(id=ID_EDITVARIABLEDIALOGUPBUTTON, label='^',
 ##              name='UpButton', parent=self.MainPanel, pos=wx.Point(505, 340),
 ##              size=wx.Size(32, 32), style=0)
-##        EVT_BUTTON(self, wxID_EDITVARIABLEDIALOGUPBUTTON, self.OnUpButton)
-##
-##        self.DownButton = wx.Button(id=wxID_EDITVARIABLEDIALOGDOWNBUTTON, label='v',
+##        self.Bind(wx.EVT_BUTTON, self.OnUpButton, id=ID_EDITVARIABLEDIALOGUPBUTTON)
+##
+##        self.DownButton = wx.Button(id=ID_EDITVARIABLEDIALOGDOWNBUTTON, label='v',
 ##              name='DownButton', parent=self.MainPanel, pos=wx.Point(545, 340),
 ##              size=wx.Size(32, 32), style=0)
-##        EVT_BUTTON(self, wxID_EDITVARIABLEDIALOGDOWNBUTTON, self.OnDownButton)
+##        self.Bind(wx.EVT_BUTTON, self.OnDownButton, id=ID_EDITVARIABLEDIALOGDOWNBUTTON)
+##
+##        self.ButtonSizer = self.CreateButtonSizer(wx.OK|wx.CANCEL|wx.CENTRE)
+##        self.Bind(wx.EVT_BUTTON, self.OnOK, id=self.ButtonSizer.GetAffirmativeButton().GetId())       
 ##
 ##        self._init_sizers()
 ##
 ##    def __init__(self, parent, name, pou_type, pou_is_used, filter = "All"):
 ##        self._init_ctrls(parent, name)
-##        self.ButtonSizer = self.CreateButtonSizer(wxOK|wxCANCEL|wxCENTRE)
-##        self.flexGridSizer1.Add(self.ButtonSizer, 1, wxALIGN_RIGHT)
+##
 ##        self.Filter = filter
 ##        self.PouIsUsed = pou_is_used
 ##        self.FilterChoices = []
@@ -2700,12 +2695,12 @@
 ##            else:
 ##                self.FilterChoices = ["All","Global","Access"]
 ##            self.ColSizes = [80, 70, 80, 80, 80, 60, 70]
-##            self.ColAlignements = [wxALIGN_LEFT, wxALIGN_LEFT, wxALIGN_LEFT, wxALIGN_LEFT, wxALIGN_LEFT, wxALIGN_CENTER, wxALIGN_CENTER]
+##            self.ColAlignements = [wx.ALIGN_LEFT, wx.ALIGN_LEFT, wx.ALIGN_LEFT, wx.ALIGN_LEFT, wx.ALIGN_LEFT, wx.ALIGN_CENTER, wx.ALIGN_CENTER]
 ##        else:
 ##            self.Table = VariableTable(self, [], ["Name", "Class", "Type", "Initial Value", "Retain", "Constant"])
 ##            self.FilterChoices = ["All","Interface","   Input","   Output","   InOut","   External","Variables","   Local","   Temp"]
 ##            self.ColSizes = [120, 70, 80, 120, 60, 70]
-##            self.ColAlignements = [wxALIGN_LEFT, wxALIGN_LEFT, wxALIGN_LEFT, wxALIGN_LEFT, wxALIGN_CENTER, wxALIGN_CENTER]
+##            self.ColAlignements = [wx.ALIGN_LEFT, wx.ALIGN_LEFT, wx.ALIGN_LEFT, wx.ALIGN_LEFT, wx.ALIGN_CENTER, wx.ALIGN_CENTER]
 ##        for choice in self.FilterChoices:
 ##            self.ClassFilter.Append(choice)
 ##        reverse_transfer = {}
@@ -2736,12 +2731,10 @@
 ##        self.PouNames = []
 ##
 ##        if self.PouIsUsed:
-##            wxCallAfter(self.WarningMessage, name)
-##
-##        EVT_BUTTON(self, self.ButtonSizer.GetAffirmativeButton().GetId(), self.OnOK)
+##            wx.CallAfter(self.WarningMessage, name)
 ##    
 ##    def WarningMessage(self, name):
-##        message = wxMessageDialog(self, "\"%s\" is used by one or more POUs. Its interface can't be changed!"%name, "WARNING", wxOK|wxICON_EXCLAMATION)
+##        message = wx.MessageDialog(self, "\"%s\" is used by one or more POUs. Its interface can't be changed!"%name, "WARNING", wx.OK|wx.ICON_EXCLAMATION)
 ##        message.ShowModal()
 ##        message.Destroy()
 ##    
@@ -2759,11 +2752,11 @@
 ##                    text += " and %s"%item
 ##                else:
 ##                    text += ", %s"%item 
-##            message = wxMessageDialog(self, "Form isn't complete. %s must be filled!"%text, "Error", wxOK|wxICON_ERROR)
+##            message = wx.MessageDialog(self, "Form isn't complete. %s must be filled!"%text, "Error", wx.OK|wx.ICON_ERROR)
 ##            message.ShowModal()
 ##            message.Destroy()
 ##        else:
-##            self.EndModal(wxID_OK)
+##            self.EndModal(wx.ID_OK)
 ##
 ##    def OnClassFilter(self, event):
 ##        self.Filter = self.FilterChoiceTransfer[self.ClassFilter.GetStringSelection()]
@@ -2827,22 +2820,22 @@
 ##        value = self.Table.GetValue(row, col)
 ##        if colname == "Name":
 ##            if not TestIdentifier(value):
-##                message = wxMessageDialog(self, "\"%s\" is not a valid identifier!"%value, "Error", wxOK|wxICON_ERROR)
+##                message = wx.MessageDialog(self, "\"%s\" is not a valid identifier!"%value, "Error", wx.OK|wx.ICON_ERROR)
 ##                message.ShowModal()
 ##                message.Destroy()
 ##                event.Veto()
 ##            elif value.upper() in IEC_KEYWORDS:
-##                message = wxMessageDialog(self, "\"%s\" is a keyword. It can't be used!"%value, "Error", wxOK|wxICON_ERROR)
+##                message = wx.MessageDialog(self, "\"%s\" is a keyword. It can't be used!"%value, "Error", wx.OK|wx.ICON_ERROR)
 ##                message.ShowModal()
 ##                message.Destroy()
 ##                event.Veto()
 ##            elif value.upper() in self.PouNames:
-##                message = wxMessageDialog(self, "A pou with \"%s\" as name exists!"%value, "Error", wxOK|wxICON_ERROR)
+##                message = wx.MessageDialog(self, "A pou with \"%s\" as name exists!"%value, "Error", wx.OK|wx.ICON_ERROR)
 ##                message.ShowModal()
 ##                message.Destroy()
 ##                event.Veto()
 ##            elif value.upper() in [var["Name"].upper() for var in self.Values if var != self.Table.data[row]]:
-##                message = wxMessageDialog(self, "A variable with \"%s\" as name exists in this pou!"%value, "Error", wxOK|wxICON_ERROR)
+##                message = wx.MessageDialog(self, "A variable with \"%s\" as name exists in this pou!"%value, "Error", wx.OK|wx.ICON_ERROR)
 ##                message.ShowModal()
 ##                message.Destroy()
 ##                event.Veto()
@@ -2852,7 +2845,7 @@
 ##            event.Skip()
 ##
 ##    def OnVariablesGridSelectCell(self, event):
-##        wxCallAfter(self.RefreshButtons)
+##        wx.CallAfter(self.RefreshButtons)
 ##        event.Skip()
 ##
 ##    def SetPouNames(self, pou_names):
@@ -2938,7 +2931,7 @@
     return res
 
 def Display_Error_Dialog(e_value):
-    message = wxMessageDialog(None, str(e_value), "Error", wxOK|wxICON_ERROR)
+    message = wx.MessageDialog(None, str(e_value), "Error", wx.OK|wx.ICON_ERROR)
     message.ShowModal()
     message.Destroy()
 
@@ -2996,8 +2989,8 @@
     sys.excepthook = handle_exception
 
 if __name__ == '__main__':
-    app = wxPySimpleApp()
-    wxInitAllImageHandlers()
+    app = wx.PySimpleApp()
+    wx.InitAllImageHandlers()
     
     # Install a exception handle for bug reports
     wxAddExceptHook(os.getcwd(),__version__)