void frontend_quote_add(int player_num, int quote_num, const gint * they_supply, const gint * they_receive) { quote_add_quote(player_num, quote_num, they_supply, they_receive); frontend_gui_update(); }
void frontend_rolled_dice(gint die1, gint die2, gint player_num) { histogram_dice_rolled(die1 + die2, player_num); identity_set_dice(die1, die2); gui_highlight_chits(die1 + die2); frontend_gui_update(); }
void monopoly_create_dlg(void) { GtkWidget *dlg_vbox; GtkWidget *vbox; GtkWidget *lbl; GSList *monop_grp = NULL; if (monop_dlg != NULL) { gtk_window_present(GTK_WINDOW(monop_dlg)); return; }; /* Dialog caption */ monop_dlg = gtk_dialog_new_with_buttons(_("Monopoly"), GTK_WINDOW(app_window), GTK_DIALOG_DESTROY_WITH_PARENT, GTK_STOCK_OK, GTK_RESPONSE_OK, NULL); g_signal_connect(G_OBJECT(monop_dlg), "destroy", G_CALLBACK(gtk_widget_destroyed), &monop_dlg); gtk_widget_realize(monop_dlg); /* Disable close */ gdk_window_set_functions(monop_dlg->window, GDK_FUNC_ALL | GDK_FUNC_CLOSE); dlg_vbox = GTK_DIALOG(monop_dlg)->vbox; gtk_widget_show(dlg_vbox); vbox = gtk_vbox_new(FALSE, 0); gtk_widget_show(vbox); gtk_box_pack_start(GTK_BOX(dlg_vbox), vbox, FALSE, TRUE, 0); gtk_container_set_border_width(GTK_CONTAINER(vbox), 5); /* Label */ lbl = gtk_label_new(_("Select the resource you wish to " "monopolize.")); gtk_widget_show(lbl); gtk_box_pack_start(GTK_BOX(vbox), lbl, TRUE, TRUE, 0); gtk_misc_set_alignment(GTK_MISC(lbl), 0, 0.5); monop_grp = add_resource_btn(vbox, monop_grp, BRICK_RESOURCE); monop_grp = add_resource_btn(vbox, monop_grp, GRAIN_RESOURCE); monop_grp = add_resource_btn(vbox, monop_grp, ORE_RESOURCE); monop_grp = add_resource_btn(vbox, monop_grp, WOOL_RESOURCE); monop_grp = add_resource_btn(vbox, monop_grp, LUMBER_RESOURCE); frontend_gui_register(gui_get_dialog_button (GTK_DIALOG(monop_dlg), 0), GUI_MONOPOLY, "clicked"); gtk_dialog_set_default_response(GTK_DIALOG(monop_dlg), GTK_RESPONSE_OK); /* This _must_ be after frontend_gui_register, otherwise the * regeneration of the button happens before the destruction, which * results in an incorrectly sensitive OK button. */ g_signal_connect(gui_get_dialog_button(GTK_DIALOG(monop_dlg), 0), "destroy", G_CALLBACK(monopoly_destroyed), NULL); gtk_widget_show(monop_dlg); frontend_gui_update(); }
static void quote_selected_cb(G_GNUC_UNUSED QuoteView * quoteview, G_GNUC_UNUSED gpointer user_data) { /** @todo RC 2006-05-27 Update the resource tables, * to show the effect of the selected quote */ frontend_gui_update(); }
void frontend_discard_remove(gint player_num) { if (discard_busy) { discard_player_did(player_num); if (player_num == my_player_num()) set_gui_state(frontend_state_idle); } frontend_gui_update(); }
void frontend_discard_add(gint player_num, gint discard_num) { if (player_num == my_player_num()) g_assert(callback_mode == MODE_DISCARD); discard_player_must(player_num, discard_num); if (player_num == my_player_num()) set_gui_state(frontend_state_discard); frontend_gui_update(); }
void frontend_setup(G_GNUC_UNUSED unsigned num_settlements, G_GNUC_UNUSED unsigned num_roads) { if (get_gui_state() == frontend_mode_setup) { frontend_gui_update(); return; } set_gui_state(frontend_mode_setup); play_sound(SOUND_TURN); }
void frontend_quote_trade(G_GNUC_UNUSED gint player_num, gint partner_num, gint quote_num, G_GNUC_UNUSED const gint * they_supply, G_GNUC_UNUSED const gint * they_receive) { /* a quote has been accepted, remove it from the list. */ quote_view_remove_quote(QUOTEVIEW(quoteview), partner_num, quote_num); quote_update(); frontend_gui_update(); }
void frontend_quote(gint player_num, gint * they_supply, gint * they_receive) { if (get_gui_state() == frontend_state_quote) { quote_begin_again(player_num, they_supply, they_receive); } else { quote_begin(player_num, they_supply, they_receive); set_gui_state(frontend_state_quote); } frontend_gui_update(); }
void quote_begin_again(gint player_num, const gint * we_receive, const gint * we_supply) { /* show the new parameters */ show_quote_params(player_num, we_receive, we_supply); /* throw out reject rows: everyone can quote again */ quote_view_remove_rejected_quotes(QUOTEVIEW(quoteview)); /* check if existing quotes are still valid */ quote_view_check_validity_of_trades(QUOTEVIEW(quoteview)); /* update everything */ quote_update(); set_resource_tables_filter(we_receive, we_supply); frontend_gui_update(); }
void frontend_turn(void) { /* if it already is our turn, just update the gui (maybe something * happened), but don't beep */ if (get_gui_state() == frontend_state_turn || get_gui_state() == frontend_state_trade || get_gui_state() == frontend_state_robber) { /* this is in the if, because it gets called from set_gui_state * anyway. */ frontend_gui_update(); return; } set_gui_state(frontend_state_turn); play_sound(SOUND_TURN); }
void frontend_robber(void) { if (!robber_busy) { /* Do this only once. */ robber_busy = TRUE; g_assert(previous_state == dummy_state); previous_state = get_gui_state(); } /* These things are redone at undo. */ set_gui_state(frontend_state_robber); gui_cursor_set(ROBBER_CURSOR, check_move_robber_or_pirate, place_robber_or_pirate_cb, NULL, NULL); gui_prompt_show(_("Place the robber.")); frontend_gui_update(); }
void quote_begin(gint player_num, const gint * we_receive, const gint * we_supply) { /* show what is asked */ show_quote_params(player_num, we_receive, we_supply); /* reset variables */ next_quote_num = 0; /* clear the gui list */ quote_view_begin(QUOTEVIEW(quoteview)); /* initialize our offer */ quote_update(); set_resource_tables_filter(we_receive, we_supply); frontend_gui_update(); /* finally, show the page so the user can see it */ gui_show_quote_page(TRUE); }
void frontend_resource_change(Resource type, gint new_amount) { if (type < NO_RESOURCE) { char buff[16]; gint res[NO_RESOURCE]; memset(res, 0, sizeof(res)); res[type] = new_amount; snprintf(buff, sizeof(buff), "%d", resource_total()); gtk_label_set_text(GTK_LABEL(asset_total_label), buff); /* Force resize of the table, this is needed because * GTK does not correctly redraw a label when the amounts * cross the barrier of 1 or 2 positions. */ gtk_container_check_resize(GTK_CONTAINER (gtk_widget_get_parent (asset_total_label))); rebuild_single_resource(type); } frontend_gui_update(); }
void frontend_quote_remove(int player_num, int quote_num) { quote_delete_quote(player_num, quote_num); frontend_gui_update(); }
static void amount_changed_cb(G_GNUC_UNUSED ResourceTable * rt, G_GNUC_UNUSED gpointer user_data) { quote_view_clear_selected_quote(QUOTEVIEW(quoteview)); frontend_gui_update(); }
void frontend_quote_player_end(gint player_num) { quote_player_finish(player_num); frontend_gui_update(); }
void frontend_gold_add(gint player_num, gint gold_num) { gold_choose_player_prepare(player_num, gold_num); frontend_gui_update(); }
void plenty_create_dlg(const gint * bank) { GtkWidget *dlg_vbox; GtkWidget *vbox; const char *str; gint r; gint total; plenty.dlg = gtk_dialog_new_with_buttons(_("Year of Plenty"), GTK_WINDOW(app_window), GTK_DIALOG_DESTROY_WITH_PARENT, GTK_STOCK_OK, GTK_RESPONSE_OK, NULL); g_signal_connect(GTK_OBJECT(plenty.dlg), "destroy", G_CALLBACK(gtk_widget_destroyed), &plenty.dlg); gtk_widget_realize(plenty.dlg); /* Disable close */ gdk_window_set_functions(plenty.dlg->window, GDK_FUNC_ALL | GDK_FUNC_CLOSE); dlg_vbox = GTK_DIALOG(plenty.dlg)->vbox; gtk_widget_show(dlg_vbox); vbox = gtk_vbox_new(FALSE, 5); gtk_widget_show(vbox); gtk_box_pack_start(GTK_BOX(dlg_vbox), vbox, FALSE, TRUE, 0); gtk_container_set_border_width(GTK_CONTAINER(vbox), 5); total = 0; if (bank != NULL) for (r = 0; r < NO_RESOURCE; ++r) { plenty.bank[r] = bank[r]; total += bank[r]; } if (total == 1) str = _("Please choose one resource from the bank"); else if (total >= 2) { total = 2; str = _("Please choose two resources from the bank"); } else str = _("The bank is empty"); plenty.resource_widget = resource_table_new(str, RESOURCE_TABLE_MORE_IN_HAND, TRUE, TRUE); resource_table_set_total(RESOURCETABLE(plenty.resource_widget), /* Text for total in year of plenty dialog */ _("Total resources"), total); resource_table_limit_bank(RESOURCETABLE(plenty.resource_widget), TRUE); resource_table_set_bank(RESOURCETABLE(plenty.resource_widget), plenty.bank); gtk_widget_show(plenty.resource_widget); gtk_box_pack_start(GTK_BOX(vbox), plenty.resource_widget, FALSE, TRUE, 0); g_signal_connect(G_OBJECT(plenty.resource_widget), "change", G_CALLBACK(amount_changed_cb), NULL); frontend_gui_register(gui_get_dialog_button (GTK_DIALOG(plenty.dlg), 0), GUI_PLENTY, "clicked"); /* This _must_ be after frontend_gui_register, otherwise the * regeneration of the button happens before the destruction, which * results in an incorrectly sensitive OK button. */ g_signal_connect(gui_get_dialog_button(GTK_DIALOG(plenty.dlg), 0), "destroy", G_CALLBACK(plenty_destroyed), NULL); gtk_widget_show(plenty.dlg); frontend_gui_update(); }
void frontend_gold_choose(gint gold_num, const gint * bank) { gold_choose_player_must(gold_num, bank); frontend_gui_update(); }
void frontend_gold_remove(gint player_num, gint * resources) { gold_choose_player_did(player_num, resources); frontend_gui_update(); }
static void amount_changed_cb(G_GNUC_UNUSED ResourceTable * rt, G_GNUC_UNUSED gpointer user_data) { frontend_gui_update(); }
static GtkWidget *discard_create_dlg(gint num) { GtkWidget *dlg_vbox; GtkWidget *vbox; gchar *text; discard.dlg = gtk_dialog_new_with_buttons( /* Dialog caption */ _("" "Discard Resources"), GTK_WINDOW (app_window), GTK_DIALOG_DESTROY_WITH_PARENT, GTK_STOCK_OK, GTK_RESPONSE_OK, NULL); g_signal_connect(G_OBJECT(discard.dlg), "destroy", G_CALLBACK(gtk_widget_destroyed), &discard.dlg); gtk_widget_realize(discard.dlg); /* Disable close */ gdk_window_set_functions(discard.dlg->window, GDK_FUNC_ALL | GDK_FUNC_CLOSE); dlg_vbox = GTK_DIALOG(discard.dlg)->vbox; gtk_widget_show(dlg_vbox); vbox = gtk_vbox_new(FALSE, 6); gtk_widget_show(vbox); gtk_box_pack_start(GTK_BOX(dlg_vbox), vbox, FALSE, TRUE, 0); gtk_container_set_border_width(GTK_CONTAINER(vbox), 6); text = g_strdup_printf(ngettext("You must discard %d resource", "You must discard %d resources", num), num); discard.resource_widget = resource_table_new(text, RESOURCE_TABLE_LESS_IN_HAND, FALSE, TRUE); g_free(text); resource_table_set_total(RESOURCETABLE(discard.resource_widget), /* Label */ _("Total discards"), num); gtk_widget_show(discard.resource_widget); gtk_box_pack_start(GTK_BOX(vbox), discard.resource_widget, FALSE, TRUE, 0); g_signal_connect(G_OBJECT(discard.resource_widget), "change", G_CALLBACK(amount_changed_cb), NULL); frontend_gui_register(gui_get_dialog_button (GTK_DIALOG(discard.dlg), 0), GUI_DISCARD, "clicked"); /* This _must_ be after frontend_gui_register, otherwise the * regeneration of the button happens before the destruction, which * results in an incorrectly sensitive OK button. */ g_signal_connect(gui_get_dialog_button(GTK_DIALOG(discard.dlg), 0), "destroy", G_CALLBACK(button_destroyed), GINT_TO_POINTER(num)); gtk_widget_show(discard.dlg); frontend_gui_update(); return discard.dlg; }
void frontend_trade_player_end(gint player_num) { trade_player_finish(player_num); frontend_gui_update(); }