Author: cazfi
Date: Fri Jan  8 13:33:26 2016
New Revision: 31415

URL: http://svn.gna.org/viewcvs/freeciv?rev=31415&view=rev
Log:
Replaced deprecated gtk_widget_override_color() calls with modern solutions

See patch #6796

Modified:
    trunk/client/gui-gtk-3.x/citydlg.c
    trunk/client/gui-gtk-3.x/gui_main.c
    trunk/client/gui-gtk-3.x/gui_stuff.c
    trunk/client/gui-gtk-3.x/gui_stuff.h
    trunk/client/gui-gtk-3.x/mapview.c

Modified: trunk/client/gui-gtk-3.x/citydlg.c
URL: 
http://svn.gna.org/viewcvs/freeciv/trunk/client/gui-gtk-3.x/citydlg.c?rev=31415&r1=31414&r2=31415&view=diff
==============================================================================
--- trunk/client/gui-gtk-3.x/citydlg.c  (original)
+++ trunk/client/gui-gtk-3.x/citydlg.c  Fri Jan  8 13:33:26 2016
@@ -1738,8 +1738,7 @@
   char buf[NUM_INFO_FIELDS][512];
   struct city *pcity = pdialog->pcity;
   int granaryturns;
-  GdkRGBA red = {1.0, 0, 0, 1.0};
-  GdkRGBA *color;
+  static GtkCssProvider *emergency_provider = NULL;
 
   enum { FOOD, SHIELD, TRADE, GOLD, LUXURY, SCIENCE,
          GRANARY, GROWTH, CORRUPTION, WASTE, CULTURE,
@@ -1801,24 +1800,57 @@
     gtk_label_set_text(GTK_LABEL(info_label[i]), buf[i]);
   }
 
-  /* 
+  /*
    * Special style stuff for granary, growth and pollution below. The
    * "4" below is arbitrary. 3 turns should be enough of a warning.
    */
-  color = (granaryturns > -4 && granaryturns < 0) ? &red : NULL;
-  gtk_widget_override_color(info_label[GRANARY], GTK_STATE_FLAG_NORMAL, color);
-
-  color = (granaryturns == 0 || pcity->surplus[O_FOOD] < 0) ? &red : NULL;
-  gtk_widget_override_color(info_label[GROWTH], GTK_STATE_FLAG_NORMAL, color);
+
+  if (emergency_provider == NULL) {
+    emergency_provider = gtk_css_provider_new();
+
+    gtk_css_provider_load_from_data(emergency_provider,
+                                    ".emergency {\n color: rgba(255, 0.0, 0.0, 
255);\n}",
+                                    -1, NULL);
+
+    
gtk_style_context_add_provider(gtk_widget_get_style_context(info_label[GRANARY]),
+                                   GTK_STYLE_PROVIDER(emergency_provider),
+                                   GTK_STYLE_PROVIDER_PRIORITY_APPLICATION);
+    
gtk_style_context_add_provider(gtk_widget_get_style_context(info_label[GROWTH]),
+                                   GTK_STYLE_PROVIDER(emergency_provider),
+                                   GTK_STYLE_PROVIDER_PRIORITY_APPLICATION);
+    
gtk_style_context_add_provider(gtk_widget_get_style_context(info_label[POLLUTION]),
+                                   GTK_STYLE_PROVIDER(emergency_provider),
+                                   GTK_STYLE_PROVIDER_PRIORITY_APPLICATION);
+    
gtk_style_context_add_provider(gtk_widget_get_style_context(info_label[ILLNESS]),
+                                   GTK_STYLE_PROVIDER(emergency_provider),
+                                   GTK_STYLE_PROVIDER_PRIORITY_APPLICATION);
+  }
+
+  if (granaryturns > -4 && granaryturns < 0) {
+    
gtk_style_context_add_class(gtk_widget_get_style_context(info_label[GRANARY]), 
"emergency");
+  } else {
+    
gtk_style_context_remove_class(gtk_widget_get_style_context(info_label[GRANARY]),
 "emergency");
+  }
+
+  if (granaryturns == 0 || pcity->surplus[O_FOOD] < 0) {
+    
gtk_style_context_add_class(gtk_widget_get_style_context(info_label[GROWTH]), 
"emergency");
+  } else {
+    
gtk_style_context_remove_class(gtk_widget_get_style_context(info_label[GROWTH]),
 "emergency");
+  }
 
   /* someone could add the color &orange for better granularity here */
-
-  color = (pcity->pollution >= 10) ? &red : NULL;
-  gtk_widget_override_color(info_label[POLLUTION], GTK_STATE_FLAG_NORMAL, 
color);
+  if (pcity->pollution >= 10) {
+    
gtk_style_context_add_class(gtk_widget_get_style_context(info_label[POLLUTION]),
 "emergency");
+  } else {
+    
gtk_style_context_remove_class(gtk_widget_get_style_context(info_label[POLLUTION]),
 "emergency");
+  }
 
   /* illness is in tenth of percent, i.e 100 != 10.0% */
-  color = (illness >= 100) ? &red : NULL;
-  gtk_widget_override_color(info_label[ILLNESS], GTK_STATE_FLAG_NORMAL, color);
+  if (illness >= 100) {
+    
gtk_style_context_add_class(gtk_widget_get_style_context(info_label[ILLNESS]), 
"emergency");
+  } else {
+    
gtk_style_context_remove_class(gtk_widget_get_style_context(info_label[ILLNESS]),
 "emergency");
+  }
 }
 
 /****************************************************************

Modified: trunk/client/gui-gtk-3.x/gui_main.c
URL: 
http://svn.gna.org/viewcvs/freeciv/trunk/client/gui-gtk-3.x/gui_main.c?rev=31415&r1=31414&r2=31415&view=diff
==============================================================================
--- trunk/client/gui-gtk-3.x/gui_main.c (original)
+++ trunk/client/gui-gtk-3.x/gui_main.c Fri Jan  8 13:33:26 2016
@@ -1670,6 +1670,8 @@
   /* GTK withdraw gtk options. Process GTK arguments */
   gtk_init(&argc, &argv);
 
+  dlg_tab_provider_prepare();
+
   toplevel = gtk_window_new(GTK_WINDOW_TOPLEVEL);
   gtk_window_set_position(GTK_WINDOW(toplevel), GTK_WIN_POS_CENTER);
   if (vmode.width > 0 && vmode.height > 0) {

Modified: trunk/client/gui-gtk-3.x/gui_stuff.c
URL: 
http://svn.gna.org/viewcvs/freeciv/trunk/client/gui-gtk-3.x/gui_stuff.c?rev=31415&r1=31414&r2=31415&view=diff
==============================================================================
--- trunk/client/gui-gtk-3.x/gui_stuff.c        (original)
+++ trunk/client/gui-gtk-3.x/gui_stuff.c        Fri Jan  8 13:33:26 2016
@@ -42,6 +42,8 @@
 static GList *dialog_list;
 
 static GtkSizeGroup *gui_action;
+
+static GtkCssProvider *dlg_tab_provider = NULL;
 
 
 /**************************************************************************
@@ -430,7 +432,8 @@
   n = gtk_notebook_page_num(GTK_NOTEBOOK(dlg->v.tab.notebook), dlg->vbox);
 
   if (n == num) {
-    gtk_widget_override_color(dlg->v.tab.label, GTK_STATE_FLAG_NORMAL, NULL);
+    
gtk_style_context_remove_class(gtk_widget_get_style_context(dlg->v.tab.label),
+                                   "alert");
   }
 }
 
@@ -623,6 +626,9 @@
            G_CALLBACK(gui_dialog_switch_page_handler), dlg);
       dlg->v.tab.child = vbox;
 
+      gtk_style_context_add_provider(gtk_widget_get_style_context(label),
+                                     GTK_STYLE_PROVIDER(dlg_tab_provider),
+                                     GTK_STYLE_PROVIDER_PRIORITY_APPLICATION);
       dlg->v.tab.label = label;
       dlg->v.tab.notebook = GTK_WIDGET(notebook);
       
@@ -839,9 +845,9 @@
 
       if (current != n) {
        GtkWidget *label = dlg->v.tab.label;
-       GdkRGBA color = {.red = 1.0, .green = 0, .blue = 0, .alpha = 1.0};
-
-       gtk_widget_override_color(label, GTK_STATE_FLAG_NORMAL, &color);
+
+        gtk_style_context_add_class(gtk_widget_get_style_context(label),
+                                    "alert");
       }
     }
     break;
@@ -891,9 +897,9 @@
 
       if (current != n) {
         GtkWidget *label = dlg->v.tab.label;
-        GdkRGBA color = {.red = 0, .green = 0, .blue =1.0, .alpha = 1.0};
-
-        gtk_widget_override_color(label, GTK_STATE_FLAG_NORMAL, &color);
+
+        gtk_style_context_add_class(gtk_widget_get_style_context(label),
+                                    "alert");
       }
     }
     break;
@@ -1088,5 +1094,20 @@
   col = gtk_tree_view_column_new_with_attributes(title, rend, attr,
                                                  model_index, NULL);
   gtk_tree_view_append_column(GTK_TREE_VIEW(view), col);
+
   return col;
 }
+
+/**************************************************************************
+  Prepare dialog tab style provider.
+**************************************************************************/
+void dlg_tab_provider_prepare(void)
+{
+  dlg_tab_provider = gtk_css_provider_new();
+
+  gtk_css_provider_load_from_data(dlg_tab_provider,
+                                  ".alert {\n"
+                                  "color: rgba(255, 0, 0, 255);\n"
+                                  "}\n",
+                                  -1, NULL);
+}

Modified: trunk/client/gui-gtk-3.x/gui_stuff.h
URL: 
http://svn.gna.org/viewcvs/freeciv/trunk/client/gui-gtk-3.x/gui_stuff.h?rev=31415&r1=31414&r2=31415&view=diff
==============================================================================
--- trunk/client/gui-gtk-3.x/gui_stuff.h        (original)
+++ trunk/client/gui-gtk-3.x/gui_stuff.h        Fri Jan  8 13:33:26 2016
@@ -99,6 +99,8 @@
   GtkSizeGroup *gui_button;
 };
 
+void dlg_tab_provider_prepare(void);
+
 void gui_dialog_new(struct gui_dialog **pdlg, GtkNotebook *notebook,
                     gpointer user_data, bool check_top);
 void gui_dialog_set_default_response(struct gui_dialog *dlg, int response);

Modified: trunk/client/gui-gtk-3.x/mapview.c
URL: 
http://svn.gna.org/viewcvs/freeciv/trunk/client/gui-gtk-3.x/mapview.c?rev=31415&r1=31414&r2=31415&view=diff
==============================================================================
--- trunk/client/gui-gtk-3.x/mapview.c  (original)
+++ trunk/client/gui-gtk-3.x/mapview.c  Fri Jan  8 13:33:26 2016
@@ -81,15 +81,29 @@
   }
 
   if ((do_restore && flip) || !do_restore) {
-    GdkRGBA fore;
-    GdkRGBA back;
-    GtkStyleContext *context = gtk_widget_get_style_context(turn_done_button);
-
-    gtk_style_context_get_color(context, GTK_STATE_FLAG_NORMAL, &fore);
-    gtk_style_context_get_background_color(context, GTK_STATE_FLAG_NORMAL, 
&back);
-
-    gtk_widget_override_color(turn_done_button, GTK_STATE_FLAG_NORMAL, &back);
-    gtk_widget_override_background_color(turn_done_button, 
GTK_STATE_FLAG_NORMAL, &fore);
+    static GtkCssProvider *tdb_provider = NULL;
+    GtkStyleContext *scontext = gtk_widget_get_style_context(turn_done_button);
+
+    if (tdb_provider == NULL) {
+      tdb_provider = gtk_css_provider_new();
+
+      gtk_css_provider_load_from_data(tdb_provider,
+                                      ".lighted {\n"
+                                      "color: rgba(235, 127, 235, 255);\n"
+                                      "background-color: rgba(127, 127, 127, 
255);\n"
+                                      "}\n",
+                                      -1, NULL);
+
+      gtk_style_context_add_provider(scontext,
+                                     GTK_STYLE_PROVIDER(tdb_provider),
+                                     GTK_STYLE_PROVIDER_PRIORITY_APPLICATION);
+    }
+
+    if (flip) {
+      gtk_style_context_add_class(scontext, "lighted");
+    } else {
+      gtk_style_context_remove_class(scontext, "lighted");
+    }
 
     flip = !flip;
   }


_______________________________________________
Freeciv-commits mailing list
Freeciv-commits@gna.org
https://mail.gna.org/listinfo/freeciv-commits

Reply via email to