/
ResourceTreeViewToolbar.h
65 lines (46 loc) · 1.44 KB
/
ResourceTreeViewToolbar.h
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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
#pragma once
#include <wx/panel.h>
#include <wx/radiobut.h>
#include <wx/bmpbuttn.h>
#include <wx/timer.h>
#include "ResourceTreeView.h"
namespace wxutil
{
/**
* Toolbar providing some useful controls for the associated ResourceTreeView
*/
class ResourceTreeViewToolbar :
public wxPanel
{
private:
ResourceTreeView* _treeView;
wxTextCtrl* _filterEntry;
wxRadioButton* _showAll;
wxRadioButton* _showFavourites;
wxBitmapButton* _findPrevButton;
wxBitmapButton* _findNextButton;
wxSizer* _leftSizer;
wxSizer* _rightSizer;
wxTimer _applyFilterTimer;
public:
ResourceTreeViewToolbar(wxWindow* parent, ResourceTreeView* treeView = nullptr);
// Return the sizer for packing items in the left half of the toolbar
wxSizer* GetLeftSizer();
// Return the sizer for packing items in the right half of the toolbar
wxSizer* GetRightSizer();
void EnableFavouriteManagement(bool enable);
void AssociateToTreeView(ResourceTreeView* treeView);
void ClearFilter();
private:
void JumpToNextFilterMatch();
void JumpToPrevFilterMatch();
void _onEntryChar(wxKeyEvent& ev);
void _onEntryKey(wxKeyEvent& ev);
void _onEntryText(wxCommandEvent& ev);
void _onFilterButtonToggled(wxCommandEvent& ev);
void _onTreeViewFilterTextCleared(wxCommandEvent& ev);
void _onFilterTimeoutReached(wxTimerEvent& ev);
void HandleFilterEntryChanged();
void UpdateFromTreeView();
};
}