diff console/libgnt/test/tv.c @ 13883:ab6376814e73

[gaim-migrate @ 16363] Some examples so other people can try things out. I am planning on making the conversation-pane behave like test/tv .. comments? committer: Tailor Script <tailor@pidgin.im>
author Sadrul Habib Chowdhury <imadil@gmail.com>
date Wed, 28 Jun 2006 00:21:38 +0000
parents
children a621329e8c85
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/console/libgnt/test/tv.c	Wed Jun 28 00:21:38 2006 +0000
@@ -0,0 +1,71 @@
+#include "gntbutton.h"
+#include "gnt.h"
+#include "gntkeys.h"
+#include "gnttree.h"
+#include "gntbox.h"
+#include "gntentry.h"
+#include "gnttextview.h"
+
+static gboolean
+key_pressed(GntWidget *w, const char *key, GntWidget *view)
+{
+	if (key[0] == '\r' && key[1] == 0)
+	{
+		gnt_text_view_next_line(GNT_TEXT_VIEW(view));
+		gnt_text_view_append_text_with_flags(GNT_TEXT_VIEW(view),
+				gnt_entry_get_text(GNT_ENTRY(w)),
+				GNT_TEXT_FLAG_BOLD);
+		gnt_entry_clear(GNT_ENTRY(w));
+		gnt_text_view_scroll(GNT_TEXT_VIEW(view), 0);
+
+		return TRUE;
+	}
+	else if (key[0] == 27)
+	{
+		if (strcmp(key+1, GNT_KEY_UP))
+			gnt_text_view_scroll(GNT_TEXT_VIEW(view), 1);
+		else if (strcmp(key+1, GNT_KEY_DOWN))
+			gnt_text_view_scroll(GNT_TEXT_VIEW(view), -1);
+	}
+		
+	return FALSE;
+}
+
+int main()
+{
+	GntWidget *hbox, *entry, *view;
+
+	freopen(".error", "w", stderr);
+
+	gnt_init();
+
+	box(stdscr, 0, 0);
+	wrefresh(stdscr);
+
+	hbox = gnt_box_new(FALSE, TRUE);
+	gnt_widget_set_name(hbox, "hbox");
+	gnt_box_set_toplevel(GNT_BOX(hbox), TRUE);
+	gnt_box_set_title(GNT_BOX(hbox), "Textview test");
+
+	entry = gnt_entry_new(NULL);
+	gnt_widget_set_name(entry, "entry");
+	GNT_WIDGET_SET_FLAGS(entry, GNT_WIDGET_CAN_TAKE_FOCUS);
+
+	view = gnt_text_view_new();
+	gnt_widget_set_name(view, "view");
+
+	gnt_widget_set_size(view, getmaxx(stdscr) - 3, 15);
+	gnt_widget_set_size(entry, getmaxx(stdscr) - 3, 1);
+
+	gnt_box_add_widget(GNT_BOX(hbox), view);
+	gnt_box_add_widget(GNT_BOX(hbox), entry);
+
+	gnt_widget_show(hbox);
+
+	g_signal_connect(G_OBJECT(entry), "key_pressed", G_CALLBACK(key_pressed), view);
+
+	gnt_main();
+
+	return 0;
+}
+