~ubuntu-branches/ubuntu/natty/geany/natty

« back to all changes in this revision

Viewing changes to src/keybindings.h

  • Committer: Bazaar Package Importer
  • Author(s): Chow Loong Jin
  • Date: 2010-08-07 03:23:12 UTC
  • mfrom: (1.4.3 upstream)
  • mto: This revision was merged to the branch mainline in revision 22.
  • Revision ID: james.westby@ubuntu.com-20100807032312-ot70ac9d50cn79we
Tags: upstream-0.19
ImportĀ upstreamĀ versionĀ 0.19

Show diffs side-by-side

added added

removed removed

Lines of Context:
18
18
 *      along with this program; if not, write to the Free Software
19
19
 *      Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
20
20
 *
21
 
 * $Id: keybindings.h 4630 2010-01-31 21:54:47Z eht16 $
 
21
 * $Id: keybindings.h 4851 2010-04-22 12:25:20Z ntrel $
22
22
 */
23
23
 
24
 
/**
25
 
 * @file keybindings.h
26
 
 * Configurable keyboard shortcuts.
27
 
 **/
28
 
 
29
 
 
30
24
#ifndef GEANY_KEYBINDINGS_H
31
25
#define GEANY_KEYBINDINGS_H 1
32
26
 
33
 
 
34
 
/** Function pointer type used for keybinding callbacks */
 
27
/** Function pointer type used for keybinding callbacks. */
35
28
typedef void (*GeanyKeyCallback) (guint key_id);
36
29
 
37
 
/** Represents a single keybinding action */
38
 
/* Note: name and label are not const strings so plugins can set them to malloc'd strings
39
 
 * and free them in cleanup(). */
 
30
/** Represents a single keybinding action.
 
31
 * Use keybindings_set_item() to set. */
40
32
typedef struct GeanyKeyBinding
41
33
{
42
 
        guint key;                              /**< Key value in lower-case, such as @c GDK_a */
43
 
        GdkModifierType mods;   /**< Modifier keys, such as @c GDK_CONTROL_MASK */
 
34
        guint key;                              /**< Key value in lower-case, such as @c GDK_a or 0 */
 
35
        GdkModifierType mods;   /**< Modifier keys, such as @c GDK_CONTROL_MASK or 0 */
44
36
        gchar *name;                    /**< Key name for the configuration file, such as @c "menu_new" */
45
 
        gchar *label;                   /**< Label used in the preferences dialog keybindings tab */
46
 
        GeanyKeyCallback callback;      /**< Callback function called when the key combination is pressed */
47
 
        GtkWidget *menu_item;   /**< Menu item widget for setting the menu accelerator */
48
 
} GeanyKeyBinding;
49
 
 
 
37
        /** Label used in the preferences dialog keybindings tab.
 
38
         * May contain underscores - these won't be displayed. */
 
39
        gchar *label;
 
40
        /** Function called when the key combination is pressed, or @c NULL to use the group callback
 
41
         * (preferred). @see plugin_set_key_group(). */
 
42
        GeanyKeyCallback callback;
 
43
        GtkWidget *menu_item;   /**< Optional widget to set an accelerator for, or @c NULL */
 
44
}
 
45
GeanyKeyBinding;
 
46
 
 
47
 
 
48
/** Function pointer type used for keybinding group callbacks.
 
49
 * You should return @c TRUE to indicate handling the callback. (Occasionally, if the keybinding
 
50
 * cannot apply in the current situation, it is useful to return @c FALSE to allow a later keybinding
 
51
 * with the same key combination to handle it). */
 
52
typedef gboolean (*GeanyKeyGroupCallback) (guint key_id);
50
53
 
51
54
/** A collection of keybindings grouped together. */
52
 
typedef struct GeanyKeyGroup
 
55
typedef struct GeanyKeyGroup GeanyKeyGroup;
 
56
 
 
57
/* Plugins should not set these fields. */
 
58
#ifdef GEANY_PRIVATE
 
59
struct GeanyKeyGroup
53
60
{
54
 
        const gchar *name;              /**< Group name used in the configuration file, such as @c "html_chars" */
55
 
        const gchar *label;             /**< Group label used in the preferences dialog keybindings tab */
56
 
        gsize count;                    /**< Count of GeanyKeyBinding structs in @c keys */
57
 
        GeanyKeyBinding *keys;  /**< Fixed array of GeanyKeyBinding structs */
58
 
}
59
 
GeanyKeyGroup;
 
61
        const gchar *name;              /* Group name used in the configuration file, such as @c "html_chars" */
 
62
        const gchar *label;             /* Group label used in the preferences dialog keybindings tab */
 
63
        gsize count;                    /* number of keybindings the group holds */
 
64
        GeanyKeyBinding *keys;  /* array of GeanyKeyBinding structs */
 
65
        gboolean plugin;                /* used by plugin */
 
66
        GeanyKeyGroupCallback callback; /* use this or individual keybinding callbacks */
 
67
};
 
68
#endif
 
69
 
60
70
 
61
71
extern GPtrArray *keybinding_groups;    /* array of GeanyKeyGroup pointers */
62
72
 
69
79
 * The _COUNT item should not be used by plugins, as it may well change. */
70
80
 
71
81
/** Keybinding group IDs */
72
 
enum
 
82
enum GeanyKeyGroupID
73
83
{
74
 
        GEANY_KEY_GROUP_FILE,
75
 
        GEANY_KEY_GROUP_PROJECT,
76
 
        GEANY_KEY_GROUP_EDITOR,
77
 
        GEANY_KEY_GROUP_CLIPBOARD,
78
 
        GEANY_KEY_GROUP_SELECT,
79
 
        GEANY_KEY_GROUP_FORMAT,
80
 
        GEANY_KEY_GROUP_INSERT,
81
 
        GEANY_KEY_GROUP_SETTINGS,
82
 
        GEANY_KEY_GROUP_SEARCH,
83
 
        GEANY_KEY_GROUP_GOTO,
84
 
        GEANY_KEY_GROUP_VIEW,
85
 
        GEANY_KEY_GROUP_FOCUS,
86
 
        GEANY_KEY_GROUP_NOTEBOOK,
87
 
        GEANY_KEY_GROUP_DOCUMENT,
88
 
        GEANY_KEY_GROUP_BUILD,
89
 
        GEANY_KEY_GROUP_TOOLS,
90
 
        GEANY_KEY_GROUP_HELP,
 
84
        GEANY_KEY_GROUP_FILE,                   /**< Group for @ref GeanyKeysFileID. */
 
85
        GEANY_KEY_GROUP_PROJECT,                /**< Group for @ref GeanyKeysProjectID. */
 
86
        GEANY_KEY_GROUP_EDITOR,                 /**< Group for @ref GeanyKeysEditorID. */
 
87
        GEANY_KEY_GROUP_CLIPBOARD,              /**< Group for @ref GeanyKeysClipboardID. */
 
88
        GEANY_KEY_GROUP_SELECT,                 /**< Group for @ref GeanyKeysSelectID. */
 
89
        GEANY_KEY_GROUP_FORMAT,                 /**< Group for @ref GeanyKeysFormatID. */
 
90
        GEANY_KEY_GROUP_INSERT,                 /**< Group for @ref GeanyKeysInsertID. */
 
91
        GEANY_KEY_GROUP_SETTINGS,               /**< Group for @ref GeanyKeysSettingsID. */
 
92
        GEANY_KEY_GROUP_SEARCH,                 /**< Group for @ref GeanyKeysSearchID. */
 
93
        GEANY_KEY_GROUP_GOTO,                   /**< Group for @ref GeanyKeysGoToID. */
 
94
        GEANY_KEY_GROUP_VIEW,                   /**< Group for @ref GeanyKeysViewID. */
 
95
        GEANY_KEY_GROUP_FOCUS,                  /**< Group for @ref GeanyKeysFocusID. */
 
96
        GEANY_KEY_GROUP_NOTEBOOK,               /**< Group for @ref GeanyKeysNotebookTabID. */
 
97
        GEANY_KEY_GROUP_DOCUMENT,               /**< Group for @ref GeanyKeysDocumentID. */
 
98
        GEANY_KEY_GROUP_BUILD,                  /**< Group for @ref GeanyKeysBuildID. */
 
99
        GEANY_KEY_GROUP_TOOLS,                  /**< Group for @ref GeanyKeysToolsID. */
 
100
        GEANY_KEY_GROUP_HELP,                   /**< Group for @ref GeanyKeysHelpID. */
91
101
        GEANY_KEY_GROUP_COUNT
92
102
};
93
103
 
94
104
/** File group keybinding command IDs */
95
 
enum
 
105
enum GeanyKeysFileID
96
106
{
97
 
        GEANY_KEYS_FILE_NEW,
98
 
        GEANY_KEYS_FILE_OPEN,
99
 
        GEANY_KEYS_FILE_OPENSELECTED,
100
 
        GEANY_KEYS_FILE_SAVE,
101
 
        GEANY_KEYS_FILE_SAVEAS,
102
 
        GEANY_KEYS_FILE_SAVEALL,
103
 
        GEANY_KEYS_FILE_PRINT,
104
 
        GEANY_KEYS_FILE_CLOSE,
105
 
        GEANY_KEYS_FILE_CLOSEALL,
106
 
        GEANY_KEYS_FILE_RELOAD,
 
107
        GEANY_KEYS_FILE_NEW,                    /**< Keybinding. */
 
108
        GEANY_KEYS_FILE_OPEN,                   /**< Keybinding. */
 
109
        GEANY_KEYS_FILE_OPENSELECTED,   /**< Keybinding. */
 
110
        GEANY_KEYS_FILE_SAVE,                   /**< Keybinding. */
 
111
        GEANY_KEYS_FILE_SAVEAS,                 /**< Keybinding. */
 
112
        GEANY_KEYS_FILE_SAVEALL,                /**< Keybinding. */
 
113
        GEANY_KEYS_FILE_PRINT,                  /**< Keybinding. */
 
114
        GEANY_KEYS_FILE_CLOSE,                  /**< Keybinding. */
 
115
        GEANY_KEYS_FILE_CLOSEALL,               /**< Keybinding. */
 
116
        GEANY_KEYS_FILE_RELOAD,                 /**< Keybinding. */
 
117
        GEANY_KEYS_FILE_OPENLASTTAB,    /**< Keybinding. */
107
118
        GEANY_KEYS_FILE_COUNT
108
119
};
109
120
 
110
121
/** Project group keybinding command IDs */
111
 
enum
 
122
enum GeanyKeysProjectID
112
123
{
113
 
        GEANY_KEYS_PROJECT_PROPERTIES,
 
124
        GEANY_KEYS_PROJECT_PROPERTIES,          /**< Keybinding. */
114
125
        GEANY_KEYS_PROJECT_COUNT
115
126
};
116
127
 
117
128
/** Editor group keybinding command IDs */
118
 
enum
 
129
enum GeanyKeysEditorID
119
130
{
120
 
        GEANY_KEYS_EDITOR_UNDO,
121
 
        GEANY_KEYS_EDITOR_REDO,
122
 
        GEANY_KEYS_EDITOR_DELETELINE,
123
 
        GEANY_KEYS_EDITOR_DUPLICATELINE,
124
 
        GEANY_KEYS_EDITOR_TRANSPOSELINE,
125
 
        GEANY_KEYS_EDITOR_SCROLLTOLINE,
126
 
        GEANY_KEYS_EDITOR_SCROLLLINEUP,
127
 
        GEANY_KEYS_EDITOR_SCROLLLINEDOWN,
128
 
        GEANY_KEYS_EDITOR_COMPLETESNIPPET,
129
 
        GEANY_KEYS_EDITOR_SUPPRESSSNIPPETCOMPLETION,
130
 
        GEANY_KEYS_EDITOR_SNIPPETNEXTCURSOR,
131
 
        GEANY_KEYS_EDITOR_CONTEXTACTION,
132
 
        GEANY_KEYS_EDITOR_AUTOCOMPLETE,
133
 
        GEANY_KEYS_EDITOR_CALLTIP,
134
 
        GEANY_KEYS_EDITOR_MACROLIST,
135
 
        GEANY_KEYS_EDITOR_DELETELINETOEND,
 
131
        GEANY_KEYS_EDITOR_UNDO,                                         /**< Keybinding. */
 
132
        GEANY_KEYS_EDITOR_REDO,                                         /**< Keybinding. */
 
133
        GEANY_KEYS_EDITOR_DELETELINE,                           /**< Keybinding. */
 
134
        GEANY_KEYS_EDITOR_DUPLICATELINE,                        /**< Keybinding. */
 
135
        GEANY_KEYS_EDITOR_TRANSPOSELINE,                        /**< Keybinding. */
 
136
        GEANY_KEYS_EDITOR_SCROLLTOLINE,                         /**< Keybinding. */
 
137
        GEANY_KEYS_EDITOR_SCROLLLINEUP,                         /**< Keybinding. */
 
138
        GEANY_KEYS_EDITOR_SCROLLLINEDOWN,                       /**< Keybinding. */
 
139
        GEANY_KEYS_EDITOR_COMPLETESNIPPET,                      /**< Keybinding. */
 
140
        GEANY_KEYS_EDITOR_SUPPRESSSNIPPETCOMPLETION, /**< Keybinding. */
 
141
        GEANY_KEYS_EDITOR_SNIPPETNEXTCURSOR,            /**< Keybinding. */
 
142
        GEANY_KEYS_EDITOR_CONTEXTACTION,                        /**< Keybinding. */
 
143
        GEANY_KEYS_EDITOR_AUTOCOMPLETE,                         /**< Keybinding. */
 
144
        GEANY_KEYS_EDITOR_CALLTIP,                                      /**< Keybinding. */
 
145
        GEANY_KEYS_EDITOR_MACROLIST,                            /**< Keybinding. */
 
146
        GEANY_KEYS_EDITOR_DELETELINETOEND,                      /**< Keybinding. */
 
147
        GEANY_KEYS_EDITOR_WORDPARTCOMPLETION,           /**< Keybinding. */
 
148
        GEANY_KEYS_EDITOR_MOVELINEUP,                           /**< Keybinding. */
 
149
        GEANY_KEYS_EDITOR_MOVELINEDOWN,                         /**< Keybinding. */
136
150
        GEANY_KEYS_EDITOR_COUNT
137
151
};
138
152
 
139
153
/** Clipboard group keybinding command IDs */
140
 
enum
 
154
enum GeanyKeysClipboardID
141
155
{
142
 
        GEANY_KEYS_CLIPBOARD_CUT,
143
 
        GEANY_KEYS_CLIPBOARD_COPY,
144
 
        GEANY_KEYS_CLIPBOARD_PASTE,
145
 
        GEANY_KEYS_CLIPBOARD_CUTLINE,
146
 
        GEANY_KEYS_CLIPBOARD_COPYLINE,
 
156
        GEANY_KEYS_CLIPBOARD_CUT,                       /**< Keybinding. */
 
157
        GEANY_KEYS_CLIPBOARD_COPY,                      /**< Keybinding. */
 
158
        GEANY_KEYS_CLIPBOARD_PASTE,                     /**< Keybinding. */
 
159
        GEANY_KEYS_CLIPBOARD_CUTLINE,           /**< Keybinding. */
 
160
        GEANY_KEYS_CLIPBOARD_COPYLINE,          /**< Keybinding. */
147
161
        GEANY_KEYS_CLIPBOARD_COUNT
148
162
};
149
163
 
150
164
/** Select group keybinding command IDs */
151
 
enum
 
165
enum GeanyKeysSelectID
152
166
{
153
167
 
154
 
        GEANY_KEYS_SELECT_ALL,
155
 
        GEANY_KEYS_SELECT_WORD,
156
 
        GEANY_KEYS_SELECT_LINE,
157
 
        GEANY_KEYS_SELECT_PARAGRAPH,
 
168
        GEANY_KEYS_SELECT_ALL,                          /**< Keybinding. */
 
169
        GEANY_KEYS_SELECT_WORD,                         /**< Keybinding. */
 
170
        GEANY_KEYS_SELECT_LINE,                         /**< Keybinding. */
 
171
        GEANY_KEYS_SELECT_PARAGRAPH,            /**< Keybinding. */
 
172
        GEANY_KEYS_SELECT_WORDPARTLEFT,         /**< Keybinding. */
 
173
        GEANY_KEYS_SELECT_WORDPARTRIGHT,        /**< Keybinding. */
158
174
        GEANY_KEYS_SELECT_COUNT
159
175
};
160
176
 
161
177
/** Format group keybinding command IDs */
162
 
enum
 
178
enum GeanyKeysFormatID
163
179
{
164
 
        GEANY_KEYS_FORMAT_TOGGLECASE,
165
 
        GEANY_KEYS_FORMAT_COMMENTLINETOGGLE,
166
 
        GEANY_KEYS_FORMAT_COMMENTLINE,
167
 
        GEANY_KEYS_FORMAT_UNCOMMENTLINE,
168
 
        GEANY_KEYS_FORMAT_INCREASEINDENT,
169
 
        GEANY_KEYS_FORMAT_DECREASEINDENT,
170
 
        GEANY_KEYS_FORMAT_INCREASEINDENTBYSPACE,
171
 
        GEANY_KEYS_FORMAT_DECREASEINDENTBYSPACE,
172
 
        GEANY_KEYS_FORMAT_AUTOINDENT,
173
 
        GEANY_KEYS_FORMAT_SENDTOCMD1,
174
 
        GEANY_KEYS_FORMAT_SENDTOCMD2,
175
 
        GEANY_KEYS_FORMAT_SENDTOCMD3,
176
 
        GEANY_KEYS_FORMAT_SENDTOVTE,
177
 
        GEANY_KEYS_FORMAT_REFLOWPARAGRAPH,
 
180
        GEANY_KEYS_FORMAT_TOGGLECASE,                           /**< Keybinding. */
 
181
        GEANY_KEYS_FORMAT_COMMENTLINETOGGLE,            /**< Keybinding. */
 
182
        GEANY_KEYS_FORMAT_COMMENTLINE,                          /**< Keybinding. */
 
183
        GEANY_KEYS_FORMAT_UNCOMMENTLINE,                        /**< Keybinding. */
 
184
        GEANY_KEYS_FORMAT_INCREASEINDENT,                       /**< Keybinding. */
 
185
        GEANY_KEYS_FORMAT_DECREASEINDENT,                       /**< Keybinding. */
 
186
        GEANY_KEYS_FORMAT_INCREASEINDENTBYSPACE,        /**< Keybinding. */
 
187
        GEANY_KEYS_FORMAT_DECREASEINDENTBYSPACE,        /**< Keybinding. */
 
188
        GEANY_KEYS_FORMAT_AUTOINDENT,                           /**< Keybinding. */
 
189
        GEANY_KEYS_FORMAT_SENDTOCMD1,                           /**< Keybinding. */
 
190
        GEANY_KEYS_FORMAT_SENDTOCMD2,                           /**< Keybinding. */
 
191
        GEANY_KEYS_FORMAT_SENDTOCMD3,                           /**< Keybinding. */
 
192
        GEANY_KEYS_FORMAT_SENDTOVTE,                            /**< Keybinding. */
 
193
        GEANY_KEYS_FORMAT_REFLOWPARAGRAPH,                      /**< Keybinding. */
178
194
        GEANY_KEYS_FORMAT_COUNT
179
195
};
180
196
 
181
197
/** Insert group keybinding command IDs */
182
 
enum
 
198
enum GeanyKeysInsertID
183
199
{
184
 
        GEANY_KEYS_INSERT_DATE,
185
 
        GEANY_KEYS_INSERT_ALTWHITESPACE,
 
200
        GEANY_KEYS_INSERT_DATE,                         /**< Keybinding. */
 
201
        GEANY_KEYS_INSERT_ALTWHITESPACE,        /**< Keybinding. */
186
202
        GEANY_KEYS_INSERT_COUNT
187
203
};
188
204
 
189
205
/** Settings group keybinding command IDs */
190
 
enum
 
206
enum GeanyKeysSettingsID
191
207
{
192
 
        GEANY_KEYS_SETTINGS_PREFERENCES,
 
208
        GEANY_KEYS_SETTINGS_PREFERENCES,                /**< Keybinding. */
 
209
        GEANY_KEYS_SETTINGS_PLUGINPREFERENCES,  /**< Keybinding. */
193
210
        GEANY_KEYS_SETTINGS_COUNT
194
211
};
195
212
 
196
213
/** Search group keybinding command IDs */
197
 
enum
 
214
enum GeanyKeysSearchID
198
215
{
199
 
        GEANY_KEYS_SEARCH_FIND,
200
 
        GEANY_KEYS_SEARCH_FINDNEXT,
201
 
        GEANY_KEYS_SEARCH_FINDPREVIOUS,
202
 
        GEANY_KEYS_SEARCH_FINDINFILES,
203
 
        GEANY_KEYS_SEARCH_REPLACE,
204
 
        GEANY_KEYS_SEARCH_FINDNEXTSEL,
205
 
        GEANY_KEYS_SEARCH_FINDPREVSEL,
206
 
        GEANY_KEYS_SEARCH_NEXTMESSAGE,
207
 
        GEANY_KEYS_SEARCH_PREVIOUSMESSAGE,
208
 
        GEANY_KEYS_SEARCH_FINDUSAGE,
209
 
        GEANY_KEYS_SEARCH_FINDDOCUMENTUSAGE,
210
 
        GEANY_KEYS_SEARCH_MARKALL,
 
216
        GEANY_KEYS_SEARCH_FIND,                                 /**< Keybinding. */
 
217
        GEANY_KEYS_SEARCH_FINDNEXT,                             /**< Keybinding. */
 
218
        GEANY_KEYS_SEARCH_FINDPREVIOUS,                 /**< Keybinding. */
 
219
        GEANY_KEYS_SEARCH_FINDINFILES,                  /**< Keybinding. */
 
220
        GEANY_KEYS_SEARCH_REPLACE,                              /**< Keybinding. */
 
221
        GEANY_KEYS_SEARCH_FINDNEXTSEL,                  /**< Keybinding. */
 
222
        GEANY_KEYS_SEARCH_FINDPREVSEL,                  /**< Keybinding. */
 
223
        GEANY_KEYS_SEARCH_NEXTMESSAGE,                  /**< Keybinding. */
 
224
        GEANY_KEYS_SEARCH_PREVIOUSMESSAGE,              /**< Keybinding. */
 
225
        GEANY_KEYS_SEARCH_FINDUSAGE,                    /**< Keybinding. */
 
226
        GEANY_KEYS_SEARCH_FINDDOCUMENTUSAGE,    /**< Keybinding. */
 
227
        GEANY_KEYS_SEARCH_MARKALL,                              /**< Keybinding. */
211
228
        GEANY_KEYS_SEARCH_COUNT
212
229
};
213
230
 
214
231
/** Go To group keybinding command IDs */
215
 
enum
 
232
enum GeanyKeysGoToID
216
233
{
217
 
        GEANY_KEYS_GOTO_FORWARD,
218
 
        GEANY_KEYS_GOTO_BACK,
219
 
        GEANY_KEYS_GOTO_LINE,
220
 
        GEANY_KEYS_GOTO_LINESTART,
221
 
        GEANY_KEYS_GOTO_LINEEND,
222
 
        GEANY_KEYS_GOTO_MATCHINGBRACE,
223
 
        GEANY_KEYS_GOTO_TOGGLEMARKER,
224
 
        GEANY_KEYS_GOTO_NEXTMARKER,
225
 
        GEANY_KEYS_GOTO_PREVIOUSMARKER,
226
 
        GEANY_KEYS_GOTO_PREVWORDSTART,
227
 
        GEANY_KEYS_GOTO_NEXTWORDSTART,
228
 
        GEANY_KEYS_GOTO_TAGDEFINITION,
229
 
        GEANY_KEYS_GOTO_TAGDECLARATION,
230
 
        GEANY_KEYS_GOTO_LINEENDVISUAL,
 
234
        GEANY_KEYS_GOTO_FORWARD,                        /**< Keybinding. */
 
235
        GEANY_KEYS_GOTO_BACK,                           /**< Keybinding. */
 
236
        GEANY_KEYS_GOTO_LINE,                           /**< Keybinding. */
 
237
        GEANY_KEYS_GOTO_LINESTART,                      /**< Keybinding. */
 
238
        GEANY_KEYS_GOTO_LINEEND,                        /**< Keybinding. */
 
239
        GEANY_KEYS_GOTO_MATCHINGBRACE,          /**< Keybinding. */
 
240
        GEANY_KEYS_GOTO_TOGGLEMARKER,           /**< Keybinding. */
 
241
        GEANY_KEYS_GOTO_NEXTMARKER,                     /**< Keybinding. */
 
242
        GEANY_KEYS_GOTO_PREVIOUSMARKER,         /**< Keybinding. */
 
243
        GEANY_KEYS_GOTO_PREVWORDPART,           /**< Keybinding. */
 
244
        GEANY_KEYS_GOTO_NEXTWORDPART,           /**< Keybinding. */
 
245
        GEANY_KEYS_GOTO_TAGDEFINITION,          /**< Keybinding. */
 
246
        GEANY_KEYS_GOTO_TAGDECLARATION,         /**< Keybinding. */
 
247
        GEANY_KEYS_GOTO_LINEENDVISUAL,          /**< Keybinding. */
231
248
        GEANY_KEYS_GOTO_COUNT
232
249
};
233
250
 
234
251
/** View group keybinding command IDs */
235
 
enum
 
252
enum GeanyKeysViewID
236
253
{
237
 
        GEANY_KEYS_VIEW_TOGGLEALL,
238
 
        GEANY_KEYS_VIEW_FULLSCREEN,
239
 
        GEANY_KEYS_VIEW_MESSAGEWINDOW,
240
 
        GEANY_KEYS_VIEW_SIDEBAR,
241
 
        GEANY_KEYS_VIEW_ZOOMIN,
242
 
        GEANY_KEYS_VIEW_ZOOMOUT,
 
254
        GEANY_KEYS_VIEW_TOGGLEALL,                      /**< Keybinding. */
 
255
        GEANY_KEYS_VIEW_FULLSCREEN,                     /**< Keybinding. */
 
256
        GEANY_KEYS_VIEW_MESSAGEWINDOW,          /**< Keybinding. */
 
257
        GEANY_KEYS_VIEW_SIDEBAR,                        /**< Keybinding. */
 
258
        GEANY_KEYS_VIEW_ZOOMIN,                         /**< Keybinding. */
 
259
        GEANY_KEYS_VIEW_ZOOMOUT,                        /**< Keybinding. */
 
260
        GEANY_KEYS_VIEW_ZOOMRESET,                      /**< Keybinding. */
243
261
        GEANY_KEYS_VIEW_COUNT
244
262
};
245
263
 
246
264
/** Focus group keybinding command IDs */
247
 
enum
 
265
/* TODO when the plugin ABI get increased the next time, rearrange these keybindings */
 
266
enum GeanyKeysFocusID
248
267
{
249
 
        GEANY_KEYS_FOCUS_EDITOR,
250
 
        GEANY_KEYS_FOCUS_SCRIBBLE,
251
 
        GEANY_KEYS_FOCUS_VTE,
252
 
        GEANY_KEYS_FOCUS_SEARCHBAR,
253
 
        GEANY_KEYS_FOCUS_SIDEBAR,
254
 
        GEANY_KEYS_FOCUS_COMPILER,
 
268
        GEANY_KEYS_FOCUS_EDITOR,                                /**< Keybinding. */
 
269
        GEANY_KEYS_FOCUS_SCRIBBLE,                              /**< Keybinding. */
 
270
        GEANY_KEYS_FOCUS_VTE,                                   /**< Keybinding. */
 
271
        GEANY_KEYS_FOCUS_SEARCHBAR,                             /**< Keybinding. */
 
272
        GEANY_KEYS_FOCUS_SIDEBAR,                               /**< Keybinding. */
 
273
        GEANY_KEYS_FOCUS_COMPILER,                              /**< Keybinding. */
 
274
        GEANY_KEYS_FOCUS_MESSAGES,                              /**< Keybinding. */
 
275
        GEANY_KEYS_FOCUS_MESSAGE_WINDOW,                /**< Keybinding. */
 
276
        GEANY_KEYS_FOCUS_SIDEBAR_DOCUMENT_LIST, /**< Keybinding. */
 
277
        GEANY_KEYS_FOCUS_SIDEBAR_SYMBOL_LIST,   /**< Keybinding. */
255
278
        GEANY_KEYS_FOCUS_COUNT
256
279
};
257
280
 
258
281
/** Notebook Tab group keybinding command IDs */
259
 
enum
 
282
enum GeanyKeysNotebookTabID
260
283
{
261
 
        GEANY_KEYS_NOTEBOOK_SWITCHTABLEFT,
262
 
        GEANY_KEYS_NOTEBOOK_SWITCHTABRIGHT,
263
 
        GEANY_KEYS_NOTEBOOK_SWITCHTABLASTUSED,
264
 
        GEANY_KEYS_NOTEBOOK_MOVETABLEFT,
265
 
        GEANY_KEYS_NOTEBOOK_MOVETABRIGHT,
266
 
        GEANY_KEYS_NOTEBOOK_MOVETABFIRST,
267
 
        GEANY_KEYS_NOTEBOOK_MOVETABLAST,
 
284
        GEANY_KEYS_NOTEBOOK_SWITCHTABLEFT,                      /**< Keybinding. */
 
285
        GEANY_KEYS_NOTEBOOK_SWITCHTABRIGHT,                     /**< Keybinding. */
 
286
        GEANY_KEYS_NOTEBOOK_SWITCHTABLASTUSED,          /**< Keybinding. */
 
287
        GEANY_KEYS_NOTEBOOK_MOVETABLEFT,                        /**< Keybinding. */
 
288
        GEANY_KEYS_NOTEBOOK_MOVETABRIGHT,                       /**< Keybinding. */
 
289
        GEANY_KEYS_NOTEBOOK_MOVETABFIRST,                       /**< Keybinding. */
 
290
        GEANY_KEYS_NOTEBOOK_MOVETABLAST,                        /**< Keybinding. */
268
291
        GEANY_KEYS_NOTEBOOK_COUNT
269
292
};
270
293
 
271
294
/** Document group keybinding command IDs */
272
 
enum
 
295
enum GeanyKeysDocumentID
273
296
{
274
 
        GEANY_KEYS_DOCUMENT_REPLACETABS,
275
 
        GEANY_KEYS_DOCUMENT_REPLACESPACES,
276
 
        GEANY_KEYS_DOCUMENT_TOGGLEFOLD,
277
 
        GEANY_KEYS_DOCUMENT_FOLDALL,
278
 
        GEANY_KEYS_DOCUMENT_UNFOLDALL,
279
 
        GEANY_KEYS_DOCUMENT_RELOADTAGLIST,
280
 
        GEANY_KEYS_DOCUMENT_LINEWRAP,
281
 
        GEANY_KEYS_DOCUMENT_LINEBREAK,
 
297
        GEANY_KEYS_DOCUMENT_REPLACETABS,                /**< Keybinding. */
 
298
        GEANY_KEYS_DOCUMENT_REPLACESPACES,              /**< Keybinding. */
 
299
        GEANY_KEYS_DOCUMENT_TOGGLEFOLD,                 /**< Keybinding. */
 
300
        GEANY_KEYS_DOCUMENT_FOLDALL,                    /**< Keybinding. */
 
301
        GEANY_KEYS_DOCUMENT_UNFOLDALL,                  /**< Keybinding. */
 
302
        GEANY_KEYS_DOCUMENT_RELOADTAGLIST,              /**< Keybinding. */
 
303
        GEANY_KEYS_DOCUMENT_LINEWRAP,                   /**< Keybinding. */
 
304
        GEANY_KEYS_DOCUMENT_LINEBREAK,                  /**< Keybinding. */
 
305
        GEANY_KEYS_DOCUMENT_REMOVE_MARKERS,             /**< Keybinding. */
 
306
        GEANY_KEYS_DOCUMENT_REMOVE_ERROR_INDICATORS,    /**< Keybinding. */
282
307
        GEANY_KEYS_DOCUMENT_COUNT
283
308
};
284
309
 
285
310
/** Build group keybinding command IDs */
286
 
enum
 
311
enum GeanyKeysBuildID
287
312
{
288
 
        GEANY_KEYS_BUILD_COMPILE,
289
 
        GEANY_KEYS_BUILD_LINK,
290
 
        GEANY_KEYS_BUILD_MAKE,
291
 
        GEANY_KEYS_BUILD_MAKEOWNTARGET,
292
 
        GEANY_KEYS_BUILD_MAKEOBJECT,
293
 
        GEANY_KEYS_BUILD_NEXTERROR,
294
 
        GEANY_KEYS_BUILD_PREVIOUSERROR,
295
 
        GEANY_KEYS_BUILD_RUN,
296
 
        GEANY_KEYS_BUILD_RUN2,
297
 
        GEANY_KEYS_BUILD_OPTIONS,
 
313
        GEANY_KEYS_BUILD_COMPILE,                       /**< Keybinding. */
 
314
        GEANY_KEYS_BUILD_LINK,                          /**< Keybinding. */
 
315
        GEANY_KEYS_BUILD_MAKE,                          /**< Keybinding. */
 
316
        GEANY_KEYS_BUILD_MAKEOWNTARGET,         /**< Keybinding. */
 
317
        GEANY_KEYS_BUILD_MAKEOBJECT,            /**< Keybinding. */
 
318
        GEANY_KEYS_BUILD_NEXTERROR,                     /**< Keybinding. */
 
319
        GEANY_KEYS_BUILD_PREVIOUSERROR,         /**< Keybinding. */
 
320
        GEANY_KEYS_BUILD_RUN,                           /**< Keybinding. */
 
321
        GEANY_KEYS_BUILD_OPTIONS,                       /**< Keybinding. */
298
322
        GEANY_KEYS_BUILD_COUNT
299
323
};
300
324
 
301
325
/** Tools group keybinding command IDs */
302
 
enum
 
326
enum GeanyKeysToolsID
303
327
{
304
 
        GEANY_KEYS_TOOLS_OPENCOLORCHOOSER,
 
328
        GEANY_KEYS_TOOLS_OPENCOLORCHOOSER,              /**< Keybinding. */
305
329
        GEANY_KEYS_TOOLS_COUNT
306
330
};
307
331
 
308
332
/** Help group keybinding command IDs */
309
 
enum
 
333
enum GeanyKeysHelpID
310
334
{
311
 
        GEANY_KEYS_HELP_HELP,
 
335
        GEANY_KEYS_HELP_HELP,                   /**< Keybinding. */
312
336
        GEANY_KEYS_HELP_COUNT
313
337
};
314
338
 
319
343
 
320
344
void keybindings_free(void);
321
345
 
322
 
void keybindings_set_item(GeanyKeyGroup *group, gsize key_id,
 
346
GeanyKeyGroup *keybindings_set_group(GeanyKeyGroup *group, const gchar *section_name,
 
347
                const gchar *label, gsize count, GeanyKeyGroupCallback callback) G_GNUC_WARN_UNUSED_RESULT;
 
348
 
 
349
void keybindings_free_group(GeanyKeyGroup *group);
 
350
 
 
351
GeanyKeyBinding *keybindings_set_item(GeanyKeyGroup *group, gsize key_id,
323
352
                GeanyKeyCallback callback, guint key, GdkModifierType mod,
324
 
                gchar *name, gchar *label, GtkWidget *menu_item);
 
353
                const gchar *name, const gchar *label, GtkWidget *menu_item);
 
354
 
 
355
GeanyKeyBinding *keybindings_get_item(GeanyKeyGroup *group, gsize key_id);
 
356
 
 
357
gchar *keybindings_get_label(GeanyKeyBinding *kb);
325
358
 
326
359
void keybindings_update_combo(GeanyKeyBinding *kb, guint key, GdkModifierType mods);
327
360
 
334
367
 
335
368
void keybindings_show_shortcuts(void);
336
369
 
 
370
const GeanyKeyBinding *keybindings_check_event(GdkEventKey *ev, gint *group_id, gint *binding_id);
 
371
 
337
372
#endif
338
373