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