208 panel_style = wx.TAB_TRAVERSAL|wx.HSCROLL|wx.VSCROLL |
208 panel_style = wx.TAB_TRAVERSAL|wx.HSCROLL|wx.VSCROLL |
209 if self.ConfNodeNoteBook is None and parent != self.Editor: |
209 if self.ConfNodeNoteBook is None and parent != self.Editor: |
210 panel_style |= wx.SUNKEN_BORDER |
210 panel_style |= wx.SUNKEN_BORDER |
211 self.ParamsEditor = wx.ScrolledWindow(parent, |
211 self.ParamsEditor = wx.ScrolledWindow(parent, |
212 style=panel_style) |
212 style=panel_style) |
213 self.ParamsEditor.Bind(wx.EVT_SIZE, self.OnWindowResize) |
213 self.ParamsEditor.Bind(wx.EVT_SIZE, self.OnParamsEditorResize) |
214 self.ParamsEditor.Bind(wx.EVT_MOUSEWHEEL, self.OnMouseWheel) |
214 self.ParamsEditor.Bind(wx.EVT_SCROLLWIN, self.OnParamsEditorScroll) |
215 |
|
216 # Variable allowing disabling of ParamsEditor scroll when Popup shown |
|
217 self.ScrollingEnabled = True |
|
218 |
215 |
219 self.ParamsEditorSizer = wx.FlexGridSizer(cols=1, hgap=0, rows=1, vgap=5) |
216 self.ParamsEditorSizer = wx.FlexGridSizer(cols=1, hgap=0, rows=1, vgap=5) |
220 self.ParamsEditorSizer.AddGrowableCol(0) |
217 self.ParamsEditorSizer.AddGrowableCol(0) |
221 self.ParamsEditorSizer.AddGrowableRow(0) |
218 self.ParamsEditorSizer.AddGrowableRow(0) |
222 self.ParamsEditor.SetSizer(self.ParamsEditorSizer) |
219 self.ParamsEditor.SetSizer(self.ParamsEditorSizer) |
275 self.ConfNodeName.ChangeValue(self.Controler.MandatoryParams[1].getName()) |
272 self.ConfNodeName.ChangeValue(self.Controler.MandatoryParams[1].getName()) |
276 self.RefreshIECChannelControlsState() |
273 self.RefreshIECChannelControlsState() |
277 if self.ParamsEditor is not None: |
274 if self.ParamsEditor is not None: |
278 self.RefreshConfNodeParamsSizer() |
275 self.RefreshConfNodeParamsSizer() |
279 self.RefreshScrollbars() |
276 self.RefreshScrollbars() |
280 |
|
281 def EnableScrolling(self, enable): |
|
282 self.ScrollingEnabled = enable |
|
283 |
277 |
284 def RefreshIECChannelControlsState(self): |
278 def RefreshIECChannelControlsState(self): |
285 self.FullIECChannel.SetLabel(self.Controler.GetFullIEC_Channel()) |
279 self.FullIECChannel.SetLabel(self.Controler.GetFullIEC_Channel()) |
286 self.IECCDownButton.Enable(self.Controler.BaseParams.getIEC_Channel() > 0) |
280 self.IECCDownButton.Enable(self.Controler.BaseParams.getIEC_Channel() > 0) |
287 self.MainSizer.Layout() |
281 self.MainSizer.Layout() |
467 |
461 |
468 else: |
462 else: |
469 choices = self.ParentWindow.GetConfigEntry(element_path, [""]) |
463 choices = self.ParentWindow.GetConfigEntry(element_path, [""]) |
470 textctrl = TextCtrlAutoComplete(name=element_infos["name"], |
464 textctrl = TextCtrlAutoComplete(name=element_infos["name"], |
471 parent=self.ParamsEditor, |
465 parent=self.ParamsEditor, |
472 appframe=self, |
|
473 choices=choices, |
466 choices=choices, |
474 element_path=element_path, |
467 element_path=element_path, |
475 size=wx.Size(300, -1)) |
468 size=wx.Size(300, -1)) |
476 |
469 |
477 boxsizer.AddWindow(textctrl) |
470 boxsizer.AddWindow(textctrl) |
478 if element_infos["value"] is not None: |
471 if element_infos["value"] is not None: |
479 textctrl.ChangeValue(str(element_infos["value"])) |
472 textctrl.ChangeValue(str(element_infos["value"])) |
480 textctrl.Bind(wx.EVT_TEXT, self.GetTextCtrlCallBackFunction(textctrl, element_path)) |
473 callback = self.GetTextCtrlCallBackFunction(textctrl, element_path) |
|
474 textctrl.Bind(wx.EVT_TEXT_ENTER, callback) |
|
475 textctrl.Bind(wx.EVT_KILL_FOCUS, callback) |
481 first = False |
476 first = False |
482 |
477 |
483 |
478 |
484 def GetItemChannelChangedFunction(self, dir): |
479 def GetItemChannelChangedFunction(self, dir): |
485 def OnConfNodeTreeItemChannelChanged(event): |
480 def OnConfNodeTreeItemChannelChanged(event): |
567 posy = max(0, min(ystart, (maxy - window_size[1]) / SCROLLBAR_UNIT)) |
562 posy = max(0, min(ystart, (maxy - window_size[1]) / SCROLLBAR_UNIT)) |
568 self.ParamsEditor.Scroll(posx, posy) |
563 self.ParamsEditor.Scroll(posx, posy) |
569 self.ParamsEditor.SetScrollbars(SCROLLBAR_UNIT, SCROLLBAR_UNIT, |
564 self.ParamsEditor.SetScrollbars(SCROLLBAR_UNIT, SCROLLBAR_UNIT, |
570 maxx / SCROLLBAR_UNIT, maxy / SCROLLBAR_UNIT, posx, posy) |
565 maxx / SCROLLBAR_UNIT, maxy / SCROLLBAR_UNIT, posx, posy) |
571 |
566 |
572 def OnWindowResize(self, event): |
567 def OnParamsEditorResize(self, event): |
573 self.RefreshScrollbars() |
568 self.RefreshScrollbars() |
574 event.Skip() |
569 event.Skip() |
575 |
570 |
576 def OnMouseWheel(self, event): |
571 def OnParamsEditorScroll(self, event): |
577 if self.ScrollingEnabled: |
572 control = self.ParamsEditor.FindFocus() |
578 event.Skip() |
573 if isinstance(control, TextCtrlAutoComplete): |
579 |
574 control.DismissListBox() |
|
575 self.Refresh() |
|
576 event.Skip() |
|
577 |