X-Git-Url: http://git.claws-mail.org/?p=claws.git;a=blobdiff_plain;f=src%2Fgtk%2Fgtkshruler.c;h=aaeb0fd639e2ac202fcc77041cd4a1ba1e41046e;hp=03b54c6d5b3dd221235b3555241a71d2749151c9;hb=be8b88373a34eedf28533ea10ba363c569f925ef;hpb=d9de0abf0cbaa019ee3b9931806d2d14beeaef90
diff --git a/src/gtk/gtkshruler.c b/src/gtk/gtkshruler.c
index 03b54c6d5..aaeb0fd63 100644
--- a/src/gtk/gtkshruler.c
+++ b/src/gtk/gtkshruler.c
@@ -1,11 +1,11 @@
/* GtkSHRuler
*
- * Copyright (C) 2000-2005 Alfons Hoogervorst & The Sylpheed Claws Team
+ * Copyright (C) 2000-2011 Alfons Hoogervorst & The Claws Mail Team
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Library General Public
* License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
+ * version 3 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -13,9 +13,7 @@
* Library General Public License for more details.
*
* You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * License along with this library. If not, see .
*/
/* I derived this class from hruler. S in HRuler could be read as
@@ -31,8 +29,12 @@
#include
#include
#include
-#include
+#include
#include "gtkshruler.h"
+#include "utils.h"
+#include "gtkutils.h"
+
+#if !GTK_CHECK_VERSION(2,24,0)
#define RULER_HEIGHT 14
#define MINIMUM_INCR 5
@@ -115,23 +117,25 @@ static void
gtk_shruler_draw_ticks(GtkRuler *ruler)
{
GtkWidget *widget;
- GdkGC *gc, *bg_gc;
+ cairo_t *cr;
gint i;
gint width, height;
gint xthickness;
gint ythickness;
gint pos;
- g_return_if_fail (ruler != NULL);
- g_return_if_fail (GTK_IS_HRULER (ruler));
+ cm_return_if_fail (ruler != NULL);
+ cm_return_if_fail (GTK_IS_HRULER (ruler));
- if (!GTK_WIDGET_DRAWABLE (ruler))
+ if (!gtkut_widget_is_drawable (GTK_WIDGET(ruler)))
return;
widget = GTK_WIDGET (ruler);
- gc = widget->style->fg_gc[GTK_STATE_NORMAL];
- bg_gc = widget->style->bg_gc[GTK_STATE_NORMAL];
+ cr = gdk_cairo_create(ruler->backing_store);
+ cairo_set_antialias(cr, CAIRO_ANTIALIAS_NONE);
+ cairo_set_line_width(cr, 1.);
+ gdk_cairo_set_source_color(cr, >k_widget_get_style(widget)->text[GTK_STATE_NORMAL]);
xthickness = widget->style->xthickness;
ythickness = widget->style->ythickness;
@@ -154,9 +158,9 @@ gtk_shruler_draw_ticks(GtkRuler *ruler)
if ( pos % 10 == 0 ) length = ( 2 * height / 3 );
else if ( pos % 5 == 0 ) length = ( height / 3 );
- gdk_draw_line(ruler->backing_store, gc,
- i, height + ythickness,
- i, height - length);
+ cairo_move_to(cr, i, height + ythickness);
+ cairo_line_to(cr, i, height - length);
+ cairo_stroke(cr);
if ( pos % 10 == 0 ) {
gchar buf[8];
@@ -168,32 +172,13 @@ gtk_shruler_draw_ticks(GtkRuler *ruler)
layout = gtk_widget_create_pango_layout
(GTK_WIDGET(ruler), buf);
- gdk_draw_layout(ruler->backing_store, gc, i + 2,
- 0, layout);
+ cairo_move_to(cr, i+2, 0);
+ pango_cairo_show_layout(cr, layout);
g_object_unref(layout);
}
}
-}
-/* gtk_ruler_set_pos() - does not work yet, need to reimplement
- * gtk_ruler_draw_pos(). */
-void
-gtk_shruler_set_pos(GtkSHRuler * ruler, gfloat pos)
-{
- GtkRuler * ruler_;
- g_return_if_fail( ruler != NULL );
-
- ruler_ = GTK_RULER(ruler);
-
- if ( pos < ruler_->lower )
- pos = ruler_->lower;
- if ( pos > ruler_->upper )
- pos = ruler_->upper;
-
- ruler_->position = pos;
-
- /* Make sure the ruler has been allocated already */
- if ( ruler_->backing_store != NULL )
- gtk_ruler_draw_pos(ruler_);
+ cairo_destroy(cr);
}
+#endif