46 |
}; |
}; |
47 |
|
|
48 |
static void |
static void |
49 |
|
post_change_event (GtkRange *range, |
50 |
|
struct range_scrollbar *rs) |
51 |
|
{ |
52 |
|
GtkAdjustment *adj; |
53 |
|
adj = gtk_range_get_adjustment (range); |
54 |
|
(*gdk_env)->CallVoidMethod (gdk_env, *(rs->scrollbar), postAdjustmentEventID, |
55 |
|
AWT_ADJUSTMENT_TRACK, (jint) adj->value); |
56 |
|
|
57 |
|
} |
58 |
|
|
59 |
|
static void |
60 |
post_adjustment_event (GtkRange *range, GtkScrollType scroll, |
post_adjustment_event (GtkRange *range, GtkScrollType scroll, |
61 |
struct range_scrollbar *rs) |
struct range_scrollbar *rs) |
62 |
{ |
{ |
67 |
|
|
68 |
switch (scroll) |
switch (scroll) |
69 |
{ |
{ |
70 |
|
case GTK_SCROLL_STEP_UP: |
71 |
|
case GTK_SCROLL_STEP_RIGHT: |
72 |
case GTK_SCROLL_STEP_FORWARD: |
case GTK_SCROLL_STEP_FORWARD: |
73 |
type = AWT_ADJUSTMENT_UNIT_INCREMENT; |
type = AWT_ADJUSTMENT_UNIT_INCREMENT; |
74 |
break; |
break; |
75 |
|
case GTK_SCROLL_STEP_DOWN: |
76 |
|
case GTK_SCROLL_STEP_LEFT: |
77 |
case GTK_SCROLL_STEP_BACKWARD: |
case GTK_SCROLL_STEP_BACKWARD: |
78 |
type = AWT_ADJUSTMENT_UNIT_DECREMENT; |
type = AWT_ADJUSTMENT_UNIT_DECREMENT; |
79 |
break; |
break; |
80 |
|
case GTK_SCROLL_PAGE_UP: |
81 |
|
case GTK_SCROLL_PAGE_RIGHT: |
82 |
case GTK_SCROLL_PAGE_FORWARD: |
case GTK_SCROLL_PAGE_FORWARD: |
83 |
type = AWT_ADJUSTMENT_BLOCK_INCREMENT; |
type = AWT_ADJUSTMENT_BLOCK_INCREMENT; |
84 |
break; |
break; |
85 |
|
case GTK_SCROLL_PAGE_DOWN: |
86 |
|
case GTK_SCROLL_PAGE_LEFT: |
87 |
case GTK_SCROLL_PAGE_BACKWARD: |
case GTK_SCROLL_PAGE_BACKWARD: |
88 |
type = AWT_ADJUSTMENT_BLOCK_DECREMENT; |
type = AWT_ADJUSTMENT_BLOCK_DECREMENT; |
89 |
break; |
break; |
137 |
rs->scrollbar = (jobject *) malloc (sizeof (jobject)); |
rs->scrollbar = (jobject *) malloc (sizeof (jobject)); |
138 |
*(rs->scrollbar) = (*env)->NewGlobalRef (env, obj); |
*(rs->scrollbar) = (*env)->NewGlobalRef (env, obj); |
139 |
gtk_signal_connect (GTK_OBJECT (GTK_RANGE (ptr)), |
gtk_signal_connect (GTK_OBJECT (GTK_RANGE (ptr)), |
140 |
"move_slider", |
"move-slider", |
141 |
GTK_SIGNAL_FUNC (post_adjustment_event), rs); |
GTK_SIGNAL_FUNC (post_adjustment_event), rs); |
142 |
|
|
143 |
|
gtk_signal_connect (GTK_OBJECT (GTK_RANGE (ptr)), |
144 |
|
"value-changed", |
145 |
|
GTK_SIGNAL_FUNC (post_change_event), rs); |
146 |
|
|
147 |
|
|
148 |
connect_awt_hook (env, obj, 1, GTK_SCROLLBAR (ptr)->range); |
connect_awt_hook (env, obj, 1, GTK_SCROLLBAR (ptr)->range); |
149 |
gdk_threads_leave (); |
gdk_threads_leave (); |
150 |
} |
} |