def __init__(self, attribute, window, aguidata, **kwargs): # control control = wx.Panel(parent=window) height = aguidata.get('height', WX_STANDARD_HEIGHT * 3) control.MinSize = (-1, height + 2) sizer = wx.GridBagSizer() control.SetSizer(sizer) self.list = [] listbox = wx.ListBox(control, -1) listbox.MaxSize = (-1, height) listbox.MinSize = (-1, height) self.listbox = listbox #add button add = wx.BitmapButton(control, -1, None, size=(WX_STANDARD_HEIGHT, WX_STANDARD_HEIGHT)) bmp = wx.ArtProvider.GetBitmap(wx.ART_ADD_BOOKMARK, wx.ART_TOOLBAR, WX_BUTTON_BMP_SIZE) add.SetBitmapLabel(bmp) add.SetToolTipString("Add a group") add.Bind(wx.EVT_BUTTON, self.evt_add_button) #delete button delete = wx.BitmapButton(control, -1, None, size=(WX_STANDARD_HEIGHT, WX_STANDARD_HEIGHT)) bmp = wx.ArtProvider.GetBitmap(wx.ART_DELETE, wx.ART_TOOLBAR, WX_BUTTON_BMP_SIZE) delete.SetBitmapLabel(bmp) delete.SetToolTipString("Delete selected group") delete.Bind(wx.EVT_BUTTON, self.evt_delete_button) #info button # info = wx.BitmapButton(control, -1, None, # size=(WX_STANDARD_HEIGHT, WX_STANDARD_HEIGHT)) # bmp = wx.ArtProvider.GetBitmap(wx.ART_TIP, # wx.ART_TOOLBAR, WX_BUTTON_BMP_SIZE) # info.SetBitmapLabel(bmp) # info.SetToolTipString("Info about using Opioid2D groups") # info.Bind(wx.EVT_BUTTON, self.evt_info_button) line = wx.StaticLine(control, pos=(0, 0)) line.MaxSize = (-1, 1) sizer.Add(line, (3, 0), flag=wx.EXPAND) sizer.Add(listbox, (0, 0), (3, 1), flag=wx.EXPAND | wx.EAST, border=4) sizer.Add(delete, (0, 1)) sizer.Add(add, (1, 1)) sizer.Add(info, (2, 1)) sizer.AddGrowableCol(0) #sizer.AddGrowableRow(3) kwargs['control_widget'] = control Base.__init__(self, attribute, window, aguidata, **kwargs)
def __init__(self, attribute, window, aguidata={}, **kwargs): self.tree = None # control control = wx.Panel(window) sizer = wx.BoxSizer() control.SetSizer(sizer) self.list = NodeTreeListCtrl(window.object, parent=control) control.SetMinSize( (self.list.get_full_width()+10, -1)) sizer.Add( self.list, 1, wx.EXPAND) #control.SetMinSize((control.get_full_width(), -1)) kwargs['control_widget'] = control Base.__init__(self, attribute, window, aguidata, **kwargs)
def __init__(self, attribute, window, aguidata={}, **kwargs): self.tree = None # control control = wx.Panel(window) sizer = wx.BoxSizer() control.SetSizer(sizer) self.list = NodeTreeListCtrl(window.object, parent=control) control.SetMinSize((self.list.get_full_width() + 10, -1)) sizer.Add(self.list, 1, wx.EXPAND) #control.SetMinSize((control.get_full_width(), -1)) kwargs['control_widget'] = control Base.__init__(self, attribute, window, aguidata, **kwargs)
def __init__(self, attribute, window, aguidata, **kwargs): # control control = wx.Panel(parent=window) height = aguidata.get('height', WX_STANDARD_HEIGHT * 3) control.MinSize = (-1, height+2) sizer = wx.GridBagSizer() control.SetSizer(sizer) self.list = [] listbox = wx.ListBox(control, -1) listbox.MaxSize = (-1, height) listbox.MinSize = (-1, height) self.listbox = listbox #add button add = wx.BitmapButton(control, -1, None, size=(WX_STANDARD_HEIGHT, WX_STANDARD_HEIGHT)) bmp = wx.ArtProvider.GetBitmap(wx.ART_ADD_BOOKMARK, wx.ART_TOOLBAR, WX_BUTTON_BMP_SIZE) add.SetBitmapLabel(bmp) add.SetToolTipString("Add a group") add.Bind(wx.EVT_BUTTON, self.evt_add_button) #delete button delete = wx.BitmapButton(control, -1, None, size=(WX_STANDARD_HEIGHT, WX_STANDARD_HEIGHT)) bmp = wx.ArtProvider.GetBitmap(wx.ART_DELETE, wx.ART_TOOLBAR, WX_BUTTON_BMP_SIZE) delete.SetBitmapLabel(bmp) delete.SetToolTipString("Delete selected group") delete.Bind(wx.EVT_BUTTON, self.evt_delete_button) #info button # info = wx.BitmapButton(control, -1, None, # size=(WX_STANDARD_HEIGHT, WX_STANDARD_HEIGHT)) # bmp = wx.ArtProvider.GetBitmap(wx.ART_TIP, # wx.ART_TOOLBAR, WX_BUTTON_BMP_SIZE) # info.SetBitmapLabel(bmp) # info.SetToolTipString("Info about using Opioid2D groups") # info.Bind(wx.EVT_BUTTON, self.evt_info_button) line = wx.StaticLine(control,pos=(0,0)) line.MaxSize = (-1,1) sizer.Add(line,(3,0),flag=wx.EXPAND) sizer.Add(listbox, (0, 0),(3, 1), flag=wx.EXPAND | wx.EAST, border = 4) sizer.Add(delete, (0, 1)) sizer.Add(add, (1, 1)) sizer.Add(info, (2, 1)) sizer.AddGrowableCol(0) #sizer.AddGrowableRow(3) kwargs['control_widget'] = control Base.__init__(self, attribute, window, aguidata, **kwargs)
def __init__(self, attribute, window, aguidata, **kwargs): #widgets control = wx.Panel(window, size=(1, WX_STANDARD_HEIGHT)) control.SetMinSize((-1, WX_STANDARD_HEIGHT)) self.object = getattr(window.object, attribute) #x xTextSizer = AguiLabelSizer(control, 'X:') xText = wx.TextCtrl(control, -1, size=wx.Size(30, WX_STANDARD_HEIGHT), style=wx.TAB_TRAVERSAL | wx.TE_PROCESS_ENTER) control.SetMinSize(wx.Size(0, WX_STANDARD_HEIGHT)) control.Bind(wx.EVT_TEXT_ENTER, self.apply) #y yTextSizer = AguiLabelSizer(control, ' Y:') yText = wx.TextCtrl(control, -1, size=wx.Size(30, WX_STANDARD_HEIGHT), style=wx.TAB_TRAVERSAL | wx.TE_PROCESS_ENTER) control.SetMinSize(wx.Size(0, WX_STANDARD_HEIGHT)) control.Bind(wx.EVT_TEXT_ENTER, self.apply) #button newViewButton = PugButton(control, self.object, True, attribute, window) self.xText = xText self.yText = yText self.xTextSizer = xTextSizer self.yTextSizer = yTextSizer self.newViewButton = newViewButton # sizers controlSizer = wx.BoxSizer(orient=wx.HORIZONTAL) control.SetSizer(controlSizer) controlSizer.AddSizer(xTextSizer, flag=wx.EXPAND) controlSizer.Add(xText, 1) controlSizer.AddSizer(yTextSizer, flag=wx.EXPAND) controlSizer.Add(yText, 1) controlSizer.AddSpacer((5, 5)) controlSizer.Add(newViewButton) kwargs['control_widget'] = control Base.__init__(self, attribute, window, aguidata, **kwargs)
def __init__(self, attribute, window, aguidata, **kwargs): #widgets control = wx.Panel(window, size = (1,WX_STANDARD_HEIGHT)) control.SetMinSize((-1,WX_STANDARD_HEIGHT)) self.object = getattr(window.object,attribute) #x xTextSizer = AguiLabelSizer(control, 'X:') xText = wx.TextCtrl( control, -1, size=wx.Size(30, WX_STANDARD_HEIGHT), style=wx.TAB_TRAVERSAL | wx.TE_PROCESS_ENTER) control.SetMinSize(wx.Size(0, WX_STANDARD_HEIGHT)) control.Bind(wx.EVT_TEXT_ENTER, self.apply) #y yTextSizer = AguiLabelSizer(control, ' Y:') yText = wx.TextCtrl( control, -1, size=wx.Size(30, WX_STANDARD_HEIGHT), style=wx.TAB_TRAVERSAL | wx.TE_PROCESS_ENTER) control.SetMinSize(wx.Size(0, WX_STANDARD_HEIGHT)) control.Bind(wx.EVT_TEXT_ENTER, self.apply) #button newViewButton = PugButton(control, self.object, True, attribute, window) self.xText = xText self.yText = yText self.xTextSizer = xTextSizer self.yTextSizer = yTextSizer self.newViewButton = newViewButton # sizers controlSizer = wx.BoxSizer(orient=wx.HORIZONTAL) control.SetSizer(controlSizer) controlSizer.AddSizer(xTextSizer,flag=wx.EXPAND) controlSizer.Add(xText,1) controlSizer.AddSizer(yTextSizer,flag=wx.EXPAND) controlSizer.Add(yText,1) controlSizer.AddSpacer((5,5)) controlSizer.Add(newViewButton) kwargs['control_widget'] = control Base.__init__(self, attribute, window, aguidata, **kwargs)
def __init__(self, attribute, window, aguidata={}, **kwargs): #attributes self.subfolder = aguidata.get('subfolder', "") self.fullpath = aguidata.get('fullpath', False) self.wildcards = aguidata.get('wildcards', "All files (*.*)|*.*") self.type = aguidata.get('type', "file") SPACING = 4 # for button # control control = wx.Panel(window, size=(1, WX_STANDARD_HEIGHT)) control.SetMinSize((-1, WX_STANDARD_HEIGHT)) control.value = '' text = AguiTextCtrl(control) text.SetEditable(False) text.Bind(wx.EVT_KEY_DOWN, self.keydown) control.text = text browseBmp = wx.ArtProvider.GetBitmap(wx.ART_FILE_OPEN, wx.ART_TOOLBAR, WX_BUTTON_BMP_SIZE) browseButton = wx.BitmapButton(control, bitmap=browseBmp, size=WX_BUTTON_SIZE) if self.type == "folder": browseButton.SetToolTipString('Browse for folder') else: browseButton.SetToolTipString('Browse for file') browseButton.Bind(wx.EVT_BUTTON, self.browse, browseButton) controlSizer = wx.BoxSizer(orient=wx.HORIZONTAL) control.SetSizer(controlSizer) controlSizer.Add(browseButton, 0) controlSizer.Add(text, 1, wx.EXPAND | wx.WEST, SPACING) # controlSizer.AddMany([(textSizer,1,wx.EXPAND | wx.EAST, SPACING), # (browseButton,0)]) # control.SetSize(controlSizer.MinSize) # control.SetMinSize((-1,controlSizer.MinSize[1])) kwargs['control_widget'] = control Base.__init__(self, attribute, window, aguidata, **kwargs)
def __init__(self, attribute, window, aguidata={}, **kwargs): #attributes self.subfolder = aguidata.get('subfolder',"") self.fullpath = aguidata.get('fullpath', False) self.wildcards = aguidata.get('wildcards',"All files (*.*)|*.*") self.type = aguidata.get('type',"file") SPACING = 4 # for button # control control = wx.Panel(window, size=(1,WX_STANDARD_HEIGHT)) control.SetMinSize((-1,WX_STANDARD_HEIGHT)) control.value = '' text = AguiTextCtrl(control) text.SetEditable(False) text.Bind(wx.EVT_KEY_DOWN, self.keydown) control.text = text browseBmp = wx.ArtProvider.GetBitmap( wx.ART_FILE_OPEN, wx.ART_TOOLBAR, WX_BUTTON_BMP_SIZE) browseButton = wx.BitmapButton(control, bitmap=browseBmp, size=WX_BUTTON_SIZE) if self.type == "folder": browseButton.SetToolTipString('Browse for folder') else: browseButton.SetToolTipString('Browse for file') browseButton.Bind(wx.EVT_BUTTON, self.browse, browseButton) controlSizer = wx.BoxSizer(orient=wx.HORIZONTAL) control.SetSizer(controlSizer) controlSizer.Add(browseButton,0) controlSizer.Add(text,1,wx.EXPAND | wx.WEST, SPACING) # controlSizer.AddMany([(textSizer,1,wx.EXPAND | wx.EAST, SPACING), # (browseButton,0)]) # control.SetSize(controlSizer.MinSize) # control.SetMinSize((-1,controlSizer.MinSize[1])) kwargs['control_widget'] = control Base.__init__(self, attribute, window, aguidata, **kwargs)
def __init__(self, attribute, window, aguidata={}, **kwargs): #control control = wx.Panel(parent=window) sizer = wx.GridBagSizer() control.SetSizer(sizer) self.list = [] #generate list self.list_generator = aguidata.get('list_generator', None) add = delete = info = arrange_up = arrange_down = None #add button if aguidata.get('add', False): addinfo = aguidata['add'] if len(addinfo) > 0: addfn = addinfo[0] else: addfn = self.evt_add_button if len(addinfo) > 1: tooltip = addinfo[1] else: tooltip = "Add an item" add = wx.BitmapButton(control, -1, size=(WX_STANDARD_HEIGHT, WX_STANDARD_HEIGHT)) add_image = wx.Bitmap(get_image_path("add.png"), wx.BITMAP_TYPE_PNG) add.SetBitmapLabel(add_image) add.SetToolTipString(tooltip) add.Bind(wx.EVT_BUTTON, addfn) #delete button if aguidata.get('delete', False): deleteinfo = aguidata['delete'] if len(deleteinfo) > 0: deletefn = deleteinfo[0] else: deletefn = self.evt_delete_button if len(deleteinfo) > 1: tooltip = deleteinfo[1] else: tooltip = "Delete an item" delete = wx.BitmapButton(control, -1, size=(WX_STANDARD_HEIGHT, WX_STANDARD_HEIGHT)) remove_image = wx.Bitmap(get_image_path("delete.png"), wx.BITMAP_TYPE_PNG) delete.SetBitmapLabel(remove_image) delete.SetToolTipString(tooltip) delete.Bind(wx.EVT_BUTTON, deletefn) #info button if aguidata.get('info', False): infoinfo = aguidata['info'] self.infotext = infoinfo[0] if len(infoinfo) > 1: tooltip = infoinfo[1] else: tooltip = "Info about this list" info = wx.BitmapButton(control, -1, size=(WX_STANDARD_HEIGHT, WX_STANDARD_HEIGHT)) bmp = wx.ArtProvider.GetBitmap(wx.ART_TIP, wx.ART_TOOLBAR, WX_BUTTON_BMP_SIZE) info.SetBitmapLabel(bmp) info.SetToolTipString(tooltip) info.Bind(wx.EVT_BUTTON, self.evt_info_button) #arrange buttons if aguidata.get('arrange_up', False): arrange_upinfo = aguidata['arrange_up'] if len(arrange_upinfo) > 0: arrange_upfn = arrange_upinfo[0] else: arrange_upfn = self.evt_arrange_up_button if len(arrange_upinfo) > 1: tooltip = arrange_upinfo[1] else: tooltip = "Move selected item up" arrange_up = wx.BitmapButton(control, -1, size=(WX_STANDARD_HEIGHT, WX_STANDARD_HEIGHT/2)) arrange_up_image = wx.Bitmap(get_image_path("arrow_up.png"), wx.BITMAP_TYPE_PNG) arrange_up.SetBitmapLabel(arrange_up_image) arrange_up.SetToolTipString(tooltip) arrange_up.Bind(wx.EVT_BUTTON, arrange_upfn) if aguidata.get('arrange_down', False): arrange_downinfo = aguidata['arrange_down'] if len(arrange_downinfo) > 0: arrange_downfn = arrange_downinfo[0] else: arrange_downfn = self.evt_arrange_down_button if len(arrange_downinfo) > 1: tooltip = arrange_downinfo[1] else: tooltip = "Move selected item down" arrange_down = wx.BitmapButton(control, -1, size=(WX_STANDARD_HEIGHT, WX_STANDARD_HEIGHT/2)) arrange_down_image = wx.Bitmap(get_image_path("arrow_down.png"), wx.BITMAP_TYPE_PNG) arrange_down.SetBitmapLabel(arrange_down_image) arrange_down.SetToolTipString(tooltip) arrange_down.Bind(wx.EVT_BUTTON, arrange_downfn) line = wx.StaticLine(control,pos=(0,0)) line.MaxSize = (-1,1) buttons = 0 defaultsize = 0 for button in [delete, add, info, arrange_up, arrange_down]: if button: sizer.Add(button, (buttons,1)) defaultsize += button.GetSize()[1] buttons+=1 height = aguidata.get('height', defaultsize) control.MinSize = (-1, height+2) listbox = wx.ListBox(control, -1) listbox.MaxSize = (-1, height) listbox.MinSize = (-1, height) self.listbox = listbox sizer.Add(line,(buttons,0),flag=wx.EXPAND) sizer.Add(listbox, (0, 0),(buttons, 1), flag=wx.EXPAND | wx.EAST, border = 4) sizer.AddGrowableCol(0) kwargs['control_widget'] = control Base.__init__(self, attribute, window, aguidata, **kwargs)
def __init__(self, attribute, window, aguidata={}, **kwargs): #control control = wx.Panel(parent=window) sizer = wx.GridBagSizer() control.SetSizer(sizer) self.list = [] #generate list self.list_generator = aguidata.get('list_generator', None) add = delete = info = arrange_up = arrange_down = None #add button if aguidata.get('add', False): addinfo = aguidata['add'] if len(addinfo) > 0: addfn = addinfo[0] else: addfn = self.evt_add_button if len(addinfo) > 1: tooltip = addinfo[1] else: tooltip = "Add an item" add = wx.BitmapButton(control, -1, size=(WX_STANDARD_HEIGHT, WX_STANDARD_HEIGHT)) add_image = wx.Bitmap(get_image_path("add.png"), wx.BITMAP_TYPE_PNG) add.SetBitmapLabel(add_image) add.SetToolTipString(tooltip) add.Bind(wx.EVT_BUTTON, addfn) #delete button if aguidata.get('delete', False): deleteinfo = aguidata['delete'] if len(deleteinfo) > 0: deletefn = deleteinfo[0] else: deletefn = self.evt_delete_button if len(deleteinfo) > 1: tooltip = deleteinfo[1] else: tooltip = "Delete an item" delete = wx.BitmapButton(control, -1, size=(WX_STANDARD_HEIGHT, WX_STANDARD_HEIGHT)) remove_image = wx.Bitmap(get_image_path("delete.png"), wx.BITMAP_TYPE_PNG) delete.SetBitmapLabel(remove_image) delete.SetToolTipString(tooltip) delete.Bind(wx.EVT_BUTTON, deletefn) #info button if aguidata.get('info', False): infoinfo = aguidata['info'] self.infotext = infoinfo[0] if len(infoinfo) > 1: tooltip = infoinfo[1] else: tooltip = "Info about this list" info = wx.BitmapButton(control, -1, size=(WX_STANDARD_HEIGHT, WX_STANDARD_HEIGHT)) bmp = wx.ArtProvider.GetBitmap(wx.ART_TIP, wx.ART_TOOLBAR, WX_BUTTON_BMP_SIZE) info.SetBitmapLabel(bmp) info.SetToolTipString(tooltip) info.Bind(wx.EVT_BUTTON, self.evt_info_button) #arrange buttons if aguidata.get('arrange_up', False): arrange_upinfo = aguidata['arrange_up'] if len(arrange_upinfo) > 0: arrange_upfn = arrange_upinfo[0] else: arrange_upfn = self.evt_arrange_up_button if len(arrange_upinfo) > 1: tooltip = arrange_upinfo[1] else: tooltip = "Move selected item up" arrange_up = wx.BitmapButton(control, -1, size=(WX_STANDARD_HEIGHT, WX_STANDARD_HEIGHT / 2)) arrange_up_image = wx.Bitmap(get_image_path("arrow_up.png"), wx.BITMAP_TYPE_PNG) arrange_up.SetBitmapLabel(arrange_up_image) arrange_up.SetToolTipString(tooltip) arrange_up.Bind(wx.EVT_BUTTON, arrange_upfn) if aguidata.get('arrange_down', False): arrange_downinfo = aguidata['arrange_down'] if len(arrange_downinfo) > 0: arrange_downfn = arrange_downinfo[0] else: arrange_downfn = self.evt_arrange_down_button if len(arrange_downinfo) > 1: tooltip = arrange_downinfo[1] else: tooltip = "Move selected item down" arrange_down = wx.BitmapButton(control, -1, size=(WX_STANDARD_HEIGHT, WX_STANDARD_HEIGHT / 2)) arrange_down_image = wx.Bitmap(get_image_path("arrow_down.png"), wx.BITMAP_TYPE_PNG) arrange_down.SetBitmapLabel(arrange_down_image) arrange_down.SetToolTipString(tooltip) arrange_down.Bind(wx.EVT_BUTTON, arrange_downfn) line = wx.StaticLine(control, pos=(0, 0)) line.MaxSize = (-1, 1) buttons = 0 defaultsize = 0 for button in [delete, add, info, arrange_up, arrange_down]: if button: sizer.Add(button, (buttons, 1)) defaultsize += button.GetSize()[1] buttons += 1 height = aguidata.get('height', defaultsize) control.MinSize = (-1, height + 2) listbox = wx.ListBox(control, -1) listbox.MaxSize = (-1, height) listbox.MinSize = (-1, height) self.listbox = listbox sizer.Add(line, (buttons, 0), flag=wx.EXPAND) sizer.Add(listbox, (0, 0), (buttons, 1), flag=wx.EXPAND | wx.EAST, border=4) sizer.AddGrowableCol(0) kwargs['control_widget'] = control Base.__init__(self, attribute, window, aguidata, **kwargs)
def __init__(self, attribute, window, aguidata={}, **kwargs): #attributes self.kwargs = kwargs object = getattr(window.object, attribute) labelText = aguidata.get( 'label', ''.join([PUGFRAME_ATTRIBUTE_PREFIX, attribute])) self.subControlList = [] sub_attributes = aguidata.get('sub_attributes', []) if not sub_attributes: aguidata['sub_attributes'] = [] kwargs['aguidata'] = aguidata kwargs['control_widget'] = None kwargs['label_widget'] = None Base.__init__(self, attribute, window, **kwargs) SPACING = 4 # for button # control control = wx.Panel(window) controlSizer = wx.BoxSizer(orient=wx.VERTICAL) control.SetSizer(controlSizer) #label label = wx.Panel(window, size=(1, WX_STANDARD_HEIGHT)) labelSizer = wx.FlexGridSizer(1, 2, 0, 0) labelSizer.AddGrowableCol(0) label.SetSizer(labelSizer) subnum = 0 subcount = len(sub_attributes) for sub in sub_attributes: subnum += 1 controlText = AguiTextCtrl(control, aguidata.get('format_floats', None)) controlText.Bind(wx.EVT_TEXT_ENTER, self.apply) controlText.Bind(wx.EVT_KILL_FOCUS, self.apply) controlHSizer = wx.BoxSizer(orient=wx.HORIZONTAL) controlHSizer.Add(controlText, 1) controlSizer.AddSizer(controlHSizer, flag=wx.EXPAND) self.subControlList += [(sub, controlText)] rightLabel = AguiLabelSizer(label, sub, subnum == subcount) rightLabel.SetMinSize((-1, controlText.MinSize[1] + 1)) if subnum == 1: if aguidata.get('no_button', False): button_spacing = 0 else: # show view button in top row of control newViewButton = PugButton(control, object, True, attribute, window, targetObjectFn=self.get_object) self.newViewButton = newViewButton button_spacing = SPACING + newViewButton.Size[0] controlHSizer.AddSpacer((SPACING, SPACING)) controlHSizer.Add(newViewButton) # show main label in top row of label leftLabel = AguiLabelSizer(label, labelText, subcount == 1) label.textCtrl = leftLabel.textCtrl # tooltip target else: if subnum == subcount and button_spacing: #add line at far right for bottom subattribute underline = AguiLabelSizer(control, '') underline.SetMinSize((button_spacing, -1)) controlHSizer.AddSizer(underline, 0, flag=wx.EXPAND) else: controlHSizer.AddSpacer((button_spacing, SPACING)) # empty left area for rows 2 and on leftLabel = AguiLabelSizer(label, '', subnum == subcount) leftLabel.SetMinSize((-1, controlText.MinSize[1] + 1)) labelSizer.SetRows(subnum) labelSizer.AddSizer(leftLabel, flag=wx.EXPAND) labelSizer.AddSizer(rightLabel, flag=wx.EXPAND) control.SetSize(controlSizer.MinSize) control.SetMinSize((-1, controlSizer.MinSize[1])) label.SetMinSize(control.MinSize) kwargs['aguidata'] = aguidata kwargs['control_widget'] = control kwargs['label_widget'] = label Base.__init__(self, attribute, window, **kwargs)
def __init__(self, attribute, window, aguidata={},**kwargs): #attributes self.kwargs = kwargs object = getattr(window.object,attribute) labelText = aguidata.get('label', ''.join([PUGFRAME_ATTRIBUTE_PREFIX,attribute])) self.subControlList = [] sub_attributes = aguidata.get('sub_attributes',[]) if not sub_attributes: aguidata['sub_attributes'] = [] kwargs['aguidata'] = aguidata kwargs['control_widget'] = None kwargs['label_widget'] = None Base.__init__(self, attribute, window, **kwargs) SPACING = 4 # for button # control control = wx.Panel(window) controlSizer = wx.BoxSizer(orient=wx.VERTICAL) control.SetSizer(controlSizer) #label label = wx.Panel(window, size=(1,WX_STANDARD_HEIGHT)) labelSizer = wx.FlexGridSizer(1, 2, 0, 0) labelSizer.AddGrowableCol(0) label.SetSizer(labelSizer) subnum = 0 subcount = len(sub_attributes) for sub in sub_attributes: subnum += 1 controlText = AguiTextCtrl(control, aguidata.get('format_floats', None)) controlText.Bind(wx.EVT_TEXT_ENTER, self.apply) controlText.Bind(wx.EVT_KILL_FOCUS, self.apply) controlHSizer = wx.BoxSizer(orient=wx.HORIZONTAL) controlHSizer.Add(controlText,1) controlSizer.AddSizer(controlHSizer, flag=wx.EXPAND) self.subControlList += [(sub,controlText)] rightLabel = AguiLabelSizer(label, sub, subnum == subcount) rightLabel.SetMinSize((-1,controlText.MinSize[1]+1)) if subnum == 1: if aguidata.get('no_button', False): button_spacing = 0 else: # show view button in top row of control newViewButton = PugButton(control, object, True, attribute, window, targetObjectFn=self.get_object) self.newViewButton = newViewButton button_spacing = SPACING + newViewButton.Size[0] controlHSizer.AddSpacer((SPACING,SPACING)) controlHSizer.Add(newViewButton) # show main label in top row of label leftLabel = AguiLabelSizer( label, labelText, subcount == 1) label.textCtrl = leftLabel.textCtrl # tooltip target else: if subnum == subcount and button_spacing: #add line at far right for bottom subattribute underline = AguiLabelSizer( control, '') underline.SetMinSize((button_spacing, -1)) controlHSizer.AddSizer(underline,0, flag = wx.EXPAND) else: controlHSizer.AddSpacer((button_spacing, SPACING)) # empty left area for rows 2 and on leftLabel = AguiLabelSizer( label, '', subnum == subcount) leftLabel.SetMinSize((-1,controlText.MinSize[1]+1)) labelSizer.SetRows( subnum) labelSizer.AddSizer(leftLabel, flag = wx.EXPAND) labelSizer.AddSizer(rightLabel, flag = wx.EXPAND) control.SetSize(controlSizer.MinSize) control.SetMinSize((-1,controlSizer.MinSize[1])) label.SetMinSize(control.MinSize) kwargs['aguidata'] = aguidata kwargs['control_widget'] = control kwargs['label_widget'] = label Base.__init__(self, attribute, window, **kwargs)