diff --git a/src/widgets/gm-world-text-view.c b/src/widgets/gm-world-text-view.c index 9824f5d..cd13776 100644 --- a/src/widgets/gm-world-text-view.c +++ b/src/widgets/gm-world-text-view.c @@ -16,8 +16,8 @@ gboolean on_gm_world_text_view_url_event(GtkTextTag *tag, GObject *object, gboolean on_gm_world_text_view_event(GmWorldTextView *view, GdkEventMotion *event, GtkTextTag *tag); -void on_gm_world_text_view_color_table_bold_toggled(GmColorTable *table, - gboolean bold, GmWorldTextView *view); +/*void on_gm_world_text_view_color_table_bold_toggled(GmColorTable *table, + gboolean bold, GmWorldTextView *view);*/ void on_gm_world_text_view_color_table_color_changed(GmColorTable *table, gchar *name, GmWorldTextView *view); void on_gm_world_text_view_color_table_font_changed(GmColorTable *table, @@ -52,9 +52,9 @@ struct _GmWorldTextViewPrivate { /* Signals */ enum { - URL_ACTIVATE, - CHARACTER_SIZE_CHANGED, - NUM_SIGNALS + URL_ACTIVATE, + CHARACTER_SIZE_CHANGED, + NUM_SIGNALS }; static guint world_text_view_signals[NUM_SIGNALS] = {0}; @@ -157,14 +157,14 @@ gm_world_text_view_update_color_tag(GmWorldTextView *view, const gchar *name, if (name[0] == 'f') { g_object_set(G_OBJECT(tag), "foreground-gdk", &col, NULL); - if (name[strlen(name) - 1] == 'h') { - /* Color tag for bold colors */ + /*if (name[strlen(name) - 1] == 'h') { + // Color tag for bold colors //g_object_set(G_OBJECT(tag), "weight", PANGO_WEIGHT_NORMAL, NULL); if (view->priv->color_table == NULL || !gm_color_table_bold(view->priv->color_table)) { g_object_set(G_OBJECT(tag), "foreground-set", FALSE, NULL); } - } + }*/ } else { g_object_set(G_OBJECT(tag), "background-gdk", &col, NULL); } @@ -285,11 +285,11 @@ gm_world_text_view_update_tags(GmWorldTextView *view) { tag = gtk_text_tag_table_lookup(gtk_text_buffer_get_tag_table( GM_WORLD_TEXT_VIEW_BUFFER(view)), "bold"); - if (gm_color_table_bold(view->priv->color_table)) { + /*if (gm_color_table_bold(view->priv->color_table)) { g_object_set(G_OBJECT(tag), "weight", PANGO_WEIGHT_NORMAL, NULL); - } else { - g_object_set(G_OBJECT(tag), "weight", PANGO_WEIGHT_ULTRABOLD, NULL); - } + } else {*/ + g_object_set(G_OBJECT(tag), "weight", PANGO_WEIGHT_ULTRABOLD, NULL); + //} } void @@ -430,65 +430,71 @@ GList * gm_world_text_view_tags_fix_for_inverse(GmWorldTextView *view, GList *tags) { gboolean bold = view->priv->last_info.bold; gboolean fg_changed = FALSE, bg_changed = FALSE; - GList *new_tags = NULL, *item; - GtkTextTag *tag; - gchar *name, *base, *tagname; - int i; - GtkTextTagTable *tab = gtk_text_buffer_get_tag_table( - GM_WORLD_TEXT_VIEW_BUFFER(view)); + GList *new_tags = NULL, *item; + GtkTextTag *tag; + gchar *name, *base, *tagname; + int i; + GtkTextTagTable *tab = gtk_text_buffer_get_tag_table( + GM_WORLD_TEXT_VIEW_BUFFER(view)); - for (item = tags; item; item = item->next) { - tag = GTK_TEXT_TAG(item->data); - - g_object_get(G_OBJECT(tag), "name", &name, NULL); - - if (strncmp(name, "fg_", 3) == 0) { - base = name + 3; - bg_changed = TRUE; - i = 0; - - while (base[i] != '_' && base[i] != '\0') - i++; - - base[i] = '\0'; - tagname = g_strconcat("bg_", base, NULL); + for (item = tags; item; item = item->next) { + tag = GTK_TEXT_TAG(item->data); - new_tags = g_list_append(new_tags, gtk_text_tag_table_lookup(tab, tagname)); - g_free(tagname); - } else if (strncmp(name, "bg_", 3) == 0) { - base = name + 3; - fg_changed = TRUE; - - if (bold) { - tagname = g_strconcat("fg_", base, "_h", NULL); - } else { - tagname = g_strconcat("fg_", base, NULL); - } - - new_tags = g_list_append(new_tags, gtk_text_tag_table_lookup(tab, tagname)); - g_free(tagname); - } else if (strcmp(name, "inverse_bg") == 0) { - fg_changed = TRUE; - new_tags = g_list_append(new_tags, gtk_text_tag_table_lookup(tab, "fg_default")); - } else if (strcmp(name, "inverse_fg") == 0) { - bg_changed = TRUE; - new_tags = g_list_append(new_tags, gtk_text_tag_table_lookup(tab, "bg_default")); - } else { - new_tags = g_list_append(new_tags, tag); - } - - g_free(name); - } + g_object_get(G_OBJECT(tag), "name", &name, NULL); + + if (strncmp(name, "fg_", 3) == 0) { + base = name + 3; + bg_changed = TRUE; + i = 0; + + while (base[i] != '_' && base[i] != '\0') + i++; + + base[i] = '\0'; + tagname = g_strconcat("bg_", base, NULL); + + new_tags = g_list_append(new_tags, gtk_text_tag_table_lookup(tab, + tagname)); + g_free(tagname); + } else if (strncmp(name, "bg_", 3) == 0) { + base = name + 3; + fg_changed = TRUE; + + if (bold) { + tagname = g_strconcat("fg_", base, "_h", NULL); + } else { + tagname = g_strconcat("fg_", base, NULL); + } + + new_tags = g_list_append(new_tags, gtk_text_tag_table_lookup(tab, + tagname)); + g_free(tagname); + } else if (strcmp(name, "inverse_bg") == 0) { + fg_changed = TRUE; + new_tags = g_list_append(new_tags, gtk_text_tag_table_lookup(tab, + "fg_default")); + } else if (strcmp(name, "inverse_fg") == 0) { + bg_changed = TRUE; + new_tags = g_list_append(new_tags, gtk_text_tag_table_lookup(tab, + "bg_default")); + } else { + new_tags = g_list_append(new_tags, tag); + } + + g_free(name); + } - if (!bg_changed) { - new_tags = g_list_append(new_tags, gtk_text_tag_table_lookup(tab, "inverse_bg")); - } - if (!fg_changed) { - new_tags = g_list_append(new_tags, gtk_text_tag_table_lookup(tab, "inverse_fg")); - } + if (!bg_changed) { + new_tags = g_list_append(new_tags, gtk_text_tag_table_lookup(tab, + "inverse_bg")); + } + if (!fg_changed) { + new_tags = g_list_append(new_tags, gtk_text_tag_table_lookup(tab, + "inverse_fg")); + } - g_list_free(tags); - return new_tags; + g_list_free(tags); + return new_tags; } static const gchar * tag_checks[] = { @@ -606,7 +612,8 @@ gm_world_text_view_new() { GtkWidget * gm_world_text_view_new_with_color_table(GmColorTable *color_table) { - GmWorldTextView *view = GM_WORLD_TEXT_VIEW(g_object_new(GM_TYPE_WORLD_TEXT_VIEW, NULL)); + GmWorldTextView *view = GM_WORLD_TEXT_VIEW(g_object_new( + GM_TYPE_WORLD_TEXT_VIEW, NULL)); gm_world_text_view_create_tags(view); gm_world_text_view_set_color_table(view, color_table); @@ -618,8 +625,6 @@ void gm_world_text_view_set_color_table(GmWorldTextView *view, GmColorTable *color_table) { if (view->priv->color_table != NULL) { - g_signal_handlers_disconnect_by_func(view->priv->color_table, - on_gm_world_text_view_color_table_bold_toggled, view); g_signal_handlers_disconnect_by_func(view->priv->color_table, on_gm_world_text_view_color_table_color_changed, view); g_signal_handlers_disconnect_by_func(view->priv->color_table, @@ -629,12 +634,12 @@ gm_world_text_view_set_color_table(GmWorldTextView *view, if (color_table != NULL) { view->priv->color_table = g_object_ref(color_table); - g_signal_connect(view->priv->color_table, "bold_toggled", - G_CALLBACK(on_gm_world_text_view_color_table_bold_toggled), view); g_signal_connect(view->priv->color_table, "color_changed", - G_CALLBACK(on_gm_world_text_view_color_table_color_changed), view); + G_CALLBACK(on_gm_world_text_view_color_table_color_changed), + view); g_signal_connect(view->priv->color_table, "font_changed", - G_CALLBACK(on_gm_world_text_view_color_table_font_changed), view); + G_CALLBACK(on_gm_world_text_view_color_table_font_changed), + view); gm_world_text_view_init_tags(view); gm_world_text_view_update_font(view); @@ -719,7 +724,7 @@ gm_world_text_view_insert(GmWorldTextView *view, const gchar *text) { } } - debug_msg(1, "gm_world_text_view_insert: %s", new_line->str); + debug_msg(1, "GmWorldTextView.Insert: %s", new_line->str); gtk_text_buffer_get_end_iter(buffer, &started); start_mark = gtk_text_buffer_create_mark(buffer, "last-insertion", &started, TRUE); @@ -840,7 +845,7 @@ on_gm_world_text_view_style_set(GmWorldTextView *view, GtkStyle *previous_style, PangoContext *pc = gtk_widget_create_pango_context(GTK_WIDGET(view)); PangoLayout *pl; gint cwidth, cheight; - + if (style->font_desc != NULL) { pango_context_set_font_description(pc, style->font_desc); pl = pango_layout_new(pc); @@ -958,14 +963,14 @@ gm_world_text_view_color_table_fix_high_color(GtkTextTag *tag, gpointer data) { g_free(name); } -void +/*void on_gm_world_text_view_color_table_bold_toggled(GmColorTable *table, gboolean bold, GmWorldTextView *view) { GtkTextTag *tag; GtkTextBuffer *buf = GM_WORLD_TEXT_VIEW_BUFFER(view); GtkTextTagTable *tb = gtk_text_buffer_get_tag_table(buf); - /* Fix bold tag */ + // Fix bold tag tag = gtk_text_tag_table_lookup(tb, "bold"); if (tag != NULL) { @@ -975,11 +980,11 @@ on_gm_world_text_view_color_table_bold_toggled(GmColorTable *table, g_object_set(G_OBJECT(tag), "weight", PANGO_WEIGHT_ULTRABOLD, NULL); } - /* Fix high color tags */ + // Fix high color tags gtk_text_tag_table_foreach(tb, gm_world_text_view_color_table_fix_high_color, GINT_TO_POINTER(bold)); } -} +}*/ void on_gm_world_text_view_color_table_color_changed(GmColorTable *table,