Mercurial > pidgin
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; +} +