예제 #1
0
    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())
예제 #2
0
 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)
예제 #3
0
    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)
예제 #4
0
    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)
예제 #5
0
파일: macro.py 프로젝트: sparkyb/pype
#...
#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))
예제 #7
0
 def _create_link_attribute(self):
     attr = wx.ListItemAttr()
     attr.SetTextColour(wx.BLUE)
     attr.SetFont(Font().underlined)
     return attr
예제 #8
0
파일: misc.py 프로젝트: rizaumami/keryx
    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)
예제 #9
0
            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:
예제 #10
0
    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)
예제 #11
0
    def initattributes(self):
        self.SetItemCount(0)
        self.font = LayerFont()

        # Set item attributes
        self.attr = wx.ListItemAttr()
예제 #12
0
파일: documents.py 프로젝트: sparkyb/pype
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):