1 /*
2  Copyright (C) 2010-2014 Kristian Duske
3 
4  This file is part of TrenchBroom.
5 
6  TrenchBroom is free software: you can redistribute it and/or modify
7  it under the terms of the GNU General Public License as published by
8  the Free Software Foundation, either version 3 of the License, or
9  (at your option) any later version.
10 
11  TrenchBroom is distributed in the hope that it will be useful,
12  but WITHOUT ANY WARRANTY; without even the implied warranty of
13  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14  GNU General Public License for more details.
15 
16  You should have received a copy of the GNU General Public License
17  along with TrenchBroom. If not, see <http://www.gnu.org/licenses/>.
18  */
19 
20 #ifndef TrenchBroom_SmartChoiceEditor
21 #define TrenchBroom_SmartChoiceEditor
22 
23 #include "Model/ModelTypes.h"
24 #include "View/SmartAttributeEditor.h"
25 #include "View/ViewTypes.h"
26 
27 class wxComboBox;
28 class wxCommandEvent;
29 class wxPanel;
30 class wxStaticText;
31 class wxWindow;
32 
33 namespace TrenchBroom {
34     namespace Assets {
35         class ChoicePropertyDefinition;
36     }
37 
38     namespace View {
39         class SmartChoiceEditor : public SmartAttributeEditor {
40         private:
41             wxPanel* m_panel;
42             wxComboBox* m_comboBox;
43         public:
44             SmartChoiceEditor(View::MapDocumentWPtr document);
45 
46             void OnComboBox(wxCommandEvent& event);
47             void OnTextEnter(wxCommandEvent& event);
48         private:
49             wxWindow* doCreateVisual(wxWindow* parent);
50             void doDestroyVisual();
51             void doUpdateVisual(const Model::AttributableNodeList& attributables);
52         };
53     }
54 }
55 
56 #endif /* defined(TrenchBroom_SmartChoiceEditor) */
57