Author: cazfi
Date: Fri Jun 24 13:58:12 2016
New Revision: 33014

URL: http://svn.gna.org/viewcvs/freeciv?rev=33014&view=rev
Log:
Use gtk_image_new_from_surface() where possible instead of constructin
temporary GtkPixbuf in gtk3-client.

See patch #7304

Modified:
    trunk/client/gui-gtk-3.0/citydlg.c
    trunk/client/gui-gtk-3.0/diplodlg.c
    trunk/client/gui-gtk-3.0/gui_main.c
    trunk/client/gui-gtk-3.0/happiness.c
    trunk/client/gui-gtk-3.0/helpdlg.c
    trunk/client/gui-gtk-3.0/mapview.c

Modified: trunk/client/gui-gtk-3.0/citydlg.c
URL: 
http://svn.gna.org/viewcvs/freeciv/trunk/client/gui-gtk-3.0/citydlg.c?rev=33014&r1=33013&r2=33014&view=diff
==============================================================================
--- trunk/client/gui-gtk-3.0/citydlg.c  (original)
+++ trunk/client/gui-gtk-3.0/citydlg.c  Fri Jun 24 13:58:12 2016
@@ -1482,7 +1482,6 @@
   GtkWidget *vbox, *hbox, *cbox, *ebox;
   int citizen_bar_width;
   int citizen_bar_height;
-  GdkPixbuf *pb;
 
   if (!city_dialogs_have_been_initialised) {
     initialize_city_dialogs();
@@ -1550,9 +1549,7 @@
 
   pdialog->citizen_surface = cairo_image_surface_create(CAIRO_FORMAT_ARGB32,
                                                         citizen_bar_width, 
citizen_bar_height);
-  pb = surface_get_pixbuf(pdialog->citizen_surface, citizen_bar_width, 
citizen_bar_height);
-  pdialog->citizen_images = gtk_image_new_from_pixbuf(pb);
-  g_object_unref(pb);
+  pdialog->citizen_images = 
gtk_image_new_from_surface(pdialog->citizen_surface);
 
   gtk_widget_add_events(pdialog->citizen_images, GDK_BUTTON_PRESS_MASK);
   gtk_widget_set_margin_left(pdialog->citizen_images, 2);
@@ -1704,11 +1701,9 @@
 {
   enum citizen_category categories[MAX_CITY_SIZE];
   int i, width;
-  int citizen_bar_width;
   int citizen_bar_height;
   struct city *pcity = pdialog->pcity;
   int num_citizens = get_city_citizen_types(pcity, FEELING_FINAL, categories);
-  GdkPixbuf *pb;
   cairo_t *cr;
 
   /* If there is not enough space we stack the icons. We draw from left to */
@@ -1726,7 +1721,6 @@
   pdialog->cwidth = width;
 
   /* overview page */
-  citizen_bar_width = (num_citizens - 1) * width + 
tileset_small_sprite_width(tileset) + 2;
   citizen_bar_height = tileset_small_sprite_height(tileset);
 
   cr = cairo_create(pdialog->citizen_surface);
@@ -1740,10 +1734,6 @@
   }
 
   cairo_destroy(cr);
-
-  pb = surface_get_pixbuf(pdialog->citizen_surface, citizen_bar_width, 
citizen_bar_height);
-  gtk_image_set_from_pixbuf(GTK_IMAGE(pdialog->citizen_images), pb);
-  g_object_unref(pb);
 }
 
 /****************************************************************

Modified: trunk/client/gui-gtk-3.0/diplodlg.c
URL: 
http://svn.gna.org/viewcvs/freeciv/trunk/client/gui-gtk-3.0/diplodlg.c?rev=33014&r1=33013&r2=33014&view=diff
==============================================================================
--- trunk/client/gui-gtk-3.0/diplodlg.c (original)
+++ trunk/client/gui-gtk-3.0/diplodlg.c Fri Jun 24 13:58:12 2016
@@ -628,7 +628,6 @@
   GtkWidget *label, *sw, *view, *image, *spin;
   GtkWidget *menubar, *menuitem, *menu, *notebook;
   struct sprite *flag_spr;
-  GdkPixbuf *pb;
   GtkListStore *store;
   GtkCellRenderer *rend;
   int i;
@@ -712,9 +711,7 @@
   /* Our flag */
   flag_spr = get_nation_flag_sprite(tileset, nation_of_player(plr0));
 
-  pb = sprite_get_pixbuf(flag_spr);
-  image = gtk_image_new_from_pixbuf(pb);
-  g_object_unref(pb);
+  image = gtk_image_new_from_surface(flag_spr->surface);
   gtk_container_add(GTK_CONTAINER(hbox), image);
 
   /* Our name. */
@@ -799,9 +796,7 @@
   /* Their flag */
   flag_spr = get_nation_flag_sprite(tileset, nation_of_player(plr1));
 
-  pb = sprite_get_pixbuf(flag_spr);
-  image = gtk_image_new_from_pixbuf(pb);
-  g_object_unref(pb);
+  image = gtk_image_new_from_surface(flag_spr->surface);
   gtk_container_add(GTK_CONTAINER(hbox), image);
 
   /* Their name. */

Modified: trunk/client/gui-gtk-3.0/gui_main.c
URL: 
http://svn.gna.org/viewcvs/freeciv/trunk/client/gui-gtk-3.0/gui_main.c?rev=33014&r1=33013&r2=33014&view=diff
==============================================================================
--- trunk/client/gui-gtk-3.0/gui_main.c (original)
+++ trunk/client/gui-gtk-3.0/gui_main.c Fri Jun 24 13:58:12 2016
@@ -1092,9 +1092,9 @@
   GtkWidget *button, *view, *vgrid, *right_vbox = NULL;
   int i;
   char buf[256];
+  struct sprite *spr;
   GtkWidget *notebook, *statusbar;
   GtkWidget *dtach_lowbox = NULL;
-  GdkPixbuf *pb;
 
   message_buffer = gtk_text_buffer_new(NULL);
 
@@ -1269,8 +1269,6 @@
   gtk_container_add(GTK_CONTAINER(ebox), table2);
   
   for (i = 0; i < 10; i++) {
-    struct sprite *spr;
-
     ebox = gtk_event_box_new();
     gtk_event_box_set_visible_window(GTK_EVENT_BOX(ebox), FALSE);
     gtk_widget_add_events(ebox, GDK_BUTTON_PRESS_MASK);
@@ -1281,25 +1279,27 @@
                      G_CALLBACK(taxrates_callback), GINT_TO_POINTER(i));
 
     spr = i < 5 ? get_tax_sprite(tileset, O_SCIENCE) : get_tax_sprite(tileset, 
O_GOLD);
-    pb = sprite_get_pixbuf(spr);
-    econ_label[i] = gtk_image_new_from_pixbuf(pb);
-    g_object_unref(pb);
+    econ_label[i] = gtk_image_new_from_surface(spr->surface);
     gtk_container_add(GTK_CONTAINER(ebox), econ_label[i]);
   }
 
   /* science, environmental, govt, timeout */
-  pb = sprite_get_pixbuf(client_research_sprite());
-  bulb_label = gtk_image_new_from_pixbuf(pb);
-  g_object_unref(pb);
-  pb = sprite_get_pixbuf(client_warming_sprite());
-  sun_label = gtk_image_new_from_pixbuf(pb);
-  g_object_unref(pb);
-  pb = sprite_get_pixbuf(client_cooling_sprite());
-  flake_label = gtk_image_new_from_pixbuf(pb);
-  g_object_unref(pb);
-  pb = sprite_get_pixbuf(client_government_sprite());
-  government_label = gtk_image_new_from_pixbuf(pb);
-  g_object_unref(pb);
+  spr = client_research_sprite();
+  if (spr != NULL) {
+    bulb_label = gtk_image_new_from_surface(spr->surface);
+  }
+  spr = client_warming_sprite();
+  if (spr != NULL) {
+    sun_label = gtk_image_new_from_surface(spr->surface);
+  }
+  spr = client_cooling_sprite();
+  if (spr != NULL) {
+    flake_label = gtk_image_new_from_surface(spr->surface);
+  }
+  spr = client_government_sprite();
+  if (spr != NULL) {
+    government_label = gtk_image_new_from_surface(spr->surface);
+  }
 
   for (i = 0; i < 4; i++) {
     GtkWidget *w;

Modified: trunk/client/gui-gtk-3.0/happiness.c
URL: 
http://svn.gna.org/viewcvs/freeciv/trunk/client/gui-gtk-3.0/happiness.c?rev=33014&r1=33013&r2=33014&view=diff
==============================================================================
--- trunk/client/gui-gtk-3.0/happiness.c        (original)
+++ trunk/client/gui-gtk-3.0/happiness.c        Fri Jun 24 13:58:12 2016
@@ -54,7 +54,6 @@
   GtkWidget *shell;
   GtkWidget *cityname_label;
   cairo_surface_t *feeling_surfaces[NUM_HAPPINESS_MODIFIERS];
-  GtkWidget *feeling_images[NUM_HAPPINESS_MODIFIERS];
   GtkWidget *happiness_ebox[NUM_HAPPINESS_MODIFIERS];
   GtkWidget *happiness_label[NUM_HAPPINESS_MODIFIERS];
   GtkWidget *close;
@@ -226,7 +225,7 @@
   gtk_container_add(GTK_CONTAINER(pdialog->cityname_label), table);
 
   for (i = 0; i < NUM_HAPPINESS_MODIFIERS; i++) {
-    GdkPixbuf *pb;
+    GtkWidget *img;
 
     /* set spacing between lines of citizens*/
 
@@ -250,12 +249,10 @@
 
     pdialog->feeling_surfaces[i] = 
cairo_image_surface_create(CAIRO_FORMAT_ARGB32,
                                                               FEELING_WIDTH, 
FEELING_HEIGHT);
-    pb = surface_get_pixbuf(pdialog->feeling_surfaces[i], FEELING_WIDTH, 
FEELING_HEIGHT);
-    pdialog->feeling_images[i] = gtk_image_new_from_pixbuf(pb);
-    g_object_unref(pb);
-    gtk_container_add(GTK_CONTAINER(ebox), pdialog->feeling_images[i]);
-    gtk_widget_set_halign(pdialog->feeling_images[i], GTK_ALIGN_START);
-    gtk_widget_set_valign(pdialog->feeling_images[i], GTK_ALIGN_START);
+    img = gtk_image_new_from_surface(pdialog->feeling_surfaces[i]);
+    gtk_container_add(GTK_CONTAINER(ebox), img);
+    gtk_widget_set_halign(img, GTK_ALIGN_START);
+    gtk_widget_set_valign(img, GTK_ALIGN_START);
 
     gtk_grid_attach(GTK_GRID(table), ebox, 1, i, 1, 1);
   }
@@ -309,13 +306,7 @@
   struct happiness_dialog *pdialog = get_happiness_dialog(pcity);
 
   for (i = 0; i < FEELING_LAST; i++) {
-    GdkPixbuf *pb;
-
     refresh_feeling_surface(pdialog->feeling_surfaces[i], pdialog->pcity, i);
-
-    pb = surface_get_pixbuf(pdialog->feeling_surfaces[i], FEELING_WIDTH, 
FEELING_HEIGHT);
-    gtk_image_set_from_pixbuf(GTK_IMAGE(pdialog->feeling_images[i]), pb);
-    g_object_unref(pb);
   }
 }
 

Modified: trunk/client/gui-gtk-3.0/helpdlg.c
URL: 
http://svn.gna.org/viewcvs/freeciv/trunk/client/gui-gtk-3.0/helpdlg.c?rev=33014&r1=33013&r2=33014&view=diff
==============================================================================
--- trunk/client/gui-gtk-3.0/helpdlg.c  (original)
+++ trunk/client/gui-gtk-3.0/helpdlg.c  Fri Jun 24 13:58:12 2016
@@ -744,14 +744,11 @@
 **************************************************************************/
 static void set_help_tile_from_sprite(struct sprite *spr)
 {
-  GdkPixbuf *pix;
-
   if (spr == NULL) {
     return;
   }
 
-  pix = sprite_get_pixbuf(spr);
-  gtk_image_set_from_pixbuf(GTK_IMAGE(help_tile), pix);
+  gtk_image_set_from_surface(GTK_IMAGE(help_tile), spr->surface);
   gtk_widget_show(help_tile);
 }
 

Modified: trunk/client/gui-gtk-3.0/mapview.c
URL: 
http://svn.gna.org/viewcvs/freeciv/trunk/client/gui-gtk-3.0/mapview.c?rev=33014&r1=33013&r2=33014&view=diff
==============================================================================
--- trunk/client/gui-gtk-3.0/mapview.c  (original)
+++ trunk/client/gui-gtk-3.0/mapview.c  Fri Jun 24 13:58:12 2016
@@ -164,30 +164,21 @@
 
     for (; d < client.conn.playing->economic.luxury /10; d++) {
       struct sprite *spr = get_tax_sprite(tileset, O_LUXURY);
-      GdkPixbuf *pb;
-
-      pb = sprite_get_pixbuf(spr);
-      gtk_image_set_from_pixbuf(GTK_IMAGE(econ_label[d]), pb);
-      g_object_unref(pb);
+
+      gtk_image_set_from_surface(GTK_IMAGE(econ_label[d]), spr->surface);
     }
 
     for (; d < (client.conn.playing->economic.science
                + client.conn.playing->economic.luxury) / 10; d++) {
       struct sprite *spr = get_tax_sprite(tileset, O_SCIENCE);
-      GdkPixbuf *pb;
-
-      pb = sprite_get_pixbuf(spr);
-      gtk_image_set_from_pixbuf(GTK_IMAGE(econ_label[d]), pb);
-      g_object_unref(pb);
+
+      gtk_image_set_from_surface(GTK_IMAGE(econ_label[d]), spr->surface);
     }
 
     for (; d < 10; d++) {
       struct sprite *spr = get_tax_sprite(tileset, O_GOLD);
-      GdkPixbuf *pb;
-
-      pb = sprite_get_pixbuf(spr);
-      gtk_image_set_from_pixbuf(GTK_IMAGE(econ_label[d]), pb);
-      g_object_unref(pb);
+
+      gtk_image_set_from_surface(GTK_IMAGE(econ_label[d]), spr->surface);
     }
   }
 
@@ -281,20 +272,10 @@
 void set_indicator_icons(struct sprite *bulb, struct sprite *sol,
                          struct sprite *flake, struct sprite *gov)
 {
-  GdkPixbuf *pb;
-
-  pb = sprite_get_pixbuf(bulb);
-  gtk_image_set_from_pixbuf(GTK_IMAGE(bulb_label), pb);
-  g_object_unref(pb);
-  pb = sprite_get_pixbuf(sol);
-  gtk_image_set_from_pixbuf(GTK_IMAGE(sun_label), pb);
-  g_object_unref(pb);
-  pb = sprite_get_pixbuf(flake);
-  gtk_image_set_from_pixbuf(GTK_IMAGE(flake_label), pb);
-  g_object_unref(pb);
-  pb = sprite_get_pixbuf(gov);
-  gtk_image_set_from_pixbuf(GTK_IMAGE(government_label), pb);
-  g_object_unref(pb);
+  gtk_image_set_from_surface(GTK_IMAGE(bulb_label), bulb->surface);
+  gtk_image_set_from_surface(GTK_IMAGE(sun_label), sol->surface);
+  gtk_image_set_from_surface(GTK_IMAGE(flake_label), flake->surface);
+  gtk_image_set_from_surface(GTK_IMAGE(government_label), gov->surface);
 }
 
 /****************************************************************************
@@ -506,7 +487,6 @@
                                   int *upkeep_cost, int happy_cost)
 {
   struct canvas store = FC_STATIC_CANVAS_INIT;
-  GdkPixbuf *pb;
   int width = tileset_full_tile_width(tileset);
 
   store.surface = cairo_image_surface_create(CAIRO_FORMAT_ARGB32,
@@ -517,9 +497,7 @@
   put_unit_city_overlays(punit, &store, 0, 
tileset_unit_layout_offset_y(tileset),
                          upkeep_cost, happy_cost);
 
-  pb = surface_get_pixbuf(store.surface, width, height);
-  gtk_image_set_from_pixbuf(p, pb);
-  g_object_unref(pb);
+  gtk_image_set_from_surface(p, store.surface);
   cairo_surface_destroy(store.surface);
 }
 


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

Reply via email to