2c0316a296
Change keybindings code to use keybinding groups, each with a separate enum set, which will make the plugin ABI more stable, and lay the groundwork for plugin keybindings support. Note: this breaks the plugin API. Rename keybindings_cmd() to keybindings_send_command(), which now takes a group_id argument. Add keybindings_lookup_item(). Add documentation for keybindings structs. Add support for plugin keybindings using the PLUGIN_KEY_GROUP() macro. Add a plugin keybinding for 'Insert Special HTML Characters'. Rename KBCallback, cmd_id, cb_func with clearer names. Add KeyBinding::menu_item field for setting accelerators (currently does nothing). Load keybindings keyfile after plugins have loaded at startup, so their shortcuts are also loaded. Still to do: loading individual plugin keybindings after startup. Group most keybinding callbacks together according to keybinding group. Add keybindings_set_item() and add it to the plugin API. Set main menu widget accels with keybindings_set_item() - they are ignored for now. Popup menu accels are set separately. git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@2324 ea778897-0a13-0410-b9d1-a72fbfd435f5