def __init__(self, parent): self.maxlength = 2000 self.removeOnMax = 200 self.indent = "" self.OnGetItemText = self.OnGetItemTextWithTime wx.ListCtrl.__init__( self, parent, style=(wx.LC_REPORT | wx.LC_VIRTUAL | wx.NO_FULL_REPAINT_ON_RESIZE | wx.HSCROLL | wx.CLIP_CHILDREN | wx.LC_NO_HEADER)) if eg.config.useFixedFont: df = self.GetFont() font = wx.Font(df.GetPointSize(), wx.DEFAULT, wx.NORMAL, wx.NORMAL, False, "Courier New") self.SetFont(font) self.SetImageList(eg.Icons.gImageList, wx.IMAGE_LIST_SMALL) sysColour = eg.colour.windowBackground sysTextColour = eg.colour.windowText oddColour = eg.colour.GetOddLogColour() self.attr1 = wx.ListItemAttr() self.attr1.BackgroundColour = oddColour self.attr1.TextColour = sysTextColour self.attr2 = wx.ListItemAttr() self.attr2.BackgroundColour = sysColour self.attr2.TextColour = sysTextColour self.attr3 = wx.ListItemAttr() self.attr3.BackgroundColour = oddColour self.attr3.TextColour = (255, 0, 0) self.attr4 = wx.ListItemAttr() self.attr4.BackgroundColour = sysColour self.attr4.TextColour = (255, 0, 0) self.InsertColumn(0, "") # logger popup menu menu = wx.Menu() menu.Append(wx.ID_COPY, eg.text.MainFrame.Menu.Copy) self.Bind(wx.EVT_MENU, self.OnCmdCopy, id=wx.ID_COPY) menu.AppendSeparator() menuId = wx.NewId() menu.Append(menuId, eg.text.MainFrame.Menu.Replay) self.Bind(wx.EVT_MENU, self.OnCmdReplay, id=menuId) menu.AppendSeparator() menuId = wx.NewId() menu.Append(menuId, eg.text.MainFrame.Menu.ClearLog) self.Bind(wx.EVT_MENU, self.OnCmdClearLog, id=menuId) self.contextMenu = menu self.Bind(wx.EVT_RIGHT_UP, self.OnRightUp) self.Bind(wx.EVT_LIST_ITEM_RIGHT_CLICK, self.OnRightUp) self.Bind(wx.EVT_LIST_BEGIN_DRAG, self.OnStartDrag) self.Bind(wx.EVT_LEFT_DCLICK, self.OnDoubleClick) self.Bind(wx.EVT_SET_FOCUS, self.OnSetFocus) self.Bind(wx.EVT_KILL_FOCUS, self.OnKillFocus) self.logTimes = True self.__inSelection = False self.isOdd = False self.data = collections.deque() eg.log.SetCtrl(self) self.SetData(eg.log.GetData())
def OnCreate(self, event): print "SortVirtList OnCreate", event self.attr1 = wx.ListItemAttr() self.attr1.SetBackgroundColour("white") listmix.ListCtrlAutoWidthMixin.__init__(self) listmix.ColumnSorterMixin.__init__(self, 20)
def __init__(self, parent): wx.ListCtrl.__init__(self, parent, -1, style=wx.LC_REPORT | wx.LC_VIRTUAL | wx.LC_HRULES | wx.LC_VRULES) self.principalFrame = parent self.defaultFont = self.GetFont() self.styledFont = createMyFont() self.SetFont(self.styledFont) self.selectedItem = 0 self.selectedID = '' self.visuLivreFrame = False self.modifLivreFrame = False # --- Initialisation de la classe Etagere, avec chargement de la liste de livre self.maBiblio = Library(self.principalFrame.pathLibrary) # --- Ajout des icônes self.il = wx.ImageList(32, 16) # Icônes de triages et de notes données aux livres triage = { 'sm_up': 'GO_UP_B.png', 'sm_dn': 'GO_DOWN_B.png', 'note_a': 'note_a.jpg', 'note_b': 'note_b.jpg', 'note_c': 'note_c.jpg', 'note_d': 'note_d.jpg', 'note_f': 'note_f.jpg' } for k, v in triage.items(): img = wx.Image(self.principalFrame.pathIcone + v, wx.BITMAP_TYPE_ANY) img = img.Scale(32, 16, wx.IMAGE_QUALITY_HIGH) img = img.ConvertToBitmap() s = "self.%s= self.il.Add(img)" % k exec(s) # 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,(32,16)))" % (k,v) # exec(s) self.SetImageList(self.il, wx.IMAGE_LIST_SMALL) # --- Ajout de couleurs de fond pour différencier les lignes self.listColor = [] self.listColor.append(wx.ListItemAttr()) self.listColor[-1].SetBackgroundColour("#B3FFFA") # Bleu pâle self.listColor.append(wx.ListItemAttr()) self.listColor[-1].SetBackgroundColour("#FAB3FF") # Rose pâle self.listColor.append(wx.ListItemAttr()) self.listColor[-1].SetBackgroundColour("#FFFAB3") # Jaune pâle self.listColor.append(wx.ListItemAttr()) self.listColor[-1].SetBackgroundColour("#FFFFFF") # Blanc self.listColor.append(wx.ListItemAttr()) self.listColor[-1].SetBackgroundColour("#DDDDDD") # Gris claire self.currentColor = 0 # Iterateur de couleur # --- Initialisation des colonnes self.columnList = { 0: ['Auteur', 140], 1: ['Titre', 320], 2: ['Editeur', 130], 3: ['Parution', 95], 4: ['Genre', 140], 5: ['Pages', 70], 6: ['Lieu', 140], 7: ['Note', 0] } for k, v in self.columnList.items(): if k in [3, 5]: s = "self.InsertColumn(%i, '%s', wx.LIST_FORMAT_CENTER, width=%i)" % ( k, v[0], v[1]) else: s = "self.InsertColumn(%i, '%s', width=%i)" % (k, v[0], v[1]) exec(s) # --- Initialisation des premiers items (nombre d'items = nombre d'éléments dans le dictionnaire) self.itemDataMap = self.convertToDataMap() self.itemIndexMap = range(1, len(self.itemDataMap) + 1) self.SetItemCount(len(self.itemDataMap)) # self.itemsColor = [-1]*len(self.itempDataMap) # Couleur pour chaque item # --- Initialisation des modules mixins listmix.ListCtrlAutoWidthMixin.__init__(self) listmix.ColumnSorterMixin.__init__(self, len(self.columnList)) # --- On définit le trie par défaut sur 'Genre' (colonne 4) A->Z ordre alphabétique (1) self.currentSorter = 4 # Numéro courant de la colonne triante self.SortListItems(self.currentSorter, 1) # --- Initialisation du menu popup self.initPopupMenu() # --- Définition des events 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_ITEM_RIGHT_CLICK, self.OnItemRightClick) self.Bind(wx.EVT_LIST_COL_CLICK, self.OnColClick)
def __init__(self, parent): wx.ListCtrl.__init__(self, parent, -1, style=wx.LC_REPORT | wx.LC_VIRTUAL | wx.LC_SORT_ASCENDING | wx.LC_SINGLE_SEL | wx.LC_VRULES | wx.BORDER_SUNKEN) listmix.ListCtrlAutoWidthMixin.__init__(self) listmix.ColumnSorterMixin.__init__(self, 2) #------------------------------------------------------------------- fontSize = self.GetFont().GetPointSize() # wx.Font(pointSize, family, style, weight, underline, faceName) if wx.Platform == "__WXMAC__": self.normalFont = wx.Font(fontSize-2, wx.DEFAULT, wx.NORMAL, wx.NORMAL, False, "") elif wx.Platform == "__WXGTK__": self.normalFont = wx.Font(fontSize-1, wx.DEFAULT, wx.NORMAL, wx.NORMAL, False, "") else: self.normalFont = wx.Font(fontSize-1, wx.DEFAULT, wx.NORMAL, wx.NORMAL, False, "") self.SetFont(self.normalFont) #------------------------------------------------------------------- self.il = wx.ImageList(16, 16) bmp = wx.Bitmap("Bitmaps/listCtrl_Icon.png", wx.BITMAP_TYPE_PNG) self.idx1 = self.il.Add(bmp) bmp1 = wx.Bitmap("Bitmaps/small_Up_Arrow.png", wx.BITMAP_TYPE_PNG) self.sm_up = self.il.Add(bmp1) bmp2 = wx.Bitmap("Bitmaps/small_Dn_Arrow.png", wx.BITMAP_TYPE_PNG) self.sm_dn = self.il.Add(bmp2) self.SetImageList(self.il, wx.IMAGE_LIST_SMALL) #------------------------------------------------------------------- self.InsertColumn(0, u"Offset", wx.LIST_FORMAT_LEFT, width=wx.LIST_AUTOSIZE) # width=90 self.InsertColumn(1, u"Value", wx.LIST_FORMAT_LEFT, width=100) # width=wx.LIST_AUTOSIZE #------------------------------------------------------------------- self.SetItemCount(201) #------------------------------------------------------------------- self.SetForegroundColour("#6a6a66") self.attributeColor = wx.ListItemAttr() self.attributeColor.SetBackgroundColour(wx.WHITE) # wx.Colour(220, 225, 228) #------------------------------------------------------------------- self.SortListItems(0, True) #------------------------------------------------------------------- self.SetItemState(0, wx.LIST_STATE_SELECTED, wx.LIST_STATE_SELECTED) #------------------------------------------------------------------- # Bind some events to an events handler self.Bind(wx.EVT_LIST_ITEM_SELECTED, self.OnItemSelected) self.Bind(wx.EVT_LIST_ITEM_ACTIVATED, self.OnItemActivated) self.Bind(wx.EVT_LIST_COL_CLICK, self.OnColClick)
#... #def macro(self): # ... ''' def kill_main_thread_in(condition, seconds=6): a = threading.Thread(target=_kill_main_thread_in, args=(condition, seconds)) a.setDaemon(1) a.start() def _kill_main_thread_in(condition, seconds): time.sleep(seconds) if condition: thread.interrupt_main() red = wx.ListItemAttr() red.SetTextColour(wx.Colour(200, 0, 0)) timeout = None def macro_timeout(a,b,c): del a, b, c if time.time() > timeout: raise KeyboardInterrupt, "Macro took more than 5 seconds!" try: wx.Yield() except: pass return macro_timeout def start_macro():
def __init__(self, usages): _UsagesListModel.__init__(self, usages) self.headers = ['Name', 'Location'] self._cannot_rename_item_attr = wx.ListItemAttr() self._cannot_rename_item_attr.SetBackgroundColour( wx.Colour(255, 64, 64))
def _create_link_attribute(self): attr = wx.ListItemAttr() attr.SetTextColour(wx.BLUE) attr.SetFont(Font().underlined) return attr
def __init__(self, parent, tabpage, data={}): wx.ListCtrl.__init__(self, parent, -1, style=wx.LC_SINGLE_SEL | wx.LC_REPORT | wx.LC_VIRTUAL | wx.LC_HRULES | wx.LC_VRULES) self.tabpage = tabpage # Add some art self.il = wx.ImageList(16, 16) self.sm_up = self.il.Add(wx.Bitmap(consts.icon_arrow_up)) self.sm_dn = self.il.Add(wx.Bitmap(consts.icon_arrow_down)) self.uptodate = self.il.Add(wx.Bitmap(consts.icon_uptodate)) self.update = self.il.Add(wx.Bitmap(consts.icon_update)) self.error = self.il.Add(wx.Bitmap(consts.icon_error)) self.downloaded = self.il.Add(wx.Bitmap(consts.icon_downloaded)) self.SetImageList(self.il, wx.IMAGE_LIST_SMALL) # Add some attributes (colourful background for each item rows) self.attrUpdate = wx.ListItemAttr() self.attrUpdate.SetBackgroundColour("light blue") # blue self.attrUptodate = wx.ListItemAttr() self.attrUptodate.SetBackgroundColour(wx.Color(150, 235, 140)) # green self.attrError = wx.ListItemAttr() self.attrError.SetBackgroundColour(wx.Color(255, 118, 106)) # red self.attrDownloaded = wx.ListItemAttr() self.attrDownloaded.SetBackgroundColour(wx.Color(255, 215, 100)) # yellow # Build the columns count = 0 for title, width in consts.columns: self.InsertColumn(count, title) self.SetColumnWidth(count, width) count += 1 #self.InsertColumn(0, _("S")) #self.InsertColumn(1, _("Package Name")) #self.InsertColumn(2, _("Installed Version")) #self.InsertColumn(3, _("Latest Version")) #self.InsertColumn(4, _("Description")) #self.SetColumnWidth(0, 50) #self.SetColumnWidth(1, 200) #self.SetColumnWidth(2, 200) #self.SetColumnWidth(3, 200) #self.SetColumnWidth(4, 200) #These two should probably be passed to init more cleanly #setting the numbers of items = number of elements in the dictionary self.SetMap(data) self.currentItem = None #mixins listmix.ListCtrlAutoWidthMixin.__init__(self) listmix.ColumnSorterMixin.__init__(self, 3) #sort by genre (column 2), A->Z ascending order (1) #self.SortListItems(0, 1) #events 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)
diff = cmp(aValue, bValue) if diff: if not ascending: return -diff else: return diff return 0 def integrateRecords(self, functions): """Integrate records from the loader""" self.SetItemCount(len(functions)) self.sorted = functions[:] self.reorder() self.Refresh() indicated_attribute = wx.ListItemAttr() indicated_attribute.SetBackgroundColour('#00ff00') def OnGetItemAttr(self, item): """Retrieve ListItemAttr for the given item (index)""" if self.indicated > -1 and item == self.indicated: return self.indicated_attribute return None def OnGetItemText(self, item, col): """Retrieve text for the item and column respectively""" # TODO: need to format for rjust and the like... try: column = self.columns[col] value = column.get(self.sorted[item]) except IndexError, err:
def __init__(self, parent, id, monFileSystem): wx.ListCtrl.__init__( self, parent, # parent id, # identifiant style=wx.LC_REPORT # une liste détaillée | wx.LC_VIRTUAL | wx.LC_HRULES | wx.LC_VRULES # règle de tri ##| wx.BORDER_SUNKEN ##| wx.BORDER_NONE # sans bord ##| wx.LC_EDIT_LABELS # edition du label possible #| wx.LC_SORT_ASCENDING # cette option pose des problèmes ! ##| wx.LC_NO_HEADER ##| wx.LC_VRULES ##| wx.LC_HRULES ##| wx.LC_SINGLE_SEL ) # récupération des images pour le rendu de l'appli ##files = os.listdir('.') #images = ['images/empty.png', 'images/folder.png', 'images/source_py.png', # 'images/image.png', 'images/pdf.png', 'images/up16.png'] #images = ['images/folder.png', 'images/folder.png', 'images/folder.png', # 'images/folder.png', 'images/folder.png', 'images/folder.png'] # Mise en place des colonnes self.InsertColumn(0, 'Name') self.InsertColumn(1, 'Ext') self.InsertColumn(2, 'Size', wx.LIST_FORMAT_RIGHT) self.InsertColumn(3, 'Modified') self.InsertColumn(4, 'Type') # Configuration des colonnes self.SetColumnWidth(0, 220) self.SetColumnWidth(1, 80) #wx.LIST_AUTOSIZE) self.SetColumnWidth(2, 80) #wx.LIST_AUTOSIZE) self.SetColumnWidth(3, 80) #wx.LIST_AUTOSIZE) #self.SetColumnWidth(4, wx.LIST_AUTOSIZE) self.il = wx.ImageList(16, 16) #for i in images: # self.il.Add(wx.Bitmap(i)) fldridx = self.il.Add( wx.ArtProvider_GetBitmap(wx.ART_FOLDER, wx.ART_OTHER, (16, 16))) fldropenidx = self.il.Add( wx.ArtProvider_GetBitmap(wx.ART_FILE_OPEN, wx.ART_OTHER, (16, 16))) fileidx = self.il.Add( wx.ArtProvider_GetBitmap(wx.ART_NORMAL_FILE, wx.ART_OTHER, (16, 16))) fldparentridx = self.il.Add( wx.ArtProvider_GetBitmap(wx.ART_GO_TO_PARENT, wx.ART_OTHER, (16, 16))) self.SetImageList(self.il, wx.IMAGE_LIST_SMALL) # show how to select an item self.SetItemState(5, wx.LIST_STATE_SELECTED, wx.LIST_STATE_SELECTED) self.attr1 = wx.ListItemAttr() self.attr1.SetBackgroundColour("yellow") self.attr1 = wx.ListItemAttr() self.attr1.SetBackgroundColour("light blue") # initialize variables self._cTreeRoot = monFileSystem.getBuilder().getRoots()[0] self._dictChildren = {} self.initializeContent(self._cTreeRoot) self.itemIndexMap = self._dictChildren.keys() self.SetItemCount(len(self._dictChildren)) self.itemDataMap = self._dictChildren # initialisation des composants wx.lib.mixins.listctrl listmix.ListCtrlAutoWidthMixin.__init__(self) listmix.ColumnSorterMixin.__init__(self, 5) self.Bind(wx.EVT_LIST_ITEM_SELECTED, self.OnItemSelected, self) self.Bind(wx.EVT_LIST_ITEM_DESELECTED, self.OnItemDeselected, self) self.Bind(wx.EVT_LIST_ITEM_ACTIVATED, self.OnItemActivated, self) self.Bind(wx.EVT_LEFT_DCLICK, self.OnDoubleClick) self.Bind(wx.EVT_LIST_COL_CLICK, self.OnColClick, self)
def initattributes(self): self.SetItemCount(0) self.font = LayerFont() # Set item attributes self.attr = wx.ListItemAttr()
from collections import deque import itertools import os import string import threading import time import wx import wx.stc import wx.lib.mixins.listctrl as listmix import __main__ import filtertable import pubsub attr1 = wx.ListItemAttr() attr1.SetBackgroundColour(wx.Colour(0xee, 0xff, 0xee)) attr2 = wx.ListItemAttr() attr2.SetBackgroundColour(wx.Colour(0xee, 0xee, 0xff)) OB1 = 0 class FileDropTarget(wx.FileDropTarget): def __init__(self, parent, root): wx.FileDropTarget.__init__(self) self.parent = parent self.root = root def OnDropFiles(self, x, y, filenames):