/* ** the main function */ int main (int argc, char *argv[]) { GUI_* gui; gtk_init (&argc, &argv); gui = g_slice_new(GUI_); gui->gxml = glade_xml_new ("../gui/gui.glade", NULL, NULL); gui->window = glade_xml_get_widget (gui->gxml, "window"); gui->image = glade_xml_get_widget (gui->gxml, "image"); gui->textview = glade_xml_get_widget (gui->gxml, "textview"); glade_xml_signal_connect (gui->gxml, "on_window_destroy", G_CALLBACK (gtk_main_quit)); glade_xml_signal_connect_data (gui->gxml, "on_open_show", G_CALLBACK (on_open_show), gui); glade_xml_signal_connect_data (gui->gxml, "on_save_show", G_CALLBACK (on_save_show), gui); glade_xml_signal_connect_data (gui->gxml, "on_text_show", G_CALLBACK (preprocess), gui); glade_xml_signal_connect_data (gui->gxml, "on_block", G_CALLBACK (detect_blocks), gui); glade_xml_signal_connect (gui->gxml, "on_about_show", G_CALLBACK (on_about_show)); gtk_widget_show (gui->window); gtk_main (); return 0; }
static int setup_interface( void ) { GtkWidget *window, *treeview, *select_entry, *spawn_dialog, *spawn_label; GtkCellRenderer *renderer; gtk_window_set_default_icon_name( "gnome-dev-keyboard" ); wl = window_list_new(); xml = glade_xml_new( PREFIX "/share/keyboardcast/keyboardcast.glade", NULL, NULL ); if( xml == NULL ) return 1; select_entry = glade_xml_get_widget( xml, "select-entry" ); treeview = glade_xml_get_widget( xml, "treeview" ); window = glade_xml_get_widget( xml, "window" ); spawn_dialog = glade_xml_get_widget( xml, "spawn-dialog" ); spawn_label = glade_xml_get_widget( xml, "spawn-label" ); if( select_entry == NULL || treeview == NULL || window == NULL || spawn_dialog == NULL || spawn_label == NULL ) return 1; gtk_tree_view_set_model( GTK_TREE_VIEW( treeview ), GTK_TREE_MODEL( wl ) ); renderer = window_list_toggle_renderer( wl ); gtk_tree_view_insert_column_with_attributes( GTK_TREE_VIEW( treeview ), -1, "✓", renderer, // ☑☒✓✔ "active", 1, NULL ); renderer = gtk_cell_renderer_text_new(); gtk_tree_view_insert_column_with_attributes( GTK_TREE_VIEW( treeview ), -1, "Window Title", renderer, "text", 2, NULL ); glade_xml_signal_connect( xml, "key_event", G_CALLBACK( key_event ) ); glade_xml_signal_connect( xml, "gtk_exit", G_CALLBACK( gtk_exit ) ); glade_xml_signal_connect_data( xml, "expanded", G_CALLBACK( expanded ), window ); glade_xml_signal_connect_data( xml, "button_clicked", G_CALLBACK( button_clicked ), select_entry ); glade_xml_signal_connect_data( xml, "spawn_clicked", G_CALLBACK( spawn_clicked ), spawn_dialog ); glade_xml_signal_connect( xml, "terminal_toggled", G_CALLBACK( terminal_toggled ) ); glade_xml_signal_connect_data( xml, "update_label", G_CALLBACK( update_label ), spawn_label ); update_label( NULL, GTK_LABEL( spawn_label ) ); window_list_filter_by_process( wl, "gnome-terminal" ); gtk_widget_show_all( window ); return 0; }