diff finch/libgnt/gnttextview.c @ 16124:ab3f93232a2d

Add a utility function to assist scrolling in a textview.
author Sadrul Habib Chowdhury <imadil@gmail.com>
date Sun, 15 Apr 2007 05:42:14 +0000
parents 1f24fd9a6237
children 8410511f4dbb
line wrap: on
line diff
--- a/finch/libgnt/gnttextview.c	Sun Apr 15 05:28:29 2007 +0000
+++ b/finch/libgnt/gnttextview.c	Sun Apr 15 05:42:14 2007 +0000
@@ -739,3 +739,25 @@
 	return count;
 }
 
+static gboolean
+scroll_tv(GntWidget *wid, const char *key, GntTextView *tv)
+{
+	if (strcmp(key, GNT_KEY_PGUP) == 0) {
+		gnt_text_view_scroll(tv, -(GNT_WIDGET(tv)->priv.height - 2));
+	} else if (strcmp(key, GNT_KEY_PGDOWN) == 0) {
+		gnt_text_view_scroll(tv, GNT_WIDGET(tv)->priv.height - 2);
+	} else if (strcmp(key, GNT_KEY_DOWN) == 0) {
+		gnt_text_view_scroll(tv, 1);
+	} else if (strcmp(key, GNT_KEY_UP) == 0) {
+		gnt_text_view_scroll(tv, -1);
+	} else {
+		return FALSE;
+	}
+	return TRUE;
+}
+
+void gnt_text_view_attach_scroll_widget(GntTextView *view, GntWidget *widget)
+{
+	g_signal_connect(G_OBJECT(widget), "key_pressed", G_CALLBACK(scroll_tv), view);
+}
+