145 SHOW_PARAMS = True |
145 SHOW_PARAMS = True |
146 CONFNODEEDITOR_TABS = [] |
146 CONFNODEEDITOR_TABS = [] |
147 |
147 |
148 def _init_Editor(self, parent): |
148 def _init_Editor(self, parent): |
149 tabs_num = len(self.CONFNODEEDITOR_TABS) |
149 tabs_num = len(self.CONFNODEEDITOR_TABS) |
150 if self.SHOW_PARAMS: |
150 if self.SHOW_PARAMS and len(self.Controler.GetParamsAttributes()) > 0: |
151 tabs_num += 1 |
151 tabs_num += 1 |
152 |
152 |
153 if tabs_num > 1: |
153 if tabs_num > 1 or self.SHOW_BASE_PARAMS: |
154 self.Editor = wx.Panel(parent, |
154 self.Editor = wx.Panel(parent, |
155 style=wx.SUNKEN_BORDER|wx.SP_3D) |
155 style=wx.SUNKEN_BORDER|wx.SP_3D) |
156 |
156 self.Editor.SetBackgroundColour(WINDOW_COLOUR) |
157 main_sizer = wx.BoxSizer(wx.VERTICAL) |
157 |
158 |
158 self.MainSizer = wx.BoxSizer(wx.VERTICAL) |
159 self.ConfNodeNoteBook = wx.Notebook(self.Editor) |
|
160 parent = self.ConfNodeNoteBook |
|
161 main_sizer.AddWindow(self.ConfNodeNoteBook, 1, flag=wx.GROW) |
|
162 |
|
163 self.Editor.SetSizer(main_sizer) |
|
164 else: |
|
165 self.ConfNodeNoteBook = None |
|
166 self.Editor = None |
|
167 |
|
168 for title, create_func_name in self.CONFNODEEDITOR_TABS: |
|
169 editor = getattr(self, create_func_name)(parent) |
|
170 if self.ConfNodeNoteBook is not None: |
|
171 self.ConfNodeNoteBook.AddPage(editor, title) |
|
172 else: |
|
173 self.Editor = editor |
|
174 |
|
175 if self.SHOW_PARAMS: |
|
176 |
|
177 panel_style = wx.TAB_TRAVERSAL|wx.HSCROLL|wx.VSCROLL |
|
178 if self.ConfNodeNoteBook is None: |
|
179 panel_style |= wx.SUNKEN_BORDER |
|
180 self.ParamsEditor = wx.ScrolledWindow(parent, |
|
181 style=panel_style) |
|
182 self.ParamsEditor.SetBackgroundColour(WINDOW_COLOUR) |
|
183 self.ParamsEditor.Bind(wx.EVT_SIZE, self.OnWindowResize) |
|
184 self.ParamsEditor.Bind(wx.EVT_MOUSEWHEEL, self.OnMouseWheel) |
|
185 |
|
186 # Variable allowing disabling of ParamsEditor scroll when Popup shown |
|
187 self.ScrollingEnabled = True |
|
188 |
159 |
189 if self.SHOW_BASE_PARAMS: |
160 if self.SHOW_BASE_PARAMS: |
190 self.ParamsEditorSizer = wx.FlexGridSizer(cols=1, hgap=0, rows=2, vgap=5) |
|
191 self.ParamsEditorSizer.AddGrowableCol(0) |
|
192 self.ParamsEditorSizer.AddGrowableRow(1) |
|
193 |
|
194 self.ParamsEditor.SetSizer(self.ParamsEditorSizer) |
|
195 |
|
196 baseparamseditor_sizer = wx.BoxSizer(wx.HORIZONTAL) |
161 baseparamseditor_sizer = wx.BoxSizer(wx.HORIZONTAL) |
197 self.ParamsEditorSizer.AddSizer(baseparamseditor_sizer, border=5, |
162 self.MainSizer.AddSizer(baseparamseditor_sizer, border=5, |
198 flag=wx.GROW|wx.LEFT|wx.RIGHT|wx.TOP) |
163 flag=wx.GROW|wx.ALL) |
199 |
164 |
200 self.FullIECChannel = wx.StaticText(self.ParamsEditor, -1) |
165 self.FullIECChannel = wx.StaticText(self.Editor, -1) |
201 self.FullIECChannel.SetFont( |
166 self.FullIECChannel.SetFont( |
202 wx.Font(faces["size"], wx.DEFAULT, wx.NORMAL, |
167 wx.Font(faces["size"], wx.DEFAULT, wx.NORMAL, |
203 wx.BOLD, faceName = faces["helv"])) |
168 wx.BOLD, faceName = faces["helv"])) |
204 baseparamseditor_sizer.AddWindow(self.FullIECChannel, |
169 baseparamseditor_sizer.AddWindow(self.FullIECChannel, |
205 flag=wx.ALIGN_CENTER_VERTICAL) |
170 flag=wx.ALIGN_CENTER_VERTICAL) |
206 |
171 |
207 updownsizer = wx.BoxSizer(wx.VERTICAL) |
172 updownsizer = wx.BoxSizer(wx.VERTICAL) |
208 baseparamseditor_sizer.AddSizer(updownsizer, border=5, |
173 baseparamseditor_sizer.AddSizer(updownsizer, border=5, |
209 flag=wx.LEFT|wx.ALIGN_CENTER_VERTICAL) |
174 flag=wx.LEFT|wx.ALIGN_CENTER_VERTICAL) |
210 |
175 |
211 self.IECCUpButton = wx.lib.buttons.GenBitmapTextButton(self.ParamsEditor, |
176 self.IECCUpButton = wx.lib.buttons.GenBitmapTextButton(self.Editor, |
212 bitmap=GetBitmap('IECCDown'), size=wx.Size(16, 16), style=wx.NO_BORDER) |
177 bitmap=GetBitmap('IECCDown'), size=wx.Size(16, 16), style=wx.NO_BORDER) |
213 self.IECCUpButton.Bind(wx.EVT_BUTTON, self.GetItemChannelChangedFunction(1), |
178 self.IECCUpButton.Bind(wx.EVT_BUTTON, self.GetItemChannelChangedFunction(1), |
214 self.IECCUpButton) |
179 self.IECCUpButton) |
215 updownsizer.AddWindow(self.IECCUpButton, flag=wx.ALIGN_LEFT) |
180 updownsizer.AddWindow(self.IECCUpButton, flag=wx.ALIGN_LEFT) |
216 |
181 |
217 self.IECCDownButton = wx.lib.buttons.GenBitmapButton(self.ParamsEditor, |
182 self.IECCDownButton = wx.lib.buttons.GenBitmapButton(self.Editor, |
218 bitmap=GetBitmap('IECCUp'), size=wx.Size(16, 16), style=wx.NO_BORDER) |
183 bitmap=GetBitmap('IECCUp'), size=wx.Size(16, 16), style=wx.NO_BORDER) |
219 self.IECCDownButton.Bind(wx.EVT_BUTTON, self.GetItemChannelChangedFunction(-1), |
184 self.IECCDownButton.Bind(wx.EVT_BUTTON, self.GetItemChannelChangedFunction(-1), |
220 self.IECCDownButton) |
185 self.IECCDownButton) |
221 updownsizer.AddWindow(self.IECCDownButton, flag=wx.ALIGN_LEFT) |
186 updownsizer.AddWindow(self.IECCDownButton, flag=wx.ALIGN_LEFT) |
222 |
187 |
223 self.ConfNodeName = wx.TextCtrl(self.ParamsEditor, |
188 self.ConfNodeName = wx.TextCtrl(self.Editor, |
224 size=wx.Size(150, 25), style=wx.NO_BORDER) |
189 size=wx.Size(150, 25), style=wx.NO_BORDER) |
225 self.ConfNodeName.SetFont( |
190 self.ConfNodeName.SetFont( |
226 wx.Font(faces["size"] * 0.75, wx.DEFAULT, wx.NORMAL, |
191 wx.Font(faces["size"] * 0.75, wx.DEFAULT, wx.NORMAL, |
227 wx.BOLD, faceName = faces["helv"])) |
192 wx.BOLD, faceName = faces["helv"])) |
228 self.ConfNodeName.Bind(wx.EVT_TEXT, |
193 self.ConfNodeName.Bind(wx.EVT_TEXT, |
232 flag=wx.LEFT|wx.RIGHT|wx.ALIGN_CENTER_VERTICAL) |
197 flag=wx.LEFT|wx.RIGHT|wx.ALIGN_CENTER_VERTICAL) |
233 |
198 |
234 buttons_sizer = self.GenerateMethodButtonSizer() |
199 buttons_sizer = self.GenerateMethodButtonSizer() |
235 baseparamseditor_sizer.AddSizer(buttons_sizer, flag=wx.ALIGN_CENTER) |
200 baseparamseditor_sizer.AddSizer(buttons_sizer, flag=wx.ALIGN_CENTER) |
236 |
201 |
|
202 if tabs_num > 1: |
|
203 self.ConfNodeNoteBook = wx.Notebook(self.Editor) |
|
204 parent = self.ConfNodeNoteBook |
|
205 self.MainSizer.AddWindow(self.ConfNodeNoteBook, 1, flag=wx.GROW) |
237 else: |
206 else: |
238 self.ParamsEditorSizer = wx.FlexGridSizer(cols=1, hgap=0, rows=1, vgap=5) |
207 parent = self.Editor |
239 self.ParamsEditorSizer.AddGrowableCol(0) |
208 self.ConfNodeNoteBook = None |
240 self.ParamsEditorSizer.AddGrowableRow(0) |
209 |
|
210 self.Editor.SetSizer(self.MainSizer) |
|
211 else: |
|
212 self.ConfNodeNoteBook = None |
|
213 self.Editor = None |
|
214 |
|
215 for title, create_func_name in self.CONFNODEEDITOR_TABS: |
|
216 editor = getattr(self, create_func_name)(parent) |
|
217 if self.ConfNodeNoteBook is not None: |
|
218 self.ConfNodeNoteBook.AddPage(editor, title) |
|
219 elif self.SHOW_BASE_PARAMS: |
|
220 self.MainSizer.AddWindow(editor, 1, flag=wx.GROW) |
|
221 else: |
|
222 self.Editor = editor |
|
223 |
|
224 if self.SHOW_PARAMS and len(self.Controler.GetParamsAttributes()) > 0: |
|
225 |
|
226 panel_style = wx.TAB_TRAVERSAL|wx.HSCROLL|wx.VSCROLL |
|
227 if self.ConfNodeNoteBook is None and parent != self.Editor: |
|
228 panel_style |= wx.SUNKEN_BORDER |
|
229 self.ParamsEditor = wx.ScrolledWindow(parent, |
|
230 style=panel_style) |
|
231 self.ParamsEditor.SetBackgroundColour(WINDOW_COLOUR) |
|
232 self.ParamsEditor.Bind(wx.EVT_SIZE, self.OnWindowResize) |
|
233 self.ParamsEditor.Bind(wx.EVT_MOUSEWHEEL, self.OnMouseWheel) |
|
234 |
|
235 # Variable allowing disabling of ParamsEditor scroll when Popup shown |
|
236 self.ScrollingEnabled = True |
|
237 |
|
238 self.ParamsEditorSizer = wx.FlexGridSizer(cols=1, hgap=0, rows=1, vgap=5) |
|
239 self.ParamsEditorSizer.AddGrowableCol(0) |
|
240 self.ParamsEditorSizer.AddGrowableRow(0) |
|
241 self.ParamsEditor.SetSizer(self.ParamsEditorSizer) |
241 |
242 |
242 self.ConfNodeParamsSizer = wx.BoxSizer(wx.VERTICAL) |
243 self.ConfNodeParamsSizer = wx.BoxSizer(wx.VERTICAL) |
243 self.ParamsEditorSizer.AddSizer(self.ConfNodeParamsSizer, border=5, |
244 self.ParamsEditorSizer.AddSizer(self.ConfNodeParamsSizer, border=5, |
244 flag=wx.LEFT|wx.RIGHT|wx.BOTTOM) |
245 flag=wx.LEFT|wx.RIGHT|wx.BOTTOM) |
245 |
246 |
246 self.RefreshConfNodeParamsSizer() |
247 self.RefreshConfNodeParamsSizer() |
247 |
248 |
248 if self.ConfNodeNoteBook is not None: |
249 if self.ConfNodeNoteBook is not None: |
249 self.ConfNodeNoteBook.AddPage(self.ParamsEditor, _("Config")) |
250 self.ConfNodeNoteBook.AddPage(self.ParamsEditor, _("Config")) |
|
251 elif self.SHOW_BASE_PARAMS: |
|
252 self.MainSizer.AddWindow(self.ParamsEditor, 1, flag=wx.GROW) |
250 else: |
253 else: |
251 self.Editor = self.ParamsEditor |
254 self.Editor = self.ParamsEditor |
252 else: |
255 else: |
253 self.ParamsEditor = None |
256 self.ParamsEditor = None |
254 |
257 |
285 def Redo(self): |
288 def Redo(self): |
286 pass |
289 pass |
287 |
290 |
288 def RefreshView(self): |
291 def RefreshView(self): |
289 EditorPanel.RefreshView(self) |
292 EditorPanel.RefreshView(self) |
|
293 if self.SHOW_BASE_PARAMS: |
|
294 self.ConfNodeName.ChangeValue(self.Controler.MandatoryParams[1].getName()) |
|
295 self.RefreshIECChannelControlsState() |
290 if self.ParamsEditor is not None: |
296 if self.ParamsEditor is not None: |
291 if self.SHOW_BASE_PARAMS: |
|
292 self.ConfNodeName.ChangeValue(self.Controler.MandatoryParams[1].getName()) |
|
293 self.RefreshIECChannelControlsState() |
|
294 self.RefreshConfNodeParamsSizer() |
297 self.RefreshConfNodeParamsSizer() |
295 self.RefreshScrollbars() |
298 self.RefreshScrollbars() |
296 |
299 |
297 def EnableScrolling(self, enable): |
300 def EnableScrolling(self, enable): |
298 self.ScrollingEnabled = enable |
301 self.ScrollingEnabled = enable |
299 |
302 |
300 def RefreshIECChannelControlsState(self): |
303 def RefreshIECChannelControlsState(self): |
301 self.FullIECChannel.SetLabel(self.Controler.GetFullIEC_Channel()) |
304 self.FullIECChannel.SetLabel(self.Controler.GetFullIEC_Channel()) |
302 self.IECCDownButton.Enable(self.Controler.BaseParams.getIEC_Channel() > 0) |
305 self.IECCDownButton.Enable(self.Controler.BaseParams.getIEC_Channel() > 0) |
|
306 self.MainSizer.Layout() |
303 |
307 |
304 def RefreshConfNodeParamsSizer(self): |
308 def RefreshConfNodeParamsSizer(self): |
305 self.Freeze() |
309 self.Freeze() |
306 self.ConfNodeParamsSizer.Clear(True) |
310 self.ConfNodeParamsSizer.Clear(True) |
307 |
311 |