#include #include "KPL_Start.h" static GtkWidget *mainWindow; 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); } static void start_single_game(GtkButton *button, gpointer data) { int ret = LaunchSpringExecutable(GPOINTER_TO_INT(data)); if (ret != 0) { fprintf(stderr, "Error: %d\n", ret); quick_message("Error"); } } 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)); gtk_widget_show_all(mainWindow); gtk_main(); //return StartEasy(0); return 0; }