X-Git-Url: https://git.stderr.nl/gitweb?a=blobdiff_plain;f=libchimara%2Fstyle.c;h=2e2b80c898c73fb54bd31aeccf3659dbf2d1157e;hb=afcb589f8e9a227d40f839c6eb15bb28985545d5;hp=0aa4db282bccbcc031d3d4f9dccae2a6450d6b96;hpb=090a87d90e12fd7ad43ba888539238069b4241f4;p=projects%2Fchimara%2Fchimara.git diff --git a/libchimara/style.c b/libchimara/style.c index 0aa4db2..2e2b80c 100644 --- a/libchimara/style.c +++ b/libchimara/style.c @@ -1,5 +1,6 @@ #include #include +#include #include "chimara-glk-private.h" #include "glk.h" #include "style.h" @@ -38,8 +39,8 @@ glk_set_style(glui32 styl) glk_set_style_stream(glk_data->current_stream, styl); } +/* The first 11 tag names must correspond to the first 11 glk tag names as defined below */ static const gchar* TAG_NAMES[] = { - "default", "normal", "emphasized", "preformatted", @@ -52,9 +53,11 @@ static const gchar* TAG_NAMES[] = { "user1", "user2", "hyperlink", - "pager" + "pager", + "default" }; +/* The first 11 glk tag names must correspond to the first 11 tag names as defined above */ static const gchar* GLK_TAG_NAMES[] = { "glk-normal", "glk-emphasized", @@ -212,6 +215,7 @@ gtk_text_tag_copy(GtkTextTag *tag) _COPY_FLAG (invisible_set); _COPY_FLAG (editable_set); _COPY_FLAG (language_set); + _COPY_FLAG (scale_set); #undef _COPY_FLAG /* Copy the data that was added manually */ @@ -317,12 +321,12 @@ style_init(ChimaraGlk *glk) tag = gtk_text_tag_new("header"); //g_object_set(tag, "font-desc", default_font_desc, "size-points", 18.0, "weight", PANGO_WEIGHT_BOLD, NULL); - g_object_set(tag, "size-points", 18.0, "weight", PANGO_WEIGHT_BOLD, NULL); + g_object_set(tag, "weight", PANGO_WEIGHT_BOLD, NULL); g_hash_table_insert(default_text_buffer_styles, "header", tag); tag = gtk_text_tag_new("subheader"); //g_object_set(tag, "font-desc", default_font_desc, "size-points", 14.0, "weight", PANGO_WEIGHT_BOLD, NULL); - g_object_set(tag, "size-points", 14.0, "weight", PANGO_WEIGHT_BOLD, NULL); + g_object_set(tag, "weight", PANGO_WEIGHT_BOLD, NULL); g_hash_table_insert(default_text_buffer_styles, "subheader", tag); tag = gtk_text_tag_new("alert"); @@ -374,6 +378,7 @@ style_init(ChimaraGlk *glk) for(i=0; istyles->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); @@ -810,6 +832,7 @@ static gint query_tag(GtkTextTag *tag, glui32 wintype, glui32 hint) { gint intval; + gdouble doubleval; GdkColor *colval; g_return_val_if_fail(tag != NULL, 0); @@ -847,8 +870,8 @@ query_tag(GtkTextTag *tag, glui32 wintype, glui32 hint) } case stylehint_Size: - g_object_get(tag, "size", &intval, NULL); - return (intval/2)-14; + g_object_get(tag, "scale", &doubleval, NULL); + return (gint)round(log(doubleval) / log(1.2)); case stylehint_Oblique: g_object_get(tag, "style", &intval , NULL); @@ -1080,21 +1103,21 @@ PangoFontDescription * get_current_font(guint32 wintype) { ChimaraGlkPrivate *glk_data = g_private_get(glk_data_key); - GtkTextTag *normal; + GtkTextTag *tag; switch(wintype) { case wintype_TextGrid: - normal = g_hash_table_lookup(glk_data->styles->text_grid, "normal"); + tag = g_hash_table_lookup(glk_data->styles->text_grid, "default"); break; case wintype_TextBuffer: - normal = g_hash_table_lookup(glk_data->styles->text_buffer, "normal"); + tag = g_hash_table_lookup(glk_data->styles->text_buffer, "default"); break; default: return NULL; } PangoFontDescription *font; - g_object_get( G_OBJECT(normal), "font-desc", &font, NULL ); + g_object_get( G_OBJECT(tag), "font-desc", &font, NULL ); return font; }