[geany/geany] 3783ee: Use icons from the theme in the completion popup
Colomban Wendling
git-noreply at geany.org
Tue Jan 1 18:10:48 UTC 2013
Branch: refs/heads/master
Author: Colomban Wendling <ban at herbesfolles.org>
Committer: Colomban Wendling <ban at herbesfolles.org>
Date: Tue, 01 Jan 2013 18:10:48 UTC
Commit: 3783eed0ea0a032fae43f031305c1605aa245c8f
https://github.com/geany/geany/commit/3783eed0ea0a032fae43f031305c1605aa245c8f
Log Message:
-----------
Use icons from the theme in the completion popup
Drop the XPM icons and load the PNG ones through the theme mechanisms,
like we do for the symbols tree.
Modified Paths:
--------------
icons/16x16/Makefile.am
icons/16x16/classviewer-method.xpm
icons/16x16/classviewer-var.xpm
src/editor.c
Modified: icons/16x16/Makefile.am
4 files changed, 0 insertions(+), 4 deletions(-)
===================================================================
@@ -17,7 +17,3 @@ dist_icons_actions_DATA = \
geany-build.png \
geany-close-all.png \
geany-save-all.png
-
-dist_noinst_DATA = \
- classviewer-var.xpm \
- classviewer-method.xpm
Modified: icons/16x16/classviewer-method.xpm
27 files changed, 0 insertions(+), 27 deletions(-)
===================================================================
@@ -1,27 +0,0 @@
-/* XPM */
-static char *classviewer_method[] = {
-/* columns rows colors chars-per-pixel */
-"16 16 5 1",
-" c black",
-". c #E0BC38",
-"X c #F0DC5C",
-"o c #FCFC80",
-"O c None",
-/* pixels */
-"OOOOOOOOOOOOOOOO",
-"OOOOOOOOOOOOOOOO",
-"OOOOOOOOOOOOOOOO",
-"OOOOOOOOOO OOOO",
-"OOOOOOOOO oo OO",
-"OOOOOOOO ooooo O",
-"OOOOOOO ooooo. O",
-"OOOO O XXoo.. O",
-"OOO oo XXX... O",
-"OO ooooo XX.. OO",
-"O ooooo. X. OOO",
-"O XXoo.. O OOOO",
-"O XXX... OOOOOOO",
-"O XXX.. OOOOOOOO",
-"OO X. OOOOOOOOO",
-"OOOO OOOOOOOOOO"
-};
Modified: icons/16x16/classviewer-var.xpm
27 files changed, 0 insertions(+), 27 deletions(-)
===================================================================
@@ -1,27 +0,0 @@
-/* XPM */
-static char *classviewer_var[] = {
-/* columns rows colors chars-per-pixel */
-"16 16 5 1",
-" c black",
-". c #8C748C",
-"X c #9C94A4",
-"o c #ACB4C0",
-"O c None",
-/* pixels */
-"OOOOOOOOOOOOOOOO",
-"OOOOOOOOOOOOOOOO",
-"OOOOOOOOOOOOOOOO",
-"OOOOOOOOOOOOOOOO",
-"OOOOOOOOOOOOOOOO",
-"OOOOOOOOOOOOOOOO",
-"OOOOOOOOO OOOOO",
-"OOOOOOOO oo OOO",
-"OOOOOOO ooooo OO",
-"OOOOOO ooooo. OO",
-"OOOOOO XXoo.. OO",
-"OOOOOO XXX... OO",
-"OOOOOO XXX.. OOO",
-"OOOOOOO X. OOOO",
-"OOOOOOOOO OOOOO",
-"OOOOOOOOOOOOOOOO"
-};
Modified: src/editor.c
46 files changed, 42 insertions(+), 4 deletions(-)
===================================================================
@@ -4682,8 +4682,46 @@ static void setup_sci_keys(ScintillaObject *sci)
}
-#include "icons/16x16/classviewer-var.xpm"
-#include "icons/16x16/classviewer-method.xpm"
+/* registers a Scintilla image from a named icon from the theme */
+static gboolean register_named_icon(ScintillaObject *sci, guint id, const gchar *name)
+{
+ GError *error = NULL;
+ GdkPixbuf *pixbuf;
+ gint n_channels, rowstride, width, height;
+ gint size;
+
+ gtk_icon_size_lookup(GTK_ICON_SIZE_MENU, &size, NULL);
+ pixbuf = gtk_icon_theme_load_icon(gtk_icon_theme_get_default(), name, size, 0, &error);
+ if (! pixbuf)
+ {
+ g_warning("failed to load icon '%s': %s", name, error->message);
+ g_error_free(error);
+ return FALSE;
+ }
+
+ n_channels = gdk_pixbuf_get_n_channels(pixbuf);
+ rowstride = gdk_pixbuf_get_rowstride(pixbuf);
+ width = gdk_pixbuf_get_width(pixbuf);
+ height = gdk_pixbuf_get_height(pixbuf);
+
+ if (gdk_pixbuf_get_bits_per_sample(pixbuf) != 8 ||
+ ! gdk_pixbuf_get_has_alpha(pixbuf) ||
+ n_channels != 4 ||
+ rowstride != width * n_channels)
+ {
+ g_warning("incompatible image data for icon '%s'", name);
+ g_object_unref(pixbuf);
+ return FALSE;
+ }
+
+ SSM(sci, SCI_RGBAIMAGESETWIDTH, width, 0);
+ SSM(sci, SCI_RGBAIMAGESETHEIGHT, height, 0);
+ SSM(sci, SCI_REGISTERRGBAIMAGE, id, (sptr_t)gdk_pixbuf_get_pixels(pixbuf));
+
+ g_object_unref(pixbuf);
+ return TRUE;
+}
+
/* Create new editor widget (scintilla).
* @note The @c "sci-notify" signal is connected separately. */
@@ -4715,8 +4753,8 @@ static ScintillaObject *create_new_sci(GeanyEditor *editor)
SSM(sci, SCI_SETSCROLLWIDTHTRACKING, 1, 0);
/* tag autocompletion images */
- SSM(sci, SCI_REGISTERIMAGE, 1, (sptr_t)classviewer_var);
- SSM(sci, SCI_REGISTERIMAGE, 2, (sptr_t)classviewer_method);
+ register_named_icon(sci, 1, "classviewer-var");
+ register_named_icon(sci, 2, "classviewer-method");
/* necessary for column mode editing, implemented in Scintilla since 2.0 */
SSM(sci, SCI_SETADDITIONALSELECTIONTYPING, 1, 0);
--------------
This E-Mail was brought to you by github_commit_mail.py (Source: https://github.com/geany/infrastructure).
More information about the Commits
mailing list