[balsa/gtk3] Port to GdkRGBA and GtkStyleContext
- From: Peter Bloomfield <PeterB src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [balsa/gtk3] Port to GdkRGBA and GtkStyleContext
- Date: Tue, 18 Jan 2011 00:16:14 +0000 (UTC)
commit 2bbc7749a781945228e923f76feb0dc20a1f8867
Author: Peter Bloomfield <PeterBloomfield bellsouth net>
Date: Mon Jan 17 17:20:50 2011 -0500
Port to GdkRGBA and GtkStyleContext
ChangeLog | 32 +++++++++++++
src/balsa-app.h | 6 +-
src/balsa-cite-bar.c | 8 ++-
src/balsa-message.c | 40 ++++++-----------
src/balsa-mime-widget-image.c | 4 +-
src/balsa-mime-widget-message.c | 55 +++++++++++++-----------
src/balsa-mime-widget-text.c | 87 +++++++++++++++++++++---------------
src/balsa-mime-widget-vcalendar.c | 1 -
src/balsa-print-object-text.c | 6 +-
src/main-window.c | 30 ++++++++----
src/pref-manager.c | 24 +++++-----
src/quote-color.c | 29 ------------
src/quote-color.h | 2 -
src/save-restore.c | 16 +++----
src/sendmsg-window.c | 15 +++---
15 files changed, 186 insertions(+), 169 deletions(-)
---
diff --git a/ChangeLog b/ChangeLog
index 78f4392..db98aaf 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,37 @@
2011-01-17 Peter Bloomfield
+ * src/balsa-app.h: port from GdkColor to GdkRGBA.
+ * src/balsa-cite-bar.c (balsa_cite_bar_draw): ditto, and from
+ GtkStyle to GtkStyleContext.
+ * src/balsa-message.c (bm_on_set_style), (balsa_message_init),
+ (get_crypto_content_icon): ditto.
+ * src/balsa-mime-widget-image.c (balsa_mime_widget_new_image):
+ ditto.
+ * src/balsa-mime-widget-message.c (balsa_mime_widget_new_message),
+ (balsa_mime_widget_new_message_tl), (bm_header_widget_realized),
+ (bm_header_widget_set_style), (bm_header_widget_new),
+ (bmwm_buffer_set_prefs),
+ (balsa_mime_widget_message_set_headers_d): ditto, and reorganize
+ widget-showing.
+ * src/balsa-mime-widget-text.c (balsa_mime_widget_new_text),
+ (bm_modify_font_from_string), (quote_tag), (draw_cite_bar_real),
+ (bm_widget_new_vcard), (fill_text_buf_cited): ditto, and drop
+ allocate_quote_colors.
+ * src/balsa-mime-widget-vcalendar.c
+ * src/balsa-print-object-text.c (balsa_print_object_text_draw):
+ port from GdkColor to GdkRGBA.
+ * src/main-window.c: port from GtkStyle to GtkStyleContext.
+ * src/pref-manager.c (apply_prefs), (set_prefs): port from
+ GdkColor to GdkRGBA.
+ * src/quote-color.c (is_a_quote): drop allocate_quote_colors.
+ * src/quote-color.h: ditto.
+ * src/save-restore.c (save_color), (load_color): port from
+ GdkColor to GdkRGBA.
+ * src/sendmsg-window.c (add_urlref_attachment),
+ (create_email_or_string_entry), (create_text_area): ditto.
+
+2011-01-17 Peter Bloomfield
+
* libbalsa/source-viewer.c (libbalsa_show_message_source): new
override font API.
diff --git a/src/balsa-app.h b/src/balsa-app.h
index 1430692..3c7ec75 100644
--- a/src/balsa-app.h
+++ b/src/balsa-app.h
@@ -268,13 +268,13 @@ extern struct BalsaApplication {
/* Colour of quoted text. */
gboolean mark_quoted;
gchar *quote_regex;
- GdkColor quoted_color[MAX_QUOTED_COLOR];
+ GdkRGBA quoted_color[MAX_QUOTED_COLOR];
/* text color of URL's */
- GdkColor url_color;
+ GdkRGBA url_color;
/* label color of bad addresses */
- GdkColor bad_address_color;
+ GdkRGBA bad_address_color;
guint pwindow_option;
gboolean wordwrap;
diff --git a/src/balsa-cite-bar.c b/src/balsa-cite-bar.c
index a0e0050..627c460 100644
--- a/src/balsa-cite-bar.c
+++ b/src/balsa-cite-bar.c
@@ -128,12 +128,14 @@ balsa_cite_bar_get_preferred_height(GtkWidget * widget,
static gboolean
balsa_cite_bar_draw(GtkWidget * widget, cairo_t * cr)
{
- GtkStyle *style;
+ GtkStyleContext *context;
+ GdkRGBA rgba;
BalsaCiteBar *cite_bar;
int n, x;
- style = gtk_widget_get_style(widget);
- gdk_cairo_set_source_color(cr, &style->fg[GTK_STATE_NORMAL]);
+ context = gtk_widget_get_style_context(widget);
+ gtk_style_context_get_color(context, GTK_STATE_FLAG_NORMAL, &rgba);
+ gdk_cairo_set_source_rgba(cr, &rgba);
cite_bar = BALSA_CITE_BAR(widget);
for (n = x = 0; n < cite_bar->bars; n++) {
diff --git a/src/balsa-message.c b/src/balsa-message.c
index c54e728..de792f9 100644
--- a/src/balsa-message.c
+++ b/src/balsa-message.c
@@ -332,33 +332,20 @@ bm_header_tl_buttons(BalsaMessage * bm)
}
-/* Callback for the "style-set" signal; set the message background to
- * match the base color of any content in a text-view. */
+/* Callback for the "style-updated" signal; set the message background to
+ * match the base color of the content in the tree-view. */
static void
bm_on_set_style(GtkWidget * widget,
- GtkStyle * previous_style,
BalsaMessage * bm)
{
- GtkWidget *target = bm->cont_viewport;
- GtkStyle *new_style, *text_view_style;
- int n;
-
- new_style = gtk_style_copy(gtk_widget_get_style(target));
- text_view_style =
- gtk_rc_get_style_by_paths(gtk_widget_get_settings(target),
- NULL, NULL, gtk_text_view_get_type());
- if (text_view_style)
- for (n = GTK_STATE_NORMAL; n <= GTK_STATE_INSENSITIVE; n++)
- new_style->bg[n] = text_view_style->base[n];
- else {
- GdkColor color;
+ GtkStyleContext *context;
+ GdkRGBA rgba;
- gdk_color_parse("White", &color);
- for (n = GTK_STATE_NORMAL; n <= GTK_STATE_INSENSITIVE; n++)
- new_style->bg[n] = color;
- }
- gtk_widget_set_style(target, new_style);
- g_object_unref(G_OBJECT(new_style));
+ context = gtk_widget_get_style_context(bm->treeview);
+ gtk_style_context_get_background_color(context, GTK_STATE_FLAG_NORMAL,
+ &rgba);
+ gtk_widget_override_background_color(bm->cont_viewport,
+ GTK_STATE_FLAG_NORMAL, &rgba);
}
static void
@@ -701,7 +688,7 @@ balsa_message_init(BalsaMessage * bm)
bm->cont_viewport = gtk_viewport_new(NULL, NULL);
gtk_container_add(GTK_CONTAINER(scroll), bm->cont_viewport);
gtk_widget_show_all(scroll);
- g_signal_connect_after(bm, "style-set",
+ g_signal_connect_after(bm, "style-updated",
G_CALLBACK(bm_on_set_style), bm);
g_signal_connect(bm->cont_viewport, "size-allocate",
G_CALLBACK(on_content_size_alloc), NULL);
@@ -781,7 +768,6 @@ balsa_message_init(BalsaMessage * bm)
label = gtk_label_new(_("Message parts"));
gtk_notebook_append_page(GTK_NOTEBOOK(bm), scroll, label);
gtk_container_add(GTK_CONTAINER(scroll), bm->treeview);
- gtk_widget_show_all(scroll);
gtk_notebook_set_show_tabs(GTK_NOTEBOOK(bm), FALSE);
bm->current_part = NULL;
@@ -2704,8 +2690,10 @@ get_crypto_content_icon(LibBalsaMessageBody * body, const gchar * content_type,
icon_name = balsa_mime_widget_signature_icon_name(libbalsa_message_body_protect_state(body));
if (!icon_name)
return NULL;
- icon = gtk_widget_render_icon(GTK_WIDGET(balsa_app.main_window), icon_name,
- GTK_ICON_SIZE_LARGE_TOOLBAR, NULL);
+ icon =
+ gtk_widget_render_icon_pixbuf(GTK_WIDGET(balsa_app.main_window),
+ icon_name,
+ GTK_ICON_SIZE_LARGE_TOOLBAR);
if (!icon_title)
return icon;
diff --git a/src/balsa-mime-widget-image.c b/src/balsa-mime-widget-image.c
index ce01d1b..9dfe6d9 100644
--- a/src/balsa-mime-widget-image.c
+++ b/src/balsa-mime-widget-image.c
@@ -67,15 +67,15 @@ balsa_mime_widget_new_image(BalsaMessage * bm, LibBalsaMessageBody * mime_body,
g_object_set_data(G_OBJECT(image), "mime-body", mime_body);
g_object_unref(pixbuf);
gtk_container_add(GTK_CONTAINER(mw->widget), image);
+#if 0
gtk_widget_modify_bg(mw->widget, GTK_STATE_NORMAL,
>k_widget_get_style(GTK_WIDGET(bm))->
light[GTK_STATE_NORMAL]);
+#endif
g_signal_connect(G_OBJECT(mw->widget), "button-press-event",
G_CALLBACK(balsa_image_button_press_cb), data);
- gtk_widget_show(image);
-
return mw;
}
diff --git a/src/balsa-mime-widget-message.c b/src/balsa-mime-widget-message.c
index 218e2ee..f050457 100644
--- a/src/balsa-mime-widget-message.c
+++ b/src/balsa-mime-widget-message.c
@@ -119,8 +119,6 @@ balsa_mime_widget_new_message(BalsaMessage * bm,
break;
}
g_free(access_type);
- if (mw)
- gtk_widget_show_all(mw->widget);
} else if (!g_ascii_strcasecmp("message/rfc822", content_type)) {
GtkWidget *emb_hdrs;
@@ -132,7 +130,6 @@ balsa_mime_widget_new_message(BalsaMessage * bm,
gtk_container_set_border_width(GTK_CONTAINER(mw->container),
BMW_MESSAGE_PADDING);
gtk_container_add(GTK_CONTAINER(mw->widget), mw->container);
- gtk_widget_show(mw->container);
mw->header_widget = emb_hdrs = bm_header_widget_new(bm, NULL);
gtk_box_pack_start(GTK_BOX(mw->container), emb_hdrs, FALSE, FALSE, 0);
@@ -379,7 +376,7 @@ balsa_mime_widget_new_message_tl(BalsaMessage * bm, GtkWidget * tl_buttons)
BalsaMimeWidget *mw;
mw = g_object_new(BALSA_TYPE_MIME_WIDGET, NULL);
-
+
mw->widget = gtk_vbox_new(FALSE, BMW_MESSAGE_PADDING);
gtk_container_set_border_width(GTK_CONTAINER(mw->widget), BMW_MESSAGE_PADDING);
@@ -389,7 +386,6 @@ balsa_mime_widget_new_message_tl(BalsaMessage * bm, GtkWidget * tl_buttons)
mw->container = gtk_vbox_new(FALSE, BMW_MESSAGE_PADDING);
gtk_box_pack_start(GTK_BOX(mw->widget), mw->container, TRUE, TRUE,
BMW_CONTAINER_BORDER - BMW_MESSAGE_PADDING);
- gtk_widget_show_all(mw->widget);
return mw;
}
@@ -404,29 +400,33 @@ balsa_mime_widget_new_message_tl(BalsaMessage * bm, GtkWidget * tl_buttons)
static void
bm_header_widget_realized(GtkWidget * widget, BalsaMessage * bm)
{
- GtkWidget *tl_buttons =
+ GtkStyleContext *context;
+ GdkRGBA rgba;
+ GtkWidget *tl_buttons;
+
+ context = gtk_widget_get_style_context(GTK_WIDGET(bm));
+ gtk_style_context_get_background_color(context, GTK_STATE_FLAG_NORMAL,
+ &rgba);
+ gtk_widget_override_background_color(bm_header_widget_get_text_view
+ (widget), GTK_STATE_FLAG_NORMAL,
+ &rgba);
+
+ tl_buttons =
GTK_WIDGET(g_object_get_data(G_OBJECT(widget), "tl-buttons"));
- GtkStyle *style = gtk_widget_get_style(GTK_WIDGET(bm));
-
- gtk_widget_modify_bg(widget, GTK_STATE_NORMAL,
- &style->dark[GTK_STATE_NORMAL]);
- gtk_widget_modify_base(bm_header_widget_get_text_view(widget),
- GTK_STATE_NORMAL,
- &style->mid[GTK_STATE_NORMAL]);
if (tl_buttons) {
- /* use a fresh style here to deal with pixmap themes correctly */
- GtkStyle *new_style = gtk_style_new();
- new_style->bg[GTK_STATE_NORMAL] = style->mid[GTK_STATE_NORMAL];
- gtk_widget_set_style(tl_buttons, new_style);
- g_object_unref(new_style);
+ gtk_widget_override_background_color(tl_buttons,
+ GTK_STATE_FLAG_NORMAL, &rgba);
}
+
+ gtk_style_context_get_color(context, GTK_STATE_FLAG_NORMAL, &rgba);
+ gtk_widget_override_color(bm_header_widget_get_text_view(widget),
+ GTK_STATE_FLAG_NORMAL, &rgba);
}
/* Callback for the "style-set" signal; reset colors when theme is
* changed. */
static void
-bm_header_widget_set_style(GtkWidget * widget, GtkStyle * previous_style,
- BalsaMessage * bm)
+bm_header_widget_set_style(GtkWidget * widget, BalsaMessage * bm)
{
g_signal_handlers_block_by_func(widget, bm_header_widget_set_style,
bm);
@@ -486,7 +486,7 @@ bm_header_widget_new(BalsaMessage * bm, GtkWidget * buttons)
g_object_set_data(G_OBJECT(widget), "tl-buttons", buttons);
g_signal_connect_after(widget, "realize",
G_CALLBACK(bm_header_widget_realized), bm);
- g_signal_connect_after(widget, "style-set",
+ g_signal_connect_after(widget, "style-updated",
G_CALLBACK(bm_header_widget_set_style), bm);
hbox = gtk_hbox_new(FALSE, 0);
@@ -671,6 +671,7 @@ bmwm_buffer_set_prefs(GtkTextBuffer * buffer)
{
GtkTextTagTable *table = gtk_text_buffer_get_tag_table(buffer);
GtkTextTag *tag;
+ GdkColor color;
tag = gtk_text_tag_table_lookup(table, "subject-font");
g_object_set(tag, "font", balsa_app.subject_font, NULL);
@@ -678,8 +679,12 @@ bmwm_buffer_set_prefs(GtkTextBuffer * buffer)
tag = gtk_text_tag_table_lookup(table, "message-font");
g_object_set(tag, "font", balsa_app.message_font, NULL);
+ color.red = G_MAXUINT16 * balsa_app.url_color.red;
+ color.green = G_MAXUINT16 * balsa_app.url_color.green;
+ color.blue = G_MAXUINT16 * balsa_app.url_color.blue;
+ color.pixel = 0;
tag = gtk_text_tag_table_lookup(table, "url");
- g_object_set(tag, "foreground-gdk", &balsa_app.url_color, NULL);
+ g_object_set(tag, "foreground-gdk", &color, NULL);
}
void
@@ -711,10 +716,10 @@ balsa_mime_widget_message_set_headers_d(BalsaMessage * bm,
}
if (bm->shown_headers == HEADERS_NONE) {
- gtk_widget_hide(widget);
+ g_signal_connect(G_OBJECT(widget), "realize",
+ G_CALLBACK(gtk_widget_hide), NULL);
return;
- } else
- gtk_widget_show_all(widget);
+ }
bm->tab_position = 0;
diff --git a/src/balsa-mime-widget-text.c b/src/balsa-mime-widget-text.c
index fe28abd..d457db9 100644
--- a/src/balsa-mime-widget-text.c
+++ b/src/balsa-mime-widget-text.c
@@ -220,8 +220,6 @@ balsa_mime_widget_new_text(BalsaMessage * bm, LibBalsaMessageBody * mime_body,
(gpointer)mime_body);
buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(mw->widget));
- allocate_quote_colors(GTK_WIDGET(bm), balsa_app.quoted_color,
- 0, MAX_QUOTED_COLOR - 1);
url_list = fill_text_buf_cited(mw->widget, ptr,
libbalsa_message_body_is_flowed(mime_body),
@@ -346,7 +344,7 @@ bm_modify_font_from_string(GtkWidget * widget, const char *font)
{
PangoFontDescription *desc =
pango_font_description_from_string(balsa_app.message_font);
- gtk_widget_modify_font(widget, desc);
+ gtk_widget_override_font(widget, desc);
pango_font_description_free(desc);
}
@@ -376,11 +374,20 @@ quote_tag(GtkTextBuffer * buffer, gint level, gint margin)
tag = gtk_text_tag_table_lookup(table, name);
if (!tag) {
+ GdkRGBA *rgba;
+ GdkColor color;
+
+ rgba = &balsa_app.quoted_color[q_level];
+ /* As of now, GtkTextTag has no "foreground-rgba" property :( */
+ color.red = G_MAXUINT16 * rgba->red;
+ color.green = G_MAXUINT16 * rgba->green;
+ color.blue = G_MAXUINT16 * rgba->blue;
+ color.pixel = 0;
+
tag =
- gtk_text_buffer_create_tag(buffer, name, "foreground-gdk",
- &balsa_app.quoted_color[q_level],
- "left-margin",
- BALSA_LEFT_MARGIN
+ gtk_text_buffer_create_tag(buffer, name,
+ "foreground-gdk", &color,
+ "left-margin", BALSA_LEFT_MARGIN
+ margin * level,
NULL);
/* Set a low priority, so we can set both quote color and
@@ -915,39 +922,44 @@ draw_cite_bar_real(cite_bar_t * bar, cite_bar_draw_mode_t * draw_mode)
/* initialise iters if we don't have the widget yet */
if (!bar->bar) {
- gtk_text_buffer_get_iter_at_offset(draw_mode->buffer, &bar->start_iter,
- bar->start_offs);
- gtk_text_buffer_get_iter_at_offset(draw_mode->buffer, &bar->end_iter,
- bar->end_offs);
+ gtk_text_buffer_get_iter_at_offset(draw_mode->buffer,
+ &bar->start_iter,
+ bar->start_offs);
+ gtk_text_buffer_get_iter_at_offset(draw_mode->buffer,
+ &bar->end_iter,
+ bar->end_offs);
}
/* get the locations */
- gtk_text_view_get_iter_location(draw_mode->view, &bar->start_iter, &location);
- gtk_text_view_buffer_to_window_coords(draw_mode->view, GTK_TEXT_WINDOW_TEXT,
- location.x, location.y,
- &x_pos, &y_pos);
- gtk_text_view_get_iter_location(draw_mode->view, &bar->end_iter, &location);
- gtk_text_view_buffer_to_window_coords(draw_mode->view, GTK_TEXT_WINDOW_TEXT,
- location.x, location.y,
- &x_pos, &height);
+ gtk_text_view_get_iter_location(draw_mode->view, &bar->start_iter,
+ &location);
+ gtk_text_view_buffer_to_window_coords(draw_mode->view,
+ GTK_TEXT_WINDOW_TEXT, location.x,
+ location.y, &x_pos, &y_pos);
+ gtk_text_view_get_iter_location(draw_mode->view, &bar->end_iter,
+ &location);
+ gtk_text_view_buffer_to_window_coords(draw_mode->view,
+ GTK_TEXT_WINDOW_TEXT, location.x,
+ location.y, &x_pos, &height);
height -= y_pos;
/* add a new widget if necessary */
- if (bar->bar == NULL) {
- bar->bar = balsa_cite_bar_new(height, bar->depth, draw_mode->dimension);
- gtk_widget_modify_fg(bar->bar, GTK_STATE_NORMAL,
- &balsa_app.quoted_color[(bar->depth - 1) % MAX_QUOTED_COLOR]);
- gtk_widget_modify_bg(bar->bar, GTK_STATE_NORMAL,
- >k_widget_get_style(GTK_WIDGET
- (draw_mode->view))->
- base[GTK_STATE_NORMAL]);
- gtk_widget_show(bar->bar);
- gtk_text_view_add_child_in_window(draw_mode->view, bar->bar,
- GTK_TEXT_WINDOW_TEXT, 0, y_pos);
+ if (!bar->bar) {
+ bar->bar =
+ balsa_cite_bar_new(height, bar->depth, draw_mode->dimension);
+
+ gtk_widget_override_color(bar->bar, GTK_STATE_FLAG_NORMAL,
+ &balsa_app.
+ quoted_color[(bar->depth -
+ 1) % MAX_QUOTED_COLOR]);
+
+ gtk_widget_show(bar->bar);
+ gtk_text_view_add_child_in_window(draw_mode->view, bar->bar,
+ GTK_TEXT_WINDOW_TEXT, 0, y_pos);
} else if (bar->y_pos != y_pos || bar->height != height) {
- /* shift/resize existing widget */
- balsa_cite_bar_resize(BALSA_CITE_BAR(bar->bar), height);
- gtk_text_view_move_child(draw_mode->view, bar->bar, 0, y_pos);
+ /* shift/resize existing widget */
+ balsa_cite_bar_resize(BALSA_CITE_BAR(bar->bar), height);
+ gtk_text_view_move_child(draw_mode->view, bar->bar, 0, y_pos);
}
/* remember current values */
@@ -1174,7 +1186,6 @@ bm_widget_new_vcard(BalsaMessage *bm, LibBalsaMessageBody *mime_body,
}
g_object_set_data(G_OBJECT(mw->widget), "mime-body", mime_body);
- gtk_widget_show_all(mw->widget);
return mw;
}
@@ -1237,6 +1248,7 @@ fill_text_buf_cited(GtkWidget *widget, const gchar *text_body,
regex_t rex;
#endif /* USE_GREGEX */
gboolean have_regex;
+ GdkColor color;
/* prepare citation regular expression for plain bodies */
if (is_plain) {
@@ -1262,9 +1274,12 @@ fill_text_buf_cited(GtkWidget *widget, const gchar *text_body,
margin = (char_width / 72.0) *
gdk_screen_get_resolution(gdk_screen_get_default());
+ color.red = G_MAXUINT16 * balsa_app.url_color.red;
+ color.green = G_MAXUINT16 * balsa_app.url_color.green;
+ color.blue = G_MAXUINT16 * balsa_app.url_color.blue;
+ color.pixel = 0;
gtk_text_buffer_create_tag(buffer, "url",
- "foreground-gdk",
- &balsa_app.url_color, NULL);
+ "foreground-gdk", &color, NULL);
gtk_text_buffer_create_tag(buffer, "emphasize",
"foreground", "red",
"underline", PANGO_UNDERLINE_SINGLE,
diff --git a/src/balsa-mime-widget-vcalendar.c b/src/balsa-mime-widget-vcalendar.c
index 6925319..cee76de 100644
--- a/src/balsa-mime-widget-vcalendar.c
+++ b/src/balsa-mime-widget-vcalendar.c
@@ -96,7 +96,6 @@ balsa_mime_widget_new_vcalendar(BalsaMessage * bm,
gtk_container_add(GTK_CONTAINER(mw->widget), event);
}
- gtk_widget_show_all(mw->widget);
g_object_unref(vcal_obj);
return mw;
diff --git a/src/balsa-print-object-text.c b/src/balsa-print-object-text.c
index e39f88e..4f6f942 100644
--- a/src/balsa-print-object-text.c
+++ b/src/balsa-print-object-text.c
@@ -803,9 +803,9 @@ balsa_print_object_text_draw(BalsaPrintObject * self,
gint k = (po->cite_level - 1) % MAX_QUOTED_COLOR;
cairo_set_source_rgb(cairo_ctx,
- (gdouble) balsa_app.quoted_color[k].red / 65536.0,
- (gdouble) balsa_app.quoted_color[k].green / 65536.0,
- (gdouble) balsa_app.quoted_color[k].blue / 65536.0);
+ balsa_app.quoted_color[k].red,
+ balsa_app.quoted_color[k].green,
+ balsa_app.quoted_color[k].blue);
}
}
cairo_move_to(cairo_ctx, self->c_at_x + po->cite_level * C_LABEL_SEP,
diff --git a/src/main-window.c b/src/main-window.c
index f45c588..abad69c 100644
--- a/src/main-window.c
+++ b/src/main-window.c
@@ -948,16 +948,6 @@ balsa_window_class_init(BalsaWindowClass * klass)
{
GObjectClass *object_class = (GObjectClass *) klass;
- gtk_rc_parse_string("style \"balsa-notebook-tab-button-style\"\n"
- "{\n"
- "GtkWidget::focus-padding = 0\n"
- "GtkWidget::focus-line-width = 0\n"
- "xthickness = 0\n"
- "ythickness = 0\n"
- "}\n"
- "widget \"*.balsa-notebook-tab-button\"\n"
- "style \"balsa-notebook-tab-button-style\"");
-
window_signals[OPEN_MAILBOX_NODE] =
g_signal_new("open_mailbox_node",
G_TYPE_FROM_CLASS(object_class),
@@ -2256,6 +2246,7 @@ bw_notebook_label_new(BalsaMailboxNode * mbnode)
GtkWidget *but;
GtkSettings *settings;
gint w, h;
+ GtkCssProvider *css_provider;
box = gtk_hbox_new(FALSE, 4);
@@ -2273,6 +2264,25 @@ bw_notebook_label_new(BalsaMailboxNode * mbnode)
gtk_button_set_relief(GTK_BUTTON(but), GTK_RELIEF_NONE);
gtk_widget_set_name(but, "balsa-notebook-tab-button");
+ /* Try to make small close buttons: */
+ css_provider = gtk_css_provider_new();
+ if (!gtk_css_provider_load_from_data(css_provider,
+ "#balsa-notebook-tab-button"
+ "{"
+ "-GtkWidget-focus-padding: 0;"
+ "-GtkWidget-focus-line-width: 0;"
+ "border-width: 0;"
+ "padding: 0;"
+ "margin: 0;"
+ "}",
+ -1, NULL))
+ g_print("Could not load CSS data.\n");
+
+ gtk_style_context_add_provider(gtk_widget_get_style_context(but) ,
+ GTK_STYLE_PROVIDER(css_provider),
+ GTK_STYLE_PROVIDER_PRIORITY_APPLICATION);
+ g_object_unref(css_provider);
+
settings = gtk_widget_get_settings(GTK_WIDGET(lab));
gtk_icon_size_lookup_for_settings(settings, GTK_ICON_SIZE_MENU, &w, &h);
gtk_widget_set_size_request(but, w, h);
diff --git a/src/pref-manager.c b/src/pref-manager.c
index 9c44875..e79800d 100644
--- a/src/pref-manager.c
+++ b/src/pref-manager.c
@@ -1070,17 +1070,17 @@ apply_prefs(GtkDialog * pbox)
/* quoted text color */
for (i = 0; i < MAX_QUOTED_COLOR; i++) {
- gtk_color_button_get_color(GTK_COLOR_BUTTON(pui->quoted_color[i]),
- &balsa_app.quoted_color[i]);
+ gtk_color_button_get_rgba(GTK_COLOR_BUTTON(pui->quoted_color[i]),
+ &balsa_app.quoted_color[i]);
}
/* url color */
- gtk_color_button_get_color(GTK_COLOR_BUTTON(pui->url_color),
- &balsa_app.url_color);
+ gtk_color_button_get_rgba(GTK_COLOR_BUTTON(pui->url_color),
+ &balsa_app.url_color);
/* bad address color */
- gtk_color_button_get_color(GTK_COLOR_BUTTON(pui->bad_address_color),
- &balsa_app.bad_address_color);
+ gtk_color_button_get_rgba(GTK_COLOR_BUTTON(pui->bad_address_color),
+ &balsa_app.bad_address_color);
/* sorting and threading */
libbalsa_mailbox_set_sort_field(NULL, pui->sort_field_index);
@@ -1320,12 +1320,12 @@ set_prefs(void)
/* Colour */
for (i = 0; i < MAX_QUOTED_COLOR; i++)
- gtk_color_button_set_color(GTK_COLOR_BUTTON(pui->quoted_color[i]),
- &balsa_app.quoted_color[i]);
- gtk_color_button_set_color(GTK_COLOR_BUTTON(pui->url_color),
- &balsa_app.url_color);
- gtk_color_button_set_color(GTK_COLOR_BUTTON(pui->bad_address_color),
- &balsa_app.bad_address_color);
+ gtk_color_button_set_rgba(GTK_COLOR_BUTTON(pui->quoted_color[i]),
+ &balsa_app.quoted_color[i]);
+ gtk_color_button_set_rgba(GTK_COLOR_BUTTON(pui->url_color),
+ &balsa_app.url_color);
+ gtk_color_button_set_rgba(GTK_COLOR_BUTTON(pui->bad_address_color),
+ &balsa_app.bad_address_color);
/* Information Message */
pm_combo_box_set_level(pui->information_message_menu,
diff --git a/src/quote-color.c b/src/quote-color.c
index 5dcac00..30b0de9 100644
--- a/src/quote-color.c
+++ b/src/quote-color.c
@@ -80,32 +80,3 @@ is_a_quote(const gchar * str, regex_t * rex)
return cnt;
}
-
-
-/*
- * void allocate_quote_colors.
- *
- * Allocate a color for each of the gradients from the correct
- * colormap.
- */
-void
-allocate_quote_colors(GtkWidget * widget, GdkColor color[],
- gint first, gint last)
-{
- gint i;
-
- for (i = first; i <= last; i++) {
-#if 0
- if (!gdk_colormap_alloc_color(balsa_app.colormap,
- &color[i], FALSE, TRUE)) {
- /* Use black instead: */
- color[i].red = color[i].green = color[i].blue = 0;
- gdk_colormap_alloc_color(balsa_app.colormap, &color[i], FALSE,
- TRUE);
- }
-#endif
- }
-}
-
-
-
diff --git a/src/quote-color.h b/src/quote-color.h
index 2288581..d515969 100644
--- a/src/quote-color.h
+++ b/src/quote-color.h
@@ -51,8 +51,6 @@ extern "C" {
#else /* USE_GREGEX */
extern guint is_a_quote(const gchar *, regex_t * rex);
#endif /* USE_GREGEX */
- extern void allocate_quote_colors(GtkWidget *, GdkColor color[], gint, gint);
-
#ifdef __cplusplus
}
diff --git a/src/save-restore.c b/src/save-restore.c
index 7939fe0..8bb26f0 100644
--- a/src/save-restore.c
+++ b/src/save-restore.c
@@ -62,8 +62,8 @@ static gint config_folder_init(const gchar * group);
static gint config_mailbox_init(const gchar * group);
static gchar *config_get_unused_group(const gchar * group);
-static void save_color(gchar * key, GdkColor * color);
-static void load_color(gchar * key, GdkColor * color);
+static void save_color(gchar * key, GdkRGBA * rgba);
+static void load_color(gchar * key, GdkRGBA * rgba);
static void save_mru(GList *mru, const gchar * group);
static void load_mru(GList **mru, const gchar * group);
@@ -1939,12 +1939,11 @@ config_view_remove(const gchar * url)
}
static void
-save_color(gchar * key, GdkColor * color)
+save_color(gchar * key, GdkRGBA * rgba)
{
gchar *str;
- str = g_strdup_printf("#%04x%04x%04x", color->red, color->green,
- color->blue);
+ str = gdk_rgba_to_string(rgba);
libbalsa_conf_set_string(key, str);
g_free(str);
}
@@ -2054,15 +2053,12 @@ config_mailbox_filters_save(LibBalsaMailbox * mbox)
}
static void
-load_color(gchar * key, GdkColor * color)
+load_color(gchar * key, GdkRGBA * rgba)
{
gchar *str;
str = libbalsa_conf_get_string(key);
- if (g_ascii_strncasecmp(str, "rgb:", 4)
- || sscanf(str + 4, "%4hx/%4hx/%4hx", &color->red, &color->green,
- &color->blue) != 3)
- gdk_color_parse(str, color);
+ gdk_rgba_parse(rgba, str);
g_free(str);
}
diff --git a/src/sendmsg-window.c b/src/sendmsg-window.c
index 078f0a9..e2785eb 100644
--- a/src/sendmsg-window.c
+++ b/src/sendmsg-window.c
@@ -2211,9 +2211,10 @@ add_urlref_attachment(BalsaSendmsg * bsmsg, gchar *url)
fprintf(stderr, "Trying to attach '%s'\n", url);
/* get the pixbuf for the attachment's content type */
- pixbuf = gtk_widget_render_icon(GTK_WIDGET(balsa_app.main_window),
- GTK_STOCK_JUMP_TO,
- GTK_ICON_SIZE_MENU, NULL);
+ pixbuf =
+ gtk_widget_render_icon_pixbuf(GTK_WIDGET(balsa_app.main_window),
+ GTK_STOCK_JUMP_TO,
+ GTK_ICON_SIZE_MENU);
/* create a new attachment info block */
attach_data = balsa_attach_info_new(bsmsg);
@@ -2597,7 +2598,9 @@ create_email_or_string_entry(GtkWidget * table, const gchar * label,
GTK_FILL, GTK_FILL | GTK_SHRINK, 0, 0);
desc = pango_font_description_from_string(balsa_app.message_font);
+#if 0
gtk_widget_modify_font(arr[1], desc);
+#endif
pango_font_description_free(desc);
gtk_table_attach(GTK_TABLE(table), arr[1], 1, 2, y_pos, y_pos + 1,
@@ -3191,9 +3194,7 @@ create_text_area(BalsaSendmsg * bsmsg)
GtkWidget *table;
#if HAVE_GTKSOURCEVIEW
- bsmsg->text = libbalsa_source_view_new(TRUE, balsa_app.quoted_color);
- gtk_source_view_set_show_line_numbers(GTK_SOURCE_VIEW(bsmsg->text),
- FALSE);
+ bsmsg->text = libbalsa_source_view_new(TRUE);
#else /* HAVE_GTKSOURCEVIEW */
bsmsg->text = gtk_text_view_new();
#endif /* HAVE_GTKSOURCEVIEW */
@@ -3203,7 +3204,7 @@ create_text_area(BalsaSendmsg * bsmsg)
/* set the message font */
desc = pango_font_description_from_string(balsa_app.message_font);
- gtk_widget_modify_font(bsmsg->text, desc);
+ gtk_widget_override_font(bsmsg->text, desc);
pango_font_description_free(desc);
buffer = gtk_text_view_get_buffer(text_view);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]