def _set_name(self): if not self.widget: return if self.rows_number>0: # add some info, one or two cells if len(self.columns)>=2: compat.ListCtrl_SetStringItem(self.widget, 0,0, "List Control:") compat.ListCtrl_SetStringItem(self.widget, 0,1, self.name) elif self.columns: compat.ListCtrl_SetStringItem(self.widget, 0, 0, "List Control: %s"%self.name)
def add_separator(self, event): "Event handler called when the Add Separator button is clicked" index = self.selected_index + 1 label = '---' if not self.items.GetItemCount(): self._enable_fields() if index < 0: index = self.items.GetItemCount() elif index > 0: label = " " * self.item_level(index - 1) + '---' compat.ListCtrl_SetStringItem(self.items, index, label) compat.ListCtrl_SetStringItem(self.items, index, 1, '---') compat.ListCtrl_SetStringItem(self.items, index, 2, '---') # fix bug 698074 self.items.SetItemState(index, wx.LIST_STATE_SELECTED, wx.LIST_STATE_SELECTED)
def _insert_item(self, index, item): compat.ListCtrl_InsertStringItem(self.items, index, item[0]) for col, value in enumerate(item): if col==0: continue compat.ListCtrl_SetStringItem(self.items, index, col, compat.unicode(value)) # fix bug 698074 self.items.SetItemState(index, wx.LIST_STATE_SELECTED, wx.LIST_STATE_SELECTED)
def on_event_handler_edited(self, event): value = self.handler.GetValue() if not value or self.handler_re.match(value): self.handler.SetBackgroundColour( compat.wx_SystemSettings_GetColour(wx.SYS_COLOUR_WINDOW) ) valid = True else: self.handler.SetBackgroundColour(wx.RED) valid = False self.handler.Refresh() if valid and not self._ignore_events: compat.ListCtrl_SetStringItem(self.items, self.selected_index, self.columns.index("handler"), value) event.Skip()
def _do_move_item(self, event, index, is_down): """internal function used by move_item_up and move_item_down. Returns the new index of the moved item, or None if no change occurred""" self.items.SetFocus() #index = self.selected_index i = index+1 if is_down else index-1 if i < 0 or i>=self.items.GetItemCount(): return None def get(i, j): return self.items.GetItem(i, j).GetText() item = [get(index, j) for j in range(6)] self.items.DeleteItem(index) compat.ListCtrl_InsertStringItem(self.items, i, item[0]) for col,content in enumerate(item): if col==0: continue compat.ListCtrl_SetStringItem(self.items, i,col, content) self._select_item(i, force=True)
def _set_item_string(self, index, col, s): if not isinstance(s, compat.unicode): s = misc.wxstr(s) if isinstance(col, str): col = self.columns.index(col) compat.ListCtrl_SetStringItem(self.items, index, col, s)
def _on_edited(self, event, colname, value, valid=True): if valid and not self._ignore_events: idx = self.columns.index(colname) compat.ListCtrl_SetStringItem(self.items, self.selected_index, idx, value) event.Skip()
def _set_item_string(self, index, col, s): compat.ListCtrl_SetStringItem(self.items, index, col, s)
def on_label_edited(self, event): if not self._ignore_events: value = self.label.GetValue().lstrip() compat.ListCtrl_SetStringItem(self.items, self.selected_index, self.columns.index("label"), value) event.Skip()
def __init__(self, *args, **kwds): # begin wxGlade: SelectArtDialog.__init__ kwds["style"] = kwds.get( "style", 0) | wx.DEFAULT_DIALOG_STYLE | wx.RESIZE_BORDER wx.Dialog.__init__(self, *args, **kwds) self.SetSize((300, 600)) self.SetTitle("ART selector") sizer_1 = wx.BoxSizer(wx.VERTICAL) label_1 = wx.StaticText(self, wx.ID_ANY, "Select row and hit OK or Enter:") sizer_1.Add(label_1, 0, wx.ALL, 8) self.art_names = [ "NEW", "FILE_OPEN", "FILE_SAVE", "FILE_SAVE_AS", "NEW_DIR", "FOLDER_OPEN", "CUT", "COPY", "PASTE", "UNDO", "REDO", "PLUS", "MINUS", "CLOSE", "QUIT", "PRINT", "DELETE", "HELP", "FIND", "FIND_AND_REPLACE", "ADD_BOOKMARK", "DEL_BOOKMARK", "GO_FORWARD", "GO_BACK", "GO_UP", "GO_DOWN", "GO_HOME", "GOTO_FIRST", "GOTO_LAST", "GO_TO_PARENT", "GO_DIR_UP", "LIST_VIEW", "REPORT_VIEW", "NORMAL_FILE", "EXECUTABLE_FILE", "FOLDER", "HELP_BOOK", "HELP_FOLDER", "HELP_PAGE", "HELP_SIDE_PANEL", "HELP_SETTINGS", "TICK_MARK", "CROSS_MARK", "MISSING_IMAGE", "HARDDISK", "FLOPPY", "CDROM", "ERROR", "QUESTION", "WARNING", "INFORMATION", "TIP" ] # not for 2.8: "GOTO_FIRST", "GOTO_LAST", "PLUS", "MINUS" self.art_list = wx.ImageList(16, 16) self.listctrl = wx.ListCtrl(self, wx.ID_ANY, style=wx.LC_HRULES | wx.LC_REPORT | wx.LC_VRULES) self.listctrl.InsertColumn(0, "Image", format=wx.LIST_FORMAT_LEFT, width=50) self.listctrl.InsertColumn(1, "Name", format=wx.LIST_FORMAT_LEFT, width=200) for i, name in enumerate(self.art_names): art_id = getattr(wx, "ART_%s" % name, wx.ART_MISSING_IMAGE) bmp = wx.ArtProvider.GetBitmap(art_id, wx.ART_TOOLBAR, (16, 16)) self.art_list.Add(bmp) self.listctrl.SetImageList(self.art_list, wx.IMAGE_LIST_SMALL) for i, name in enumerate(self.art_names): compat.ListCtrl_InsertImageItem(self.listctrl, i, i) # i is index into ImageList compat.ListCtrl_SetStringItem(self.listctrl, i, 1, name) #index = self.list.InsertItem(self.list.GetItemCount(), data[0], self.idx1) sizer_1.Add(self.listctrl, 1, wx.ALL | wx.EXPAND, 4) sizer_3 = wx.BoxSizer(wx.HORIZONTAL) sizer_1.Add(sizer_3, 0, wx.ALL | wx.EXPAND, 4) label_2 = wx.StaticText(self, wx.ID_ANY, "Width") sizer_3.Add(label_2, 0, wx.ALIGN_CENTER_VERTICAL | wx.LEFT, 4) self.spin_width = wx.SpinCtrl(self, wx.ID_ANY, "24", min=1, max=100) sizer_3.Add(self.spin_width, 0, wx.ALIGN_CENTER_VERTICAL | wx.ALL, 3) label_3 = wx.StaticText(self, wx.ID_ANY, "Height") sizer_3.Add(label_3, 0, wx.ALIGN_CENTER_VERTICAL | wx.LEFT, 6) self.spin_height = wx.SpinCtrl(self, wx.ID_ANY, "24", min=1, max=100) sizer_3.Add(self.spin_height, 0, wx.ALIGN_CENTER_VERTICAL | wx.LEFT, 3) label_4 = wx.StaticText(self, wx.ID_ANY, "pixels") sizer_3.Add(label_4, 0, wx.ALIGN_CENTER_VERTICAL | wx.LEFT, 6) static_line_1 = wx.StaticLine(self, wx.ID_ANY) sizer_1.Add(static_line_1, 0, wx.EXPAND, 0) sizer_2 = wx.StdDialogButtonSizer() sizer_1.Add(sizer_2, 0, wx.ALIGN_RIGHT | wx.ALL, 8) self.button_OK = wx.Button(self, wx.ID_OK, "") self.button_OK.SetDefault() sizer_2.AddButton(self.button_OK) self.button_CANCEL = wx.Button(self, wx.ID_CANCEL, "") sizer_2.AddButton(self.button_CANCEL) sizer_2.Realize() self.SetSizer(sizer_1) self.SetAffirmativeId(self.button_OK.GetId()) self.SetEscapeId(self.button_CANCEL.GetId()) self.Layout() if compat.version[0] == 2: sizer_3.GetItem(self.spin_width).SetMinSize((60, -1)) sizer_3.GetItem(self.spin_height).SetMinSize((60, -1)) self.Bind(wx.EVT_LIST_ITEM_ACTIVATED, lambda evt: self.EndModal(wx.ID_OK), self.listctrl)