/[classpath]/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkCheckboxPeer.c
ViewVC logotype

Diff of /classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkCheckboxPeer.c

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.4 by tromey, Mon Mar 11 00:52:00 2002 UTC revision 1.5 by tromey, Sun Mar 24 22:26:56 2002 UTC
# Line 39  exception statement from your version. * Line 39  exception statement from your version. *
39  #include "gtkpeer.h"  #include "gtkpeer.h"
40  #include "gnu_java_awt_peer_gtk_GtkCheckboxPeer.h"  #include "gnu_java_awt_peer_gtk_GtkCheckboxPeer.h"
41    
42  static void connect_checkbox_item_selectable_hook (JNIEnv *env,  static void item_toggled (GtkToggleButton *item, jobject peer);
                                                    jobject peer_obj,  
                                                    GtkToggleButton *item,  
                                                    jobject item_obj);  
43    
44  JNIEXPORT void JNICALL  JNIEXPORT void JNICALL
45  Java_gnu_java_awt_peer_gtk_GtkCheckboxPeer_nativeCreate  Java_gnu_java_awt_peer_gtk_GtkCheckboxPeer_nativeCreate
# Line 71  Java_gnu_java_awt_peer_gtk_GtkCheckboxPe Line 68  Java_gnu_java_awt_peer_gtk_GtkCheckboxPe
68    NSA_SET_PTR (env, obj, button);    NSA_SET_PTR (env, obj, button);
69  }  }
70    
71    JNIEXPORT void JNICALL
72    Java_gnu_java_awt_peer_gtk_GtkCheckboxPeer_connectHooks
73      (JNIEnv *env, jobject obj)
74    {
75      void *ptr = NSA_GET_PTR (env, obj);
76      jobject peer;
77    
78      gdk_threads_enter ();
79    
80      peer = (*env)->NewGlobalRef (env, obj);
81    
82      /* FIXME: when the widget goes away, we should get rid of the global
83         reference.  */
84      gtk_signal_connect (GTK_OBJECT (ptr), "toggled",
85                          GTK_SIGNAL_FUNC (item_toggled), peer);
86    
87      gdk_threads_leave ();
88    
89      /* Connect the superclass hooks.  */
90      Java_gnu_java_awt_peer_gtk_GtkComponentPeer_connectHooks (env, obj);
91    }
92    
93  JNIEXPORT void JNICALL  JNIEXPORT void JNICALL
94  Java_gnu_java_awt_peer_gtk_GtkCheckboxPeer_nativeSetCheckboxGroup  Java_gnu_java_awt_peer_gtk_GtkCheckboxPeer_nativeSetCheckboxGroup
95    (JNIEnv *env, jobject obj, jobject group, jobject old_group)    (JNIEnv *env, jobject obj, jobject group, jobject old_group)
# Line 123  Java_gnu_java_awt_peer_gtk_GtkCheckboxPe Line 142  Java_gnu_java_awt_peer_gtk_GtkCheckboxPe
142  }  }
143    
144  static void  static void
145  item_toggled (GtkToggleButton *item, struct item_event_hook_info *ie)  item_toggled (GtkToggleButton *item, jobject peer)
146  {  {
147    (*gdk_env)->CallVoidMethod (gdk_env, ie->peer_obj,    (*gdk_env)->CallVoidMethod (gdk_env, peer,
148                                postItemEventID,                                postItemEventID,
149                                ie->item_obj,                                peer,
150                                item->active ?                                item->active ?
151                                (jint) AWT_ITEM_SELECTED :                                (jint) AWT_ITEM_SELECTED :
152                                (jint) AWT_ITEM_DESELECTED);                                (jint) AWT_ITEM_DESELECTED);
153  }  }
   
 static void  
 connect_checkbox_item_selectable_hook (JNIEnv *env, jobject peer_obj,  
                                        GtkToggleButton *item, jobject item_obj)  
 {  
   struct item_event_hook_info *ie;  
   
   ie = (struct item_event_hook_info *)  
     malloc (sizeof (struct item_event_hook_info));  
   
   ie->peer_obj = (*env)->NewGlobalRef (env, peer_obj);  
   ie->item_obj = (*env)->NewGlobalRef (env, item_obj);  
   
   gtk_signal_connect (GTK_OBJECT (item), "toggled",  
                       GTK_SIGNAL_FUNC (item_toggled), ie);  
 }  

Legend:
Removed from v.1.4  
changed lines
  Added in v.1.5

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26