[gtksourceview] Completion: simplify text cell renderer



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]