def __init__(self, parent, evtsrc): self.evtsrc = evtsrc wx.ListCtrl.__init__(self, parent, -1, style=wx.LC_REPORT) self.InsertColumn(0, 'Level') self.InsertColumn(1, 'Time', wx.LIST_FORMAT_RIGHT) self.InsertColumn(2, 'Message') self.levels = ['ERROR', 'WARNING', 'INFO'] self.status = None self.imagelist = wx.ImageList(16, 16) self.imagelist.AddWithColourMask(wx.EmptyBitmap(16, 16), wx.BLACK) self.icons = {} for i in self.levels: image = wx.Image(icons.getPath('%s.png' % i.lower())) bitmap = wx.BitmapFromImage(image) self.icons[i] = self.imagelist.Add(bitmap) self.SetImageList(self.imagelist, wx.IMAGE_LIST_SMALL) self.data = 0 self.itemDataMap = {} ColumnSorterMixin.__init__(self, 3) self.Bind(wx.EVT_CHAR, self.onChar) self.Bind(wx.EVT_LIST_ITEM_ACTIVATED, self.onListItemActivated) self.Bind(EVT_ADD_MESSAGE, self.onAddMessage)
def __init__(self, parent, ID, n_cols=3, pos=wx.DefaultPosition, size=wx.DefaultSize, style=0): ulc.UltimateListCtrl.__init__(self, parent, ID, pos, size, agwStyle=style) ListCtrlAutoWidthMixin.__init__(self) ColumnSorterMixin.__init__(self, n_cols) self.data = {}
def itemDataMap(self, value): if self._itemDataMap == {}: self._itemDataMap = value ColumnSorterMixin.__init__(self, 6) self.Bind(wx.EVT_LIST_COL_CLICK, self.OnColClick, self.expr_list) else: self._itemDataMap = value
def __init__(self, parent, num_cat): wx.Panel.__init__(self, parent, wx.ID_ANY) self.my_category = ks.categories[num_cat] cols = ["Name"] + self.my_category["attributes"] + ["Comment"] self.ctrl_attributes_spreadsheet = wx.ListCtrl(self, style=wx.LC_REPORT) for i, s in enumerate(cols): self.ctrl_attributes_spreadsheet.InsertColumn(i + 1, s) self.n_columns = len(cols) ColumnSorterMixin.__init__(self, self.n_columns) self.itemDataMap = {} self.column_min_width = [] for i in range(self.ctrl_attributes_spreadsheet.GetColumnCount()): self.ctrl_attributes_spreadsheet.SetColumnWidth( i, wx.LIST_AUTOSIZE_USEHEADER) self.column_min_width.append( self.ctrl_attributes_spreadsheet.GetColumnWidth(i)) self.main_sizer = wx.BoxSizer(wx.VERTICAL) self.main_sizer.Add(self.ctrl_attributes_spreadsheet, proportion=1, flag=wx.EXPAND | wx.ALL, border=10) self.SetSizer(self.main_sizer)
def __init__(self, parent, columns): wx.ListCtrl.__init__(self, parent, -1, style=wx.LC_REPORT) ColumnSorterMixin.__init__(self, columns) self.SetFont(wx.Font(16, wx.SWISS, wx.NORMAL, wx.NORMAL)) self.current = None self.parent = parent self.R_MOUSE = 0 self.InsertColumn(0, u"姓名") self.InsertColumn(1, u"手机号码") self.InsertColumn(2, u"地址") self.SetColumnWidth(0, 200) self.SetColumnWidth(1, 200) self.SetColumnWidth(2, 200) self.Bind(wx.EVT_LIST_ITEM_SELECTED, self.OnSelect) self.Bind(wx.EVT_LIST_ITEM_DESELECTED, self.OnDeSelect) self.Bind(wx.EVT_LIST_ITEM_RIGHT_CLICK, self.OnRightClick) self.data = None self.itemDataMap = {} self.refresh_list() self.il = wx.ImageList(16, 16) a={"sm_up":"GO_UP","sm_dn":"GO_DOWN"} for k,v in a.items(): s="self.%s= self.il.Add(wx.ArtProvider_GetBitmap(wx.ART_%s,wx.ART_TOOLBAR,(16,16)))" % (k,v) exec(s) self.SetImageList(self.il, wx.IMAGE_LIST_SMALL)
def __init__(self, parent, id): wx.ListCtrl.__init__(self, parent, id, style=wx.LC_REPORT) ListCtrlAutoWidthMixin.__init__(self) ColumnSorterMixin.__init__(self, 6) self.itemDataMap = {} self.select = 0 self.mark_green_id = wx.NewId() self.mark_red_id = wx.NewId() self.open_file_id = wx.NewId() self.open_dir_id = wx.NewId() self.clear_id = wx.NewId() self.copy_id = wx.NewId() self.move_id = wx.NewId() self.amazon_id = wx.NewId() self.douban_id = wx.NewId() self.InsertColumn(0, "Name", width=440) self.InsertColumn(1, "Size", format=wx.LIST_FORMAT_RIGHT, width=100) self.InsertColumn(2, "Date Modified", format=wx.LIST_FORMAT_RIGHT, width=210) self.InsertColumn(3, "Directory", width=400) self.Bind(wx.EVT_LIST_ITEM_SELECTED, self.onItemSelected) self.Bind(wx.EVT_LIST_ITEM_DESELECTED, self.onItemDeselected) self.Bind(wx.EVT_LIST_ITEM_ACTIVATED, self.onOpenItem)
def __init__(self, parent, data): wx.ListCtrl.__init__(self, parent, -1, style=wx.LC_REPORT) # the column sorter accepts one argument: number of columns to be sorted ColumnSorterMixin.__init__(self, len(data)) # the data must be a dictionary self.itemDataMap = data
def createWidgets(self): self.listCtrl = wxskinListCtrl(self, ID_LISTCTRL, style=wx.LC_REPORT | wx.SUNKEN_BORDER | wx.LC_SINGLE_SEL | wx.LC_VRULES | wx.LC_HRULES) self.listCtrl.InsertColumn(0, "Name") self.listCtrl.InsertColumn(1, "Number") ColumnSorterMixin.__init__(self, 2) self.currentItem = 0 wx.EVT_SIZE(self, self.OnSize) wx.EVT_LIST_ITEM_SELECTED(self, ID_LISTCTRL, self.OnItemSelected) wx.EVT_LIST_ITEM_ACTIVATED(self, ID_LISTCTRL, self.OnItemActivated) wx.EVT_CLOSE(self, self.closeWindow) wx.EVT_LEFT_DCLICK(self.listCtrl, self.OnPopupEdit) wx.EVT_RIGHT_DOWN(self.listCtrl, self.OnRightDown) # for wxMSW and wxGTK respectively wx.EVT_COMMAND_RIGHT_CLICK(self.listCtrl, ID_LISTCTRL, self.OnRightClick) wx.EVT_RIGHT_UP(self.listCtrl, self.OnRightClick)
def __init__(self, parent, data): wx.ListCtrl.__init__(self, parent, style=wx.LC_REPORT | wx.LC_AUTOARRANGE | wx.LC_SORT_ASCENDING) ColumnSorterMixin.__init__(self, len(data)) self.itemDataMap = data
def __init__(self, parent, ID, headers, placeholder=None): AutoWidthListCtrl.__init__(self, parent, ID, wx.DefaultPosition, wx.DefaultSize, wx.LC_REPORT | wx.LC_SINGLE_SEL) self.headers = headers # load in the tiny arrow images that ColumnSorterMixin draws # in the headers of sorted columns # WARNING: this segfaults if imageList is a local variable. # Maybe a wxPython bug... imageList falls out of scope and gets deleted prematurely? self.imageList = wx.ImageList(16, 16, True) cwd = os.getcwd() file1 = cwd + "/londonlaw/guiclient/images/smalluparrow.png" file2 = cwd + "/londonlaw/guiclient/images/smalldownarrow.png" image = wx.Image(file1, wx.BITMAP_TYPE_ANY) image.SetMaskColour(255, 255, 255) self.smallUpArrow = self.imageList.Add(wx.Bitmap(image)) image = wx.Image(file2, wx.BITMAP_TYPE_ANY) image.SetMaskColour(255, 255, 255) self.smallDnArrow = self.imageList.Add(wx.Bitmap(image)) self.SetImageList(self.imageList, wx.IMAGE_LIST_SMALL) self.placeholder = placeholder # data from the server should be formatted as # ("game name", "game type", "game status", "number of players") if self.placeholder: self.itemDataMap = {0: self.placeholder} else: self.itemDataMap = {} self.populateList() # this must be called *after* the list has been created ColumnSorterMixin.__init__(self, len(self.headers))
def __init__(self, parent, conn, cur): wx.Frame.__init__(self, parent, -1, "MDB") self.set_icon() self.conn = conn self.cur = cur self.db_thread = None self.upd_thread = None self.Bind(wx_signal.EVT_FILE_DONE, self.on_file_done) self.Bind(wx_signal.EVT_SHOW_MSG, self.on_show_msg) self.Bind(wx.EVT_CLOSE, self.on_close) self.add_menu() self.add_sb() self.total_rows = 0 self.sizer = wx.BoxSizer(wx.VERTICAL) self.SetSizer(self.sizer) self.display_width = wx.GetDisplaySize()[0] self.itemDataMap = {} self.lst = self.build_list() ColumnSorterMixin.__init__(self, 6) self.sizer.Add(self.lst, 1, wx.EXPAND) self.Layout()
def open_folder(self, evt): dlg = wx.DirDialog(self, "Choose a directory:", style=wx.DD_DEFAULT_STYLE | wx.DD_DIR_MUST_EXIST #| wx.DD_CHANGE_DIR ) if dlg.ShowModal() == wx.ID_OK: target_dir = dlg.GetPath() else: return dlg.Destroy() #create new lst self.itemDataMap.clear() self.lst.Destroy() self.lst = self.build_list() ColumnSorterMixin.__init__(self, 6) self.sizer.Add(self.lst, 1, wx.EXPAND) self.Layout() self.Refresh() # switch to this dir self.total_rows = 0 self.update_sb() os.chdir(target_dir) files_with_data, files_wo_data = process_dir('.', self.conn, self.cur) for f in files_with_data: self.add_row(f) if len(files_wo_data) > 0: start_dbbuilder(self, files_wo_data)
def __init__(self, parent, id=wx.ID_ANY,extension_list = None): #print 'MyListCtrl init called' self.parent = parent wx.ListCtrl.__init__(self, parent, id, style=wx.BORDER_RAISED|wx.LC_REPORT) if extension_list==None: raise Exception('extension list not specified') self.extension_list = extension_list numcolstosort=4 ColumnSorterMixin.__init__(self,numcolstosort) #images = ['images/empty.png', 'images/folder.png', 'images/source_py.png', 'images/image.png', 'images/pdf.png', 'images/up16.png'] self.InsertColumn(0, 'Name') self.InsertColumn(1, 'Ext') self.InsertColumn(2, 'Size', wx.LIST_FORMAT_RIGHT) self.InsertColumn(3, 'Modified') self.SetColumnWidth(0, 220) self.SetColumnWidth(1, 70) self.SetColumnWidth(2, 100) self.SetColumnWidth(3, 420) # self.il = wx.ImageList(16, 16) # for i in images: # self.il.Add(wx.Bitmap(i)) #self.SetImageList(self.il, wx.IMAGE_LIST_SMALL) self.all_results_list = [] self.update() self.Bind(wx.EVT_LIST_ITEM_ACTIVATED, self.OnDoubleClick, id=id)
def __init__(self, parent, id, pos=None, size=None, style=None, top=None): wx.ListCtrl.__init__(self, parent, id, style=wx.LC_REPORT | wx.SIMPLE_BORDER | wx.LC_HRULES) self.top = top self.hits_by_index = {} self.eips = [] self.last_focused = None ListCtrlAutoWidthMixin.__init__(self) self.items_sort_map = {} self.itemDataMap = self.items_sort_map ColumnSorterMixin.__init__(self, 7) self.InsertColumn(0, "#") self.InsertColumn(1, "Time") self.InsertColumn(2, "EIP") self.InsertColumn(3, "TID") self.InsertColumn(4, "Module") self.InsertColumn(5, "Func?") self.InsertColumn(6, "Tag")
def __init__(self, parent, id, title): #This will initiate with an id and a title wx.Frame.__init__(self, parent, id, title, size=(550, 300)) hbox = wx.BoxSizer(wx.HORIZONTAL) #These are layout items panel = wx.Panel(self, -1) #These are layout items self.FileList = MyListCtrl(panel) #This builds the list control box self.FileList.InsertColumn(0,'Filename',width=140) #Here we build the columns self.FileList.InsertColumn(1,'Date Created',width=140) self.FileList.InsertColumn(2,'Date Modified',width=140) self.FileList.InsertColumn(3,'Size',wx.LIST_FORMAT_RIGHT, width=40) ColumnSorterMixin.__init__(self, 4) # data map used by sorting, needs to get update on drop self.itemDataMap = {} # up down images stuff self.il = wx.ImageList(16, 16) self.idx1 = self.il.Add(images.Smiles.GetBitmap()) self.sm_up = self.il.Add(images.SmallUpArrow.GetBitmap()) self.sm_dn = self.il.Add(images.SmallDnArrow.GetBitmap()) self.FileList.SetImageList(self.il, wx.IMAGE_LIST_SMALL) DropTarget = FileDrop(self.FileList) #Establish the listctrl as a drop target self.FileList.SetDropTarget(DropTarget) #Make drop target. hbox.Add(self.FileList, 1, wx.EXPAND) panel.SetSizer(hbox) self.Show(True)
def __init__(self, parent, id=-1, style=wx.LC_REPORT | wx.ALWAYS_SHOW_SB, size=(700, 400)): wx.ListCtrl.__init__(self, parent, id=-1, style=wx.LC_REPORT | wx.ALWAYS_SHOW_SB ,size=(700, 400)) ListCtrlAutoWidthMixin.__init__(self) TextEditMixin.__init__(self) if parent.key == 'Teacher': ColumnSorterMixin.__init__(self, 4) else: ColumnSorterMixin.__init__(self, 3)
def __init__(self, parent): wx.ListCtrl.__init__(self, parent, -1, style=wx.LC_REPORT) ColumnSorterMixin.__init__(self, 1) ListCtrlAutoWidthMixin.__init__(self) self.InsertColumn(0, _('Filepath')) self.itemDataMap = {}
def __init__(self, parent, output): if not output: output = {1: ('Pyroxeres', 183.63, 222.59, '0', '0', '0'), 2: ('Kernite', 187.02, 210.63, '0', '0', '0'), 3: ('Veldspar', 161.2, 159.46, '0', '0', '0'), 4: ('Plagioclase', 159.74, 190.96, '0', '0', '0'), 5: ('Hemorphite', 544.28, 306.4, '0', '0', '0'), 6: ('Spodumain', 373.27, 217.27, '0', '0', '0'), 7: ('Crokite', 252.1, 301.74, '0', '0', '0'), 8: ('Arkonor', 241.69, 348.98, '0', '0', '0'), 9: ('Gneiss', 301.02, 252.84, '0', '0', '0'), 10: ('Jaspet', 223.81, 276.76, '0', '0', '0'), 11: ('Hedbergite', 266.84, 390.96, '0', '0', '0'), 12: ('Dark Ochre', 1534.01, 270.89, '0', '0', '0'), 13: ('Scordite', 182.6, 197.74, '0', '0', '0'), 14: ('Bistot', 249.75, 254.24, '0', '0', '0'), 15: ('Omber', 165.12, 159.86, '0', '0', '0'), 16: ('Mercoxit', 540.87, 493.66, '0', '0', '0')} wx.ListCtrl.__init__(self, parent, -1, style=wx.LC_REPORT, size=(580,-1)) ColumnSorterMixin.__init__(self, len(output)) self.itemDataMap = output
def __init__(self, parent): wx.ListCtrl.__init__(self, parent, -1, style=wx.LC_REPORT|wx.LC_VIRTUAL|wx.LC_HRULES|wx.LC_VRULES) ColumnSorterMixin.__init__(self,7) # self.itemDataMap = nacsnif self.Bind(wx.EVT_LIST_ITEM_SELECTED, self.OnItemSelected) self.Bind(wx.EVT_LIST_ITEM_ACTIVATED, self.OnItemActivated) self.Bind(wx.EVT_LIST_ITEM_DESELECTED, self.OnItemDeselected) self.Bind(wx.EVT_LIST_COL_CLICK, self.OnColClick)
def __init__(self, parent, numColumns, style = wx.LC_REPORT|wx.LC_NO_HEADER, tooltip = True): wx.ListCtrl.__init__(self, parent, -1, style=style) ColumnSorterMixin.__init__(self, numColumns) ListCtrlAutoWidthMixin.__init__(self) self.itemDataMap = {} if tooltip: self.Bind(wx.EVT_MOTION, self.OnMouseMotion)
def __init__(self, parent): wx.ListCtrl.__init__(self, parent, -1, style=wx.LC_REPORT) #The ColumnSorterMixin accepts one argument. It is the number of columns to be sorted. ColumnSorterMixin.__init__(self, len(actresses)) #We must map our data to be displayed in a list control to the itemDataMap attribute. #The data must be in a dictionary data type. self.itemDataMap = actresses
def __init__(self, parent, D): """ Constructor. """ wx.ListCtrl.__init__(self, parent, -1, style=wx.LC_REPORT | wx.LC_VIRTUAL | wx.LC_HRULES | wx.LC_VRULES) ### local copy self.parent = parent ### adding some art self.il = wx.ImageList(16, 16) a = { "sm_up": "GO_UP", "sm_dn": "GO_DOWN", "idx1": "CROSS_MARK", "idx2": "TICK_MARK" } ArtProvider = "wx.ArtProvider_GetBitmap" if wx.VERSION_STRING < '4.0' else "wx.ArtProvider.GetBitmap" for k, v in a.items(): s = "self.%s= self.il.Add(%s(wx.ART_%s,wx.ART_TOOLBAR,(16,16)))" % ( k, ArtProvider, v) exec(s) self.SetImageList(self.il, wx.IMAGE_LIST_SMALL) ### building the columns self.InsertColumn(0, _('Name'), wx.LIST_FORMAT_CENTRE, width=120) self.InsertColumn(1, _('Error'), wx.LIST_FORMAT_CENTRE, width=450) self.InsertColumn(2, _('Line'), wx.LIST_FORMAT_CENTRE, width=80) self.InsertColumn(3, _('Authors'), wx.LIST_FORMAT_CENTRE, width=80) self.InsertColumn(4, _('Path'), wx.LIST_FORMAT_CENTRE, width=120) ### These two should probably be passed to init more cleanly ### setting the numbers of items = number of elements in the dictionary self.itemDataMap = D self.itemIndexMap = list(D.keys()) self.SetItemCount(len(D)) ### mixins ListCtrlAutoWidthMixin.__init__(self) ColumnSorterMixin.__init__(self, self.GetColumnCount()) ### sort by genre (column 2), A->Z ascending order (1) self.SortListItems(2, 0) ### events binding self.Bind(wx.EVT_LIST_ITEM_SELECTED, self.OnItemSelected) self.Bind(wx.EVT_LIST_ITEM_ACTIVATED, self.OnItemActivated) self.Bind(wx.EVT_LIST_ITEM_DESELECTED, self.OnItemDeselected) self.Bind(wx.EVT_LIST_COL_CLICK, self.OnColClick) self.Bind(wx.EVT_LEFT_DCLICK, self.OnDoubleClick) self.Bind(wx.EVT_LEFT_DOWN, self.OnClick) self.Bind(wx.EVT_LIST_ITEM_RIGHT_CLICK, self.OnRightClick)
def __init__(self, parent,col,panelType): wx.ListCtrl.__init__(self, parent, -1, style=wx.LC_REPORT | wx.SUNKEN_BORDER | wx.LC_SINGLE_SEL) self.SetSingleStyle(wx.LC_HRULES, True) ColumnSorterMixin.__init__(self, col) ListCtrlAutoWidthMixin.__init__(self) if panelType==0: self.itemDataMap = PastRecordings elif panelType==1: self.itemDataMap = FutureRecordings
def __init__(self, parent, colnum): wx.ListCtrl.__init__(self, parent, -1, style=wx.LC_REPORT) #initialises ListCtrl CheckListCtrlMixin.__init__(self) #initialises mixin check box class ColumnSorterMixin.__init__( self, colnum ) #initialises mixin column sorter class with initial number of columns =colnum # self.itemDataMap = { } #needed by ColumnSorterMixin for sorting the columns. A dictionary with a tuple of values for each column indexed using the data stored in each keys entry
def __init__(self, parent, id): wx.ListCtrl.__init__(self, parent, id, style=wx.LC_REPORT) ListCtrlAutoWidthMixin.__init__(self) ColumnSorterMixin.__init__(self, 6) self.itemDataMap = {} self.InsertColumn(0, "Name", width=540) self.InsertColumn(1, "Size", format=wx.LIST_FORMAT_RIGHT, width=100) self.InsertColumn(2, "Date Modified", format=wx.LIST_FORMAT_RIGHT, width=210) self.InsertColumn(3, "Directory", width=240)
def __init__(self, mode): self.mode = mode wx.ListCtrl.__init__(self, mode, style=wx.LC_REPORT) ColumnAutoSizeMixin.__init__(self) self.mode.createColumns(self) self.itemDataMap = {} ColumnSorterMixin.__init__(self, self.GetColumnCount()) # Assign icons for up and down arrows for column sorter getIconStorage().assignList(self)
def __init__(self, parent): wx.ListCtrl.__init__(self, parent, -1, style=wx.LC_REPORT) ColumnSorterMixin.__init__(self, 4) ListCtrlAutoWidthMixin.__init__(self) self.InsertColumn(0, _('Date')) self.InsertColumn(1, _('Time')) self.InsertColumn(2, _('Title')) self.InsertColumn(3, _('Description')) self.itemDataMap = {}
def __init__(self, parent): wx.ListCtrl.__init__(self, parent, -1, style=wx.LC_REPORT|wx.LC_SINGLE_SEL) self.InsertColumn(0, 'Type') self.InsertColumn(1, 'Format') self.InsertColumn(2, 'Date Format') self.data = 0 self.itemDataMap = {} ColumnSorterMixin.__init__(self, 3) self.handlers = {}
def __init__(self, parent=None, id=-1, title="Sort Test"): wx.Frame.__init__(self, parent, id, title) numColumns = 3 loadWindowPos(self) self.Bind(wx.EVT_CLOSE, self.on_close) self.list = wx.ListCtrl(self, id, style=wx.LC_REPORT) ColumnSorterMixin.__init__(self, numColumns) cols = ["Name", "Address", "Phone", "Age"] firsts = "Adam Laura Sara Danielle Dave Kevin Joe Mike Chris Aaron Steve Mary Sally".split( ) lasts = "Clinton Bush Adams Washington Garfield Ford Kennedy Reagan Taft".split( ) stNames = "Fake Apple Banana Orange Blueberry Mango".split() sts = "Street Avenue Drive Bouelevard".split() # return a random element from a list def rnd(lst): return lst[randint(0, len(lst) - 1)] # generate a bunch of random self.itemDataMap = {} for i in range(500): name = rnd(firsts) + " " + rnd(lasts) address = str(randint(1, 1000)) + " " + rnd(stNames) + " " + rnd(sts) phone = "%d-%d-%d" % (randint(100, 999), randint( 100, 999), randint(1000, 9999)) age = randint(1, 100) self.itemDataMap[i] = [name, address, phone, age] itemDataMap = self.itemDataMap keys = itemDataMap.keys() [self.list.InsertColumn(i, cols[i]) for i in range(len(cols))] for i in keys: o = itemDataMap[i] self.list.InsertStringItem(i, o[0]) for c in range(len(o)): self.list.SetStringItem(i, c, str(o[c])) self.list.SetItemData(i, i) self.SetColumnCount(len(cols))
def __init__(self, parent): wx.Panel.__init__(self, parent, -1, style=wx.WANTS_CHARS) tID = wx.NewId() self.il = wx.ImageList(16, 16) self.idx1 = self.il.Add(images.getSmilesBitmap()) self.sm_up = self.il.Add(images.getSmallUpArrowBitmap()) self.sm_dn = self.il.Add(images.getSmallDnArrowBitmap()) self.file1Idx = self.il.Add(images.getFile1Bitmap()) self.list = MyListCtrl( self, tID, style=wx.LC_REPORT | wx.SUNKEN_BORDER | wx.LC_EDIT_LABELS #| wx.LC_NO_HEADER #| wx.LC_VRULES | wx.LC_HRULES ) self.list.SetImageList(self.il, wx.IMAGE_LIST_SMALL) self.PopulateList() # Now that the list exists we can init the other base class, # see wxPython/lib/mixins/listctrl.py ColumnSorterMixin.__init__(self, 3) #self.SortListItems(0, True) EVT_SIZE(self, self.OnSize) EVT_LIST_ITEM_SELECTED(self, tID, self.OnItemSelected) EVT_LIST_ITEM_DESELECTED(self, tID, self.OnItemDeselected) EVT_LIST_ITEM_ACTIVATED(self, tID, self.OnItemActivated) EVT_LIST_DELETE_ITEM(self, tID, self.OnItemDelete) EVT_LIST_COL_CLICK(self, tID, self.OnColClick) EVT_LIST_COL_RIGHT_CLICK(self, tID, self.OnColRightClick) EVT_LIST_COL_BEGIN_DRAG(self, tID, self.OnColBeginDrag) EVT_LIST_COL_DRAGGING(self, tID, self.OnColDragging) EVT_LIST_COL_END_DRAG(self, tID, self.OnColEndDrag) EVT_LIST_BEGIN_LABEL_EDIT(self, tID, self.OnBeginEdit) EVT_LEFT_DCLICK(self.list, self.OnDoubleClick) EVT_RIGHT_DOWN(self.list, self.OnRightDown) # for wxMSW EVT_COMMAND_RIGHT_CLICK(self.list, tID, self.OnRightClick) # for wxGTK EVT_RIGHT_UP(self.list, self.OnRightClick)
def __init__(self, parent, id, pos=None, size=None, style=None, top=None): wx.ListCtrl.__init__(self, parent, id, style=wx.LC_REPORT | wx.SIMPLE_BORDER | wx.LC_HRULES ) self.top = top self.selected_pid = 0 self.selected_proc = None ListCtrlAutoWidthMixin.__init__(self) self.items_sort_map = {} self.itemDataMap = self.items_sort_map ColumnSorterMixin.__init__(self, 2) self.InsertColumn(0, "PID") self.InsertColumn(1, "Process")
def __init__(self, *args, **kwargs): #if 'max_columns' in kwargs: max_columns = kwargs.pop('max_columns') wx.ListCtrl.__init__(self, *args, **kwargs) # Now that the list exists we can init the other base class, # see wxPython/lib/mixins/listctrl.py ColumnSorterMixin.__init__(self, max_columns) # Perform init for AutoWidth (resizes the last column to take up # the remaining display width) ListCtrlAutoWidthMixin.__init__(self) # maps for PyData support (like TreeCtrl) self._py_data_map = {} self._wx_data_map = {}
def __init__(self, parent): wx.ListCtrl.__init__(self, parent, -1, style=wx.LC_REPORT | wx.LC_VIRTUAL) ColumnSorterMixin.__init__(self, 3) ListCtrlAutoWidthMixin.__init__(self) self.itemDataMap = {} self.itemIndexMap = self.itemDataMap.keys() self.lookupDict = {} self.ascending = False self.Bind(wx.EVT_LIST_ITEM_SELECTED, self.OnItemSelected) self.Bind(wx.EVT_LIST_ITEM_ACTIVATED, self.OnItemActivated) self.Bind(wx.EVT_LIST_ITEM_DESELECTED, self.OnItemDeselected) self.Bind(wx.EVT_LIST_COL_CLICK, self.OnColClick)
def __init__(self, parent, id=-1, style=wx.LC_REPORT | wx.ALWAYS_SHOW_SB, size=(700, 400)): wx.ListCtrl.__init__(self, parent, id=-1, style=wx.LC_REPORT | wx.ALWAYS_SHOW_SB, size=(700, 400)) ListCtrlAutoWidthMixin.__init__(self) TextEditMixin.__init__(self) if parent.key == 'Teacher': ColumnSorterMixin.__init__(self, 4) else: ColumnSorterMixin.__init__(self, 3)
def __init__(self, parent, D): """ Constructor. """ wx.ListCtrl.__init__( self, parent, -1, style=wx.LC_REPORT|wx.LC_VIRTUAL|wx.LC_HRULES|wx.LC_VRULES) ### local copy self.parent = parent ### adding some art self.il = wx.ImageList(16, 16) a={"sm_up":"GO_UP","sm_dn":"GO_DOWN","idx1":"CROSS_MARK","idx2":"TICK_MARK"} ArtProvider = "wx.ArtProvider_GetBitmap" if wx.VERSION_STRING < '4.0' else "wx.ArtProvider.GetBitmap" for k,v in a.items(): s="self.%s= self.il.Add(%s(wx.ART_%s,wx.ART_TOOLBAR,(16,16)))" % (k,ArtProvider,v) exec(s) self.SetImageList(self.il, wx.IMAGE_LIST_SMALL) ### building the columns self.InsertColumn(0, _('Name'), wx.LIST_FORMAT_CENTRE, width=120) self.InsertColumn(1, _('Error'), wx.LIST_FORMAT_CENTRE, width=450) self.InsertColumn(2, _('Line'), wx.LIST_FORMAT_CENTRE, width=80) self.InsertColumn(3, _('Authors'), wx.LIST_FORMAT_CENTRE, width=80) self.InsertColumn(4, _('Path'), wx.LIST_FORMAT_CENTRE, width=120) ### These two should probably be passed to init more cleanly ### setting the numbers of items = number of elements in the dictionary self.itemDataMap = D self.itemIndexMap = D.keys() self.SetItemCount(len(D)) ### mixins ListCtrlAutoWidthMixin.__init__(self) ColumnSorterMixin.__init__(self, self.GetColumnCount()) ### sort by genre (column 2), A->Z ascending order (1) self.SortListItems(2, 0) ### events binding self.Bind(wx.EVT_LIST_ITEM_SELECTED, self.OnItemSelected) self.Bind(wx.EVT_LIST_ITEM_ACTIVATED, self.OnItemActivated) self.Bind(wx.EVT_LIST_ITEM_DESELECTED, self.OnItemDeselected) self.Bind(wx.EVT_LIST_COL_CLICK, self.OnColClick) self.Bind(wx.EVT_LEFT_DCLICK, self.OnDoubleClick) self.Bind(wx.EVT_LEFT_DOWN, self.OnClick) self.Bind(wx.EVT_LIST_ITEM_RIGHT_CLICK, self.OnRightClick)
def __init__(self, parent=None, id=-1, title="Sort Test"): wx.Frame.__init__(self, parent, id, title) numColumns = 3 loadWindowPos(self) self.Bind(wx.EVT_CLOSE, self.on_close) self.list=wx.ListCtrl(self,id, style=wx.LC_REPORT) ColumnSorterMixin.__init__(self, numColumns) cols = ["Name", "Address", "Phone", "Age"] firsts = "Adam Laura Sara Danielle Dave Kevin Joe Mike Chris Aaron Steve Mary Sally".split() lasts = "Clinton Bush Adams Washington Garfield Ford Kennedy Reagan Taft".split() stNames = "Fake Apple Banana Orange Blueberry Mango".split() sts = "Street Avenue Drive Bouelevard".split() # return a random element from a list def rnd(lst): return lst[randint(0,len(lst)-1)] # generate a bunch of random self.itemDataMap = {} for i in range(500): name = rnd(firsts) + " " + rnd(lasts) address = str(randint(1,1000)) + " " + rnd(stNames) + " " + rnd(sts) phone = "%d-%d-%d" % (randint(100,999), randint(100,999), randint(1000,9999)) age = randint(1,100) self.itemDataMap[i] = [name,address,phone,age] itemDataMap = self.itemDataMap keys = itemDataMap.keys() [self.list.InsertColumn(i, cols[i]) for i in range(len(cols))] for i in keys: o = itemDataMap[i] self.list.InsertStringItem(i, o[0]) for c in range(len(o)): self.list.SetStringItem(i,c,str(o[c])) self.list.SetItemData(i, i) self.SetColumnCount(len(cols))
def __init__(self, aParent, aResource): if aResource.rules: rules = wx.LC_HRULES | wx.LC_VRULES else: rules = 0 self._rules = aResource.rules self._maxColumns = aResource.maxColumns self._autoresize = 1 wx.ListCtrl.__init__( self, aParent, widget.makeNewId(aResource.id), aResource.position, aResource.size, #aResource.items, style = rules | wx.LC_REPORT | \ wx.NO_FULL_REPAINT_ON_RESIZE | wx.CLIP_SIBLINGS, name = aResource.name ) widget.Widget.__init__(self, aParent, aResource) self.itemDataMap = {} # Now that the list exists we can init the other base class, # see wxPython/lib/mixins/listctrl.py ColumnSorterMixin.__init__(self, self._maxColumns) # Perform init for AutoWidth (resizes the last column to take up # the remaining display width) ListCtrlAutoWidthMixin.__init__(self) #if aResource.selected != "" and aResource.selected : # self._setSelection( aResource.selected ) # After creation we can set the headings self._setColumnHeadings(aResource.columnHeadings) # And load the list self._setItems(aResource.items) self._bindEvents(event.WIDGET_EVENTS + MultiColumnListEvents)
def PopulateList(self, data1): self.itemDataMap = self.keysmap_to_datamap(data1) self.currentItem = -1 self.list.ClearAll() ColumnSorterMixin.__init__(self, 3) self.list.InsertColumn(0, "Name") self.list.InsertColumn(1, "Email") self.list.InsertColumn(2, "Key ID") items = data1.items() for key, data in items: index = self.list.InsertItem(self.list.GetItemCount(), data['name']) self.list.SetItem(index, 1, data['mail']) self.list.SetItem(index, 2, data['keyid']) self.list.SetColumnWidth(0, 100) self.list.SetColumnWidth(1, 100) self.list.SetColumnWidth(2, 200)
def __init__(self, parent, id, pos=None, size=None, style=None, top=None): wx.ListCtrl.__init__(self, parent, id, style=wx.LC_REPORT | wx.SIMPLE_BORDER | wx.LC_HRULES) self.top = top self.selected_pid = 0 self.selected_proc = None ListCtrlAutoWidthMixin.__init__(self) self.items_sort_map = {} self.itemDataMap = self.items_sort_map ColumnSorterMixin.__init__(self, 2) self.InsertColumn(0, "PID") self.InsertColumn(1, "Process")
def __init__(self, parent, headers, size=(-1, 100), callback=None): super().__init__(parent, size=size, style=LC_REPORT | BORDER_SUNKEN) self._init_row_index() for i, text in enumerate(headers): self.InsertColumn(i, text) self.SetColumnWidth(i, self._default_width) # Intial Column width self._column_width[i] = self._default_width ListCtrlAutoWidthMixin.__init__(self) # clip last column to table size if callback: self._edit_callback = callback TextEditMixin.__init__(self) self.Bind(EVT_LIST_END_LABEL_EDIT, self.OnMixUpdate) ColumnSorterMixin.__init__(self, 3) self.itemDataMap = {} self.Bind(EVT_LIST_COL_CLICK, self.OnColClick, self)
def __init__(self, parent, id, pos=None, size=None, style=None, top=None): wx.ListCtrl.__init__(self, parent, id, style=style) self.parent = parent self.top = top ListCtrlAutoWidthMixin.__init__(self) self.items_sort_map = {} self.itemDataMap = self.items_sort_map ColumnSorterMixin.__init__(self, 8) self.InsertColumn(0, "ID") self.InsertColumn(1, "Address") self.InsertColumn(2, "Depth") self.InsertColumn(3, "Status") self.InsertColumn(4, "Username") self.InsertColumn(5, "# Hits") self.InsertColumn(6, "Boron Tag") self.InsertColumn(7, "Reason")
def __init__(self, parent): wx.ListCtrl.__init__(self, parent, -1, style=wx.LC_REPORT | wx.LC_VRULES) ListCtrlAutoWidthMixin.__init__(self) ColumnSorterMixin.__init__(self, 6) self.parent = parent self.itemDataMap = {} self._col = self.parent.def_col self.InsertColumn(0, _("Name")) self.InsertColumn(1, _("File Size")) self.InsertColumn(2, _("Seeds")) self.InsertColumn(3, _("Peers")) self.InsertColumn(4, _("Category")) self.InsertColumn(5, _("Engine")) self.setResizeColumn(1) self.Bind(wx.EVT_LIST_ITEM_ACTIVATED, self.OnItemActivated)
def createWidgets(self): self.listCtrl = wxskinListCtrl(self, ID_LISTCTRL, style=wx.LC_REPORT|wx.SUNKEN_BORDER|wx.LC_SINGLE_SEL|wx.LC_VRULES|wx.LC_HRULES) self.listCtrl.InsertColumn(0, "Name") self.listCtrl.InsertColumn(1, "Number") ColumnSorterMixin.__init__(self, 2) self.currentItem = 0 wx.EVT_SIZE(self, self.OnSize) wx.EVT_LIST_ITEM_SELECTED(self, ID_LISTCTRL, self.OnItemSelected) wx.EVT_LIST_ITEM_ACTIVATED(self, ID_LISTCTRL, self.OnItemActivated) wx.EVT_CLOSE(self, self.closeWindow) wx.EVT_LEFT_DCLICK(self.listCtrl, self.OnPopupEdit) wx.EVT_RIGHT_DOWN(self.listCtrl, self.OnRightDown) # for wxMSW and wxGTK respectively wx.EVT_COMMAND_RIGHT_CLICK(self.listCtrl, ID_LISTCTRL, self.OnRightClick) wx.EVT_RIGHT_UP(self.listCtrl, self.OnRightClick)
def __init__(self, parent): wx.ListCtrl.__init__(self, parent, wx.ID_ANY, style=wx.LC_REPORT) ContextMenuMixin.__init__(self) self.il = wx.ImageList(self.icon_size, self.icon_size) # TODO: use a real icon self.il.Add(self.draw_blank()) self.il.Add(self.draw_sort_arrow('up')) self.il.Add(self.draw_sort_arrow('down')) self.SetImageList(self.il, wx.IMAGE_LIST_SMALL) self.update_enabled_columns() for i, name in enumerate(self.enabled_columns): column = self.columns[name] column.SetColumn(i) self.InsertColumnItem(i, column) self.itemData_to_row = {} self.index_to_itemData = {} self.selected_column = None self.SelectColumn(self.enabled_columns[0]) cmenu = wx.Menu() for name in self.column_order: column = self.columns[name] id = wx.NewId() cmenu.AppendCheckItem(id, column.GetText()) cmenu.Check(id, column.enabled) self.Bind(wx.EVT_MENU, lambda e, c=column, id=id: self.toggle_column(c, id, e), id=id) self.SetColumnContextMenu(cmenu) ColumnSorterMixin.__init__(self, len(self.enabled_columns)) self._last_scrollpos = 0 if sys.platform != "darwin": self.Bind(wx.EVT_ERASE_BACKGROUND, self.OnEraseBackground) self.default_rect = wx.Rect(0, 0)
def __init__(self, parent, style, prefix, minid, maxid, rightalign=[], centeralign=[]): if wx.Platform == "__WXMAC__": style &= ~wx.LC_VRULES wx.ListCtrl.__init__(self, parent, wx.ID_ANY, style=style) self.parent = parent self.prefix = prefix self.minid = minid self.maxid = maxid # TODO: main column self.maincolumn = minid self.rightalign = rightalign self.centeralign = centeralign self.columns = ColumnManager(self) self.Bind(wx.EVT_LIST_COL_END_DRAG, self.OnResizeColumn) self.Bind(wx.EVT_LIST_COL_RIGHT_CLICK, self.OnColRightClick) self.Bind(wx.EVT_LIST_COL_CLICK, self.OnColLeftClick) self.loadTranslation() self.loadColumns() self.loadFont() # Add to the list of ManagedList objects utility.lists[self] = True self.lastcolumnselected = -1 # Add Bitmaps for UP\DOWN sorting self.il = wx.ImageList(16, 16) self.il.Add(self.createBlank()) # 0 self.il.Add(self.createArrow("up")) # 1 self.il.Add(self.createArrow("down")) # 2 ColumnSorterMixin.__init__(self, int(self.maxid - self.minid))
def __init__(self, parent): wx.ListCtrl.__init__(self, parent, wx.ID_ANY, style=wx.LC_REPORT) ContextMenuMixin.__init__(self) self.il = wx.ImageList(self.icon_size, self.icon_size) # TODO: use a real icon self.il.Add(self.draw_blank()) self.il.Add(self.draw_sort_arrow('up')) self.il.Add(self.draw_sort_arrow('down')) self.SetImageList(self.il, wx.IMAGE_LIST_SMALL) self.update_enabled_columns() for i, name in enumerate(self.enabled_columns): column = self.columns[name] column.SetColumn(i) self.InsertColumnItem(i, column) self.itemData_to_row = {} self.index_to_itemData = {} self.selected_column = None self.SelectColumn(self.enabled_columns[0]) cmenu = wx.Menu() for name in self.column_order: column = self.columns[name] id = wx.NewId() cmenu.AppendCheckItem(id, column.GetText()) cmenu.Check(id, column.enabled) self.Bind(wx.EVT_MENU, lambda e, c=column, id=id: self.toggle_column(c, id, e), id=id) self.SetColumnContextMenu(cmenu) ColumnSorterMixin.__init__(self, len(self.enabled_columns)) self._last_scrollpos = 0 if sys.platform != "darwin": self.Bind(wx.EVT_ERASE_BACKGROUND, self.OnEraseBackground) self.default_rect = wx.Rect(0,0)
def __init__(self, parent, columns, columnWidths, style=wx.NO_BORDER): wx.ListCtrl.__init__(self, parent, style=style | wx.LC_REPORT | wx.LC_VIRTUAL) # Init ColumnSorterMixin self.itemDataMap = [] self.GetListCtrl = lambda: self ColumnSorterMixin.__init__(self, len(columns)) # Setup our variables self.rows = [] self.rowIndexMap = {} self.SetItemCount(0) # Setup our columns if len(columns) != len(columnWidths): raise Exception("columnWidths must be the same size as columns!") for index in xrange(0, len(columns)): name = columns[index] width = columnWidths[index] self.InsertColumn(index, name) self.SetColumnWidth(index, width)
def __init__(self, parent, id, pos=None, size=None, style=None, top=None): wx.ListCtrl.__init__(self, parent, id, style=wx.LC_REPORT | wx.SIMPLE_BORDER | wx.LC_HRULES ) self.top = top self.hits_by_index = {} self.eips = [] self.last_focused = None ListCtrlAutoWidthMixin.__init__(self) self.items_sort_map = {} self.itemDataMap = self.items_sort_map ColumnSorterMixin.__init__(self, 7) self.InsertColumn(0, "#") self.InsertColumn(1, "Time") self.InsertColumn(2, "EIP") self.InsertColumn(3, "TID") self.InsertColumn(4, "Module") self.InsertColumn(5, "Func?") self.InsertColumn(6, "Tag")
def __init__(self, config, locale, keypairdb, *args, **kwargs): self._config = config self._locale = locale self._text = locale['text'] self._keypairdb = keypairdb # Initialise wx.ListCtrl.__init__(self, *args, **kwargs) # Setup columns self.InsertColumn(0, self._text['keypairlist_column_name'], width=150) self.InsertColumn(1, self._text['keypairlist_column_added'], width=95) self.InsertColumn(2, self._text['keypairlist_column_last_used'], width=95) self.InsertColumn(3, self._text['keypairlist_column_location'], width=125) self.InsertColumn(4, self._text['keypairlist_column_encryption'], width=80) # Enable sorting of keypairs by column self.itemDataMap = {} # see ColumnSorterMixin documentation ColumnSorterMixin.__init__(self, 5) self.SortListItems(0, 1) # sort by keypair name by default # A map to map keypair filenames to their self.itemDataMap keys so that # list items can be manipulated directly by knowing the filenames of # the keypairs they represent self._filename_to_data_map_key_map = {} # A dictionary to store the state (see # KeypairDB.get_keypair_files_state()) of each keypair file for use # by sync() to poll keypair file states self._keypair_files_state = {} self._first_sync = True # changed to False on the first sync() call # Load all keypairs self.load_all_keypairs()