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