summaryrefslogtreecommitdiff
path: root/gtksourceview
diff options
context:
space:
mode:
authorPaolo Borelli <pborelli@gnome.org>2015-08-11 15:32:11 +0200
committerPaolo Borelli <pborelli@gnome.org>2015-08-15 10:00:20 +0200
commit5fabb88e1ea02abdbfc3a945e6b9367112b2b09e (patch)
treec22f2716106677d2bda7f2a06576ab79144e53be /gtksourceview
parent4a3702df87a124ad4a3380a69531ed3062b1daa1 (diff)
downloadgtksourceview-5fabb88e1ea02abdbfc3a945e6b9367112b2b09e.tar.gz
completion: add support for named-icons and GIcon
Support setting an icon-name or a GIcon on providers and proposals as an alternative to setting the Pixbuf. This makes much easier to use symbolic icons.
Diffstat (limited to 'gtksourceview')
-rw-r--r--gtksourceview/gtksourcecompletion.c47
-rw-r--r--gtksourceview/gtksourcecompletionitem.c81
-rw-r--r--gtksourceview/gtksourcecompletionmodel.c28
-rw-r--r--gtksourceview/gtksourcecompletionmodel.h2
-rw-r--r--gtksourceview/gtksourcecompletionproposal.c55
-rw-r--r--gtksourceview/gtksourcecompletionproposal.h28
-rw-r--r--gtksourceview/gtksourcecompletionprovider.c55
-rw-r--r--gtksourceview/gtksourcecompletionprovider.h12
8 files changed, 289 insertions, 19 deletions
diff --git a/gtksourceview/gtksourcecompletion.c b/gtksourceview/gtksourcecompletion.c
index 74851572..65fd3e83 100644
--- a/gtksourceview/gtksourcecompletion.c
+++ b/gtksourceview/gtksourcecompletion.c
@@ -1950,6 +1950,42 @@ accelerators_notify_cb (GtkSourceCompletion *completion,
}
static void
+cell_icon_func (GtkTreeViewColumn *column,
+ GtkCellRenderer *cell,
+ GtkTreeModel *model,
+ GtkTreeIter *iter,
+ gpointer data)
+{
+ GdkPixbuf *pixbuf;
+ gchar *icon_name;
+ GIcon *gicon;
+
+ gtk_tree_model_get (model, iter,
+ GTK_SOURCE_COMPLETION_MODEL_COLUMN_ICON, &pixbuf,
+ GTK_SOURCE_COMPLETION_MODEL_COLUMN_ICON_NAME, &icon_name,
+ GTK_SOURCE_COMPLETION_MODEL_COLUMN_GICON, &gicon,
+ -1);
+
+ if (pixbuf != NULL)
+ {
+ g_object_set (cell, "pixbuf", pixbuf, NULL);
+ g_object_unref (pixbuf);
+ }
+
+ if (icon_name != NULL)
+ {
+ g_object_set (cell, "icon-name", icon_name, NULL);
+ g_free (icon_name);
+ }
+
+ if (gicon != NULL)
+ {
+ g_object_set (cell, "gicon", gicon, NULL);
+ g_object_unref (gicon);
+ }
+}
+
+static void
init_tree_view (GtkSourceCompletion *completion,
GtkBuilder *builder)
{
@@ -1992,8 +2028,17 @@ init_tree_view (GtkSourceCompletion *completion,
column = GTK_TREE_VIEW_COLUMN (gtk_builder_get_object (builder, "tree_view_column_icon"));
+ /* We use a cell function instead of plain attributes for the icon since
+ * the pixbuf renderer will not renderer any icon if pixbuf is set to NULL.
+ * See https://bugzilla.gnome.org/show_bug.cgi?id=753510
+ */
+ gtk_tree_view_column_set_cell_data_func (column,
+ cell_renderer,
+ cell_icon_func,
+ NULL,
+ NULL);
+
gtk_tree_view_column_set_attributes (column, cell_renderer,
- "pixbuf", GTK_SOURCE_COMPLETION_MODEL_COLUMN_ICON,
"cell-background-set", GTK_SOURCE_COMPLETION_MODEL_COLUMN_IS_HEADER,
NULL);
diff --git a/gtksourceview/gtksourcecompletionitem.c b/gtksourceview/gtksourcecompletionitem.c
index 66df16d3..b352fd8a 100644
--- a/gtksourceview/gtksourcecompletionitem.c
+++ b/gtksourceview/gtksourcecompletionitem.c
@@ -39,6 +39,8 @@ struct _GtkSourceCompletionItemPrivate
gchar *text;
gchar *info;
GdkPixbuf *icon;
+ gchar *icon_name;
+ GIcon *gicon;
};
/* Properties */
@@ -49,6 +51,8 @@ enum
PROP_MARKUP,
PROP_TEXT,
PROP_ICON,
+ PROP_ICON_NAME,
+ PROP_GICON,
PROP_INFO
};
@@ -85,6 +89,18 @@ gtk_source_completion_proposal_get_icon_impl (GtkSourceCompletionProposal *self)
return GTK_SOURCE_COMPLETION_ITEM (self)->priv->icon;
}
+static const gchar *
+gtk_source_completion_proposal_get_icon_name_impl (GtkSourceCompletionProposal *self)
+{
+ return GTK_SOURCE_COMPLETION_ITEM (self)->priv->icon_name;
+}
+
+static GIcon *
+gtk_source_completion_proposal_get_gicon_impl (GtkSourceCompletionProposal *self)
+{
+ return GTK_SOURCE_COMPLETION_ITEM (self)->priv->gicon;
+}
+
static gchar *
gtk_source_completion_proposal_get_info_impl (GtkSourceCompletionProposal *self)
{
@@ -102,6 +118,8 @@ gtk_source_completion_proposal_iface_init (gpointer g_iface,
iface->get_markup = gtk_source_completion_proposal_get_markup_impl;
iface->get_text = gtk_source_completion_proposal_get_text_impl;
iface->get_icon = gtk_source_completion_proposal_get_icon_impl;
+ iface->get_icon_name = gtk_source_completion_proposal_get_icon_name_impl;
+ iface->get_gicon = gtk_source_completion_proposal_get_gicon_impl;
iface->get_info = gtk_source_completion_proposal_get_info_impl;
}
@@ -121,6 +139,13 @@ gtk_source_completion_item_finalize (GObject *object)
g_object_unref (self->priv->icon);
}
+ g_free (self->priv->icon_name);
+
+ if (self->priv->gicon != NULL)
+ {
+ g_object_unref (self->priv->gicon);
+ }
+
G_OBJECT_CLASS (gtk_source_completion_item_parent_class)->finalize (object);
}
@@ -153,6 +178,12 @@ gtk_source_completion_item_get_property (GObject *object,
case PROP_ICON:
g_value_set_object (value, self->priv->icon);
break;
+ case PROP_ICON_NAME:
+ g_value_set_string (value, self->priv->icon_name);
+ break;
+ case PROP_GICON:
+ g_value_set_object (value, self->priv->gicon);
+ break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
break;
@@ -182,13 +213,11 @@ gtk_source_completion_item_set_property (GObject *object,
case PROP_LABEL:
g_free (self->priv->label);
self->priv->label = g_value_dup_string (value);
-
emit_changed (self);
break;
case PROP_MARKUP:
g_free (self->priv->markup);
self->priv->markup = g_value_dup_string (value);
-
emit_changed (self);
break;
case PROP_TEXT:
@@ -198,7 +227,6 @@ gtk_source_completion_item_set_property (GObject *object,
case PROP_INFO:
g_free (self->priv->info);
self->priv->info = g_value_dup_string (value);
-
emit_changed (self);
break;
case PROP_ICON:
@@ -210,6 +238,20 @@ gtk_source_completion_item_set_property (GObject *object,
self->priv->icon = GDK_PIXBUF (g_value_dup_object (value));
emit_changed (self);
break;
+ case PROP_ICON_NAME:
+ g_free (self->priv->icon_name);
+ self->priv->icon_name = g_value_dup_string (value);
+ emit_changed (self);
+ break;
+ case PROP_GICON:
+ if (self->priv->gicon != NULL)
+ {
+ g_object_unref (self->priv->gicon);
+ }
+
+ self->priv->gicon = G_ICON (g_value_dup_object (value));
+ emit_changed (self);
+ break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
break;
@@ -267,17 +309,46 @@ gtk_source_completion_item_class_init (GtkSourceCompletionItemClass *klass)
/**
* GtkSourceCompletionItem:icon:
*
- * Icon to be shown for this proposal.
+ * The #GdkPixbuf for the icon to be shown for this proposal.
*/
g_object_class_install_property (object_class,
PROP_ICON,
g_param_spec_object ("icon",
"Icon",
- "Icon to be shown for this item",
+ "Pixbuf of the icon to be shown for this item",
GDK_TYPE_PIXBUF,
G_PARAM_READWRITE));
/**
+ * GtkSourceCompletionItem:icon-name:
+ *
+ * The icon name for the icon to be shown for this proposal.
+ *
+ * Since: 3.18
+ */
+ g_object_class_install_property (object_class,
+ PROP_ICON_NAME,
+ g_param_spec_string ("icon-name",
+ "Icon Name",
+ "Icon name of the icon to be shown for this item",
+ NULL,
+ G_PARAM_READWRITE));
+
+ /**
+ * GtkSourceCompletionItem:gicon:
+ *
+ * The #GIcon for the icon to be shown for this proposal.
+ *
+ * Since: 3.18
+ */
+ g_object_class_install_property (object_class,
+ PROP_GICON,
+ g_param_spec_object ("gicon",
+ "GIcon",
+ "GIcon of the icon to be shown for this item",
+ G_TYPE_ICON,
+ G_PARAM_READWRITE));
+ /**
* GtkSourceCompletionItem:info:
*
* Optional extra information to be shown for this proposal.
diff --git a/gtksourceview/gtksourcecompletionmodel.c b/gtksourceview/gtksourcecompletionmodel.c
index 0430a2a6..ca54de83 100644
--- a/gtksourceview/gtksourcecompletionmodel.c
+++ b/gtksourceview/gtksourcecompletionmodel.c
@@ -520,6 +520,32 @@ tree_model_get_value (GtkTreeModel *tree_model,
}
break;
+ case GTK_SOURCE_COMPLETION_MODEL_COLUMN_ICON_NAME:
+ if (is_header (proposal_info))
+ {
+ const gchar *icon_name = gtk_source_completion_provider_get_icon_name (completion_provider);
+ g_value_set_string (value, (gpointer)icon_name);
+ }
+ else
+ {
+ const gchar *icon_name = gtk_source_completion_proposal_get_icon_name (completion_proposal);
+ g_value_set_string (value, (gpointer)icon_name);
+ }
+ break;
+
+ case GTK_SOURCE_COMPLETION_MODEL_COLUMN_GICON:
+ if (is_header (proposal_info))
+ {
+ GIcon *icon = gtk_source_completion_provider_get_gicon (completion_provider);
+ g_value_set_object (value, (gpointer)icon);
+ }
+ else
+ {
+ GIcon *icon = gtk_source_completion_proposal_get_gicon (completion_proposal);
+ g_value_set_object (value, (gpointer)icon);
+ }
+ break;
+
case GTK_SOURCE_COMPLETION_MODEL_COLUMN_IS_HEADER:
g_value_set_boolean (value, is_header (proposal_info));
break;
@@ -724,6 +750,8 @@ gtk_source_completion_model_init (GtkSourceCompletionModel *self)
self->priv->column_types[GTK_SOURCE_COMPLETION_MODEL_COLUMN_MARKUP] = G_TYPE_STRING;
self->priv->column_types[GTK_SOURCE_COMPLETION_MODEL_COLUMN_ICON] = GDK_TYPE_PIXBUF;
+ self->priv->column_types[GTK_SOURCE_COMPLETION_MODEL_COLUMN_ICON_NAME] = G_TYPE_STRING;
+ self->priv->column_types[GTK_SOURCE_COMPLETION_MODEL_COLUMN_GICON] = G_TYPE_ICON;
self->priv->column_types[GTK_SOURCE_COMPLETION_MODEL_COLUMN_PROPOSAL] = G_TYPE_OBJECT;
self->priv->column_types[GTK_SOURCE_COMPLETION_MODEL_COLUMN_PROVIDER] = G_TYPE_OBJECT;
self->priv->column_types[GTK_SOURCE_COMPLETION_MODEL_COLUMN_IS_HEADER] = G_TYPE_BOOLEAN;
diff --git a/gtksourceview/gtksourcecompletionmodel.h b/gtksourceview/gtksourcecompletionmodel.h
index 927051d1..8f7ee268 100644
--- a/gtksourceview/gtksourcecompletionmodel.h
+++ b/gtksourceview/gtksourcecompletionmodel.h
@@ -55,6 +55,8 @@ enum
{
GTK_SOURCE_COMPLETION_MODEL_COLUMN_MARKUP,
GTK_SOURCE_COMPLETION_MODEL_COLUMN_ICON,
+ GTK_SOURCE_COMPLETION_MODEL_COLUMN_ICON_NAME,
+ GTK_SOURCE_COMPLETION_MODEL_COLUMN_GICON,
GTK_SOURCE_COMPLETION_MODEL_COLUMN_PROPOSAL,
GTK_SOURCE_COMPLETION_MODEL_COLUMN_PROVIDER,
GTK_SOURCE_COMPLETION_MODEL_COLUMN_IS_HEADER,
diff --git a/gtksourceview/gtksourcecompletionproposal.c b/gtksourceview/gtksourcecompletionproposal.c
index 47bf9250..8e063a33 100644
--- a/gtksourceview/gtksourcecompletionproposal.c
+++ b/gtksourceview/gtksourcecompletionproposal.c
@@ -69,6 +69,18 @@ gtk_source_completion_proposal_get_icon_default (GtkSourceCompletionProposal *pr
return NULL;
}
+static const gchar *
+gtk_source_completion_proposal_get_icon_name_default (GtkSourceCompletionProposal *proposal)
+{
+ return NULL;
+}
+
+static GIcon *
+gtk_source_completion_proposal_get_gicon_default (GtkSourceCompletionProposal *proposal)
+{
+ return NULL;
+}
+
static gchar *
gtk_source_completion_proposal_get_info_default (GtkSourceCompletionProposal *proposal)
{
@@ -96,8 +108,9 @@ gtk_source_completion_proposal_default_init (GtkSourceCompletionProposalIface *i
iface->get_label = gtk_source_completion_proposal_get_label_default;
iface->get_markup = gtk_source_completion_proposal_get_markup_default;
iface->get_text = gtk_source_completion_proposal_get_text_default;
-
iface->get_icon = gtk_source_completion_proposal_get_icon_default;
+ iface->get_icon_name = gtk_source_completion_proposal_get_icon_name_default;
+ iface->get_gicon = gtk_source_completion_proposal_get_gicon_default;
iface->get_info = gtk_source_completion_proposal_get_info_default;
iface->hash = gtk_source_completion_proposal_hash_default;
iface->equal = gtk_source_completion_proposal_equal_default;
@@ -187,9 +200,9 @@ gtk_source_completion_proposal_get_text (GtkSourceCompletionProposal *proposal)
* gtk_source_completion_proposal_get_icon:
* @proposal: a #GtkSourceCompletionProposal.
*
- * Gets the icon of @proposal.
+ * Gets the #GdkPixbuf for the icon of @proposal.
*
- * Returns: (transfer none): The icon of @proposal.
+ * Returns: (nullable) (transfer none): A #GdkPixbuf with the icon of @proposal.
*/
GdkPixbuf *
gtk_source_completion_proposal_get_icon (GtkSourceCompletionProposal *proposal)
@@ -200,6 +213,42 @@ gtk_source_completion_proposal_get_icon (GtkSourceCompletionProposal *proposal)
}
/**
+ * gtk_source_completion_proposal_get_icon_name:
+ * @proposal: a #GtkSourceCompletionProposal.
+ *
+ * Gets the icon name of @proposal.
+ *
+ * Returns: (nullable) (transfer none): The icon name of @proposal.
+ *
+ * Since: 3.18
+ */
+const gchar *
+gtk_source_completion_proposal_get_icon_name (GtkSourceCompletionProposal *proposal)
+{
+ g_return_val_if_fail (GTK_SOURCE_IS_COMPLETION_PROPOSAL (proposal), NULL);
+
+ return GTK_SOURCE_COMPLETION_PROPOSAL_GET_INTERFACE (proposal)->get_icon_name (proposal);
+}
+
+/**
+ * gtk_source_completion_proposal_get_gicon:
+ * @proposal: a #GtkSourceCompletionProposal.
+ *
+ * Gets the #GIcon for the icon of @proposal.
+ *
+ * Returns: (nullable) (transfer none): A #GIcon with the icon of @proposal.
+ *
+ * Since: 3.18
+ */
+GIcon *
+gtk_source_completion_proposal_get_gicon (GtkSourceCompletionProposal *proposal)
+{
+ g_return_val_if_fail (GTK_SOURCE_IS_COMPLETION_PROPOSAL (proposal), NULL);
+
+ return GTK_SOURCE_COMPLETION_PROPOSAL_GET_INTERFACE (proposal)->get_gicon (proposal);
+}
+
+/**
* gtk_source_completion_proposal_get_info:
* @proposal: a #GtkSourceCompletionProposal.
*
diff --git a/gtksourceview/gtksourcecompletionproposal.h b/gtksourceview/gtksourcecompletionproposal.h
index 05d09690..0b59012d 100644
--- a/gtksourceview/gtksourcecompletionproposal.h
+++ b/gtksourceview/gtksourcecompletionproposal.h
@@ -47,6 +47,10 @@ typedef struct _GtkSourceCompletionProposalIface GtkSourceCompletionProposalIfac
* By default, %NULL is returned.
* @get_icon: The virtual function pointer for gtk_source_completion_proposal_get_icon().
* By default, %NULL is returned.
+ * @get_icon_name: The virtual function pointer for gtk_source_completion_proposal_get_icon_name().
+ * By default, %NULL is returned.
+ * @get_gicon: The virtual function pointer for gtk_source_completion_proposal_get_gicon().
+ * By default, %NULL is returned.
* @get_info: The virtual function pointer for gtk_source_completion_proposal_get_info().
* By default, %NULL is returned.
* @hash: The virtual function pointer for gtk_source_completion_proposal_hash().
@@ -62,19 +66,22 @@ struct _GtkSourceCompletionProposalIface
GTypeInterface parent;
/* Interface functions */
- gchar *(*get_label) (GtkSourceCompletionProposal *proposal);
- gchar *(*get_markup) (GtkSourceCompletionProposal *proposal);
- gchar *(*get_text) (GtkSourceCompletionProposal *proposal);
+ gchar *(*get_label) (GtkSourceCompletionProposal *proposal);
+ gchar *(*get_markup) (GtkSourceCompletionProposal *proposal);
+ gchar *(*get_text) (GtkSourceCompletionProposal *proposal);
- GdkPixbuf *(*get_icon) (GtkSourceCompletionProposal *proposal);
- gchar *(*get_info) (GtkSourceCompletionProposal *proposal);
+ GdkPixbuf *(*get_icon) (GtkSourceCompletionProposal *proposal);
+ const gchar *(*get_icon_name) (GtkSourceCompletionProposal *proposal);
+ GIcon *(*get_gicon) (GtkSourceCompletionProposal *proposal);
- guint (*hash) (GtkSourceCompletionProposal *proposal);
- gboolean (*equal) (GtkSourceCompletionProposal *proposal,
- GtkSourceCompletionProposal *other);
+ gchar *(*get_info) (GtkSourceCompletionProposal *proposal);
+
+ guint (*hash) (GtkSourceCompletionProposal *proposal);
+ gboolean (*equal) (GtkSourceCompletionProposal *proposal,
+ GtkSourceCompletionProposal *other);
/* Signals */
- void (*changed) (GtkSourceCompletionProposal *proposal);
+ void (*changed) (GtkSourceCompletionProposal *proposal);
};
GType gtk_source_completion_proposal_get_type (void) G_GNUC_CONST;
@@ -84,6 +91,9 @@ gchar *gtk_source_completion_proposal_get_markup (GtkSourceCompletionProposal
gchar *gtk_source_completion_proposal_get_text (GtkSourceCompletionProposal *proposal);
GdkPixbuf *gtk_source_completion_proposal_get_icon (GtkSourceCompletionProposal *proposal);
+const gchar *gtk_source_completion_proposal_get_icon_name (GtkSourceCompletionProposal *proposal);
+GIcon *gtk_source_completion_proposal_get_gicon (GtkSourceCompletionProposal *proposal);
+
gchar *gtk_source_completion_proposal_get_info (GtkSourceCompletionProposal *proposal);
void gtk_source_completion_proposal_changed (GtkSourceCompletionProposal *proposal);
diff --git a/gtksourceview/gtksourcecompletionprovider.c b/gtksourceview/gtksourcecompletionprovider.c
index 3f1f4f7c..1b3ad81b 100644
--- a/gtksourceview/gtksourcecompletionprovider.c
+++ b/gtksourceview/gtksourcecompletionprovider.c
@@ -50,6 +50,18 @@ gtk_source_completion_provider_get_icon_default (GtkSourceCompletionProvider *pr
return NULL;
}
+static const gchar *
+gtk_source_completion_provider_get_icon_name_default (GtkSourceCompletionProvider *provider)
+{
+ return NULL;
+}
+
+static GIcon *
+gtk_source_completion_provider_get_gicon_default (GtkSourceCompletionProvider *provider)
+{
+ return NULL;
+}
+
static void
gtk_source_completion_provider_populate_default (GtkSourceCompletionProvider *provider,
GtkSourceCompletionContext *context)
@@ -119,7 +131,10 @@ static void
gtk_source_completion_provider_default_init (GtkSourceCompletionProviderIface *iface)
{
iface->get_name = gtk_source_completion_provider_get_name_default;
+
iface->get_icon = gtk_source_completion_provider_get_icon_default;
+ iface->get_icon_name = gtk_source_completion_provider_get_icon_name_default;
+ iface->get_gicon = gtk_source_completion_provider_get_gicon_default;
iface->populate = gtk_source_completion_provider_populate_default;
@@ -158,7 +173,7 @@ gtk_source_completion_provider_get_name (GtkSourceCompletionProvider *provider)
* gtk_source_completion_provider_get_icon:
* @provider: The #GtkSourceCompletionProvider
*
- * Get the icon of the provider.
+ * Get the #GdkPixbuf for the icon of the @provider.
*
* Returns: (nullable) (transfer none): The icon to be used for the provider,
* or %NULL if the provider does not have a special icon.
@@ -172,6 +187,44 @@ gtk_source_completion_provider_get_icon (GtkSourceCompletionProvider *provider)
}
/**
+ * gtk_source_completion_provider_get_icon_name:
+ * @provider: The #GtkSourceCompletionProvider
+ *
+ * Gets the icon name of @provider.
+ *
+ * Returns: (nullable) (transfer none): The icon name to be used for the provider,
+ * or %NULL if the provider does not have a special icon.
+ *
+ * Since: 3.18
+ */
+const gchar *
+gtk_source_completion_provider_get_icon_name (GtkSourceCompletionProvider *provider)
+{
+ g_return_val_if_fail (GTK_SOURCE_IS_COMPLETION_PROVIDER (provider), NULL);
+
+ return GTK_SOURCE_COMPLETION_PROVIDER_GET_INTERFACE (provider)->get_icon_name (provider);
+}
+
+/**
+ * gtk_source_completion_provider_get_gicon:
+ * @provider: The #GtkSourceCompletionProvider
+ *
+ * Gets the #GIcon for the icon of @provider.
+ *
+ * Returns: (nullable) (transfer none): The icon to be used for the provider,
+ * or %NULL if the provider does not have a special icon.
+ *
+ * Since: 3.18
+ */
+GIcon *
+gtk_source_completion_provider_get_gicon (GtkSourceCompletionProvider *provider)
+{
+ g_return_val_if_fail (GTK_SOURCE_IS_COMPLETION_PROVIDER (provider), NULL);
+
+ return GTK_SOURCE_COMPLETION_PROVIDER_GET_INTERFACE (provider)->get_gicon (provider);
+}
+
+/**
* gtk_source_completion_provider_populate:
* @provider: a #GtkSourceCompletionProvider.
* @context: a #GtkSourceCompletionContext.
diff --git a/gtksourceview/gtksourcecompletionprovider.h b/gtksourceview/gtksourcecompletionprovider.h
index e6a1e700..f1aa173f 100644
--- a/gtksourceview/gtksourcecompletionprovider.h
+++ b/gtksourceview/gtksourcecompletionprovider.h
@@ -43,6 +43,10 @@ typedef struct _GtkSourceCompletionProviderIface GtkSourceCompletionProviderIfac
* Must be implemented.
* @get_icon: The virtual function pointer for gtk_source_completion_provider_get_icon().
* By default, %NULL is returned.
+ * @get_icon_name: The virtual function pointer for gtk_source_completion_provider_get_icon_name().
+ * By default, %NULL is returned.
+ * @get_gicon: The virtual function pointer for gtk_source_completion_provider_get_gicon().
+ * By default, %NULL is returned.
* @populate: The virtual function pointer for gtk_source_completion_provider_populate().
* Add no proposals by default.
* @match: The virtual function pointer for gtk_source_completion_provider_match().
@@ -69,7 +73,11 @@ struct _GtkSourceCompletionProviderIface
GTypeInterface g_iface;
gchar *(*get_name) (GtkSourceCompletionProvider *provider);
+
GdkPixbuf *(*get_icon) (GtkSourceCompletionProvider *provider);
+ const gchar *(*get_icon_name) (GtkSourceCompletionProvider *provider);
+ GIcon *(*get_gicon) (GtkSourceCompletionProvider *provider);
+
void (*populate) (GtkSourceCompletionProvider *provider,
GtkSourceCompletionContext *context);
@@ -104,6 +112,10 @@ gchar *gtk_source_completion_provider_get_name (GtkSourceCompletionProvider *pr
GdkPixbuf *gtk_source_completion_provider_get_icon (GtkSourceCompletionProvider *provider);
+const gchar *gtk_source_completion_provider_get_icon_name (GtkSourceCompletionProvider *provider);
+
+GIcon *gtk_source_completion_provider_get_gicon (GtkSourceCompletionProvider *provider);
+
void gtk_source_completion_provider_populate (GtkSourceCompletionProvider *provider,
GtkSourceCompletionContext *context);