Implement highlighting in engine output by through generic method
[xboard.git] / xoptions.c
index c213bbc..5616840 100644 (file)
@@ -546,6 +546,22 @@ ICSKeyEvent(GtkWidget *widget, GdkEventKey *event)
     }
 }
 
+void
+HighlightText (Option *opt, int from, int to, Boolean highlight)
+{
+#   define INIT 0x8000
+    static GtkTextIter start, end;
+
+    if(!(opt->min & INIT)) {
+       opt->min |= INIT; // each memo its own init flag!
+       gtk_text_buffer_create_tag(opt->handle, "highlight", "background", "yellow", NULL);
+       gtk_text_buffer_create_tag(opt->handle, "normal", "background", "white", NULL);
+    }
+    gtk_text_buffer_get_iter_at_offset(opt->handle, &start, from);
+    gtk_text_buffer_get_iter_at_offset(opt->handle, &end, to);
+    gtk_text_buffer_apply_tag_by_name(opt->handle, highlight ? "highlight" : "normal", &start, &end);
+}
+
 static gboolean
 MemoEvent(GtkWidget *widget, GdkEvent *event, gpointer gdata)
 {   // handle mouse clicks on text widgets that need it