GtkWidget *create_and_fill_address_book(){ GtkListStore *store; GtkCellRenderer *renderer; GtkTreeViewColumn *column; GtkTreeSelection *select; GtkWidget *address_list; GtkWidget *ret=create_address_book(); address_list=lookup_widget(ret,"address_list"); store = gtk_list_store_new (AB_NCOLUMNS, G_TYPE_STRING,G_TYPE_POINTER); gtk_tree_view_set_model(GTK_TREE_VIEW(address_list),GTK_TREE_MODEL(store)); g_object_unref(G_OBJECT(store)); renderer = gtk_cell_renderer_text_new (); column = gtk_tree_view_column_new_with_attributes (_("Contact list"), renderer, "text", SIP_ADDRESS_COLUMN, NULL); gtk_tree_view_append_column (GTK_TREE_VIEW (address_list), column); /* Setup the selection handler */ select = gtk_tree_view_get_selection (GTK_TREE_VIEW (address_list)); gtk_tree_selection_set_mode (select, GTK_SELECTION_SINGLE); g_signal_connect (G_OBJECT (select), "changed", G_CALLBACK (address_selection_changed_cb), NULL); /* setup handler for double click */ g_signal_connect(G_OBJECT(address_list),"button-press-event",G_CALLBACK(address_button_press),(gpointer)ret); fill_address_book(address_list); return ret; }
int main(){ struct Address_book *address_book = create_address_book(); print_address_book(address_book); destroy_address_book(address_book); return 0; }