Author: sveinung
Date: Mon Mar 20 11:37:52 2017
New Revision: 35138

URL: http://svn.gna.org/viewcvs/freeciv?rev=35138&view=rev
Log:
Gtk clients: add "Upgrade Unit" to act sel dlg.

Add a button for the "Upgrade Unit" action to the action selection dialog.
This makes the GTK clients' action selection dialog cover all actions.

See hrm Feature #645832

Modified:
    branches/S3_0/client/gui-gtk-2.0/action_dialog.c
    branches/S3_0/client/gui-gtk-3.0/action_dialog.c
    branches/S3_0/client/gui-gtk-3.22/action_dialog.c

Modified: branches/S3_0/client/gui-gtk-2.0/action_dialog.c
URL: 
http://svn.gna.org/viewcvs/freeciv/branches/S3_0/client/gui-gtk-2.0/action_dialog.c?rev=35138&r1=35137&r2=35138&view=diff
==============================================================================
--- branches/S3_0/client/gui-gtk-2.0/action_dialog.c    (original)
+++ branches/S3_0/client/gui-gtk-2.0/action_dialog.c    Mon Mar 20 11:37:52 2017
@@ -310,6 +310,29 @@
       && NULL != game_city_by_number(args->target_city_id)) {
     request_do_action(ACTION_HOME_CITY, args->actor_unit_id,
                       args->target_city_id, 0, "");
+  }
+
+  gtk_widget_destroy(act_sel_dialog);
+  free(args);
+}
+
+/****************************************************************
+  User selected "Upgrade Unit" from choice dialog.
+*****************************************************************/
+static void upgrade_callback(GtkWidget *w, gpointer data)
+{
+  struct unit *punit;
+
+  struct action_data *args = (struct action_data *)data;
+
+  if ((punit = game_unit_by_number(args->actor_unit_id))
+      && NULL != game_city_by_number(args->target_city_id)) {
+    struct unit_list *as_list;
+
+    as_list = unit_list_new();
+    unit_list_append(as_list, punit);
+    popup_upgrade_dialog(as_list);
+    unit_list_destroy(as_list);
   }
 
   gtk_widget_destroy(act_sel_dialog);
@@ -1286,6 +1309,7 @@
   [ACTION_DESTROY_CITY] = (GCallback)destroy_city_callback,
   [ACTION_RECYCLE_UNIT] = (GCallback)recycle_unit_callback,
   [ACTION_HOME_CITY] = (GCallback)home_city_callback,
+  [ACTION_UPGRADE_UNIT] = (GCallback)upgrade_callback,
   [ACTION_AIRLIFT] = (GCallback)airlift_callback,
   [ACTION_CONQUER_CITY] = (GCallback)conquer_city_callback,
 

Modified: branches/S3_0/client/gui-gtk-3.0/action_dialog.c
URL: 
http://svn.gna.org/viewcvs/freeciv/branches/S3_0/client/gui-gtk-3.0/action_dialog.c?rev=35138&r1=35137&r2=35138&view=diff
==============================================================================
--- branches/S3_0/client/gui-gtk-3.0/action_dialog.c    (original)
+++ branches/S3_0/client/gui-gtk-3.0/action_dialog.c    Mon Mar 20 11:37:52 2017
@@ -320,6 +320,29 @@
       && NULL != game_city_by_number(args->target_city_id)) {
     request_do_action(ACTION_HOME_CITY, args->actor_unit_id,
                       args->target_city_id, 0, "");
+  }
+
+  gtk_widget_destroy(act_sel_dialog);
+  free(args);
+}
+
+/****************************************************************
+  User selected "Upgrade Unit" from choice dialog.
+*****************************************************************/
+static void upgrade_callback(GtkWidget *w, gpointer data)
+{
+  struct unit *punit;
+
+  struct action_data *args = (struct action_data *)data;
+
+  if ((punit = game_unit_by_number(args->actor_unit_id))
+      && NULL != game_city_by_number(args->target_city_id)) {
+    struct unit_list *as_list;
+
+    as_list = unit_list_new();
+    unit_list_append(as_list, punit);
+    popup_upgrade_dialog(as_list);
+    unit_list_destroy(as_list);
   }
 
   gtk_widget_destroy(act_sel_dialog);
@@ -1380,6 +1403,7 @@
   [ACTION_DESTROY_CITY] = (GCallback)destroy_city_callback,
   [ACTION_RECYCLE_UNIT] = (GCallback)recycle_unit_callback,
   [ACTION_HOME_CITY] = (GCallback)home_city_callback,
+  [ACTION_UPGRADE_UNIT] = (GCallback)upgrade_callback,
   [ACTION_AIRLIFT] = (GCallback)airlift_callback,
   [ACTION_CONQUER_CITY] = (GCallback)conquer_city_callback,
 

Modified: branches/S3_0/client/gui-gtk-3.22/action_dialog.c
URL: 
http://svn.gna.org/viewcvs/freeciv/branches/S3_0/client/gui-gtk-3.22/action_dialog.c?rev=35138&r1=35137&r2=35138&view=diff
==============================================================================
--- branches/S3_0/client/gui-gtk-3.22/action_dialog.c   (original)
+++ branches/S3_0/client/gui-gtk-3.22/action_dialog.c   Mon Mar 20 11:37:52 2017
@@ -320,6 +320,29 @@
       && NULL != game_city_by_number(args->target_city_id)) {
     request_do_action(ACTION_HOME_CITY, args->actor_unit_id,
                       args->target_city_id, 0, "");
+  }
+
+  gtk_widget_destroy(act_sel_dialog);
+  free(args);
+}
+
+/****************************************************************
+  User selected "Upgrade Unit" from choice dialog.
+*****************************************************************/
+static void upgrade_callback(GtkWidget *w, gpointer data)
+{
+  struct unit *punit;
+
+  struct action_data *args = (struct action_data *)data;
+
+  if ((punit = game_unit_by_number(args->actor_unit_id))
+      && NULL != game_city_by_number(args->target_city_id)) {
+    struct unit_list *as_list;
+
+    as_list = unit_list_new();
+    unit_list_append(as_list, punit);
+    popup_upgrade_dialog(as_list);
+    unit_list_destroy(as_list);
   }
 
   gtk_widget_destroy(act_sel_dialog);
@@ -1374,6 +1397,7 @@
   [ACTION_DESTROY_CITY] = (GCallback)destroy_city_callback,
   [ACTION_RECYCLE_UNIT] = (GCallback)recycle_unit_callback,
   [ACTION_HOME_CITY] = (GCallback)home_city_callback,
+  [ACTION_UPGRADE_UNIT] = (GCallback)upgrade_callback,
   [ACTION_AIRLIFT] = (GCallback)airlift_callback,
   [ACTION_CONQUER_CITY] = (GCallback)conquer_city_callback,
 


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

Reply via email to