gnu_java_awt_peer_gtk_GtkScrollBarPeer.c: Handle missing event cases, connect to "value-changed" signal.

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
This commit is contained in:
Graydon Hoare 2003-07-18 19:27:42 +00:00 committed by Graydon Hoare
parent 9e508cc470
commit cecc892aea
2 changed files with 30 additions and 1 deletions

View 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,

View 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 ();
}