/*
* Sylpheed -- a GTK+ based, lightweight, and fast e-mail client
- * Copyright (C) 1999-2011 Hiroyuki Yamamoto and the Claws Mail team
+ * Copyright (C) 1999-2012 Hiroyuki Yamamoto and the Claws Mail team
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
#ifdef HAVE_CONFIG_H
# include "config.h"
+#include "claws-features.h"
#endif
#include <glib.h>
wcs = g_utf8_to_ucs4(str, -1, &items_read, &items_written, &error);
if (error != NULL) {
- g_warning("An error occured while converting a string from UTF-8 to UCS-4: %s\n",
+ g_warning("An error occurred while converting a string from UTF-8 to UCS-4: %s\n",
error->message);
g_error_free(error);
}
wcs = g_utf8_to_ucs4(str, -1, &items_read, &items_written, &error);
if (error != NULL) {
- g_warning("An error occured while converting a string from UTF-8 to UCS-4: %s\n", error->message);
+ g_warning("An error occurred while converting a string from UTF-8 to UCS-4: %s\n",
+ error->message);
g_error_free(error);
}
if (!wcs || items_written <= 0) return FALSE;
{
GtkTextBuffer *buffer;
GtkTextIter iter;
+ GtkTextMark *mark;
cm_return_if_fail(text != NULL);
gtk_text_buffer_get_iter_at_offset(buffer, &iter, pos);
gtk_text_buffer_place_cursor(buffer, &iter);
- gtk_text_view_scroll_to_iter(text, &iter, 0.0, FALSE, 0.0, 0.0);
+ mark = gtk_text_buffer_create_mark(buffer, NULL, &iter, TRUE);
+ gtk_text_view_scroll_to_mark(text, mark, 0.0, FALSE, 0.0, 0.0);
}
gboolean gtkut_text_view_search_string(GtkTextView *text, const gchar *str,
void gtkut_widget_draw_now(GtkWidget *widget)
{
- if (widget && gtkut_widget_get_visible(widget) && gtkut_widget_is_drawable(widget))
+ if (widget && gtk_widget_get_visible(widget) && gtk_widget_is_drawable(widget))
gdk_window_process_updates(gtk_widget_get_window(widget), FALSE);
}
binding_set = gtk_binding_set_by_class
(GTK_CMCLIST_GET_CLASS(clist));
- gtk_binding_entry_add_signal(binding_set, GDK_n, GDK_CONTROL_MASK,
+ gtk_binding_entry_add_signal(binding_set, GDK_KEY_n, GDK_CONTROL_MASK,
"scroll_vertical", 2,
G_TYPE_ENUM, GTK_SCROLL_STEP_FORWARD,
G_TYPE_FLOAT, 0.0);
- gtk_binding_entry_add_signal(binding_set, GDK_p, GDK_CONTROL_MASK,
+ gtk_binding_entry_add_signal(binding_set, GDK_KEY_p, GDK_CONTROL_MASK,
"scroll_vertical", 2,
G_TYPE_ENUM, GTK_SCROLL_STEP_BACKWARD,
G_TYPE_FLOAT, 0.0);
void gtkut_widget_set_app_icon(GtkWidget *widget)
{
- static GdkPixbuf *icon = NULL;
-
+ static GList *icon_list = NULL;
+
cm_return_if_fail(widget != NULL);
cm_return_if_fail(gtk_widget_get_window(widget) != NULL);
- if (!icon) {
+ if (!icon_list) {
+ GdkPixbuf *icon = NULL, *big_icon = NULL;
stock_pixbuf_gdk(widget, STOCK_PIXMAP_CLAWS_MAIL_ICON, &icon);
- }
- if (icon)
- gtk_window_set_icon(GTK_WINDOW(widget), icon);
+ stock_pixbuf_gdk(widget, STOCK_PIXMAP_CLAWS_MAIL_LOGO, &big_icon);
+ if (icon)
+ icon_list = g_list_append(icon_list, icon);
+ if (big_icon)
+ icon_list = g_list_append(icon_list, big_icon);
+ }
+ if (icon_list)
+ gtk_window_set_icon_list(GTK_WINDOW(widget), icon_list);
}
void gtkut_widget_set_composer_icon(GtkWidget *widget)
{
- static GdkPixbuf *icon = NULL;
-
+ static GList *icon_list = NULL;
+
cm_return_if_fail(widget != NULL);
cm_return_if_fail(gtk_widget_get_window(widget) != NULL);
- if (!icon) {
+ if (!icon_list) {
+ GdkPixbuf *icon = NULL, *big_icon = NULL;
stock_pixbuf_gdk(widget, STOCK_PIXMAP_MAIL_COMPOSE, &icon);
- }
- if (icon)
- gtk_window_set_icon(GTK_WINDOW(widget), icon);
+ stock_pixbuf_gdk(widget, STOCK_PIXMAP_MAIL_COMPOSE_LOGO, &big_icon);
+ if (icon)
+ icon_list = g_list_append(icon_list, icon);
+ if (big_icon)
+ icon_list = g_list_append(icon_list, big_icon);
+ }
+ if (icon_list)
+ gtk_window_set_icon_list(GTK_WINDOW(widget), icon_list);
}
static gboolean move_bar = FALSE;
for (c = child_list; c != NULL; c = g_list_next(c)) {
if (c->data && GTK_IS_WIDGET(c->data)) {
- if (gtkut_widget_has_focus(GTK_WIDGET(c->data))) {
+ if (gtk_widget_has_focus(GTK_WIDGET(c->data))) {
result = GTK_WIDGET(c->data);
break;
}
if ((gdk_pixbuf_get_width(pixbuf) != 48) || (gdk_pixbuf_get_height(pixbuf) != 48)) {
g_object_unref(pixbuf);
- g_warning("wrong_size");
+ g_warning("wrong_size\n");
return NULL;
}
{
GtkWidget *btn;
GtkWidget *btn_label;
+#if !GTK_CHECK_VERSION(3, 0, 0)
GdkColormap *cmap;
- GdkColor uri_color[2] = {{0, 0, 0, 0xffff}, {0, 0xffff, 0, 0}};
gboolean success[2];
+#endif
+ GdkColor uri_color[2] = {{0, 0, 0, 0xffff}, {0, 0xffff, 0, 0}};
gchar *local_url = NULL;
if (!url)
return NULL;
btn = gtk_button_new_with_label(label?label:url);
gtk_button_set_relief(GTK_BUTTON(btn), GTK_RELIEF_NONE);
btn_label = gtk_bin_get_child(GTK_BIN((btn)));
+#if !GTK_CHECK_VERSION(3, 0, 0)
cmap = gdk_drawable_get_colormap(gtk_widget_get_window(window));
gdk_colormap_alloc_colors(cmap, uri_color, 2, FALSE, TRUE, success);
if (success[0] == TRUE && success[1] == TRUE) {
+#endif
GtkStyle *style;
gtk_widget_ensure_style(btn_label);
style = gtk_style_copy
style->fg[GTK_STATE_ACTIVE] = uri_color[1];
style->fg[GTK_STATE_PRELIGHT] = uri_color[0];
gtk_widget_set_style(btn_label, style);
+#if !GTK_CHECK_VERSION(3, 0, 0)
} else
- g_warning("about_create(): color allocation failed.\n");
+ g_warning("color allocation failed\n");
+#endif
g_signal_connect(G_OBJECT(btn), "enter",
G_CALLBACK(link_btn_enter), window);
return gui_manager;
}
-#define READ_CONDITION (G_IO_IN | G_IO_HUP | G_IO_ERR)
-#define WRITE_CONDITION (G_IO_OUT | G_IO_ERR)
-#define EXCEPTION_CONDITION (G_IO_PRI)
typedef struct _ClawsIOClosure ClawsIOClosure;
struct _ClawsIOClosure
{
- GdkInputFunction function;
- GdkInputCondition condition;
+ ClawsIOFunc function;
+ GIOCondition condition;
GDestroyNotify notify;
gpointer data;
};
static gboolean
claws_io_invoke (GIOChannel *source,
- GIOCondition condition,
- gpointer data)
+ GIOCondition condition,
+ gpointer data)
{
ClawsIOClosure *closure = data;
- GdkInputCondition gdk_cond = 0;
-
- if (condition & READ_CONDITION)
- gdk_cond |= GDK_INPUT_READ;
- if (condition & WRITE_CONDITION)
- gdk_cond |= GDK_INPUT_WRITE;
- if (condition & EXCEPTION_CONDITION)
- gdk_cond |= GDK_INPUT_EXCEPTION;
-
- if (closure->condition & gdk_cond)
- closure->function (closure->data, g_io_channel_unix_get_fd (source), gdk_cond);
+ int fd;
+#ifndef G_OS_WIN32
+ fd = g_io_channel_unix_get_fd (source);
+#else
+ fd = g_io_channel_win32_get_fd (source);
+#endif
+ if (closure->condition & condition)
+ closure->function (closure->data, fd, condition);
return TRUE;
}
gint
claws_input_add (gint source,
- GdkInputCondition condition,
- GdkInputFunction function,
+ GIOCondition condition,
+ ClawsIOFunc function,
gpointer data,
gboolean is_sock)
{
guint result;
ClawsIOClosure *closure = g_new (ClawsIOClosure, 1);
GIOChannel *channel;
- GIOCondition cond = 0;
closure->function = function;
closure->condition = condition;
closure->notify = NULL;
closure->data = data;
- if (condition & GDK_INPUT_READ)
- cond |= READ_CONDITION;
- if (condition & GDK_INPUT_WRITE)
- cond |= WRITE_CONDITION;
- if (condition & GDK_INPUT_EXCEPTION)
- cond |= EXCEPTION_CONDITION;
-
#ifndef G_OS_WIN32
channel = g_io_channel_unix_new (source);
#else
else
channel = g_io_channel_win32_new_fd(source);
#endif
- result = g_io_add_watch_full (channel, G_PRIORITY_DEFAULT, cond,
+ result = g_io_add_watch_full (channel, G_PRIORITY_DEFAULT, condition,
claws_io_invoke,
closure, claws_io_destroy);
g_io_channel_unref (channel);
return result;
}
-gboolean gtkut_widget_has_focus(GtkWidget *widget)
-{
-#if GTK_CHECK_VERSION(2,18,0)
- return gtk_widget_has_focus(widget);
-#else
- return GTK_WIDGET_HAS_FOCUS(widget);
-#endif
-}
-
-gboolean gtkut_widget_get_can_focus(GtkWidget *widget)
-{
-#if GTK_CHECK_VERSION(2,18,0)
- return gtk_widget_get_can_focus(widget);
-#else
- return GTK_WIDGET_CAN_FOCUS(widget);
-#endif
-}
-
-gboolean gtkut_widget_has_grab(GtkWidget *widget)
-{
-#if GTK_CHECK_VERSION(2,18,0)
- return gtk_widget_has_grab(widget);
-#else
- return GTK_WIDGET_HAS_GRAB(widget);
-#endif
-}
-
-gboolean gtkut_widget_get_visible(GtkWidget *widget)
-{
-#if GTK_CHECK_VERSION(2,18,0)
- return gtk_widget_get_visible(widget);
-#else
- return GTK_WIDGET_VISIBLE(widget);
-#endif
-}
-
-gboolean gtkut_widget_get_realized(GtkWidget *widget)
-{
-#if GTK_CHECK_VERSION(2,19,0)
- return gtk_widget_get_realized(widget);
-#else
- return GTK_WIDGET_REALIZED(widget);
-#endif
-}
-
-gboolean gtkut_widget_is_sensitive(GtkWidget *widget)
-{
-#if GTK_CHECK_VERSION(2,18,0)
- return gtk_widget_is_sensitive(widget);
-#else
- return GTK_WIDGET_IS_SENSITIVE(widget);
-#endif
-}
-
-gboolean gtkut_widget_get_sensitive(GtkWidget *widget)
-{
-#if GTK_CHECK_VERSION(2,18,0)
- return gtk_widget_get_sensitive(widget);
-#else
- return GTK_WIDGET_SENSITIVE(widget);
-#endif
-}
-
-gboolean gtkut_widget_is_drawable(GtkWidget *widget)
-{
-#if GTK_CHECK_VERSION(2,18,0)
- return gtk_widget_is_drawable(widget);
-#else
- return GTK_WIDGET_DRAWABLE(widget);
-#endif
-}
-
-GtkStateType gtkut_widget_get_state(GtkWidget *widget)
-{
-#if GTK_CHECK_VERSION(2,18,0)
- return gtk_widget_get_state(widget);
-#else
- return GTK_WIDGET_STATE(widget);
-#endif
-}
-
-gboolean gtkut_widget_get_mapped(GtkWidget *widget)
-{
-#if GTK_CHECK_VERSION(2,19,0)
- return gtk_widget_get_mapped(widget);
-#else
- return GTK_WIDGET_MAPPED(widget);
-#endif
-}
-
-gboolean gtkut_widget_get_has_window(GtkWidget *widget)
-{
-#if GTK_CHECK_VERSION(2,18,0)
- return gtk_widget_get_has_window(widget);
-#else
- return GTK_WIDGET_NO_WINDOW(widget);
-#endif
-}
-
-gboolean gtkut_widget_get_app_paintable(GtkWidget *widget)
-{
-#if GTK_CHECK_VERSION(2,18,0)
- return gtk_widget_get_app_paintable(widget);
-#else
- return GTK_WIDGET_APP_PAINTABLE(widget);
-#endif
-}
-
void gtkut_widget_set_mapped(GtkWidget *widget, gboolean mapped)
{
#if GTK_CHECK_VERSION(2,20,0)