File: my_tree_view.cpp

package info (click to toggle)
codelite 12.0%2Bdfsg-1
  • links: PTS, VCS
  • area: main
  • in suites: buster
  • size: 95,112 kB
  • sloc: cpp: 424,040; ansic: 18,284; php: 9,569; lex: 4,186; yacc: 2,820; python: 2,294; sh: 312; makefile: 51; xml: 13
file content (36 lines) | stat: -rw-r--r-- 1,031 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#include "my_tree_view.h"
#include "tree_item_data.h"
#include <wx/settings.h>

IMPLEMENT_DYNAMIC_CLASS(MyTreeView, wxTreeCtrl)

MyTreeView::MyTreeView(wxWindow* parent, wxWindowID id, const wxPoint& pos, const wxSize& size, long style)
{
    Create(parent, id, pos, size, style);
    SetFont(wxSystemSettings::GetFont(wxSYS_DEFAULT_GUI_FONT));
}

MyTreeView::~MyTreeView()
{
}

int MyTreeView::OnCompareItems(const wxTreeItemId& item1, const wxTreeItemId& item2)
{
    if(!item1.IsOk() || !item2.IsOk())
        return wxTreeCtrl::OnCompareItems(item1, item2);

    ItemData *a = static_cast<ItemData*>(GetItemData(item1));
    ItemData *b = static_cast<ItemData*>(GetItemData(item2));
    
    return OnCompareItems(a, b);
}

int MyTreeView::OnCompareItems(const ItemData* a, const ItemData* b)
{
    // if dir and other is not, dir has preference
    if(a->IsFolder() && b->IsFile())
        return -1;
    else if(b->IsFolder() && a->IsFile())
        return 1;
    return a->GetDisplayName().CmpNoCase(b->GetDisplayName());
}