Exemplo n.º 1
0
int main(int argc, char *argv[]) {
	gtk_init(&argc, &argv);

	gchar *dirname = g_path_get_dirname(argv[0]);
	gchar *dataFilename = g_build_filename(dirname, "phonebook.dat", NULL);
	base_t *ctx = base_new(dataFilename);
	g_free(dirname);
	g_free(dataFilename);


	GtkWidget *window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
	gtk_window_set_title(GTK_WINDOW(window), "PSP1Beleg");
	gtk_window_set_default_size(GTK_WINDOW(window), 640, 480);
	gtk_window_set_position(GTK_WINDOW(window), GTK_WIN_POS_CENTER);
	g_signal_connect_swapped(G_OBJECT(window), "destroy", G_CALLBACK(gtk_main_quit), NULL);


	gbase_list_singleton = gbase_list_new(ctx);
	tree_view_singleton = gtk_tree_view_new_with_model(GTK_TREE_MODEL(gbase_list_singleton));
	g_object_unref(gbase_list_singleton);

	//fill_model(gbase_list_singleton);

	gtk_tree_view_set_search_column(GTK_TREE_VIEW(tree_view_singleton), GBASE_LIST_COL_NUMBER);
	g_signal_connect(G_OBJECT(tree_view_singleton), "key-press-event", G_CALLBACK(on_key_press), NULL);

	append_column(GBASE_LIST_COL_NUMBER,   "Phone Number");
	append_column(GBASE_LIST_COL_NAME,     "Surname");
	append_column(GBASE_LIST_COL_FORENAME, "Forename");


	GtkWidget *scrolled_window = gtk_scrolled_window_new(NULL, NULL);
	gtk_container_add(GTK_CONTAINER(scrolled_window), tree_view_singleton);
	gtk_container_add(GTK_CONTAINER(window), scrolled_window);


	gtk_widget_show_all(window);
	gtk_main();


	bool ok = base_save(ctx);
	base_delete(ctx);

	return ok ? 0 : 1;
}
Exemplo n.º 2
0
void derived_delete (struct derived *obj)
{
	base_delete (obj->base);
	derived_destructor (obj);
	free (obj);
}