def DoCreateResource(self): assert self.GetInstance() is None w = gizmos.EditableListBox(self.GetParentAsWindow(), self.GetID(), self.GetText("label"), self.GetPosition(), self.GetSize(), self.GetStyle(), self.GetName()) # Doesn't work #self.insideBox = True #self.CreateChildrenPrivately(None, self.GetParamNode('content')) #self.insideBox = False # Long way strings = [] n = self.GetParamNode('content') if n: n = n.GetChildren() while n: if n.GetType() != xrc.XML_ELEMENT_NODE or n.GetName() != "item": n = n.GetNext() continue strings.append(n.GetNodeContent()) n = n.GetNext() w.SetStrings(strings) self.SetupWindow(w) return w
def _init_ui(self): self.panel = wx.Panel(self) msizer = wx.BoxSizer(wx.VERTICAL) self.elb = gizmos.EditableListBox(self.panel, -1, label=self.label, size=(250, 250)) if self.string_list is None: self.string_list = [] self.elb.SetStrings(self.string_list) msizer.Add(self.elb, 1, wx.EXPAND | wx.ALL, 5) hbox = wx.BoxSizer(wx.HORIZONTAL) cancel_btn = wx.Button(self.panel, label='Cancel') ok_btn = wx.Button(self.panel, label='OK') hbox.Add(cancel_btn, 0) hbox.Add(ok_btn, 0, wx.LEFT, 10) msizer.Add(hbox, 0, wx.ALIGN_CENTER | wx.ALL, 5) self.panel.SetSizer(msizer) self.Bind(wx.EVT_BUTTON, self.on_cancel, cancel_btn) self.Bind(wx.EVT_BUTTON, self.on_ok, ok_btn)
def __init__(self, parent, id, title, values): wx.Dialog.__init__(self, parent, id, title, pos=(50, 50), size=(250, 250), style=wx.DEFAULT_FRAME_STYLE) self.parent = parent panel = wx.Panel(self, wx.ID_ANY) vbox = wx.BoxSizer(wx.VERTICAL) self.elb = gizmos.EditableListBox(panel, wx.ID_ANY, _("Dictionary manager")) D = eval(values) if values != '' else {} self.elb.SetStrings( map(lambda a, b: "('%s','%s')" % (str(a), str(b)), D.keys(), D.values())) vbox.Add(self.elb, 1, wx.EXPAND | wx.ALL) panel.SetSizer(vbox) self.Center() self.elb.Bind(wx.EVT_LIST_END_LABEL_EDIT, self.OnExcludesChange) ### just for window http://wiki.wxpython.org/wxPython%20Platform%20Inconsistencies#New_frames_not_showing_widgets_correctly_under_MS_Windows e = wx.SizeEvent(self.GetSize()) self.ProcessEvent(e)
def _init_ctrls(self, parent): self.DecYear = wx.Button(self, -1, '<<', size=(48, 36)) self.DecYear.Bind(wx.EVT_BUTTON, self.OnDecYear) self.DecMonth = wx.Button(self, -1, ' < ', size=(48, 36)) self.DecMonth.Bind(wx.EVT_BUTTON, self.OnDecMonth) self.Current = wx.Button(self, -1, 'Today') self.Current.Bind(wx.EVT_BUTTON, self.OnCurrent) self.IncMonth = wx.Button(self, -1, ' > ', size=(48, 36)) self.IncMonth.Bind(wx.EVT_BUTTON, self.OnIncMonth) self.IncYear = wx.Button(self, -1, '>>', size=(48, 36)) self.IncYear.Bind(wx.EVT_BUTTON, self.OnIncYear) bsizer = wx.BoxSizer(wx.HORIZONTAL) bsizer.Add(self.DecYear, 0, wx.ALL, 2) bsizer.Add(self.DecMonth, 0, wx.ALL, 2) bsizer.Add(self.Current, 1, wx.ALL | wx.EXPAND, 2) bsizer.Add(self.IncMonth, 0, wx.ALL, 2) bsizer.Add(self.IncYear, 0, wx.ALL, 2) self.Calendar = Calendar(self, -1, size=(200, 300)) self.Calendar.Bind(wx.lib.calendar.EVT_CALENDAR, self.OnCalendarChange) self.Calendar.SetCurrentDay() self.Calendar.grid_color = 'BLUE' self.Calendar.SetBusType() self.FBB = FileBrowseButton(self, size=(450, -1), changeCallback=self.OnFBBChange) self.FBB.SetLabel('Symbols File:') self.DBB = DirBrowseButton(self, size=(450, -1), changeCallback=self.OnDBBChange) self.DBB.SetLabel('Prices Folder:') self.ListBox = gizmos.EditableListBox( self, -1, # style=gizmos.EL_DEFAULT_STYLE | gizmos.EL_NO_REORDER ) self.ListBox.GetUpButton().Show(False) self.ListBox.GetDownButton().Show(False) self.ListBox.Bind(wx.EVT_LIST_DELETE_ITEM, self.OnSymbolListChange) self.ListBox.Bind(wx.EVT_LIST_INSERT_ITEM, self.OnSymbolListChange) self.Download = wx.Button(self, wx.OK, 'Download Prices') self.Download.Bind(wx.EVT_BUTTON, self.OnDownload) sizer = wx.BoxSizer(wx.VERTICAL) sizer.AddSizer(bsizer, 0, wx.LEFT | wx.RIGHT | wx.EXPAND, 5) sizer.AddWindow(self.Calendar, 0, wx.LEFT | wx.RIGHT | wx.EXPAND, 5) sizer.AddWindow(self.FBB, 0, wx.ALL | wx.EXPAND, 5) sizer.AddWindow(self.DBB, 0, wx.ALL | wx.EXPAND, 5) sizer.AddWindow(self.ListBox, 1, wx.ALL | wx.EXPAND, 5) sizer.AddWindow(self.Download, 0, wx.ALL | wx.ALIGN_RIGHT, 5) self.SetSizer(sizer)
def __init__(self, parent, log): wx.Panel.__init__(self, parent, -1) self.log = log self.elb = gizmos.EditableListBox(self, -1, "List of Stuff", (50, 50), (250, 250)) #style=wx.EL_ALLOW_NEW | wx.EL_ALLOW_EDIT | wx.EL_ALLOW_DELETE) self.elb.SetStrings([ "This is a nifty ListBox widget", "that is editable by the user.", "", "Use the buttons above to", "manipulate items in the list", "Or to add new ones.", ])
def __init__(self, mainwindow, parent): super(T9EditorWidget, self).__init__(parent, -1) self._mw=mainwindow self._t9list=T9WordsList() self.ignoredirty=False self.dirty=False # main box sizer vbs=wx.BoxSizer(wx.VERTICAL) # horizontal sizer for the main contents hbs=wx.BoxSizer(wx.HORIZONTAL) _svbs=wx.StaticBoxSizer(wx.StaticBox(self, -1, 'T9 Keys'), wx.VERTICAL) self._keys_lb=wx.ListBox(self, -1, style=wx.LB_SINGLE|wx.LB_HSCROLL|wx.LB_NEEDED_SB) wx.EVT_LISTBOX(self, self._keys_lb.GetId(), self._OnSelectKey) _svbs.Add(self._keys_lb, 1, wx.EXPAND|wx.ALL, 5) hbs.Add(_svbs, 1, wx.EXPAND|wx.ALL, 5) self._words_w=gizmos.EditableListBox(self, -1, 'T9 Words:', style=0) self._words_lb=self._words_w.GetListCtrl() wx.EVT_BUTTON(self._words_w, self._words_w.GetUpButton().GetId(), self._OnUpDown) wx.EVT_BUTTON(self._words_w, self._words_w.GetDownButton().GetId(), self._OnUpDown) hbs.Add(self._words_w, 3, wx.EXPAND|wx.ALL, 5) vbs.Add(hbs, 1, wx.EXPAND|wx.ALL, 5) vbs.Add(wx.StaticLine(self, -1), 0, wx.EXPAND|wx.TOP|wx.BOTTOM, 5) hbs=wx.BoxSizer(wx.HORIZONTAL) self._save_btn=wx.Button(self, wx.ID_SAVE) hbs.Add(self._save_btn, 0, wx.ALIGN_CENTRE|wx.ALL, 5) hbs.Add(wx.Button(self, wx.ID_HELP), 0, wx.ALIGN_CENTRE|wx.ALL, 5) self._revert_btn=wx.Button(self, wx.ID_REVERT_TO_SAVED) hbs.Add(self._revert_btn, 0, wx.ALIGN_CENTRE|wx.ALL, 5) wx.EVT_BUTTON(self, wx.ID_SAVE, self._OnSave) wx.EVT_BUTTON(self, wx.ID_REVERT_TO_SAVED, self._OnRevert) wx.EVT_BUTTON(self, wx.ID_HELP, lambda _: wx.GetApp().displayhelpid(self.help_id)) vbs.Add(hbs, 0, wx.ALIGN_CENTRE|wx.ALL, 5) self.SetSizer(vbs) self.SetAutoLayout(True) vbs.Fit(self) # populate data self._populate() # turn on dirty flag self.setdirty(False)
def __init__(self, parent, ID, tasks): wx.Panel.__init__ (self, parent, ID) GlobalAttr.__init__(self, parent) self.elb = elb = gizmos.EditableListBox (self, wx.ID_ANY, "Tasks/parameters - select and press operation button") sizer = wx.BoxSizer(wx.HORIZONTAL) sizer.Add (elb, 1, wx.EXPAND|wx.ALL) self.SetSizer(sizer) self.lst_ctrl = lst_ctrl = elb.GetListCtrl() lst_ctrl.Bind (wx.EVT_LIST_END_LABEL_EDIT, self.OnEndLabelEdit) lst_ctrl.Bind (wx.EVT_LIST_DELETE_ITEM, self.OnItemDelete) elb.GetDownButton().Bind(wx.EVT_BUTTON, self.OnDown) elb.GetUpButton().Bind(wx.EVT_BUTTON, self.OnUp) self.tasks = [] self.set_tasks (tasks)
def __init__(self, mainwindow, parent): super(SMSWidget, self).__init__(parent, -1) self._main_window = mainwindow #self._data=self._canned_data={} self._data = {} self._parent = parent self.sms_tree_nodes = {} # main box sizer vbs = wx.BoxSizer(wx.VERTICAL) # data date adjuster hbs = wx.BoxSizer(wx.HORIZONTAL) self.read_only = False self.historical_date = None static_bs = wx.StaticBoxSizer( wx.StaticBox(self, -1, 'Historical Data Status:'), wx.VERTICAL) self.historical_data_label = wx.StaticText(self, -1, 'Current Data') static_bs.Add(self.historical_data_label, 1, wx.EXPAND | wx.ALL, 5) hbs.Add(static_bs, 1, wx.EXPAND | wx.ALL, 5) vbs.Add(hbs, 0, wx.EXPAND | wx.ALL, 5) static_bs1 = wx.StaticBoxSizer( wx.StaticBox(self, -1, 'Canned Messages:'), wx.HORIZONTAL) self.canned_list = gizmos.EditableListBox( self, -1, 'User Defined Canned Messages:') static_bs1.Add(self.canned_list, 1, wx.EXPAND | wx.ALL, 5) vbs1 = wx.BoxSizer(wx.VERTICAL) vbs1.Add(wx.StaticText(self, -1, ' Built-in Canned Messages:'), 0, wx.ALL, 0) self.builtin_canned_list = wx.ListBox(self, -1) vbs1.Add(self.builtin_canned_list, 1, wx.EXPAND | wx.ALL, 5) static_bs1.Add(vbs1, 1, wx.EXPAND | wx.ALL, 5) vbs.Add(static_bs1, 1, wx.EXPAND | wx.ALL, 5) self.save_btn = wx.Button(self, wx.ID_SAVE) vbs.Add(self.save_btn, 0, wx.ALIGN_CENTRE | wx.ALL, 5) self.list_widget = SMSList(self._main_window, self._parent, self) wx.EVT_BUTTON(self, self.save_btn.GetId(), self.OnSaveCannedMsg) # all done self.SetSizer(vbs) self.SetAutoLayout(True) vbs.Fit(self)
def __init__(self, items, parent=None): wx.Dialog.__init__(self, parent, title=_('Edit text section order'), style=wx.RESIZE_BORDER|wx.DEFAULT_DIALOG_STYLE) self.SetMinSize((400, -1)) self.SetSize(self.GetMinSize()) self.items = items self.elb = gizmos.EditableListBox(self, -1, _("Text sections"), style=0) self.elb.SetStrings(items) sizer = wx.BoxSizer(wx.VERTICAL) sizer.Add(self.elb, 1, wx.ALIGN_CENTRE|wx.ALL|wx.EXPAND, 5) btnsizer = wx.StdDialogButtonSizer() btn = wx.Button(self, wx.ID_OK) btn.SetDefault() btnsizer.AddButton(btn) btn = wx.Button(self, wx.ID_CANCEL) btnsizer.AddButton(btn) btnsizer.Realize() sizer.Add(btnsizer, 0, wx.ALIGN_CENTER_VERTICAL|wx.ALIGN_CENTER_HORIZONTAL|wx.ALL, 5) self.SetSizer(sizer) sizer.Fit(self) self.Layout()
def __init__(self, parent, categorie="", IDmodele=None): wx.Dialog.__init__(self, parent, -1, style=wx.DEFAULT_DIALOG_STYLE | wx.RESIZE_BORDER | wx.MAXIMIZE_BOX | wx.MINIMIZE_BOX | wx.THICK_FRAME) self.parent = parent self.categorie = categorie self.IDmodele = IDmodele self.defaut = 0 # Généralités self.staticbox_generalites_staticbox = wx.StaticBox( self, -1, _(u"Généralités")) self.label_nom = wx.StaticText(self, -1, _(u"Nom :")) self.ctrl_nom = wx.TextCtrl(self, -1, u"") self.label_description = wx.StaticText(self, -1, _(u"Description :")) self.ctrl_description = wx.TextCtrl(self, -1, u"", style=wx.TE_MULTILINE) # Options self.staticbox_options_staticbox = wx.StaticBox( self, -1, _(u"Options")) self.label_taille = wx.StaticText(self, -1, _(u"Taille de police :")) self.ctrl_taille = wx.SpinCtrl(self, -1, "", size=(60, -1)) self.ctrl_taille.SetRange(1, 200) self.ctrl_taille.SetValue(15) self.label_interligne = wx.StaticText(self, -1, _(u"Interligne :")) self.ctrl_interligne = wx.SpinCtrl(self, -1, "", size=(60, -1)) self.ctrl_interligne.SetRange(1, 200) self.ctrl_interligne.SetValue(5) self.label_imprimante = wx.StaticText(self, -1, _(u"Imprimante :")) self.ctrl_imprimante = CTRL_Imprimante(self) # Mots-clés self.listeMotsCles = [] for dictCategorie in CATEGORIES: if dictCategorie["code"] == self.categorie: self.listeMotsCles = dictCategorie["motscles"] self.staticbox_motscles_staticbox = wx.StaticBox( self, -1, _(u"Mots-clés disponibles")) self.ctrl_motscles = wx.ListBox(self, -1, choices=self.listeMotsCles, style=wx.SIMPLE_BORDER) self.ctrl_motscles.SetBackgroundColour("#F0FBED") # texte self.staticbox_texte_staticbox = wx.StaticBox(self, -1, _(u"Ticket")) self.ctrl_editeur = gizmos.EditableListBox( self, -1, _(u"Saisissez ci-dessous les lignes à imprimer sur le ticket")) self.ctrl_editeur.GetDelButton().SetToolTipString( _(u"Supprimer la ligne sélectionnée")) self.ctrl_editeur.GetDownButton().SetToolTipString( _(u"Descendre la ligne sélectionnée")) self.ctrl_editeur.GetUpButton().SetToolTipString( _(u"Monter la ligne sélectionnée")) self.ctrl_editeur.GetEditButton().SetToolTipString( _(u"Editer la ligne sélectionnée")) self.ctrl_editeur.GetNewButton().SetToolTipString( _(u"Insérer une nouvelle ligne")) # Commandes self.bouton_aide = CTRL_Bouton_image.CTRL( self, texte=_(u"Aide"), cheminImage="Images/32x32/Aide.png") self.bouton_apercu = CTRL_Bouton_image.CTRL( self, texte=_(u"Imprimer un ticket de test"), cheminImage="Images/32x32/Imprimante.png") self.bouton_ok = CTRL_Bouton_image.CTRL( self, texte=_(u"Ok"), cheminImage="Images/32x32/Valider.png") self.bouton_annuler = CTRL_Bouton_image.CTRL( self, id=wx.ID_CANCEL, texte=_(u"Annuler"), cheminImage="Images/32x32/Annuler.png") self.__set_properties() self.__do_layout() ## self.Bind(wx.EVT_LISTBOX_DCLICK, self.OnInsertMotcle, self.ctrl_motscles) self.Bind(wx.EVT_BUTTON, self.OnBoutonApercu, self.bouton_apercu) self.Bind(wx.EVT_BUTTON, self.OnBoutonAide, self.bouton_aide) self.Bind(wx.EVT_BUTTON, self.OnBoutonOk, self.bouton_ok) if self.IDmodele != None: self.SetTitle(_(u"Modification d'un modèle de ticket")) self.Importation() else: self.SetTitle(_(u"Saisie d'un modèle de ticket"))
def __init__(self, mainwindow, parent): super(PlaylistWidget, self).__init__(parent, -1) self._mw=mainwindow self._data=[] self._master=[] self.ignoredirty=False self.dirty=False # main box sizer vbs=wx.BoxSizer(wx.VERTICAL) # horizontal sizer for the main contents hbs=wx.BoxSizer(wx.HORIZONTAL) # the list box self._item_list=gizmos.EditableListBox(self, -1, 'Play Lists:', style=gizmos.EL_ALLOW_NEW|\ gizmos.EL_ALLOW_EDIT|\ gizmos.EL_ALLOW_DELETE) self._item_list.GetUpButton().Show(False) self._item_list.GetDownButton().Show(False) self._item_list_w=self._item_list.GetListCtrl() hbs.Add(self._item_list, 1, wx.EXPAND|wx.ALL, border=5) hbs.Add(wx.StaticLine(self, -1, style=wx.LI_VERTICAL), 0, wx.EXPAND|wx.ALL, 5) # the detailed panel hbs1=wx.BoxSizer(wx.HORIZONTAL) # the playlist _vbs1=wx.BoxSizer(wx.VERTICAL) self._pl_list=gizmos.EditableListBox(self, -1, "Play List Content:", style=gizmos.EL_ALLOW_DELETE) self._pl_list_w=self._pl_list.GetListCtrl() _vbs1.Add(self._pl_list, 1, wx.EXPAND, 0) self._count_lbl=wx.StaticText(self, -1, '') _vbs1.Add(self._count_lbl, 0, wx.EXPAND|wx.TOP, 5) hbs1.Add(_vbs1, 1, wx.EXPAND|wx.ALL, 5) _add_btn=wx.Button(self, -1, '<-Add') hbs1.Add(_add_btn, 0, wx.ALL, 5) self._master_list=gizmos.EditableListBox(self, -1, 'Available Songs:', style=0) self._master_list_w=self._master_list.GetListCtrl() self._master_list.GetUpButton().Show(False) self._master_list.GetDownButton().Show(False) hbs1.Add(self._master_list, 1, wx.EXPAND|wx.ALL, 5) hbs.Add(hbs1, 3, wx.EXPAND|wx.ALL, 5) # the bottom buttons hbs1=wx.BoxSizer(wx.HORIZONTAL) self._save_btn=wx.Button(self, wx.ID_SAVE) self._revert_btn=wx.Button(self, wx.ID_REVERT_TO_SAVED) help_btn=wx.Button(self, wx.ID_HELP) hbs1.Add(self._save_btn, 0, wx.ALIGN_CENTRE|wx.ALL, 5) hbs1.Add(help_btn, 0, wx.ALIGN_CENTRE|wx.ALL, 5) hbs1.Add(self._revert_btn, 0, wx.ALIGN_CENTRE|wx.ALL, 5) # all done vbs.Add(hbs, 1, wx.EXPAND|wx.ALL, 5) vbs.Add(wx.StaticLine(self, -1), 0, wx.EXPAND|wx.TOP|wx.BOTTOM, 5) vbs.Add(hbs1, 0, wx.ALIGN_CENTRE|wx.ALL, 5) self.SetSizer(vbs) self.SetAutoLayout(True) vbs.Fit(self) # event handlers wx.EVT_LIST_ITEM_SELECTED(self._item_list, self._item_list_w.GetId(), self.OnPlaylistSelected) wx.EVT_LIST_BEGIN_LABEL_EDIT(self._item_list, self._item_list_w.GetId(), self.OnStartLabelChanged) wx.EVT_LIST_END_LABEL_EDIT(self._item_list, self._item_list_w.GetId(), self.OnLabelChanged) wx.EVT_BUTTON(self, _add_btn.GetId(), self.OnAdd2Playlist) wx.EVT_BUTTON(self, self._save_btn.GetId(), self.OnSave) wx.EVT_BUTTON(self, self._revert_btn.GetId(), self.OnRevert) wx.EVT_LIST_DELETE_ITEM(self._item_list, self._item_list_w.GetId(), self.OnMakeDirty) wx.EVT_LIST_DELETE_ITEM(self._pl_list, self._pl_list_w.GetId(), self.OnMakeDirty) wx.EVT_BUTTON(self, wx.ID_HELP, lambda _: wx.GetApp().displayhelpid(helpids.ID_TAB_PLAYLIST)) wx.EVT_BUTTON(self._pl_list, self._pl_list.GetUpButton().GetId(), self._OnUpDown) wx.EVT_BUTTON(self._pl_list, self._pl_list.GetDownButton().GetId(), self._OnUpDown) # populate data self._populate() # turn on dirty flag self.setdirty(False)
def __init__(self, parent): super(VirtualAttPanel, self).__init__(parent, id=wx.ID_ANY) self.vatts_list = wx.ListBox( self, wx.ID_ANY, style=wx.LB_SINGLE, choices=datastore.sample_attributes.virtual_atts()) self.vattlabel = wx.StaticText(self, wx.ID_ANY, "<No Attribute Selected>") self.avail_list = wx.ListBox(self, wx.ID_ANY, style=wx.LB_EXTENDED) self.order_box = gizmos.EditableListBox(self, wx.ID_ANY, 'Composes Attributes:', style=gizmos.EL_ALLOW_DELETE) self.add_att_button = wx.Button(self, wx.ID_ANY, "<-- Add ---") self.add_button = wx.Button(self, wx.ID_ANY, "Add Hierarchy...") self.save_button = wx.Button(self, wx.ID_ANY, "Save Composition") self.add_att_button.Disable() self.order_box.Disable() colsizer = wx.BoxSizer(wx.HORIZONTAL) sz = wx.BoxSizer(wx.VERTICAL) sz.Add(wx.StaticText(self, wx.ID_ANY, "Hierarchies"), border=5, flag=wx.ALL) sz.Add(self.vatts_list, proportion=1, border=5, flag=wx.ALL | wx.EXPAND) colsizer.Add(sz, proportion=1, flag=wx.EXPAND) sz = wx.BoxSizer(wx.VERTICAL) sz.Add(self.vattlabel, border=5, flag=wx.ALL) sz.Add(self.order_box, proportion=1, border=5, flag=wx.ALL | wx.EXPAND) sz.Add(self.save_button, border=5, flag=wx.ALL) colsizer.Add(sz, proportion=1, flag=wx.EXPAND) sz = wx.BoxSizer(wx.VERTICAL) sz.Add(self.add_att_button.GetSize()) sz.Add(self.add_att_button, border=5, flag=wx.ALL) sz.Add(self.add_att_button.GetSize()) colsizer.Add(sz, flag=wx.ALIGN_CENTER_VERTICAL) sz = wx.BoxSizer(wx.VERTICAL) sz.Add(wx.StaticText(self, wx.ID_ANY, "Available Attributes"), border=5, flag=wx.ALL) sz.Add(self.avail_list, proportion=1, border=5, flag=wx.ALL | wx.EXPAND) colsizer.Add(sz, proportion=1, flag=wx.EXPAND) buttonsizer = wx.BoxSizer(wx.HORIZONTAL) buttonsizer.Add(self.add_button, border=5, flag=wx.ALL) sizer = wx.BoxSizer(wx.VERTICAL) sizer.Add(buttonsizer, border=5, flag=wx.ALL | wx.ALIGN_LEFT) sizer.Add(colsizer, proportion=1, flag=wx.EXPAND) self.SetSizer(sizer) self.Bind(wx.EVT_BUTTON, self.add_vatt, self.add_button) self.Bind(wx.EVT_BUTTON, self.add_attribute, self.add_att_button) self.Bind(wx.EVT_LIST_DELETE_ITEM, self.remove_attribute, self.order_box.GetListCtrl()) self.Bind(wx.EVT_BUTTON, self.save_changes, self.save_button) self.Bind(wx.EVT_LISTBOX, self.select_vatt, self.vatts_list) self.Bind(events.EVT_REPO_CHANGED, self.on_repository_altered)
def __init__(self, parent): super(ViewPanel, self).__init__(parent, id=wx.ID_ANY) self.views_list = wx.ListBox(self, wx.ID_ANY, style=wx.LB_SINGLE, choices=sorted(datastore.views.keys())) self.viewlabel = wx.StaticText(self, wx.ID_ANY, "<No View Selected>") self.avail_list = wx.ListBox(self, wx.ID_ANY, style=wx.LB_EXTENDED) self.save_button = wx.Button(self, wx.ID_ANY, "Save View") self.order_box = gizmos.EditableListBox( self, wx.ID_ANY, 'Attributes in View:', style=(not gizmos.EL_ALLOW_DELETE)) #TODO: use an ItemsPicker! #kinda gross hack to make these buttons the same size self.add_att_button = wx.Button(self, wx.ID_ANY, "<-- Add ---") self.remove_att_button = wx.Button(self, wx.ID_ANY, "--- Remove -->") self.add_button = wx.Button(self, wx.ID_ANY, "Add View...") self.delete_button = wx.Button(self, wx.ID_ANY, "Delete View") self.add_att_button.Disable() self.remove_att_button.Disable() self.order_box.Disable() colsizer = wx.BoxSizer(wx.HORIZONTAL) sz = wx.BoxSizer(wx.VERTICAL) sz.Add(wx.StaticText(self, wx.ID_ANY, "Views"), border=5, flag=wx.ALL) sz.Add(self.views_list, proportion=1, border=5, flag=wx.ALL | wx.EXPAND) colsizer.Add(sz, proportion=1, flag=wx.EXPAND) sz = wx.BoxSizer(wx.VERTICAL) sz.Add(self.viewlabel, border=5, flag=wx.ALL) sz.Add(self.save_button, border=5, flag=wx.ALL) sz.Add(self.order_box, proportion=1, border=5, flag=wx.ALL | wx.EXPAND) colsizer.Add(sz, proportion=1, flag=wx.EXPAND) sz = wx.BoxSizer(wx.VERTICAL) sz.Add(self.add_att_button.GetSize()) sz.Add(self.add_att_button, border=5, flag=wx.ALL) sz.Add(self.add_att_button.GetSize()) sz.Add(self.remove_att_button, border=5, flag=wx.ALL) colsizer.Add(sz, flag=wx.ALIGN_CENTER_VERTICAL) sz = wx.BoxSizer(wx.VERTICAL) sz.Add(wx.StaticText(self, wx.ID_ANY, "Available Attributes"), border=5, flag=wx.ALL) sz.Add(self.avail_list, proportion=1, border=5, flag=wx.ALL | wx.EXPAND) colsizer.Add(sz, proportion=1, flag=wx.EXPAND) buttonsizer = wx.BoxSizer(wx.HORIZONTAL) buttonsizer.Add(self.add_button, border=5, flag=wx.ALL) buttonsizer.Add(self.delete_button, border=5, flag=wx.ALL) sizer = wx.BoxSizer(wx.VERTICAL) sizer.Add(buttonsizer, border=5, flag=wx.ALL | wx.ALIGN_LEFT) sizer.Add(colsizer, proportion=1, flag=wx.EXPAND) self.SetSizer(sizer) self.Bind(wx.EVT_BUTTON, self.add_view, self.add_button) self.Bind(wx.EVT_BUTTON, self.delete_view, self.delete_button) self.Bind(wx.EVT_BUTTON, self.add_attribute, self.add_att_button) self.Bind(wx.EVT_BUTTON, self.remove_attribute, self.remove_att_button) self.Bind(wx.EVT_LISTBOX, self.select_view, self.views_list) self.order_box.Bind(wx.EVT_LIST_ITEM_SELECTED, self.select_for_remove) #self.Bind(wx.EVT_LIST_DELETE_ITEM, self.remove_attribute, self.order_box.GetListCtrl()) self.Bind(wx.EVT_LISTBOX, self.select_for_add, self.avail_list) self.Bind(wx.EVT_BUTTON, self.save_changes, self.save_button) self.Bind(events.EVT_REPO_CHANGED, self.on_repository_altered)
def __init__(self, parent): wx.Panel.__init__(self, parent) # create control self.ebox = gizmos.EditableListBox(self, -1, 'title') # bind right-click self.ebox.Bind(wx.EVT_CONTEXT_MENU, self.onEditableListBoxContextMenu)
def __init__(self, parent): #TODO: this guy needs to be resizable! super(CreateMilieu, self).__init__(parent, wx.ID_ANY, 'Create Milieu') self.was_valid = None template_names = sorted(datastore.templates) name_label = wx.StaticText(self, wx.ID_ANY, "Milieu Name") type_label = wx.StaticText(self, wx.ID_ANY, "Based On") path_label = wx.StaticText(self, wx.ID_ANY, "Path to CSV File") curtype = template_names[0] self.name_box = wx.TextCtrl(self, wx.ID_ANY, size=(150, -1), validator=self.name_validator()) self.type_box = wx.ComboBox(self, wx.ID_ANY, value=curtype, choices=template_names, style=wx.CB_DROPDOWN | wx.CB_READONLY, validator=self.content_validator( 'GetValue', 'Template name not specified!', 'Template')) self.path_box = wx.FilePickerCtrl( self, wx.ID_ANY, wildcard='*.csv', message="Select a CSV File that contains data for this milieu", validator=self.content_validator('GetPath', 'Problem with Path Name!', 'Path')) self.order_box = gizmos.EditableListBox(self, wx.ID_ANY, 'Select Field Order ', style=0) #just up/down buttons self.order_box.Strings = datastore.templates[curtype].keys() buttons = self.CreateStdDialogButtonSizer(wx.OK | wx.CANCEL) self.Bind(wx.EVT_COMBOBOX, self.change_template, self.type_box) sizer = wx.GridBagSizer(5, 5) sizer.Add(name_label, pos=(1, 0), span=(2, 1), flag=wx.ALIGN_RIGHT | wx.ALIGN_CENTER_VERTICAL) sizer.Add(type_label, pos=(3, 0), span=(2, 1), flag=wx.ALIGN_RIGHT | wx.ALIGN_CENTER_VERTICAL) sizer.Add(path_label, pos=(5, 0), span=(2, 1), flag=wx.ALIGN_RIGHT | wx.ALIGN_CENTER_VERTICAL) sizer.Add(self.name_box, pos=(1, 1), span=(2, 1), flag=wx.SHAPED | wx.ALIGN_LEFT | wx.ALIGN_CENTER_VERTICAL) sizer.Add(self.type_box, pos=(3, 1), span=(2, 1), flag=wx.ALIGN_LEFT | wx.ALIGN_CENTER_VERTICAL) sizer.Add(self.path_box, pos=(5, 1), span=(2, 1), flag=wx.SHAPED | wx.ALIGN_LEFT | wx.ALIGN_CENTER_VERTICAL) sizer.Add(self.order_box, pos=(0, 2), span=(7, 1), flag=wx.EXPAND | wx.ALL) sizer.Add(buttons, pos=(7, 0), span=(1, 3), flag=wx.EXPAND | wx.ALL) sizer.AddGrowableRow(2) sizer.AddGrowableCol(2) self.SetSizer(sizer) sizer.Fit(self)