1 /*
2  *      keybindingsprivate.h - this file is part of Geany, a fast and lightweight IDE
3  *
4  *      Copyright 2014 The Geany contributors
5  *
6  *      This program 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 2 of the License, or
9  *      (at your option) any later version.
10  *
11  *      This program 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 along
17  *      with this program; if not, write to the Free Software Foundation, Inc.,
18  *      51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
19  */
20 
21 #ifndef GEANY_KEYBINDINGS_PRIVATE_H
22 #define GEANY_KEYBINDINGS_PRIVATE_H 1
23 
24 #include "keybindings.h"
25 
26 #include <glib.h>
27 
28 G_BEGIN_DECLS
29 
30 struct GeanyKeyGroup
31 {
32 	const gchar *name;		/* Group name used in the configuration file, such as @c "html_chars" */
33 	const gchar *label;		/* Group label used in the preferences dialog keybindings tab */
34 	GeanyKeyGroupCallback callback;	/* use this or individual keybinding callbacks */
35 	gboolean plugin;		/* used by plugin */
36 	GPtrArray *key_items;	/* pointers to GeanyKeyBinding structs */
37 	gsize plugin_key_count;			/* number of keybindings the group holds */
38 	GeanyKeyBinding *plugin_keys;	/* array of GeanyKeyBinding structs */
39 	GeanyKeyGroupFunc cb_func;	/* use this or individual keybinding callbacks (new style) */
40 	gpointer cb_data;
41 	GDestroyNotify cb_data_destroy; /* used to destroy handler_data */
42 };
43 
44 G_END_DECLS
45 
46 #endif /* GEANY_KEYBINDINGS_PRIVATE_H */
47