2006-12-26 [wwp] 2.6.1cvs70
[claws.git] / src / gtk / gtkvscrollbutton.c
index d4a37c749940c9cbb3cb97714321500f2110260d..c6ad14c0538496b7a5a75df62d21b6c81928ea0f 100644 (file)
@@ -34,6 +34,7 @@
 #  include "config.h"
 #endif
 
+#include <glib.h>
 #include <gtk/gtksignal.h>
 #include <gtk/gtkbutton.h>
 #include <gtk/gtkmisc.h>
@@ -75,7 +76,7 @@ static gint gtk_vscrollbutton_button_release  (GtkWidget        *widget,
                                                 GdkEventButton   *event,
                                                 GtkVScrollbutton *scrollbutton);
 
-static gint gtk_vscrollbutton_scroll           (GtkVScrollbutton *scrollbutton);
+gint gtk_vscrollbutton_scroll          (GtkVScrollbutton *scrollbutton);
 
 static gboolean gtk_vscrollbutton_timer_1st_time(GtkVScrollbutton *scrollbutton);
 
@@ -123,32 +124,32 @@ static void gtk_vscrollbutton_init(GtkVScrollbutton *scrollbutton)
     arrow = gtk_arrow_new(GTK_ARROW_UP, GTK_SHADOW_NONE);
     gtk_widget_show(arrow);
     gtk_container_add(GTK_CONTAINER(scrollbutton->upbutton), arrow);
-    gtk_widget_set_usize(scrollbutton->upbutton, -1, 16);
+    gtk_widget_set_size_request(scrollbutton->upbutton, -1, 16);
     arrow = gtk_arrow_new(GTK_ARROW_DOWN, GTK_SHADOW_NONE);
     gtk_widget_show(arrow);
     gtk_container_add(GTK_CONTAINER(scrollbutton->downbutton), arrow);
-    gtk_widget_set_usize(scrollbutton->downbutton, -1, 16);
+    gtk_widget_set_size_request(scrollbutton->downbutton, -1, 16);
     GTK_WIDGET_UNSET_FLAGS(scrollbutton->upbutton, GTK_CAN_FOCUS);
     GTK_WIDGET_UNSET_FLAGS(scrollbutton->downbutton, GTK_CAN_FOCUS);
     gtk_widget_show(scrollbutton->downbutton);
     gtk_widget_show(scrollbutton->upbutton);
 
-    gtk_signal_connect(GTK_OBJECT(scrollbutton->upbutton),
+    g_signal_connect(G_OBJECT(scrollbutton->upbutton),
                       "button_press_event",
-                      GTK_SIGNAL_FUNC(gtk_vscrollbutton_button_press),
+                      G_CALLBACK(gtk_vscrollbutton_button_press),
                       scrollbutton);
-    gtk_signal_connect(GTK_OBJECT(scrollbutton->downbutton),
+    g_signal_connect(G_OBJECT(scrollbutton->downbutton),
                       "button_press_event",
-                      GTK_SIGNAL_FUNC(gtk_vscrollbutton_button_press),
+                      G_CALLBACK(gtk_vscrollbutton_button_press),
                       scrollbutton);
-    gtk_signal_connect(GTK_OBJECT(scrollbutton->upbutton),
-                      "button_release_event",
-                      GTK_SIGNAL_FUNC
-                      (gtk_vscrollbutton_button_release), scrollbutton);
-    gtk_signal_connect(GTK_OBJECT(scrollbutton->downbutton),
-                      "button_release_event",
-                      GTK_SIGNAL_FUNC
-                      (gtk_vscrollbutton_button_release), scrollbutton);
+    g_signal_connect(G_OBJECT(scrollbutton->upbutton),
+                    "button_release_event",
+                    G_CALLBACK
+                    (gtk_vscrollbutton_button_release), scrollbutton);
+    g_signal_connect(G_OBJECT(scrollbutton->downbutton),
+                    "button_release_event",
+                    G_CALLBACK
+                    (gtk_vscrollbutton_button_release), scrollbutton);
     gtk_box_pack_start(GTK_BOX(&scrollbutton->vbox),
                       scrollbutton->upbutton, TRUE, TRUE, 0);
     gtk_box_pack_end(GTK_BOX(&scrollbutton->vbox),
@@ -162,13 +163,13 @@ GtkWidget *gtk_vscrollbutton_new(GtkAdjustment *adjustment)
     vscrollbutton = GTK_WIDGET(gtk_type_new(gtk_vscrollbutton_get_type()));
     gtk_vscrollbutton_set_adjustment(GTK_VSCROLLBUTTON(vscrollbutton),
                                     adjustment);
-    gtk_signal_connect(GTK_OBJECT(GTK_VSCROLLBUTTON(vscrollbutton)->adjustment),
+    g_signal_connect(G_OBJECT(GTK_VSCROLLBUTTON(vscrollbutton)->adjustment),
                       "value_changed",
-                      GTK_SIGNAL_FUNC
+                      G_CALLBACK
                       (gtk_vscrollbutton_set_sensitivity), vscrollbutton);
-    gtk_signal_connect(GTK_OBJECT(GTK_VSCROLLBUTTON(vscrollbutton)->adjustment),
+    g_signal_connect(G_OBJECT(GTK_VSCROLLBUTTON(vscrollbutton)->adjustment),
                       "changed",
-                      GTK_SIGNAL_FUNC
+                      G_CALLBACK
                       (gtk_vscrollbutton_set_sensitivity), vscrollbutton);
     return vscrollbutton;
 }
@@ -188,20 +189,19 @@ void gtk_vscrollbutton_set_adjustment(GtkVScrollbutton *scrollbutton,
 
     if (scrollbutton->adjustment != adjustment) {
        if (scrollbutton->adjustment) {
-           gtk_signal_disconnect_by_data(GTK_OBJECT
-                                         (scrollbutton->
-                                          adjustment), (gpointer)
-                                         scrollbutton);
-           gtk_object_unref(GTK_OBJECT(scrollbutton->adjustment));
+           g_signal_handlers_disconnect_matched(scrollbutton->adjustment,
+                                                G_SIGNAL_MATCH_DATA,
+                                                0, 0, NULL, NULL, 
+                                                (gpointer) scrollbutton);
+           g_object_unref(G_OBJECT(scrollbutton->adjustment));
        }
 
        scrollbutton->adjustment = adjustment;
-       gtk_object_ref(GTK_OBJECT(adjustment));
+       g_object_ref(G_OBJECT(adjustment));
        gtk_object_sink(GTK_OBJECT(adjustment));
     }
 }
 
-
 static gint gtk_vscrollbutton_button_press(GtkWidget *widget,
                                           GdkEventButton *event,
                                           GtkVScrollbutton *scrollbutton)
@@ -241,7 +241,7 @@ static gint gtk_vscrollbutton_button_release(GtkWidget *widget,
     return TRUE;
 }
 
-static gint gtk_vscrollbutton_scroll(GtkVScrollbutton *scrollbutton)
+gint gtk_vscrollbutton_scroll(GtkVScrollbutton *scrollbutton)
 {
     gfloat new_value;
     gint return_val;
@@ -283,9 +283,10 @@ static gint gtk_vscrollbutton_scroll(GtkVScrollbutton *scrollbutton)
 
     if (new_value != scrollbutton->adjustment->value) {
        scrollbutton->adjustment->value = new_value;
-       gtk_signal_emit_by_name(GTK_OBJECT
+       g_signal_emit_by_name(G_OBJECT
                                (scrollbutton->adjustment),
                                "value_changed");
+       gtk_widget_queue_resize(GTK_WIDGET(scrollbutton)); /* ensure resize */
     }
 
     return return_val;
@@ -298,19 +299,19 @@ gtk_vscrollbutton_timer_1st_time(GtkVScrollbutton *scrollbutton)
      * If the real timeout function succeeds and the timeout is still set,
      * replace it with a quicker one so successive scrolling goes faster.
      */
-    gtk_object_ref(GTK_OBJECT(scrollbutton));
+    g_object_ref(G_OBJECT(scrollbutton));
     if (scrollbutton->timer) {
        /* We explicitely remove ourselves here in the paranoia
         * that due to things happening above in the callback
         * above, we might have been removed, and another added.
         */
        g_source_remove(scrollbutton->timer);
-       scrollbutton->timer = gtk_timeout_add(SCROLL_LATER_DELAY,
-                                             (GtkFunction)
-                                             gtk_real_vscrollbutton_timer,
-                                             scrollbutton);
+       scrollbutton->timer = g_timeout_add(SCROLL_LATER_DELAY,
+                                           (GtkFunction)
+                                           gtk_real_vscrollbutton_timer,
+                                           scrollbutton);
     }
-    gtk_object_unref(GTK_OBJECT(scrollbutton));
+    g_object_unref(G_OBJECT(scrollbutton));
     return FALSE;              /* don't keep calling this function */
 }
 
@@ -322,10 +323,10 @@ static void gtk_vscrollbutton_add_timer(GtkVScrollbutton *scrollbutton)
 
     if (!scrollbutton->timer) {
        scrollbutton->need_timer = TRUE;
-       scrollbutton->timer = gtk_timeout_add(SCROLL_INITIAL_DELAY,
-                                             (GtkFunction)
-                                             gtk_vscrollbutton_timer_1st_time,
-                                             scrollbutton);
+       scrollbutton->timer = g_timeout_add(SCROLL_INITIAL_DELAY,
+                                           (GtkFunction)
+                                           gtk_vscrollbutton_timer_1st_time,
+                                           scrollbutton);
     }
 }
 
@@ -335,7 +336,7 @@ static void gtk_vscrollbutton_remove_timer(GtkVScrollbutton *scrollbutton)
     g_return_if_fail(GTK_IS_VSCROLLBUTTON(scrollbutton));
 
     if (scrollbutton->timer) {
-       gtk_timeout_remove(scrollbutton->timer);
+       g_source_remove(scrollbutton->timer);
        scrollbutton->timer = 0;
     }
     scrollbutton->need_timer = FALSE;
@@ -352,9 +353,9 @@ static gint gtk_real_vscrollbutton_timer(GtkVScrollbutton *scrollbutton)
        return_val = FALSE;
        if (scrollbutton->need_timer)
            scrollbutton->timer =
-               gtk_timeout_add(SCROLL_TIMER_LENGTH, 
-                               (GtkFunction) gtk_real_vscrollbutton_timer,
-                               (gpointer) scrollbutton);
+               g_timeout_add(SCROLL_TIMER_LENGTH, 
+                             (GtkFunction) gtk_real_vscrollbutton_timer,
+                             (gpointer) scrollbutton);
        else {
            GDK_THREADS_LEAVE();
            return FALSE;