mirror of
https://github.com/tstellar/bygfoot.git
synced 2024-12-16 18:29:21 +01:00
190 lines
4.8 KiB
C
190 lines
4.8 KiB
C
/*
|
|
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);
|
|
}
|