SF.net SVN: geany: [2318] branches/plugin-keybindings

ntrel at users.sourceforge.net ntrel at xxxxx
Mon Mar 10 13:23:58 UTC 2008


Revision: 2318
          http://geany.svn.sourceforge.net/geany/?rev=2318&view=rev
Author:   ntrel
Date:     2008-03-10 06:23:57 -0700 (Mon, 10 Mar 2008)

Log Message:
-----------
Add keybindings_set_item() to the plugin API and update the HTML
Characters plugin.
Rename KBCallback, cmd_id, cb_func with clearer names.
Add KeyBinding::menu_item field for setting accelerators (currently
does nothing).

Modified Paths:
--------------
    branches/plugin-keybindings/ChangeLog
    branches/plugin-keybindings/plugins/htmlchars.c
    branches/plugin-keybindings/src/keybindings.c
    branches/plugin-keybindings/src/keybindings.h
    branches/plugin-keybindings/src/plugindata.h
    branches/plugin-keybindings/src/plugins.c

Modified: branches/plugin-keybindings/ChangeLog
===================================================================
--- branches/plugin-keybindings/ChangeLog	2008-03-09 18:50:41 UTC (rev 2317)
+++ branches/plugin-keybindings/ChangeLog	2008-03-10 13:23:57 UTC (rev 2318)
@@ -1,3 +1,14 @@
+2008-03-10  Nick Treleaven  <nick(dot)treleaven(at)btinternet(dot)com>
+
+ * src/keybindings.c, src/keybindings.h, src/plugindata.h,
+   src/plugins.c, plugins/htmlchars.c:
+   Add keybindings_set_item() to the plugin API and update the HTML
+   Characters plugin.
+   Rename KBCallback, cmd_id, cb_func with clearer names.
+   Add KeyBinding::menu_item field for setting accelerators (currently
+   does nothing).
+
+
 2008-03-07  Nick Treleaven  <nick(dot)treleaven(at)btinternet(dot)com>
 
  * src/keybindings.h:

Modified: branches/plugin-keybindings/plugins/htmlchars.c
===================================================================
--- branches/plugin-keybindings/plugins/htmlchars.c	2008-03-09 18:50:41 UTC (rev 2317)
+++ branches/plugin-keybindings/plugins/htmlchars.c	2008-03-10 13:23:57 UTC (rev 2318)
@@ -520,25 +520,6 @@
 }
 
 
-/* simple convenience function to fill a KeyBinding struct item */
-static void add_kb(KeyBindingGroup *group, gsize kb_id,
-		KBCallback func, guint key, GdkModifierType mod,
-		const gchar *name, const gchar *label)
-{
-	KeyBinding *kb;
-
-	g_assert(kb_id < group->count);
-
-	kb = &group->keys[kb_id];
-
-	kb->name = name;
-	kb->label = label;
-	kb->key = key;
-	kb->mods = mod;
-	kb->cb_func = func;
-}
-
-
 /* Called by Geany to initialize the plugin */
 void init(GeanyData *data)
 {
@@ -556,8 +537,8 @@
 	plugin_fields->flags = PLUGIN_IS_DOCUMENT_SENSITIVE;
 
 	/* setup keybindings */
-	add_kb(plugin_key_group, KB_INSERT_HTML_CHARS, kb_activate,
-		0, 0, "insert_html_chars", menu_text);
+	p_keybindings->set_item(plugin_key_group, KB_INSERT_HTML_CHARS, kb_activate,
+		0, 0, "insert_html_chars", menu_text, demo_item);
 }
 
 

Modified: branches/plugin-keybindings/src/keybindings.c
===================================================================
--- branches/plugin-keybindings/src/keybindings.c	2008-03-09 18:50:41 UTC (rev 2317)
+++ branches/plugin-keybindings/src/keybindings.c	2008-03-10 13:23:57 UTC (rev 2318)
@@ -108,22 +108,23 @@
 static void add_menu_accels(void);
 
 
-/* simple convenience function to fill a KeyBinding struct item */
-static void add_kb(KeyBindingGroup *group, gsize kb_id,
-		KBCallback func, guint key, GdkModifierType mod,
-		const gchar *name, const gchar *label)
+/** Simple convenience function to fill a KeyBinding struct item */
+void keybindings_set_item(KeyBindingGroup *group, gsize key_id,
+		KeyCallback callback, guint key, GdkModifierType mod,
+		const gchar *name, const gchar *label, GtkWidget *menu_item)
 {
 	KeyBinding *kb;
 
-	g_assert(kb_id < group->count);
+	g_assert(key_id < group->count);
 
-	kb = &group->keys[kb_id];
+	kb = &group->keys[key_id];
 
 	kb->name = name;
 	kb->label = label;
 	kb->key = key;
 	kb->mods = mod;
-	kb->cb_func = func;
+	kb->callback = callback;
+	kb->menu_item = menu_item;
 }
 
 
@@ -173,247 +174,247 @@
 
 	group = ADD_KB_GROUP(FILE, _("File menu"));
 
-	add_kb(group, GEANY_KEYS_MENU_NEW, cb_func_file_action,
-		GDK_n, GDK_CONTROL_MASK, "menu_new", _("New"));
-	add_kb(group, GEANY_KEYS_MENU_OPEN, cb_func_file_action,
-		GDK_o, GDK_CONTROL_MASK, "menu_open", _("Open"));
-	add_kb(group, GEANY_KEYS_MENU_OPENSELECTED, cb_func_file_action,
-		GDK_o, GDK_SHIFT_MASK | GDK_CONTROL_MASK, "menu_open_selected", _("Open selected file"));
-	add_kb(group, GEANY_KEYS_MENU_SAVE, cb_func_file_action,
-		GDK_s, GDK_CONTROL_MASK, "menu_save", _("Save"));
-	add_kb(group, GEANY_KEYS_MENU_SAVEAS, cb_func_file_action,
-		0, 0, "menu_saveas", _("Save as"));
-	add_kb(group, GEANY_KEYS_MENU_SAVEALL, cb_func_file_action,
-		GDK_S, GDK_SHIFT_MASK | GDK_CONTROL_MASK, "menu_saveall", _("Save all"));
-	add_kb(group, GEANY_KEYS_MENU_PRINT, cb_func_menu_print,
-		GDK_p, GDK_CONTROL_MASK, "menu_print", _("Print"));
-	add_kb(group, GEANY_KEYS_MENU_CLOSE, cb_func_file_action,
-		GDK_w, GDK_CONTROL_MASK, "menu_close", _("Close"));
-	add_kb(group, GEANY_KEYS_MENU_CLOSEALL, cb_func_file_action,
-		GDK_w, GDK_CONTROL_MASK | GDK_SHIFT_MASK, "menu_closeall", _("Close all"));
-	add_kb(group, GEANY_KEYS_MENU_RELOADFILE, cb_func_file_action,
-		GDK_r, GDK_CONTROL_MASK, "menu_reloadfile", _("Reload file"));
-	add_kb(group, GEANY_KEYS_MENU_PROJECTPROPERTIES, cb_func_file_action,
-		0, 0, "project_properties", _("Project properties"));
+	keybindings_set_item(group, GEANY_KEYS_MENU_NEW, cb_func_file_action,
+		GDK_n, GDK_CONTROL_MASK, "menu_new", _("New"), NULL);
+	keybindings_set_item(group, GEANY_KEYS_MENU_OPEN, cb_func_file_action,
+		GDK_o, GDK_CONTROL_MASK, "menu_open", _("Open"), NULL);
+	keybindings_set_item(group, GEANY_KEYS_MENU_OPENSELECTED, cb_func_file_action,
+		GDK_o, GDK_SHIFT_MASK | GDK_CONTROL_MASK, "menu_open_selected", _("Open selected file"), NULL);
+	keybindings_set_item(group, GEANY_KEYS_MENU_SAVE, cb_func_file_action,
+		GDK_s, GDK_CONTROL_MASK, "menu_save", _("Save"), NULL);
+	keybindings_set_item(group, GEANY_KEYS_MENU_SAVEAS, cb_func_file_action,
+		0, 0, "menu_saveas", _("Save as"), NULL);
+	keybindings_set_item(group, GEANY_KEYS_MENU_SAVEALL, cb_func_file_action,
+		GDK_S, GDK_SHIFT_MASK | GDK_CONTROL_MASK, "menu_saveall", _("Save all"), NULL);
+	keybindings_set_item(group, GEANY_KEYS_MENU_PRINT, cb_func_menu_print,
+		GDK_p, GDK_CONTROL_MASK, "menu_print", _("Print"), NULL);
+	keybindings_set_item(group, GEANY_KEYS_MENU_CLOSE, cb_func_file_action,
+		GDK_w, GDK_CONTROL_MASK, "menu_close", _("Close"), NULL);
+	keybindings_set_item(group, GEANY_KEYS_MENU_CLOSEALL, cb_func_file_action,
+		GDK_w, GDK_CONTROL_MASK | GDK_SHIFT_MASK, "menu_closeall", _("Close all"), NULL);
+	keybindings_set_item(group, GEANY_KEYS_MENU_RELOADFILE, cb_func_file_action,
+		GDK_r, GDK_CONTROL_MASK, "menu_reloadfile", _("Reload file"), NULL);
+	keybindings_set_item(group, GEANY_KEYS_MENU_PROJECTPROPERTIES, cb_func_file_action,
+		0, 0, "project_properties", _("Project properties"), NULL);
 
 	group = ADD_KB_GROUP(EDIT, _("Edit menu"));
 
-	add_kb(group, GEANY_KEYS_MENU_UNDO, cb_func_menu_undo,
-		GDK_z, GDK_CONTROL_MASK, "menu_undo", _("Undo"));
-	add_kb(group, GEANY_KEYS_MENU_REDO, cb_func_menu_redo,
-		GDK_y, GDK_CONTROL_MASK, "menu_redo", _("Redo"));
-	add_kb(group, GEANY_KEYS_MENU_CUT, cb_func_clipboard,
-		GDK_x, GDK_CONTROL_MASK, "menu_cut", _("Cut"));
-	add_kb(group, GEANY_KEYS_MENU_COPY, cb_func_clipboard,
-		GDK_c, GDK_CONTROL_MASK, "menu_copy", _("Copy"));
-	add_kb(group, GEANY_KEYS_MENU_PASTE, cb_func_clipboard,
-		GDK_v, GDK_CONTROL_MASK, "menu_paste", _("Paste"));
-	add_kb(group, GEANY_KEYS_MENU_SELECTALL, cb_func_menu_selectall,
-		GDK_a, GDK_CONTROL_MASK, "menu_selectall", _("Select All"));
-	add_kb(group, GEANY_KEYS_MENU_INSERTDATE, cb_func_menu_insert_date,
-		GDK_d, GDK_SHIFT_MASK | GDK_MOD1_MASK, "menu_insert_date", _("Insert date"));
-	add_kb(group, GEANY_KEYS_MENU_PREFERENCES, cb_func_menu_preferences,
-		GDK_p, GDK_CONTROL_MASK | GDK_MOD1_MASK, "menu_preferences", _("Preferences"));
+	keybindings_set_item(group, GEANY_KEYS_MENU_UNDO, cb_func_menu_undo,
+		GDK_z, GDK_CONTROL_MASK, "menu_undo", _("Undo"), NULL);
+	keybindings_set_item(group, GEANY_KEYS_MENU_REDO, cb_func_menu_redo,
+		GDK_y, GDK_CONTROL_MASK, "menu_redo", _("Redo"), NULL);
+	keybindings_set_item(group, GEANY_KEYS_MENU_CUT, cb_func_clipboard,
+		GDK_x, GDK_CONTROL_MASK, "menu_cut", _("Cut"), NULL);
+	keybindings_set_item(group, GEANY_KEYS_MENU_COPY, cb_func_clipboard,
+		GDK_c, GDK_CONTROL_MASK, "menu_copy", _("Copy"), NULL);
+	keybindings_set_item(group, GEANY_KEYS_MENU_PASTE, cb_func_clipboard,
+		GDK_v, GDK_CONTROL_MASK, "menu_paste", _("Paste"), NULL);
+	keybindings_set_item(group, GEANY_KEYS_MENU_SELECTALL, cb_func_menu_selectall,
+		GDK_a, GDK_CONTROL_MASK, "menu_selectall", _("Select All"), NULL);
+	keybindings_set_item(group, GEANY_KEYS_MENU_INSERTDATE, cb_func_menu_insert_date,
+		GDK_d, GDK_SHIFT_MASK | GDK_MOD1_MASK, "menu_insert_date", _("Insert date"), NULL);
+	keybindings_set_item(group, GEANY_KEYS_MENU_PREFERENCES, cb_func_menu_preferences,
+		GDK_p, GDK_CONTROL_MASK | GDK_MOD1_MASK, "menu_preferences", _("Preferences"), NULL);
 
 	group = ADD_KB_GROUP(SEARCH, _("Search menu"));
 
-	add_kb(group, GEANY_KEYS_MENU_FIND, cb_func_menu_search,
-		GDK_f, GDK_CONTROL_MASK, "menu_find", _("Find"));
-	add_kb(group, GEANY_KEYS_MENU_FINDNEXT, cb_func_menu_search,
-		GDK_g, GDK_CONTROL_MASK, "menu_findnext", _("Find Next"));
-	add_kb(group, GEANY_KEYS_MENU_FINDPREVIOUS, cb_func_menu_search,
-		GDK_g, GDK_CONTROL_MASK | GDK_SHIFT_MASK, "menu_findprevious", _("Find Previous"));
-	add_kb(group, GEANY_KEYS_MENU_FINDNEXTSEL, cb_func_menu_search,
-		0, 0, "menu_findnextsel", _("Find Next Selection"));
-	add_kb(group, GEANY_KEYS_MENU_FINDPREVSEL, cb_func_menu_search,
-		0, 0, "menu_findprevsel", _("Find Previous Selection"));
-	add_kb(group, GEANY_KEYS_MENU_REPLACE, cb_func_menu_search,
-		GDK_h, GDK_CONTROL_MASK, "menu_replace", _("Replace"));
-	add_kb(group, GEANY_KEYS_MENU_FINDINFILES, cb_func_menu_search, GDK_f,
-		GDK_CONTROL_MASK | GDK_SHIFT_MASK, "menu_findinfiles", _("Find in Files"));
-	add_kb(group, GEANY_KEYS_MENU_NEXTMESSAGE, cb_func_menu_search,
-		0, 0, "menu_nextmessage", _("Next Message"));
-	add_kb(group, GEANY_KEYS_MENU_GOTOLINE, cb_func_menu_search,
-		GDK_l, GDK_CONTROL_MASK, "menu_gotoline", _("Go to Line"));
+	keybindings_set_item(group, GEANY_KEYS_MENU_FIND, cb_func_menu_search,
+		GDK_f, GDK_CONTROL_MASK, "menu_find", _("Find"), NULL);
+	keybindings_set_item(group, GEANY_KEYS_MENU_FINDNEXT, cb_func_menu_search,
+		GDK_g, GDK_CONTROL_MASK, "menu_findnext", _("Find Next"), NULL);
+	keybindings_set_item(group, GEANY_KEYS_MENU_FINDPREVIOUS, cb_func_menu_search,
+		GDK_g, GDK_CONTROL_MASK | GDK_SHIFT_MASK, "menu_findprevious", _("Find Previous"), NULL);
+	keybindings_set_item(group, GEANY_KEYS_MENU_FINDNEXTSEL, cb_func_menu_search,
+		0, 0, "menu_findnextsel", _("Find Next Selection"), NULL);
+	keybindings_set_item(group, GEANY_KEYS_MENU_FINDPREVSEL, cb_func_menu_search,
+		0, 0, "menu_findprevsel", _("Find Previous Selection"), NULL);
+	keybindings_set_item(group, GEANY_KEYS_MENU_REPLACE, cb_func_menu_search,
+		GDK_h, GDK_CONTROL_MASK, "menu_replace", _("Replace"), NULL);
+	keybindings_set_item(group, GEANY_KEYS_MENU_FINDINFILES, cb_func_menu_search, GDK_f,
+		GDK_CONTROL_MASK | GDK_SHIFT_MASK, "menu_findinfiles", _("Find in Files"), NULL);
+	keybindings_set_item(group, GEANY_KEYS_MENU_NEXTMESSAGE, cb_func_menu_search,
+		0, 0, "menu_nextmessage", _("Next Message"), NULL);
+	keybindings_set_item(group, GEANY_KEYS_MENU_GOTOLINE, cb_func_menu_search,
+		GDK_l, GDK_CONTROL_MASK, "menu_gotoline", _("Go to Line"), NULL);
 
 	group = ADD_KB_GROUP(VIEW, _("View menu"));
 
-	add_kb(group, GEANY_KEYS_MENU_TOGGLEALL, cb_func_menu_toggle_all,
-		0, 0, "menu_toggleall", _("Toggle All Additional Widgets"));
-	add_kb(group, GEANY_KEYS_MENU_FULLSCREEN, cb_func_menu_fullscreen,
-		GDK_F11, 0, "menu_fullscreen", _("Fullscreen"));
-	add_kb(group, GEANY_KEYS_MENU_MESSAGEWINDOW, cb_func_menu_messagewindow,
-		0, 0, "menu_messagewindow", _("Toggle Messages Window"));
-	add_kb(group, GEANY_KEYS_MENU_SIDEBAR, cb_func_toggle_sidebar,
-		0, 0, "toggle_sidebar", _("Toggle Sidebar"));
-	add_kb(group, GEANY_KEYS_MENU_ZOOMIN, cb_func_menu_zoomin,
-		GDK_plus, GDK_CONTROL_MASK, "menu_zoomin", _("Zoom In"));
-	add_kb(group, GEANY_KEYS_MENU_ZOOMOUT, cb_func_menu_zoomout,
-		GDK_minus, GDK_CONTROL_MASK, "menu_zoomout", _("Zoom Out"));
+	keybindings_set_item(group, GEANY_KEYS_MENU_TOGGLEALL, cb_func_menu_toggle_all,
+		0, 0, "menu_toggleall", _("Toggle All Additional Widgets"), NULL);
+	keybindings_set_item(group, GEANY_KEYS_MENU_FULLSCREEN, cb_func_menu_fullscreen,
+		GDK_F11, 0, "menu_fullscreen", _("Fullscreen"), NULL);
+	keybindings_set_item(group, GEANY_KEYS_MENU_MESSAGEWINDOW, cb_func_menu_messagewindow,
+		0, 0, "menu_messagewindow", _("Toggle Messages Window"), NULL);
+	keybindings_set_item(group, GEANY_KEYS_MENU_SIDEBAR, cb_func_toggle_sidebar,
+		0, 0, "toggle_sidebar", _("Toggle Sidebar"), NULL);
+	keybindings_set_item(group, GEANY_KEYS_MENU_ZOOMIN, cb_func_menu_zoomin,
+		GDK_plus, GDK_CONTROL_MASK, "menu_zoomin", _("Zoom In"), NULL);
+	keybindings_set_item(group, GEANY_KEYS_MENU_ZOOMOUT, cb_func_menu_zoomout,
+		GDK_minus, GDK_CONTROL_MASK, "menu_zoomout", _("Zoom Out"), NULL);
 
 	group = ADD_KB_GROUP(DOCUMENT, _("Document menu"));
 
-	add_kb(group, GEANY_KEYS_MENU_REPLACETABS, cb_func_menu_replacetabs,
-		0, 0, "menu_replacetabs", _("Replace tabs by space"));
-	add_kb(group, GEANY_KEYS_MENU_FOLDALL, cb_func_menu_foldall,
-		0, 0, "menu_foldall", _("Fold all"));
-	add_kb(group, GEANY_KEYS_MENU_UNFOLDALL, cb_func_menu_unfoldall,
-		0, 0, "menu_unfoldall", _("Unfold all"));
-	add_kb(group, GEANY_KEYS_RELOADTAGLIST, cb_func_reloadtaglist,
-		GDK_r, GDK_SHIFT_MASK | GDK_CONTROL_MASK, "reloadtaglist", _("Reload symbol list"));
+	keybindings_set_item(group, GEANY_KEYS_MENU_REPLACETABS, cb_func_menu_replacetabs,
+		0, 0, "menu_replacetabs", _("Replace tabs by space"), NULL);
+	keybindings_set_item(group, GEANY_KEYS_MENU_FOLDALL, cb_func_menu_foldall,
+		0, 0, "menu_foldall", _("Fold all"), NULL);
+	keybindings_set_item(group, GEANY_KEYS_MENU_UNFOLDALL, cb_func_menu_unfoldall,
+		0, 0, "menu_unfoldall", _("Unfold all"), NULL);
+	keybindings_set_item(group, GEANY_KEYS_RELOADTAGLIST, cb_func_reloadtaglist,
+		GDK_r, GDK_SHIFT_MASK | GDK_CONTROL_MASK, "reloadtaglist", _("Reload symbol list"), NULL);
 
 	group = ADD_KB_GROUP(BUILD, _("Build menu"));
 
-	add_kb(group, GEANY_KEYS_BUILD_COMPILE, cb_func_build_action,
-		GDK_F8, 0, "build_compile", _("Compile"));
-	add_kb(group, GEANY_KEYS_BUILD_LINK, cb_func_build_action,
-		GDK_F9, 0, "build_link", _("Build"));
-	add_kb(group, GEANY_KEYS_BUILD_MAKE, cb_func_build_action,
-		GDK_F9, GDK_SHIFT_MASK, "build_make", _("Make all"));
-	add_kb(group, GEANY_KEYS_BUILD_MAKEOWNTARGET, cb_func_build_action,
+	keybindings_set_item(group, GEANY_KEYS_BUILD_COMPILE, cb_func_build_action,
+		GDK_F8, 0, "build_compile", _("Compile"), NULL);
+	keybindings_set_item(group, GEANY_KEYS_BUILD_LINK, cb_func_build_action,
+		GDK_F9, 0, "build_link", _("Build"), NULL);
+	keybindings_set_item(group, GEANY_KEYS_BUILD_MAKE, cb_func_build_action,
+		GDK_F9, GDK_SHIFT_MASK, "build_make", _("Make all"), NULL);
+	keybindings_set_item(group, GEANY_KEYS_BUILD_MAKEOWNTARGET, cb_func_build_action,
 		GDK_F9, GDK_SHIFT_MASK | GDK_CONTROL_MASK, "build_makeowntarget",
-		_("Make custom target"));
-	add_kb(group, GEANY_KEYS_BUILD_MAKEOBJECT, cb_func_build_action,
-		0, 0, "build_makeobject", _("Make object"));
-	add_kb(group, GEANY_KEYS_BUILD_NEXTERROR, cb_func_build_action,
-		0, 0, "build_nexterror", _("Next error"));
-	add_kb(group, GEANY_KEYS_BUILD_RUN, cb_func_build_action,
-		GDK_F5, 0, "build_run", _("Run"));
-	add_kb(group, GEANY_KEYS_BUILD_RUN2, cb_func_build_action,
-		0, 0, "build_run2", _("Run (alternative command)"));
-	add_kb(group, GEANY_KEYS_BUILD_OPTIONS, cb_func_build_action,
-		0, 0, "build_options", _("Build options"));
+		_("Make custom target"), NULL);
+	keybindings_set_item(group, GEANY_KEYS_BUILD_MAKEOBJECT, cb_func_build_action,
+		0, 0, "build_makeobject", _("Make object"), NULL);
+	keybindings_set_item(group, GEANY_KEYS_BUILD_NEXTERROR, cb_func_build_action,
+		0, 0, "build_nexterror", _("Next error"), NULL);
+	keybindings_set_item(group, GEANY_KEYS_BUILD_RUN, cb_func_build_action,
+		GDK_F5, 0, "build_run", _("Run"), NULL);
+	keybindings_set_item(group, GEANY_KEYS_BUILD_RUN2, cb_func_build_action,
+		0, 0, "build_run2", _("Run (alternative command)"), NULL);
+	keybindings_set_item(group, GEANY_KEYS_BUILD_OPTIONS, cb_func_build_action,
+		0, 0, "build_options", _("Build options"), NULL);
 
 	group = ADD_KB_GROUP(TOOLS, _("Tools menu"));
 
-	add_kb(group, GEANY_KEYS_MENU_OPENCOLORCHOOSER, cb_func_menu_opencolorchooser,
-		0, 0, "menu_opencolorchooser", _("Show Color Chooser"));
+	keybindings_set_item(group, GEANY_KEYS_MENU_OPENCOLORCHOOSER, cb_func_menu_opencolorchooser,
+		0, 0, "menu_opencolorchooser", _("Show Color Chooser"), NULL);
 
 	group = ADD_KB_GROUP(HELP, _("Help menu"));
 
-	add_kb(group, GEANY_KEYS_MENU_HELP, cb_func_menu_help,
-		GDK_F1, 0, "menu_help", _("Help"));
+	keybindings_set_item(group, GEANY_KEYS_MENU_HELP, cb_func_menu_help,
+		GDK_F1, 0, "menu_help", _("Help"), NULL);
 
 	group = ADD_KB_GROUP(FOCUS, _("Focus commands"));
 
-	add_kb(group, GEANY_KEYS_SWITCH_EDITOR, cb_func_switch_editor,
-		GDK_F2, 0, "switch_editor", _("Switch to Editor"));
-	add_kb(group, GEANY_KEYS_SWITCH_SCRIBBLE, cb_func_switch_scribble,
-		GDK_F6, 0, "switch_scribble", _("Switch to Scribble"));
-	add_kb(group, GEANY_KEYS_SWITCH_VTE, cb_func_switch_vte,
-		GDK_F4, 0, "switch_vte", _("Switch to VTE"));
-	add_kb(group, GEANY_KEYS_SWITCH_SEARCH_BAR, cb_func_switch_search_bar,
-		GDK_F7, 0, "switch_search_bar", _("Switch to Search Bar"));
+	keybindings_set_item(group, GEANY_KEYS_SWITCH_EDITOR, cb_func_switch_editor,
+		GDK_F2, 0, "switch_editor", _("Switch to Editor"), NULL);
+	keybindings_set_item(group, GEANY_KEYS_SWITCH_SCRIBBLE, cb_func_switch_scribble,
+		GDK_F6, 0, "switch_scribble", _("Switch to Scribble"), NULL);
+	keybindings_set_item(group, GEANY_KEYS_SWITCH_VTE, cb_func_switch_vte,
+		GDK_F4, 0, "switch_vte", _("Switch to VTE"), NULL);
+	keybindings_set_item(group, GEANY_KEYS_SWITCH_SEARCH_BAR, cb_func_switch_search_bar,
+		GDK_F7, 0, "switch_search_bar", _("Switch to Search Bar"), NULL);
 
 	group = ADD_KB_GROUP(NOTEBOOK, _("Notebook tab commands"));
 
-	add_kb(group, GEANY_KEYS_SWITCH_TABLEFT, cb_func_switch_tableft,
-		GDK_Page_Up, GDK_CONTROL_MASK, "switch_tableft", _("Switch to left document"));
-	add_kb(group, GEANY_KEYS_SWITCH_TABRIGHT, cb_func_switch_tabright,
-		GDK_Page_Down, GDK_CONTROL_MASK, "switch_tabright", _("Switch to right document"));
-	add_kb(group, GEANY_KEYS_SWITCH_TABLASTUSED, cb_func_switch_tablastused,
-		GDK_Tab, GDK_CONTROL_MASK, "switch_tablastused", _("Switch to last used document"));
-	add_kb(group, GEANY_KEYS_MOVE_TABLEFT, cb_func_move_tab,
-		GDK_Page_Up, GDK_MOD1_MASK, "move_tableft", _("Move document left"));
-	add_kb(group, GEANY_KEYS_MOVE_TABRIGHT, cb_func_move_tab,
-		GDK_Page_Down, GDK_MOD1_MASK, "move_tabright", _("Move document right"));
-	add_kb(group, GEANY_KEYS_MOVE_TABFIRST, cb_func_move_tab,
-		0, 0, "move_tabfirst", _("Move document first"));
-	add_kb(group, GEANY_KEYS_MOVE_TABLAST, cb_func_move_tab,
-		0, 0, "move_tablast", _("Move document last"));
+	keybindings_set_item(group, GEANY_KEYS_SWITCH_TABLEFT, cb_func_switch_tableft,
+		GDK_Page_Up, GDK_CONTROL_MASK, "switch_tableft", _("Switch to left document"), NULL);
+	keybindings_set_item(group, GEANY_KEYS_SWITCH_TABRIGHT, cb_func_switch_tabright,
+		GDK_Page_Down, GDK_CONTROL_MASK, "switch_tabright", _("Switch to right document"), NULL);
+	keybindings_set_item(group, GEANY_KEYS_SWITCH_TABLASTUSED, cb_func_switch_tablastused,
+		GDK_Tab, GDK_CONTROL_MASK, "switch_tablastused", _("Switch to last used document"), NULL);
+	keybindings_set_item(group, GEANY_KEYS_MOVE_TABLEFT, cb_func_move_tab,
+		GDK_Page_Up, GDK_MOD1_MASK, "move_tableft", _("Move document left"), NULL);
+	keybindings_set_item(group, GEANY_KEYS_MOVE_TABRIGHT, cb_func_move_tab,
+		GDK_Page_Down, GDK_MOD1_MASK, "move_tabright", _("Move document right"), NULL);
+	keybindings_set_item(group, GEANY_KEYS_MOVE_TABFIRST, cb_func_move_tab,
+		0, 0, "move_tabfirst", _("Move document first"), NULL);
+	keybindings_set_item(group, GEANY_KEYS_MOVE_TABLAST, cb_func_move_tab,
+		0, 0, "move_tablast", _("Move document last"), NULL);
 
 	group = ADD_KB_GROUP(EDITING, _("Editing commands"));
 
-	add_kb(group, GEANY_KEYS_EDIT_DUPLICATELINE, cb_func_editing,
-		GDK_d, GDK_CONTROL_MASK, "edit_duplicateline", _("Duplicate line or selection"));
-	add_kb(group, GEANY_KEYS_EDIT_DELETELINE, cb_func_editing,
-		GDK_k, GDK_CONTROL_MASK, "edit_deleteline", _("Delete current line(s)"));
-	add_kb(group, GEANY_KEYS_EDIT_COPYLINE, cb_func_editing,
-		GDK_c, GDK_CONTROL_MASK | GDK_SHIFT_MASK, "edit_copyline", _("Copy current line(s)"));
-	add_kb(group, GEANY_KEYS_EDIT_CUTLINE, cb_func_editing,
-		GDK_x, GDK_CONTROL_MASK | GDK_SHIFT_MASK, "edit_cutline", _("Cut current line(s)"));
-	add_kb(group, GEANY_KEYS_EDIT_TRANSPOSELINE, cb_func_editing,
-		GDK_t, GDK_CONTROL_MASK, "edit_transposeline", _("Transpose current line"));
-	add_kb(group, GEANY_KEYS_EDIT_TOGGLECASE, cb_func_editing,
-		GDK_u, GDK_CONTROL_MASK | GDK_MOD1_MASK, "edit_togglecase", _("Toggle Case of Selection"));
-	add_kb(group, GEANY_KEYS_EDIT_COMMENTLINETOGGLE, cb_func_editing,
-		GDK_e, GDK_CONTROL_MASK, "edit_commentlinetoggle", _("Toggle line commentation"));
-	add_kb(group, GEANY_KEYS_EDIT_COMMENTLINE, cb_func_editing,
-		0, 0, "edit_commentline", _("Comment line(s)"));
-	add_kb(group, GEANY_KEYS_EDIT_UNCOMMENTLINE, cb_func_editing,
-		0, 0, "edit_uncommentline", _("Uncomment line(s)"));
-	add_kb(group, GEANY_KEYS_EDIT_INCREASEINDENT, cb_func_editing,
-		GDK_i, GDK_CONTROL_MASK, "edit_increaseindent", _("Increase indent"));
-	add_kb(group, GEANY_KEYS_EDIT_DECREASEINDENT, cb_func_editing,
-		GDK_u, GDK_CONTROL_MASK, "edit_decreaseindent", _("Decrease indent"));
-	add_kb(group, GEANY_KEYS_EDIT_INCREASEINDENTBYSPACE, cb_func_editing,
-		0, 0, "edit_increaseindentbyspace", _("Increase indent by one space"));
-	add_kb(group, GEANY_KEYS_EDIT_DECREASEINDENTBYSPACE, cb_func_editing,
-		0, 0, "edit_decreaseindentbyspace", _("Decrease indent by one space"));
-	add_kb(group, GEANY_KEYS_EDIT_AUTOINDENT, cb_func_editing,
-		0, 0, "edit_autoindent", _("Smart line indent"));
-	add_kb(group, GEANY_KEYS_EDIT_SENDTOCMD1, cb_func_editing,
-		GDK_1, GDK_CONTROL_MASK, "edit_sendtocmd1", _("Send to Custom Command 1"));
-	add_kb(group, GEANY_KEYS_EDIT_SENDTOCMD2, cb_func_editing,
-		GDK_2, GDK_CONTROL_MASK, "edit_sendtocmd2", _("Send to Custom Command 2"));
-	add_kb(group, GEANY_KEYS_EDIT_SENDTOCMD3, cb_func_editing,
-		GDK_3, GDK_CONTROL_MASK, "edit_sendtocmd3", _("Send to Custom Command 3"));
-	add_kb(group, GEANY_KEYS_EDIT_GOTOMATCHINGBRACE, cb_func_editing_global,
+	keybindings_set_item(group, GEANY_KEYS_EDIT_DUPLICATELINE, cb_func_editing,
+		GDK_d, GDK_CONTROL_MASK, "edit_duplicateline", _("Duplicate line or selection"), NULL);
+	keybindings_set_item(group, GEANY_KEYS_EDIT_DELETELINE, cb_func_editing,
+		GDK_k, GDK_CONTROL_MASK, "edit_deleteline", _("Delete current line(s)"), NULL);
+	keybindings_set_item(group, GEANY_KEYS_EDIT_COPYLINE, cb_func_editing,
+		GDK_c, GDK_CONTROL_MASK | GDK_SHIFT_MASK, "edit_copyline", _("Copy current line(s)"), NULL);
+	keybindings_set_item(group, GEANY_KEYS_EDIT_CUTLINE, cb_func_editing,
+		GDK_x, GDK_CONTROL_MASK | GDK_SHIFT_MASK, "edit_cutline", _("Cut current line(s)"), NULL);
+	keybindings_set_item(group, GEANY_KEYS_EDIT_TRANSPOSELINE, cb_func_editing,
+		GDK_t, GDK_CONTROL_MASK, "edit_transposeline", _("Transpose current line"), NULL);
+	keybindings_set_item(group, GEANY_KEYS_EDIT_TOGGLECASE, cb_func_editing,
+		GDK_u, GDK_CONTROL_MASK | GDK_MOD1_MASK, "edit_togglecase", _("Toggle Case of Selection"), NULL);
+	keybindings_set_item(group, GEANY_KEYS_EDIT_COMMENTLINETOGGLE, cb_func_editing,
+		GDK_e, GDK_CONTROL_MASK, "edit_commentlinetoggle", _("Toggle line commentation"), NULL);
+	keybindings_set_item(group, GEANY_KEYS_EDIT_COMMENTLINE, cb_func_editing,
+		0, 0, "edit_commentline", _("Comment line(s)"), NULL);
+	keybindings_set_item(group, GEANY_KEYS_EDIT_UNCOMMENTLINE, cb_func_editing,
+		0, 0, "edit_uncommentline", _("Uncomment line(s)"), NULL);
+	keybindings_set_item(group, GEANY_KEYS_EDIT_INCREASEINDENT, cb_func_editing,
+		GDK_i, GDK_CONTROL_MASK, "edit_increaseindent", _("Increase indent"), NULL);
+	keybindings_set_item(group, GEANY_KEYS_EDIT_DECREASEINDENT, cb_func_editing,
+		GDK_u, GDK_CONTROL_MASK, "edit_decreaseindent", _("Decrease indent"), NULL);
+	keybindings_set_item(group, GEANY_KEYS_EDIT_INCREASEINDENTBYSPACE, cb_func_editing,
+		0, 0, "edit_increaseindentbyspace", _("Increase indent by one space"), NULL);
+	keybindings_set_item(group, GEANY_KEYS_EDIT_DECREASEINDENTBYSPACE, cb_func_editing,
+		0, 0, "edit_decreaseindentbyspace", _("Decrease indent by one space"), NULL);
+	keybindings_set_item(group, GEANY_KEYS_EDIT_AUTOINDENT, cb_func_editing,
+		0, 0, "edit_autoindent", _("Smart line indent"), NULL);
+	keybindings_set_item(group, GEANY_KEYS_EDIT_SENDTOCMD1, cb_func_editing,
+		GDK_1, GDK_CONTROL_MASK, "edit_sendtocmd1", _("Send to Custom Command 1"), NULL);
+	keybindings_set_item(group, GEANY_KEYS_EDIT_SENDTOCMD2, cb_func_editing,
+		GDK_2, GDK_CONTROL_MASK, "edit_sendtocmd2", _("Send to Custom Command 2"), NULL);
+	keybindings_set_item(group, GEANY_KEYS_EDIT_SENDTOCMD3, cb_func_editing,
+		GDK_3, GDK_CONTROL_MASK, "edit_sendtocmd3", _("Send to Custom Command 3"), NULL);
+	keybindings_set_item(group, GEANY_KEYS_EDIT_GOTOMATCHINGBRACE, cb_func_editing_global,
 		GDK_b, GDK_CONTROL_MASK, "edit_gotomatchingbrace",
-		_("Go to matching brace"));
-	add_kb(group, GEANY_KEYS_EDIT_TOGGLEMARKER, cb_func_editing_global,
+		_("Go to matching brace"), NULL);
+	keybindings_set_item(group, GEANY_KEYS_EDIT_TOGGLEMARKER, cb_func_editing_global,
 		GDK_m, GDK_CONTROL_MASK, "edit_togglemarker",
-		_("Toggle marker"));
-	add_kb(group, GEANY_KEYS_EDIT_GOTONEXTMARKER, cb_func_editing_global,
+		_("Toggle marker"), NULL);
+	keybindings_set_item(group, GEANY_KEYS_EDIT_GOTONEXTMARKER, cb_func_editing_global,
 		GDK_period, GDK_CONTROL_MASK, "edit_gotonextmarker",
-		_("Go to next marker"));
-	add_kb(group, GEANY_KEYS_EDIT_GOTOPREVIOUSMARKER, cb_func_editing_global,
+		_("Go to next marker"), NULL);
+	keybindings_set_item(group, GEANY_KEYS_EDIT_GOTOPREVIOUSMARKER, cb_func_editing_global,
 		GDK_comma, GDK_CONTROL_MASK, "edit_gotopreviousmarker",
-		_("Go to previous marker"));
-	add_kb(group, GEANY_KEYS_EDIT_SELECTWORD, cb_func_editing,
-		GDK_w, GDK_SHIFT_MASK | GDK_MOD1_MASK, "edit_selectword", _("Select current word"));
-	add_kb(group, GEANY_KEYS_EDIT_SELECTLINE, cb_func_editing,
-		GDK_l, GDK_SHIFT_MASK | GDK_MOD1_MASK, "edit_selectline", _("Select current line(s)"));
-	add_kb(group, GEANY_KEYS_EDIT_SELECTPARAGRAPH, cb_func_editing,
-		GDK_p, GDK_SHIFT_MASK | GDK_MOD1_MASK, "edit_selectparagraph", _("Select current paragraph"));
-	add_kb(group, GEANY_KEYS_EDIT_SCROLLTOLINE, cb_func_editing,
-		GDK_l, GDK_SHIFT_MASK | GDK_CONTROL_MASK, "edit_scrolltoline", _("Scroll to current line"));
-	add_kb(group, GEANY_KEYS_EDIT_SCROLLLINEUP, cb_func_editing,
-		GDK_Up, GDK_MOD1_MASK, "edit_scrolllineup", _("Scroll up the view by one line"));
-	add_kb(group, GEANY_KEYS_EDIT_SCROLLLINEDOWN, cb_func_editing,
-		GDK_Down, GDK_MOD1_MASK, "edit_scrolllinedown", _("Scroll down the view by one line"));
-	add_kb(group, GEANY_KEYS_EDIT_INSERTALTWHITESPACE, cb_func_editing,
-		0, 0, "edit_insertwhitespace", _("Insert alternative whitespace"));
+		_("Go to previous marker"), NULL);
+	keybindings_set_item(group, GEANY_KEYS_EDIT_SELECTWORD, cb_func_editing,
+		GDK_w, GDK_SHIFT_MASK | GDK_MOD1_MASK, "edit_selectword", _("Select current word"), NULL);
+	keybindings_set_item(group, GEANY_KEYS_EDIT_SELECTLINE, cb_func_editing,
+		GDK_l, GDK_SHIFT_MASK | GDK_MOD1_MASK, "edit_selectline", _("Select current line(s)"), NULL);
+	keybindings_set_item(group, GEANY_KEYS_EDIT_SELECTPARAGRAPH, cb_func_editing,
+		GDK_p, GDK_SHIFT_MASK | GDK_MOD1_MASK, "edit_selectparagraph", _("Select current paragraph"), NULL);
+	keybindings_set_item(group, GEANY_KEYS_EDIT_SCROLLTOLINE, cb_func_editing,
+		GDK_l, GDK_SHIFT_MASK | GDK_CONTROL_MASK, "edit_scrolltoline", _("Scroll to current line"), NULL);
+	keybindings_set_item(group, GEANY_KEYS_EDIT_SCROLLLINEUP, cb_func_editing,
+		GDK_Up, GDK_MOD1_MASK, "edit_scrolllineup", _("Scroll up the view by one line"), NULL);
+	keybindings_set_item(group, GEANY_KEYS_EDIT_SCROLLLINEDOWN, cb_func_editing,
+		GDK_Down, GDK_MOD1_MASK, "edit_scrolllinedown", _("Scroll down the view by one line"), NULL);
+	keybindings_set_item(group, GEANY_KEYS_EDIT_INSERTALTWHITESPACE, cb_func_editing,
+		0, 0, "edit_insertwhitespace", _("Insert alternative whitespace"), NULL);
 
 	/* popup menu editing commands */
-	add_kb(group, GEANY_KEYS_POPUP_FINDUSAGE, cb_func_current_word,
-		0, 0, "popup_findusage", _("Find Usage"));
-	add_kb(group, GEANY_KEYS_POPUP_CONTEXTACTION, cb_func_current_word,
-		0, 0, "popup_contextaction", _("Context Action"));
+	keybindings_set_item(group, GEANY_KEYS_POPUP_FINDUSAGE, cb_func_current_word,
+		0, 0, "popup_findusage", _("Find Usage"), NULL);
+	keybindings_set_item(group, GEANY_KEYS_POPUP_CONTEXTACTION, cb_func_current_word,
+		0, 0, "popup_contextaction", _("Context Action"), NULL);
 
 	group = ADD_KB_GROUP(TAGS, _("Tag commands"));
 
-	add_kb(group, GEANY_KEYS_EDIT_AUTOCOMPLETE, cb_func_tags,
-		GDK_space, GDK_CONTROL_MASK, "edit_autocomplete", _("Complete word"));
-	add_kb(group, GEANY_KEYS_EDIT_CALLTIP, cb_func_tags,
-		GDK_space, GDK_CONTROL_MASK | GDK_SHIFT_MASK, "edit_calltip", _("Show calltip"));
-	add_kb(group, GEANY_KEYS_EDIT_MACROLIST, cb_func_tags,
-		GDK_Return, GDK_CONTROL_MASK, "edit_macrolist", _("Show macro list"));
-	add_kb(group, GEANY_KEYS_EDIT_COMPLETESNIPPET, NULL,	/* has special callback */
-		GDK_Tab, 0, "edit_completesnippet", _("Complete snippet"));
-	add_kb(group, GEANY_KEYS_EDIT_SUPPRESSSNIPPETCOMPLETION, cb_func_tags,
-		0, 0, "edit_suppresssnippetcompletion", _("Suppress snippet completion"));
-	add_kb(group, GEANY_KEYS_POPUP_GOTOTAGDEFINITION, cb_func_current_word,
-		0, 0, "popup_gototagdefinition", _("Go to Tag Definition"));
-	add_kb(group, GEANY_KEYS_POPUP_GOTOTAGDECLARATION, cb_func_current_word,
-		0, 0, "popup_gototagdeclaration", _("Go to Tag Declaration"));
+	keybindings_set_item(group, GEANY_KEYS_EDIT_AUTOCOMPLETE, cb_func_tags,
+		GDK_space, GDK_CONTROL_MASK, "edit_autocomplete", _("Complete word"), NULL);
+	keybindings_set_item(group, GEANY_KEYS_EDIT_CALLTIP, cb_func_tags,
+		GDK_space, GDK_CONTROL_MASK | GDK_SHIFT_MASK, "edit_calltip", _("Show calltip"), NULL);
+	keybindings_set_item(group, GEANY_KEYS_EDIT_MACROLIST, cb_func_tags,
+		GDK_Return, GDK_CONTROL_MASK, "edit_macrolist", _("Show macro list"), NULL);
+	keybindings_set_item(group, GEANY_KEYS_EDIT_COMPLETESNIPPET, NULL,	/* has special callback */
+		GDK_Tab, 0, "edit_completesnippet", _("Complete snippet"), NULL);
+	keybindings_set_item(group, GEANY_KEYS_EDIT_SUPPRESSSNIPPETCOMPLETION, cb_func_tags,
+		0, 0, "edit_suppresssnippetcompletion", _("Suppress snippet completion"), NULL);
+	keybindings_set_item(group, GEANY_KEYS_POPUP_GOTOTAGDEFINITION, cb_func_current_word,
+		0, 0, "popup_gototagdefinition", _("Go to Tag Definition"), NULL);
+	keybindings_set_item(group, GEANY_KEYS_POPUP_GOTOTAGDECLARATION, cb_func_current_word,
+		0, 0, "popup_gototagdeclaration", _("Go to Tag Declaration"), NULL);
 
 	group = ADD_KB_GROUP(OTHER, _("Other commands"));
 
-	add_kb(group, GEANY_KEYS_NAV_BACK, cb_func_nav_back,
-		0, 0, "nav_back", _("Navigate back a location"));
-	add_kb(group, GEANY_KEYS_NAV_FORWARD, cb_func_nav_forward,
-		0, 0, "nav_forward", _("Navigate forward a location"));
+	keybindings_set_item(group, GEANY_KEYS_NAV_BACK, cb_func_nav_back,
+		0, 0, "nav_back", _("Navigate back a location"), NULL);
+	keybindings_set_item(group, GEANY_KEYS_NAV_FORWARD, cb_func_nav_forward,
+		0, 0, "nav_forward", _("Navigate forward a location"), NULL);
 }
 
 
@@ -892,11 +893,11 @@
 
 			if (keyval == kb->key && state == kb->mods)
 			{
-				if (kb->cb_func == NULL)
+				if (kb->callback == NULL)
 					return FALSE;	/* ignore the keybinding */
 
 				/* call the corresponding callback function for this shortcut */
-				kb->cb_func(i);
+				kb->callback(i);
 				return TRUE;
 			}
 		}
@@ -908,7 +909,7 @@
 }
 
 
-KeyBinding *keybindings_lookup_item(guint group_id, guint cmd_id)
+KeyBinding *keybindings_lookup_item(guint group_id, guint key_id)
 {
 	KeyBindingGroup *group;
 
@@ -917,25 +918,25 @@
 	group = g_ptr_array_index(keybinding_groups, group_id);
 
 	g_return_val_if_fail(group, NULL);
-	g_return_val_if_fail(cmd_id < group->count, NULL);
+	g_return_val_if_fail(key_id < group->count, NULL);
 
-	return &group->keys[cmd_id];
+	return &group->keys[key_id];
 }
 
 
 /** Mimic a (built-in only) keybinding action.
  * 	Example: @code keybindings_send_command(GEANY_KEYGROUP_FILE, GEANY_KEYS_MENU_OPEN); @endcode
- * 	@param group_id The index for the key group that contains the @a cmd_id keybinding.
- * 	@param cmd_id The keybinding command index. */
-void keybindings_send_command(gint group_id, gint cmd_id)
+ * 	@param group_id The index for the key group that contains the @a key_id keybinding.
+ * 	@param key_id The keybinding command index. */
+void keybindings_send_command(gint group_id, gint key_id)
 {
 	KeyBinding *kb;
 
 	g_return_if_fail(group_id < GEANY_KEYGROUP_COUNT);	/* can't use this for plugin groups */
 
-	kb = keybindings_lookup_item(group_id, cmd_id);
+	kb = keybindings_lookup_item(group_id, key_id);
 	if (kb)
-		kb->cb_func(cmd_id);
+		kb->callback(key_id);
 }
 
 

Modified: branches/plugin-keybindings/src/keybindings.h
===================================================================
--- branches/plugin-keybindings/src/keybindings.h	2008-03-09 18:50:41 UTC (rev 2317)
+++ branches/plugin-keybindings/src/keybindings.h	2008-03-10 13:23:57 UTC (rev 2318)
@@ -39,7 +39,7 @@
 #endif
 
 
-typedef void (*KBCallback) (guint key_id);
+typedef void (*KeyCallback) (guint key_id);
 
 /** Represents a single keybinding action */
 typedef struct KeyBinding
@@ -48,7 +48,8 @@
 	GdkModifierType mods;	/**< Modifier keys, such as @c GDK_CONTROL_MASK */
 	const gchar *name;		/**< Key name for the configuration file, such as @c "menu_new" */
 	const gchar *label;		/**< Label used in the preferences dialog keybindings tab */
-	KBCallback cb_func;		/**< Callback function called when the key combination is pressed */
+	KeyCallback callback;	/**< Callback function called when the key combination is pressed */
+	GtkWidget *menu_item;	/**< Menu item widget for setting the menu accelerator */
 } KeyBinding;
 
 
@@ -253,10 +254,14 @@
 
 void keybindings_free(void);
 
-void keybindings_send_command(gint group_id, gint cmd_id);
+void keybindings_set_item(KeyBindingGroup *group, gsize key_id,
+		KeyCallback callback, guint key, GdkModifierType mod,
+		const gchar *name, const gchar *label, GtkWidget *menu_item);
 
-KeyBinding *keybindings_lookup_item(guint group_id, guint cmd_id);
+void keybindings_send_command(gint group_id, gint key_id);
 
+KeyBinding *keybindings_lookup_item(guint group_id, guint key_id);
+
 /* just write the content of the keys array to the config file */
 void keybindings_write_to_file(void);
 

Modified: branches/plugin-keybindings/src/plugindata.h
===================================================================
--- branches/plugin-keybindings/src/plugindata.h	2008-03-09 18:50:41 UTC (rev 2317)
+++ branches/plugin-keybindings/src/plugindata.h	2008-03-10 13:23:57 UTC (rev 2318)
@@ -25,7 +25,9 @@
 #ifndef PLUGIN_H
 #define PLUGIN_H
 
+#include "keybindings.h"	/* needed for KeyCallback typedef */
 
+
 /**
  *  @file plugindata.h
  *  This file defines the plugin API, the interface between Geany and its plugins.
@@ -36,7 +38,7 @@
 
 /* The API version should be incremented whenever any plugin data types below are
  * modified or appended to. */
-static const gint api_version = 46;
+static const gint api_version = 47;
 
 /* The ABI version should be incremented whenever existing fields in the plugin
  * data types below have to be changed or reordered. It should stay the same if fields
@@ -332,7 +334,10 @@
 
 typedef struct KeybindingFuncs
 {
-	void		(*send_command) (gint group_id, gint cmd_id);
+	void		(*send_command) (gint group_id, gint key_id);
+	void		(*set_item) (struct KeyBindingGroup *group, gsize key_id,
+					KeyCallback callback, guint key, GdkModifierType mod,
+					const gchar *name, const gchar *label, GtkWidget *menu_item);
 }
 KeybindingFuncs;
 

Modified: branches/plugin-keybindings/src/plugins.c
===================================================================
--- branches/plugin-keybindings/src/plugins.c	2008-03-09 18:50:41 UTC (rev 2317)
+++ branches/plugin-keybindings/src/plugins.c	2008-03-10 13:23:57 UTC (rev 2318)
@@ -188,7 +188,8 @@
 };
 
 static KeybindingFuncs keybindings_funcs = {
-	&keybindings_send_command
+	&keybindings_send_command,
+	&keybindings_set_item
 };
 
 static TagManagerFuncs tagmanager_funcs = {


This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.



More information about the Commits mailing list