JNIEXPORT void JNICALL
Java_gnu_java_awt_peer_gtk_GtkScrollbarPeer_connectSignals
  (JNIEnv *env, jobject obj)
{
  struct range_scrollbar *rs;
  void *ptr = NSA_GET_PTR (env, obj);
  jobject *gref = NSA_GET_GLOBAL_REF (env, obj);
  g_assert (gref);

  rs = (struct range_scrollbar *) malloc (sizeof (struct range_scrollbar));

  gdk_threads_enter ();

  gtk_widget_realize (GTK_WIDGET (ptr));

  rs->range = GTK_RANGE (ptr);
  rs->scrollbar = gref;

  g_signal_connect (G_OBJECT (GTK_RANGE (ptr)), 
		      "move-slider", 
		      GTK_SIGNAL_FUNC (post_adjustment_event), rs);

  g_signal_connect (G_OBJECT (GTK_RANGE (ptr)), 
		      "value-changed", 
		      GTK_SIGNAL_FUNC (post_change_event), rs);

  gdk_threads_leave ();

  /* Connect the superclass signals.  */
  Java_gnu_java_awt_peer_gtk_GtkComponentPeer_connectSignals (env, obj);
}
JNIEXPORT void JNICALL 
Java_gnu_java_awt_peer_gtk_GtkFileDialogPeer_connectSignals
  (JNIEnv *env, jobject obj)
{
  void *ptr = NSA_GET_PTR (env, obj);
  jobject *gref = NSA_GET_GLOBAL_REF (env, obj);
  g_assert (gref);

  gdk_threads_enter ();

  gtk_widget_realize (GTK_WIDGET (ptr));

  /* connect buttons to handlers */

  g_signal_connect (G_OBJECT (GTK_DIALOG (ptr)),
                    "response", 
		    GTK_SIGNAL_FUNC (window_closed), *gref);

  g_signal_connect (G_OBJECT (GTK_FILE_SELECTION (ptr)->ok_button),
                    "clicked", 
		    GTK_SIGNAL_FUNC (ok_clicked), *gref);

  g_signal_connect (G_OBJECT (GTK_FILE_SELECTION (ptr)->cancel_button),
                    "clicked", 
		    GTK_SIGNAL_FUNC (cancel_clicked), *gref);
		    
  gdk_threads_leave ();

  /* Connect the superclass signals.  */
  Java_gnu_java_awt_peer_gtk_GtkComponentPeer_connectSignals (env, obj);
}
JNIEXPORT void JNICALL
Java_gnu_java_awt_peer_gtk_GtkButtonPeer_connectSignals
  (JNIEnv *env, jobject obj)
{
  /* FIXME: Do we need to connect any signals here? Otherwise just do not
     override parent method. */

  /* Connect the superclass signals.  */
  Java_gnu_java_awt_peer_gtk_GtkComponentPeer_connectSignals (env, obj);
}
JNIEXPORT void JNICALL
Java_gnu_java_awt_peer_gtk_GtkCheckboxPeer_connectSignals
  (JNIEnv *env, jobject obj)
{
  void *ptr = NSA_GET_PTR (env, obj);
  jobject *gref = NSA_GET_GLOBAL_REF (env, obj);
  g_assert (gref);

  gdk_threads_enter ();

  g_signal_connect (G_OBJECT (ptr), "toggled",
		      GTK_SIGNAL_FUNC (item_toggled), *gref);

  gdk_threads_leave ();

  /* Connect the superclass signals.  */
  Java_gnu_java_awt_peer_gtk_GtkComponentPeer_connectSignals (env, obj);
}