X-Git-Url: https://git.stderr.nl/gitweb?a=blobdiff_plain;f=libchimara%2Fgarglk.c;h=5e801683233c1ca0208503f9ecf3afd1dce57fa6;hb=cbd4cb7f8c62b2ba51329a4cb082a96115a7529d;hp=4708174112eb3821b01294e3fa7bc75e1bd66822;hpb=44574b9463fd313d08e4a29ac73d9cacf6714603;p=rodin%2Fchimara.git diff --git a/libchimara/garglk.c b/libchimara/garglk.c index 4708174..5e80168 100644 --- a/libchimara/garglk.c +++ b/libchimara/garglk.c @@ -1,6 +1,24 @@ #include +#include "chimara-glk-private.h" +#include "stream.h" + +extern GPrivate *glk_data_key; + +void +apply_reverse_color(GtkTextTag *tag, gpointer data) +{ + g_object_set_data( G_OBJECT(tag), "reverse_color", data ); +} void garglk_set_reversevideo(glui32 reverse) { + printf("set_reversevideo(%d)\n", reverse); + ChimaraGlkPrivate *glk_data = g_private_get(glk_data_key); + g_return_if_fail(glk_data->current_stream != NULL); + g_return_if_fail(glk_data->current_stream->window != NULL); + + GtkTextTagTable *tags = gtk_text_buffer_get_tag_table( GTK_TEXT_BUFFER(glk_data->current_stream->window->widget) ); + gtk_text_tag_table_foreach( tags, apply_reverse_color, GINT_TO_POINTER(reverse) ); } +