[libgda] Replaced gtk_rc_parse_string() with GtkCssProvider usage



commit 0dd50e899d39257a9bebc00f7e1db8feb6d4d1f3
Author: Vivien Malerba <malerba gnome-db org>
Date:   Mon Jul 18 19:45:21 2011 +0200

    Replaced gtk_rc_parse_string() with GtkCssProvider usage

 libgda-ui/data-entries/gdaui-entry-combo.c |    6 -----
 libgda-ui/gdaui-combo.c                    |   31 +++++++++++++--------------
 libgda-ui/gdaui-data-proxy-info.c          |   25 +++++++++++----------
 tools/browser/support.c                    |   31 ++++++++++++++-------------
 4 files changed, 44 insertions(+), 49 deletions(-)
---
diff --git a/libgda-ui/data-entries/gdaui-entry-combo.c b/libgda-ui/data-entries/gdaui-entry-combo.c
index b7db345..3674a39 100644
--- a/libgda-ui/data-entries/gdaui-entry-combo.c
+++ b/libgda-ui/data-entries/gdaui-entry-combo.c
@@ -160,12 +160,6 @@ gdaui_entry_combo_class_init (GdauiEntryComboClass *class)
         g_object_class_install_property (object_class, PROP_SET_DEFAULT_IF_INVALID,
 					 g_param_spec_boolean ("set-default-if-invalid", NULL, NULL, FALSE,
                                                                (G_PARAM_READABLE | G_PARAM_WRITABLE)));
-
-	/* RC setting */
-#define RC_STRING						\
-	"style \"gnomedb\" { GdauiCombo::appears-as-list = 1 }" \
-		"class \"GtkComboBox\" style \"gnomedb\""
-	/*gtk_rc_parse_string (RC_STRING);*/
 }
 
 static void
diff --git a/libgda-ui/gdaui-combo.c b/libgda-ui/gdaui-combo.c
index a1ad399..b417c72 100644
--- a/libgda-ui/gdaui-combo.c
+++ b/libgda-ui/gdaui-combo.c
@@ -72,6 +72,7 @@ enum {
 
 /* get a pointer to the parents to be able to call their destructor */
 static GObjectClass *parent_class = NULL;
+static GtkCssProvider *css_provider = NULL;
 
 /*
  * GdauiCombo class implementation
@@ -159,6 +160,18 @@ gdaui_combo_init (GdauiCombo *combo, G_GNUC_UNUSED GdauiComboClass *klass)
 	gtk_combo_box_set_wrap_width (GTK_COMBO_BOX (combo), 0);
 	combo->priv->changed_id = g_signal_connect (combo, "changed",
 						    G_CALLBACK (selection_changed_cb), NULL);
+
+	if (!css_provider) {
+		css_provider = gtk_css_provider_new ();
+		gtk_css_provider_load_from_data (css_provider,
+						 "#gdaui-combo-as-list {\n"
+						 "-GtkComboBox-appears-as-list : 1;\n"
+						 "-GtkComboBox-arrow-size : 5}",
+						 -1, NULL);
+	}
+	gtk_style_context_add_provider (gtk_widget_get_style_context ((GtkWidget*) combo),
+					GTK_STYLE_PROVIDER (css_provider),
+					GTK_STYLE_PROVIDER_PRIORITY_APPLICATION);
 }
 
 static void
@@ -205,18 +218,8 @@ gdaui_combo_set_property (GObject *object,
 				       0, NULL);
 		break;
 	case PROP_AS_LIST: {
-		static gboolean rc_done = FALSE;
-		if (!rc_done) {
-			rc_done = TRUE;
-			gtk_rc_parse_string ("style \"gdaui-combo-as-list-style\"\n"
-					     "{\n"
-					     "GtkComboBox::appears-as-list = 1\n"
-					     "GtkComboBox::arrow-size = 5\n"
-					     "}\n"
-					     "widget \"*.gdaui-combo-as-list-style\" style \"gdaui-combo-as-list-style\"");
-		}
 		if (g_value_get_boolean (value))
-			gtk_widget_set_name ((GtkWidget*) combo, "gdaui-combo-as-list-style");
+			gtk_widget_set_name ((GtkWidget*) combo, "gdaui-combo-as-list");
 		else
 			gtk_widget_set_name ((GtkWidget*) combo, NULL);
 		break;
@@ -244,7 +247,7 @@ gdaui_combo_get_property (GObject *object,
 	case PROP_AS_LIST: {
 		const gchar *name;
 		name = gtk_widget_get_name ((GtkWidget*) combo);
-		g_value_set_boolean (value, name && !strcmp (name, "gdaui-combo-as-list-style") ? TRUE : FALSE);
+		g_value_set_boolean (value, name && !strcmp (name, "gdaui-combo-as-list") ? TRUE : FALSE);
 		break;
 	}
 	default :
@@ -460,8 +463,6 @@ gdaui_combo_set_model (GdauiCombo *combo, GdaDataModel *model, gint n_cols, gint
 			renderer = gtk_cell_renderer_text_new ();
 			g_object_set_data (G_OBJECT (renderer), "data-handler", dh);
 			g_object_set_data (G_OBJECT (renderer), "colnum", GINT_TO_POINTER (index));
-			g_object_set ((GObject*) renderer, "width-chars",
-				      combo->priv->cols_width [index] + 1, NULL);
 			
 			gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (combo), renderer, FALSE);
 			gtk_cell_layout_set_cell_data_func (GTK_CELL_LAYOUT (combo), renderer,
@@ -827,8 +828,6 @@ combo_selector_set_column_visible (GdauiDataSelector *iface, gint column, gboole
 	gtk_cell_layout_set_cell_data_func (GTK_CELL_LAYOUT (combo), renderer,
 					    (GtkCellLayoutDataFunc) cell_layout_data_func, combo, NULL);
 	gtk_cell_layout_reorder (GTK_CELL_LAYOUT (combo), renderer, cellpos);
-	g_object_set ((GObject*) renderer, "width-chars",
-		      combo->priv->cols_width [column], NULL);
 	/* Don't unref the renderer! */
 
 	gint ww;
diff --git a/libgda-ui/gdaui-data-proxy-info.c b/libgda-ui/gdaui-data-proxy-info.c
index ab6d820..1db4175 100644
--- a/libgda-ui/gdaui-data-proxy-info.c
+++ b/libgda-ui/gdaui-data-proxy-info.c
@@ -68,6 +68,7 @@ struct _GdauiDataProxyInfoPriv
 
 /* get a pointer to the parents to be able to call their destructor */
 static GObjectClass *parent_class = NULL;
+static GtkCssProvider *css_provider = NULL;
 
 /* properties */
 enum {
@@ -411,17 +412,15 @@ modif_buttons_make (GdauiDataProxyInfo *info)
 {
 	GtkWidget *wid;
 	GdauiDataProxyInfoFlag flags = info->priv->flags;
-	static gboolean rc_done = FALSE;
-
-	if (!rc_done) {
-                rc_done = TRUE;
-                gtk_rc_parse_string ("style \"gdaui-data-proxy-info-style\"\n"
-                                     "{\n"
-                                     "GtkToolbar::shadow-type = GTK_SHADOW_NONE\n"
-                                     "xthickness = 0\n"
-                                     "ythickness = 0\n"
-                                     "}\n"
-                                     "widget \"*.gdaui-data-proxy-info\" style \"gdaui-data-proxy-info-style\"");
+
+	if (!css_provider) {
+		css_provider = gtk_css_provider_new ();
+		gtk_css_provider_load_from_data (css_provider,
+						 "* {\n"
+						 "-GtkToolbar-shadow-type : GTK_SHADOW_NONE;\n"
+						 "xthickness : 0;\n"
+						 "ythickness : 0}",
+						 -1, NULL);
         }
 
 	if (! info->priv->data_proxy)
@@ -447,7 +446,9 @@ modif_buttons_make (GdauiDataProxyInfo *info)
 		info->priv->buttons_bar = gtk_ui_manager_get_widget (ui, "/ToolBar");
 		gtk_toolbar_set_icon_size (GTK_TOOLBAR (info->priv->buttons_bar), GTK_ICON_SIZE_SMALL_TOOLBAR);
 		g_object_set (G_OBJECT (info->priv->buttons_bar), "toolbar-style", GTK_TOOLBAR_ICONS, NULL);
-		gtk_widget_set_name (info->priv->buttons_bar, "gdaui-data-proxy-info");
+		gtk_style_context_add_provider (gtk_widget_get_style_context (info->priv->buttons_bar),
+						GTK_STYLE_PROVIDER (css_provider),
+						GTK_STYLE_PROVIDER_PRIORITY_APPLICATION);
 		gtk_box_pack_start (GTK_BOX (info), info->priv->buttons_bar, TRUE, TRUE, 0);
 	}
 	else {
diff --git a/tools/browser/support.c b/tools/browser/support.c
index bb47b01..f9479e1 100644
--- a/tools/browser/support.c
+++ b/tools/browser/support.c
@@ -283,24 +283,23 @@ _browser_make_tab_label (const gchar *label,
 			 GtkWidget **out_close_button)
 {
         GtkWidget  *hbox, *wid, *close_button, *image = NULL;
-	static gboolean rc_done = FALSE;
+	static GtkCssProvider *css_provider = NULL;
+
+	if (!css_provider) {
+		css_provider = gtk_css_provider_new ();
+		gtk_css_provider_load_from_data (css_provider,
+						 "* {\n"
+						 "-GtkWidget-focus-padding : 0;\n"
+						 "-GtkWidget-focus-line-width : 0;\n"
+						 "xthickness : 0;\n"
+						 "ythickness : 0}",
+						 -1, NULL);
+	}
 
 	if (out_close_button)
 		*out_close_button = NULL;
 
-	if (!rc_done) {
-		rc_done = TRUE;
-		gtk_rc_parse_string ("style \"browser-tab-close-button-style\"\n"
-				     "{\n"
-				     "GtkWidget::focus-padding = 0\n"
-				     "GtkWidget::focus-line-width = 0\n"
-				     "xthickness = 0\n"
-				     "ythickness = 0\n"
-				     "}\n"
-				     "widget \"*.browser-tab-close-button\" style \"browser-tab-close-button-style\"");
-	}
-
-        hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 4);
+        hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0);
 
 	if (img)
 		gtk_box_pack_start (GTK_BOX (hbox), img, FALSE, FALSE, 0);
@@ -316,7 +315,9 @@ _browser_make_tab_label (const gchar *label,
 		close_button = gtk_button_new ();
 		gtk_button_set_relief (GTK_BUTTON (close_button), GTK_RELIEF_NONE);
 		gtk_button_set_focus_on_click (GTK_BUTTON (close_button), FALSE);
-		gtk_widget_set_name (close_button, "browser-tab-close-button");
+		gtk_style_context_add_provider (gtk_widget_get_style_context ((GtkWidget*) close_button),
+						GTK_STYLE_PROVIDER (css_provider),
+						GTK_STYLE_PROVIDER_PRIORITY_APPLICATION);
 
 		gtk_widget_set_tooltip_text (close_button, _("Close tab"));
 		



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]