source: git/src/aventreectrl.h @ 0ae40fa

RELEASE/1.2debug-cidebug-ci-sanitisersstereowalls-data
Last change on this file since 0ae40fa was 0ae40fa, checked in by Olly Betts <olly@…>, 6 years ago

Clean up handling of AvenTreeCtrl?'s m_Enabled flag

  • Property mode set to 100644
File size: 2.5 KB
Line 
1//
2//  aventreectrl.h
3//
4//  Tree control used for the survey tree.
5//
6//  Copyright (C) 2001, Mark R. Shinwell.
7//  Copyright (C) 2002,2006,2018 Olly Betts
8//  Copyright (C) 2005 Martin Green
9//
10//  This program is free software; you can redistribute it and/or modify
11//  it under the terms of the GNU General Public License as published by
12//  the Free Software Foundation; either version 2 of the License, or
13//  (at your option) any later version.
14//
15//  This program is distributed in the hope that it will be useful,
16//  but WITHOUT ANY WARRANTY; without even the implied warranty of
17//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
18//  GNU General Public License for more details.
19//
20//  You should have received a copy of the GNU General Public License
21//  along with this program; if not, write to the Free Software
22//  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
23//
24
25#ifndef aventreectrl_h
26#define aventreectrl_h
27
28#include "wx.h"
29
30#include "model.h"
31
32class MainFrm;
33class LabelInfo;
34
35class TreeData : public wxTreeItemData {
36    const LabelInfo* m_Label;
37    wxString survey;
38
39public:
40    explicit TreeData(const LabelInfo* label) : m_Label(label) {}
41    explicit TreeData(const wxString & survey_)
42        : m_Label(NULL), survey(survey_) {}
43    const LabelInfo* GetLabel() const { return m_Label; }
44    const wxString & GetSurvey() const { return survey; }
45    bool IsStation() const { return m_Label != NULL; }
46};
47
48class AvenTreeCtrl : public wxTreeCtrl {
49    MainFrm* m_Parent;
50    bool m_Enabled;
51    wxTreeItemId m_LastItem;
52    wxColour m_BackgroundColour;
53    bool m_SelValid;
54    const TreeData* menu_data;
55    wxTreeItemId menu_item;
56
57    SurveyFilter filter;
58
59public:
60    AvenTreeCtrl(MainFrm* parent, wxWindow* window_parent);
61
62    void SetEnabled(bool enabled = true) { m_Enabled = enabled; }
63    void UnselectAll();
64
65    void OnMouseMove(wxMouseEvent& event);
66    void OnLeaveWindow(wxMouseEvent& event);
67    void OnSelChanged(wxTreeEvent& event);
68    void OnKeyPress(wxKeyEvent &e);
69    void OnItemActivated(wxTreeEvent& e);
70    void OnMenu(wxTreeEvent& e);
71
72    void OnRestrict(wxCommandEvent& e);
73    void OnHide(wxCommandEvent& e);
74    void OnShow(wxCommandEvent& e);
75    void OnHideSiblings(wxCommandEvent& e);
76    void OnStateClick(wxTreeEvent& e);
77
78    bool GetSelectionData(wxTreeItemData**) const;
79
80    void SetHere(wxTreeItemId pos);
81
82    void DeleteAllItems();
83
84    const SurveyFilter* GetFilter() const {
85        return filter.empty() ? NULL : &filter;
86    }
87
88private:
89    DECLARE_EVENT_TABLE()
90};
91
92#endif
Note: See TracBrowser for help on using the repository browser.