Started using thread-private data. Multisession still doesn't work, but regular opera...
[rodin/chimara.git] / libchimara / style.c
index 77ef15809202bd18cdf08ec460d14c77e189a22b..3826ebfc4d1fcf482de4fc8c8ee7cb81f97166f6 100644 (file)
@@ -1,6 +1,6 @@
 #include "style.h"
 
-extern ChimaraGlkPrivate *glk_data;
+extern GPrivate *glk_data_key;
 
 /**
  * glk_set_style:
@@ -18,12 +18,13 @@ extern ChimaraGlkPrivate *glk_data;
 void
 glk_set_style(glui32 styl)
 {
+       ChimaraGlkPrivate *glk_data = g_private_get(glk_data_key);
        g_return_if_fail(glk_data->current_stream != NULL);
        glk_set_style_stream(glk_data->current_stream, styl);
 }
 
 /* Internal function: mapping from style enum to tag name */
-gchar*
+static gchar *
 get_tag_name(glui32 style)
 {
        switch(style) {
@@ -62,11 +63,13 @@ style_init_textbuffer(GtkTextBuffer *buffer)
 {
        g_return_if_fail(buffer != NULL);
 
+       ChimaraGlkPrivate *glk_data = g_private_get(glk_data_key);
+
        gtk_text_buffer_create_tag(buffer, "normal", NULL);
        gtk_text_buffer_create_tag(buffer, "emphasized", "style", PANGO_STYLE_ITALIC, NULL);
        gtk_text_buffer_create_tag(buffer, "preformatted", "font-desc", glk_data->monospace_font_desc, NULL);
-       gtk_text_buffer_create_tag(buffer, "header", "size-points", 16.0, "weight", PANGO_WEIGHT_BOLD, NULL);
-       gtk_text_buffer_create_tag(buffer, "subheader", "size-points", 12.0, "weight", PANGO_WEIGHT_BOLD, NULL);
+       gtk_text_buffer_create_tag(buffer, "header", "size-points", 18.0, "weight", PANGO_WEIGHT_BOLD, NULL);
+       gtk_text_buffer_create_tag(buffer, "subheader", "size-points", 14.0, "weight", PANGO_WEIGHT_BOLD, NULL);
        gtk_text_buffer_create_tag(buffer, "alert", "foreground", "#aa0000", "weight", PANGO_WEIGHT_BOLD, NULL);
        gtk_text_buffer_create_tag(buffer, "note", "foreground", "#aaaa00", "weight", PANGO_WEIGHT_BOLD, NULL);
        gtk_text_buffer_create_tag(buffer, "block-quote", "justification", GTK_JUSTIFY_CENTER, "style", PANGO_STYLE_ITALIC, NULL);
@@ -75,7 +78,7 @@ style_init_textbuffer(GtkTextBuffer *buffer)
        gtk_text_buffer_create_tag(buffer, "user2", NULL);
 }
 
-void
+static void
 color_format(glui32 val, gchar *buffer)
 {
        sprintf(buffer, "#%02X%02X%02X",
@@ -86,11 +89,12 @@ color_format(glui32 val, gchar *buffer)
 }
 
 /* Internal function: changes a GTK tag to correspond with the given style. */
-void
+static void
 apply_stylehint_to_tag(GtkTextTag *tag, glui32 hint, glsi32 val)
 {
        g_return_if_fail(tag != NULL);
 
+       ChimaraGlkPrivate *glk_data = g_private_get(glk_data_key);
        GObject *tag_object = G_OBJECT(tag);
        gint reverse_color = 0;