author | etisserant |
Tue, 26 Aug 2008 13:47:21 +0200 | |
changeset 223 | 1c0d3aaacf3d |
parent 203 | cb9901076a21 |
child 229 | 8bc65076e290 |
permissions | -rw-r--r-- |
137
187a4e2412e5
Modifying svgui plugin for following new SVGUIEditor version
lbessard
parents:
105
diff
changeset
|
1 |
import os, shutil, sys |
20 | 2 |
base_folder = os.path.split(sys.path[0])[0] |
137
187a4e2412e5
Modifying svgui plugin for following new SVGUIEditor version
lbessard
parents:
105
diff
changeset
|
3 |
sys.path.append(os.path.join(base_folder, "wxsvg", "SVGUIEditor")) |
187a4e2412e5
Modifying svgui plugin for following new SVGUIEditor version
lbessard
parents:
105
diff
changeset
|
4 |
sys.path.append(os.path.join(base_folder, "plcopeneditor", "graphics")) |
187a4e2412e5
Modifying svgui plugin for following new SVGUIEditor version
lbessard
parents:
105
diff
changeset
|
5 |
|
187a4e2412e5
Modifying svgui plugin for following new SVGUIEditor version
lbessard
parents:
105
diff
changeset
|
6 |
import wx |
187a4e2412e5
Modifying svgui plugin for following new SVGUIEditor version
lbessard
parents:
105
diff
changeset
|
7 |
|
147
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
8 |
from SVGUIGenerator import * |
137
187a4e2412e5
Modifying svgui plugin for following new SVGUIEditor version
lbessard
parents:
105
diff
changeset
|
9 |
from SVGUIControler import * |
187a4e2412e5
Modifying svgui plugin for following new SVGUIEditor version
lbessard
parents:
105
diff
changeset
|
10 |
from SVGUIEditor import * |
37 | 11 |
from FBD_Objects import * |
11 | 12 |
|
137
187a4e2412e5
Modifying svgui plugin for following new SVGUIEditor version
lbessard
parents:
105
diff
changeset
|
13 |
from wxPopen import ProcessLogger |
189
48ba1ae12ffd
Adding support for calculate window size while C generating
lbessard
parents:
186
diff
changeset
|
14 |
from wx.wxsvg import SVGDocument |
137
187a4e2412e5
Modifying svgui plugin for following new SVGUIEditor version
lbessard
parents:
105
diff
changeset
|
15 |
|
187a4e2412e5
Modifying svgui plugin for following new SVGUIEditor version
lbessard
parents:
105
diff
changeset
|
16 |
[ID_SVGUIEDITORFBDPANEL, |
187a4e2412e5
Modifying svgui plugin for following new SVGUIEditor version
lbessard
parents:
105
diff
changeset
|
17 |
] = [wx.NewId() for _init_ctrls in range(1)] |
187a4e2412e5
Modifying svgui plugin for following new SVGUIEditor version
lbessard
parents:
105
diff
changeset
|
18 |
|
187a4e2412e5
Modifying svgui plugin for following new SVGUIEditor version
lbessard
parents:
105
diff
changeset
|
19 |
SVGUIFB_Types = {ITEM_CONTAINER : "Container", |
187a4e2412e5
Modifying svgui plugin for following new SVGUIEditor version
lbessard
parents:
105
diff
changeset
|
20 |
ITEM_BUTTON : "Button", |
187a4e2412e5
Modifying svgui plugin for following new SVGUIEditor version
lbessard
parents:
105
diff
changeset
|
21 |
ITEM_TEXT : "TextCtrl", |
187a4e2412e5
Modifying svgui plugin for following new SVGUIEditor version
lbessard
parents:
105
diff
changeset
|
22 |
ITEM_SCROLLBAR : "ScrollBar", |
187a4e2412e5
Modifying svgui plugin for following new SVGUIEditor version
lbessard
parents:
105
diff
changeset
|
23 |
ITEM_ROTATING : "RotatingCtrl", |
187a4e2412e5
Modifying svgui plugin for following new SVGUIEditor version
lbessard
parents:
105
diff
changeset
|
24 |
ITEM_NOTEBOOK : "NoteBook", |
187a4e2412e5
Modifying svgui plugin for following new SVGUIEditor version
lbessard
parents:
105
diff
changeset
|
25 |
ITEM_TRANSFORM : "Transform"} |
187a4e2412e5
Modifying svgui plugin for following new SVGUIEditor version
lbessard
parents:
105
diff
changeset
|
26 |
|
187a4e2412e5
Modifying svgui plugin for following new SVGUIEditor version
lbessard
parents:
105
diff
changeset
|
27 |
class _SVGUIEditor(SVGUIEditor): |
37 | 28 |
""" |
137
187a4e2412e5
Modifying svgui plugin for following new SVGUIEditor version
lbessard
parents:
105
diff
changeset
|
29 |
This Class add IEC specific features to the SVGUIEditor : |
37 | 30 |
- FDB preview |
31 |
- FBD begin drag |
|
32 |
""" |
|
137
187a4e2412e5
Modifying svgui plugin for following new SVGUIEditor version
lbessard
parents:
105
diff
changeset
|
33 |
|
187a4e2412e5
Modifying svgui plugin for following new SVGUIEditor version
lbessard
parents:
105
diff
changeset
|
34 |
def _init_coll_EditorGridSizer_Items(self, parent): |
187a4e2412e5
Modifying svgui plugin for following new SVGUIEditor version
lbessard
parents:
105
diff
changeset
|
35 |
SVGUIEditor._init_coll_EditorGridSizer_Items(self, parent) |
187a4e2412e5
Modifying svgui plugin for following new SVGUIEditor version
lbessard
parents:
105
diff
changeset
|
36 |
parent.AddWindow(self.FBDPanel, 0, border=0, flag=wx.GROW) |
187a4e2412e5
Modifying svgui plugin for following new SVGUIEditor version
lbessard
parents:
105
diff
changeset
|
37 |
|
187a4e2412e5
Modifying svgui plugin for following new SVGUIEditor version
lbessard
parents:
105
diff
changeset
|
38 |
def _init_ctrls(self, prnt): |
187a4e2412e5
Modifying svgui plugin for following new SVGUIEditor version
lbessard
parents:
105
diff
changeset
|
39 |
SVGUIEditor._init_ctrls(self, prnt, False) |
187a4e2412e5
Modifying svgui plugin for following new SVGUIEditor version
lbessard
parents:
105
diff
changeset
|
40 |
|
187a4e2412e5
Modifying svgui plugin for following new SVGUIEditor version
lbessard
parents:
105
diff
changeset
|
41 |
self.FBDPanel = wx.Panel(id=ID_SVGUIEDITORFBDPANEL, |
187a4e2412e5
Modifying svgui plugin for following new SVGUIEditor version
lbessard
parents:
105
diff
changeset
|
42 |
name='FBDPanel', parent=self.EditorPanel, pos=wx.Point(0, 0), |
187a4e2412e5
Modifying svgui plugin for following new SVGUIEditor version
lbessard
parents:
105
diff
changeset
|
43 |
size=wx.Size(0, 0), style=wx.TAB_TRAVERSAL|wx.SIMPLE_BORDER) |
187a4e2412e5
Modifying svgui plugin for following new SVGUIEditor version
lbessard
parents:
105
diff
changeset
|
44 |
self.FBDPanel.SetBackgroundColour(wx.WHITE) |
187a4e2412e5
Modifying svgui plugin for following new SVGUIEditor version
lbessard
parents:
105
diff
changeset
|
45 |
self.FBDPanel.Bind(wx.EVT_LEFT_DOWN, self.OnFBDPanelClick) |
187a4e2412e5
Modifying svgui plugin for following new SVGUIEditor version
lbessard
parents:
105
diff
changeset
|
46 |
self.FBDPanel.Bind(wx.EVT_PAINT, self.OnPaintFBDPanel) |
187a4e2412e5
Modifying svgui plugin for following new SVGUIEditor version
lbessard
parents:
105
diff
changeset
|
47 |
|
187a4e2412e5
Modifying svgui plugin for following new SVGUIEditor version
lbessard
parents:
105
diff
changeset
|
48 |
setattr(self.FBDPanel, "GetScaling", lambda: None) |
187a4e2412e5
Modifying svgui plugin for following new SVGUIEditor version
lbessard
parents:
105
diff
changeset
|
49 |
|
187a4e2412e5
Modifying svgui plugin for following new SVGUIEditor version
lbessard
parents:
105
diff
changeset
|
50 |
self._init_sizers() |
187a4e2412e5
Modifying svgui plugin for following new SVGUIEditor version
lbessard
parents:
105
diff
changeset
|
51 |
|
187a4e2412e5
Modifying svgui plugin for following new SVGUIEditor version
lbessard
parents:
105
diff
changeset
|
52 |
def __init__(self, parent, controler = None, fileOpen = None): |
187a4e2412e5
Modifying svgui plugin for following new SVGUIEditor version
lbessard
parents:
105
diff
changeset
|
53 |
SVGUIEditor.__init__(self, parent, controler, fileOpen) |
187a4e2412e5
Modifying svgui plugin for following new SVGUIEditor version
lbessard
parents:
105
diff
changeset
|
54 |
|
187a4e2412e5
Modifying svgui plugin for following new SVGUIEditor version
lbessard
parents:
105
diff
changeset
|
55 |
self.FBDBlock = None |
187a4e2412e5
Modifying svgui plugin for following new SVGUIEditor version
lbessard
parents:
105
diff
changeset
|
56 |
|
187a4e2412e5
Modifying svgui plugin for following new SVGUIEditor version
lbessard
parents:
105
diff
changeset
|
57 |
def RefreshView(self, select_id = None): |
187a4e2412e5
Modifying svgui plugin for following new SVGUIEditor version
lbessard
parents:
105
diff
changeset
|
58 |
SVGUIEditor.RefreshView(self, select_id) |
187a4e2412e5
Modifying svgui plugin for following new SVGUIEditor version
lbessard
parents:
105
diff
changeset
|
59 |
self.FBDPanel.Refresh() |
187a4e2412e5
Modifying svgui plugin for following new SVGUIEditor version
lbessard
parents:
105
diff
changeset
|
60 |
|
187a4e2412e5
Modifying svgui plugin for following new SVGUIEditor version
lbessard
parents:
105
diff
changeset
|
61 |
def OnPaintFBDPanel(self,event): |
187a4e2412e5
Modifying svgui plugin for following new SVGUIEditor version
lbessard
parents:
105
diff
changeset
|
62 |
dc = wx.ClientDC(self.FBDPanel) |
37 | 63 |
dc.Clear() |
137
187a4e2412e5
Modifying svgui plugin for following new SVGUIEditor version
lbessard
parents:
105
diff
changeset
|
64 |
selected = self.GetSelected() |
187a4e2412e5
Modifying svgui plugin for following new SVGUIEditor version
lbessard
parents:
105
diff
changeset
|
65 |
if selected is not None: |
187a4e2412e5
Modifying svgui plugin for following new SVGUIEditor version
lbessard
parents:
105
diff
changeset
|
66 |
selected_type = self.Controler.GetElementType(selected) |
187a4e2412e5
Modifying svgui plugin for following new SVGUIEditor version
lbessard
parents:
105
diff
changeset
|
67 |
if selected_type is not None: |
187a4e2412e5
Modifying svgui plugin for following new SVGUIEditor version
lbessard
parents:
105
diff
changeset
|
68 |
self.FBDBlock = FBD_Block(parent=self.FBDPanel,type=SVGUIFB_Types[selected_type],name=self.Controler.GetElementName(selected)) |
187a4e2412e5
Modifying svgui plugin for following new SVGUIEditor version
lbessard
parents:
105
diff
changeset
|
69 |
width, height = self.FBDBlock.GetMinSize() |
187a4e2412e5
Modifying svgui plugin for following new SVGUIEditor version
lbessard
parents:
105
diff
changeset
|
70 |
self.FBDBlock.SetSize(width,height) |
187a4e2412e5
Modifying svgui plugin for following new SVGUIEditor version
lbessard
parents:
105
diff
changeset
|
71 |
clientsize = self.FBDPanel.GetClientSize() |
37 | 72 |
x = (clientsize.width - width) / 2 |
73 |
y = (clientsize.height - height) / 2 |
|
137
187a4e2412e5
Modifying svgui plugin for following new SVGUIEditor version
lbessard
parents:
105
diff
changeset
|
74 |
self.FBDBlock.SetPosition(x, y) |
187a4e2412e5
Modifying svgui plugin for following new SVGUIEditor version
lbessard
parents:
105
diff
changeset
|
75 |
self.FBDBlock.Draw(dc) |
187a4e2412e5
Modifying svgui plugin for following new SVGUIEditor version
lbessard
parents:
105
diff
changeset
|
76 |
else: |
187a4e2412e5
Modifying svgui plugin for following new SVGUIEditor version
lbessard
parents:
105
diff
changeset
|
77 |
self.FBDBlock = None |
37 | 78 |
event.Skip() |
79 |
||
137
187a4e2412e5
Modifying svgui plugin for following new SVGUIEditor version
lbessard
parents:
105
diff
changeset
|
80 |
def OnFBDPanelClick(self, event): |
187a4e2412e5
Modifying svgui plugin for following new SVGUIEditor version
lbessard
parents:
105
diff
changeset
|
81 |
if self.FBDBlock: |
187a4e2412e5
Modifying svgui plugin for following new SVGUIEditor version
lbessard
parents:
105
diff
changeset
|
82 |
data = wx.TextDataObject(str((self.FBDBlock.GetType(), "functionBlock", self.FBDBlock.GetName()))) |
187a4e2412e5
Modifying svgui plugin for following new SVGUIEditor version
lbessard
parents:
105
diff
changeset
|
83 |
DropSrc = wx.DropSource(self.FBDPanel) |
37 | 84 |
DropSrc.SetData(data) |
85 |
DropSrc.DoDragDrop() |
|
137
187a4e2412e5
Modifying svgui plugin for following new SVGUIEditor version
lbessard
parents:
105
diff
changeset
|
86 |
event.Skip() |
187a4e2412e5
Modifying svgui plugin for following new SVGUIEditor version
lbessard
parents:
105
diff
changeset
|
87 |
|
187a4e2412e5
Modifying svgui plugin for following new SVGUIEditor version
lbessard
parents:
105
diff
changeset
|
88 |
def OnInterfaceTreeItemSelected(self, event): |
187a4e2412e5
Modifying svgui plugin for following new SVGUIEditor version
lbessard
parents:
105
diff
changeset
|
89 |
self.FBDPanel.Refresh() |
187a4e2412e5
Modifying svgui plugin for following new SVGUIEditor version
lbessard
parents:
105
diff
changeset
|
90 |
SVGUIEditor.OnInterfaceTreeItemSelected(self, event) |
187a4e2412e5
Modifying svgui plugin for following new SVGUIEditor version
lbessard
parents:
105
diff
changeset
|
91 |
|
37 | 92 |
def OnGenerate(self,event): |
93 |
self.SaveProject() |
|
94 |
self.Controler.PlugGenerate_C(sys.path[0],(0,0,4,5),None) |
|
95 |
event.Skip() |
|
96 |
||
97 |
TYPECONVERSION = {"BOOL" : "X", "SINT" : "B", "INT" : "W", "DINT" : "D", "LINT" : "L", |
|
98 |
"USINT" : "B", "UINT" : "W", "UDINT" : "D", "ULINT" : "L", "REAL" : "D", "LREAL" : "L", |
|
99 |
"STRING" : "B", "BYTE" : "B", "WORD" : "W", "DWORD" : "D", "LWORD" : "L", "WSTRING" : "W"} |
|
137
187a4e2412e5
Modifying svgui plugin for following new SVGUIEditor version
lbessard
parents:
105
diff
changeset
|
100 |
|
44
1f5407c0263f
Various changes to make SVGUI plugin generated code eventually compile
etisserant
parents:
43
diff
changeset
|
101 |
CTYPECONVERSION = {"BOOL" : "IEC_BOOL", "UINT" : "IEC_UINT", "STRING" : "IEC_STRING", "REAL" : "IEC_REAL"} |
37 | 102 |
CPRINTTYPECONVERSION = {"BOOL" : "d", "UINT" : "d", "STRING" : "s", "REAL" : "f"} |
137
187a4e2412e5
Modifying svgui plugin for following new SVGUIEditor version
lbessard
parents:
105
diff
changeset
|
103 |
|
187a4e2412e5
Modifying svgui plugin for following new SVGUIEditor version
lbessard
parents:
105
diff
changeset
|
104 |
class RootClass(SVGUIControler): |
37 | 105 |
|
38
8cb20bc13a91
SVGUI's DefEditor now runs and generate C code. Swapped __I with __Q
etisserant
parents:
37
diff
changeset
|
106 |
def __init__(self): |
137
187a4e2412e5
Modifying svgui plugin for following new SVGUIEditor version
lbessard
parents:
105
diff
changeset
|
107 |
SVGUIControler.__init__(self) |
187a4e2412e5
Modifying svgui plugin for following new SVGUIEditor version
lbessard
parents:
105
diff
changeset
|
108 |
filepath = os.path.join(self.PlugPath(), "gui.xml") |
37 | 109 |
|
12 | 110 |
if os.path.isfile(filepath): |
37 | 111 |
svgfile = os.path.join(self.PlugPath(), "gui.svg") |
112 |
if os.path.isfile(svgfile): |
|
113 |
self.SvgFilepath = svgfile |
|
12 | 114 |
self.OpenXMLFile(filepath) |
13
f1f0edbeb313
More precise design for plugins.... to be continued...
etisserant
parents:
12
diff
changeset
|
115 |
else: |
137
187a4e2412e5
Modifying svgui plugin for following new SVGUIEditor version
lbessard
parents:
105
diff
changeset
|
116 |
self.CreateNewInterface() |
12 | 117 |
self.SetFilePath(filepath) |
118 |
||
137
187a4e2412e5
Modifying svgui plugin for following new SVGUIEditor version
lbessard
parents:
105
diff
changeset
|
119 |
def GetElementIdFromName(self, name): |
187a4e2412e5
Modifying svgui plugin for following new SVGUIEditor version
lbessard
parents:
105
diff
changeset
|
120 |
element = self.GetElementByName(name) |
187a4e2412e5
Modifying svgui plugin for following new SVGUIEditor version
lbessard
parents:
105
diff
changeset
|
121 |
if element is not None: |
187a4e2412e5
Modifying svgui plugin for following new SVGUIEditor version
lbessard
parents:
105
diff
changeset
|
122 |
return element.getid() |
187a4e2412e5
Modifying svgui plugin for following new SVGUIEditor version
lbessard
parents:
105
diff
changeset
|
123 |
return None |
187a4e2412e5
Modifying svgui plugin for following new SVGUIEditor version
lbessard
parents:
105
diff
changeset
|
124 |
|
38
8cb20bc13a91
SVGUI's DefEditor now runs and generate C code. Swapped __I with __Q
etisserant
parents:
37
diff
changeset
|
125 |
_View = None |
203 | 126 |
def _OpenView(self): |
38
8cb20bc13a91
SVGUI's DefEditor now runs and generate C code. Swapped __I with __Q
etisserant
parents:
37
diff
changeset
|
127 |
if not self._View: |
8cb20bc13a91
SVGUI's DefEditor now runs and generate C code. Swapped __I with __Q
etisserant
parents:
37
diff
changeset
|
128 |
def _onclose(): |
8cb20bc13a91
SVGUI's DefEditor now runs and generate C code. Swapped __I with __Q
etisserant
parents:
37
diff
changeset
|
129 |
self._View = None |
8cb20bc13a91
SVGUI's DefEditor now runs and generate C code. Swapped __I with __Q
etisserant
parents:
37
diff
changeset
|
130 |
def _onsave(): |
8cb20bc13a91
SVGUI's DefEditor now runs and generate C code. Swapped __I with __Q
etisserant
parents:
37
diff
changeset
|
131 |
self.GetPlugRoot().SaveProject() |
137
187a4e2412e5
Modifying svgui plugin for following new SVGUIEditor version
lbessard
parents:
105
diff
changeset
|
132 |
self._View = _SVGUIEditor(self.GetPlugRoot().AppFrame, self) |
38
8cb20bc13a91
SVGUI's DefEditor now runs and generate C code. Swapped __I with __Q
etisserant
parents:
37
diff
changeset
|
133 |
self._View._onclose = _onclose |
8cb20bc13a91
SVGUI's DefEditor now runs and generate C code. Swapped __I with __Q
etisserant
parents:
37
diff
changeset
|
134 |
self._View._onsave = _onsave |
8cb20bc13a91
SVGUI's DefEditor now runs and generate C code. Swapped __I with __Q
etisserant
parents:
37
diff
changeset
|
135 |
self._View.Show() |
8cb20bc13a91
SVGUI's DefEditor now runs and generate C code. Swapped __I with __Q
etisserant
parents:
37
diff
changeset
|
136 |
|
203 | 137 |
def _ImportSVG(self): |
137
187a4e2412e5
Modifying svgui plugin for following new SVGUIEditor version
lbessard
parents:
105
diff
changeset
|
138 |
if not self._View: |
187a4e2412e5
Modifying svgui plugin for following new SVGUIEditor version
lbessard
parents:
105
diff
changeset
|
139 |
dialog = wx.FileDialog(self.GetPlugRoot().AppFrame, "Choose a SVG file", os.getcwd(), "", "SVG files (*.svg)|*.svg|All files|*.*", wx.OPEN) |
187a4e2412e5
Modifying svgui plugin for following new SVGUIEditor version
lbessard
parents:
105
diff
changeset
|
140 |
if dialog.ShowModal() == wx.ID_OK: |
187a4e2412e5
Modifying svgui plugin for following new SVGUIEditor version
lbessard
parents:
105
diff
changeset
|
141 |
svgpath = dialog.GetPath() |
187a4e2412e5
Modifying svgui plugin for following new SVGUIEditor version
lbessard
parents:
105
diff
changeset
|
142 |
if os.path.isfile(svgpath): |
187a4e2412e5
Modifying svgui plugin for following new SVGUIEditor version
lbessard
parents:
105
diff
changeset
|
143 |
shutil.copy(svgpath, os.path.join(self.PlugPath(), "gui.svg")) |
187a4e2412e5
Modifying svgui plugin for following new SVGUIEditor version
lbessard
parents:
105
diff
changeset
|
144 |
else: |
203 | 145 |
self.logger.write_error("No such SVG file: %s\n"%svgpath) |
137
187a4e2412e5
Modifying svgui plugin for following new SVGUIEditor version
lbessard
parents:
105
diff
changeset
|
146 |
dialog.Destroy() |
187a4e2412e5
Modifying svgui plugin for following new SVGUIEditor version
lbessard
parents:
105
diff
changeset
|
147 |
|
203 | 148 |
def _ImportXML(self): |
137
187a4e2412e5
Modifying svgui plugin for following new SVGUIEditor version
lbessard
parents:
105
diff
changeset
|
149 |
if not self._View: |
187a4e2412e5
Modifying svgui plugin for following new SVGUIEditor version
lbessard
parents:
105
diff
changeset
|
150 |
dialog = wx.FileDialog(self.GetPlugRoot().AppFrame, "Choose a XML file", os.getcwd(), "", "XML files (*.xml)|*.xml|All files|*.*", wx.OPEN) |
187a4e2412e5
Modifying svgui plugin for following new SVGUIEditor version
lbessard
parents:
105
diff
changeset
|
151 |
if dialog.ShowModal() == wx.ID_OK: |
187a4e2412e5
Modifying svgui plugin for following new SVGUIEditor version
lbessard
parents:
105
diff
changeset
|
152 |
xmlpath = dialog.GetPath() |
187a4e2412e5
Modifying svgui plugin for following new SVGUIEditor version
lbessard
parents:
105
diff
changeset
|
153 |
if os.path.isfile(xmlpath): |
187a4e2412e5
Modifying svgui plugin for following new SVGUIEditor version
lbessard
parents:
105
diff
changeset
|
154 |
shutil.copy(xmlpath, os.path.join(self.PlugPath(), "gui.xml")) |
187a4e2412e5
Modifying svgui plugin for following new SVGUIEditor version
lbessard
parents:
105
diff
changeset
|
155 |
else: |
203 | 156 |
self.logger.write_error("No such XML file: %s\n"%xmlpath) |
137
187a4e2412e5
Modifying svgui plugin for following new SVGUIEditor version
lbessard
parents:
105
diff
changeset
|
157 |
dialog.Destroy() |
187a4e2412e5
Modifying svgui plugin for following new SVGUIEditor version
lbessard
parents:
105
diff
changeset
|
158 |
|
65 | 159 |
PluginMethods = [ |
82
d7b4dd1f543f
Beremiz layout improved for wx2.8 by inserting all control in TreeCtrl
lbessard
parents:
73
diff
changeset
|
160 |
{"bitmap" : os.path.join("images","HMIEditor"), |
65 | 161 |
"name" : "HMI Editor", |
162 |
"tooltip" : "HMI Editor", |
|
105
434aed8dc58d
Added ability to override plugin methods with arbitrary python code (methods.py) when loading plugins
etisserant
parents:
82
diff
changeset
|
163 |
"method" : "_OpenView"}, |
82
d7b4dd1f543f
Beremiz layout improved for wx2.8 by inserting all control in TreeCtrl
lbessard
parents:
73
diff
changeset
|
164 |
{"bitmap" : os.path.join("images","ImportSVG"), |
65 | 165 |
"name" : "Import SVG", |
166 |
"tooltip" : "Import SVG", |
|
137
187a4e2412e5
Modifying svgui plugin for following new SVGUIEditor version
lbessard
parents:
105
diff
changeset
|
167 |
"method" : "_ImportSVG"}, |
82
d7b4dd1f543f
Beremiz layout improved for wx2.8 by inserting all control in TreeCtrl
lbessard
parents:
73
diff
changeset
|
168 |
{"bitmap" : os.path.join("images","ImportDEF"), |
137
187a4e2412e5
Modifying svgui plugin for following new SVGUIEditor version
lbessard
parents:
105
diff
changeset
|
169 |
"name" : "Import XML", |
187a4e2412e5
Modifying svgui plugin for following new SVGUIEditor version
lbessard
parents:
105
diff
changeset
|
170 |
"tooltip" : "Import XML", |
139 | 171 |
"method" : "_ImportXML"}, |
65 | 172 |
] |
38
8cb20bc13a91
SVGUI's DefEditor now runs and generate C code. Swapped __I with __Q
etisserant
parents:
37
diff
changeset
|
173 |
|
37 | 174 |
def OnPlugSave(self): |
198
cf99e75b6dda
Bug while while changing name of SVGUI plugin node fixed
lbessard
parents:
192
diff
changeset
|
175 |
self.SaveXMLFile(os.path.join(self.PlugPath(), "gui.xml")) |
12 | 176 |
return True |
37 | 177 |
|
203 | 178 |
def PlugGenerate_C(self, buildpath, locations): |
137
187a4e2412e5
Modifying svgui plugin for following new SVGUIEditor version
lbessard
parents:
105
diff
changeset
|
179 |
progname = "SVGUI_%s"%"_".join(map(str, self.GetCurrentLocation())) |
147
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
180 |
|
189
48ba1ae12ffd
Adding support for calculate window size while C generating
lbessard
parents:
186
diff
changeset
|
181 |
doc = SVGDocument(self.GetSVGFilePath()) |
48ba1ae12ffd
Adding support for calculate window size while C generating
lbessard
parents:
186
diff
changeset
|
182 |
root_element = doc.GetRootElement() |
191 | 183 |
window_size = (int(float(root_element.GetAttribute("width"))), |
184 |
int(float(root_element.GetAttribute("height")))) |
|
185 |
||
203 | 186 |
# svgfilepath = self.GetSVGFilePath() |
187 |
# xmlfilepath = self.GetFilePath() |
|
188 |
# shutil.copy(svgfilepath, buildpath) |
|
189 |
# shutil.copy(xmlfilepath, buildpath) |
|
190 |
||
191 |
SVGFilePath = self.GetSVGFilePath() |
|
192 |
SVGFileBaseName = os.path.split(SVGFilePath)[1] |
|
193 |
FilePath = self.GetFilePath() |
|
194 |
FileBaseName = os.path.split(FilePath)[1] |
|
192
f0482f1ae901
Problem with files when launching created program from another directory fixed
lbessard
parents:
191
diff
changeset
|
195 |
|
201
520d2416ff4d
Adding support for highlighing compiling errors into PLCOpenEditor
lbessard
parents:
198
diff
changeset
|
196 |
generator = _SVGUICGenerator(self, self.GetElementsByType(), |
192
f0482f1ae901
Problem with files when launching created program from another directory fixed
lbessard
parents:
191
diff
changeset
|
197 |
os.path.split(self.GetSVGFilePath())[1], |
f0482f1ae901
Problem with files when launching created program from another directory fixed
lbessard
parents:
191
diff
changeset
|
198 |
os.path.split(self.GetFilePath())[1], |
f0482f1ae901
Problem with files when launching created program from another directory fixed
lbessard
parents:
191
diff
changeset
|
199 |
self.GetCurrentLocation()) |
189
48ba1ae12ffd
Adding support for calculate window size while C generating
lbessard
parents:
186
diff
changeset
|
200 |
generator.GenerateProgram(window_size, buildpath, progname) |
47
fd45c291fed0
PLC and plugins compilation with gcc now starts (and fail).
etisserant
parents:
44
diff
changeset
|
201 |
Gen_C_file = os.path.join(buildpath, progname+".cpp" ) |
137
187a4e2412e5
Modifying svgui plugin for following new SVGUIEditor version
lbessard
parents:
105
diff
changeset
|
202 |
|
147
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
203 |
if wx.Platform == '__WXMSW__': |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
204 |
cxx_flags = "-I..\\..\\wxPython-src-2.8.7.1\\bld\\lib\\wx\\include\\msw-unicode-release-2.8 -I..\\..\\wxPython-src-2.8.7.1\\include -I..\\..\\wxPython-src-2.8.7.1\\contrib\\include -I..\\..\\matiec\\lib -DWXUSINGDLL -D__WXMSW__ -mthreads" |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
205 |
libs = "\"..\\lib\\libwxsvg.a\" \"..\\lib\\libwxsvg_agg.a\" \"..\\lib\\libagg.a\" \"..\\lib\\libaggplatformwin32.a\" \"..\\lib\\libaggfontwin32tt.a\" -L..\\..\\wxPython-src-2.8.7.1\\bld\\lib -mno-cygwin -mwindows -mthreads -mno-cygwin -mwindows -Wl,--subsystem,windows -mwindows -lwx_mswu_richtext-2.8 -lwx_mswu_aui-2.8 -lwx_mswu_xrc-2.8 -lwx_mswu_qa-2.8 -lwx_mswu_html-2.8 -lwx_mswu_adv-2.8 -lwx_mswu_core-2.8 -lwx_baseu_xml-2.8 -lwx_baseu_net-2.8 -lwx_baseu-2.8" |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
206 |
else: |
203 | 207 |
status, result, err_result = ProcessLogger(self.logger, "wx-config --cxxflags", no_stdout=True).spin() |
147
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
208 |
if status: |
203 | 209 |
self.logger.write_error("Unable to get wx cxxflags\n") |
147
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
210 |
cxx_flags = result.strip() + " -I../matiec/lib" |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
211 |
|
203 | 212 |
status, result, err_result = ProcessLogger(self.logger, "wx-config --libs", no_stdout=True).spin() |
147
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
213 |
if status: |
203 | 214 |
self.logger.write_error("Unable to get wx libs\n") |
147
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
215 |
libs = result.strip() + " -lwxsvg" |
137
187a4e2412e5
Modifying svgui plugin for following new SVGUIEditor version
lbessard
parents:
105
diff
changeset
|
216 |
|
203 | 217 |
return [(Gen_C_file, cxx_flags)],libs,True,(SVGFileBaseName, file(SVGFilePath, "rb")), (FileBaseName, file(FilePath, "rb")) |
13
f1f0edbeb313
More precise design for plugins.... to be continued...
etisserant
parents:
12
diff
changeset
|
218 |
|
12 | 219 |
def BlockTypesFactory(self): |
201
520d2416ff4d
Adding support for highlighing compiling errors into PLCOpenEditor
lbessard
parents:
198
diff
changeset
|
220 |
|
520d2416ff4d
Adding support for highlighing compiling errors into PLCOpenEditor
lbessard
parents:
198
diff
changeset
|
221 |
SVGUIBlock_Types = [] |
520d2416ff4d
Adding support for highlighing compiling errors into PLCOpenEditor
lbessard
parents:
198
diff
changeset
|
222 |
|
520d2416ff4d
Adding support for highlighing compiling errors into PLCOpenEditor
lbessard
parents:
198
diff
changeset
|
223 |
def GetSVGUIBlockType(type): |
520d2416ff4d
Adding support for highlighing compiling errors into PLCOpenEditor
lbessard
parents:
198
diff
changeset
|
224 |
for category in SVGUIBlock_Types: |
520d2416ff4d
Adding support for highlighing compiling errors into PLCOpenEditor
lbessard
parents:
198
diff
changeset
|
225 |
for blocktype in category["list"]: |
520d2416ff4d
Adding support for highlighing compiling errors into PLCOpenEditor
lbessard
parents:
198
diff
changeset
|
226 |
if blocktype["name"] == type: |
520d2416ff4d
Adding support for highlighing compiling errors into PLCOpenEditor
lbessard
parents:
198
diff
changeset
|
227 |
return blocktype |
520d2416ff4d
Adding support for highlighing compiling errors into PLCOpenEditor
lbessard
parents:
198
diff
changeset
|
228 |
setattr(self, "GetSVGUIBlockType", GetSVGUIBlockType) |
520d2416ff4d
Adding support for highlighing compiling errors into PLCOpenEditor
lbessard
parents:
198
diff
changeset
|
229 |
|
73 | 230 |
def generate_svgui_block(generator, block, body, link, order=False): |
137
187a4e2412e5
Modifying svgui plugin for following new SVGUIEditor version
lbessard
parents:
105
diff
changeset
|
231 |
name = block.getinstanceName() |
42 | 232 |
block_id = self.GetElementIdFromName(name) |
12 | 233 |
if block_id == None: |
234 |
raise ValueError, "No corresponding block found" |
|
137
187a4e2412e5
Modifying svgui plugin for following new SVGUIEditor version
lbessard
parents:
105
diff
changeset
|
235 |
type = block.gettypeName() |
201
520d2416ff4d
Adding support for highlighing compiling errors into PLCOpenEditor
lbessard
parents:
198
diff
changeset
|
236 |
block_infos = GetSVGUIBlockType(type) |
43 | 237 |
current_location = ".".join(map(str, self.GetCurrentLocation())) |
186 | 238 |
if not generator.ComputedBlocks.get(block, False) and not order: |
147
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
239 |
generator.ComputedBlocks[block] = True |
137
187a4e2412e5
Modifying svgui plugin for following new SVGUIEditor version
lbessard
parents:
105
diff
changeset
|
240 |
for num, variable in enumerate(block.inputVariables.getvariable()): |
187a4e2412e5
Modifying svgui plugin for following new SVGUIEditor version
lbessard
parents:
105
diff
changeset
|
241 |
connections = variable.connectionPointIn.getconnections() |
201
520d2416ff4d
Adding support for highlighing compiling errors into PLCOpenEditor
lbessard
parents:
198
diff
changeset
|
242 |
input_info = (generator.TagName, "block", block.getlocalId(), "input", num) |
12 | 243 |
if connections and len(connections) == 1: |
47
fd45c291fed0
PLC and plugins compilation with gcc now starts (and fail).
etisserant
parents:
44
diff
changeset
|
244 |
parameter = "%sQ%s%s.%d.%d"%("%", TYPECONVERSION[block_infos["inputs"][num][1]], current_location, block_id, num+1) |
12 | 245 |
value = generator.ComputeFBDExpression(body, connections[0]) |
201
520d2416ff4d
Adding support for highlighing compiling errors into PLCOpenEditor
lbessard
parents:
198
diff
changeset
|
246 |
generator.Program += [(generator.CurrentIndent, ()), |
520d2416ff4d
Adding support for highlighing compiling errors into PLCOpenEditor
lbessard
parents:
198
diff
changeset
|
247 |
(parameter, input_info), |
520d2416ff4d
Adding support for highlighing compiling errors into PLCOpenEditor
lbessard
parents:
198
diff
changeset
|
248 |
(" := ", ())] |
520d2416ff4d
Adding support for highlighing compiling errors into PLCOpenEditor
lbessard
parents:
198
diff
changeset
|
249 |
generator.Program += generator.ExtractModifier(variable, value, input_info) |
520d2416ff4d
Adding support for highlighing compiling errors into PLCOpenEditor
lbessard
parents:
198
diff
changeset
|
250 |
generator.Program += [(";\n", ())] |
12 | 251 |
if link: |
137
187a4e2412e5
Modifying svgui plugin for following new SVGUIEditor version
lbessard
parents:
105
diff
changeset
|
252 |
connectionPoint = link.getposition()[-1] |
187a4e2412e5
Modifying svgui plugin for following new SVGUIEditor version
lbessard
parents:
105
diff
changeset
|
253 |
for num, variable in enumerate(block.outputVariables.getvariable()): |
187a4e2412e5
Modifying svgui plugin for following new SVGUIEditor version
lbessard
parents:
105
diff
changeset
|
254 |
blockPointx, blockPointy = variable.connectionPointOut.getrelPositionXY() |
201
520d2416ff4d
Adding support for highlighing compiling errors into PLCOpenEditor
lbessard
parents:
198
diff
changeset
|
255 |
output_info = (generator.TagName, "block", block.getlocalId(), "output", num) |
137
187a4e2412e5
Modifying svgui plugin for following new SVGUIEditor version
lbessard
parents:
105
diff
changeset
|
256 |
if block.getx() + blockPointx == connectionPoint.getx() and block.gety() + blockPointy == connectionPoint.gety(): |
201
520d2416ff4d
Adding support for highlighing compiling errors into PLCOpenEditor
lbessard
parents:
198
diff
changeset
|
257 |
return [("%sI%s%s.%d.%d"%("%", TYPECONVERSION[block_infos["outputs"][num][1]], current_location, block_id, num+1), output_info)] |
12 | 258 |
raise ValueError, "No output variable found" |
259 |
else: |
|
260 |
return None |
|
11 | 261 |
|
138 | 262 |
def initialise_block(type, name, block = None): |
43 | 263 |
block_id = self.GetElementIdFromName(name) |
264 |
if block_id == None: |
|
265 |
raise ValueError, "No corresponding block found" |
|
201
520d2416ff4d
Adding support for highlighing compiling errors into PLCOpenEditor
lbessard
parents:
198
diff
changeset
|
266 |
block_infos = GetSVGUIBlockType(type) |
43 | 267 |
current_location = ".".join(map(str, self.GetCurrentLocation())) |
268 |
variables = [] |
|
138 | 269 |
if block is not None: |
270 |
input_variables = block.inputVariables.getvariable() |
|
271 |
output_variables = block.outputVariables.getvariable() |
|
272 |
else: |
|
273 |
input_variables = None |
|
274 |
output_variables = None |
|
43 | 275 |
for num, (input_name, input_type, input_modifier) in enumerate(block_infos["inputs"]): |
138 | 276 |
if input_variables is not None and num < len(input_variables): |
277 |
connections = input_variables[num].connectionPointIn.getconnections() |
|
278 |
if input_variables is None or connections and len(connections) == 1: |
|
279 |
variables.append((input_type, None, "%sQ%s%s.%d.%d"%("%", TYPECONVERSION[input_type], current_location, block_id, num+1), None)) |
|
43 | 280 |
for num, (output_name, output_type, output_modifier) in enumerate(block_infos["outputs"]): |
47
fd45c291fed0
PLC and plugins compilation with gcc now starts (and fail).
etisserant
parents:
44
diff
changeset
|
281 |
variables.append((output_type, None, "%sI%s%s.%d.%d"%("%", TYPECONVERSION[input_type], current_location, block_id, num+1), None)) |
43 | 282 |
return variables |
283 |
||
201
520d2416ff4d
Adding support for highlighing compiling errors into PLCOpenEditor
lbessard
parents:
198
diff
changeset
|
284 |
SVGUIBlock_Types.extend([{"name" : "SVGUI function blocks", "list" : |
137
187a4e2412e5
Modifying svgui plugin for following new SVGUIEditor version
lbessard
parents:
105
diff
changeset
|
285 |
[{"name" : "Container", "type" : "functionBlock", "extensible" : False, |
138 | 286 |
"inputs" : [("Show","BOOL","none"),("Enable","BOOL","none")], |
287 |
"outputs" : [], |
|
42 | 288 |
"comment" : "SVGUI Container", |
43 | 289 |
"generate" : generate_svgui_block, "initialise" : initialise_block}, |
37 | 290 |
{"name" : "Button", "type" : "functionBlock", "extensible" : False, |
186 | 291 |
"inputs" : [("Show","BOOL","none"),("Enable","BOOL","none"),("Value","BOOL","none")], |
138 | 292 |
"outputs" : [("State","BOOL","none")], |
42 | 293 |
"comment" : "SVGUI Button", |
43 | 294 |
"generate" : generate_svgui_block, "initialise" : initialise_block}, |
37 | 295 |
{"name" : "TextCtrl", "type" : "functionBlock", "extensible" : False, |
138 | 296 |
"inputs" : [("Show","BOOL","none"),("Enable","BOOL","none"),("SetText","STRING","none")], |
297 |
"outputs" : [("Text","STRING","none")], |
|
42 | 298 |
"comment" : "SVGUI Text Control", |
43 | 299 |
"generate" : generate_svgui_block, "initialise" : initialise_block}, |
37 | 300 |
{"name" : "ScrollBar", "type" : "functionBlock", "extensible" : False, |
138 | 301 |
"inputs" : [("Show","BOOL","none"),("Enable","BOOL","none"),("SetThumb","UINT","none"),("SetRange","UINT","none"),("SetPosition","UINT","none")], |
302 |
"outputs" : [("Position","UINT","none")], |
|
42 | 303 |
"comment" : "SVGUI ScrollBar", |
43 | 304 |
"generate" : generate_svgui_block, "initialise" : initialise_block}, |
37 | 305 |
{"name" : "NoteBook", "type" : "functionBlock", "extensible" : False, |
138 | 306 |
"inputs" : [("Show","BOOL","none"),("Enable","BOOL","none"),("SetSelected","BOOL","none")], |
307 |
"outputs" : [("Selected","UINT","none")], |
|
42 | 308 |
"comment" : "SVGUI Notebook", |
43 | 309 |
"generate" : generate_svgui_block, "initialise" : initialise_block}, |
37 | 310 |
{"name" : "RotatingCtrl", "type" : "functionBlock", "extensible" : False, |
138 | 311 |
"inputs" : [("Show","BOOL","none"),("Enable","BOOL","none"),("SetAngle","REAL","none")], |
312 |
"outputs" : [("Angle","REAL","none")], |
|
42 | 313 |
"comment" : "SVGUI Rotating Control", |
43 | 314 |
"generate" : generate_svgui_block, "initialise" : initialise_block}, |
37 | 315 |
{"name" : "Transform", "type" : "functionBlock", "extensible" : False, |
138 | 316 |
"inputs" : [("Show","BOOL","none"),("Enable","BOOL","none"),("SetX","REAL","none"),("SetY","REAL","none"),("SetXScale","REAL","none"),("SetYScale","REAL","none"),("SetAngle","REAL","none")], |
317 |
"outputs" : [("X","REAL","none"),("Y","REAL","none")], |
|
42 | 318 |
"comment" : "SVGUI Transform", |
43 | 319 |
"generate" : generate_svgui_block, "initialise" : initialise_block}, |
37 | 320 |
]} |
201
520d2416ff4d
Adding support for highlighing compiling errors into PLCOpenEditor
lbessard
parents:
198
diff
changeset
|
321 |
]) |
520d2416ff4d
Adding support for highlighing compiling errors into PLCOpenEditor
lbessard
parents:
198
diff
changeset
|
322 |
|
520d2416ff4d
Adding support for highlighing compiling errors into PLCOpenEditor
lbessard
parents:
198
diff
changeset
|
323 |
return SVGUIBlock_Types |
147
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
324 |
|
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
325 |
|
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
326 |
class _SVGUICGenerator(SVGUICGenerator): |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
327 |
|
201
520d2416ff4d
Adding support for highlighing compiling errors into PLCOpenEditor
lbessard
parents:
198
diff
changeset
|
328 |
def __init__(self, controler, elements, svgfile, xmlfile, current_location): |
147
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
329 |
SVGUICGenerator.__init__(self, elements, svgfile, xmlfile) |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
330 |
|
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
331 |
self.CurrentLocation = current_location |
201
520d2416ff4d
Adding support for highlighing compiling errors into PLCOpenEditor
lbessard
parents:
198
diff
changeset
|
332 |
self.Controler = controler |
147
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
333 |
|
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
334 |
def GenerateProgramHeadersPublicVars(self): |
203 | 335 |
text = """ |
336 |
void OnPlcOutEvent(wxEvent& event); |
|
147
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
337 |
|
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
338 |
void Retrieve(); |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
339 |
void Publish(); |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
340 |
void Initialize(); |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
341 |
""" |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
342 |
# text += " void Print();\n" |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
343 |
return text |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
344 |
|
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
345 |
def GenerateIECVars(self): |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
346 |
text = "" |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
347 |
for element in self.Elements: |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
348 |
text += "STATE_TYPE out_state_%d;\n"%element.getid() |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
349 |
text += "STATE_TYPE in_state_%d;\n"%element.getid() |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
350 |
text +="\n" |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
351 |
current_location = "_".join(map(str, self.CurrentLocation)) |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
352 |
#Declaration des variables |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
353 |
for element in self.Elements: |
201
520d2416ff4d
Adding support for highlighing compiling errors into PLCOpenEditor
lbessard
parents:
198
diff
changeset
|
354 |
block_infos = self.Controler.GetSVGUIBlockType(SVGUIFB_Types[GetElementType(element)]) |
147
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
355 |
block_id = element.getid() |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
356 |
for i, input in enumerate(block_infos["inputs"]): |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
357 |
element_c_type = CTYPECONVERSION[input[1]] |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
358 |
variable = "__Q%s%s_%d_%d"%(TYPECONVERSION[input[1]], current_location, block_id, i + 1) |
165 | 359 |
text += "%s beremiz%s;\n"%(element_c_type, variable) |
360 |
text += "%s* %s = &beremiz%s;\n"%(element_c_type, variable, variable) |
|
147
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
361 |
text += "%s _copy%s;\n"%(element_c_type, variable) |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
362 |
for i, output in enumerate(block_infos["outputs"]): |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
363 |
element_c_type = CTYPECONVERSION[output[1]] |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
364 |
variable = "__I%s%s_%d_%d"%(TYPECONVERSION[output[1]], current_location, block_id, i + 1) |
165 | 365 |
text += "%s beremiz%s;\n"%(element_c_type, variable) |
366 |
text += "%s* %s = &beremiz%s;\n"%(element_c_type, variable, variable) |
|
147
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
367 |
text += "%s _copy%s;\n"%(element_c_type, variable) |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
368 |
text +="\n" |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
369 |
return text |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
370 |
|
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
371 |
def GenerateGlobalVarsAndFuncs(self, size): |
181
f01bcc3c9157
Better SCGUITransform value initialization. Added semaphore as a mainloop init barrier
etisserant
parents:
165
diff
changeset
|
372 |
text = """#include "iec_types.h" |
147
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
373 |
#ifdef __WXMSW__ |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
374 |
#define COMPARE_AND_SWAP_VAL(Destination, comparand, exchange) InterlockedCompareExchange(Destination, exchange, comparand) |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
375 |
#define THREAD_RETURN_TYPE DWORD WINAPI |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
376 |
#define STATE_TYPE long int |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
377 |
#else |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
378 |
#define COMPARE_AND_SWAP_VAL(Destination, comparand, exchange) __sync_val_compare_and_swap(Destination, comparand, exchange) |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
379 |
#define THREAD_RETURN_TYPE void* |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
380 |
#define STATE_TYPE volatile int |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
381 |
#endif |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
382 |
|
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
383 |
""" |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
384 |
|
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
385 |
text += self.GenerateIECVars() |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
386 |
|
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
387 |
text += """IMPLEMENT_APP_NO_MAIN(SVGViewApp); |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
388 |
SVGViewApp *myapp = NULL; |
181
f01bcc3c9157
Better SCGUITransform value initialization. Added semaphore as a mainloop init barrier
etisserant
parents:
165
diff
changeset
|
389 |
wxSemaphore MyInitSem; |
147
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
390 |
|
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
391 |
#ifdef __WXMSW__ |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
392 |
HANDLE wxMainLoop; |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
393 |
DWORD wxMainLoopId; |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
394 |
#else |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
395 |
pthread_t wxMainLoop; |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
396 |
#endif |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
397 |
|
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
398 |
""" |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
399 |
|
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
400 |
text += """int myargc = 0; |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
401 |
char** myargv = NULL; |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
402 |
|
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
403 |
#define UNCHANGED 1 |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
404 |
#define PLC_BUSY 2 |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
405 |
#define CHANGED 3 |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
406 |
#define GUI_BUSY 4 |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
407 |
#ifdef __WXMSW__ |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
408 |
#else |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
409 |
#endif |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
410 |
|
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
411 |
bool refresh = false; |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
412 |
bool refreshing = false; |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
413 |
|
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
414 |
THREAD_RETURN_TYPE InitWxEntry(void* args) |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
415 |
{ |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
416 |
wxEntry(myargc,myargv); |
203 | 417 |
MyInitSem.Post(); |
147
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
418 |
return 0; |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
419 |
} |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
420 |
|
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
421 |
""" |
189
48ba1ae12ffd
Adding support for calculate window size while C generating
lbessard
parents:
186
diff
changeset
|
422 |
|
203 | 423 |
text += """ |
424 |
bool SVGViewApp::OnInit() |
|
147
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
425 |
{ |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
426 |
#ifndef __WXMSW__ |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
427 |
setlocale(LC_NUMERIC, "C"); |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
428 |
#endif |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
429 |
""" |
189
48ba1ae12ffd
Adding support for calculate window size while C generating
lbessard
parents:
186
diff
changeset
|
430 |
|
48ba1ae12ffd
Adding support for calculate window size while C generating
lbessard
parents:
186
diff
changeset
|
431 |
text += """ frame = new MainFrame(NULL, wxT("Program"),wxDefaultPosition, wxSize(%d, %d)); |
147
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
432 |
frame->Show(); |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
433 |
myapp = this; |
189
48ba1ae12ffd
Adding support for calculate window size while C generating
lbessard
parents:
186
diff
changeset
|
434 |
"""%size |
147
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
435 |
text += """ return true; |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
436 |
} |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
437 |
|
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
438 |
extern "C" { |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
439 |
|
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
440 |
int __init_%(location)s(int argc, char** argv) |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
441 |
{ |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
442 |
myargc = argc; |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
443 |
myargv = argv; |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
444 |
#ifdef __WXMSW__ |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
445 |
wxMainLoop = CreateThread(NULL, 0, InitWxEntry, 0, 0, &wxMainLoopId); |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
446 |
#else |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
447 |
pthread_create(&wxMainLoop, NULL, InitWxEntry, NULL); |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
448 |
#endif |
181
f01bcc3c9157
Better SCGUITransform value initialization. Added semaphore as a mainloop init barrier
etisserant
parents:
165
diff
changeset
|
449 |
MyInitSem.Wait(); |
147
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
450 |
return 0; |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
451 |
} |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
452 |
|
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
453 |
void __cleanup_%(location)s() |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
454 |
{ |
203 | 455 |
if(myapp){ |
456 |
wxCloseEvent event(wxEVT_CLOSE_WINDOW); |
|
457 |
myapp->frame->AddPendingEvent(event); |
|
458 |
myapp = NULL; |
|
459 |
} |
|
460 |
MyInitSem.Wait(); |
|
147
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
461 |
} |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
462 |
|
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
463 |
void __retrieve_%(location)s() |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
464 |
{ |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
465 |
if(myapp){ |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
466 |
myapp->frame->m_svgCtrl->Retrieve(); |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
467 |
} |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
468 |
} |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
469 |
|
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
470 |
void __publish_%(location)s() |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
471 |
{ |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
472 |
if(myapp){ |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
473 |
myapp->frame->m_svgCtrl->Publish(); |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
474 |
} |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
475 |
} |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
476 |
|
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
477 |
} |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
478 |
|
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
479 |
IEC_STRING wxStringToIEC_STRING(wxString s) |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
480 |
{ |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
481 |
IEC_STRING res = {0,""}; |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
482 |
int i; |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
483 |
for(i = 0; i<s.Length() && i<STR_MAX_LEN; i++) |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
484 |
res.body[i] = s.GetChar(i); |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
485 |
res.len = i; |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
486 |
return res; |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
487 |
} |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
488 |
|
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
489 |
"""%{"location" : "_".join(map(str, self.CurrentLocation))} |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
490 |
|
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
491 |
return text |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
492 |
|
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
493 |
def GenerateProgramEventTable(self): |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
494 |
text = """BEGIN_DECLARE_EVENT_TYPES() |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
495 |
DECLARE_LOCAL_EVENT_TYPE( EVT_PLC, wxNewEventType() ) |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
496 |
END_DECLARE_EVENT_TYPES() |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
497 |
|
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
498 |
DEFINE_LOCAL_EVENT_TYPE( EVT_PLC ) |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
499 |
|
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
500 |
""" |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
501 |
#Event Table Declaration |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
502 |
text += "BEGIN_EVENT_TABLE(Program, SVGUIWindow)\n" |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
503 |
for element in self.Elements: |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
504 |
element_type = GetElementType(element) |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
505 |
element_name = element.getname() |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
506 |
if element_type == ITEM_BUTTON: |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
507 |
text += " EVT_BUTTON (SVGUIID(\"%s\"), Program::On%sClick)\n"%(element_name, element_name) |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
508 |
elif element_type in [ITEM_SCROLLBAR, ITEM_ROTATING, ITEM_TRANSFORM]: |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
509 |
text += " EVT_COMMAND_SCROLL_THUMBTRACK (SVGUIID(\"%s\"), Program::On%sChanging)\n"%(element_name, element_name) |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
510 |
elif element_type == ITEM_NOTEBOOK: |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
511 |
text += " EVT_NOTEBOOK_PAGE_CHANGED (SVGUIID(\"%s\"), Program::On%sTabChanged)\n"%(element_name, element_name) |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
512 |
text += " EVT_CUSTOM(EVT_PLC, wxID_ANY, Program::OnPlcOutEvent)\n" |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
513 |
text += "END_EVENT_TABLE()\n\n" |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
514 |
return text |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
515 |
|
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
516 |
def GenerateProgramInitFrame(self): |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
517 |
text = """MainFrame::MainFrame(wxWindow *parent, const wxString& title, const wxPoint& pos,const wxSize& size, long style): wxFrame(parent, wxID_ANY, title, pos, size, style) |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
518 |
{ |
203 | 519 |
wxFileName svgfilepath(wxTheApp->argv[1], wxT("%s")); |
520 |
wxFileName xmlfilepath(wxTheApp->argv[1], wxT("%s")); |
|
192
f0482f1ae901
Problem with files when launching created program from another directory fixed
lbessard
parents:
191
diff
changeset
|
521 |
|
147
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
522 |
m_svgCtrl = new Program(this); |
192
f0482f1ae901
Problem with files when launching created program from another directory fixed
lbessard
parents:
191
diff
changeset
|
523 |
if (m_svgCtrl->LoadFiles(svgfilepath.GetFullPath(), xmlfilepath.GetFullPath())) |
147
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
524 |
{ |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
525 |
Show(true); |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
526 |
m_svgCtrl->SetFocus(); |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
527 |
m_svgCtrl->SetFitToFrame(true); |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
528 |
m_svgCtrl->InitScrollBars(); |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
529 |
m_svgCtrl->Initialize(); |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
530 |
m_svgCtrl->Update(); |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
531 |
} |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
532 |
else |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
533 |
{ |
203 | 534 |
printf("Error while opening SVGUI files\\n"); |
147
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
535 |
} |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
536 |
} |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
537 |
|
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
538 |
|
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
539 |
"""%(self.SVGFilePath, self.XMLFilePath) |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
540 |
|
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
541 |
return text |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
542 |
|
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
543 |
def GenerateProgramInitProgram(self): |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
544 |
text = "Program::Program(wxWindow* parent):SVGUIWindow(parent)\n{\n" |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
545 |
for element in self.Elements: |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
546 |
text += " out_state_%d = UNCHANGED;\n"%element.getid() |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
547 |
text += " in_state_%d = UNCHANGED;\n"%element.getid() |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
548 |
text += "}\n\n" |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
549 |
return text |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
550 |
|
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
551 |
def GenerateProgramEventFunctions(self): |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
552 |
text = "" |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
553 |
current_location = "_".join(map(str, self.CurrentLocation)) |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
554 |
for element in self.Elements: |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
555 |
element_type = GetElementType(element) |
203 | 556 |
element_lock = """ |
557 |
if (COMPARE_AND_SWAP_VAL(&in_state_%d, CHANGED, GUI_BUSY) == CHANGED || |
|
147
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
558 |
COMPARE_AND_SWAP_VAL(&in_state_%d, UNCHANGED, GUI_BUSY) == UNCHANGED) { |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
559 |
"""%(element.getid(), element.getid()) |
203 | 560 |
element_unlock = """ |
561 |
COMPARE_AND_SWAP_VAL(&in_state_%d, GUI_BUSY, CHANGED); |
|
562 |
event.Skip(); |
|
563 |
}else{ |
|
564 |
/* re post event for idle */ |
|
565 |
AddPendingEvent(event); |
|
147
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
566 |
} |
203 | 567 |
} |
568 |
||
147
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
569 |
"""%element.getid() |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
570 |
element_name = element.getname() |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
571 |
|
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
572 |
if element_type == ITEM_BUTTON: |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
573 |
text += """void Program::On%sClick(wxCommandEvent& event) |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
574 |
{ |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
575 |
SVGUIButton* button = (SVGUIButton*)GetElementByName(wxT("%s"));\n"""%(element_name, element_name) |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
576 |
text += element_lock |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
577 |
text += " _copy__IX%s_%d_1 = button->GetToggle();\n"%(current_location, element.getid()) |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
578 |
text += element_unlock |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
579 |
elif element_type == ITEM_ROTATING: |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
580 |
text += """void Program::On%sChanging(wxScrollEvent& event) |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
581 |
{ |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
582 |
SVGUIRotatingCtrl* rotating = (SVGUIRotatingCtrl*)GetElementByName(wxT("%s")); |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
583 |
"""%(element_name, element_name) |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
584 |
text += element_lock |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
585 |
text += " _copy__ID%s_%d_1 = rotating->GetAngle();\n"%(current_location, element.getid()) |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
586 |
text += element_unlock |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
587 |
elif element_type == ITEM_NOTEBOOK: |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
588 |
text += """void Program::On%sTabChanged(wxNotebookEvent& event) |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
589 |
{ |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
590 |
SVGUINoteBook* notebook = (SVGUINoteBook*)GetElementByName(wxT("%s")); |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
591 |
"""%(element_name, element_name) |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
592 |
text += element_lock |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
593 |
text += " _copy__IB%s_%d_1 = notebook->GetCurrentPage();\n"%(current_location, element.getid()) |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
594 |
text += element_unlock |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
595 |
elif element_type == ITEM_TRANSFORM: |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
596 |
text += """void Program::On%sChanging(wxScrollEvent& event) |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
597 |
{ |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
598 |
SVGUITransform* transform = (SVGUITransform*)GetElementByName(wxT("%s")); |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
599 |
"""%(element_name, element_name) |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
600 |
text += element_lock |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
601 |
text += " _copy__ID%s_%d_1 = transform->GetX();\n"%(current_location, element.getid()) |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
602 |
text += " _copy__ID%s_%d_2 = transform->GetY();\n"%(current_location, element.getid()) |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
603 |
text += element_unlock |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
604 |
|
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
605 |
text += "/* OnPlcOutEvent update GUI with provided IEC __Q* PLC output variables */\n" |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
606 |
text += """void Program::OnPlcOutEvent(wxEvent& event) |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
607 |
{ |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
608 |
SVGUIElement* element; |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
609 |
|
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
610 |
refreshing = true; |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
611 |
|
203 | 612 |
|
147
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
613 |
""" |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
614 |
for element in self.Elements: |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
615 |
element_type = GetElementType(element) |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
616 |
texts = {"location" : current_location, "id" : element.getid()} |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
617 |
|
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
618 |
text += """ if (COMPARE_AND_SWAP_VAL(&out_state_%(id)d, CHANGED, GUI_BUSY) == CHANGED) |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
619 |
{ |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
620 |
element = (SVGUIElement*)GetElementById(wxT("%(id)d")); |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
621 |
|
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
622 |
if (_copy__QX%(location)s_%(id)d_1 != element->IsVisible()) { |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
623 |
if (_copy__QX%(location)s_%(id)d_1) |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
624 |
element->Show(); |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
625 |
else |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
626 |
element->Hide(); |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
627 |
} |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
628 |
if (_copy__QX%(location)s_%(id)d_2 != element->IsEnabled()) { |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
629 |
if (_copy__QX%(location)s_%(id)d_2) |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
630 |
element->Enable(); |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
631 |
else |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
632 |
element->Disable(); |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
633 |
} |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
634 |
"""%texts |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
635 |
if element_type == ITEM_BUTTON: |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
636 |
text += """ if (_copy__QX%(location)s_%(id)d_3 != ((SVGUIButton*)element)->GetToggle()) |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
637 |
((SVGUIButton*)element)->SetToggle(_copy__QX%(location)s_%(id)d_3); |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
638 |
"""%texts |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
639 |
elif element_type == ITEM_TEXT: |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
640 |
text += """ if (((SVGUITextCtrl*)element)->GetValue().compare(_copy__QX%(location)s_%(id)d_3)) |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
641 |
{ |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
642 |
wxString str = wxString::FromAscii(_copy__QB%(location)s_%(id)d_3); |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
643 |
((SVGUITextCtrl*)element)->SetText(str); |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
644 |
} |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
645 |
"""%texts |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
646 |
elif element_type == ITEM_SCROLLBAR: |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
647 |
text += """ if (_copy__QW%(location)s_%(id)d_3 != ((SVGUIScrollBar*)element)->GetThumbPosition() || |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
648 |
_copy__QW%(location)s_%(id)d_4 != ((SVGUIScrollBar*)element)->GetThumbSize() || |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
649 |
_copy__QW%(location)s_%(id)d_5 != ((SVGUIScrollBar*)element)->GetRange()) |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
650 |
((SVGUIScrollBar*)element)->Init_ScrollBar(_copy__QW%(location)s_%(id)d_3, _copy__QW%(location)s_%(id)d_4, _copy__QW%(location)s_%(id)d_5); |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
651 |
"""%texts |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
652 |
elif element_type == ITEM_ROTATING: |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
653 |
text += """ if (_copy__QD%(location)s_%(id)d_3 != ((SVGUIRotatingCtrl*)element)->GetAngle()) |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
654 |
((SVGUIRotatingCtrl*)element)->SetAngle(_copy__QD%(location)s_%(id)d_3); |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
655 |
"""%texts |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
656 |
elif element_type == ITEM_NOTEBOOK: |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
657 |
text += """ if (_copy__QB%(location)s_%(id)d_3 != ((SVGUINoteBook*)element)->GetCurrentPage()) |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
658 |
((SVGUINoteBook*)element)->SetCurrentPage(_copy__QB%(location)s_%(id)d_3); |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
659 |
"""%texts |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
660 |
elif element_type == ITEM_TRANSFORM: |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
661 |
text += """ if (_copy__QD%(location)s_%(id)d_3 != ((SVGUITransform*)element)->GetX() || |
181
f01bcc3c9157
Better SCGUITransform value initialization. Added semaphore as a mainloop init barrier
etisserant
parents:
165
diff
changeset
|
662 |
_copy__QD%(location)s_%(id)d_4 != ((SVGUITransform*)element)->GetY()) |
f01bcc3c9157
Better SCGUITransform value initialization. Added semaphore as a mainloop init barrier
etisserant
parents:
165
diff
changeset
|
663 |
((SVGUITransform*)element)->Move(_copy__QD%(location)s_%(id)d_3, _copy__QD%(location)s_%(id)d_4); |
147
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
664 |
if (_copy__QD%(location)s_%(id)d_5 != ((SVGUITransform*)element)->GetXScale() || |
181
f01bcc3c9157
Better SCGUITransform value initialization. Added semaphore as a mainloop init barrier
etisserant
parents:
165
diff
changeset
|
665 |
_copy__QD%(location)s_%(id)d_6 != ((SVGUITransform*)element)->GetYScale()) |
f01bcc3c9157
Better SCGUITransform value initialization. Added semaphore as a mainloop init barrier
etisserant
parents:
165
diff
changeset
|
666 |
((SVGUITransform*)element)->Scale(_copy__QD%(location)s_%(id)d_5, _copy__QD%(location)s_%(id)d_6); |
147
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
667 |
if (_copy__QD%(location)s_%(id)d_7 != ((SVGUITransform*)element)->GetAngle()) |
181
f01bcc3c9157
Better SCGUITransform value initialization. Added semaphore as a mainloop init barrier
etisserant
parents:
165
diff
changeset
|
668 |
((SVGUITransform*)element)->Rotate(_copy__QD%(location)s_%(id)d_7); |
147
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
669 |
"""%texts |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
670 |
text += " COMPARE_AND_SWAP_VAL(&out_state_%(id)d, GUI_BUSY, UNCHANGED);\n }\n"%texts |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
671 |
|
203 | 672 |
text += """ |
147
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
673 |
|
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
674 |
refreshing = false; |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
675 |
|
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
676 |
event.Skip(); |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
677 |
} |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
678 |
|
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
679 |
""" |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
680 |
return text |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
681 |
|
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
682 |
def GenerateProgramPrivateFunctions(self): |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
683 |
current_location = "_".join(map(str, self.CurrentLocation)) |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
684 |
|
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
685 |
text = "void Program::Retrieve()\n{\n" |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
686 |
for element in self.Elements: |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
687 |
element_type = GetElementType(element) |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
688 |
texts = {"location" : current_location, "id" : element.getid()} |
201
520d2416ff4d
Adding support for highlighing compiling errors into PLCOpenEditor
lbessard
parents:
198
diff
changeset
|
689 |
block_infos = self.Controler.GetSVGUIBlockType(SVGUIFB_Types[GetElementType(element)]) |
147
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
690 |
if len(block_infos["outputs"]) > 0: |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
691 |
text += """ if (COMPARE_AND_SWAP_VAL(&in_state_%(id)d, CHANGED, PLC_BUSY) == CHANGED) { |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
692 |
"""%texts |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
693 |
for i, output in enumerate(block_infos["outputs"]): |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
694 |
texts["type"] = TYPECONVERSION[output[1]] |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
695 |
texts["pin"] = i + 1 |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
696 |
|
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
697 |
variable = "__I%(type)s%(location)s_%(id)d_%(pin)d"%texts |
165 | 698 |
text +=" beremiz%s = _copy%s;\n"%(variable, variable) |
147
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
699 |
|
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
700 |
text += """ COMPARE_AND_SWAP_VAL(&in_state_%(id)d, PLC_BUSY, UNCHANGED); |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
701 |
} |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
702 |
"""%texts |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
703 |
text += "}\n\n" |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
704 |
|
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
705 |
text += "void Program::Publish()\n{\n STATE_TYPE new_state;\n\n" |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
706 |
for element in self.Elements: |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
707 |
element_type = GetElementType(element) |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
708 |
texts = {"location" : current_location, "id" : element.getid()} |
201
520d2416ff4d
Adding support for highlighing compiling errors into PLCOpenEditor
lbessard
parents:
198
diff
changeset
|
709 |
block_infos = self.Controler.GetSVGUIBlockType(SVGUIFB_Types[GetElementType(element)]) |
147
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
710 |
|
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
711 |
text += """ if ((new_state = COMPARE_AND_SWAP_VAL(&out_state_%(id)d, UNCHANGED, PLC_BUSY)) == UNCHANGED || |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
712 |
(new_state = COMPARE_AND_SWAP_VAL(&out_state_%(id)d, CHANGED, PLC_BUSY)) == CHANGED) { |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
713 |
"""%texts |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
714 |
for i, input in enumerate(block_infos["inputs"]): |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
715 |
texts["type"] = TYPECONVERSION[input[1]] |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
716 |
texts["pin"] = i + 1 |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
717 |
variable = "__Q%(type)s%(location)s_%(id)d_%(pin)d"%texts |
165 | 718 |
text += " if (_copy%s != beremiz%s) {\n"%(variable, variable) |
719 |
text += " _copy%s = beremiz%s;\n"%(variable, variable) |
|
147
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
720 |
text += " new_state = CHANGED;\n }\n"%texts |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
721 |
text += """ COMPARE_AND_SWAP_VAL(&out_state_%(id)d, PLC_BUSY, new_state); |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
722 |
refresh |= new_state == CHANGED; |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
723 |
} |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
724 |
"""%texts |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
725 |
|
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
726 |
text += """ /* Replace this with determinist signal if called from RT */ |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
727 |
if (refresh && !refreshing) { |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
728 |
wxCommandEvent event( EVT_PLC ); |
203 | 729 |
AddPendingEvent(event); |
147
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
730 |
refresh = false; |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
731 |
} |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
732 |
}; |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
733 |
|
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
734 |
""" |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
735 |
|
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
736 |
text += """void Program::Initialize() |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
737 |
{ |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
738 |
SVGUIElement* element; |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
739 |
""" |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
740 |
for element in self.Elements: |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
741 |
element_type = GetElementType(element) |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
742 |
texts = {"location" : current_location, "id" : element.getid()} |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
743 |
|
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
744 |
text += """ |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
745 |
element = (SVGUIElement*)GetElementById(wxT("%(id)d")); |
192
f0482f1ae901
Problem with files when launching created program from another directory fixed
lbessard
parents:
191
diff
changeset
|
746 |
beremiz__QX%(location)s_%(id)d_1 = _copy__QX%(location)s_%(id)d_1 = element->IsVisible(); |
f0482f1ae901
Problem with files when launching created program from another directory fixed
lbessard
parents:
191
diff
changeset
|
747 |
beremiz__QX%(location)s_%(id)d_2 = _copy__QX%(location)s_%(id)d_2 = element->IsEnabled(); |
147
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
748 |
"""%texts |
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
749 |
if element_type == ITEM_BUTTON: |
192
f0482f1ae901
Problem with files when launching created program from another directory fixed
lbessard
parents:
191
diff
changeset
|
750 |
text += " beremiz__QX%(location)s_%(id)d_3 = _copy__QX%(location)s_%(id)d_3 = ((SVGUIButton*)element)->GetToggle();\n"%texts |
181
f01bcc3c9157
Better SCGUITransform value initialization. Added semaphore as a mainloop init barrier
etisserant
parents:
165
diff
changeset
|
751 |
text += " beremiz__IX%(location)s_%(id)d_1 = _copy__IX%(location)s_%(id)d_1 = ((SVGUIButton*)element)->GetToggle();\n"%texts |
147
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
752 |
elif element_type == ITEM_TEXT: |
192
f0482f1ae901
Problem with files when launching created program from another directory fixed
lbessard
parents:
191
diff
changeset
|
753 |
text += " beremiz__QB%(location)s_%(id)d_3 = _copy__QB%(location)s_%(id)d_3 = ((SVGUITextCtrl*)element)->GetValue();\n"%texts |
181
f01bcc3c9157
Better SCGUITransform value initialization. Added semaphore as a mainloop init barrier
etisserant
parents:
165
diff
changeset
|
754 |
text += " beremiz__IB%(location)s_%(id)d_1 = _copy__IB%(location)s_%(id)d_1 = ((SVGUITextCtrl*)element)->GetValue();\n"%texts |
147
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
755 |
elif element_type == ITEM_SCROLLBAR: |
192
f0482f1ae901
Problem with files when launching created program from another directory fixed
lbessard
parents:
191
diff
changeset
|
756 |
text += " beremiz__QW%(location)s_%(id)d_3 = _copy__QW%(location)s_%(id)d_3 = ((SVGUIScrollBar*)element)->GetThumbSize();\n"%texts |
f0482f1ae901
Problem with files when launching created program from another directory fixed
lbessard
parents:
191
diff
changeset
|
757 |
text += " beremiz__QW%(location)s_%(id)d_4 = _copy__QW%(location)s_%(id)d_4 = ((SVGUIScrollBar*)element)->GetRange();\n"%texts |
f0482f1ae901
Problem with files when launching created program from another directory fixed
lbessard
parents:
191
diff
changeset
|
758 |
text += " beremiz__QW%(location)s_%(id)d_5 = _copy__QW%(location)s_%(id)d_5 = ((SVGUIScrollBar*)element)->GetThumbPosition();\n"%texts |
181
f01bcc3c9157
Better SCGUITransform value initialization. Added semaphore as a mainloop init barrier
etisserant
parents:
165
diff
changeset
|
759 |
text += " beremiz__IW%(location)s_%(id)d_1 = _copy__IW%(location)s_%(id)d_1 = ((SVGUIScrollBar*)element)->GetThumbPosition();\n"%texts |
147
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
760 |
elif element_type == ITEM_ROTATING: |
192
f0482f1ae901
Problem with files when launching created program from another directory fixed
lbessard
parents:
191
diff
changeset
|
761 |
text += " beremiz__QD%(location)s_%(id)d_3 = _copy__QD%(location)s_%(id)d_3 = ((SVGUIRotatingCtrl*)element)->GetAngle();\n"%texts |
186 | 762 |
text += " beremiz__ID%(location)s_%(id)d_1 = _copy__ID%(location)s_%(id)d_1 = ((SVGUIRotatingCtrl*)element)->GetAngle();\n"%texts |
147
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
763 |
elif element_type == ITEM_NOTEBOOK: |
192
f0482f1ae901
Problem with files when launching created program from another directory fixed
lbessard
parents:
191
diff
changeset
|
764 |
text += " beremiz__QB%(location)s_%(id)d_3 = _copy__QB%(location)s_%(id)d_3 = ((SVGUINoteBook*)element)->GetCurrentPage();\n"%texts |
181
f01bcc3c9157
Better SCGUITransform value initialization. Added semaphore as a mainloop init barrier
etisserant
parents:
165
diff
changeset
|
765 |
text += " beremiz__IB%(location)s_%(id)d_1 = _copy__IB%(location)s_%(id)d_1 = ((SVGUINoteBook*)element)->GetCurrentPage();\n"%texts |
147
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
766 |
elif element_type == ITEM_TRANSFORM: |
181
f01bcc3c9157
Better SCGUITransform value initialization. Added semaphore as a mainloop init barrier
etisserant
parents:
165
diff
changeset
|
767 |
text += " beremiz__QD%(location)s_%(id)d_3 = _copy__QD%(location)s_%(id)d_3 = ((SVGUITransform*)element)->GetX();\n"%texts |
f01bcc3c9157
Better SCGUITransform value initialization. Added semaphore as a mainloop init barrier
etisserant
parents:
165
diff
changeset
|
768 |
text += " beremiz__QD%(location)s_%(id)d_4 = _copy__QD%(location)s_%(id)d_4 = ((SVGUITransform*)element)->GetY();\n"%texts |
f01bcc3c9157
Better SCGUITransform value initialization. Added semaphore as a mainloop init barrier
etisserant
parents:
165
diff
changeset
|
769 |
text += " beremiz__QD%(location)s_%(id)d_5 = _copy__QD%(location)s_%(id)d_5 = ((SVGUITransform*)element)->GetXScale();\n"%texts |
f01bcc3c9157
Better SCGUITransform value initialization. Added semaphore as a mainloop init barrier
etisserant
parents:
165
diff
changeset
|
770 |
text += " beremiz__QD%(location)s_%(id)d_6 = _copy__QD%(location)s_%(id)d_6 = ((SVGUITransform*)element)->GetYScale();\n"%texts |
f01bcc3c9157
Better SCGUITransform value initialization. Added semaphore as a mainloop init barrier
etisserant
parents:
165
diff
changeset
|
771 |
text += " beremiz__QD%(location)s_%(id)d_7 = _copy__QD%(location)s_%(id)d_7 = ((SVGUITransform*)element)->GetAngle();\n"%texts |
f01bcc3c9157
Better SCGUITransform value initialization. Added semaphore as a mainloop init barrier
etisserant
parents:
165
diff
changeset
|
772 |
text += " beremiz__ID%(location)s_%(id)d_1 = _copy__ID%(location)s_%(id)d_1 = ((SVGUITransform*)element)->GetX();\n"%texts |
f01bcc3c9157
Better SCGUITransform value initialization. Added semaphore as a mainloop init barrier
etisserant
parents:
165
diff
changeset
|
773 |
text += " beremiz__ID%(location)s_%(id)d_2 = _copy__ID%(location)s_%(id)d_2 = ((SVGUITransform*)element)->GetY();\n"%texts |
186 | 774 |
|
775 |
text += "\n MyInitSem.Post();\n}\n\n" |
|
147
ccc5e683583d
Improve svgui plugin for following SVGUIEditor modifications
lbessard
parents:
142
diff
changeset
|
776 |
return text |