mirror of
https://github.com/tstellar/bygfoot.git
synced 2024-12-17 02:39:14 +01:00
578 lines
23 KiB
C
578 lines
23 KiB
C
/*
|
|
option_gui.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 "callbacks.h"
|
|
#include "file.h"
|
|
#include "game_gui.h"
|
|
#include "language.h"
|
|
#include "option.h"
|
|
#include "option_gui.h"
|
|
#include "misc.h"
|
|
#include "support.h"
|
|
#include "training.h"
|
|
#include "treeview.h"
|
|
#include "user.h"
|
|
#include "variables.h"
|
|
|
|
/** An enumeration for all the options that are boolean,
|
|
e.g. whether or not quit requires confirmation. */
|
|
enum BooleanOptions
|
|
{
|
|
BOOL_OPT_CONF_QUIT = 0,
|
|
BOOL_OPT_SAVE_OVERWRITE,
|
|
BOOL_OPT_MAXIMIZE,
|
|
BOOL_OPT_PREFER_MESS,
|
|
BOOL_OPT_PROGRESSBAR_PICS,
|
|
BOOL_OPT_SKIP,
|
|
BOOL_OPT_AUTOSAVE,
|
|
BOOL_OPT_SHOW_LIVE,
|
|
BOOL_OPT_SHOW_TENDENCY,
|
|
BOOL_OPT_PAUSE_INJURY,
|
|
BOOL_OPT_PAUSE_RED,
|
|
BOOL_OPT_PAUSE_BREAK,
|
|
BOOL_OPT_AUTO_SUB,
|
|
BOOL_OPT_CONF_UNFIT,
|
|
BOOL_OPT_CONF_YOUTH,
|
|
BOOL_OPT_SHOW_JOB,
|
|
BOOL_OPT_SWAP,
|
|
BOOL_OPT_SHOW_OVERALL,
|
|
BOOL_OPT_SHOW_ALL_LEAGUES,
|
|
BOOL_OPT_BET_SHOW_ALL_LEAGUES,
|
|
BOOL_OPT_BET_SHOW_CUPS,
|
|
BOOL_OPT_BET_SHOW_MY_RECENT,
|
|
BOOL_OPT_NEWS_USER,
|
|
BOOL_OPT_NEWS_CUP,
|
|
BOOL_OPT_NEWS_LEAGUE,
|
|
BOOL_OPT_NEWS_RECENT,
|
|
BOOL_OPT_PL1_ATT_NAME,
|
|
BOOL_OPT_PL1_ATT_CPOS,
|
|
BOOL_OPT_PL1_ATT_POS,
|
|
BOOL_OPT_PL1_ATT_CSKILL,
|
|
BOOL_OPT_PL1_ATT_SKILL,
|
|
BOOL_OPT_PL1_ATT_FITNESS,
|
|
BOOL_OPT_PL1_ATT_GAMES,
|
|
BOOL_OPT_PL1_ATT_SHOTS,
|
|
BOOL_OPT_PL1_ATT_GOALS,
|
|
BOOL_OPT_PL1_ATT_STATUS,
|
|
BOOL_OPT_PL1_ATT_CARDS,
|
|
BOOL_OPT_PL1_ATT_AGE,
|
|
BOOL_OPT_PL1_ATT_ETAL,
|
|
BOOL_OPT_PL1_ATT_VALUE,
|
|
BOOL_OPT_PL1_ATT_WAGE,
|
|
BOOL_OPT_PL1_ATT_CONTRACT,
|
|
BOOL_OPT_PL1_ATT_TEAM,
|
|
BOOL_OPT_PL1_ATT_LEAGUE,
|
|
BOOL_OPT_PL2_ATT_NAME,
|
|
BOOL_OPT_PL2_ATT_CPOS,
|
|
BOOL_OPT_PL2_ATT_POS,
|
|
BOOL_OPT_PL2_ATT_CSKILL,
|
|
BOOL_OPT_PL2_ATT_SKILL,
|
|
BOOL_OPT_PL2_ATT_FITNESS,
|
|
BOOL_OPT_PL2_ATT_GAMES,
|
|
BOOL_OPT_PL2_ATT_SHOTS,
|
|
BOOL_OPT_PL2_ATT_GOALS,
|
|
BOOL_OPT_PL2_ATT_STATUS,
|
|
BOOL_OPT_PL2_ATT_CARDS,
|
|
BOOL_OPT_PL2_ATT_AGE,
|
|
BOOL_OPT_PL2_ATT_ETAL,
|
|
BOOL_OPT_PL2_ATT_VALUE,
|
|
BOOL_OPT_PL2_ATT_WAGE,
|
|
BOOL_OPT_PL2_ATT_CONTRACT,
|
|
BOOL_OPT_PL2_ATT_TEAM,
|
|
BOOL_OPT_PL2_ATT_LEAGUE,
|
|
BOOL_OPT_END
|
|
};
|
|
|
|
|
|
/** Write the pointers to the options and the corresponding widgets. */
|
|
void
|
|
option_gui_write_bool_widgets(gint **bool_options, GtkToggleButton **bool_widgets)
|
|
{
|
|
#ifdef DEBUG
|
|
printf("option_gui_write_bool_widgets\n");
|
|
#endif
|
|
|
|
bool_widgets[BOOL_OPT_CONF_QUIT] =
|
|
GTK_TOGGLE_BUTTON(lookup_widget(window.options, "checkbutton_conf_quit"));
|
|
bool_options[BOOL_OPT_CONF_QUIT] = opt_intp("int_opt_confirm_quit");
|
|
|
|
bool_widgets[BOOL_OPT_CONF_UNFIT] =
|
|
GTK_TOGGLE_BUTTON(lookup_widget(window.options, "checkbutton_conf_unfit"));
|
|
bool_options[BOOL_OPT_CONF_UNFIT] = opt_intp("int_opt_confirm_unfit");
|
|
|
|
bool_widgets[BOOL_OPT_SAVE_OVERWRITE] =
|
|
GTK_TOGGLE_BUTTON(lookup_widget(window.options, "checkbutton_save_overwrite"));
|
|
bool_options[BOOL_OPT_SAVE_OVERWRITE] = opt_intp("int_opt_save_will_overwrite");
|
|
|
|
bool_widgets[BOOL_OPT_MAXIMIZE] =
|
|
GTK_TOGGLE_BUTTON(lookup_widget(window.options, "checkbutton_maximize"));
|
|
bool_options[BOOL_OPT_MAXIMIZE] = opt_intp("int_opt_maximize_main_window");
|
|
|
|
bool_widgets[BOOL_OPT_PREFER_MESS] =
|
|
GTK_TOGGLE_BUTTON(lookup_widget(window.options, "checkbutton_pref_mess"));
|
|
bool_options[BOOL_OPT_PREFER_MESS] = opt_intp("int_opt_prefer_messages");
|
|
|
|
bool_widgets[BOOL_OPT_PROGRESSBAR_PICS] =
|
|
GTK_TOGGLE_BUTTON(lookup_widget(window.options,
|
|
"checkbutton_show_progress_pics"));
|
|
bool_options[BOOL_OPT_PROGRESSBAR_PICS] = opt_intp("int_opt_progressbar_pics");
|
|
|
|
bool_widgets[BOOL_OPT_SKIP] =
|
|
GTK_TOGGLE_BUTTON(lookup_widget(window.options, "checkbutton_skip"));
|
|
bool_options[BOOL_OPT_SKIP] = opt_intp("int_opt_skip");
|
|
|
|
bool_widgets[BOOL_OPT_AUTOSAVE] =
|
|
GTK_TOGGLE_BUTTON(lookup_widget(window.options, "checkbutton_autosave"));
|
|
bool_options[BOOL_OPT_AUTOSAVE] = opt_intp("int_opt_autosave");
|
|
|
|
bool_widgets[BOOL_OPT_SHOW_LIVE] =
|
|
GTK_TOGGLE_BUTTON(lookup_widget(window.options, "checkbutton_show_live"));
|
|
bool_options[BOOL_OPT_SHOW_LIVE] = opt_user_intp("int_opt_user_show_live_game");
|
|
|
|
bool_widgets[BOOL_OPT_SHOW_TENDENCY] =
|
|
GTK_TOGGLE_BUTTON(lookup_widget(window.options, "checkbutton_show_tendency"));
|
|
bool_options[BOOL_OPT_SHOW_TENDENCY] = opt_user_intp("int_opt_user_show_tendency_bar");
|
|
|
|
bool_widgets[BOOL_OPT_PAUSE_INJURY] =
|
|
GTK_TOGGLE_BUTTON(lookup_widget(window.options, "checkbutton_pause_injury"));
|
|
bool_options[BOOL_OPT_PAUSE_INJURY] = opt_user_intp("int_opt_user_pause_injury");
|
|
|
|
bool_widgets[BOOL_OPT_PAUSE_RED] =
|
|
GTK_TOGGLE_BUTTON(lookup_widget(window.options, "checkbutton_pause_red"));
|
|
bool_options[BOOL_OPT_PAUSE_RED] = opt_user_intp("int_opt_user_pause_red");
|
|
|
|
bool_widgets[BOOL_OPT_PAUSE_BREAK] =
|
|
GTK_TOGGLE_BUTTON(lookup_widget(window.options, "checkbutton_pause_break"));
|
|
bool_options[BOOL_OPT_PAUSE_BREAK] = opt_user_intp("int_opt_user_pause_break");
|
|
|
|
bool_widgets[BOOL_OPT_AUTO_SUB] =
|
|
GTK_TOGGLE_BUTTON(lookup_widget(window.options, "checkbutton_auto_sub"));
|
|
bool_options[BOOL_OPT_AUTO_SUB] = opt_user_intp("int_opt_user_auto_sub");
|
|
|
|
bool_widgets[BOOL_OPT_CONF_YOUTH] =
|
|
GTK_TOGGLE_BUTTON(lookup_widget(window.options, "checkbutton_conf_youth"));
|
|
bool_options[BOOL_OPT_CONF_YOUTH] = opt_user_intp("int_opt_user_confirm_youth");
|
|
|
|
bool_widgets[BOOL_OPT_SHOW_JOB] =
|
|
GTK_TOGGLE_BUTTON(lookup_widget(window.options, "checkbutton_show_job"));
|
|
bool_options[BOOL_OPT_SHOW_JOB] = opt_user_intp("int_opt_user_show_job_offers");
|
|
|
|
bool_widgets[BOOL_OPT_SWAP] =
|
|
GTK_TOGGLE_BUTTON(lookup_widget(window.options, "checkbutton_swap_adapts"));
|
|
bool_options[BOOL_OPT_SWAP] = opt_user_intp("int_opt_user_swap_adapts");
|
|
|
|
bool_widgets[BOOL_OPT_SHOW_OVERALL] =
|
|
GTK_TOGGLE_BUTTON(lookup_widget(window.options, "checkbutton_show_overall"));
|
|
bool_options[BOOL_OPT_SHOW_OVERALL] = opt_user_intp("int_opt_user_show_overall");
|
|
|
|
bool_widgets[BOOL_OPT_SHOW_ALL_LEAGUES] =
|
|
GTK_TOGGLE_BUTTON(lookup_widget(window.options, "checkbutton_show_all_leagues"));
|
|
bool_options[BOOL_OPT_SHOW_ALL_LEAGUES] = opt_user_intp("int_opt_user_show_all_leagues");
|
|
|
|
bool_widgets[BOOL_OPT_BET_SHOW_ALL_LEAGUES] =
|
|
GTK_TOGGLE_BUTTON(lookup_widget(window.options, "checkbutton_bet_show_all_leagues"));
|
|
bool_options[BOOL_OPT_BET_SHOW_ALL_LEAGUES] = opt_user_intp("int_opt_user_bet_show_all_leagues");
|
|
|
|
bool_widgets[BOOL_OPT_BET_SHOW_CUPS] =
|
|
GTK_TOGGLE_BUTTON(lookup_widget(window.options, "checkbutton_bet_show_cups"));
|
|
bool_options[BOOL_OPT_BET_SHOW_CUPS] = opt_user_intp("int_opt_user_bet_show_cups");
|
|
|
|
bool_widgets[BOOL_OPT_BET_SHOW_MY_RECENT] =
|
|
GTK_TOGGLE_BUTTON(lookup_widget(window.options, "checkbutton_bet_show_only_recent"));
|
|
bool_options[BOOL_OPT_BET_SHOW_MY_RECENT] = opt_user_intp("int_opt_user_bet_show_my_recent");
|
|
|
|
bool_widgets[BOOL_OPT_NEWS_USER] =
|
|
GTK_TOGGLE_BUTTON(lookup_widget(window.options, "checkbutton_news_user"));
|
|
bool_options[BOOL_OPT_NEWS_USER] = opt_intp("int_opt_news_create_user");
|
|
|
|
bool_widgets[BOOL_OPT_NEWS_CUP] =
|
|
GTK_TOGGLE_BUTTON(lookup_widget(window.options, "checkbutton_news_cup"));
|
|
bool_options[BOOL_OPT_NEWS_CUP] = opt_intp("int_opt_news_create_cup");
|
|
|
|
bool_widgets[BOOL_OPT_NEWS_LEAGUE] =
|
|
GTK_TOGGLE_BUTTON(lookup_widget(window.options, "checkbutton_news_league"));
|
|
bool_options[BOOL_OPT_NEWS_LEAGUE] = opt_intp("int_opt_news_create_league");
|
|
|
|
bool_widgets[BOOL_OPT_NEWS_RECENT] =
|
|
GTK_TOGGLE_BUTTON(lookup_widget(window.options, "checkbutton_news_recent"));
|
|
bool_options[BOOL_OPT_NEWS_RECENT] = opt_intp("int_opt_news_show_recent");
|
|
|
|
bool_widgets[BOOL_OPT_PL1_ATT_NAME] =
|
|
GTK_TOGGLE_BUTTON(lookup_widget(window.options, "checkbutton1"));
|
|
bool_options[BOOL_OPT_PL1_ATT_NAME] = opt_user_intp("int_opt_user_pl1_att_name");
|
|
|
|
bool_widgets[BOOL_OPT_PL1_ATT_CPOS] =
|
|
GTK_TOGGLE_BUTTON(lookup_widget(window.options, "checkbutton2"));
|
|
bool_options[BOOL_OPT_PL1_ATT_CPOS] = opt_user_intp("int_opt_user_pl1_att_cpos");
|
|
|
|
bool_widgets[BOOL_OPT_PL1_ATT_POS] =
|
|
GTK_TOGGLE_BUTTON(lookup_widget(window.options, "checkbutton3"));
|
|
bool_options[BOOL_OPT_PL1_ATT_POS] = opt_user_intp("int_opt_user_pl1_att_pos");
|
|
|
|
bool_widgets[BOOL_OPT_PL1_ATT_CSKILL] =
|
|
GTK_TOGGLE_BUTTON(lookup_widget(window.options, "checkbutton4"));
|
|
bool_options[BOOL_OPT_PL1_ATT_CSKILL] = opt_user_intp("int_opt_user_pl1_att_cskill");
|
|
|
|
bool_widgets[BOOL_OPT_PL1_ATT_SKILL] =
|
|
GTK_TOGGLE_BUTTON(lookup_widget(window.options, "checkbutton5"));
|
|
bool_options[BOOL_OPT_PL1_ATT_SKILL] = opt_user_intp("int_opt_user_pl1_att_skill");
|
|
|
|
bool_widgets[BOOL_OPT_PL1_ATT_FITNESS] =
|
|
GTK_TOGGLE_BUTTON(lookup_widget(window.options, "checkbutton6"));
|
|
bool_options[BOOL_OPT_PL1_ATT_FITNESS] = opt_user_intp("int_opt_user_pl1_att_fitness");
|
|
|
|
bool_widgets[BOOL_OPT_PL1_ATT_GAMES] =
|
|
GTK_TOGGLE_BUTTON(lookup_widget(window.options, "checkbutton7"));
|
|
bool_options[BOOL_OPT_PL1_ATT_GAMES] = opt_user_intp("int_opt_user_pl1_att_games");
|
|
|
|
bool_widgets[BOOL_OPT_PL1_ATT_SHOTS] =
|
|
GTK_TOGGLE_BUTTON(lookup_widget(window.options, "checkbutton8"));
|
|
bool_options[BOOL_OPT_PL1_ATT_SHOTS] = opt_user_intp("int_opt_user_pl1_att_shots");
|
|
|
|
bool_widgets[BOOL_OPT_PL1_ATT_GOALS] =
|
|
GTK_TOGGLE_BUTTON(lookup_widget(window.options, "checkbutton9"));
|
|
bool_options[BOOL_OPT_PL1_ATT_GOALS] = opt_user_intp("int_opt_user_pl1_att_goals");
|
|
|
|
bool_widgets[BOOL_OPT_PL1_ATT_STATUS] =
|
|
GTK_TOGGLE_BUTTON(lookup_widget(window.options, "checkbutton10"));
|
|
bool_options[BOOL_OPT_PL1_ATT_STATUS] = opt_user_intp("int_opt_user_pl1_att_status");
|
|
|
|
bool_widgets[BOOL_OPT_PL1_ATT_CARDS] =
|
|
GTK_TOGGLE_BUTTON(lookup_widget(window.options, "checkbutton11"));
|
|
bool_options[BOOL_OPT_PL1_ATT_CARDS] = opt_user_intp("int_opt_user_pl1_att_cards");
|
|
|
|
bool_widgets[BOOL_OPT_PL1_ATT_AGE] =
|
|
GTK_TOGGLE_BUTTON(lookup_widget(window.options, "checkbutton12"));
|
|
bool_options[BOOL_OPT_PL1_ATT_AGE] = opt_user_intp("int_opt_user_pl1_att_age");
|
|
|
|
bool_widgets[BOOL_OPT_PL1_ATT_ETAL] =
|
|
GTK_TOGGLE_BUTTON(lookup_widget(window.options, "checkbutton13"));
|
|
bool_options[BOOL_OPT_PL1_ATT_ETAL] = opt_user_intp("int_opt_user_pl1_att_etal");
|
|
|
|
bool_widgets[BOOL_OPT_PL1_ATT_VALUE] =
|
|
GTK_TOGGLE_BUTTON(lookup_widget(window.options, "checkbutton14"));
|
|
bool_options[BOOL_OPT_PL1_ATT_VALUE] = opt_user_intp("int_opt_user_pl1_att_value");
|
|
|
|
bool_widgets[BOOL_OPT_PL1_ATT_WAGE] =
|
|
GTK_TOGGLE_BUTTON(lookup_widget(window.options, "checkbutton15"));
|
|
bool_options[BOOL_OPT_PL1_ATT_WAGE] = opt_user_intp("int_opt_user_pl1_att_wage");
|
|
|
|
bool_widgets[BOOL_OPT_PL1_ATT_CONTRACT] =
|
|
GTK_TOGGLE_BUTTON(lookup_widget(window.options, "checkbutton16"));
|
|
bool_options[BOOL_OPT_PL1_ATT_CONTRACT] = opt_user_intp("int_opt_user_pl1_att_contract");
|
|
|
|
bool_widgets[BOOL_OPT_PL1_ATT_TEAM] =
|
|
GTK_TOGGLE_BUTTON(lookup_widget(window.options, "checkbutton17"));
|
|
bool_options[BOOL_OPT_PL1_ATT_TEAM] = opt_user_intp("int_opt_user_pl1_att_team");
|
|
|
|
bool_widgets[BOOL_OPT_PL1_ATT_LEAGUE] =
|
|
GTK_TOGGLE_BUTTON(lookup_widget(window.options, "checkbutton18"));
|
|
bool_options[BOOL_OPT_PL1_ATT_LEAGUE] = opt_user_intp("int_opt_user_pl1_att_league_cup");
|
|
|
|
bool_widgets[BOOL_OPT_PL2_ATT_NAME] =
|
|
GTK_TOGGLE_BUTTON(lookup_widget(window.options, "checkbutton19"));
|
|
bool_options[BOOL_OPT_PL2_ATT_NAME] = opt_user_intp("int_opt_user_pl2_att_name");
|
|
|
|
bool_widgets[BOOL_OPT_PL2_ATT_CPOS] =
|
|
GTK_TOGGLE_BUTTON(lookup_widget(window.options, "checkbutton20"));
|
|
bool_options[BOOL_OPT_PL2_ATT_CPOS] = opt_user_intp("int_opt_user_pl2_att_cpos");
|
|
|
|
bool_widgets[BOOL_OPT_PL2_ATT_POS] =
|
|
GTK_TOGGLE_BUTTON(lookup_widget(window.options, "checkbutton21"));
|
|
bool_options[BOOL_OPT_PL2_ATT_POS] = opt_user_intp("int_opt_user_pl2_att_pos");
|
|
|
|
bool_widgets[BOOL_OPT_PL2_ATT_CSKILL] =
|
|
GTK_TOGGLE_BUTTON(lookup_widget(window.options, "checkbutton22"));
|
|
bool_options[BOOL_OPT_PL2_ATT_CSKILL] = opt_user_intp("int_opt_user_pl2_att_cskill");
|
|
|
|
bool_widgets[BOOL_OPT_PL2_ATT_SKILL] =
|
|
GTK_TOGGLE_BUTTON(lookup_widget(window.options, "checkbutton23"));
|
|
bool_options[BOOL_OPT_PL2_ATT_SKILL] = opt_user_intp("int_opt_user_pl2_att_skill");
|
|
|
|
bool_widgets[BOOL_OPT_PL2_ATT_FITNESS] =
|
|
GTK_TOGGLE_BUTTON(lookup_widget(window.options, "checkbutton24"));
|
|
bool_options[BOOL_OPT_PL2_ATT_FITNESS] = opt_user_intp("int_opt_user_pl2_att_fitness");
|
|
|
|
bool_widgets[BOOL_OPT_PL2_ATT_GAMES] =
|
|
GTK_TOGGLE_BUTTON(lookup_widget(window.options, "checkbutton25"));
|
|
bool_options[BOOL_OPT_PL2_ATT_GAMES] = opt_user_intp("int_opt_user_pl2_att_games");
|
|
|
|
bool_widgets[BOOL_OPT_PL2_ATT_SHOTS] =
|
|
GTK_TOGGLE_BUTTON(lookup_widget(window.options, "checkbutton26"));
|
|
bool_options[BOOL_OPT_PL2_ATT_SHOTS] = opt_user_intp("int_opt_user_pl2_att_shots");
|
|
|
|
bool_widgets[BOOL_OPT_PL2_ATT_GOALS] =
|
|
GTK_TOGGLE_BUTTON(lookup_widget(window.options, "checkbutton27"));
|
|
bool_options[BOOL_OPT_PL2_ATT_GOALS] = opt_user_intp("int_opt_user_pl2_att_goals");
|
|
|
|
bool_widgets[BOOL_OPT_PL2_ATT_STATUS] =
|
|
GTK_TOGGLE_BUTTON(lookup_widget(window.options, "checkbutton28"));
|
|
bool_options[BOOL_OPT_PL2_ATT_STATUS] = opt_user_intp("int_opt_user_pl2_att_status");
|
|
|
|
bool_widgets[BOOL_OPT_PL2_ATT_CARDS] =
|
|
GTK_TOGGLE_BUTTON(lookup_widget(window.options, "checkbutton29"));
|
|
bool_options[BOOL_OPT_PL2_ATT_CARDS] = opt_user_intp("int_opt_user_pl2_att_cards");
|
|
|
|
bool_widgets[BOOL_OPT_PL2_ATT_AGE] =
|
|
GTK_TOGGLE_BUTTON(lookup_widget(window.options, "checkbutton30"));
|
|
bool_options[BOOL_OPT_PL2_ATT_AGE] = opt_user_intp("int_opt_user_pl2_att_age");
|
|
|
|
bool_widgets[BOOL_OPT_PL2_ATT_ETAL] =
|
|
GTK_TOGGLE_BUTTON(lookup_widget(window.options, "checkbutton31"));
|
|
bool_options[BOOL_OPT_PL2_ATT_ETAL] = opt_user_intp("int_opt_user_pl2_att_etal");
|
|
|
|
bool_widgets[BOOL_OPT_PL2_ATT_VALUE] =
|
|
GTK_TOGGLE_BUTTON(lookup_widget(window.options, "checkbutton32"));
|
|
bool_options[BOOL_OPT_PL2_ATT_VALUE] = opt_user_intp("int_opt_user_pl2_att_value");
|
|
|
|
bool_widgets[BOOL_OPT_PL2_ATT_WAGE] =
|
|
GTK_TOGGLE_BUTTON(lookup_widget(window.options, "checkbutton33"));
|
|
bool_options[BOOL_OPT_PL2_ATT_WAGE] = opt_user_intp("int_opt_user_pl2_att_wage");
|
|
|
|
bool_widgets[BOOL_OPT_PL2_ATT_CONTRACT] =
|
|
GTK_TOGGLE_BUTTON(lookup_widget(window.options, "checkbutton34"));
|
|
bool_options[BOOL_OPT_PL2_ATT_CONTRACT] = opt_user_intp("int_opt_user_pl2_att_contract");
|
|
|
|
bool_widgets[BOOL_OPT_PL2_ATT_TEAM] =
|
|
GTK_TOGGLE_BUTTON(lookup_widget(window.options, "checkbutton35"));
|
|
bool_options[BOOL_OPT_PL2_ATT_TEAM] = opt_user_intp("int_opt_user_pl2_att_team");
|
|
|
|
bool_widgets[BOOL_OPT_PL2_ATT_LEAGUE] =
|
|
GTK_TOGGLE_BUTTON(lookup_widget(window.options, "checkbutton36"));
|
|
bool_options[BOOL_OPT_PL2_ATT_LEAGUE] = opt_user_intp("int_opt_user_pl2_att_league_cup");
|
|
}
|
|
|
|
/** Enumeration for the spinbutton widgets and options. */
|
|
enum SpinOptions
|
|
{
|
|
SPIN_OPT_AUTOSAVE = 0,
|
|
SPIN_OPT_AUTOSAVE_FILES,
|
|
SPIN_OPT_PRECISION,
|
|
SPIN_OPT_REFRESH,
|
|
SPIN_OPT_LIVE_SPEED,
|
|
SPIN_OPT_LIVE_VERBOSITY,
|
|
SPIN_OPT_CONTRACT,
|
|
SPIN_OPT_BET_WAGER,
|
|
SPIN_OPT_TRAINING_CAMP_RECREATION,
|
|
SPIN_OPT_END
|
|
};
|
|
|
|
/** Write the pointers to the options and the corresponding widgets. */
|
|
void
|
|
option_gui_write_spin_widgets(gint **spin_options, GtkSpinButton **spin_widgets)
|
|
{
|
|
#ifdef DEBUG
|
|
printf("option_gui_write_spin_widgets\n");
|
|
#endif
|
|
|
|
gint tmp = 0;
|
|
|
|
spin_widgets[SPIN_OPT_AUTOSAVE] =
|
|
GTK_SPIN_BUTTON(lookup_widget(window.options, "spinbutton_autosave"));
|
|
spin_options[SPIN_OPT_AUTOSAVE] = opt_intp("int_opt_autosave_interval");
|
|
|
|
spin_widgets[SPIN_OPT_AUTOSAVE_FILES] =
|
|
GTK_SPIN_BUTTON(lookup_widget(window.options, "spinbutton_autosave_files"));
|
|
spin_options[SPIN_OPT_AUTOSAVE_FILES] = opt_intp("int_opt_autosave_files");
|
|
|
|
spin_widgets[SPIN_OPT_PRECISION] =
|
|
GTK_SPIN_BUTTON(lookup_widget(window.options, "spinbutton_precision"));
|
|
spin_options[SPIN_OPT_PRECISION] = opt_intp("int_opt_player_precision");
|
|
|
|
spin_widgets[SPIN_OPT_REFRESH] =
|
|
GTK_SPIN_BUTTON(lookup_widget(window.options, "spinbutton_refresh"));
|
|
spin_options[SPIN_OPT_REFRESH] = opt_intp("int_opt_live_game_player_list_refresh");
|
|
|
|
spin_widgets[SPIN_OPT_LIVE_SPEED] =
|
|
GTK_SPIN_BUTTON(lookup_widget(window.options, "spinbutton_live_speed"));
|
|
spin_options[SPIN_OPT_LIVE_SPEED] = opt_user_intp("int_opt_user_live_game_speed");
|
|
|
|
spin_widgets[SPIN_OPT_TRAINING_CAMP_RECREATION] =
|
|
GTK_SPIN_BUTTON(lookup_widget(window.options, "spinbutton_recreation"));
|
|
spin_options[SPIN_OPT_TRAINING_CAMP_RECREATION] = opt_user_intp("int_opt_user_training_camp_recreation");
|
|
|
|
/** Note the spinbutton value so that it doesn't get lost
|
|
when setting the range. */
|
|
tmp = gtk_spin_button_get_value_as_int(spin_widgets[SPIN_OPT_LIVE_SPEED]);
|
|
gtk_spin_button_set_range(
|
|
spin_widgets[SPIN_OPT_LIVE_SPEED], 0,
|
|
-rint((gfloat)(const_int("int_game_gui_live_game_speed_max") - 10) /
|
|
(gfloat)(const_int("int_game_gui_live_game_speed_grad"))));
|
|
gtk_spin_button_set_value(spin_widgets[SPIN_OPT_LIVE_SPEED],
|
|
(gdouble)tmp);
|
|
|
|
spin_widgets[SPIN_OPT_LIVE_VERBOSITY] =
|
|
GTK_SPIN_BUTTON(lookup_widget(window.options, "spinbutton_live_verbosity"));
|
|
spin_options[SPIN_OPT_LIVE_VERBOSITY] = opt_user_intp("int_opt_user_live_game_verbosity");
|
|
|
|
spin_widgets[SPIN_OPT_CONTRACT] =
|
|
GTK_SPIN_BUTTON(lookup_widget(window.options, "spinbutton_contract"));
|
|
spin_options[SPIN_OPT_CONTRACT] = opt_user_intp("int_opt_user_contract_limit");
|
|
|
|
spin_widgets[SPIN_OPT_BET_WAGER] =
|
|
GTK_SPIN_BUTTON(lookup_widget(window.options, "spinbutton_bet_wager"));
|
|
spin_options[SPIN_OPT_BET_WAGER] = opt_user_intp("int_opt_user_bet_default_wager");
|
|
|
|
tmp = gtk_spin_button_get_value_as_int(spin_widgets[SPIN_OPT_BET_WAGER]);
|
|
gtk_spin_button_set_range(
|
|
spin_widgets[SPIN_OPT_BET_WAGER], 1,
|
|
(gdouble)const_int("int_bet_wager_max"));
|
|
gtk_spin_button_set_value(spin_widgets[SPIN_OPT_BET_WAGER],
|
|
(gdouble)tmp);
|
|
}
|
|
|
|
/** Text entries. */
|
|
enum EntryOptions
|
|
{
|
|
ENTRY_OPT_CONSTANTS = 0,
|
|
ENTRY_OPT_FONT_NAME,
|
|
ENTRY_OPT_END
|
|
};
|
|
|
|
/** Write the pointers to the options and the corresponding widgets. */
|
|
void
|
|
option_gui_write_entry_widgets(gchar ***entry_options, GtkEntry **entry_widgets)
|
|
{
|
|
#ifdef DEBUG
|
|
printf("option_gui_write_entry_widgets\n");
|
|
#endif
|
|
|
|
entry_widgets[ENTRY_OPT_CONSTANTS] =
|
|
GTK_ENTRY(lookup_widget(window.options, "entry_constants_file"));
|
|
entry_options[ENTRY_OPT_CONSTANTS] = opt_strp("string_opt_constants_file");
|
|
|
|
entry_widgets[ENTRY_OPT_FONT_NAME] =
|
|
GTK_ENTRY(lookup_widget(window.options, "entry_font_name"));
|
|
entry_options[ENTRY_OPT_FONT_NAME] = opt_strp("string_opt_font_name");
|
|
}
|
|
|
|
/** Write the widget states in the options window
|
|
according to the option values. */
|
|
void
|
|
option_gui_set_up_window(void)
|
|
{
|
|
#ifdef DEBUG
|
|
printf("option_gui_set_up_window\n");
|
|
#endif
|
|
|
|
gint i;
|
|
gchar buf[SMALL];
|
|
GtkToggleButton *bool_widgets[BOOL_OPT_END];
|
|
gint *bool_options[BOOL_OPT_END];
|
|
|
|
GtkSpinButton *spin_widgets[SPIN_OPT_END];
|
|
gint *spin_options[SPIN_OPT_END];
|
|
|
|
GtkEntry *entry_widgets[ENTRY_OPT_END];
|
|
gchar **entry_options[ENTRY_OPT_END];
|
|
|
|
GtkToggleButton *news_popup_buttons[3] =
|
|
{GTK_TOGGLE_BUTTON(lookup_widget(window.options, "radiobutton_news_popup_no")),
|
|
GTK_TOGGLE_BUTTON(lookup_widget(window.options, "radiobutton_news_popup_user")),
|
|
GTK_TOGGLE_BUTTON(lookup_widget(window.options, "radiobutton_news_popup_always"))};
|
|
|
|
treeview_show_language_combo();
|
|
treeview_show_training_hotels_combo();
|
|
|
|
option_gui_write_bool_widgets(bool_options, bool_widgets);
|
|
option_gui_write_spin_widgets(spin_options, spin_widgets);
|
|
option_gui_write_entry_widgets(entry_options, entry_widgets);
|
|
|
|
for(i=0;i<BOOL_OPT_END;i++)
|
|
gtk_toggle_button_set_active(bool_widgets[i], *(bool_options[i]));
|
|
|
|
for(i=0;i<SPIN_OPT_END;i++)
|
|
gtk_spin_button_set_value(spin_widgets[i], (gfloat)(*(spin_options[i])));
|
|
|
|
for(i=0;i<ENTRY_OPT_END;i++)
|
|
gtk_entry_set_text(entry_widgets[i], *(entry_options[i]));
|
|
|
|
sprintf(buf, "%d", CAMP_SCALE_MAX - gtk_spin_button_get_value_as_int(
|
|
GTK_SPIN_BUTTON(lookup_widget(window.options, "spinbutton_recreation"))));
|
|
gtk_label_set_text(GTK_LABEL(lookup_widget(window.options, "label_training")), buf);
|
|
|
|
gtk_toggle_button_set_active(news_popup_buttons[opt_int("int_opt_news_popup")], TRUE);
|
|
}
|
|
|
|
/** Read the widget states in the options window and set the
|
|
options accordingly. */
|
|
void
|
|
option_gui_write_options(void)
|
|
{
|
|
#ifdef DEBUG
|
|
printf("option_gui_write_options\n");
|
|
#endif
|
|
|
|
gint i;
|
|
gint language_index =
|
|
gtk_combo_box_get_active(GTK_COMBO_BOX(lookup_widget(window.options, "combobox_languages")));
|
|
gint training_camp_hotel =
|
|
gtk_combo_box_get_active(GTK_COMBO_BOX(lookup_widget(window.options, "combobox_hotel"))) + 1;
|
|
GtkToggleButton *bool_widgets[BOOL_OPT_END];
|
|
gint *bool_options[BOOL_OPT_END];
|
|
GtkSpinButton *spin_widgets[SPIN_OPT_END];
|
|
gint *spin_options[SPIN_OPT_END];
|
|
GtkEntry *entry_widgets[ENTRY_OPT_END];
|
|
gchar **entry_options[ENTRY_OPT_END];
|
|
GtkToggleButton *news_popup_buttons[3] =
|
|
{GTK_TOGGLE_BUTTON(lookup_widget(window.options, "radiobutton_news_popup_no")),
|
|
GTK_TOGGLE_BUTTON(lookup_widget(window.options, "radiobutton_news_popup_user")),
|
|
GTK_TOGGLE_BUTTON(lookup_widget(window.options, "radiobutton_news_popup_always"))};
|
|
|
|
language_set(language_index);
|
|
opt_user_set_int("int_opt_user_training_camp_hotel", training_camp_hotel);
|
|
|
|
option_gui_write_bool_widgets(bool_options, bool_widgets);
|
|
option_gui_write_spin_widgets(spin_options, spin_widgets);
|
|
option_gui_write_entry_widgets(entry_options, entry_widgets);
|
|
|
|
for(i=0;i<BOOL_OPT_END;i++)
|
|
*(bool_options[i]) = gtk_toggle_button_get_active(bool_widgets[i]);
|
|
|
|
for(i=0;i<SPIN_OPT_END;i++)
|
|
*(spin_options[i]) = gtk_spin_button_get_value_as_int(spin_widgets[i]);
|
|
|
|
for(i=0;i<ENTRY_OPT_END;i++)
|
|
{
|
|
misc_string_assign(entry_options[i], gtk_entry_get_text(entry_widgets[i]));
|
|
|
|
if(i == ENTRY_OPT_CONSTANTS &&
|
|
strcmp(gtk_entry_get_text(entry_widgets[i]), opt_str("string_opt_constants_file")) != 0)
|
|
file_load_opt_file(gtk_entry_get_text(entry_widgets[i]), &constants);
|
|
else if(i == ENTRY_OPT_FONT_NAME &&
|
|
strcmp(gtk_entry_get_text(entry_widgets[i]), opt_str("string_opt_font_name")) != 0)
|
|
on_button_back_to_main_clicked(NULL, NULL);
|
|
}
|
|
|
|
for(i = 0; i < 3; i++)
|
|
if(gtk_toggle_button_get_active(news_popup_buttons[i]))
|
|
{
|
|
opt_set_int("int_opt_news_popup", i);
|
|
break;
|
|
}
|
|
|
|
game_gui_write_check_items();
|
|
}
|