summaryrefslogtreecommitdiff
path: root/KPLUnixStarter.c
diff options
context:
space:
mode:
Diffstat (limited to 'KPLUnixStarter.c')
-rw-r--r--KPLUnixStarter.c89
1 files changed, 38 insertions, 51 deletions
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);