#include #include #include static void boolean_signal (AbiWidget * widget, gboolean value, gpointer user_data) { g_print ("Boolean signal '%s': %d\n", (char *)user_data, value); } static void string_signal (AbiWidget * widget, const char * value, gpointer user_data) { g_print ("String signal '%s': %s\n", (char *)user_data, value); } static void double_signal (AbiWidget * widget, double value, gpointer user_data) { g_print ("Double signal '%s': %f\n", (char *)user_data, value); } int main(int argc, char ** argv) { GtkWidget * window; GtkWidget * abi; gtk_init (&argc, &argv); window = gtk_window_new (GTK_WINDOW_TOPLEVEL); abi = abi_widget_new (); gtk_container_add (GTK_CONTAINER (window), abi); gtk_widget_show_all (window); g_signal_connect (G_OBJECT (abi), "bold", G_CALLBACK (boolean_signal), "bold"); g_signal_connect (G_OBJECT (abi), "italic", G_CALLBACK (boolean_signal), "italic"); g_signal_connect (G_OBJECT (abi), "underline", G_CALLBACK (boolean_signal), "underline"); g_signal_connect (G_OBJECT (abi), "can-undo", G_CALLBACK (boolean_signal), "can-undo"); g_signal_connect (G_OBJECT (abi), "can-redo", G_CALLBACK (boolean_signal), "can-redo"); g_signal_connect (G_OBJECT (abi), "font-size", G_CALLBACK (double_signal), "font-size"); g_signal_connect (G_OBJECT (abi), "font-family", G_CALLBACK (string_signal), "font-family"); g_signal_connect (G_OBJECT (window), "destroy", G_CALLBACK (gtk_main_quit), NULL); g_signal_connect (G_OBJECT (window), "delete_event", G_CALLBACK (gtk_main_quit), NULL); abi_widget_load_file (ABI_WIDGET (abi), argv[1]); gtk_main (); return 0; }