Commented bold color/highlighting, bold font is implicit now

This commit is contained in:
Jesse van den Kieboom 2005-11-06 15:56:35 +00:00
parent 7fc95f487f
commit b7a9743460

View file

@ -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, gboolean on_gm_world_text_view_event(GmWorldTextView *view,
GdkEventMotion *event, GtkTextTag *tag); GdkEventMotion *event, GtkTextTag *tag);
void on_gm_world_text_view_color_table_bold_toggled(GmColorTable *table, /*void on_gm_world_text_view_color_table_bold_toggled(GmColorTable *table,
gboolean bold, GmWorldTextView *view); gboolean bold, GmWorldTextView *view);*/
void on_gm_world_text_view_color_table_color_changed(GmColorTable *table, void on_gm_world_text_view_color_table_color_changed(GmColorTable *table,
gchar *name, GmWorldTextView *view); gchar *name, GmWorldTextView *view);
void on_gm_world_text_view_color_table_font_changed(GmColorTable *table, void on_gm_world_text_view_color_table_font_changed(GmColorTable *table,
@ -52,9 +52,9 @@ struct _GmWorldTextViewPrivate {
/* Signals */ /* Signals */
enum { enum {
URL_ACTIVATE, URL_ACTIVATE,
CHARACTER_SIZE_CHANGED, CHARACTER_SIZE_CHANGED,
NUM_SIGNALS NUM_SIGNALS
}; };
static guint world_text_view_signals[NUM_SIGNALS] = {0}; 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') { if (name[0] == 'f') {
g_object_set(G_OBJECT(tag), "foreground-gdk", &col, NULL); g_object_set(G_OBJECT(tag), "foreground-gdk", &col, NULL);
if (name[strlen(name) - 1] == 'h') { /*if (name[strlen(name) - 1] == 'h') {
/* Color tag for bold colors */ // Color tag for bold colors
//g_object_set(G_OBJECT(tag), "weight", PANGO_WEIGHT_NORMAL, NULL); //g_object_set(G_OBJECT(tag), "weight", PANGO_WEIGHT_NORMAL, NULL);
if (view->priv->color_table == NULL || if (view->priv->color_table == NULL ||
!gm_color_table_bold(view->priv->color_table)) { !gm_color_table_bold(view->priv->color_table)) {
g_object_set(G_OBJECT(tag), "foreground-set", FALSE, NULL); g_object_set(G_OBJECT(tag), "foreground-set", FALSE, NULL);
} }
} }*/
} else { } else {
g_object_set(G_OBJECT(tag), "background-gdk", &col, NULL); 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( tag = gtk_text_tag_table_lookup(gtk_text_buffer_get_tag_table(
GM_WORLD_TEXT_VIEW_BUFFER(view)), "bold"); 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); g_object_set(G_OBJECT(tag), "weight", PANGO_WEIGHT_NORMAL, NULL);
} else { } else {*/
g_object_set(G_OBJECT(tag), "weight", PANGO_WEIGHT_ULTRABOLD, NULL); g_object_set(G_OBJECT(tag), "weight", PANGO_WEIGHT_ULTRABOLD, NULL);
} //}
} }
void void
@ -430,65 +430,71 @@ GList *
gm_world_text_view_tags_fix_for_inverse(GmWorldTextView *view, GList *tags) { gm_world_text_view_tags_fix_for_inverse(GmWorldTextView *view, GList *tags) {
gboolean bold = view->priv->last_info.bold; gboolean bold = view->priv->last_info.bold;
gboolean fg_changed = FALSE, bg_changed = FALSE; gboolean fg_changed = FALSE, bg_changed = FALSE;
GList *new_tags = NULL, *item; GList *new_tags = NULL, *item;
GtkTextTag *tag; GtkTextTag *tag;
gchar *name, *base, *tagname; gchar *name, *base, *tagname;
int i; int i;
GtkTextTagTable *tab = gtk_text_buffer_get_tag_table( GtkTextTagTable *tab = gtk_text_buffer_get_tag_table(
GM_WORLD_TEXT_VIEW_BUFFER(view)); GM_WORLD_TEXT_VIEW_BUFFER(view));
for (item = tags; item; item = item->next) { for (item = tags; item; item = item->next) {
tag = GTK_TEXT_TAG(item->data); tag = GTK_TEXT_TAG(item->data);
g_object_get(G_OBJECT(tag), "name", &name, NULL); g_object_get(G_OBJECT(tag), "name", &name, NULL);
if (strncmp(name, "fg_", 3) == 0) { if (strncmp(name, "fg_", 3) == 0) {
base = name + 3; base = name + 3;
bg_changed = TRUE; bg_changed = TRUE;
i = 0; i = 0;
while (base[i] != '_' && base[i] != '\0') while (base[i] != '_' && base[i] != '\0')
i++; i++;
base[i] = '\0'; base[i] = '\0';
tagname = g_strconcat("bg_", base, NULL); tagname = g_strconcat("bg_", base, NULL);
new_tags = g_list_append(new_tags, gtk_text_tag_table_lookup(tab, tagname)); new_tags = g_list_append(new_tags, gtk_text_tag_table_lookup(tab,
g_free(tagname); tagname));
} else if (strncmp(name, "bg_", 3) == 0) { g_free(tagname);
base = name + 3; } else if (strncmp(name, "bg_", 3) == 0) {
fg_changed = TRUE; base = name + 3;
fg_changed = TRUE;
if (bold) { if (bold) {
tagname = g_strconcat("fg_", base, "_h", NULL); tagname = g_strconcat("fg_", base, "_h", NULL);
} else { } else {
tagname = g_strconcat("fg_", base, NULL); tagname = g_strconcat("fg_", base, NULL);
} }
new_tags = g_list_append(new_tags, gtk_text_tag_table_lookup(tab, tagname)); new_tags = g_list_append(new_tags, gtk_text_tag_table_lookup(tab,
g_free(tagname); tagname));
} else if (strcmp(name, "inverse_bg") == 0) { g_free(tagname);
fg_changed = TRUE; } else if (strcmp(name, "inverse_bg") == 0) {
new_tags = g_list_append(new_tags, gtk_text_tag_table_lookup(tab, "fg_default")); fg_changed = TRUE;
} else if (strcmp(name, "inverse_fg") == 0) { new_tags = g_list_append(new_tags, gtk_text_tag_table_lookup(tab,
bg_changed = TRUE; "fg_default"));
new_tags = g_list_append(new_tags, gtk_text_tag_table_lookup(tab, "bg_default")); } else if (strcmp(name, "inverse_fg") == 0) {
} else { bg_changed = TRUE;
new_tags = g_list_append(new_tags, tag); 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_free(name);
} }
if (!bg_changed) { if (!bg_changed) {
new_tags = g_list_append(new_tags, gtk_text_tag_table_lookup(tab, "inverse_bg")); 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 (!fg_changed) {
} new_tags = g_list_append(new_tags, gtk_text_tag_table_lookup(tab,
"inverse_fg"));
}
g_list_free(tags); g_list_free(tags);
return new_tags; return new_tags;
} }
static const gchar * tag_checks[] = { static const gchar * tag_checks[] = {
@ -606,7 +612,8 @@ gm_world_text_view_new() {
GtkWidget * GtkWidget *
gm_world_text_view_new_with_color_table(GmColorTable *color_table) { 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_create_tags(view);
gm_world_text_view_set_color_table(view, color_table); gm_world_text_view_set_color_table(view, color_table);
@ -618,8 +625,6 @@ void
gm_world_text_view_set_color_table(GmWorldTextView *view, gm_world_text_view_set_color_table(GmWorldTextView *view,
GmColorTable *color_table) { GmColorTable *color_table) {
if (view->priv->color_table != NULL) { 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, g_signal_handlers_disconnect_by_func(view->priv->color_table,
on_gm_world_text_view_color_table_color_changed, view); on_gm_world_text_view_color_table_color_changed, view);
g_signal_handlers_disconnect_by_func(view->priv->color_table, 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) { if (color_table != NULL) {
view->priv->color_table = g_object_ref(color_table); 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_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_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_init_tags(view);
gm_world_text_view_update_font(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); gtk_text_buffer_get_end_iter(buffer, &started);
start_mark = gtk_text_buffer_create_mark(buffer, "last-insertion", start_mark = gtk_text_buffer_create_mark(buffer, "last-insertion",
&started, TRUE); &started, TRUE);
@ -958,14 +963,14 @@ gm_world_text_view_color_table_fix_high_color(GtkTextTag *tag, gpointer data) {
g_free(name); g_free(name);
} }
void /*void
on_gm_world_text_view_color_table_bold_toggled(GmColorTable *table, on_gm_world_text_view_color_table_bold_toggled(GmColorTable *table,
gboolean bold, GmWorldTextView *view) { gboolean bold, GmWorldTextView *view) {
GtkTextTag *tag; GtkTextTag *tag;
GtkTextBuffer *buf = GM_WORLD_TEXT_VIEW_BUFFER(view); GtkTextBuffer *buf = GM_WORLD_TEXT_VIEW_BUFFER(view);
GtkTextTagTable *tb = gtk_text_buffer_get_tag_table(buf); GtkTextTagTable *tb = gtk_text_buffer_get_tag_table(buf);
/* Fix bold tag */ // Fix bold tag
tag = gtk_text_tag_table_lookup(tb, "bold"); tag = gtk_text_tag_table_lookup(tb, "bold");
if (tag != NULL) { 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); 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, gtk_text_tag_table_foreach(tb, gm_world_text_view_color_table_fix_high_color,
GINT_TO_POINTER(bold)); GINT_TO_POINTER(bold));
} }
} }*/
void void
on_gm_world_text_view_color_table_color_changed(GmColorTable *table, on_gm_world_text_view_color_table_color_changed(GmColorTable *table,