editors/ConfTreeNodeEditor.py
changeset 1180 276a30c68eaa
parent 1179 3e7bd88fcff7
child 1281 47131e3388f4
equal deleted inserted replaced
1179:3e7bd88fcff7 1180:276a30c68eaa
   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