From 4bff733352f608744e86328deb443d68ce666f7d Mon Sep 17 00:00:00 2001 From: Jon Bergli Heier Date: Wed, 30 Dec 2009 04:30:25 +0100 Subject: Basic adding and assigning of tags implemented. Committing this before it gets out of hand. Only adding new tags is working atm. Created a text input dialog. Added a tag dialog. Other minor changes. --- text_input_dialog.c | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 text_input_dialog.c (limited to 'text_input_dialog.c') diff --git a/text_input_dialog.c b/text_input_dialog.c new file mode 100644 index 0000000..da18b24 --- /dev/null +++ b/text_input_dialog.c @@ -0,0 +1,35 @@ +#include "text_input_dialog.h" + +GtkDialog *text_input_dialog_new(GtkWidget *parent, const gchar *msg) { + GtkWidget *dialog; + GtkWidget *entry; + GtkWidget *vbox; + + dialog = gtk_message_dialog_new(GTK_WINDOW(parent), GTK_DIALOG_MODAL | GTK_DIALOG_DESTROY_WITH_PARENT, + GTK_MESSAGE_QUESTION, GTK_BUTTONS_OK_CANCEL, msg); + entry = gtk_entry_new(); + + vbox = gtk_dialog_get_content_area(GTK_DIALOG(dialog)); + gtk_box_pack_end(GTK_BOX(vbox), entry, FALSE, FALSE, 0); + + gtk_widget_show(entry); + + return GTK_DIALOG(dialog); +} + +gchar *text_input_dialog_get_text(GtkWidget *dialog) { + GtkWidget *vbox; + GtkWidget *entry; + GList *list; + GtkEntryBuffer *buf; + + vbox = gtk_dialog_get_content_area(GTK_DIALOG(dialog)); + list = gtk_container_get_children(GTK_CONTAINER(vbox)); + entry = NULL; + for(int i = 0; i < g_list_length(list); i++) + if(GTK_IS_ENTRY(g_list_nth_data(list, i))) + entry = GTK_WIDGET(g_list_nth_data(list, i)); + g_assert(entry != NULL); + buf = gtk_entry_get_buffer(GTK_ENTRY(entry)); + return g_strdup(gtk_entry_buffer_get_text(buf)); +} -- cgit v1.2.3