X-Git-Url: https://git.stderr.nl/gitweb?a=blobdiff_plain;f=libchimara%2Fstyle.c;h=5bbbb5be22ec3385da336297a6a9cfe21a12e2cf;hb=daf0bacb2f258c3f77a5f8567b0713cb9635fdbb;hp=f7bce7f9a625a0f6f503928e7f4d4e5b7067c811;hpb=187e23a5b183d6fea5d7d23bbf35188601a6a612;p=projects%2Fchimara%2Fchimara.git diff --git a/libchimara/style.c b/libchimara/style.c index f7bce7f..5bbbb5b 100644 --- a/libchimara/style.c +++ b/libchimara/style.c @@ -138,7 +138,7 @@ style_init_textbuffer(GtkTextBuffer *buffer) ChimaraGlkPrivate *glk_data = g_private_get(glk_data_key); /* Place the default text tags in the textbuffer's tag table */ - g_hash_table_foreach(glk_data->styles->text_buffer, style_add_tag_to_textbuffer, gtk_text_buffer_get_tag_table(buffer)); + g_hash_table_foreach(glk_data->styles->text_buffer, style_copy_tag_to_textbuffer, gtk_text_buffer_get_tag_table(buffer)); /* Copy the override text tags to the textbuffers's tag table */ g_hash_table_foreach(glk_data->glk_styles->text_buffer, style_copy_tag_to_textbuffer, gtk_text_buffer_get_tag_table(buffer)); @@ -154,7 +154,7 @@ style_init_textgrid(GtkTextBuffer *buffer) ChimaraGlkPrivate *glk_data = g_private_get(glk_data_key); /* Place the default text tags in the textbuffer's tag table */ - g_hash_table_foreach(glk_data->styles->text_grid, style_add_tag_to_textbuffer, gtk_text_buffer_get_tag_table(buffer)); + g_hash_table_foreach(glk_data->styles->text_grid, style_copy_tag_to_textbuffer, gtk_text_buffer_get_tag_table(buffer)); /* Copy the current text tags to the textbuffers's tag table */ g_hash_table_foreach(glk_data->glk_styles->text_grid, style_copy_tag_to_textbuffer, gtk_text_buffer_get_tag_table(buffer)); @@ -657,19 +657,6 @@ style_accept_style_hint(GScanner *scanner, GtkTextTag *current_tag) return TRUE; } -/* Internal function: parses a glk color to a #hex-value */ -static void -glkcolor_to_hex(glui32 val, gchar *buffer) -{ - g_return_if_fail(buffer != NULL); - - sprintf(buffer, "#%02X%02X%02X", - ((val & 0xff0000) >> 16), - ((val & 0x00ff00) >> 8), - (val & 0x0000ff) - ); -} - /* Internal function: parses a glk color to a GdkColor */ void glkcolor_to_gdkcolor(glui32 val, GdkColor *color) @@ -699,7 +686,7 @@ apply_stylehint_to_tag(GtkTextTag *tag, GtkTextTag *default_tag, glui32 wintype, gint reverse_color = GPOINTER_TO_INT( g_object_get_data(tag_object, "reverse-color") ); int i = 0; - gchar color[20]; + GdkColor color; switch(hint) { case stylehint_Indentation: g_object_set(tag_object, "left-margin", 5*val, "left-margin-set", TRUE, NULL); @@ -749,7 +736,6 @@ apply_stylehint_to_tag(GtkTextTag *tag, GtkTextTag *default_tag, glui32 wintype, step be a scaling of 1.2 */ scale = pow(1.2, (double)val); } - g_printerr("Setting tag to %f\n", scale); g_object_set(tag_object, "scale", scale, "scale-set", TRUE, NULL); } break; @@ -763,7 +749,7 @@ apply_stylehint_to_tag(GtkTextTag *tag, GtkTextTag *default_tag, glui32 wintype, gchar *font_family; GtkTextTag *font_tag = g_hash_table_lookup( wintype == wintype_TextBuffer? glk_data->styles->text_buffer : glk_data->styles->text_grid, - val? "normal" : "preformatted"); + val? "default" : "preformatted"); g_object_get(font_tag, "family", &font_family, NULL); g_object_set(tag_object, "family", font_family, "family-set", TRUE, NULL); g_free(font_family); @@ -771,22 +757,22 @@ apply_stylehint_to_tag(GtkTextTag *tag, GtkTextTag *default_tag, glui32 wintype, break; case stylehint_TextColor: - glkcolor_to_hex(val, color); + glkcolor_to_gdkcolor(val, &color); if(!reverse_color) - g_object_set(tag_object, "foreground", color, "foreground-set", TRUE, NULL); + g_object_set(tag_object, "foreground-gdk", &color, "foreground-set", TRUE, NULL); else - g_object_set(tag_object, "background", color, "background-set", TRUE, NULL); + g_object_set(tag_object, "background-gdk", &color, "background-set", TRUE, NULL); break; case stylehint_BackColor: - glkcolor_to_hex(val, color); + glkcolor_to_gdkcolor(val, &color); if(!reverse_color) - g_object_set(tag_object, "background", color, "background-set", TRUE, NULL); + g_object_set(tag_object, "background-gdk", &color, "background-set", TRUE, NULL); else - g_object_set(tag_object, "foreground", color, "background-set", TRUE, NULL); + g_object_set(tag_object, "foreground-gdk", &color, "background-set", TRUE, NULL); break;