[gtksourceview] Completion: simplify text cell renderer
- From: SÃbastien Wilmet <swilmet src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtksourceview] Completion: simplify text cell renderer
- Date: Thu, 14 Feb 2013 23:07:48 +0000 (UTC)
commit 48c15bee85e036190a9015a57d261d0be838d55d
Author: SÃbastien Wilmet <swilmet gnome org>
Date: Thu Feb 14 23:52:24 2013 +0100
Completion: simplify text cell renderer
Same as for the icon cell renderer.
It uses only the MARCKUP column from the model.
gtksourceview/gtksourcecompletion.c | 86 +++++++----------------------
gtksourceview/gtksourcecompletionmodel.c | 21 +++-----
gtksourceview/gtksourcecompletionmodel.h | 1 -
3 files changed, 29 insertions(+), 79 deletions(-)
---
diff --git a/gtksourceview/gtksourcecompletion.c b/gtksourceview/gtksourcecompletion.c
index 2178aa6..a8aeffe 100644
--- a/gtksourceview/gtksourcecompletion.c
+++ b/gtksourceview/gtksourcecompletion.c
@@ -2665,62 +2665,6 @@ update_transient_for_info (GObject *window,
gtk_window_get_transient_for (GTK_WINDOW
(completion->priv->main_window)));
}
-static void
-render_proposal_text_func (GtkTreeViewColumn *column,
- GtkCellRenderer *cell,
- GtkTreeModel *model,
- GtkTreeIter *iter,
- GtkSourceCompletion *completion)
-{
- gchar *label;
- gchar *markup;
-
- /* Set text */
-
- gtk_tree_model_get (model, iter,
- GTK_SOURCE_COMPLETION_MODEL_COLUMN_LABEL, &label,
- GTK_SOURCE_COMPLETION_MODEL_COLUMN_MARKUP, &markup,
- -1);
-
- if (markup == NULL)
- {
- markup = g_markup_escape_text (label != NULL ? label : "", -1);
- }
-
- g_object_set (cell, "markup", markup, NULL);
-
- g_free (label);
- g_free (markup);
-
- /* Set colors */
-
- if (gtk_source_completion_model_iter_is_header (completion->priv->model_proposals, iter))
- {
- GtkStyleContext *context;
- GdkRGBA color;
- GdkRGBA bgcolor;
-
- context = gtk_widget_get_style_context (completion->priv->tree_view_proposals);
- gtk_style_context_get_color (context,
- GTK_STATE_FLAG_INSENSITIVE,
- &color);
- gtk_style_context_get_background_color (context,
- GTK_STATE_FLAG_INSENSITIVE,
- &bgcolor);
- g_object_set (cell,
- "foreground-rgba", &color,
- "cell-background-rgba", &bgcolor,
- NULL);
- }
- else
- {
- g_object_set (cell,
- "cell-background-set", FALSE,
- "foreground-set", FALSE,
- NULL);
- }
-}
-
static gint
iter_accelerator (GtkSourceCompletion *completion,
GtkTreeIter *iter)
@@ -2848,8 +2792,10 @@ initialize_tree_view (GtkSourceCompletion *completion,
{
GtkTreeSelection *selection;
GtkTreeViewColumn *column;
+ GtkCellRenderer *text_cell_renderer;
GtkStyleContext *style_context;
- GdkRGBA color;
+ GdkRGBA background_color;
+ GdkRGBA foreground_color;
completion->priv->tree_view_proposals = GTK_WIDGET (gtk_builder_get_object (builder,
"tree_view_proposals"));
@@ -2896,20 +2842,30 @@ initialize_tree_view (GtkSourceCompletion *completion,
style_context = gtk_widget_get_style_context (completion->priv->tree_view_proposals);
gtk_style_context_get_background_color (style_context,
GTK_STATE_FLAG_INSENSITIVE,
- &color);
+ &background_color);
g_object_set (completion->priv->cell_renderer_icon,
- "cell-background-rgba", &color,
+ "cell-background-rgba", &background_color,
NULL);
/* Text cell renderer */
- gtk_tree_view_column_set_cell_data_func (column,
- GTK_CELL_RENDERER (gtk_builder_get_object (builder,
-
"cell_renderer_proposal")),
- (GtkTreeCellDataFunc)render_proposal_text_func,
- completion,
- NULL);
+ text_cell_renderer = GTK_CELL_RENDERER (gtk_builder_get_object (builder, "cell_renderer_proposal"));
+
+ gtk_tree_view_column_set_attributes (column, text_cell_renderer,
+ "markup", GTK_SOURCE_COMPLETION_MODEL_COLUMN_MARKUP,
+ "cell-background-set",
GTK_SOURCE_COMPLETION_MODEL_COLUMN_IS_HEADER,
+ "foreground-set", GTK_SOURCE_COMPLETION_MODEL_COLUMN_IS_HEADER,
+ NULL);
+
+ gtk_style_context_get_color (style_context,
+ GTK_STATE_FLAG_INSENSITIVE,
+ &foreground_color);
+
+ g_object_set (text_cell_renderer,
+ "foreground-rgba", &foreground_color,
+ "cell-background-rgba", &background_color,
+ NULL);
/* Accelerators cell renderer */
diff --git a/gtksourceview/gtksourcecompletionmodel.c b/gtksourceview/gtksourcecompletionmodel.c
index c02a72e..4d1f57f 100644
--- a/gtksourceview/gtksourcecompletionmodel.c
+++ b/gtksourceview/gtksourcecompletionmodel.c
@@ -447,18 +447,6 @@ tree_model_get_value (GtkTreeModel *tree_model,
g_value_set_object (value, completion_proposal);
break;
- case GTK_SOURCE_COMPLETION_MODEL_COLUMN_LABEL:
- if (is_header (proposal_info))
- {
- g_value_take_string (value, NULL);
- }
- else
- {
- gchar *label = gtk_source_completion_proposal_get_label (completion_proposal);
- g_value_take_string (value, label);
- }
- break;
-
case GTK_SOURCE_COMPLETION_MODEL_COLUMN_MARKUP:
if (is_header (proposal_info))
{
@@ -482,6 +470,14 @@ tree_model_get_value (GtkTreeModel *tree_model,
else
{
gchar *markup = gtk_source_completion_proposal_get_markup
(completion_proposal);
+
+ if (markup == NULL)
+ {
+ gchar *label = gtk_source_completion_proposal_get_label
(completion_proposal);
+ markup = g_markup_escape_text (label != NULL ? label : "", -1);
+ g_free (label);
+ }
+
g_value_take_string (value, markup);
}
break;
@@ -703,7 +699,6 @@ gtk_source_completion_model_init (GtkSourceCompletionModel *self)
{
self->priv = GTK_SOURCE_COMPLETION_MODEL_GET_PRIVATE (self);
- self->priv->column_types[GTK_SOURCE_COMPLETION_MODEL_COLUMN_LABEL] = G_TYPE_STRING;
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_PROPOSAL] = G_TYPE_OBJECT;
diff --git a/gtksourceview/gtksourcecompletionmodel.h b/gtksourceview/gtksourcecompletionmodel.h
index b0e141f..983999f 100644
--- a/gtksourceview/gtksourcecompletionmodel.h
+++ b/gtksourceview/gtksourcecompletionmodel.h
@@ -53,7 +53,6 @@ struct _GtkSourceCompletionModelClass {
enum
{
- GTK_SOURCE_COMPLETION_MODEL_COLUMN_LABEL,
GTK_SOURCE_COMPLETION_MODEL_COLUMN_MARKUP,
GTK_SOURCE_COMPLETION_MODEL_COLUMN_ICON,
GTK_SOURCE_COMPLETION_MODEL_COLUMN_PROPOSAL,
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]