summaryrefslogtreecommitdiff
path: root/text_input_dialog.c
diff options
context:
space:
mode:
authorJon Bergli Heier <snakebite@jvnv.net>2009-12-30 04:30:25 +0100
committerJon Bergli Heier <snakebite@jvnv.net>2009-12-30 04:30:25 +0100
commit4bff733352f608744e86328deb443d68ce666f7d (patch)
treee4bd26c2152fb19fe696e25ffffdb5198a22a508 /text_input_dialog.c
parenta5a787eac52734a926d39e958d22b87a450d42aa (diff)
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.
Diffstat (limited to 'text_input_dialog.c')
-rw-r--r--text_input_dialog.c35
1 files changed, 35 insertions, 0 deletions
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));
+}