diff options
Diffstat (limited to 'tests/test7/test7.c')
-rw-r--r-- | tests/test7/test7.c | 92 |
1 files changed, 67 insertions, 25 deletions
diff --git a/tests/test7/test7.c b/tests/test7/test7.c index 7a3ca63..158ead2 100644 --- a/tests/test7/test7.c +++ b/tests/test7/test7.c @@ -1,46 +1,88 @@ -/* - First run tutorial.glade through gtk-builder-convert with this command: - gtk-builder-convert tutorial.glade tutorial.xml - - Then save this file as main.c and compile it using this command - (those are backticks, not single quotes): - gcc -Wall -g -o tutorial main.c `pkg-config --cflags --libs gtk+-2.0` -export-dynamic - - Then execute it using: - ./tutorial - */ #include <gtk/gtk.h> #include <stdio.h> -void on_win_main_destroy (GtkObject *object, gpointer user_data) { +#define FUNC_COUNT 4 + +GtkBuilder *builder=NULL; +GtkToggleButton *buttons[FUNC_COUNT]={NULL}; + +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 switch_to_func(gint func_id) { + gint i; + // Toggle off all buttons but the active one + for (i=0;i<FUNC_COUNT;i++) { + if (i==func_id) continue; + gtk_toggle_button_set_active(buttons[i],FALSE); + printf("buttons[%i]==%p\n", i, buttons[i]); + } + +} + void on_action1_activate(GtkObject *object, gpointer user_data) { - printf("action1\n"); + 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_but_func1_realize(GtkObject *object, gpointer user_data) { + buttons[0]=GTK_TOGGLE_BUTTON(object); +} + +void on_but_func2_realize(GtkObject *object, gpointer user_data) { + buttons[1]=GTK_TOGGLE_BUTTON(object); +} + +void on_but_func3_realize(GtkObject *object, gpointer user_data) { + buttons[2]=GTK_TOGGLE_BUTTON(object); +} + +void on_but_func4_realize(GtkObject *object, gpointer user_data) { + buttons[3]=GTK_TOGGLE_BUTTON(object); } int main (int argc, char *argv[]) { - GtkBuilder *builder; - GtkWidget *window; + GtkWidget *window; // int res; - gtk_init (&argc, &argv); + gtk_init(&argc, &argv); - builder = gtk_builder_new (); - gtk_builder_add_from_file (builder, "win_main.glade", NULL); + builder = gtk_builder_new(); + gtk_builder_add_from_file(builder, "gui.glade", NULL); - window = GTK_WIDGET (gtk_builder_get_object (builder, "win_main")); - printf("window==%p\n", window); - gtk_builder_connect_signals (builder, NULL); - - g_object_unref (G_OBJECT (builder)); + window = GTK_WIDGET(gtk_builder_get_object(builder, "win_main")); + gtk_builder_connect_signals(builder, NULL); + gtk_widget_show(window); - gtk_widget_show (window); - gtk_main (); + gtk_main(); + g_object_unref(G_OBJECT(builder)); return 0; } |