-
Notifications
You must be signed in to change notification settings - Fork 8
/
CBEditorConfig.hpp
118 lines (101 loc) · 4.9 KB
/
CBEditorConfig.hpp
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
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
// Copyright (c) 2012 EditorConfig Team
// All rights reserved.
//
// Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are met:
//
// 1. Redistributions of source code must retain the above copyright notice,
// this list of conditions and the following disclaimer.
// 2. Redistributions in binary form must reproduce the above copyright notice,
// this list of conditions and the following disclaimer in the documentation
// and/or other materials provided with the distribution.
//
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
// POSSIBILITY OF SUCH DAMAGE.
//
#ifndef CBEDITORCONFIG_HPP_INCLUDED
#define CBEDITORCONFIG_HPP_INCLUDED
// For compilers that support precompilation, includes <wx/wx.h>
#include <wx/wxprec.h>
#ifndef WX_PRECOMP
#include <wx/wx.h>
#endif
#include <cbplugin.h> // for "class cbToolPlugin"
class CBEditorConfig : public cbPlugin
{
public:
/** Constructor. */
CBEditorConfig();
/** Destructor. */
virtual ~CBEditorConfig();
/** Invoke configuration dialog. */
virtual int Configure();
/** Return the plugin's configuration priority.
* This is a number (default is 50) that is used to sort plugins
* in configuration dialogs. Lower numbers mean the plugin's
* configuration is put higher in the list.
*/
virtual int GetConfigurationPriority() const;
/** Return the configuration group for this plugin. Default is cgUnknown.
* Notice that you can logically OR more than one configuration groups,
* so you could set it, for example, as "cgCompiler | cgContribPlugin".
*/
virtual int GetConfigurationGroup() const;
/** Return plugin's configuration panel.
* @param parent The parent window.
* @return A pointer to the plugin's cbConfigurationPanel. It is deleted by the caller.
*/
virtual cbConfigurationPanel* GetConfigurationPanel(wxWindow* parent){ return 0; }
/** Return plugin's configuration panel for projects.
* The panel returned from this function will be added in the project's
* configuration dialog.
* @param parent The parent window.
* @param project The project that is being edited.
* @return A pointer to the plugin's cbConfigurationPanel. It is deleted by the caller.
*/
virtual cbConfigurationPanel* GetProjectConfigurationPanel(wxWindow* parent, cbProject* project){ return 0; }
protected:
/** Any descendent plugin should override this virtual method and
* perform any necessary initialization. This method is called by
* Code::Blocks (PluginManager actually) when the plugin has been
* loaded and should attach in Code::Blocks. When Code::Blocks
* starts up, it finds and <em>loads</em> all plugins but <em>does
* not</em> activate (attaches) them. It then activates all plugins
* that the user has selected to be activated on start-up.\n
* This means that a plugin might be loaded but <b>not</b> activated...\n
* Think of this method as the actual constructor...
*/
virtual void OnAttach();
/** Any descendent plugin should override this virtual method and
* perform any necessary de-initialization. This method is called by
* Code::Blocks (PluginManager actually) when the plugin has been
* loaded, attached and should de-attach from Code::Blocks.\n
* Think of this method as the actual destructor...
* @param appShutDown If true, the application is shutting down. In this
* case *don't* use Manager::Get()->Get...() functions or the
* behaviour is undefined...
*/
virtual void OnRelease(bool appShutDown);
virtual void BuildMenu(wxMenuBar* /*menuBar*/);
virtual void BuildModuleMenu(const ModuleType /*type*/,
wxMenu* /*menu*/,
const FileTreeData* /*data*/ = 0);
virtual bool BuildToolBar(wxToolBar* /*toolBar*/);
private:
/** Called when the editor opens a new file
*/
void OnEditorOpen(CodeBlocksEvent& event);
int LoadConfig();
// Reload Editor Config menu item
void OnReloadEditorConfig(wxCommandEvent& event);
};
#endif // CBEDITORCONFIG_HPP_INCLUDED