[gthumb] removed the use of many deprecated functions



commit 62811c667dcc5601c711412279f0037172f3bc10
Author: Paolo Bacchilega <paobac src gnome org>
Date:   Mon Jul 1 21:38:52 2013 +0200

    removed the use of many deprecated functions

 configure.ac                                       |   16 +-
 extensions/cairo_io/cairo-image-surface-jpeg.c     |   10 +-
 extensions/cairo_io/cairo-image-surface-xcf.c      |  196 ------------------
 extensions/gstreamer_tools/gth-media-viewer-page.c |   14 +-
 extensions/oauth/oauth-consumer.h                  |    4 -
 extensions/oauth/web-service.c                     |   10 +-
 gthumb/Makefile.am                                 |    2 +
 gthumb/color-utils.c                               |  218 ++++++++++++++++++++
 gthumb/color-utils.h                               |   55 +++++
 gthumb/glib-utils.c                                |    6 +-
 gthumb/glib-utils.h                                |    6 +-
 gthumb/gth-color-scale.c                           |    1 +
 gthumb/gth-empty-list.c                            |    8 +-
 gthumb/gth-grid-view.c                             |    6 +-
 gthumb/gth-histogram-view.c                        |    2 +-
 gthumb/gth-main.c                                  |   52 +++---
 gthumb/gth-toolbox.c                               |    4 +-
 gthumb/gtk-utils.c                                 |   33 ++-
 gthumb/main.c                                      |    2 -
 po/POTFILES.in                                     |    2 +
 tests/dom-test.c                                   |   71 +++----
 tests/glib-utils-test.c                            |    1 -
 22 files changed, 399 insertions(+), 320 deletions(-)
---
diff --git a/configure.ac b/configure.ac
index cda526f..5bff612 100644
--- a/configure.ac
+++ b/configure.ac
@@ -64,7 +64,7 @@ CLUTTER_REQUIRED=1.0.0
 CLUTTER_GTK_REQUIRED=1.0.0
 GSTREAMER_REQUIRED=1.0.0
 LIBRAW_REQUIRED=0.14
-LIBSOUP_REQUIRED=2.36
+LIBSOUP_REQUIRED=2.42
 LIBSECRET_REQUIRED=0.11
 LIBBRASERO_REQUIRED=3.2.0
 LIBCHAMPLAIN_REQUIRED=0.12.0
@@ -502,16 +502,10 @@ AC_ARG_ENABLE([libsoup],
              [enable_libsoup=yes])
 
 if test x$enable_libsoup = xyes ; then
-       PKG_CHECK_MODULES(LIBSOUP_GNOME,
-                         [libsoup-gnome-2.4 >= $LIBSOUP_REQUIRED],
-                         [LIBSOUP_CFLAGS="$LIBSOUP_GNOME_CFLAGS"
-                          LIBSOUP_LIBS="$LIBSOUP_GNOME_LIBS"
-                          AC_DEFINE(HAVE_LIBSOUP_GNOME, 1, [Have libsoup-gnome])
-                          enable_libsoup=yes],
-                         [PKG_CHECK_MODULES(LIBSOUP,
-                                            [libsoup-2.4 >= $LIBSOUP_REQUIRED],
-                                            [enable_libsoup=yes],
-                                            [enable_libsoup=no])])
+         PKG_CHECK_MODULES(LIBSOUP,
+                           [libsoup-2.4 >= $LIBSOUP_REQUIRED],
+                           [enable_libsoup=yes],
+                           [enable_libsoup=no])
 fi
 AC_SUBST(LIBSOUP_CFLAGS)
 AC_SUBST(LIBSOUP_LIBS)
diff --git a/extensions/cairo_io/cairo-image-surface-jpeg.c b/extensions/cairo_io/cairo-image-surface-jpeg.c
index 96ad677..90e5f2a 100644
--- a/extensions/cairo_io/cairo-image-surface-jpeg.c
+++ b/extensions/cairo_io/cairo-image-surface-jpeg.c
@@ -85,7 +85,7 @@ static int           *YCbCr_R_Cr_Tab = NULL;
 static int           *YCbCr_G_Cb_Tab = NULL;
 static int           *YCbCr_G_Cr_Tab = NULL;
 static int           *YCbCr_B_Cb_Tab = NULL;
-static GStaticMutex   Tables_Mutex = G_STATIC_MUTEX_INIT;
+static GMutex         Tables_Mutex;
 
 
 #define SCALE_FACTOR   16
@@ -97,7 +97,7 @@ static GStaticMutex   Tables_Mutex = G_STATIC_MUTEX_INIT;
 static void
 CMYK_table_init (void)
 {
-       g_static_mutex_lock (&Tables_Mutex);
+       g_mutex_lock (&Tables_Mutex);
 
        if (CMYK_Tab == NULL) {
                int    v, k, i;
@@ -114,14 +114,14 @@ CMYK_table_init (void)
                }
        }
 
-       g_static_mutex_unlock (&Tables_Mutex);
+       g_mutex_unlock (&Tables_Mutex);
 }
 
 
 static void
 YCbCr_tables_init (void)
 {
-       g_static_mutex_lock (&Tables_Mutex);
+       g_mutex_lock (&Tables_Mutex);
 
        if (YCbCr_R_Cr_Tab == NULL) {
                int i, v;
@@ -139,7 +139,7 @@ YCbCr_tables_init (void)
                }
        }
 
-       g_static_mutex_unlock (&Tables_Mutex);
+       g_mutex_unlock (&Tables_Mutex);
 }
 
 
diff --git a/extensions/cairo_io/cairo-image-surface-xcf.c b/extensions/cairo_io/cairo-image-surface-xcf.c
index e0c8920..5846976 100644
--- a/extensions/cairo_io/cairo-image-surface-xcf.c
+++ b/extensions/cairo_io/cairo-image-surface-xcf.c
@@ -37,8 +37,6 @@
 #define TILE_WIDTH                     64
 #define MAX_TILE_SIZE                  (TILE_WIDTH * TILE_WIDTH * 4 * 1.5)
 #define ADD_ALPHA(v, a)                        (add_alpha_table[v][a])
-#define MIN3(x,y,z)                    ((y) <= (z) ? MIN ((x), (y)) : MIN ((x), (z)))
-#define MAX3(x,y,z)                    ((y) >= (z) ? MAX ((x), (y)) : MAX ((x), (z)))
 #define DISSOLVE_SEED                  737893334
 #define CLAMP_TEMP(x, min, max)                (temp = (x), CLAMP (temp, min, max))
 #define ABS_TEMP2(x)                   (temp2 = (x), (temp2 < 0) ? -temp2: temp2)
@@ -313,200 +311,6 @@ gimp_layer_free (GimpLayer *layer)
 /* -- _cairo_image_surface_create_from_xcf -- */
 
 
-/* RGB <-> HSV */
-
-
-static void
-gimp_rgb_to_hsv (guchar  red,
-                guchar  green,
-                guchar  blue,
-                guchar *hue,
-                guchar *sat,
-                guchar *val)
-{
-       guchar min, max;
-
-       min = MIN3 (red, green, blue);
-       max = MAX3 (red, green, blue);
-
-       *val = max;
-       if (*val == 0) {
-               *hue = *sat = 0;
-               return;
-       }
-
-       *sat = 255 * (long)(max - min) / *val;
-       if (*sat == 0) {
-               *hue = 0;
-               return;
-       }
-
-       if (max == min)
-               *hue = 0;
-       else if (max == red)
-               *hue = 0 + 43 * (green - blue) / (max - min);
-       else if (max == green)
-               *hue = 85 + 43 * (blue - red) / (max - min);
-       else if (max == blue)
-               *hue = 171 + 43 * (red - green) / (max - min);
-}
-
-
-static void
-gimp_hsv_to_rgb (guchar  hue,
-                guchar  sat,
-                guchar  val,
-                guchar *red,
-                guchar *green,
-                guchar *blue)
-{
-       guchar region, remainder, p, q, t;
-
-       if (sat == 0) {
-               *red = *green = *blue = val;
-               return;
-       }
-
-       region = hue / 43;
-       remainder = (hue - (region * 43)) * 6;
-
-       p = (val * (255 - sat)) >> 8;
-       q = (val * (255 - ((sat * remainder) >> 8))) >> 8;
-       t = (val * (255 - ((sat * (255 - remainder)) >> 8))) >> 8;
-
-       switch (region) {
-       case 0:
-               *red = val;
-               *green = t;
-               *blue = p;
-               break;
-       case 1:
-               *red = q;
-               *green = val;
-               *blue = p;
-               break;
-       case 2:
-               *red = p;
-               *green = val;
-               *blue = t;
-               break;
-       case 3:
-               *red = p;
-               *green = q;
-               *blue = val;
-               break;
-       case 4:
-               *red = t;
-               *green = p;
-               *blue = val;
-               break;
-       default:
-               *red = val;
-               *green = p;
-               *blue = q;
-               break;
-       }
-}
-
-
-/* RGB <-> HSL */
-
-
-static void
-gimp_rgb_to_hsl (guchar  red,
-                guchar  green,
-                guchar  blue,
-                guchar *hue,
-                guchar *sat,
-                guchar *lum)
-{
-       guchar min, max;
-
-       min = MIN3 (red, green, blue);
-       max = MAX3 (red, green, blue);
-
-       *lum = (max + min) / 2;
-
-       if (max == min) {
-               *hue = *sat = 0;
-               return;
-       }
-
-       if (*lum < 128)
-               *sat = 255 * (long) (max - min) / (max + min);
-       else
-               *sat = 255 * (long) (max - min) / (512 - max - min);
-
-       if (max == min)
-               *hue = 0;
-       else if (max == red)
-               *hue = 0 + 43 * (green - blue) / (max - min);
-       else if (max == green)
-               *hue = 85 + 43 * (blue - red) / (max - min);
-       else if (max == blue)
-               *hue = 171 + 43 * (red - green) / (max - min);
-}
-
-
-static inline gint
-gimp_hsl_value (gdouble n1,
-                gdouble n2,
-                gdouble hue)
-{
-       gdouble value;
-
-       if (hue > 255)
-               hue -= 255;
-       else if (hue < 0)
-               hue += 255;
-
-       if (hue < 42.5)
-               value = n1 + (n2 - n1) * (hue / 42.5);
-       else if (hue < 127.5)
-               value = n2;
-       else if (hue < 170)
-               value = n1 + (n2 - n1) * ((170 - hue) / 42.5);
-       else
-               value = n1;
-
-       return value * 255.0;
-}
-
-
-static void
-gimp_hsl_to_rgb (guchar  hue,
-                guchar  sat,
-                guchar  lum,
-                guchar *red,
-                guchar *green,
-                guchar *blue)
-{
-       if (sat == 0) {
-               *red = lum;
-               *green = lum;
-               *blue = lum;
-       }
-       else {
-               gdouble h, s, l, m1, m2;
-
-               h = hue;
-               s = sat;
-               l = lum;
-
-               if (l < 128)
-                       m2 = (l * (255 + s)) / 65025.0;
-               else
-                       m2 = (l + s - (l * s) / 255.0) / 255.0;
-
-               m1 = (l / 127.5) - m2;
-
-               *red = gimp_hsl_value (m1, m2, h + 85);
-               *green = gimp_hsl_value (m1, m2, h);
-               *blue  = gimp_hsl_value (m1, m2, h - 85);
-       }
-}
-
-
 static void
 _cairo_image_surface_paint_layer (cairo_surface_t *image,
                                  GimpLayer       *layer)
diff --git a/extensions/gstreamer_tools/gth-media-viewer-page.c 
b/extensions/gstreamer_tools/gth-media-viewer-page.c
index 716cc42..e19e754 100644
--- a/extensions/gstreamer_tools/gth-media-viewer-page.c
+++ b/extensions/gstreamer_tools/gth-media-viewer-page.c
@@ -226,11 +226,12 @@ video_area_draw_cb (GtkWidget *widget,
        cairo_fill (cr);
 
        if (self->priv->icon != NULL) {
-               int            icon_w, icon_h;
-               int            text_w;
-               int            icon_x, icon_y;
-               PangoRectangle logical_rect;
-               int            x, y;
+               int                   icon_w, icon_h;
+               int                   text_w;
+               int                   icon_x, icon_y;
+               PangoRectangle        logical_rect;
+               int                   x, y;
+               PangoFontDescription *font;
 
                icon_w = gdk_pixbuf_get_width (self->priv->icon);
                icon_h = gdk_pixbuf_get_height (self->priv->icon);
@@ -250,7 +251,8 @@ video_area_draw_cb (GtkWidget *widget,
                cairo_fill (cr);
 
                cairo_move_to (cr, x, y);
-               pango_layout_set_font_description (self->priv->caption_layout, gtk_style_context_get_font 
(style_context, gtk_widget_get_state (widget)));
+               gtk_style_context_get (style_context, gtk_widget_get_state (widget), "font", &font, NULL);
+               pango_layout_set_font_description (self->priv->caption_layout, font);
                pango_cairo_layout_path (cr, self->priv->caption_layout);
                cairo_set_source_rgb (cr, 1.0, 1.0, 1.0);
                cairo_fill (cr);
diff --git a/extensions/oauth/oauth-consumer.h b/extensions/oauth/oauth-consumer.h
index 1ecb0de..92d9f04 100644
--- a/extensions/oauth/oauth-consumer.h
+++ b/extensions/oauth/oauth-consumer.h
@@ -24,11 +24,7 @@
 
 
 #include <glib.h>
-#ifdef HAVE_LIBSOUP_GNOME
-#include <libsoup/soup-gnome.h>
-#else
 #include <libsoup/soup.h>
-#endif /* HAVE_LIBSOUP_GNOME */
 #include "oauth-account.h"
 #include "oauth-service.h"
 
diff --git a/extensions/oauth/web-service.c b/extensions/oauth/web-service.c
index adb0722..48627ef 100644
--- a/extensions/oauth/web-service.c
+++ b/extensions/oauth/web-service.c
@@ -22,11 +22,7 @@
 #include <config.h>
 #include <glib.h>
 #include <glib/gi18n.h>
-#ifdef HAVE_LIBSOUP_GNOME
-#include <libsoup/soup-gnome.h>
-#else
 #include <libsoup/soup.h>
-#endif /* HAVE_LIBSOUP_GNOME */
 #ifdef HAVE_LIBSECRET
 #include <libsecret/secret.h>
 #endif /* HAVE_LIBSECRET */
@@ -844,11 +840,7 @@ _web_service_send_message (WebService          *self,
                           gpointer             soup_session_cb_data)
 {
        if (self->priv->session == NULL) {
-               self->priv->session = soup_session_async_new_with_options (
-#ifdef HAVE_LIBSOUP_GNOME
-                       SOUP_SESSION_ADD_FEATURE_BY_TYPE, SOUP_TYPE_PROXY_RESOLVER_GNOME,
-#endif
-                       NULL);
+               self->priv->session = soup_session_new ();
 
 #ifdef DEBUG_WEB_CONNECTION
                {
diff --git a/gthumb/Makefile.am b/gthumb/Makefile.am
index fe114da..172514b 100644
--- a/gthumb/Makefile.am
+++ b/gthumb/Makefile.am
@@ -25,6 +25,7 @@ PUBLIC_HEADER_FILES =                                         \
        $(PUBLIC_BUILT_HEADER_FILES)                    \
        cairo-scale.h                                   \
        cairo-utils.h                                   \
+       color-utils.h                                   \
        dom.h                                           \
        gedit-message-area.h                            \
        gfixed.h                                        \
@@ -157,6 +158,7 @@ gthumb_SOURCES =                                    \
        $(RESOURCES)                                    \
        cairo-scale.c                                   \
        cairo-utils.c                                   \
+       color-utils.c                                   \
        dlg-location.c                                  \
        dlg-personalize-filters.c                       \
        dlg-preferences.c                               \
diff --git a/gthumb/color-utils.c b/gthumb/color-utils.c
new file mode 100644
index 0000000..2ff51ee
--- /dev/null
+++ b/gthumb/color-utils.c
@@ -0,0 +1,218 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
+
+/*
+ *  GThumb
+ *
+ *  Copyright (C) 2012 The Free Software Foundation, Inc.
+ *
+ *  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
+ *  the Free Software Foundation; either version 2 of the License, or
+ *  (at your option) any later version.
+ *
+ *  This program is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include <config.h>
+#include "color-utils.h"
+#include "glib-utils.h"
+
+
+/* RGB <-> HSV */
+
+
+void
+gimp_rgb_to_hsv (guchar  red,
+                guchar  green,
+                guchar  blue,
+                guchar *hue,
+                guchar *sat,
+                guchar *val)
+{
+       guchar min, max;
+
+       min = MIN3 (red, green, blue);
+       max = MAX3 (red, green, blue);
+
+       *val = max;
+       if (*val == 0) {
+               *hue = *sat = 0;
+               return;
+       }
+
+       *sat = 255 * (long)(max - min) / *val;
+       if (*sat == 0) {
+               *hue = 0;
+               return;
+       }
+
+       if (max == min)
+               *hue = 0;
+       else if (max == red)
+               *hue = 0 + 43 * (green - blue) / (max - min);
+       else if (max == green)
+               *hue = 85 + 43 * (blue - red) / (max - min);
+       else if (max == blue)
+               *hue = 171 + 43 * (red - green) / (max - min);
+}
+
+
+void
+gimp_hsv_to_rgb (guchar  hue,
+                guchar  sat,
+                guchar  val,
+                guchar *red,
+                guchar *green,
+                guchar *blue)
+{
+       guchar region, remainder, p, q, t;
+
+       if (sat == 0) {
+               *red = *green = *blue = val;
+               return;
+       }
+
+       region = hue / 43;
+       remainder = (hue - (region * 43)) * 6;
+
+       p = (val * (255 - sat)) >> 8;
+       q = (val * (255 - ((sat * remainder) >> 8))) >> 8;
+       t = (val * (255 - ((sat * (255 - remainder)) >> 8))) >> 8;
+
+       switch (region) {
+       case 0:
+               *red = val;
+               *green = t;
+               *blue = p;
+               break;
+       case 1:
+               *red = q;
+               *green = val;
+               *blue = p;
+               break;
+       case 2:
+               *red = p;
+               *green = val;
+               *blue = t;
+               break;
+       case 3:
+               *red = p;
+               *green = q;
+               *blue = val;
+               break;
+       case 4:
+               *red = t;
+               *green = p;
+               *blue = val;
+               break;
+       default:
+               *red = val;
+               *green = p;
+               *blue = q;
+               break;
+       }
+}
+
+
+/* RGB <-> HSL */
+
+
+void
+gimp_rgb_to_hsl (guchar  red,
+                guchar  green,
+                guchar  blue,
+                guchar *hue,
+                guchar *sat,
+                guchar *lum)
+{
+       guchar min, max;
+
+       min = MIN3 (red, green, blue);
+       max = MAX3 (red, green, blue);
+
+       *lum = (max + min) / 2;
+
+       if (max == min) {
+               *hue = *sat = 0;
+               return;
+       }
+
+       if (*lum < 128)
+               *sat = 255 * (long) (max - min) / (max + min);
+       else
+               *sat = 255 * (long) (max - min) / (512 - max - min);
+
+       if (max == min)
+               *hue = 0;
+       else if (max == red)
+               *hue = 0 + 43 * (green - blue) / (max - min);
+       else if (max == green)
+               *hue = 85 + 43 * (blue - red) / (max - min);
+       else if (max == blue)
+               *hue = 171 + 43 * (red - green) / (max - min);
+}
+
+
+inline gint
+gimp_hsl_value (gdouble n1,
+                gdouble n2,
+                gdouble hue)
+{
+       gdouble value;
+
+       if (hue > 255)
+               hue -= 255;
+       else if (hue < 0)
+               hue += 255;
+
+       if (hue < 42.5)
+               value = n1 + (n2 - n1) * (hue / 42.5);
+       else if (hue < 127.5)
+               value = n2;
+       else if (hue < 170)
+               value = n1 + (n2 - n1) * ((170 - hue) / 42.5);
+       else
+               value = n1;
+
+       return value * 255.0;
+}
+
+
+void
+gimp_hsl_to_rgb (guchar  hue,
+                guchar  sat,
+                guchar  lum,
+                guchar *red,
+                guchar *green,
+                guchar *blue)
+{
+       if (sat == 0) {
+               *red = lum;
+               *green = lum;
+               *blue = lum;
+       }
+       else {
+               gdouble h, s, l, m1, m2;
+
+               h = hue;
+               s = sat;
+               l = lum;
+
+               if (l < 128)
+                       m2 = (l * (255 + s)) / 65025.0;
+               else
+                       m2 = (l + s - (l * s) / 255.0) / 255.0;
+
+               m1 = (l / 127.5) - m2;
+
+               *red = gimp_hsl_value (m1, m2, h + 85);
+               *green = gimp_hsl_value (m1, m2, h);
+               *blue  = gimp_hsl_value (m1, m2, h - 85);
+       }
+}
diff --git a/gthumb/color-utils.h b/gthumb/color-utils.h
new file mode 100644
index 0000000..5915e43
--- /dev/null
+++ b/gthumb/color-utils.h
@@ -0,0 +1,55 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
+
+/*
+ *  GThumb
+ *
+ *  Copyright (C) 2013 Free Software Foundation, Inc.
+ *
+ *  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
+ *  the Free Software Foundation; either version 2 of the License, or
+ *  (at your option) any later version.
+ *
+ *  This program is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#ifndef COLOR_UTILS_H
+#define COLOR_UTILS_H
+
+#include <glib.h>
+
+void gimp_rgb_to_hsv   (guchar  red,
+                        guchar  green,
+                        guchar  blue,
+                        guchar *hue,
+                        guchar *sat,
+                        guchar *val);
+void gimp_hsv_to_rgb   (guchar  hue,
+                        guchar  sat,
+                        guchar  val,
+                        guchar *red,
+                        guchar *green,
+                        guchar *blue);
+void gimp_rgb_to_hsl   (guchar  red,
+                        guchar  green,
+                        guchar  blue,
+                        guchar *hue,
+                        guchar *sat,
+                        guchar *lum);
+int  gimp_hsl_value    (gdouble n1,
+                        gdouble n2,
+                        gdouble hue);
+void gimp_hsl_to_rgb   (guchar  hue,
+                        guchar  sat,
+                        guchar  lum,
+                        guchar *red,
+                        guchar *green,
+                        guchar *blue);
+
+#endif /* COLOR_UTILS_H */
diff --git a/gthumb/glib-utils.c b/gthumb/glib-utils.c
index e51c99d..1191302 100644
--- a/gthumb/glib-utils.c
+++ b/gthumb/glib-utils.c
@@ -1165,7 +1165,7 @@ _g_list_insert_list_before (GList *list1,
 
 
 GHashTable *static_strings = NULL;
-static GStaticMutex static_strings_mutex = G_STATIC_MUTEX_INIT;
+static GMutex static_strings_mutex;
 
 
 const char *
@@ -1176,7 +1176,7 @@ get_static_string (const char *s)
        if (s == NULL)
                return NULL;
 
-       g_static_mutex_lock (&static_strings_mutex);
+       g_mutex_lock (&static_strings_mutex);
 
        if (static_strings == NULL)
                static_strings = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, NULL);
@@ -1188,7 +1188,7 @@ get_static_string (const char *s)
                                     GINT_TO_POINTER (1));
        }
 
-       g_static_mutex_unlock (&static_strings_mutex);
+       g_mutex_unlock (&static_strings_mutex);
 
        return result;
 }
diff --git a/gthumb/glib-utils.h b/gthumb/glib-utils.h
index 0b54fd3..b194a3a 100644
--- a/gthumb/glib-utils.h
+++ b/gthumb/glib-utils.h
@@ -31,8 +31,10 @@ G_BEGIN_DECLS
 
 /* Math */
 
-#define GDOUBLE_ROUND_TO_INT(x)  ((int) floor ((x) + 0.5))
-#define SQR(x)                   ((x) * (x))
+#define GDOUBLE_ROUND_TO_INT(x)        ((int) floor ((x) + 0.5))
+#define SQR(x)                 ((x) * (x))
+#define MIN3(x,y,z)            ((y) <= (z) ? MIN ((x), (y)) : MIN ((x), (z)))
+#define MAX3(x,y,z)            ((y) >= (z) ? MAX ((x), (y)) : MAX ((x), (z)))
 
 /* GFile attributes */
 
diff --git a/gthumb/gth-color-scale.c b/gthumb/gth-color-scale.c
index 6e185cb..b856e5a 100644
--- a/gthumb/gth-color-scale.c
+++ b/gthumb/gth-color-scale.c
@@ -20,6 +20,7 @@
  */
 
 #include <config.h>
+#include "cairo-utils.h"
 #include "gth-color-scale.h"
 #include "gth-enum-types.h"
 
diff --git a/gthumb/gth-empty-list.c b/gthumb/gth-empty-list.c
index dfdc3a2..46c86cf 100644
--- a/gthumb/gth-empty-list.c
+++ b/gthumb/gth-empty-list.c
@@ -226,13 +226,15 @@ gth_empty_list_draw (GtkWidget *widget,
                          allocation.height);
 
        if (self->priv->text != NULL) {
-               PangoRectangle bounds;
-               GdkRGBA        color;
+               PangoRectangle        bounds;
+               GdkRGBA               color;
+               PangoFontDescription *font;
 
                pango_layout_set_width (self->priv->layout, allocation.width * PANGO_SCALE);
                pango_layout_set_text (self->priv->layout, self->priv->text, strlen (self->priv->text));
                pango_layout_get_pixel_extents (self->priv->layout, NULL, &bounds);
-               pango_layout_set_font_description (self->priv->layout, gtk_style_context_get_font 
(style_context, gtk_widget_get_state (widget)));
+               gtk_style_context_get (style_context, gtk_widget_get_state (widget), "font", &font, NULL);
+               pango_layout_set_font_description (self->priv->layout, font);
                gtk_style_context_get_color (style_context, gtk_widget_get_state (widget), &color);
                gdk_cairo_set_source_rgba (cr, &color);
                gtk_render_layout (style_context, cr, 0, (allocation.height - bounds.height) / 2, 
self->priv->layout);
diff --git a/gthumb/gth-grid-view.c b/gthumb/gth-grid-view.c
index 9d34055..939d212 100644
--- a/gthumb/gth-grid-view.c
+++ b/gthumb/gth-grid-view.c
@@ -1239,9 +1239,9 @@ _cairo_film_pattern_create (void)
 {
        static cairo_pattern_t *film_pattern = NULL;
        cairo_pattern_t        *pattern;
-       static GStaticMutex     mutex = G_STATIC_MUTEX_INIT;
+       static GMutex           mutex;
 
-       g_static_mutex_lock (&mutex);
+       g_mutex_lock (&mutex);
        if (film_pattern == NULL) {
                char            *filename;
                cairo_surface_t *surface;
@@ -1257,7 +1257,7 @@ _cairo_film_pattern_create (void)
 
        }
        pattern = cairo_pattern_reference (film_pattern);
-       g_static_mutex_unlock (&mutex);
+       g_mutex_unlock (&mutex);
 
        return pattern;
 }
diff --git a/gthumb/gth-histogram-view.c b/gthumb/gth-histogram-view.c
index dc6f625..b62187e 100644
--- a/gthumb/gth-histogram-view.c
+++ b/gthumb/gth-histogram-view.c
@@ -925,7 +925,7 @@ gth_histogram_view_init (GthHistogramView *self)
        self->priv->histogram_view = gtk_drawing_area_new ();
        gtk_widget_add_events (self->priv->histogram_view, GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | 
GDK_POINTER_MOTION_MASK | GDK_STRUCTURE_MASK);
        gtk_widget_show (self->priv->histogram_view);
-       gtk_scrolled_window_add_with_viewport (GTK_SCROLLED_WINDOW (view_container), 
self->priv->histogram_view);
+       gtk_container_add (GTK_CONTAINER (view_container), self->priv->histogram_view);
 
        g_signal_connect (self->priv->histogram_view,
                          "draw",
diff --git a/gthumb/gth-main.c b/gthumb/gth-main.c
index a0bbdcf..2357217 100644
--- a/gthumb/gth-main.c
+++ b/gthumb/gth-main.c
@@ -41,7 +41,7 @@
 #endif
 
 
-static GStaticMutex register_mutex = G_STATIC_MUTEX_INIT;
+static GMutex register_mutex;
 
 
 typedef struct {
@@ -206,12 +206,12 @@ gth_main_register_file_source (GType file_source_type)
 {
        GObject *file_source;
 
-       g_static_mutex_lock (&register_mutex);
+       g_mutex_lock (&register_mutex);
 
        file_source = g_object_new (file_source_type, NULL);
        Main->priv->file_sources = g_list_append (Main->priv->file_sources, file_source);
 
-       g_static_mutex_unlock (&register_mutex);
+       g_mutex_unlock (&register_mutex);
 }
 
 
@@ -320,17 +320,17 @@ gth_main_register_metadata_category (GthMetadataCategory *metadata_category)
 {
        int i;
 
-       g_static_mutex_lock (&register_mutex);
+       g_mutex_lock (&register_mutex);
 
        for (i = 0; metadata_category[i].id != NULL; i++)
                if (gth_main_get_metadata_category (metadata_category[i].id) == NULL)
                        g_ptr_array_add (Main->priv->metadata_category, &metadata_category[i]);
 
-       g_static_mutex_unlock (&register_mutex);
+       g_mutex_unlock (&register_mutex);
 }
 
 
-static GStaticMutex metadata_info_mutex = G_STATIC_MUTEX_INIT;
+static GMutex metadata_info_mutex;
 
 
 GthMetadataInfo *
@@ -341,14 +341,14 @@ gth_main_register_metadata_info (GthMetadataInfo *metadata_info)
        if ((metadata_info->display_name != NULL) && (strstr (metadata_info->display_name, "0x") != NULL))
                metadata_info->flags = GTH_METADATA_ALLOW_NOWHERE;
 
-       g_static_mutex_lock (&metadata_info_mutex);
+       g_mutex_lock (&metadata_info_mutex);
 
        info = gth_metadata_info_dup (metadata_info);
        g_ptr_array_add (Main->priv->metadata_info, info);
        g_hash_table_insert (Main->priv->metadata_info_hash, (gpointer) info->id, info);
        Main->priv->metadata_info_sorted = FALSE;
 
-       g_static_mutex_unlock (&metadata_info_mutex);
+       g_mutex_unlock (&metadata_info_mutex);
 
        return info;
 }
@@ -359,7 +359,7 @@ gth_main_register_metadata_info_v (GthMetadataInfo metadata_info[])
 {
        int i;
 
-       g_static_mutex_lock (&metadata_info_mutex);
+       g_mutex_lock (&metadata_info_mutex);
 
        for (i = 0; metadata_info[i].id != NULL; i++)
                if ((metadata_info[i].display_name == NULL) || (strstr (metadata_info[i].display_name, "0x") 
== NULL)) {
@@ -369,7 +369,7 @@ gth_main_register_metadata_info_v (GthMetadataInfo metadata_info[])
                        g_hash_table_insert (Main->priv->metadata_info_hash, (gpointer) 
(&metadata_info[i])->id, &metadata_info[i]);
                }
 
-       g_static_mutex_unlock (&metadata_info_mutex);
+       g_mutex_unlock (&metadata_info_mutex);
 }
 
 
@@ -378,12 +378,12 @@ gth_main_register_metadata_provider (GType metadata_provider_type)
 {
        GObject *metadata;
 
-       g_static_mutex_lock (&register_mutex);
+       g_mutex_lock (&register_mutex);
 
        metadata = g_object_new (metadata_provider_type, NULL);
        Main->priv->metadata_provider = g_list_append (Main->priv->metadata_provider, metadata);
 
-       g_static_mutex_unlock (&register_mutex);
+       g_mutex_unlock (&register_mutex);
 }
 
 
@@ -425,7 +425,7 @@ gth_main_get_metadata_attributes (const char *mask)
        GList                  *scan;
        char                  **values;
 
-       g_static_mutex_lock (&metadata_info_mutex);
+       g_mutex_lock (&metadata_info_mutex);
 
        if (! Main->priv->metadata_info_sorted) {
                g_ptr_array_sort (Main->priv->metadata_info, metadata_info_sort_func);
@@ -443,7 +443,7 @@ gth_main_get_metadata_attributes (const char *mask)
        }
        list = g_list_reverse (list);
 
-       g_static_mutex_unlock (&metadata_info_mutex);
+       g_mutex_unlock (&metadata_info_mutex);
 
        values = g_new (char *, n + 1);
        for (i = 0, scan = list; scan; i++, scan = scan->next)
@@ -539,7 +539,7 @@ gth_main_get_all_metadata_info (void)
        GList *list = NULL;
        int    i;
 
-       g_static_mutex_lock (&metadata_info_mutex);
+       g_mutex_lock (&metadata_info_mutex);
 
        for (i = 0; i < Main->priv->metadata_info->len; i++) {
                GthMetadataInfo *metadata_info = g_ptr_array_index (Main->priv->metadata_info, i);
@@ -548,7 +548,7 @@ gth_main_get_all_metadata_info (void)
        }
        list = g_list_reverse (list);
 
-       g_static_mutex_unlock (&metadata_info_mutex);
+       g_mutex_unlock (&metadata_info_mutex);
 
        return list;
 }
@@ -557,9 +557,9 @@ gth_main_get_all_metadata_info (void)
 void
 gth_main_register_sort_type (GthFileDataSort *sort_type)
 {
-       g_static_mutex_lock (&register_mutex);
+       g_mutex_lock (&register_mutex);
        g_hash_table_insert (Main->priv->sort_types, (gpointer) sort_type->name, sort_type);
-       g_static_mutex_unlock (&register_mutex);
+       g_mutex_unlock (&register_mutex);
 }
 
 
@@ -682,7 +682,7 @@ gth_main_register_image_loader_func (GthImageLoaderFunc  loader,
        va_list     var_args;
        const char *mime_type;
 
-       g_static_mutex_lock (&register_mutex);
+       g_mutex_lock (&register_mutex);
 
        va_start (var_args, first_mime_type);
        mime_type = first_mime_type;
@@ -692,7 +692,7 @@ gth_main_register_image_loader_func (GthImageLoaderFunc  loader,
        }
        va_end (var_args);
 
-       g_static_mutex_unlock (&register_mutex);
+       g_mutex_unlock (&register_mutex);
 }
 
 
@@ -703,12 +703,12 @@ gth_main_register_image_loader_func_v (GthImageLoaderFunc   loader,
 {
        int i;
 
-       g_static_mutex_lock (&register_mutex);
+       g_mutex_lock (&register_mutex);
 
        for (i = 0; mime_types[i] != NULL; i++)
                _register_image_loader_func (loader, native_format, mime_types[i]);
 
-       g_static_mutex_unlock (&register_mutex);
+       g_mutex_unlock (&register_mutex);
 }
 
 
@@ -864,7 +864,7 @@ gth_main_register_type (const char *set_name,
 {
        GArray *set;
 
-       g_static_mutex_lock (&register_mutex);
+       g_mutex_lock (&register_mutex);
 
        if (Main->priv->types == NULL)
                Main->priv->types = g_hash_table_new_full (g_str_hash,
@@ -880,7 +880,7 @@ gth_main_register_type (const char *set_name,
 
        g_array_append_val (set, object_type);
 
-       g_static_mutex_unlock (&register_mutex);
+       g_mutex_unlock (&register_mutex);
 }
 
 
@@ -912,7 +912,7 @@ gth_main_register_object (GType       superclass_type,
        GthTypeSpec *spec;
        char        *id;
 
-       g_static_mutex_lock (&register_mutex);
+       g_mutex_lock (&register_mutex);
 
        if (object_id == NULL)
                object_id = g_type_name (object_type);
@@ -951,7 +951,7 @@ gth_main_register_object (GType       superclass_type,
        g_hash_table_insert (object_hash, id, spec);
        g_ptr_array_add (object_order, id);
 
-       g_static_mutex_unlock (&register_mutex);
+       g_mutex_unlock (&register_mutex);
 }
 
 
diff --git a/gthumb/gth-toolbox.c b/gthumb/gth-toolbox.c
index 843140f..4cc3ae4 100644
--- a/gthumb/gth-toolbox.c
+++ b/gthumb/gth-toolbox.c
@@ -144,7 +144,7 @@ gth_toolbox_init (GthToolbox *toolbox)
        toolbox->priv->box = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0);
        gtk_box_set_spacing (GTK_BOX (toolbox->priv->box), 0);
        gtk_widget_show (toolbox->priv->box);
-       gtk_scrolled_window_add_with_viewport (GTK_SCROLLED_WINDOW (scrolled), toolbox->priv->box);
+       gtk_container_add (GTK_CONTAINER (scrolled), toolbox->priv->box);
 
        /* tool options page */
 
@@ -206,7 +206,7 @@ child_show_options_cb (GtkWidget *tool,
        markup = g_markup_printf_escaped ("<span size='large' weight='bold'>%s</span>", 
gth_file_tool_get_options_title (GTH_FILE_TOOL (tool)));
        gtk_label_set_markup (GTK_LABEL (toolbox->priv->options_title), markup);
        gtk_image_set_from_icon_name (GTK_IMAGE (toolbox->priv->options_icon), gth_file_tool_get_icon_name 
(GTH_FILE_TOOL (tool)), GTK_ICON_SIZE_LARGE_TOOLBAR);
-       gtk_scrolled_window_add_with_viewport (GTK_SCROLLED_WINDOW (toolbox->priv->options), options);
+       gtk_container_add (GTK_CONTAINER (toolbox->priv->options), options);
        gtk_notebook_set_current_page (GTK_NOTEBOOK (toolbox), GTH_TOOLBOX_OPTIONS_PAGE);
 
        g_free (markup);
diff --git a/gthumb/gtk-utils.c b/gthumb/gtk-utils.c
index b92336c..401cc1b 100644
--- a/gthumb/gtk-utils.c
+++ b/gthumb/gtk-utils.c
@@ -21,6 +21,7 @@
 
 #include <config.h>
 #include <string.h>
+#include "color-utils.h"
 #include "gth-image-utils.h"
 #include "gtk-utils.h"
 
@@ -447,7 +448,7 @@ _g_icon_get_pixbuf (GIcon        *icon,
                        g_error_free (error);
                }
 
-               gtk_icon_info_free (icon_info);
+               g_object_unref (icon_info);
        }
 
        return pixbuf;
@@ -968,19 +969,31 @@ _gdk_rgba_shade (GdkRGBA *color,
                 GdkRGBA *result,
                 gdouble  factor)
 {
-       GtkSymbolicColor *sym_color;
-       GtkSymbolicColor *sym_result;
-       gboolean          retval;
+       guchar hue, sat, lum;
+       guchar red, green, blue;
+       double tmp;
 
-       sym_color = gtk_symbolic_color_new_literal (color);
-       sym_result = gtk_symbolic_color_new_shade (sym_color, factor);
+       gimp_rgb_to_hsl (color->red * 255,
+                        color->green * 255,
+                        color->blue * 255,
+                        &hue,
+                        &sat,
+                        &lum);
 
-       retval = gtk_symbolic_color_resolve (sym_result, NULL, result);
+       tmp = factor * (double) sat;
+       sat = (guchar) CLAMP (tmp, 0, 255);
 
-       gtk_symbolic_color_unref (sym_result);
-       gtk_symbolic_color_unref (sym_color);
+       tmp = factor * (double) lum;
+       lum = (guchar) CLAMP (tmp, 0, 255);
 
-       return retval;
+       gimp_hsl_to_rgb (hue, sat, lum, &red, &green, &blue);
+
+       result->red = (double) red / 255.0;
+       result->green = (double) green / 255.0;
+       result->blue = (double) blue / 255.0;
+       result->alpha = color->alpha;
+
+       return TRUE;
 }
 
 
diff --git a/gthumb/main.c b/gthumb/main.c
index b24468d..9392a7d 100644
--- a/gthumb/main.c
+++ b/gthumb/main.c
@@ -718,8 +718,6 @@ main (int argc, char *argv[])
 
        program_argv0 = argv[0];
 
-       g_type_init ();
-
        /* text domain */
 
        bindtextdomain (GETTEXT_PACKAGE, LOCALEDIR);
diff --git a/po/POTFILES.in b/po/POTFILES.in
index e057d77..654e9a5 100644
--- a/po/POTFILES.in
+++ b/po/POTFILES.in
@@ -643,6 +643,8 @@ gthumb/cairo-scale.c
 gthumb/cairo-scale.h
 gthumb/cairo-utils.c
 gthumb/cairo-utils.h
+gthumb/color-utils.c
+gthumb/color-utils.h
 gthumb/dlg-location.c
 gthumb/dlg-location.h
 gthumb/dlg-personalize-filters.c
diff --git a/tests/dom-test.c b/tests/dom-test.c
index 9b62d98..e5d5a84 100644
--- a/tests/dom-test.c
+++ b/tests/dom-test.c
@@ -23,17 +23,17 @@
 #include "dom.h"
 
 
-static void 
-compare_loaded_and_dumped_xml (DomDocument *doc) 
+static void
+compare_loaded_and_dumped_xml (DomDocument *doc)
 {
        char        *xml;
        gsize        len;
        DomDocument *loaded_doc;
        char        *loaded_xml;
-       
+
        xml = dom_document_dump (doc, &len);
        /*g_print ("%s", xml);*/
-       
+
        loaded_doc = dom_document_new ();
        dom_document_load (loaded_doc, xml, len, NULL);
        loaded_xml = dom_document_dump (loaded_doc, NULL);
@@ -47,12 +47,12 @@ compare_loaded_and_dumped_xml (DomDocument *doc)
 }
 
 
-static void 
+static void
 check_dumped_xml (DomDocument *doc,
-                 const char  *expected_xml) 
+                 const char  *expected_xml)
 {
        char *xml;
-       
+
        xml = dom_document_dump (doc, NULL);
        /*g_print ("%s", xml);*/
        g_assert_cmpstr (xml, ==, expected_xml);
@@ -61,39 +61,39 @@ check_dumped_xml (DomDocument *doc,
 
 
 static void
-test_dom_1 (void) 
+test_dom_1 (void)
 {
        DomDocument *doc;
-       
-       doc = dom_document_new ();      
-       
+
+       doc = dom_document_new ();
+
        compare_loaded_and_dumped_xml (doc);
        check_dumped_xml (doc, "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n");
-       
+
        g_object_unref (doc);
 }
 
 
 static void
-test_dom_2 (void) 
+test_dom_2 (void)
 {
        DomDocument *doc;
        DomElement  *filters;
-       
-       doc = dom_document_new ();      
-       filters = dom_document_create_element (doc, "filters", "version", "1.0", NULL); 
+
+       doc = dom_document_new ();
+       filters = dom_document_create_element (doc, "filters", "version", "1.0", NULL);
        dom_element_append_child (DOM_ELEMENT (doc), filters);
-       
-       compare_loaded_and_dumped_xml (doc);    
+
+       compare_loaded_and_dumped_xml (doc);
        check_dumped_xml (doc,  "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
                                "<filters version=\"1.0\"/>\n");
-       
+
        g_object_unref (doc);
 }
 
 
 static void
-test_dom_3 (void) 
+test_dom_3 (void)
 {
        DomDocument *doc;
        DomElement  *filters;
@@ -101,39 +101,39 @@ test_dom_3 (void)
        DomElement  *match;
        DomElement  *test;
        DomElement  *limit;
-       
-       doc = dom_document_new ();      
-       filters = dom_document_create_element (doc, "filters", NULL);   
+
+       doc = dom_document_new ();
+       filters = dom_document_create_element (doc, "filters", NULL);
        dom_element_set_attribute (filters, "version", "1.0");
        dom_element_append_child (DOM_ELEMENT (doc), filters);
-       
+
        filter = dom_document_create_element (doc, "filter", NULL);
        dom_element_set_attribute (filter, "name", "test1");
        dom_element_append_child (filters, filter);
-       
+
        match = dom_document_create_element (doc, "match", NULL);
        dom_element_set_attribute (match, "type", "all");
        dom_element_append_child (filter, match);
-       
+
        test = dom_document_create_element (doc, "test", NULL);
        dom_element_set_attribute (test, "id", "::filesize");
        dom_element_set_attribute (test, "op", "lt");
        dom_element_set_attribute (test, "value", "10");
        dom_element_set_attribute (test, "unit", "kB");
        dom_element_append_child (match, test);
-       
+
        test = dom_document_create_element (doc, "test", NULL);
        dom_element_set_attribute (test, "id", "::filename");
        dom_element_set_attribute (test, "op", "contains");
        dom_element_set_attribute (test, "value", "logo");
        dom_element_append_child (match, test);
-       
+
        limit = dom_document_create_element (doc, "limit", NULL);
        dom_element_set_attribute (limit, "value", "25");
        dom_element_set_attribute (limit, "type", "files");
        dom_element_set_attribute (limit, "selected_by", "more_recent");
        dom_element_append_child (filter, limit);
-       
+
        filter = dom_document_create_element (doc, "filter", NULL);
        dom_element_set_attribute (filter, "name", "test2");
        dom_element_append_child (filters, filter);
@@ -143,9 +143,9 @@ test_dom_3 (void)
        dom_element_set_attribute (limit, "type", "files");
        dom_element_set_attribute (limit, "selected_by", "more_recent");
        dom_element_append_child (filter, limit);
-       
+
        compare_loaded_and_dumped_xml (doc);
-       
+
        check_dumped_xml (doc,  "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
                                "<filters version=\"1.0\">\n"
                                "  <filter name=\"test1\">\n"
@@ -159,21 +159,20 @@ test_dom_3 (void)
                                "    <limit value=\"25\" type=\"files\" selected_by=\"more_recent\"/>\n"
                                "  </filter>\n"
                                "</filters>\n");
-       
+
        g_object_unref (doc);
 }
 
 
-int 
+int
 main (int   argc,
       char *argv[])
 {
-       g_type_init ();
        g_test_init (&argc, &argv, NULL);
-       
+
        g_test_add_func ("/dom/1", test_dom_1);
        g_test_add_func ("/dom/2", test_dom_2);
        g_test_add_func ("/dom/3", test_dom_3);
-        
+
        return g_test_run ();
 }
diff --git a/tests/glib-utils-test.c b/tests/glib-utils-test.c
index 4246453..4e8a2c4 100644
--- a/tests/glib-utils-test.c
+++ b/tests/glib-utils-test.c
@@ -72,7 +72,6 @@ int
 main (int   argc,
       char *argv[])
 {
-       g_type_init ();
        g_test_init (&argc, &argv, NULL);
 
        g_test_add_func ("/glib-utils/_g_rand_string/1", test_g_rand_string);


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]