[gnome-builder] editor: add function icon to IDE_SYMBOL_FUNCTION symbols
- From: Christian Hergert <chergert src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-builder] editor: add function icon to IDE_SYMBOL_FUNCTION symbols
- Date: Sun, 29 Mar 2015 20:09:02 +0000 (UTC)
commit 5cb6b02e4b5d989e86137c8b81b3d666b5104c19
Author: Christian Hergert <christian hergert me>
Date: Sun Mar 29 13:08:32 2015 -0700
editor: add function icon to IDE_SYMBOL_FUNCTION symbols
src/editor/gb-editor-view.c | 66 ++++++++++++++++++++++++++++++++++++++++--
1 files changed, 62 insertions(+), 4 deletions(-)
---
diff --git a/src/editor/gb-editor-view.c b/src/editor/gb-editor-view.c
index f9c80a0..fab9b9d 100644
--- a/src/editor/gb-editor-view.c
+++ b/src/editor/gb-editor-view.c
@@ -241,9 +241,17 @@ gb_editor_view_update_symbols_cb (GObject *object,
IdeSymbol *symbol;
GtkListBoxRow *row;
GtkLabel *label;
+ GtkBox *box;
+ GtkImage *image;
+ IdeSymbolKind kind;
+ IdeSymbolFlags flags;
+ const gchar *icon_name;
symbol = g_ptr_array_index (ret, i);
+ kind = ide_symbol_get_kind (symbol);
+ flags = ide_symbol_get_flags (symbol);
name = ide_symbol_get_name (symbol);
+
row = g_object_new (GTK_TYPE_LIST_BOX_ROW,
"visible", TRUE,
NULL);
@@ -251,16 +259,66 @@ gb_editor_view_update_symbols_cb (GObject *object,
"IDE_SYMBOL",
ide_symbol_ref (symbol),
(GDestroyNotify)ide_symbol_unref);
+
+ box = g_object_new (GTK_TYPE_BOX,
+ "orientation", GTK_ORIENTATION_HORIZONTAL,
+ "visible", TRUE,
+ NULL);
+
+ switch (kind)
+ {
+ case IDE_SYMBOL_FUNCTION:
+ icon_name = "lang-function-symbolic";
+ break;
+
+ case IDE_SYMBOL_SCALAR:
+ case IDE_SYMBOL_CLASS:
+ case IDE_SYMBOL_METHOD:
+ case IDE_SYMBOL_STRUCT:
+ case IDE_SYMBOL_UNION:
+ case IDE_SYMBOL_FIELD:
+ case IDE_SYMBOL_ENUM:
+ case IDE_SYMBOL_ENUM_VALUE:
+ case IDE_SYMBOL_NONE:
+ default:
+ icon_name = NULL;
+ break;
+ }
+
+ image = g_object_new (GTK_TYPE_IMAGE,
+ "hexpand", FALSE,
+ "icon-name", icon_name,
+ "margin-start", 3,
+ "margin-end", 3,
+ "visible", TRUE,
+ NULL);
+
label = g_object_new (GTK_TYPE_LABEL,
+ "hexpand", TRUE,
"label", name,
- "visible", TRUE,
- "margin-top", 3,
"margin-bottom", 3,
- "margin-start", 6,
"margin-end", 6,
+ "margin-start", 6,
+ "margin-top", 3,
+ "visible", TRUE,
"xalign", 0.0f,
NULL);
- gtk_container_add (GTK_CONTAINER (row), GTK_WIDGET (label));
+
+ if ((flags & IDE_SYMBOL_FLAGS_IS_DEPRECATED) != 0)
+ {
+ gchar *name_markup;
+
+ name_markup = g_strdup_printf ("<i>%s</i>", name);
+ g_object_set (label,
+ "label", name_markup,
+ "use-markup", TRUE,
+ NULL);
+ g_free (name_markup);
+ }
+
+ gtk_container_add (GTK_CONTAINER (row), GTK_WIDGET (box));
+ gtk_container_add (GTK_CONTAINER (box), GTK_WIDGET (image));
+ gtk_container_add (GTK_CONTAINER (box), GTK_WIDGET (label));
gtk_container_add (GTK_CONTAINER (self->symbols_listbox), GTK_WIDGET (row));
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]