From e9c0705d2ca8f9c718e0531953af96b58f58d8a3 Mon Sep 17 00:00:00 2001 From: Eric Anderson Date: Sat, 2 May 2009 11:17:18 -0500 Subject: Convert to GtkBuilder --- KPLUnixStarter.c | 89 ++++++++++++++++++++++++-------------------------------- 1 file changed, 38 insertions(+), 51 deletions(-) (limited to 'KPLUnixStarter.c') diff --git a/KPLUnixStarter.c b/KPLUnixStarter.c index f4c5928..7f0dd4d 100644 --- a/KPLUnixStarter.c +++ b/KPLUnixStarter.c @@ -4,6 +4,11 @@ static GtkWidget *mainWindow; +static GtkWidget *spectateButton, *easyButton, *mediumButton, *hardButton, + *veryHardButton; + +static int gameTypeSelected = 0; + static void on_destroy(GtkWidget *widget, gpointer data) { gtk_main_quit(); } @@ -30,8 +35,27 @@ static void quick_message (gchar *message) { gtk_widget_show_all (dialog); } -static void start_single_game(GtkButton *button, gpointer data) { - int ret = LaunchSpringExecutable(GPOINTER_TO_INT(data)); +void radio_toggled(GtkToggleButton *button, gpointer data) { + if (!gtk_toggle_button_get_active(button)) + return; + + GtkWidget *b = GTK_WIDGET(button); + if (b == spectateButton) + gameTypeSelected = 0; + else if (b == easyButton) + gameTypeSelected = 1; + else if (b == mediumButton) + gameTypeSelected = 2; + else if (b == hardButton) + gameTypeSelected = 3; + else if (b == veryHardButton) + gameTypeSelected = 4; + else + fprintf(stderr, "Error: unable to change radio_toggled - button unknown.\n"); +} + +void start_single_game(GtkButton *button, gpointer data) { + int ret = LaunchSpringExecutable(gameTypeSelected); if (ret != 0) { fprintf(stderr, "Error: %d\n", ret); quick_message("Error"); @@ -39,58 +63,21 @@ static void start_single_game(GtkButton *button, gpointer data) { } int main(int argc, char* argv[]) { - GtkWidget *container; - GtkWidget *button; - GtkWidget *image; - gtk_init(&argc, &argv); - mainWindow = gtk_window_new(GTK_WINDOW_TOPLEVEL); - gtk_window_set_title(GTK_WINDOW(mainWindow), "Kernel Panic Launcher"); - gtk_window_set_default_icon_from_file("icons/KPL.ico", NULL); - - g_signal_connect(G_OBJECT(mainWindow), "destroy", G_CALLBACK(on_destroy), - NULL); - - container = gtk_vbutton_box_new(); - gtk_container_add(GTK_CONTAINER(mainWindow), container); - - button = gtk_button_new_with_mnemonic("_Spectate"); - image = gtk_image_new_from_file("icons/32x32LightBlueFlow.ico"); - gtk_button_set_image(GTK_BUTTON(button), GTK_WIDGET(image)); - gtk_container_add(GTK_CONTAINER(container), GTK_WIDGET(button)); - g_signal_connect(G_OBJECT(button), "clicked", G_CALLBACK(start_single_game), - GINT_TO_POINTER(0)); - - button = gtk_button_new_with_mnemonic("_Easy"); - image = gtk_image_new_from_file("icons/32x32GreenBit.ico"); - gtk_button_set_image(GTK_BUTTON(button), GTK_WIDGET(image)); - gtk_container_add(GTK_CONTAINER(container), button); - g_signal_connect(G_OBJECT(button), "clicked", G_CALLBACK(start_single_game), - GINT_TO_POINTER(1)); - - button = gtk_button_new_with_mnemonic("_Medium"); - image = gtk_image_new_from_file("icons/32x32YellowPointer.ico"); - gtk_button_set_image(GTK_BUTTON(button), GTK_WIDGET(image)); - gtk_container_add(GTK_CONTAINER(container), button); - g_signal_connect(G_OBJECT(button), "clicked", G_CALLBACK(start_single_game), - GINT_TO_POINTER(2)); - - button = gtk_button_new_with_mnemonic("_Hard"); - image = gtk_image_new_from_file("icons/32x32OrangeByte.ico"); - gtk_button_set_image(GTK_BUTTON(button), GTK_WIDGET(image)); - gtk_container_add(GTK_CONTAINER(container), button); - g_signal_connect(G_OBJECT(button), "clicked", G_CALLBACK(start_single_game), - GINT_TO_POINTER(3)); - - button = gtk_button_new_with_mnemonic("_Very Hard"); - image = gtk_image_new_from_file("icons/32x32RedConnection.ico"); - gtk_button_set_image(GTK_BUTTON(button), GTK_WIDGET(image)); - gtk_container_add(GTK_CONTAINER(container), button); - g_signal_connect(G_OBJECT(button), "clicked", G_CALLBACK(start_single_game), - GINT_TO_POINTER(4)); - + GtkBuilder *builder; + builder = gtk_builder_new(); + gtk_builder_add_from_file(builder, "obj/gtk_kpl.ui", NULL); + gtk_builder_connect_signals(builder, NULL); + + mainWindow = GTK_WIDGET(gtk_builder_get_object(builder, "window1")); + spectateButton = GTK_WIDGET(gtk_builder_get_object(builder, "spectateButton")); + easyButton = GTK_WIDGET(gtk_builder_get_object(builder, "easyButton")); + mediumButton = GTK_WIDGET(gtk_builder_get_object(builder, "mediumButton")); + hardButton = GTK_WIDGET(gtk_builder_get_object(builder, "hardButton")); + veryHardButton = GTK_WIDGET(gtk_builder_get_object(builder, "veryHardButton")); gtk_widget_show_all(mainWindow); + gtk_main(); //return StartEasy(0); -- cgit v1.2.3-54-g00ecf