1 /*
2  * This file is part of the Code::Blocks IDE and licensed under the GNU Lesser General Public License, version 3
3  * http://www.gnu.org/licenses/lgpl-3.0.html
4  */
5 
6 #ifndef SDK_EVENTS_H
7 #define SDK_EVENTS_H
8 
9 #include <wx/event.h>
10 #include <wx/intl.h>
11 #include "settings.h"
12 #include "prep.h"
13 
14 class cbProject;
15 class EditorBase;
16 class cbPlugin;
17 class Logger;
18 
19 /** A generic Code::Blocks event. */
20 class EVTIMPORT CodeBlocksEvent : public wxCommandEvent
21 {
22 	public:
23 		CodeBlocksEvent(wxEventType commandType = wxEVT_NULL, int id = 0, cbProject* project = nullptr, EditorBase* editor = nullptr, cbPlugin* plugin = nullptr, EditorBase* old_editor = nullptr)
wxCommandEvent(commandType,id)24 			: wxCommandEvent(commandType, id),
25 			m_pProject(project),
26 			m_pEditor(editor),
27 			m_pOldEditor(old_editor),
28 			m_pPlugin(plugin),
29 			m_X(0),
30 			m_Y(0) {}
CodeBlocksEvent(const CodeBlocksEvent & event)31 		CodeBlocksEvent(const CodeBlocksEvent& event)
32 			: wxCommandEvent(event),
33 			m_pProject(event.m_pProject),
34 			m_pEditor(event.m_pEditor),
35 			m_pOldEditor(event.m_pOldEditor),
36 			m_pPlugin(event.m_pPlugin),
37 			m_X(event.m_X),
38 			m_Y(event.m_Y) {}
Clone()39 		wxEvent *Clone() const override { return new CodeBlocksEvent(*this); }
40 
GetProject()41 		cbProject* GetProject() const             { return m_pProject;    }
SetProject(cbProject * project)42 		void       SetProject(cbProject* project) { m_pProject = project; }
43 
GetEditor()44 		EditorBase* GetEditor() const             { return m_pEditor;   }
SetEditor(EditorBase * editor)45 		void        SetEditor(EditorBase* editor) { m_pEditor = editor; }
46 
GetOldEditor()47 		EditorBase* GetOldEditor() const             { return m_pOldEditor;   }
SetOldEditor(EditorBase * editor)48 		void        SetOldEditor(EditorBase* editor) { m_pOldEditor = editor; }
49 
GetPlugin()50 		cbPlugin* GetPlugin() const           { return m_pPlugin;   }
SetPlugin(cbPlugin * plugin)51 		void      SetPlugin(cbPlugin* plugin) { m_pPlugin = plugin; }
52 
GetX()53 		int  GetX() const { return m_X; }
SetX(int x)54 		void SetX(int x)  { m_X = x;    }
55 
GetY()56 		int  GetY() const { return m_Y; }
SetY(int y)57 		void SetY(int y)  { m_Y = y;    }
58 
GetBuildTargetName()59 		const wxString& GetBuildTargetName() const                 { return m_TargetName;   }
SetBuildTargetName(const wxString & target)60 		void            SetBuildTargetName(const wxString& target) { m_TargetName = target; }
61 
62 		// the following two functions are only valid for EVT_BUILDTARGET_RENAMED
63 		// and EVT_BUILDTARGET_SELECTED events
GetOldBuildTargetName()64 		const wxString& GetOldBuildTargetName() const                 { return m_OldTargetName;   }
SetOldBuildTargetName(const wxString & target)65 		void            SetOldBuildTargetName(const wxString& target) { m_OldTargetName = target; }
66 	protected:
67 		cbProject*  m_pProject;
68 		EditorBase* m_pEditor;
69 		EditorBase* m_pOldEditor;
70 		cbPlugin*   m_pPlugin;
71 		// for some editor events
72 		int m_X;
73 		int m_Y;
74 
75 		wxString m_TargetName;
76 		wxString m_OldTargetName;
77 	private:
78 		DECLARE_DYNAMIC_CLASS(CodeBlocksEvent)
79 };
80 typedef void (wxEvtHandler::*CodeBlocksEventFunction)(CodeBlocksEvent&);
81 
82 /** Event used to request from the main app to add a window to the docking system. */
83 class EVTIMPORT CodeBlocksDockEvent : public wxEvent
84 {
85     public:
86         enum DockSide
87         {
88             dsLeft = 0,
89             dsRight,
90             dsTop,
91             dsBottom,
92             dsFloating,
93             dsUndefined
94         };
95 
96         CodeBlocksDockEvent(wxEventType commandType = wxEVT_NULL, int id = 0)
wxEvent(id,commandType)97             : wxEvent(id, commandType),
98             title(_("Untitled")),
99             pWindow(nullptr),
100             desiredSize(100, 100),
101             floatingSize(150, 150),
102             minimumSize(40, 40),
103             floatingPos(200, 150),
104             dockSide(dsUndefined),
105             row(-1),
106             column(-1),
107             shown(false),
108             stretch(false),
109             hideable(true),
110             asTab(false)
111 
112         {
113         }
CodeBlocksDockEvent(const CodeBlocksDockEvent & rhs)114         CodeBlocksDockEvent(const CodeBlocksDockEvent& rhs)
115             : wxEvent(rhs),
116             name(rhs.name),
117             title(rhs.title),
118             pWindow(rhs.pWindow),
119             desiredSize(rhs.desiredSize),
120             floatingSize(rhs.floatingSize),
121             minimumSize(rhs.minimumSize),
122             floatingPos(rhs.floatingPos),
123             dockSide(rhs.dockSide),
124             row(rhs.row),
125             column(rhs.column),
126             shown(rhs.shown),
127             stretch(rhs.stretch),
128             hideable(rhs.hideable),
129             asTab(rhs.asTab),
130             bitmap(rhs.bitmap)
131         {
132         }
Clone()133 		wxEvent *Clone() const override { return new CodeBlocksDockEvent(*this); }
134 
135         wxString name;      ///< Dock's name. Must be unique. If empty, a unique name will be assigned.
136         wxString title;     ///< Dock's title.
137         wxWindow* pWindow;  ///< The window to dock.
138         wxSize desiredSize; ///< The desired size.
139         wxSize floatingSize;///< The desired floating size.
140         wxSize minimumSize; ///< The minimum allowed size.
141         wxPoint floatingPos;///< The desired floating position.
142         DockSide dockSide;  ///< The side to dock it.
143         int row;            ///< The row to dock it.
144         int column;         ///< The column to dock it.
145         bool shown;         ///< If true, initially shown.
146         bool stretch;       ///< If true, the dock will stretch to fill the @c dockSide
147         bool hideable;      ///< If true, the dock will be allowed to be closed by the user.
148         bool asTab;         ///< Add this window as a tab of an existing docked window (NOT IMPLEMENTED).
149         wxString bitmap;    ///< The bitmap to use.
150 
151         char padding[64];    ///< Unused space in this class for later enhancements.
152 	private:
153 		DECLARE_DYNAMIC_CLASS(CodeBlocksDockEvent)
154 };
155 typedef void (wxEvtHandler::*CodeBlocksDockEventFunction)(CodeBlocksDockEvent&);
156 
157 /** Event used to request from the main app to manage the view layouts. */
158 class EVTIMPORT CodeBlocksLayoutEvent : public wxEvent
159 {
160     public:
161         CodeBlocksLayoutEvent(wxEventType commandType = wxEVT_NULL, const wxString& layout_name = wxEmptyString)
wxEvent(wxID_ANY,commandType)162             : wxEvent(wxID_ANY, commandType),
163             layout(layout_name)
164         {}
CodeBlocksLayoutEvent(const CodeBlocksLayoutEvent & rhs)165         CodeBlocksLayoutEvent(const CodeBlocksLayoutEvent& rhs)
166             : wxEvent(rhs), layout(rhs.layout)
167         {}
Clone()168 		wxEvent *Clone() const override { return new CodeBlocksLayoutEvent(*this); }
169 
170         wxString layout;      ///< Layout's name.
171 	private:
172 		DECLARE_DYNAMIC_CLASS(CodeBlocksLayoutEvent)
173 };
174 typedef void (wxEvtHandler::*CodeBlocksLayoutEventFunction)(CodeBlocksLayoutEvent&);
175 
176 /** Event used to request from the main app to add a log.
177   *
178   * @note By adding a Logger*, the app takes ownership of it in cbEVT_ADD_LOG_WINDOW.
179   * By adding a wxWindow*, the ownership is not touched and you should delete the window after calling
180   * cbEVT_REMOVE_LOG_WINDOW for it.
181   */
182 class EVTIMPORT CodeBlocksLogEvent : public wxEvent
183 {
184     public:
185         CodeBlocksLogEvent(wxEventType commandType = wxEVT_NULL, Logger* logger = nullptr, const wxString& title = wxEmptyString, wxBitmap *icon = nullptr);
186         CodeBlocksLogEvent(wxEventType commandType, wxWindow* window, const wxString& title = wxEmptyString, wxBitmap *icon = nullptr);
187         CodeBlocksLogEvent(wxEventType commandType, int logIndex, const wxString& title = wxEmptyString, wxBitmap *icon = nullptr);
188         CodeBlocksLogEvent(const CodeBlocksLogEvent& rhs);
189 
Clone()190 		wxEvent *Clone() const override { return new CodeBlocksLogEvent(*this); }
191 
192         Logger* logger; ///< The logger.
193         int logIndex; ///< The logger's index.
194 		wxBitmap *icon; ///< The logger's icon. Valid only for cbEVT_ADD_LOG_WINDOW.
195 		wxString title; ///< The logger's title. Valid only for cbEVT_ADD_LOG_WINDOW.
196 		wxWindow* window; ///< A non-logger window. Needed at least by cbEVT_REMOVE_LOG_WINDOW.
197 	private:
198 		DECLARE_DYNAMIC_CLASS(CodeBlocksLogEvent)
199 };
200 typedef void (wxEvtHandler::*CodeBlocksLogEventFunction)(CodeBlocksLogEvent&);
201 
202 
203 // Thread event, this is basically a derived wxCommandEvent but enforce a deep copy of its
204 // m_cmdString member. wxEVT_COMMAND_MENU_SELECTED is reused and event handlers are matched by
205 // ids. This is just to conserve the old code, an alternative is use some
206 // new event type like: cbEVT_THREAD_LOG_MESSAGE, cbEVT_THREAD_LOGDEBUG_MESSAGE
207 // cbEVT_THREAD_SYSTEM_HEADER_UPDATE.
208 
209 class EVTIMPORT CodeBlocksThreadEvent : public wxCommandEvent
210 {
211 public:
212     CodeBlocksThreadEvent(wxEventType eventType = wxEVT_NULL, int id = wxID_ANY)
wxCommandEvent(eventType,id)213         : wxCommandEvent(eventType,id)
214         { }
215 
CodeBlocksThreadEvent(const CodeBlocksThreadEvent & event)216     CodeBlocksThreadEvent(const CodeBlocksThreadEvent& event)
217         : wxCommandEvent(event)
218     {
219         // make sure our string member (which uses COW, aka refcounting) is not
220         // shared by other wxString instances:
221         SetString(GetString().c_str());
222     }
223 
Clone()224     wxEvent *Clone() const override
225     {
226         return new CodeBlocksThreadEvent(*this);
227     }
228 
229 
230 private:
231     DECLARE_DYNAMIC_CLASS_NO_ASSIGN(CodeBlocksThreadEvent)
232 };
233 
234 typedef void ( wxEvtHandler::*CodeblocksThreadEventFunction) ( CodeBlocksThreadEvent&);
235 
236 #define CodeBlocksThreadEventHandler(func)  \
237 	(wxObjectEventFunction)(wxEventFunction) \
238 	wxStaticCastEvent(CodeblocksThreadEventFunction, &func)
239 
240 
241 #define EVT_CODEBLOCKS_THREAD(id, fn) \
242     DECLARE_EVENT_TABLE_ENTRY(wxEVT_COMMAND_MENU_SELECTED, id, wxID_ANY, \
243     (wxObjectEventFunction) (wxEventFunction) (CodeblocksThreadEventFunction) \
244     wxStaticCastEvent( ThreadEventFunction, & fn ), (wxObject *) NULL ),
245 
246 //
247 // if you add more event types, remember to add event sinks in Manager...
248 //
249 
250 // app events
251 extern EVTIMPORT const wxEventType cbEVT_APP_STARTUP_DONE;
252 #define EVT_APP_STARTUP_DONE(fn) DECLARE_EVENT_TABLE_ENTRY( cbEVT_APP_STARTUP_DONE, -1, -1, (wxObjectEventFunction)(wxEventFunction)(CodeBlocksEventFunction)&fn, (wxObject *) NULL ),
253 extern EVTIMPORT const wxEventType cbEVT_APP_START_SHUTDOWN;
254 #define EVT_APP_START_SHUTDOWN(fn) DECLARE_EVENT_TABLE_ENTRY( cbEVT_APP_START_SHUTDOWN, -1, -1, (wxObjectEventFunction)(wxEventFunction)(CodeBlocksEventFunction)&fn, (wxObject *) NULL ),
255 extern EVTIMPORT const wxEventType cbEVT_APP_ACTIVATED;
256 #define EVT_APP_ACTIVATED(fn) DECLARE_EVENT_TABLE_ENTRY( cbEVT_APP_ACTIVATED, -1, -1, (wxObjectEventFunction)(wxEventFunction)(CodeBlocksEventFunction)&fn, (wxObject *) NULL ),
257 extern EVTIMPORT const wxEventType cbEVT_APP_DEACTIVATED;
258 #define EVT_APP_DEACTIVATED(fn) DECLARE_EVENT_TABLE_ENTRY( cbEVT_APP_DEACTIVATED, -1, -1, (wxObjectEventFunction)(wxEventFunction)(CodeBlocksEventFunction)&fn, (wxObject *) NULL ),
259 extern EVTIMPORT const wxEventType cbEVT_APP_CMDLINE;
260 #define EVT_APP_CMDLINE(fn) DECLARE_EVENT_TABLE_ENTRY( cbEVT_APP_CMDLINE, -1, -1, (wxObjectEventFunction)(wxEventFunction)(CodeBlocksEventFunction)&fn, (wxObject *) NULL ),
261 
262 
263 // plugin events
264 extern EVTIMPORT const wxEventType cbEVT_PLUGIN_ATTACHED;
265 #define EVT_PLUGIN_ATTACHED(fn) DECLARE_EVENT_TABLE_ENTRY( cbEVT_PLUGIN_ATTACHED, -1, -1, (wxObjectEventFunction)(wxEventFunction)(CodeBlocksEventFunction)&fn, (wxObject *) NULL ),
266 extern EVTIMPORT const wxEventType cbEVT_PLUGIN_RELEASED;
267 #define EVT_PLUGIN_RELEASED(fn) DECLARE_EVENT_TABLE_ENTRY( cbEVT_PLUGIN_RELEASED, -1, -1, (wxObjectEventFunction)(wxEventFunction)(CodeBlocksEventFunction)&fn, (wxObject *) NULL ),
268 extern EVTIMPORT const wxEventType cbEVT_PLUGIN_INSTALLED;
269 #define EVT_PLUGIN_INSTALLED(fn) DECLARE_EVENT_TABLE_ENTRY( cbEVT_PLUGIN_INSTALLED, -1, -1, (wxObjectEventFunction)(wxEventFunction)(CodeBlocksEventFunction)&fn, (wxObject *) NULL ),
270 extern EVTIMPORT const wxEventType cbEVT_PLUGIN_UNINSTALLED;
271 #define EVT_PLUGIN_UNINSTALLED(fn) DECLARE_EVENT_TABLE_ENTRY( cbEVT_PLUGIN_UNINSTALLED, -1, -1, (wxObjectEventFunction)(wxEventFunction)(CodeBlocksEventFunction)&fn, (wxObject *) NULL ),
272 extern EVTIMPORT const wxEventType cbEVT_PLUGIN_LOADING_COMPLETE;
273 #define EVT_PLUGIN_LOADING_COMPLETE(fn) DECLARE_EVENT_TABLE_ENTRY( cbEVT_PLUGIN_LOADING_COMPLETE, -1, -1, (wxObjectEventFunction)(wxEventFunction)(CodeBlocksEventFunction)&fn, (wxObject *) NULL ),
274 
275 // editor events
276 extern EVTIMPORT const wxEventType cbEVT_EDITOR_CLOSE;
277 #define EVT_EDITOR_CLOSE(fn) DECLARE_EVENT_TABLE_ENTRY( cbEVT_EDITOR_CLOSE, -1, -1, (wxObjectEventFunction)(wxEventFunction)(CodeBlocksEventFunction)&fn, (wxObject *) NULL ),
278 extern EVTIMPORT const wxEventType cbEVT_EDITOR_OPEN;
279 #define EVT_EDITOR_OPEN(fn) DECLARE_EVENT_TABLE_ENTRY( cbEVT_EDITOR_OPEN, -1, -1, (wxObjectEventFunction)(wxEventFunction)(CodeBlocksEventFunction)&fn, (wxObject *) NULL ),
280 extern EVTIMPORT const wxEventType cbEVT_EDITOR_SWITCHED;
281 #define EVT_EDITOR_SWITCHED(fn) DECLARE_EVENT_TABLE_ENTRY( cbEVT_EDITOR_SWITCHED, -1, -1, (wxObjectEventFunction)(wxEventFunction)(CodeBlocksEventFunction)&fn, (wxObject *) NULL ),
282 extern EVTIMPORT const wxEventType cbEVT_EDITOR_ACTIVATED;
283 #define EVT_EDITOR_ACTIVATED(fn) DECLARE_EVENT_TABLE_ENTRY( cbEVT_EDITOR_ACTIVATED, -1, -1, (wxObjectEventFunction)(wxEventFunction)(CodeBlocksEventFunction)&fn, (wxObject *) NULL ),
284 extern EVTIMPORT const wxEventType cbEVT_EDITOR_DEACTIVATED;
285 #define EVT_EDITOR_DEACTIVATED(fn) DECLARE_EVENT_TABLE_ENTRY( cbEVT_EDITOR_DEACTIVATED, -1, -1, (wxObjectEventFunction)(wxEventFunction)(CodeBlocksEventFunction)&fn, (wxObject *) NULL ),
286 extern EVTIMPORT const wxEventType cbEVT_EDITOR_BEFORE_SAVE;
287 #define EVT_EDITOR_BEFORE_SAVE(fn) DECLARE_EVENT_TABLE_ENTRY( cbEVT_EDITOR_BEFORE_SAVE, -1, -1, (wxObjectEventFunction)(wxEventFunction)(CodeBlocksEventFunction)&fn, (wxObject *) NULL ),
288 extern EVTIMPORT const wxEventType cbEVT_EDITOR_SAVE;
289 #define EVT_EDITOR_SAVE(fn) DECLARE_EVENT_TABLE_ENTRY( cbEVT_EDITOR_SAVE, -1, -1, (wxObjectEventFunction)(wxEventFunction)(CodeBlocksEventFunction)&fn, (wxObject *) NULL ),
290 extern EVTIMPORT const wxEventType cbEVT_EDITOR_MODIFIED;
291 #define EVT_EDITOR_MODIFIED(fn) DECLARE_EVENT_TABLE_ENTRY( cbEVT_EDITOR_MODIFIED, -1, -1, (wxObjectEventFunction)(wxEventFunction)(CodeBlocksEventFunction)&fn, (wxObject *) NULL ),
292 extern EVTIMPORT const wxEventType cbEVT_EDITOR_TOOLTIP;
293 #define EVT_EDITOR_TOOLTIP(fn) DECLARE_EVENT_TABLE_ENTRY( cbEVT_EDITOR_TOOLTIP, -1, -1, (wxObjectEventFunction)(wxEventFunction)(CodeBlocksEventFunction)&fn, (wxObject *) NULL ),
294 extern EVTIMPORT const wxEventType cbEVT_EDITOR_TOOLTIP_CANCEL;
295 #define EVT_EDITOR_TOOLTIP_CANCEL(fn) DECLARE_EVENT_TABLE_ENTRY( cbEVT_EDITOR_TOOLTIP_CANCEL, -1, -1, (wxObjectEventFunction)(wxEventFunction)(CodeBlocksEventFunction)&fn, (wxObject *) NULL ),
296 extern EVTIMPORT const wxEventType cbEVT_EDITOR_SPLIT;
297 #define EVT_EDITOR_SPLIT(fn) DECLARE_EVENT_TABLE_ENTRY( cbEVT_EDITOR_SPLIT, -1, -1, (wxObjectEventFunction)(wxEventFunction)(CodeBlocksEventFunction)&fn, (wxObject *) NULL ),
298 extern EVTIMPORT const wxEventType cbEVT_EDITOR_UNSPLIT;
299 #define EVT_EDITOR_UNSPLIT(fn) DECLARE_EVENT_TABLE_ENTRY( cbEVT_EDITOR_UNSPLIT, -1, -1, (wxObjectEventFunction)(wxEventFunction)(CodeBlocksEventFunction)&fn, (wxObject *) NULL ),
300 extern EVTIMPORT const wxEventType cbEVT_EDITOR_UPDATE_UI;
301 #define EVT_EDITOR_UPDATE_UI(fn) DECLARE_EVENT_TABLE_ENTRY( cbEVT_EDITOR_UPDATE_UI, -1, -1, (wxObjectEventFunction)(wxEventFunction)(CodeBlocksEventFunction)&fn, (wxObject *) NULL ),
302 
303 extern EVTIMPORT const wxEventType cbEVT_EDITOR_CC_DONE;
304 #define EVT_EDITOR_CC_DONE(fn) DECLARE_EVENT_TABLE_ENTRY( cbEVT_EDITOR_CC_DONE, -1, -1, (wxObjectEventFunction)(wxEventFunction)(CodeBlocksEventFunction)&fn, (wxObject *) NULL ),
305 
306 // project events
307 extern EVTIMPORT const wxEventType cbEVT_PROJECT_NEW;
308 #define EVT_PROJECT_NEW(fn) DECLARE_EVENT_TABLE_ENTRY( cbEVT_PROJECT_NEW, -1, -1, (wxObjectEventFunction)(wxEventFunction)(CodeBlocksEventFunction)&fn, (wxObject *) NULL ),
309 extern EVTIMPORT const wxEventType cbEVT_PROJECT_CLOSE;
310 #define EVT_PROJECT_CLOSE(fn) DECLARE_EVENT_TABLE_ENTRY( cbEVT_PROJECT_CLOSE, -1, -1, (wxObjectEventFunction)(wxEventFunction)(CodeBlocksEventFunction)&fn, (wxObject *) NULL ),
311 extern EVTIMPORT const wxEventType cbEVT_PROJECT_OPEN;
312 #define EVT_PROJECT_OPEN(fn) DECLARE_EVENT_TABLE_ENTRY( cbEVT_PROJECT_OPEN, -1, -1, (wxObjectEventFunction)(wxEventFunction)(CodeBlocksEventFunction)&fn, (wxObject *) NULL ),
313 extern EVTIMPORT const wxEventType cbEVT_PROJECT_SAVE;
314 #define EVT_PROJECT_SAVE(fn) DECLARE_EVENT_TABLE_ENTRY( cbEVT_PROJECT_SAVE, -1, -1, (wxObjectEventFunction)(wxEventFunction)(CodeBlocksEventFunction)&fn, (wxObject *) NULL ),
315 extern EVTIMPORT const wxEventType cbEVT_PROJECT_ACTIVATE;
316 #define EVT_PROJECT_ACTIVATE(fn) DECLARE_EVENT_TABLE_ENTRY( cbEVT_PROJECT_ACTIVATE, -1, -1, (wxObjectEventFunction)(wxEventFunction)(CodeBlocksEventFunction)&fn, (wxObject *) NULL ),
317 extern EVTIMPORT const wxEventType cbEVT_PROJECT_BEGIN_ADD_FILES;
318 #define EVT_PROJECT_BEGIN_ADD_FILES(fn) DECLARE_EVENT_TABLE_ENTRY( cbEVT_PROJECT_BEGIN_ADD_FILES, -1, -1, (wxObjectEventFunction)(wxEventFunction)(CodeBlocksEventFunction)&fn, (wxObject *) NULL ),
319 extern EVTIMPORT const wxEventType cbEVT_PROJECT_END_ADD_FILES;
320 #define EVT_PROJECT_END_ADD_FILES(fn) DECLARE_EVENT_TABLE_ENTRY( cbEVT_PROJECT_END_ADD_FILES, -1, -1, (wxObjectEventFunction)(wxEventFunction)(CodeBlocksEventFunction)&fn, (wxObject *) NULL ),
321 extern EVTIMPORT const wxEventType cbEVT_PROJECT_BEGIN_REMOVE_FILES;
322 #define EVT_PROJECT_BEGIN_REMOVE_FILES(fn) DECLARE_EVENT_TABLE_ENTRY( cbEVT_PROJECT_BEGIN_REMOVE_FILES, -1, -1, (wxObjectEventFunction)(wxEventFunction)(CodeBlocksEventFunction)&fn, (wxObject *) NULL ),
323 extern EVTIMPORT const wxEventType cbEVT_PROJECT_END_REMOVE_FILES;
324 #define EVT_PROJECT_END_REMOVE_FILES(fn) DECLARE_EVENT_TABLE_ENTRY( cbEVT_PROJECT_END_REMOVE_FILES, -1, -1, (wxObjectEventFunction)(wxEventFunction)(CodeBlocksEventFunction)&fn, (wxObject *) NULL ),
325 extern EVTIMPORT const wxEventType cbEVT_PROJECT_FILE_ADDED;
326 #define EVT_PROJECT_FILE_ADDED(fn) DECLARE_EVENT_TABLE_ENTRY( cbEVT_PROJECT_FILE_ADDED, -1, -1, (wxObjectEventFunction)(wxEventFunction)(CodeBlocksEventFunction)&fn, (wxObject *) NULL ),
327 extern EVTIMPORT const wxEventType cbEVT_PROJECT_FILE_REMOVED;
328 #define EVT_PROJECT_FILE_REMOVED(fn) DECLARE_EVENT_TABLE_ENTRY( cbEVT_PROJECT_FILE_REMOVED, -1, -1, (wxObjectEventFunction)(wxEventFunction)(CodeBlocksEventFunction)&fn, (wxObject *) NULL ),
329 extern EVTIMPORT const wxEventType cbEVT_PROJECT_FILE_CHANGED;
330 #define EVT_PROJECT_FILE_CHANGED(fn) DECLARE_EVENT_TABLE_ENTRY( cbEVT_PROJECT_FILE_CHANGED, -1, -1, (wxObjectEventFunction)(wxEventFunction)(CodeBlocksEventFunction)&fn, (wxObject *) NULL ),
331 extern EVTIMPORT const wxEventType cbEVT_PROJECT_POPUP_MENU;
332 #define EVT_PROJECT_POPUP_MENU(fn) DECLARE_EVENT_TABLE_ENTRY( cbEVT_PROJECT_POPUP_MENU, -1, -1, (wxObjectEventFunction)(wxEventFunction)(CodeBlocksEventFunction)&fn, (wxObject *) NULL ),
333 extern EVTIMPORT const wxEventType cbEVT_PROJECT_TARGETS_MODIFIED;
334 #define EVT_PROJECT_TARGETS_MODIFIED(fn) DECLARE_EVENT_TABLE_ENTRY( cbEVT_PROJECT_TARGETS_MODIFIED, -1, -1, (wxObjectEventFunction)(wxEventFunction)(CodeBlocksEventFunction)&fn, (wxObject *) NULL ),
335 extern EVTIMPORT const wxEventType cbEVT_PROJECT_RENAMED;
336 #define EVT_PROJECT_RENAMED(fn) DECLARE_EVENT_TABLE_ENTRY( cbEVT_PROJECT_RENAMED, -1, -1, (wxObjectEventFunction)(wxEventFunction)(CodeBlocksEventFunction)&fn, (wxObject *) NULL ),
337 extern EVTIMPORT const wxEventType cbEVT_PROJECT_OPTIONS_CHANGED;
338 #define EVT_PROJECT_OPTIONS_CHANGED(fn) DECLARE_EVENT_TABLE_ENTRY( cbEVT_PROJECT_OPTIONS_CHANGED, -1, -1, (wxObjectEventFunction)(wxEventFunction)(CodeBlocksEventFunction)&fn, (wxObject *) NULL ),
339 extern EVTIMPORT const wxEventType cbEVT_WORKSPACE_CHANGED;
340 #define EVT_WORKSPACE_CHANGED(fn) DECLARE_EVENT_TABLE_ENTRY( cbEVT_WORKSPACE_CHANGED, -1, -1, (wxObjectEventFunction)(wxEventFunction)(CodeBlocksEventFunction)&fn, (wxObject *) NULL ),
341 extern EVTIMPORT const wxEventType cbEVT_WORKSPACE_LOADING_COMPLETE;
342 #define EVT_WORKSPACE_LOADING_COMPLETE(fn) DECLARE_EVENT_TABLE_ENTRY( cbEVT_WORKSPACE_LOADING_COMPLETE, -1, -1, (wxObjectEventFunction)(wxEventFunction)(CodeBlocksEventFunction)&fn, (wxObject *) NULL ),
343 extern EVTIMPORT const wxEventType cbEVT_WORKSPACE_CLOSING_BEGIN;
344 #define EVT_WORKSPACE_CLOSING_BEGIN(fn) DECLARE_EVENT_TABLE_ENTRY( cbEVT_WORKSPACE_CLOSING_BEGIN, -1, -1, (wxObjectEventFunction)(wxEventFunction)(CodeBlocksEventFunction)&fn, (wxObject *) NULL ),
345 extern EVTIMPORT const wxEventType cbEVT_WORKSPACE_CLOSING_COMPLETE;
346 #define EVT_WORKSPACE_CLOSING_COMPLETE(fn) DECLARE_EVENT_TABLE_ENTRY( cbEVT_WORKSPACE_CLOSING_COMPLETE, -1, -1, (wxObjectEventFunction)(wxEventFunction)(CodeBlocksEventFunction)&fn, (wxObject *) NULL ),
347 
348 // build targets events
349 extern EVTIMPORT const wxEventType cbEVT_BUILDTARGET_ADDED;
350 #define EVT_BUILDTARGET_ADDED(fn) DECLARE_EVENT_TABLE_ENTRY( cbEVT_BUILDTARGET_ADDED, -1, -1, (wxObjectEventFunction) (wxEventFunction) (CodeBlocksEventFunction) & fn, (wxObject *) NULL ),
351 extern EVTIMPORT const wxEventType cbEVT_BUILDTARGET_REMOVED;
352 #define EVT_BUILDTARGET_REMOVED(fn) DECLARE_EVENT_TABLE_ENTRY( cbEVT_BUILDTARGET_REMOVED, -1, -1, (wxObjectEventFunction) (wxEventFunction) (CodeBlocksEventFunction) & fn, (wxObject *) NULL ),
353 extern EVTIMPORT const wxEventType cbEVT_BUILDTARGET_RENAMED;
354 #define EVT_BUILDTARGET_RENAMED(fn) DECLARE_EVENT_TABLE_ENTRY( cbEVT_BUILDTARGET_RENAMED, -1, -1, (wxObjectEventFunction) (wxEventFunction) (CodeBlocksEventFunction) & fn, (wxObject *) NULL ),
355 extern EVTIMPORT const wxEventType cbEVT_BUILDTARGET_SELECTED;
356 #define EVT_BUILDTARGET_SELECTED(fn) DECLARE_EVENT_TABLE_ENTRY( cbEVT_BUILDTARGET_SELECTED, -1, -1, (wxObjectEventFunction) (wxEventFunction) (CodeBlocksEventFunction) & fn, (wxObject *) NULL ),
357 
358 // pipedprocess events
359 extern EVTIMPORT const wxEventType cbEVT_PIPEDPROCESS_STDOUT;
360 #define EVT_PIPEDPROCESS_STDOUT(id, fn) DECLARE_EVENT_TABLE_ENTRY( cbEVT_PIPEDPROCESS_STDOUT, id, wxID_ANY, (wxObjectEventFunction) (wxEventFunction) (wxCommandEventFunction) & fn, (wxObject *) NULL ),
361 #define EVT_PIPEDPROCESS_STDOUT_RANGE(id, id1, fn) DECLARE_EVENT_TABLE_ENTRY( cbEVT_PIPEDPROCESS_STDOUT, id, id1, (wxObjectEventFunction) (wxEventFunction) (wxCommandEventFunction) & fn, (wxObject *) NULL ),
362 extern EVTIMPORT const wxEventType cbEVT_PIPEDPROCESS_STDERR;
363 #define EVT_PIPEDPROCESS_STDERR(id, fn) DECLARE_EVENT_TABLE_ENTRY( cbEVT_PIPEDPROCESS_STDERR, id, wxID_ANY, (wxObjectEventFunction) (wxEventFunction) (wxCommandEventFunction) & fn, (wxObject *) NULL ),
364 #define EVT_PIPEDPROCESS_STDERR_RANGE(id, id1, fn) DECLARE_EVENT_TABLE_ENTRY( cbEVT_PIPEDPROCESS_STDERR, id, id1, (wxObjectEventFunction) (wxEventFunction) (wxCommandEventFunction) & fn, (wxObject *) NULL ),
365 extern EVTIMPORT const wxEventType cbEVT_PIPEDPROCESS_TERMINATED;
366 #define EVT_PIPEDPROCESS_TERMINATED(id, fn) DECLARE_EVENT_TABLE_ENTRY( cbEVT_PIPEDPROCESS_TERMINATED, id, wxID_ANY, (wxObjectEventFunction) (wxEventFunction) (wxCommandEventFunction) (wxNotifyEventFunction) (CodeBlocksEventFunction)&fn, (wxObject *) NULL ),
367 #define EVT_PIPEDPROCESS_TERMINATED_RANGE(id, id1, fn) DECLARE_EVENT_TABLE_ENTRY( cbEVT_PIPEDPROCESS_TERMINATED, id, id1, (wxObjectEventFunction) (wxEventFunction) (wxCommandEventFunction) & fn, (wxObject *) NULL ),
368 
369 // thread-pool events
370 extern EVTIMPORT const wxEventType cbEVT_THREADTASK_STARTED;
371 #define EVT_THREADTASK_STARTED(id, fn) DECLARE_EVENT_TABLE_ENTRY( cbEVT_THREADTASK_STARTED, id, wxID_ANY, (wxObjectEventFunction) (wxEventFunction) (wxCommandEventFunction) & fn, (wxObject *) NULL ),
372 extern EVTIMPORT const wxEventType cbEVT_THREADTASK_ENDED;
373 #define EVT_THREADTASK_ENDED(id, fn) DECLARE_EVENT_TABLE_ENTRY( cbEVT_THREADTASK_ENDED, id, wxID_ANY, (wxObjectEventFunction) (wxEventFunction) (wxCommandEventFunction) & fn, (wxObject *) NULL ),
374 extern EVTIMPORT const wxEventType cbEVT_THREADTASK_ALLDONE;
375 #define EVT_THREADTASK_ALLDONE(id, fn) DECLARE_EVENT_TABLE_ENTRY( cbEVT_THREADTASK_ALLDONE, id, wxID_ANY, (wxObjectEventFunction) (wxEventFunction) (wxCommandEventFunction) & fn, (wxObject *) NULL ),
376 
377 // request app to add and manage a docked window
378 extern EVTIMPORT const wxEventType cbEVT_ADD_DOCK_WINDOW;
379 #define EVT_ADD_DOCK_WINDOW(fn) DECLARE_EVENT_TABLE_ENTRY( cbEVT_ADD_DOCK_WINDOW, -1, -1, (wxObjectEventFunction) (wxEventFunction) (CodeBlocksDockEventFunction) & fn, (wxObject *) NULL ),
380 // request app to stop managing a docked window
381 extern EVTIMPORT const wxEventType cbEVT_REMOVE_DOCK_WINDOW;
382 #define EVT_REMOVE_DOCK_WINDOW(fn) DECLARE_EVENT_TABLE_ENTRY( cbEVT_REMOVE_DOCK_WINDOW, -1, -1, (wxObjectEventFunction) (wxEventFunction) (CodeBlocksDockEventFunction) & fn, (wxObject *) NULL ),
383 // request app to show a docked window
384 extern EVTIMPORT const wxEventType cbEVT_SHOW_DOCK_WINDOW;
385 #define EVT_SHOW_DOCK_WINDOW(fn) DECLARE_EVENT_TABLE_ENTRY( cbEVT_SHOW_DOCK_WINDOW, -1, -1, (wxObjectEventFunction) (wxEventFunction) (CodeBlocksDockEventFunction) & fn, (wxObject *) NULL ),
386 // request app to hide a docked window
387 extern EVTIMPORT const wxEventType cbEVT_HIDE_DOCK_WINDOW;
388 #define EVT_HIDE_DOCK_WINDOW(fn) DECLARE_EVENT_TABLE_ENTRY( cbEVT_HIDE_DOCK_WINDOW, -1, -1, (wxObjectEventFunction) (wxEventFunction) (CodeBlocksDockEventFunction) & fn, (wxObject *) NULL ),
389 // app notifies that a docked window has been hidden/shown
390 // to actually find out its state use IsWindowReallyShown(event.pWindow);
391 extern EVTIMPORT const wxEventType cbEVT_DOCK_WINDOW_VISIBILITY;
392 #define EVT_DOCK_WINDOW_VISIBILITY(fn) DECLARE_EVENT_TABLE_ENTRY( cbEVT_DOCK_WINDOW_VISIBILITY, -1, -1, (wxObjectEventFunction) (wxEventFunction) (CodeBlocksDockEventFunction) & fn, (wxObject *) NULL ),
393 // force update current view layout
394 extern EVTIMPORT const wxEventType cbEVT_UPDATE_VIEW_LAYOUT;
395 #define EVT_UPDATE_VIEW_LAYOUT(fn) DECLARE_EVENT_TABLE_ENTRY( cbEVT_UPDATE_VIEW_LAYOUT, -1, -1, (wxObjectEventFunction) (wxEventFunction) (CodeBlocksLayoutEventFunction) & fn, (wxObject *) NULL ),
396 // ask which is the current view layout
397 extern EVTIMPORT const wxEventType cbEVT_QUERY_VIEW_LAYOUT;
398 #define EVT_QUERY_VIEW_LAYOUT(fn) DECLARE_EVENT_TABLE_ENTRY( cbEVT_QUERY_VIEW_LAYOUT, -1, -1, (wxObjectEventFunction) (wxEventFunction) (CodeBlocksLayoutEventFunction) & fn, (wxObject *) NULL ),
399 // request app to switch view layout
400 extern EVTIMPORT const wxEventType cbEVT_SWITCH_VIEW_LAYOUT;
401 #define EVT_SWITCH_VIEW_LAYOUT(fn) DECLARE_EVENT_TABLE_ENTRY( cbEVT_SWITCH_VIEW_LAYOUT, -1, -1, (wxObjectEventFunction) (wxEventFunction) (CodeBlocksLayoutEventFunction) & fn, (wxObject *) NULL ),
402 // app notifies that a new layout has been applied
403 extern EVTIMPORT const wxEventType cbEVT_SWITCHED_VIEW_LAYOUT;
404 #define EVT_SWITCHED_VIEW_LAYOUT(fn) DECLARE_EVENT_TABLE_ENTRY( cbEVT_SWITCHED_VIEW_LAYOUT, -1, -1, (wxObjectEventFunction) (wxEventFunction) (CodeBlocksLayoutEventFunction) & fn, (wxObject *) NULL ),
405 // app notifies that the menubar is started being (re)created
406 extern EVTIMPORT const wxEventType cbEVT_MENUBAR_CREATE_BEGIN;
407 #define EVT_MENUBAR_CREATE_BEGIN(fn) DECLARE_EVENT_TABLE_ENTRY( cbEVT_MENUBAR_CREATE_BEGIN, -1, -1, (wxObjectEventFunction) (wxEventFunction) (CodeBlocksEventFunction) & fn, (wxObject *) NULL ),
408 // app notifies that the menubar (re)creation ended
409 extern EVTIMPORT const wxEventType cbEVT_MENUBAR_CREATE_END;
410 #define EVT_MENUBAR_CREATE_END(fn) DECLARE_EVENT_TABLE_ENTRY( cbEVT_MENUBAR_CREATE_END, -1, -1, (wxObjectEventFunction) (wxEventFunction) (CodeBlocksEventFunction) & fn, (wxObject *) NULL ),
411 
412 // compiler-related events (compiler plugins usually fire them)
413 extern EVTIMPORT const wxEventType cbEVT_COMPILER_STARTED;
414 #define EVT_COMPILER_STARTED(fn) DECLARE_EVENT_TABLE_ENTRY( cbEVT_COMPILER_STARTED, -1, -1, (wxObjectEventFunction)(wxEventFunction)(CodeBlocksEventFunction)&fn, (wxObject *) NULL ),
415 extern EVTIMPORT const wxEventType cbEVT_COMPILER_FINISHED;
416 #define EVT_COMPILER_FINISHED(fn) DECLARE_EVENT_TABLE_ENTRY( cbEVT_COMPILER_FINISHED, -1, -1, (wxObjectEventFunction)(wxEventFunction)(CodeBlocksEventFunction)&fn, (wxObject *) NULL ),
417 extern EVTIMPORT const wxEventType cbEVT_COMPILER_SET_BUILD_OPTIONS;
418 #define EVT_COMPILER_SET_BUILD_OPTIONS(fn) DECLARE_EVENT_TABLE_ENTRY( cbEVT_COMPILER_SET_BUILD_OPTIONS, -1, -1, (wxObjectEventFunction)(wxEventFunction)(CodeBlocksEventFunction)&fn, (wxObject *) NULL ),
419 extern EVTIMPORT const wxEventType cbEVT_CLEAN_PROJECT_STARTED;
420 #define EVT_CLEAN_PROJECT_STARTED(fn) DECLARE_EVENT_TABLE_ENTRY( cbEVT_CLEAN_PROJECT_STARTED, -1, -1, (wxObjectEventFunction)(wxEventFunction)(CodeBlocksEventFunction)&fn, (wxObject *) NULL ),
421 extern EVTIMPORT const wxEventType cbEVT_CLEAN_WORKSPACE_STARTED;
422 #define EVT_CLEAN_WORKSPACE_STARTED(fn) DECLARE_EVENT_TABLE_ENTRY( cbEVT_CLEAN_WORKSPACE_STARTED, -1, -1, (wxObjectEventFunction)(wxEventFunction)(CodeBlocksEventFunction)&fn, (wxObject *) NULL ),
423 extern EVTIMPORT const wxEventType cbEVT_COMPILER_SETTINGS_CHANGED;
424 #define EVT_COMPILER_SETTINGS_CHANGED(fn) DECLARE_EVENT_TABLE_ENTRY( cbEVT_COMPILER_SETTINGS_CHANGED, -1, -1, (wxObjectEventFunction)(wxEventFunction)(CodeBlocksEventFunction)&fn, (wxObject *) NULL ),
425 
426 // request app to compile a single file
427 extern EVTIMPORT const wxEventType cbEVT_COMPILE_FILE_REQUEST;
428 #define EVT_COMPILE_FILE_REQUEST(fn) DECLARE_EVENT_TABLE_ENTRY( cbEVT_COMPILE_FILE_REQUEST, -1, -1, (wxObjectEventFunction)(wxEventFunction)(CodeBlocksEventFunction)&fn, (wxObject *) NULL ),
429 
430 // debugger-related events (debugger plugins must fire them)
431 extern EVTIMPORT const wxEventType cbEVT_DEBUGGER_STARTED;
432 #define EVT_DEBUGGER_STARTED(fn) DECLARE_EVENT_TABLE_ENTRY( cbEVT_DEBUGGER_STARTED, -1, -1, (wxObjectEventFunction)(wxEventFunction)(CodeBlocksEventFunction)&fn, (wxObject *) NULL ),
433 extern EVTIMPORT const wxEventType cbEVT_DEBUGGER_PAUSED;
434 #define EVT_DEBUGGER_PAUSED(fn) DECLARE_EVENT_TABLE_ENTRY( cbEVT_DEBUGGER_PAUSED, -1, -1, (wxObjectEventFunction)(wxEventFunction)(CodeBlocksEventFunction)&fn, (wxObject *) NULL ),
435 extern EVTIMPORT const wxEventType cbEVT_DEBUGGER_CONTINUED;
436 #define cbEVT_DEBUGGER_CONTINUED(fn) DECLARE_EVENT_TABLE_ENTRY( cbEVT_DEBUGGER_CONTINUED, -1, -1, (wxObjectEventFunction)(wxEventFunction)(CodeBlocksEventFunction)&fn, (wxObject *) NULL ),
437 extern EVTIMPORT const wxEventType cbEVT_DEBUGGER_FINISHED;
438 #define EVT_DEBUGGER_FINISHED(fn) DECLARE_EVENT_TABLE_ENTRY( cbEVT_DEBUGGER_FINISHED, -1, -1, (wxObjectEventFunction)(wxEventFunction)(CodeBlocksEventFunction)&fn, (wxObject *) NULL ),
439 extern EVTIMPORT const wxEventType cbEVT_DEBUGGER_CURSOR_CHANGED;
440 #define EVT_DEBUGGER_CURSOR_CHANGED(fn) DECLARE_EVENT_TABLE_ENTRY( cbEVT_DEBUGGER_CURSOR_CHANGED, -1, -1, (wxObjectEventFunction)(wxEventFunction)(CodeBlocksEventFunction)&fn, (wxObject *) NULL ),
441 /// Event sent when the data for a particular debug window is acquired by the debugger plugin and
442 /// can be presented to the user. Calling GetInt on the event object can be used to find out the
443 /// type of window which has been updated. The value has type cbDebuggerPlugin::DebugWindows.
444 extern EVTIMPORT const wxEventType cbEVT_DEBUGGER_UPDATED;
445 #define EVT_DEBUGGER_UPDATED(fn) DECLARE_EVENT_TABLE_ENTRY( cbEVT_DEBUGGER_UPDATED, -1, -1, (wxObjectEventFunction)(wxEventFunction)(CodeBlocksEventFunction)&fn, (wxObject *) NULL ),
446 
447 // logger-related events
448 
449 // add a log window
450 extern EVTIMPORT const wxEventType cbEVT_ADD_LOG_WINDOW;
451 #define EVT_ADD_LOG_WINDOW(fn) DECLARE_EVENT_TABLE_ENTRY( cbEVT_ADD_LOG_WINDOW, -1, -1, (wxObjectEventFunction)(wxEventFunction)(CodeBlocksLogEventFunction)&fn, (wxObject *) NULL ),
452 // remove a log window
453 extern EVTIMPORT const wxEventType cbEVT_REMOVE_LOG_WINDOW;
454 #define EVT_REMOVE_LOG_WINDOW(fn) DECLARE_EVENT_TABLE_ENTRY( cbEVT_REMOVE_LOG_WINDOW, -1, -1, (wxObjectEventFunction)(wxEventFunction)(CodeBlocksLogEventFunction)&fn, (wxObject *) NULL ),
455 // switch to a log window (make it visible)
456 extern EVTIMPORT const wxEventType cbEVT_HIDE_LOG_WINDOW;
457 #define EVT_HIIDE_LOG_WINDOW(fn) DECLARE_EVENT_TABLE_ENTRY( cbEVT_HIDE_LOG_WINDOW, -1, -1, (wxObjectEventFunction)(wxEventFunction)(CodeBlocksLogEventFunction)&fn, (wxObject *) NULL ),
458 // switch to a log window (make it visible)
459 extern EVTIMPORT const wxEventType cbEVT_SWITCH_TO_LOG_WINDOW;
460 #define EVT_SWITCH_TO_LOG_WINDOW(fn) DECLARE_EVENT_TABLE_ENTRY( cbEVT_SWITCH_TO_LOG_WINDOW, -1, -1, (wxObjectEventFunction)(wxEventFunction)(CodeBlocksLogEventFunction)&fn, (wxObject *) NULL ),
461 // gets the active log window
462 extern EVTIMPORT const wxEventType cbEVT_GET_ACTIVE_LOG_WINDOW;
463 #define EVT_GET_ACTIVE_LOG_WINDOW(fn) DECLARE_EVENT_TABLE_ENTRY( cbEVT_GET_ACTIVE_LOG_WINDOW, -1, -1, (wxObjectEventFunction)(wxEventFunction)(CodeBlocksLogEventFunction)&fn, (wxObject *) NULL ),
464 // show log manager
465 extern EVTIMPORT const wxEventType cbEVT_SHOW_LOG_MANAGER;
466 #define EVT_SHOW_LOG_MANAGER(fn) DECLARE_EVENT_TABLE_ENTRY( cbEVT_SHOW_LOG_MANAGER, -1, -1, (wxObjectEventFunction)(wxEventFunction)(CodeBlocksLogEventFunction)&fn, (wxObject *) NULL ),
467 // hide log manager
468 extern EVTIMPORT const wxEventType cbEVT_HIDE_LOG_MANAGER;
469 #define EVT_HIDE_LOG_MANAGER(fn) DECLARE_EVENT_TABLE_ENTRY( cbEVT_HIDE_LOG_MANAGER, -1, -1, (wxObjectEventFunction)(wxEventFunction)(CodeBlocksLogEventFunction)&fn, (wxObject *) NULL ),
470 // "lock" it (used with auto-hiding functionality)
471 extern EVTIMPORT const wxEventType cbEVT_LOCK_LOG_MANAGER;
472 #define EVT_LOCK_LOG_MANAGER(fn) DECLARE_EVENT_TABLE_ENTRY( cbEVT_LOCK_LOG_MANAGER, -1, -1, (wxObjectEventFunction)(wxEventFunction)(CodeBlocksLogEventFunction)&fn, (wxObject *) NULL ),
473 // "unlock" it (used with auto-hiding functionality)
474 extern EVTIMPORT const wxEventType cbEVT_UNLOCK_LOG_MANAGER;
475 #define EVT_UNLOCK_LOG_MANAGER(fn) DECLARE_EVENT_TABLE_ENTRY( cbEVT_UNLOCK_LOG_MANAGER, -1, -1, (wxObjectEventFunction)(wxEventFunction)(CodeBlocksLogEventFunction)&fn, (wxObject *) NULL ),
476 
477 //cbAUiNotebook related events
478 // left doubleclick on a tab
479 extern EVTIMPORT const wxEventType cbEVT_CBAUIBOOK_LEFT_DCLICK;
480 #define EVT_CBAUIBOOK_LEFT_DCLICK(winid, fn) DECLARE_EVENT_TABLE_ENTRY( cbEVT_CBAUIBOOK_LEFT_DCLICK, winid, -1, (wxObjectEventFunction)(wxEventFunction)(wxMouseEventFunction)&fn, (wxObject *) NULL ),
481 
482 // code-completion related events (CodeCompletion plugin usually fires them)
483 extern EVTIMPORT const wxEventType cbEVT_COMPLETE_CODE;
484 #define EVT_COMPLETE_CODE(fn) DECLARE_EVENT_TABLE_ENTRY( cbEVT_COMPLETE_CODE, -1, -1, (wxObjectEventFunction)(wxEventFunction)(CodeBlocksEventFunction)&fn, (wxObject *) NULL ),
485 extern EVTIMPORT const wxEventType cbEVT_SHOW_CALL_TIP;
486 #define EVT_SHOW_CALL_TIP(fn) DECLARE_EVENT_TABLE_ENTRY( cbEVT_SHOW_CALL_TIP, -1, -1, (wxObjectEventFunction)(wxEventFunction)(CodeBlocksEventFunction)&fn, (wxObject *) NULL ),
487 
488 // settings events
489 
490 // event.GetInt() returns value of type cbSettingsType::Type indicating which setting group was changed
491 struct cbSettingsType
492 {
493     enum Type
494     {
495         Compiler,
496         Debugger,
497         Environment,
498         Editor,
499         Plugins
500     };
501 };
502 extern EVTIMPORT const wxEventType cbEVT_SETTINGS_CHANGED;
503 #define EVT_SETTINGS_CHANGED(fn) DECLARE_EVENT_TABLE_ENTRY( cbEVT_SETTINGS_CHANGED, -1, -1, (wxObjectEventFunction)(wxEventFunction)(CodeBlocksEventFunction)&fn, (wxObject *) NULL ),
504 
505 #endif // SDK_EVENTS_H
506