--- a/PLCOpenEditor.py Fri Feb 29 11:01:03 2008 +0100
+++ b/PLCOpenEditor.py Fri Feb 29 19:16:10 2008 +0100
@@ -104,31 +104,81 @@
] = [wx.NewId() for _init_coll_DefaultToolBar_Items in range(17)]
ToolBarItems = {
- "FBD" : [(True, FREEDRAWING_MODE|DRIVENDRAWING_MODE, ID_PLCOPENEDITORTOOLBARCOMMENT, "OnCommentTool", "comment.png", "Create a new comment"),
- (True, FREEDRAWING_MODE|DRIVENDRAWING_MODE, ID_PLCOPENEDITORTOOLBARVARIABLE, "OnVariableTool", "variable.png", "Create a new variable"),
- (True, FREEDRAWING_MODE|DRIVENDRAWING_MODE, ID_PLCOPENEDITORTOOLBARBLOCK, "OnBlockTool", "block.png", "Create a new block"),
- (True, FREEDRAWING_MODE|DRIVENDRAWING_MODE, ID_PLCOPENEDITORTOOLBARCONNECTION, "OnConnectionTool", "connection.png", "Create a new connection")],
- "LD" : [(True, FREEDRAWING_MODE, ID_PLCOPENEDITORTOOLBARCOMMENT, "OnCommentTool", "comment.png", "Create a new comment"),
- (True, FREEDRAWING_MODE, ID_PLCOPENEDITORTOOLBARPOWERRAIL, "OnPowerRailTool", "powerrail.png", "Create a new power rail"),
- (False, DRIVENDRAWING_MODE, ID_PLCOPENEDITORTOOLBARRUNG, "OnRungTool", "rung.png", "Create a new rung"),
- (True, FREEDRAWING_MODE, ID_PLCOPENEDITORTOOLBARCOIL, "OnCoilTool", "coil.png", "Create a new coil"),
- (False, FREEDRAWING_MODE|DRIVENDRAWING_MODE, ID_PLCOPENEDITORTOOLBARCONTACT, "OnContactTool", "contact.png", "Create a new contact"),
- (False, DRIVENDRAWING_MODE, ID_PLCOPENEDITORTOOLBARBRANCH, "OnBranchTool", "branch.png", "Create a new branch"),
- (True, FREEDRAWING_MODE, ID_PLCOPENEDITORTOOLBARVARIABLE, "OnVariableTool", "variable.png", "Create a new variable"),
- (False, FREEDRAWING_MODE|DRIVENDRAWING_MODE, ID_PLCOPENEDITORTOOLBARBLOCK, "OnBlockTool", "block.png", "Create a new block"),
- (True, FREEDRAWING_MODE, ID_PLCOPENEDITORTOOLBARCONNECTION, "OnConnectionTool", "connection.png", "Create a new connection")],
- "SFC" : [(True, FREEDRAWING_MODE|DRIVENDRAWING_MODE, ID_PLCOPENEDITORTOOLBARCOMMENT, "OnCommentTool", "comment.png", "Create a new comment"),
- (True, FREEDRAWING_MODE|DRIVENDRAWING_MODE, ID_PLCOPENEDITORTOOLBARINITIALSTEP, "OnInitialStepTool", "initial_step.png", "Create a new initial step"),
- (False, FREEDRAWING_MODE|DRIVENDRAWING_MODE, ID_PLCOPENEDITORTOOLBARSTEP, "OnStepTool", "step.png", "Create a new step"),
- (True, FREEDRAWING_MODE, ID_PLCOPENEDITORTOOLBARTRANSITION, "OnTransitionTool", "transition.png", "Create a new transition"),
- (False, FREEDRAWING_MODE|DRIVENDRAWING_MODE, ID_PLCOPENEDITORTOOLBARACTIONBLOCK, "OnActionBlockTool", "action.png", "Create a new action block"),
- (False, FREEDRAWING_MODE|DRIVENDRAWING_MODE, ID_PLCOPENEDITORTOOLBARDIVERGENCE, "OnDivergenceTool", "divergence.png", "Create a new divergence"),
- (False, FREEDRAWING_MODE|DRIVENDRAWING_MODE, ID_PLCOPENEDITORTOOLBARJUMP, "OnJumpTool", "jump.png", "Create a new jump"),
- (True, FREEDRAWING_MODE, ID_PLCOPENEDITORTOOLBARVARIABLE, "OnVariableTool", "variable.png", "Create a new variable"),
- (True, FREEDRAWING_MODE, ID_PLCOPENEDITORTOOLBARBLOCK, "OnBlockTool", "block.png", "Create a new block"),
- (True, FREEDRAWING_MODE, ID_PLCOPENEDITORTOOLBARCONNECTION, "OnConnectionTool", "connection.png", "Create a new connection"),
- (True, FREEDRAWING_MODE, ID_PLCOPENEDITORTOOLBARPOWERRAIL, "OnPowerRailTool", "powerrail.png", "Create a new power rail"),
- (True, FREEDRAWING_MODE, ID_PLCOPENEDITORTOOLBARCONTACT, "OnContactTool", "contact.png", "Create a new contact")],
+ "FBD" : [(True, FREEDRAWING_MODE|DRIVENDRAWING_MODE,
+ ID_PLCOPENEDITORTOOLBARCOMMENT, "OnCommentTool",
+ "add_comment.png", "Create a new comment"),
+ (True, FREEDRAWING_MODE|DRIVENDRAWING_MODE,
+ ID_PLCOPENEDITORTOOLBARVARIABLE, "OnVariableTool",
+ "add_variable.png", "Create a new variable"),
+ (True, FREEDRAWING_MODE|DRIVENDRAWING_MODE,
+ ID_PLCOPENEDITORTOOLBARBLOCK, "OnBlockTool",
+ "add_block.png", "Create a new block"),
+ (True, FREEDRAWING_MODE|DRIVENDRAWING_MODE,
+ ID_PLCOPENEDITORTOOLBARCONNECTION, "OnConnectionTool",
+ "add_connection.png", "Create a new connection")],
+ "LD" : [(True, FREEDRAWING_MODE,
+ ID_PLCOPENEDITORTOOLBARCOMMENT, "OnCommentTool",
+ "add_comment.png", "Create a new comment"),
+ (True, FREEDRAWING_MODE,
+ ID_PLCOPENEDITORTOOLBARPOWERRAIL, "OnPowerRailTool",
+ "add_powerrail.png", "Create a new power rail"),
+ (False, DRIVENDRAWING_MODE,
+ ID_PLCOPENEDITORTOOLBARRUNG, "OnRungTool",
+ "add_rung.png", "Create a new rung"),
+ (True, FREEDRAWING_MODE,
+ ID_PLCOPENEDITORTOOLBARCOIL, "OnCoilTool",
+ "add_coil.png", "Create a new coil"),
+ (False, FREEDRAWING_MODE|DRIVENDRAWING_MODE,
+ ID_PLCOPENEDITORTOOLBARCONTACT, "OnContactTool",
+ "add_contact.png", "Create a new contact"),
+ (False, DRIVENDRAWING_MODE,
+ ID_PLCOPENEDITORTOOLBARBRANCH, "OnBranchTool",
+ "add_branch.png", "Create a new branch"),
+ (True, FREEDRAWING_MODE,
+ ID_PLCOPENEDITORTOOLBARVARIABLE, "OnVariableTool",
+ "add_variable.png", "Create a new variable"),
+ (False, FREEDRAWING_MODE|DRIVENDRAWING_MODE,
+ ID_PLCOPENEDITORTOOLBARBLOCK, "OnBlockTool",
+ "add_block.png", "Create a new block"),
+ (True, FREEDRAWING_MODE,
+ ID_PLCOPENEDITORTOOLBARCONNECTION, "OnConnectionTool",
+ "add_connection.png", "Create a new connection")],
+ "SFC" : [(True, FREEDRAWING_MODE|DRIVENDRAWING_MODE,
+ ID_PLCOPENEDITORTOOLBARCOMMENT, "OnCommentTool",
+ "add_comment.png", "Create a new comment"),
+ (True, FREEDRAWING_MODE|DRIVENDRAWING_MODE,
+ ID_PLCOPENEDITORTOOLBARINITIALSTEP, "OnInitialStepTool",
+ "add_initial_step.png", "Create a new initial step"),
+ (False, FREEDRAWING_MODE|DRIVENDRAWING_MODE,
+ ID_PLCOPENEDITORTOOLBARSTEP, "OnStepTool",
+ "add_step.png", "Create a new step"),
+ (True, FREEDRAWING_MODE,
+ ID_PLCOPENEDITORTOOLBARTRANSITION, "OnTransitionTool",
+ "add_transition.png", "Create a new transition"),
+ (False, FREEDRAWING_MODE|DRIVENDRAWING_MODE,
+ ID_PLCOPENEDITORTOOLBARACTIONBLOCK, "OnActionBlockTool",
+ "add_action.png", "Create a new action block"),
+ (False, FREEDRAWING_MODE|DRIVENDRAWING_MODE,
+ ID_PLCOPENEDITORTOOLBARDIVERGENCE, "OnDivergenceTool",
+ "add_divergence.png", "Create a new divergence"),
+ (False, FREEDRAWING_MODE|DRIVENDRAWING_MODE,
+ ID_PLCOPENEDITORTOOLBARJUMP, "OnJumpTool",
+ "add_jump.png", "Create a new jump"),
+ (True, FREEDRAWING_MODE,
+ ID_PLCOPENEDITORTOOLBARVARIABLE, "OnVariableTool",
+ "add_variable.png", "Create a new variable"),
+ (True, FREEDRAWING_MODE,
+ ID_PLCOPENEDITORTOOLBARBLOCK, "OnBlockTool",
+ "add_block.png", "Create a new block"),
+ (True, FREEDRAWING_MODE,
+ ID_PLCOPENEDITORTOOLBARCONNECTION, "OnConnectionTool",
+ "add_connection.png", "Create a new connection"),
+ (True, FREEDRAWING_MODE,
+ ID_PLCOPENEDITORTOOLBARPOWERRAIL, "OnPowerRailTool",
+ "add_powerrail.png", "Create a new power rail"),
+ (True, FREEDRAWING_MODE,
+ ID_PLCOPENEDITORTOOLBARCONTACT, "OnContactTool",
+ "add_contact.png", "Create a new contact")],
"ST" : [],
"IL" : []
}
@@ -416,11 +466,33 @@
icon = wx.Icon(os.path.join(CWD,"Images","poe.ico"),wx.BITMAP_TYPE_ICO)
self.SetIcon(icon)
- if wx.Platform != '__WXMSW__':
- self.TreeImageList = wx.ImageList(16, 16)
- for language in LANGUAGES:
- self.TreeImageList.Add(wx.Bitmap(os.path.join(CWD, 'Images', '%s.png'%language)))
- self.ProjectTree.AssignImageList(self.TreeImageList)
+ self.TreeImageList = wx.ImageList(16, 16)
+ self.TreeImageDict = {}
+ for language in LANGUAGES:
+ self.TreeImageDict[language]=self.TreeImageList.Add(wx.Bitmap(os.path.join(CWD, 'Images', '%s.png'%language)))
+
+ for imgname, itemtype in [
+ #editables
+ ("PROJECT", ITEM_PROJECT),
+ #("POU", ITEM_POU),
+ #("VARIABLE", ITEM_VARIABLE),
+ ("TRANSITION", ITEM_TRANSITION),
+ ("ACTION", ITEM_ACTION),
+ ("CONFIGURATION", ITEM_CONFIGURATION),
+ ("RESOURCE", ITEM_RESOURCE),
+ ("DATATYPE", ITEM_DATATYPE),
+ # uneditables
+ ("DATATYPES", ITEM_DATATYPES),
+ ("FUNCTION", ITEM_FUNCTION),
+ ("FUNCTIONBLOCK", ITEM_FUNCTIONBLOCK),
+ ("PROGRAM", ITEM_PROGRAM),
+ ("TRANSITIONS", ITEM_TRANSITIONS),
+ ("ACTIONS", ITEM_ACTIONS),
+ ("CONFIGURATIONS", ITEM_CONFIGURATIONS),
+ ("RESOURCES", ITEM_RESOURCES),
+ ("PROPERTIES", ITEM_PROPERTIES)]:
+ self.TreeImageDict[itemtype]=self.TreeImageList.Add(wx.Bitmap(os.path.join(CWD, 'Images', '%s.png'%imgname)))
+ self.ProjectTree.AssignImageList(self.TreeImageList)
self.CurrentToolBar = []
self.CurrentLanguage = ""
@@ -1016,8 +1088,11 @@
to_delete = []
self.ProjectTree.SetItemText(root, infos["name"])
self.ProjectTree.SetPyData(root, infos["type"])
- if infos["type"] == ITEM_POU and wx.Platform != '__WXMSW__':
- self.ProjectTree.SetItemImage(root, LANGUAGES.index(self.Controler.GetPouBodyType(infos["name"])))
+ if infos["type"] == ITEM_POU :
+ self.ProjectTree.SetItemImage(root,self.TreeImageDict[self.Controler.GetPouBodyType(infos["name"])])
+ else:
+ self.ProjectTree.SetItemImage(root,self.TreeImageDict[infos["type"]])
+
if wx.VERSION >= (2, 6, 0):
item, root_cookie = self.ProjectTree.GetFirstChild(root)
else:
@@ -1071,7 +1146,7 @@
def OnProjectTreeItemBeginEdit(self, event):
selected = event.GetItem()
- if self.ProjectTree.GetPyData(selected) == ITEM_UNEDITABLE:
+ if self.ProjectTree.GetPyData(selected) in ITEMS_UNEDITABLE:
event.Veto()
else:
event.Skip()
@@ -1285,7 +1360,7 @@
event.Skip()
def OnProjectTreeItemChanging(self, event):
- if self.ProjectTree.GetPyData(event.GetItem()) != ITEM_UNEDITABLE and self.SelectedItem is None:
+ if self.ProjectTree.GetPyData(event.GetItem()) not in ITEMS_UNEDITABLE and self.SelectedItem is None:
self.SelectedItem = event.GetItem()
event.Veto()
else:
@@ -1431,7 +1506,7 @@
elif type == ITEM_RESOURCE:
self.Bind(wx.EVT_MENU, self.OnRemoveResourceMenu, id=new_id)
self.PopupMenu(menu)
- elif type == ITEM_UNEDITABLE:
+ elif type in ITEMS_UNEDITABLE:
if name == "Data Types":
menu = wx.Menu(title='')
new_id = wx.NewId()