/* options_callbacks.c Bygfoot Football Manager -- a small and simple GTK2-based football management game. http://bygfoot.sourceforge.net Copyright (C) 2005 Gyözö Both (gyboth@bygfoot.com) This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #include "file.h" #include "options_callbacks.h" #include "options_interface.h" #include "option_gui.h" #include "support.h" #include "training.h" #include "user.h" #include "variables.h" #include "window.h" void on_button_options_ok_clicked (GtkButton *button, gpointer user_data) { #ifdef DEBUG printf("on_button_options_ok_clicked\n"); #endif gboolean save_global = gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON(lookup_widget(window.options, "checkbutton_save_global"))), save_user = gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON(lookup_widget(window.options, "checkbutton_save_user"))); const gchar *conf_dir = file_get_first_support_dir(); gchar buf[SMALL]; option_gui_write_options(); if(save_global) { sprintf(buf, "%s%sbygfoot.conf", conf_dir, G_DIR_SEPARATOR_S); file_save_opt_file(buf, &options); } if(save_user) { if(strcmp(current_user.name, "NONAME") == 0) sprintf(buf, "%s%sbygfoot_user.conf", conf_dir, G_DIR_SEPARATOR_S); else sprintf(buf, "%s%sbygfoot_%s.conf", conf_dir, G_DIR_SEPARATOR_S, current_user.name); file_save_opt_file(buf, ¤t_user.options); } window_destroy(&window.options); } void on_button_options_cancel_clicked (GtkButton *button, gpointer user_data) { #ifdef DEBUG printf("on_button_options_cancel_clicked\n"); #endif window_destroy(&window.options); } void on_button_font_name_clicked (GtkButton *button, gpointer user_data) { #ifdef DEBUG printf("on_button_font_name_clicked\n"); #endif window_create(WINDOW_FONT_SEL); } void on_button_reload_constants_clicked (GtkButton *button, gpointer user_data) { #ifdef DEBUG printf("on_button_reload_constants_clicked\n"); #endif const gchar *constants_file = gtk_entry_get_text(GTK_ENTRY(lookup_widget(window.options, "entry_constants_file"))); file_load_opt_file(constants_file, &constants); } gboolean on_checkbutton_save_global_button_press_event (GtkWidget *widget, GdkEventButton *event, gpointer user_data) { #ifdef DEBUG printf("on_checkbutton_save_global_button_press_event\n"); #endif if(event->button == 3) { gchar *conf_file = file_find_support_file("bygfoot.conf", TRUE); file_load_opt_file(conf_file, &options); g_free(conf_file); option_gui_set_up_window(); return TRUE; } return FALSE; } gboolean on_checkbutton_save_user_button_press_event (GtkWidget *widget, GdkEventButton *event, gpointer user_data) { #ifdef DEBUG printf("on_checkbutton_save_user_button_press_event\n"); #endif if(event->button == 3) { file_load_user_conf_file(¤t_user); option_gui_set_up_window(); return TRUE; } return FALSE; } gboolean on_window_options_delete_event (GtkWidget *widget, GdkEvent *event, gpointer user_data) { #ifdef DEBUG printf("on_window_options_delete_event\n"); #endif on_button_options_cancel_clicked(NULL, NULL); return TRUE; } void on_spinbutton_recreation_value_changed (GtkSpinButton *spinbutton, gpointer user_data) { #ifdef DEBUG printf("on_spinbutton_recreation_value_changed\n"); #endif gchar buf[SMALL]; sprintf(buf, "%d", CAMP_SCALE_MAX - gtk_spin_button_get_value_as_int(spinbutton)); gtk_label_set_text(GTK_LABEL(lookup_widget(window.options, "label_training")), buf); }