Make all encoding combo box display a list with encodings grouped by
categories into sub-menus, making it easier to find the appropriate
encoding than in a big single-level list.
This is what was used in the Open dialog, but not in the Preferences
dialog or the Find in Files dialog. This also makes the encoding
combo boxes behave more like the encoding menus.
Change utils_parse_color() to use gdk_color_parse() and follow its
syntax, additionally supporting our "0x" prefix as a synonym for the
"#" prefix; and use this everywhere.
Also add utils_color_to_bgr() and utils_parse_color_to_bgr() to provide
conversion to the 24 bits BGR format used by Scintilla.
When scrolling the keybinding list to display a particular row, which
is used to display a particular plugin's keybindings, consistently
scroll so the row is on the top left. This makes it easier to see the
row in question since it's always at the same location, and it shows
more child keybindings.
Most noteworthy change is that all build commands IDs and groups are
now unsigned everywhere negative values aren't explicitly handled with
a special meaning. This should not change anything in behavior, only
makes clear the index won't underflow.
When checking whether a keybinding is already in use before updating
it in the preferences, check against the keybindings the user may have
updated, not the ones that are currently applied.
This fixes changing action A from key K to key L and action B from key
L to key K, which led to conflicts back and forth since when setting B
to K the check found A as a duplicate even after having changed it.
* Put back ui_hookup_widget and ui_lookup_widget functions
* Put back lookup_widget code in stash.c
* Emulate old create_*() functions from interface.[ch].
* Hookup all the GtkBuilder widget's to their top widgets like Glade 2
generated code would've done.
* Misc changes to accomodate the above.
Store a pointer to the stash pref for each row, so display/update is just
O(n) instead of O(n^2) time.
This changes the order prefs are updated in, but this doesn't matter.
plugin ABI.
Reorder Project group to follow main menu order.
Move Focus, Notebook tab groups last as they don't have
corresponding menu items.
Use keybindings_get_core_group() for fixed group IDs instead of
indexing keybinding_groups.
Make keybindings_lookup_item() only work with a GEANY_KEY_GROUP_
ID, not an index into keybinding_groups.
git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@5990 ea778897-0a13-0410-b9d1-a72fbfd435f5
Don't hack around to trigger the help when the help button is clicked
on, simply handle the HELP dialog response. This makes the button
correctly show help rather than close the dialog when activated using
the keyboard.
This also drops _button_press_event() need and hack, making the button
correctly respond visually to mouse clicks.
git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@5820 ea778897-0a13-0410-b9d1-a72fbfd435f5
arrays for core keybindings. This allows the keybinding IDs to be
merged into one enum; the order of keybindings is now just the
order they are added to each group. Keybindings can be reordered
without breaking the plugin ABI but groups must stay the same.
git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@5120 ea778897-0a13-0410-b9d1-a72fbfd435f5