#include #include #define FUNC_COUNT 4 GtkBuilder *builder=NULL; GtkToggleButton *buttons[FUNC_COUNT]={NULL}; // Applicative actions void switch_to_func(gint func_id) { printf("switch_to_func(%i)\n", func_id); } // GUI events void on_win_main_destroy(GtkObject *object, gpointer user_data) { gtk_main_quit(); } void on_mi_about_activate(GtkObject *object, gpointer user_data) { GtkDialog *dialog; g_return_if_fail(builder!=NULL); dialog = GTK_DIALOG(gtk_builder_get_object(builder, "win_about")); g_return_if_fail(dialog!=NULL); g_signal_connect_swapped (dialog, "response", G_CALLBACK(gtk_widget_destroy), dialog); gtk_widget_show_all(GTK_WIDGET(dialog)); } void on_action1_activate(GtkObject *object, gpointer user_data) { switch_to_func(0); } void on_action2_activate(GtkObject *object, gpointer user_data) { switch_to_func(1); } void on_action3_activate(GtkObject *object, gpointer user_data) { switch_to_func(2); } void on_action4_activate(GtkObject *object, gpointer user_data) { switch_to_func(3); } void on_radbut_func_realize(GtkObject *object, gpointer user_data) { // This makes the radio buttons look like a Toogle Button (that's a fucking trick) gtk_toggle_button_set_mode(GTK_TOGGLE_BUTTON(object),FALSE); } int main (int argc, char *argv[]) { GtkWidget *window; // int res; gtk_init(&argc, &argv); builder = gtk_builder_new(); gtk_builder_add_from_file(builder, "gui.glade", NULL); window = GTK_WIDGET(gtk_builder_get_object(builder, "win_main")); gtk_builder_connect_signals(builder, NULL); gtk_widget_show(window); gtk_main(); g_object_unref(G_OBJECT(builder)); return 0; }