Exemplo n.º 1
0
    def __init__(self, parent: wx.Window):
        super().__init__(parent)
        self._columns = []                     # type: List[BaseColumn]
        self._pages = []                       # type: List[outwiker.core.tree.WikiPage]
        self._defaultIcon = getBuiltinImagePath("page.png")
        self._imageList = ImageListCache(self._defaultIcon)

        self._propagationLevel = 15
        self.SetBackgroundColour(wx.Colour(255, 255, 255))

        self._sizer = wx.FlexGridSizer(cols=1)
        self._sizer.AddGrowableCol(0)
        self._sizer.AddGrowableRow(0)

        self._listCtrl = ULC.UltimateListCtrl(
            self,
            agwStyle=ULC.ULC_REPORT | ULC.ULC_SINGLE_SEL | ULC.ULC_VRULES | ULC.ULC_HRULES | ULC.ULC_SHOW_TOOLTIPS | ULC.ULC_NO_HIGHLIGHT
        )

        self._listCtrl.Bind(ULC.EVT_LIST_ITEM_HYPERLINK,
                            handler=self._onPageClick)
        self._listCtrl.Bind(ULC.EVT_LIST_COL_CLICK,
                            handler=self._onColClick)
        self._listCtrl.SetHyperTextNewColour(wx.BLUE)
        self._listCtrl.SetHyperTextVisitedColour(wx.BLUE)
        self._listCtrl.AssignImageList(self._imageList.getImageList(),
                                       wx.IMAGE_LIST_SMALL)

        self._sizer.Add(self._listCtrl, flag=wx.EXPAND)
        self.SetSizer(self._sizer)
Exemplo n.º 2
0
def test_empty():
    app = wx.App()
    wx.Log.SetLogLevel(0)

    defaultImage = 'testdata/images/new.png'
    cache = ImageListCache(defaultImage)

    imageList = cache.getImageList()
    assert imageList.GetImageCount() == 1
    assert cache.getDefaultImageId() == 0
Exemplo n.º 3
0
def test_error_invalid_file():
    '''
    Try add invalid file (not image)
    '''
    app = wx.App()
    wx.Log.SetLogLevel(0)

    defaultImage = 'testdata/images/new.png'
    cache = ImageListCache(defaultImage)

    index = cache.add('testdata/images/invalid.png')

    imageList = cache.getImageList()
    assert index == 0
    assert imageList.GetImageCount() == 1
Exemplo n.º 4
0
def test_error_not_exists():
    '''
    Try add file which not exists
    '''
    app = wx.App()
    wx.Log.SetLogLevel(0)

    defaultImage = 'testdata/images/new.png'
    cache = ImageListCache(defaultImage)

    index = cache.add('testdata/images/not_exists.png')

    imageList = cache.getImageList()
    assert index == 0
    assert imageList.GetImageCount() == 1
Exemplo n.º 5
0
def test_single():
    '''
    Add single image to empty ImageList
    '''
    app = wx.App()
    wx.Log.SetLogLevel(0)

    defaultImage = 'testdata/images/new.png'
    cache = ImageListCache(defaultImage)

    index = cache.add('testdata/images/16x16.png')

    imageList = cache.getImageList()
    assert index == 1
    assert imageList.GetImageCount() == 2
Exemplo n.º 6
0
def test_duplicate():
    '''
    Add duplicate image to empty ImageList
    '''
    app = wx.App()
    wx.Log.SetLogLevel(0)

    defaultImage = '../test/images/new.png'
    cache = ImageListCache(defaultImage)

    cache.add('../test/images/16x16.png')
    index = cache.add('../test/images/16x16.png')

    imageList = cache.getImageList()
    assert index == 1
    assert imageList.GetImageCount() == 2
Exemplo n.º 7
0
    def __init__(self, parent: wx.Window):
        treeStyle = (wx.TR_HAS_BUTTONS | wx.TR_EDIT_LABELS | wx.SUNKEN_BORDER)
        super().__init__(parent, style=treeStyle)

        self.defaultIcon = getBuiltinImagePath('page.png')
        self.iconHeight = ICON_HEIGHT

        # Картинки для дерева
        self._iconsCache = ImageListCache(self.defaultIcon)
        self.AssignImageList(self._iconsCache.getImageList())

        # Кеш для страниц, чтобы было проще искать элемент дерева по странице
        # Словарь. Ключ - страница, значение - элемент дерева wx.TreeItemId
        self._pageCache = {}

        # Имя опции для сохранения развернутости страницы
        self.pageOptionExpand = 'Expand'

        self.Bind(wx.EVT_CLOSE, self.__onClose)