Main Page   Data Structures   File List   Data Fields   Globals   Related Pages  

linux-gtk/budget.c

Go to the documentation of this file.
00001 
00007 #include <gtk/gtk.h>
00008 #include <stdio.h>
00009 #include <simulation.h>
00010 #include <zakdef.h>
00011 #include <globals.h>
00012 #include <main.h>
00013 #include <compilerpragmas.h>
00014 #include <uibits.h>
00015 
00017 static GtkWidget *dlg = 0;
00018 
00020 static GtkWidget *lres;
00022 static GtkWidget *lcom;
00024 static GtkWidget *lind;
00026 static GtkWidget *lpow;
00028 static GtkWidget *ltra;
00030 static GtkWidget *ldef;
00032 static GtkWidget *lbal;
00034 static GtkWidget *lcha;
00036 static GtkWidget *lnex;
00038 static GtkObject *adjust_tra;
00040 static GtkObject *adjust_pow;
00042 static GtkObject *adjust_def;
00043 
00047 void
00048 UIUpdateBudget(void)
00049 {
00050         char temp[20];
00051 
00052         if (!dlg)
00053                 return;
00054 
00055         sprintf(temp, "%li", (long)BudgetGetNumber(bnResidential));
00056         gtk_label_set_text((GtkLabel*)lres, temp);
00057         sprintf(temp, "%li", (long)BudgetGetNumber(bnCommercial));
00058         gtk_label_set_text((GtkLabel*)lcom, temp);
00059         sprintf(temp, "%li", (long)BudgetGetNumber(bnIndustrial));
00060         gtk_label_set_text((GtkLabel*)lind, temp);
00061 
00062         sprintf(temp, "%li", (long)BudgetGetNumber(bnPower));
00063         gtk_label_set_text((GtkLabel*)lpow, temp);
00064         sprintf(temp, "%li", (long)BudgetGetNumber(bnTraffic));
00065         gtk_label_set_text((GtkLabel*)ltra, temp);
00066         sprintf(temp, "%li", (long)BudgetGetNumber(bnDefence));
00067         gtk_label_set_text((GtkLabel*)ldef, temp);
00068 
00069         sprintf(temp, "%li", (long)BudgetGetNumber(bnCurrentBalance));
00070         gtk_label_set_text((GtkLabel*)lbal, temp);
00071         sprintf(temp, "%li", (long)BudgetGetNumber(bnChange));
00072         gtk_label_set_text((GtkLabel*)lcha, temp);
00073         sprintf(temp, "%li", (long)BudgetGetNumber(bnNextMonth));
00074         gtk_label_set_text((GtkLabel*)lnex, temp);
00075 
00076 }
00077 
00082 static void
00083 budget_traffic(GtkAdjustment *adj)
00084 {
00085         char temp[20];
00086 
00087         setUpkeep(ue_traffic, gtk_adjustment_get_value(GTK_ADJUSTMENT(adj)));
00088         sprintf(temp, "%li", (long)BudgetGetNumber(bnTraffic));
00089         gtk_label_set_text((GtkLabel*)ltra, temp);
00090 }
00091 
00096 static void
00097 budget_power(GtkAdjustment *adj)
00098 {
00099         char temp[20];
00100 
00101         setUpkeep(ue_power, gtk_adjustment_get_value(GTK_ADJUSTMENT(adj)));
00102         sprintf(temp, "%li", (long)BudgetGetNumber(bnPower));
00103         gtk_label_set_text((GtkLabel*)lpow, temp);
00104 }
00105 
00110 static void
00111 budget_defence(GtkAdjustment *adj)
00112 {
00113         char temp[20];
00114 
00115         setUpkeep(ue_defense, gtk_adjustment_get_value(GTK_ADJUSTMENT(adj)));
00116         sprintf(temp, "%li", (long)BudgetGetNumber(bnDefence));
00117         gtk_label_set_text((GtkLabel*)ldef, temp);
00118 }
00119 
00130 static gint
00131 close_budget(GtkWidget *widget __attribute__((unused)),
00132     gpointer data __attribute__((unused)))
00133 {
00134         dlg = NULL;
00135         return (FALSE);
00136 }
00137 
00145 void
00146 ViewBudget(GtkWidget *w __attribute__((unused)),
00147     gpointer data __attribute__((unused)))
00148 {
00149         GtkWidget *table, *mainbox;
00150         GtkWidget *spinner;
00151 
00152         dlg = gtk_window_new(GTK_WINDOW_TOPLEVEL);
00153         gtk_window_set_title(GTK_WINDOW(dlg), "Pocket City Budget");
00154 
00155         mainbox = gtk_vbox_new(FALSE, 10);
00156         table = gtk_table_new(12, 3, TRUE);
00157         gtk_container_set_border_width(GTK_CONTAINER(mainbox), 3);
00158 
00159         g_signal_connect(G_OBJECT(dlg), "delete_event",
00160             G_CALLBACK(close_budget), 0);
00161 
00162         gtk_container_add(GTK_CONTAINER(dlg), mainbox);
00163         gtk_box_pack_start(GTK_BOX(mainbox), table, TRUE, TRUE, 0);
00164         /* layout the labels */
00165         gtk_table_attach_defaults(GTK_TABLE(table),
00166             gtk_label_new("Income"), 0, 3, 0, 1);
00167         gtk_table_attach_defaults(GTK_TABLE(table),
00168             create_left_label("Residential"), 0, 1, 1, 2);
00169         gtk_table_attach_defaults(GTK_TABLE(table),
00170             create_left_label("Commercial"), 0, 1, 2, 3);
00171         gtk_table_attach_defaults(GTK_TABLE(table),
00172             create_left_label("Industrial"), 0, 1, 3, 4);
00173 
00174         gtk_table_attach_defaults(GTK_TABLE(table),
00175             gtk_label_new("Expenses"), 0, 3, 5, 6);
00176         gtk_table_attach_defaults(GTK_TABLE(table),
00177             create_left_label("Traffic"), 0, 3, 6, 7);
00178         gtk_table_attach_defaults(GTK_TABLE(table),
00179             create_left_label("Power"), 0, 3, 7, 8);
00180         gtk_table_attach_defaults(GTK_TABLE(table),
00181             create_left_label("Defence"), 0, 3, 8, 9);
00182 
00183         gtk_table_attach_defaults(GTK_TABLE(table),
00184             gtk_label_new("Total"), 0, 3, 10, 11);
00185         gtk_table_attach_defaults(GTK_TABLE(table),
00186             create_left_label("Current balance"), 0, 2, 11, 12);
00187         gtk_table_attach_defaults(GTK_TABLE(table),
00188             create_left_label("Change"), 0, 2, 12, 13);
00189         gtk_table_attach_defaults(GTK_TABLE(table),
00190             create_left_label("Next month's balance"), 0, 2, 13, 14);
00191 
00192         /* now the moneyflow */
00193         lres = create_right_label("-");
00194         lcom = create_right_label("-");
00195         lind = create_right_label("-");
00196         lpow = create_right_label("-");
00197         ltra = create_right_label("-");
00198         ldef = create_right_label("-");
00199         lbal = create_right_label("-");
00200         lcha = create_right_label("-");
00201         lnex = create_right_label("-");
00202         gtk_table_attach_defaults(GTK_TABLE(table), lres, 2, 3, 1, 2);
00203         gtk_table_attach_defaults(GTK_TABLE(table), lcom, 2, 3, 2, 3);
00204         gtk_table_attach_defaults(GTK_TABLE(table), lind, 2, 3, 3, 4);
00205         gtk_table_attach_defaults(GTK_TABLE(table), ltra, 2, 3, 6, 7);
00206         gtk_table_attach_defaults(GTK_TABLE(table), lpow, 2, 3, 7, 8);
00207         gtk_table_attach_defaults(GTK_TABLE(table), ldef, 2, 3, 8, 9);
00208         gtk_table_attach_defaults(GTK_TABLE(table), lbal, 2, 3, 11, 12);
00209         gtk_table_attach_defaults(GTK_TABLE(table), lcha, 2, 3, 12, 13);
00210         gtk_table_attach_defaults(GTK_TABLE(table), lnex, 2, 3, 13, 14);
00211 
00212         /* and the adjustments */
00213         adjust_tra = gtk_adjustment_new(getUpkeep(ue_traffic), 0, 100,
00214             1, 10, 0);
00215         spinner = gtk_spin_button_new(GTK_ADJUSTMENT(adjust_tra), 0.1, 0);
00216         gtk_table_attach_defaults(GTK_TABLE(table), spinner, 1, 2, 6, 7);
00217         g_signal_connect(G_OBJECT(spinner), "value_changed",
00218             G_CALLBACK(budget_traffic), adjust_tra);
00219 
00220         adjust_pow = gtk_adjustment_new(getUpkeep(ue_power), 0, 100, 1,
00221             10, 0);
00222         spinner = gtk_spin_button_new(GTK_ADJUSTMENT(adjust_pow), 0.1, 0);
00223         gtk_table_attach_defaults(GTK_TABLE(table), spinner, 1, 2, 7, 8);
00224         g_signal_connect(G_OBJECT(spinner), "value_changed",
00225             G_CALLBACK(budget_power), adjust_pow);
00226 
00227         adjust_def = gtk_adjustment_new(getUpkeep(ue_defense), 0, 100,
00228             1, 10, 0);
00229         spinner = gtk_spin_button_new(GTK_ADJUSTMENT(adjust_def), 0.1, 0);
00230         gtk_table_attach_defaults(GTK_TABLE(table), spinner, 1, 2, 8, 9);
00231         g_signal_connect(G_OBJECT(spinner), "value_changed",
00232             G_CALLBACK(budget_defence), adjust_def);
00233 
00234         UIUpdateBudget();
00235 
00236         gtk_widget_show_all(dlg);
00237 }

Generated on Mon Aug 30 19:44:15 2004 for pocketcity by doxygen1.2.18