2005-04-04 12:36:04 +02:00
|
|
|
#include "callbacks.h"
|
2005-03-03 13:46:48 +01:00
|
|
|
#include "callback_func.h"
|
2005-03-21 11:16:37 +01:00
|
|
|
#include "game.h"
|
2005-03-03 13:46:48 +01:00
|
|
|
#include "game_gui.h"
|
2005-04-04 12:36:04 +02:00
|
|
|
#include "gui.h"
|
2005-03-03 13:46:48 +01:00
|
|
|
#include "live_game.h"
|
2005-04-04 12:36:04 +02:00
|
|
|
#include "load_save.h"
|
2005-03-16 21:48:25 +01:00
|
|
|
#include "main.h"
|
2004-12-30 17:48:19 +01:00
|
|
|
#include "misc_callback_func.h"
|
2004-12-23 13:58:39 +01:00
|
|
|
#include "misc_callbacks.h"
|
2005-03-03 13:46:48 +01:00
|
|
|
#include "option.h"
|
|
|
|
#include "user.h"
|
2005-01-09 21:21:22 +01:00
|
|
|
#include "variables.h"
|
|
|
|
#include "window.h"
|
2005-04-07 18:44:33 +02:00
|
|
|
#include "xml_country.h"
|
2004-12-23 13:58:39 +01:00
|
|
|
|
2005-03-03 13:46:48 +01:00
|
|
|
void
|
|
|
|
on_button_add_player_clicked (GtkButton *button,
|
|
|
|
gpointer user_data)
|
|
|
|
{
|
|
|
|
misc_callback_add_player();
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void
|
|
|
|
on_entry_player_name_activate (GtkEntry *entry,
|
|
|
|
gpointer user_data)
|
|
|
|
{
|
|
|
|
on_button_add_player_clicked(NULL, NULL);
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void
|
|
|
|
on_team_selection_ok_clicked (GtkButton *button,
|
|
|
|
gpointer user_data)
|
|
|
|
{
|
|
|
|
misc_callback_start_game();
|
|
|
|
}
|
|
|
|
|
2004-12-23 13:58:39 +01:00
|
|
|
void
|
|
|
|
on_team_selection_cancel_clicked (GtkButton *button,
|
|
|
|
gpointer user_data)
|
|
|
|
{
|
2005-03-16 21:48:25 +01:00
|
|
|
main_exit_program(EXIT_OK, NULL);
|
2004-12-23 13:58:39 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void
|
|
|
|
on_team_selection_tv_row_activated (GtkTreeView *treeview,
|
|
|
|
GtkTreePath *path,
|
|
|
|
GtkTreeViewColumn *column,
|
|
|
|
gpointer user_data)
|
|
|
|
{
|
2005-03-16 21:48:25 +01:00
|
|
|
on_button_add_player_clicked(NULL, NULL);
|
2004-12-23 13:58:39 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
void
|
|
|
|
on_team_selection_load_clicked (GtkButton *button,
|
|
|
|
gpointer user_data)
|
|
|
|
{
|
2005-04-06 00:10:18 +02:00
|
|
|
stat1 = STATUS_LOAD_GAME_TEAM_SELECTION;
|
|
|
|
window_show_file_sel();
|
2004-12-23 13:58:39 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
gboolean
|
|
|
|
on_fsel_window_delete_event (GtkWidget *widget,
|
|
|
|
GdkEvent *event,
|
|
|
|
gpointer user_data)
|
|
|
|
{
|
2005-04-04 12:36:04 +02:00
|
|
|
on_button_fsel_cancel_clicked(NULL, NULL);
|
2004-12-23 13:58:39 +01:00
|
|
|
|
2005-04-04 12:36:04 +02:00
|
|
|
return FALSE;
|
2004-12-23 13:58:39 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void
|
|
|
|
on_button_fsel_ok_clicked (GtkButton *button,
|
|
|
|
gpointer user_data)
|
|
|
|
{
|
2005-04-04 12:36:04 +02:00
|
|
|
const gchar *filename =
|
|
|
|
gtk_file_selection_get_filename(GTK_FILE_SELECTION(window.file_sel));
|
|
|
|
|
|
|
|
if(stat1 == STATUS_SAVE_GAME)
|
|
|
|
load_save_save_game(filename);
|
|
|
|
else if(stat1 == STATUS_LOAD_GAME)
|
2005-04-06 00:10:18 +02:00
|
|
|
load_save_load_game(filename);
|
|
|
|
else if(stat1 == STATUS_LOAD_GAME_TEAM_SELECTION)
|
2005-04-06 13:14:34 +02:00
|
|
|
misc_callback_startup_load(filename);
|
2004-12-23 13:58:39 +01:00
|
|
|
|
2005-04-04 12:36:04 +02:00
|
|
|
window_destroy(&window.file_sel, FALSE);
|
2004-12-23 13:58:39 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void
|
|
|
|
on_button_fsel_cancel_clicked (GtkButton *button,
|
|
|
|
gpointer user_data)
|
|
|
|
{
|
2005-04-04 12:36:04 +02:00
|
|
|
window_destroy(&window.file_sel, FALSE);
|
2004-12-23 13:58:39 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
gboolean
|
|
|
|
on_button_font_sel_cancel_clicked (GtkWidget *widget,
|
|
|
|
GdkEvent *event,
|
|
|
|
gpointer user_data)
|
|
|
|
{
|
2005-03-24 14:00:01 +01:00
|
|
|
window_destroy(&window.font_sel, FALSE);
|
2004-12-23 13:58:39 +01:00
|
|
|
|
2005-03-24 14:00:01 +01:00
|
|
|
return FALSE;
|
2004-12-23 13:58:39 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void
|
|
|
|
on_button_font_sel_ok_clicked (GtkButton *button,
|
|
|
|
gpointer user_data)
|
|
|
|
{
|
2005-03-24 14:00:01 +01:00
|
|
|
gchar *font =
|
|
|
|
gtk_font_selection_dialog_get_font_name(GTK_FONT_SELECTION_DIALOG(window.font_sel));
|
2004-12-23 13:58:39 +01:00
|
|
|
|
2005-03-24 14:00:01 +01:00
|
|
|
if(font != NULL)
|
|
|
|
{
|
|
|
|
gtk_entry_set_text(GTK_ENTRY(lookup_widget(window.options, "entry_font_name")), font);
|
|
|
|
g_free(font);
|
|
|
|
}
|
|
|
|
|
|
|
|
window_destroy(&window.font_sel, FALSE);
|
2004-12-23 13:58:39 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void
|
|
|
|
on_button_font_sel_apply_clicked (GtkButton *button,
|
|
|
|
gpointer user_data)
|
|
|
|
{
|
2005-03-24 14:00:01 +01:00
|
|
|
gchar *font =
|
|
|
|
gtk_font_selection_dialog_get_font_name(GTK_FONT_SELECTION_DIALOG(window.font_sel));
|
|
|
|
|
|
|
|
if(font != NULL)
|
|
|
|
{
|
|
|
|
opt_set_str("string_opt_font_name", font);
|
|
|
|
gtk_entry_set_text(GTK_ENTRY(lookup_widget(window.options, "entry_font_name")), font);
|
|
|
|
g_free(font);
|
2004-12-23 13:58:39 +01:00
|
|
|
|
2005-03-24 14:00:01 +01:00
|
|
|
stat0 = STATUS_MAIN;
|
|
|
|
game_gui_show_main();
|
2005-04-07 18:44:33 +02:00
|
|
|
|
|
|
|
setsav0;
|
2005-03-24 14:00:01 +01:00
|
|
|
}
|
2004-12-23 13:58:39 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
gboolean
|
|
|
|
on_live_window_delete_event (GtkWidget *widget,
|
|
|
|
GdkEvent *event,
|
|
|
|
gpointer user_data)
|
|
|
|
{
|
2005-03-09 14:10:28 +01:00
|
|
|
if(GTK_WIDGET_IS_SENSITIVE(lookup_widget(widget, "button_live_close")))
|
|
|
|
{
|
|
|
|
on_button_live_close_clicked(NULL, NULL);
|
|
|
|
return FALSE;
|
|
|
|
}
|
2004-12-23 13:58:39 +01:00
|
|
|
|
2005-03-09 14:10:28 +01:00
|
|
|
return TRUE;
|
2004-12-23 13:58:39 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void
|
|
|
|
on_button_live_close_clicked (GtkButton *button,
|
|
|
|
gpointer user_data)
|
|
|
|
{
|
2005-05-08 08:15:35 +02:00
|
|
|
if(stat1 == STATUS_SHOW_LAST_MATCH && stat3 != -1 &&
|
|
|
|
stat4 != STATUS_SHOW_LAST_MATCH_PAUSE)
|
|
|
|
stat4 = STATUS_SHOW_LAST_MATCH_ABORT;
|
|
|
|
else if(stat1 != STATUS_SHOW_LAST_MATCH)
|
2005-03-11 18:18:51 +01:00
|
|
|
callback_show_next_live_game();
|
|
|
|
else
|
2005-05-08 08:15:35 +02:00
|
|
|
{
|
2005-03-11 18:18:51 +01:00
|
|
|
window_destroy(&window.live, TRUE);
|
2005-05-08 08:15:35 +02:00
|
|
|
stat1 = stat2 = stat3 = stat4 = -1;
|
|
|
|
}
|
2004-12-23 13:58:39 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void
|
|
|
|
on_button_help_close_clicked (GtkButton *button,
|
|
|
|
gpointer user_data)
|
|
|
|
{
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
2005-01-09 21:21:22 +01:00
|
|
|
void
|
|
|
|
on_button_pause_clicked (GtkButton *button,
|
|
|
|
gpointer user_data)
|
|
|
|
{
|
2005-03-03 13:46:48 +01:00
|
|
|
misc_callback_pause_live_game();
|
2005-01-09 21:21:22 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void
|
|
|
|
on_button_resume_clicked (GtkButton *button,
|
|
|
|
gpointer user_data)
|
|
|
|
{
|
2005-05-08 08:15:35 +02:00
|
|
|
if(stat1 == STATUS_SHOW_LAST_MATCH)
|
|
|
|
{
|
|
|
|
callback_show_last_match(FALSE);
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
else if(game_check_live_game_resume_state())
|
2005-03-08 09:25:46 +01:00
|
|
|
{
|
2005-03-24 19:04:31 +01:00
|
|
|
gtk_widget_set_sensitive(GTK_WIDGET(button), FALSE);
|
2005-03-08 09:25:46 +01:00
|
|
|
if(g_array_index(usr(stat2).live_game.units, LiveGameUnit,
|
|
|
|
usr(stat2).live_game.units->len - 1).event.type !=
|
|
|
|
LIVE_GAME_EVENT_PENALTIES)
|
2005-03-24 19:04:31 +01:00
|
|
|
gtk_widget_set_sensitive(lookup_widget(window.live, "button_pause"), TRUE);
|
2005-03-08 09:25:46 +01:00
|
|
|
game_gui_set_main_window_sensitivity(FALSE);
|
|
|
|
live_game_resume();
|
|
|
|
}
|
|
|
|
else
|
2005-04-26 17:00:26 +02:00
|
|
|
game_gui_show_warning("There were too many substitutions. Only 3 per game are allowed. Player list reset.");
|
2005-01-09 21:21:22 +01:00
|
|
|
}
|
2005-01-10 16:24:15 +01:00
|
|
|
|
|
|
|
void
|
|
|
|
on_spinbutton_speed_value_changed (GtkSpinButton *spinbutton,
|
|
|
|
gpointer user_data)
|
|
|
|
{
|
2005-03-03 13:46:48 +01:00
|
|
|
option_set_int("int_opt_user_live_game_speed",
|
2005-03-23 20:03:26 +01:00
|
|
|
&usr(stat2).options, gtk_spin_button_get_value_as_int(spinbutton));
|
2005-01-10 16:24:15 +01:00
|
|
|
}
|
|
|
|
|
2005-03-03 13:46:48 +01:00
|
|
|
|
|
|
|
|
|
|
|
gboolean
|
|
|
|
on_treeview_users_button_press_event (GtkWidget *widget,
|
|
|
|
GdkEventButton *event,
|
|
|
|
gpointer user_data)
|
|
|
|
{
|
|
|
|
misc_callback_remove_user(event);
|
|
|
|
|
|
|
|
return FALSE;
|
|
|
|
}
|
2005-03-17 21:26:01 +01:00
|
|
|
|
|
|
|
void
|
|
|
|
on_spinbutton_capacity_value_changed (GtkSpinButton *spinbutton,
|
|
|
|
gpointer user_data)
|
|
|
|
{
|
|
|
|
misc_callback_update_stadium_window(TRUE);
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void
|
|
|
|
on_spinbutton_safety_value_changed (GtkSpinButton *spinbutton,
|
|
|
|
gpointer user_data)
|
|
|
|
{
|
|
|
|
misc_callback_update_stadium_window(FALSE);
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void
|
|
|
|
on_button_stadium_ok_clicked (GtkButton *button,
|
|
|
|
gpointer user_data)
|
|
|
|
{
|
|
|
|
misc_callback_improve_stadium();
|
2005-04-09 21:18:28 +02:00
|
|
|
|
|
|
|
if(stat0 == STATUS_SHOW_FINANCES)
|
|
|
|
on_menu_show_finances_activate(NULL, NULL);
|
2005-03-17 21:26:01 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void
|
|
|
|
on_button_stadium_cancel_clicked (GtkButton *button,
|
|
|
|
gpointer user_data)
|
|
|
|
{
|
|
|
|
window_destroy(&window.stadium, TRUE);
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
gboolean
|
|
|
|
on_spinbutton_capacity_button_press_event (GtkWidget *widget,
|
|
|
|
GdkEventButton *event,
|
|
|
|
gpointer user_data)
|
|
|
|
{
|
2005-03-17 21:43:57 +01:00
|
|
|
if(event->button == 3)
|
|
|
|
{
|
2005-03-17 21:26:01 +01:00
|
|
|
gtk_spin_button_set_value(GTK_SPIN_BUTTON(widget), 0);
|
2005-03-17 21:43:57 +01:00
|
|
|
return TRUE;
|
|
|
|
}
|
|
|
|
|
2005-03-17 21:26:01 +01:00
|
|
|
return FALSE;
|
|
|
|
}
|
2005-04-06 13:14:34 +02:00
|
|
|
|
|
|
|
void
|
|
|
|
on_button_startup_resume_clicked (GtkButton *button,
|
|
|
|
gpointer user_data)
|
|
|
|
{
|
2005-04-09 21:18:28 +02:00
|
|
|
misc_callback_startup_load("last_save");
|
|
|
|
}
|
2005-04-06 13:14:34 +02:00
|
|
|
|
2005-04-09 21:18:28 +02:00
|
|
|
gboolean
|
|
|
|
on_window_stadium_delete_event (GtkWidget *widget,
|
|
|
|
GdkEvent *event,
|
|
|
|
gpointer user_data)
|
|
|
|
{
|
2005-05-02 17:14:41 +02:00
|
|
|
on_button_stadium_cancel_clicked(NULL, NULL);
|
2005-04-06 13:14:34 +02:00
|
|
|
|
2005-04-09 21:18:28 +02:00
|
|
|
return TRUE;
|
2005-04-06 13:14:34 +02:00
|
|
|
}
|
2005-04-09 21:18:28 +02:00
|
|
|
|
2005-05-07 16:19:52 +02:00
|
|
|
void
|
|
|
|
on_combo_country_changed (GtkComboBox *combobox,
|
|
|
|
gpointer user_data)
|
|
|
|
{
|
|
|
|
GtkTreeIter iter;
|
|
|
|
gchar *buf = NULL;
|
|
|
|
|
|
|
|
gtk_combo_box_get_active_iter(combobox, &iter);
|
|
|
|
gtk_tree_model_get(gtk_combo_box_get_model(combobox), &iter, 1, &buf, -1);
|
|
|
|
|
|
|
|
misc_callback_show_team_list(GTK_WIDGET(combobox), buf);
|
|
|
|
g_free(buf);
|
|
|
|
}
|