コード例 #1
0
    def __init__(self, width, height, collection=None):
        # Temporary placeholder for kwargs of the update() method.
        self.__lastargs = None

        ScrolledWindow.__init__(self, width, height)

        self._spacing = 0

        # The item cursor position within the list.
        self._cursor = None

        # Used for selections.
        self._last_direction = None

        self._signals[SIG_LISTCHANGED] = []
        self._signals[SIG_SELECTCHANGED] = []

        # Items and selection.
        self._itemcollection = None
        self._selectionmode = SELECTION_MULTIPLE
        if collection:
            self.set_items(collection)
        else:
            self._itemcollection = ListItemCollection()
            self._itemcollection.list_changed = self._list_has_changed
            self._itemcollection.item_changed = self._item_has_changed
        self.child = ListViewPort(self)
コード例 #2
0
ファイル: FileList.py プロジェクト: illume/eyestabs
    def _list_contents(self):
        """F.list_contents (...) -> None

        Populates the directory contents to the scrolled list.
        """
        items = ListItemCollection()
        items.append(FileListItem(os.pardir, stat.S_IFDIR))
        stats = None
        files = []
        dirs = []
        dappend = dirs.append
        fappend = files.append
        entries = os.listdir(self._directory)
        isdir = os.path.isdir
        pjoin = os.path.join

        for filename in entries:
            if isdir(pjoin(self._directory, filename)):
                dappend(filename)
            else:
                fappend(filename)
        dirs.sort()
        files.sort()

        map(items.append, [FileListItem(d, stat.S_IFDIR) for d in dirs])
        for filename in files:
            stats = os.stat(pjoin(self._directory, filename))
            items.append(FileListItem(filename, stats.st_mode))
        self.set_items(items)
コード例 #3
0
    def set_items(self, items):
        """S.set_items (...) -> None

        Sets a collection of items to display.
        """
        old = self._itemcollection
        self.vscrollbar.value = 0
        self.hscrollbar.value = 0
        if isinstance(items, ListItemCollection):
            self._itemcollection = items
        else:
            self._itemcollection = ListItemCollection(items)
        self._itemcollection.list_changed = self._list_has_changed
        self._itemcollection.item_changed = self._item_has_changed
        old.list_changed = None
        old.item_changed = None
        del old

        if len(self._itemcollection) > 0:
            self._cursor = self._itemcollection[0]
        else:
            self._cursor = None

        self._list_has_changed(self._itemcollection)