コード例 #1
0
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;
}
コード例 #2
0
ファイル: address_book.c プロジェクト: anders5870/c-exercises
int main(){
  struct Address_book *address_book = create_address_book();
  print_address_book(address_book);
  destroy_address_book(address_book);
  return 0;
}