projects
/
rodin
/
chimara.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Backend support for using dynamic styles. See also Ticket #49.
[rodin/chimara.git]
/
tests
/
barf.c
diff --git
a/tests/barf.c
b/tests/barf.c
index 36e51514c7c7e70d2f90c3a62c960ea141c5d941..a98b20877392ae8a00c1306027ca1e5aaf142b39 100644
(file)
--- a/
tests/barf.c
+++ b/
tests/barf.c
@@
-13,6
+13,10
@@
static gulong pager_handler = 0;
static gulong expose_handler = 0;
static gboolean currently_paging = FALSE;
static gulong expose_handler = 0;
static gboolean currently_paging = FALSE;
+static gint promptwidth, promptheight;
+static PangoLayout *prompt;
+static GdkColor red, white;
+
static gboolean
quit()
{
static gboolean
quit()
{
@@
-65,8
+69,8
@@
move_pager_and_get_scroll_distance(GtkTextView *textview)
gtk_text_view_get_iter_location(textview, &newpager, &pagerpos);
gtk_text_view_get_iter_location(textview, &end, &endpos);
gtk_text_view_get_iter_location(textview, &newpager, &pagerpos);
gtk_text_view_get_iter_location(textview, &end, &endpos);
- g_printerr("View height = %d\n", visiblerect.height);
- g_printerr("End - Pager = %d\n", endpos.y - pagerpos.y);
+
//
g_printerr("View height = %d\n", visiblerect.height);
+
//
g_printerr("End - Pager = %d\n", endpos.y - pagerpos.y);
return endpos.y - pagerpos.y;
}
return endpos.y - pagerpos.y;
}
@@
-144,31
+148,27
@@
pager_wait(GtkTextView *textview, GdkEventKey *event, GtkTextBuffer *buffer)
switch (event->keyval) {
case GDK_space: case GDK_KP_Space: case GDK_Page_Down: case GDK_KP_Page_Down:
gtk_adjustment_set_value(adj, CLAMP(value + page_size, lower, upper - page_size));
switch (event->keyval) {
case GDK_space: case GDK_KP_Space: case GDK_Page_Down: case GDK_KP_Page_Down:
gtk_adjustment_set_value(adj, CLAMP(value + page_size, lower, upper - page_size));
-
return TRUE
;
+
break
;
case GDK_Page_Up: case GDK_KP_Page_Up:
gtk_adjustment_set_value(adj, CLAMP(value - page_size, lower, upper - page_size));
case GDK_Page_Up: case GDK_KP_Page_Up:
gtk_adjustment_set_value(adj, CLAMP(value - page_size, lower, upper - page_size));
-
return TRUE
;
+
break
;
case GDK_Return: case GDK_KP_Enter:
gtk_adjustment_set_value(adj, CLAMP(value + step_increment, lower, upper - page_size));
case GDK_Return: case GDK_KP_Enter:
gtk_adjustment_set_value(adj, CLAMP(value + step_increment, lower, upper - page_size));
-
return TRUE
;
+
break
;
/* don't handle "up" and "down", they're used for input history */
/* don't handle "up" and "down", they're used for input history */
+ default:
+ return FALSE; /* if the key wasn't handled here, pass it to other handlers */
}
}
-
- return FALSE; /* if the key wasn't handled here, pass it to other handlers */
+
+ gdk_window_process_updates(gtk_widget_get_window(GTK_WIDGET(textview)), TRUE);
+ return TRUE; /* handled it, stop this event now */
}
/* Draw the "more" prompt on top of the buffer, after the regular expose event has run */
static gboolean
expose_prompt(GtkTextView *textview, GdkEventExpose *event)
{
}
/* Draw the "more" prompt on top of the buffer, after the regular expose event has run */
static gboolean
expose_prompt(GtkTextView *textview, GdkEventExpose *event)
{
- PangoLayout *prompt = gtk_widget_create_pango_layout(GTK_WIDGET(textview), "More");
- gint promptwidth, promptheight;
- pango_layout_get_pixel_size(prompt, &promptwidth, &promptheight);
-
GdkGC *context = gdk_gc_new(GDK_DRAWABLE(event->window));
GdkGC *context = gdk_gc_new(GDK_DRAWABLE(event->window));
- GdkColor red, white;
- gdk_color_parse("red", &red);
- gdk_color_parse("white", &white);
gint winx, winy, winwidth, winheight;
gdk_window_get_position(event->window, &winx, &winy);
gint winx, winy, winwidth, winheight;
gdk_window_get_position(event->window, &winx, &winy);
@@
-207,6
+207,12
@@
main(int argc, char **argv)
/* Set up the textview widget to receive exposure events, must be done after widget has been shown */
gdk_window_set_events(gtk_widget_get_window(textview), GDK_EXPOSURE_MASK);
/* Set up the textview widget to receive exposure events, must be done after widget has been shown */
gdk_window_set_events(gtk_widget_get_window(textview), GDK_EXPOSURE_MASK);
+ /* Create the 'more' prompt */
+ prompt = gtk_widget_create_pango_layout(GTK_WIDGET(textview), "More");
+ pango_layout_get_pixel_size(prompt, &promptwidth, &promptheight);
+ gdk_color_parse("red", &red);
+ gdk_color_parse("white", &white);
+
/* Connect paging signals */
GtkTextBuffer *buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(textview));
g_signal_connect_after(buffer, "insert-text", G_CALLBACK(after_insert), textview);
/* Connect paging signals */
GtkTextBuffer *buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(textview));
g_signal_connect_after(buffer, "insert-text", G_CALLBACK(after_insert), textview);
@@
-229,5
+235,7
@@
main(int argc, char **argv)
g_signal_connect(button, "clicked", G_CALLBACK(barf), textview);
gtk_main();
g_signal_connect(button, "clicked", G_CALLBACK(barf), textview);
gtk_main();
+
+ g_object_unref(prompt);
return 0;
}
return 0;
}