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
1 changed files with 85 additions and 80 deletions

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,
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,