1
1
mirror of https://github.com/tstellar/bygfoot.git synced 2025-02-19 13:00:42 +01:00
bygfoot/src/callbacks.c

655 lines
14 KiB
C
Raw Normal View History

2004-12-23 12:58:39 +00:00
#include "callbacks.h"
#include "callback_func.h"
#include "game_gui.h"
2005-01-09 20:21:22 +00:00
#include "main.h"
2005-03-24 18:04:31 +00:00
#include "option.h"
2005-03-11 17:18:51 +00:00
#include "team.h"
2005-03-19 20:04:08 +00:00
#include "transfer.h"
2005-01-09 20:21:22 +00:00
#include "treeview.h"
2005-03-09 13:10:28 +00:00
#include "user.h"
2005-03-21 10:16:37 +00:00
#include "window.h"
2005-03-09 13:10:28 +00:00
2004-12-23 12:58:39 +00:00
gboolean
on_button_quit_clicked (GtkWidget *widget,
GdkEvent *event,
gpointer user_data)
{
2005-03-14 17:47:27 +00:00
on_menu_quit_activate(NULL, NULL);
2004-12-23 12:58:39 +00:00
2005-01-09 20:21:22 +00:00
return FALSE;
2004-12-23 12:58:39 +00:00
}
void
on_menu_new_activate (GtkMenuItem *menuitem,
gpointer user_data)
{
}
void
on_menu_open_activate (GtkMenuItem *menuitem,
gpointer user_data)
{
}
void
on_menu_save_activate (GtkMenuItem *menuitem,
gpointer user_data)
{
}
void
on_menu_save_as_activate (GtkMenuItem *menuitem,
gpointer user_data)
{
}
void
on_menu_quit_activate (GtkMenuItem *menuitem,
gpointer user_data)
{
2005-03-14 17:47:27 +00:00
main_exit_program(EXIT_OK, NULL);
2004-12-23 12:58:39 +00:00
}
void
on_menu_about_activate (GtkMenuItem *menuitem,
gpointer user_data)
{
}
void
on_button_load_clicked (GtkButton *button,
gpointer user_data)
{
}
void
on_button_save_clicked (GtkButton *button,
gpointer user_data)
{
}
void
2005-01-09 20:21:22 +00:00
on_button_back_to_main_clicked (GtkButton *button,
2004-12-23 12:58:39 +00:00
gpointer user_data)
{
2005-03-21 12:39:05 +00:00
stat0 = STATUS_MAIN;
game_gui_show_main();
2004-12-23 12:58:39 +00:00
}
void
2005-01-09 20:21:22 +00:00
on_button_transfers_clicked (GtkButton *button,
2004-12-23 12:58:39 +00:00
gpointer user_data)
{
2005-03-19 20:04:08 +00:00
stat0 = STATUS_SHOW_TRANSFER_LIST;
game_gui_print_message(_("Left click to make an offer. Right click to remove offer."));
treeview_show_transfer_list(GTK_TREE_VIEW(lookup_widget(window.main, "treeview_right")));
2004-12-23 12:58:39 +00:00
}
void
2005-01-09 20:21:22 +00:00
on_button_preview_clicked (GtkButton *button,
2004-12-23 12:58:39 +00:00
gpointer user_data)
{
}
void
2005-01-09 20:21:22 +00:00
on_button_new_week_clicked (GtkButton *button,
2004-12-23 12:58:39 +00:00
gpointer user_data)
{
callback_show_next_live_game();
2004-12-23 12:58:39 +00:00
}
void
2005-01-09 20:21:22 +00:00
on_button_help_clicked (GtkButton *button,
2004-12-23 12:58:39 +00:00
gpointer user_data)
{
}
2005-01-09 20:21:22 +00:00
gboolean
on_player_list1_button_press_event (GtkWidget *widget,
2005-01-09 20:21:22 +00:00
GdkEventButton *event,
gpointer user_data)
{
gint idx = -1;
2005-01-09 20:21:22 +00:00
treeview_select_row(GTK_TREE_VIEW(widget), event);
idx = treeview_get_index(GTK_TREE_VIEW(widget), 0);
2005-03-13 15:46:15 +00:00
if(idx < 0 || idx - 1 == selected_row[0])
{
selected_row[0] = -1;
return FALSE;
}
callback_player_clicked(idx - 1, event);
return FALSE;
2005-01-09 20:21:22 +00:00
}
2004-12-23 12:58:39 +00:00
void
2005-01-09 20:21:22 +00:00
on_button_browse_forward_clicked (GtkButton *button,
2004-12-23 12:58:39 +00:00
gpointer user_data)
{
2005-03-14 17:47:27 +00:00
switch(stat0)
{
case STATUS_SHOW_FIXTURES:
callback_show_fixtures(SHOW_NEXT);
2005-03-14 17:47:27 +00:00
break;
2005-03-25 20:18:35 +00:00
case STATUS_BROWSE_TEAMS:
callback_show_team(SHOW_NEXT);
break;
2005-03-14 17:47:27 +00:00
}
2004-12-23 12:58:39 +00:00
}
void
2005-01-09 20:21:22 +00:00
on_button_browse_back_clicked (GtkButton *button,
gpointer user_data)
{
2005-03-14 17:47:27 +00:00
switch(stat0)
{
case STATUS_SHOW_FIXTURES:
callback_show_fixtures(SHOW_PREVIOUS);
2005-03-14 17:47:27 +00:00
break;
2005-03-25 20:18:35 +00:00
case STATUS_BROWSE_TEAMS:
callback_show_team(SHOW_PREVIOUS);
2005-03-14 17:47:27 +00:00
}
2005-01-09 20:21:22 +00:00
}
2004-12-23 12:58:39 +00:00
void
2005-03-14 17:47:27 +00:00
on_button_cl_back_clicked (GtkButton *button,
2004-12-23 12:58:39 +00:00
gpointer user_data)
{
2005-03-14 17:47:27 +00:00
switch(stat0)
{
case STATUS_SHOW_FIXTURES:
callback_show_fixtures(SHOW_PREVIOUS_LEAGUE);
break;
case STATUS_SHOW_TABLES:
callback_show_tables(SHOW_PREVIOUS_LEAGUE);
2005-03-14 17:47:27 +00:00
break;
2005-03-25 20:18:35 +00:00
case STATUS_BROWSE_TEAMS:
callback_show_team(SHOW_PREVIOUS_LEAGUE);
break;
2005-03-14 17:47:27 +00:00
}
2004-12-23 12:58:39 +00:00
}
void
2005-03-14 17:47:27 +00:00
on_button_cl_forward_clicked (GtkButton *button,
2004-12-23 12:58:39 +00:00
gpointer user_data)
{
2005-03-14 17:47:27 +00:00
switch(stat0)
{
case STATUS_SHOW_FIXTURES:
callback_show_fixtures(SHOW_NEXT_LEAGUE);
break;
case STATUS_SHOW_TABLES:
callback_show_tables(SHOW_NEXT_LEAGUE);
2005-03-14 17:47:27 +00:00
break;
2005-03-25 20:18:35 +00:00
case STATUS_BROWSE_TEAMS:
callback_show_team(SHOW_NEXT_LEAGUE);
break;
2005-03-14 17:47:27 +00:00
}
2004-12-23 12:58:39 +00:00
}
2005-03-14 17:47:27 +00:00
2005-01-09 20:21:22 +00:00
void
on_menu_preferences_activate (GtkMenuItem *menuitem,
gpointer user_data)
{
2005-03-23 19:03:26 +00:00
window_show_options();
2005-01-09 20:21:22 +00:00
}
2004-12-23 12:58:39 +00:00
void
2005-01-09 20:21:22 +00:00
on_menu_fixtures_activate (GtkMenuItem *menuitem,
2004-12-23 12:58:39 +00:00
gpointer user_data)
{
2005-03-14 17:47:27 +00:00
stat0 = STATUS_SHOW_FIXTURES;
callback_show_fixtures(SHOW_TEAM);
2004-12-23 12:58:39 +00:00
}
void
on_menu_tables_activate (GtkMenuItem *menuitem,
2004-12-23 12:58:39 +00:00
gpointer user_data)
{
stat0 = STATUS_SHOW_TABLES;
callback_show_tables(SHOW_CURRENT);
2004-12-23 12:58:39 +00:00
}
void
2005-03-25 20:18:35 +00:00
on_players_activate (GtkMenuItem *menuitem,
gpointer user_data)
2004-12-23 12:58:39 +00:00
{
}
2005-01-09 20:21:22 +00:00
void
on_menu_season_history_activate (GtkMenuItem *menuitem,
2004-12-23 12:58:39 +00:00
gpointer user_data)
{
}
void
on_menu_show_info_activate (GtkMenuItem *menuitem,
2004-12-23 12:58:39 +00:00
gpointer user_data)
{
}
void
on_menu_put_on_transfer_list_activate (GtkMenuItem *menuitem,
2004-12-23 12:58:39 +00:00
gpointer user_data)
{
}
void
on_menu_remove_from_transfer_list_activate (GtkMenuItem *menuitem,
gpointer user_data)
2004-12-23 12:58:39 +00:00
{
}
void
on_menu_fire_activate (GtkMenuItem *menuitem,
2004-12-23 12:58:39 +00:00
gpointer user_data)
{
}
void
on_menu_shoots_penalties_activate (GtkMenuItem *menuitem,
2004-12-23 12:58:39 +00:00
gpointer user_data)
{
}
void
on_menu_all_out_defend_activate (GtkMenuItem *menuitem,
2004-12-23 12:58:39 +00:00
gpointer user_data)
{
}
void
on_menu_defend_activate (GtkMenuItem *menuitem,
2004-12-23 12:58:39 +00:00
gpointer user_data)
{
}
void
on_menu_balanced_activate (GtkMenuItem *menuitem,
2005-01-09 20:21:22 +00:00
gpointer user_data)
{
}
void
on_menu_attack_activate (GtkMenuItem *menuitem,
2005-01-09 20:21:22 +00:00
gpointer user_data)
{
}
void
on_menu_all_out_attack_activate (GtkMenuItem *menuitem,
2005-01-09 20:21:22 +00:00
gpointer user_data)
{
}
void
on_menu_scout_best_activate (GtkMenuItem *menuitem,
2005-01-09 20:21:22 +00:00
gpointer user_data)
{
}
void
on_menu_scout_good_activate (GtkMenuItem *menuitem,
2005-01-09 20:21:22 +00:00
gpointer user_data)
{
}
void
on_menu_scout_average_activate (GtkMenuItem *menuitem,
2005-01-09 20:21:22 +00:00
gpointer user_data)
{
}
void
on_menu_scout_bad_activate (GtkMenuItem *menuitem,
2005-01-09 20:21:22 +00:00
gpointer user_data)
{
}
void
on_menu_physio_best_activate (GtkMenuItem *menuitem,
2005-01-09 20:21:22 +00:00
gpointer user_data)
{
}
void
on_menu_physio_good_activate (GtkMenuItem *menuitem,
2005-01-09 20:21:22 +00:00
gpointer user_data)
{
}
void
on_menu_physio_average_activate (GtkMenuItem *menuitem,
2005-01-09 20:21:22 +00:00
gpointer user_data)
{
}
void
on_menu_physio_bad_activate (GtkMenuItem *menuitem,
2005-01-09 20:21:22 +00:00
gpointer user_data)
{
}
void
on_menu_my_league_results_activate (GtkMenuItem *menuitem,
2005-01-09 20:21:22 +00:00
gpointer user_data)
{
2005-03-24 20:22:44 +00:00
stat0 = STATUS_SHOW_LEAGUE_RESULTS;
treeview_show_league_results(GTK_TREE_VIEW(lookup_widget(window.main, "treeview_right")));
2005-01-09 20:21:22 +00:00
}
void
on_menu_browse_teams_activate (GtkMenuItem *menuitem,
2005-01-09 20:21:22 +00:00
gpointer user_data)
{
GtkWidget *treeview_right =
lookup_widget(window.main, "treeview_right");
2005-01-09 20:21:22 +00:00
treeview_show_team_list(GTK_TREE_VIEW(treeview_right), TRUE, TRUE);
2005-01-09 20:21:22 +00:00
2005-03-25 20:18:35 +00:00
stat0 = STATUS_SHOW_TEAM_LIST;
2005-01-09 20:21:22 +00:00
}
gboolean
on_treeview_right_button_press_event (GtkWidget *widget,
GdkEventButton *event,
2005-01-09 20:21:22 +00:00
gpointer user_data)
{
2005-03-19 20:04:08 +00:00
gint idx;
treeview_select_row(GTK_TREE_VIEW(widget), event);
idx = treeview_get_index(GTK_TREE_VIEW(widget), 0);
2005-03-17 20:26:01 +00:00
switch(stat0)
{
case STATUS_SHOW_FINANCES:
if(event->button == 1)
callback_get_loan();
else if(event->button == 3)
callback_pay_loan();
break;
2005-03-19 20:04:08 +00:00
case STATUS_SHOW_TRANSFER_LIST:
2005-03-20 20:49:55 +00:00
if(event->button == 1 || trans(idx - 1).tm == current_user.tm)
2005-03-19 20:04:08 +00:00
callback_transfer_list_clicked(idx - 1);
else if(event->button == 3)
{
if(transfer_remove_offer(idx - 1, current_user.tm))
game_gui_print_message(_("Your offer has been removed."));
else
game_gui_print_message(_("You haven't made an offer for the player."));
2005-03-20 20:49:55 +00:00
return TRUE;
2005-03-19 20:04:08 +00:00
}
break;
2005-03-25 20:18:35 +00:00
case STATUS_SHOW_TEAM_LIST:
callback_show_team(SHOW_CURRENT);
break;
2005-03-17 20:26:01 +00:00
}
2005-01-09 20:21:22 +00:00
2005-03-17 20:26:01 +00:00
return FALSE;
2005-01-09 20:21:22 +00:00
}
void
on_menu_next_user_activate (GtkMenuItem *menuitem,
2005-01-09 20:21:22 +00:00
gpointer user_data)
{
2005-03-18 22:03:23 +00:00
cur_user = (cur_user + 1) % users->len;
user_event_show_next();
2005-01-09 20:21:22 +00:00
game_gui_show_main();
2005-01-09 20:21:22 +00:00
}
void
on_menu_previous_user_activate (GtkMenuItem *menuitem,
2005-01-09 20:21:22 +00:00
gpointer user_data)
{
2005-03-18 22:03:23 +00:00
cur_user = (cur_user == 0) ? users->len - 1 : cur_user - 1;
user_event_show_next();
2005-01-09 20:21:22 +00:00
game_gui_show_main();
2005-01-09 20:21:22 +00:00
}
void
on_menu_show_user_list_activate (GtkMenuItem *menuitem,
2005-01-09 20:21:22 +00:00
gpointer user_data)
{
}
void
on_menu_custom_structure_activate (GtkMenuItem *menuitem,
2005-01-09 20:21:22 +00:00
gpointer user_data)
{
2005-03-24 18:04:31 +00:00
stat0 = STATUS_CUSTOM_STRUCTURE;
window_show_digits(_("Enter a structure. The digits must sum up to 10."),
NULL, -1, _("Structure"), current_user.tm->structure);
2005-01-09 20:21:22 +00:00
}
gboolean
on_menu_team_button_press_event (GtkWidget *widget,
2005-01-09 20:21:22 +00:00
GdkEventButton *event,
gpointer user_data)
{
game_gui_read_radio_items(widget);
2005-01-09 20:21:22 +00:00
return FALSE;
2004-12-23 12:58:39 +00:00
}
void
on_menu_manage_users_activate (GtkMenuItem *menuitem,
2004-12-23 12:58:39 +00:00
gpointer user_data)
{
}
2005-03-11 17:18:51 +00:00
void
on_menu_user_show_last_match_activate (GtkMenuItem *menuitem,
gpointer user_data)
{
stat0 = STATUS_SHOW_LAST_MATCH;
callback_show_last_match();
}
void
on_menu_user_show_last_stats_activate (GtkMenuItem *menuitem,
gpointer user_data)
{
stat0 = STATUS_SHOW_LAST_MATCH_STATS;
treeview_show_game_stats(GTK_TREE_VIEW(lookup_widget(window.main, "treeview_right")),
2005-03-18 22:03:23 +00:00
&current_user.live_game);
2005-03-11 17:18:51 +00:00
}
gboolean
on_eventbox_style_button_press_event (GtkWidget *widget,
GdkEventButton *event,
gpointer user_data)
{
gint new_style = -1;
if(event->type != GDK_BUTTON_PRESS)
return FALSE;
2005-03-13 15:46:15 +00:00
if(event->button == 3)
2005-03-18 22:03:23 +00:00
new_style = (current_user.tm->style != 2) ?
current_user.tm->style + 1 : -2;
2005-03-13 15:46:15 +00:00
else if(event->button == 1)
2005-03-18 22:03:23 +00:00
new_style = (current_user.tm->style != -2) ?
current_user.tm->style - 1 : 2;
2005-03-11 17:18:51 +00:00
else
return FALSE;
2005-03-18 22:03:23 +00:00
team_change_attribute_with_message(current_user.tm, TEAM_ATTRIBUTE_STYLE, new_style);
2005-03-11 17:18:51 +00:00
game_gui_write_meters();
game_gui_write_radio_items();
2005-03-25 20:18:35 +00:00
treeview_show_next_opponent();
2005-03-11 17:18:51 +00:00
return FALSE;
}
gboolean
on_eventbox_boost_button_press_event (GtkWidget *widget,
GdkEventButton *event,
gpointer user_data)
{
gint new_boost = -1;
if(event->type != GDK_BUTTON_PRESS)
return FALSE;
2005-03-13 15:46:15 +00:00
if(event->button == 3)
2005-03-18 22:03:23 +00:00
new_boost = (current_user.tm->boost != 1) ?
current_user.tm->boost + 1 : -1;
2005-03-13 15:46:15 +00:00
else if(event->button == 1)
2005-03-18 22:03:23 +00:00
new_boost = (current_user.tm->boost != -1) ?
current_user.tm->boost - 1 : 1;
2005-03-11 17:18:51 +00:00
else
return FALSE;
2005-03-18 22:03:23 +00:00
team_change_attribute_with_message(current_user.tm, TEAM_ATTRIBUTE_BOOST, new_boost);
2005-03-11 17:18:51 +00:00
game_gui_write_meters();
game_gui_write_radio_items();
2005-03-25 20:18:35 +00:00
treeview_show_next_opponent();
2005-03-11 17:18:51 +00:00
2005-03-25 20:18:35 +00:00
return FALSE;
2005-03-11 17:18:51 +00:00
}
2005-03-16 20:48:25 +00:00
void
on_menu_show_finances_activate (GtkMenuItem *menuitem,
gpointer user_data)
{
2005-03-17 20:26:01 +00:00
stat0 = STATUS_SHOW_FINANCES;
game_gui_print_message("Left-click on the list to get a loan. Right-click to pay back.");
2005-03-16 20:48:25 +00:00
treeview_show_finances(GTK_TREE_VIEW(lookup_widget(window.main, "treeview_right")),
2005-03-18 22:03:23 +00:00
&current_user);
2005-03-16 20:48:25 +00:00
}
void
on_menu_show_stadium_activate (GtkMenuItem *menuitem,
gpointer user_data)
{
2005-03-17 20:26:01 +00:00
window_show_stadium();
2005-03-16 20:48:25 +00:00
}
2005-03-24 13:00:01 +00:00
gboolean
on_menu_check_button_press_event (GtkWidget *widget,
GdkEventButton *event,
gpointer user_data)
{
game_gui_read_check_items(widget);
return FALSE;
}
2005-03-24 18:04:31 +00:00
void
on_menu_live_game_activate (GtkMenuItem *menuitem,
gpointer user_data)
{
gchar buf[SMALL];
game_gui_read_check_items(GTK_WIDGET(menuitem));
sprintf(buf, "Live game set to %s.",
team_attribute_to_char(TEAM_ATTRIBUTE_BOOST,
opt_user_int("int_opt_user_show_live_game")));
game_gui_print_message(buf);
}
2005-03-25 10:54:54 +00:00
void
on_menu_offer_new_contract_activate (GtkMenuItem *menuitem,
gpointer user_data)
{
if(selected_row[0] == -1)
{
game_gui_print_message(_("You haven't selected a player."));
return;
}
callback_offer_new_contract(selected_row[0]);
}