summaryrefslogtreecommitdiff
path: root/KPLUnixStarter.c
blob: 7f0dd4d5a694a93b076606e0527f3fb7f0f3ebe8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
#include <gtk/gtk.h>

#include "KPL_Start.h"

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();
}

/* Function to open a dialog box displaying the message provided. */
static void quick_message (gchar *message) {
   GtkWidget *dialog, *label, *content_area;
   /* Create the widgets */
   dialog = gtk_dialog_new_with_buttons ("Message",
                                         GTK_WINDOW(mainWindow),
                                         GTK_DIALOG_DESTROY_WITH_PARENT,
                                         GTK_STOCK_OK,
                                         GTK_RESPONSE_NONE,
                                         NULL);
   content_area = gtk_dialog_get_content_area (GTK_DIALOG (dialog));
   label = gtk_label_new (message);
   /* Ensure that the dialog box is destroyed when the user responds. */
   g_signal_connect_swapped (dialog,
                             "response",
                             G_CALLBACK (gtk_widget_destroy),
                             dialog);
   /* Add the label, and show everything we've added to the dialog. */
   gtk_container_add (GTK_CONTAINER (content_area), label);
   gtk_widget_show_all (dialog);
}

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");
    }
}

int main(int argc, char* argv[]) {
    gtk_init(&argc, &argv);

    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);
    return 0;
}