1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53
|
#include <gtk/gtk.h>
#include <stdlib.h>
#define TITLE "Gtk Change colour..."
#define WIDTH 100
#define HEIGHT 100
int main (int argc, char **argv)
{
GtkWidget *window;
GtkWidget *vbox;
GtkWidget *tv_in;
GtkTextIter i_start, i_end;
GtkTextBuffer *buffer;
GdkColor color;
GtkTextTag *tag;
gchar *string = "This is a simple test...";
gtk_init (&argc, &argv);
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
gtk_window_set_title (GTK_WINDOW(window), TITLE);
gtk_window_set_default_size (GTK_WINDOW(window), WIDTH, HEIGHT);
g_signal_connect (G_OBJECT(window), "destroy", G_CALLBACK(gtk_main_quit), NULL);
vbox = gtk_vbox_new (FALSE, 0);
gtk_container_add (GTK_CONTAINER(window), vbox);
tv_in = gtk_text_view_new ();
gtk_box_pack_start (GTK_BOX(vbox), tv_in, TRUE, TRUE, 0);
buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW(tv_in));
gtk_text_buffer_set_text (buffer, string, -1);
gdk_color_parse ("red", &color);
gtk_widget_modify_text (tv_in, GTK_STATE_NORMAL, &color);
tag = gtk_text_buffer_create_tag (buffer, "blue_foreground",
"foreground",
"blue",
NULL);
gtk_text_buffer_get_iter_at_offset (buffer, &i_start, 7);
gtk_text_buffer_get_iter_at_offset (buffer, &i_end, 12);
gtk_text_buffer_apply_tag (buffer, tag, &i_start, &i_end);
g_free (string);
gtk_widget_show_all (window);
gtk_main ();
return EXIT_SUCCESS;
} |
Partager