diff options
author | Dave Beckett <dave@dajobe.org> | 2003-04-13 23:08:51 +0000 |
---|---|---|
committer | Dave Beckett <dave@dajobe.org> | 2003-04-13 23:08:51 +0000 |
commit | e42eb65d8d84c60147364815bedb91e929ea3ee1 (patch) | |
tree | 3ab74ecd7eae338962baf13fb7c425a08916227f | |
parent | 90a4e72272da2a7439ce24b46e7aacc1a405a44b (diff) | |
download | raptor-e42eb65d8d84c60147364815bedb91e929ea3ee1.tar.gz |
Added about box, triples count.
Free some allocated memory. Rest seems lost in gtk.
-rw-r--r-- | examples/grapper.c | 58 |
1 files changed, 52 insertions, 6 deletions
diff --git a/examples/grapper.c b/examples/grapper.c index 95ac9933..4bb4292a 100644 --- a/examples/grapper.c +++ b/examples/grapper.c @@ -70,6 +70,8 @@ typedef struct GtkWidget *triples; GtkListStore *triples_store; GtkWidget *file_selection; + GtkWidget *status; + GtkWidget *triples_frame; } grapper_state; @@ -112,6 +114,19 @@ grapper_view_ntriples_changed(grapper_state *state) } static void +grapper_view_set_triples_count(grapper_state *state, int count) +{ +#define TC_BUF_LEN 18 + char buf[TC_BUF_LEN+1]; + if(count>0) + snprintf(buf, TC_BUF_LEN, "Triples: %d", count); + else + strcpy(buf, "Triples"); + + gtk_frame_set_label(GTK_FRAME(state->triples_frame), buf); +} + +static void grapper_view_add_triple(grapper_state *state, char* nodes[3], int i) { GtkListStore *store=state->triples_store; @@ -123,8 +138,6 @@ grapper_view_add_triple(grapper_state *state, char* nodes[3], int i) PREDICATE_COLUMN, nodes[1], OBJECT_COLUMN, nodes[2], -1); - - g_print("Added triple %d\n", i); } static void @@ -133,7 +146,6 @@ grapper_view_empty_triples(grapper_state *state) gtk_list_store_clear(state->triples_store); } - static void grapper_view_reset_status(grapper_state *state) { } @@ -158,6 +170,7 @@ grapper_model_add_triple(grapper_state *state, char *nodes[3]) state->triples_count++; grapper_view_add_triple(state, nodes, state->triples_count-1); + grapper_view_set_triples_count(state, state->triples_count); } @@ -303,7 +316,9 @@ void grapper_model_statements_handler(void *data, statement->object_literal_datatype, statement->object_literal_language); grapper_model_add_triple(state, nodes); - + free(nodes[0]); + free(nodes[1]); + free(nodes[2]); } @@ -468,12 +483,40 @@ quit_menu_callback(gpointer data, guint action, GtkWidget *widget) } +static void +about_menu_callback(gpointer data, guint action, GtkWidget *widget) +{ + grapper_state* state=(grapper_state*)data; + GtkWidget *about; + GtkWidget *label; + + about=gtk_dialog_new_with_buttons("About grapper", + GTK_WINDOW(state->window), + GTK_DIALOG_DESTROY_WITH_PARENT, + GTK_STOCK_OK, + GTK_RESPONSE_NONE, + NULL); + label = gtk_label_new ("Grapper (C) 2003 Dave Beckett"); + + /* Connect the dialog response to about_response_callback */ + g_signal_connect_swapped (G_OBJECT (about), "response", + G_CALLBACK(gtk_widget_destroy), GTK_OBJECT(about)); + + gtk_container_add (GTK_CONTAINER (GTK_DIALOG(about)->vbox), label); + + gtk_widget_show_all(about); +} + + static GtkItemFactoryEntry menu_item_factory_entries[] = { { "/_File", NULL, NULL, 0, "<Branch>" }, { "/File/tear1", NULL, NULL, 0, "<Tearoff>" }, { "/File/_Open...", "<CTRL>O", (GtkItemFactoryCallback)open_menu_callback, 1, "<StockItem>", GTK_STOCK_OPEN }, { "/File/sep1", NULL, NULL, 0, "<Separator>" }, - { "/File/_Quit", "<CTRL>Q", (GtkItemFactoryCallback)quit_menu_callback, 1, "<StockItem>", GTK_STOCK_QUIT } }; + { "/File/_Quit", "<CTRL>Q", (GtkItemFactoryCallback)quit_menu_callback, 1, "<StockItem>", GTK_STOCK_QUIT }, + { "/_Help", NULL, NULL, 0, "<LastBranch>" }, + { "/Help/About", NULL, (GtkItemFactoryCallback)about_menu_callback, 1, "<Item>" } +}; static gint menu_item_factory_nentries = sizeof(menu_item_factory_entries) / sizeof(menu_item_factory_entries[0]); @@ -579,7 +622,8 @@ init_grapper_window(GtkWidget *window, grapper_state *state) /* frame in vertical box */ triples_frame=gtk_frame_new("Triples"); - + state->triples_frame=triples_frame; + gtk_box_pack_start (GTK_BOX (v_box), triples_frame, TRUE, TRUE, 0); gtk_widget_show(triples_frame); @@ -733,6 +777,8 @@ main(int argc, char *argv[]) init_grapper_window(window, &state); + gtk_widget_set_size_request(window, 400, 300); + /* finally make it all visible */ gtk_widget_show (window); |