gnu_java_awt_peer_gtk_GtkScrollBarPeer.c: Handle missing event cases, connect to...
authorGraydon Hoare <graydon@redhat.com>
Fri, 18 Jul 2003 19:27:42 +0000 (19:27 +0000)
committerGraydon Hoare <graydon@gcc.gnu.org>
Fri, 18 Jul 2003 19:27:42 +0000 (19:27 +0000)
2003-07-18  Graydon Hoare  <graydon@redhat.com>

* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkScrollBarPeer.c:
Handle missing event cases, connect to "value-changed" signal.

From-SVN: r69568

libjava/ChangeLog
libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkScrollBarPeer.c

index e65465028c89ca6875eaf2e9df1f8788d631fb56..94cb464fcf8f4d137c8e19fa392df49be84c3c1e 100644 (file)
@@ -1,3 +1,8 @@
+2003-07-18  Graydon Hoare  <graydon@redhat.com>
+
+       * jni/gtk-peer/gnu_java_awt_peer_gtk_GtkScrollBarPeer.c: 
+       Handle missing event cases, connect to "value-changed" signal.
+
 2003-07-18  Graydon Hoare  <graydon@redhat.com>
 
        * java/awt/geom/CubicCurve2D.java,
index a246b372904de2b560e33a05c7d81c7dbf82a97d..2bd3df8cf3534fa380fecfaed41e128140aadd9e 100644 (file)
@@ -45,6 +45,17 @@ struct range_scrollbar
   jobject *scrollbar;
 };
 
+static void 
+post_change_event (GtkRange *range,
+                  struct range_scrollbar *rs)
+{
+  GtkAdjustment *adj;
+  adj = gtk_range_get_adjustment (range);
+  (*gdk_env)->CallVoidMethod (gdk_env, *(rs->scrollbar), postAdjustmentEventID,
+                             AWT_ADJUSTMENT_TRACK, (jint) adj->value);
+  
+}
+
 static void 
 post_adjustment_event (GtkRange *range, GtkScrollType scroll, 
                       struct range_scrollbar *rs)
@@ -56,15 +67,23 @@ post_adjustment_event (GtkRange *range, GtkScrollType scroll,
 
   switch (scroll)
     {
+    case GTK_SCROLL_STEP_UP:
+    case GTK_SCROLL_STEP_RIGHT:
     case GTK_SCROLL_STEP_FORWARD:
       type = AWT_ADJUSTMENT_UNIT_INCREMENT;
       break;
+    case GTK_SCROLL_STEP_DOWN:
+    case GTK_SCROLL_STEP_LEFT:
     case GTK_SCROLL_STEP_BACKWARD:
       type = AWT_ADJUSTMENT_UNIT_DECREMENT;
       break;
+    case GTK_SCROLL_PAGE_UP:
+    case GTK_SCROLL_PAGE_RIGHT:
     case GTK_SCROLL_PAGE_FORWARD:
       type = AWT_ADJUSTMENT_BLOCK_INCREMENT;
       break;
+    case GTK_SCROLL_PAGE_DOWN:
+    case GTK_SCROLL_PAGE_LEFT:
     case GTK_SCROLL_PAGE_BACKWARD:
       type = AWT_ADJUSTMENT_BLOCK_DECREMENT;
       break;
@@ -118,9 +137,14 @@ Java_gnu_java_awt_peer_gtk_GtkScrollbarPeer_connectHooks
   rs->scrollbar = (jobject *) malloc (sizeof (jobject));
   *(rs->scrollbar) = (*env)->NewGlobalRef (env, obj);
   gtk_signal_connect (GTK_OBJECT (GTK_RANGE (ptr)), 
-                     "move_slider", 
+                     "move-slider", 
                      GTK_SIGNAL_FUNC (post_adjustment_event), rs);
 
+  gtk_signal_connect (GTK_OBJECT (GTK_RANGE (ptr)), 
+                     "value-changed", 
+                     GTK_SIGNAL_FUNC (post_change_event), rs);
+
+
   connect_awt_hook (env, obj, 1, GTK_SCROLLBAR (ptr)->range);
   gdk_threads_leave ();
 }