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

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

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

revision 1.25 by fitzsim, Mon Jul 11 23:27:43 2005 UTC revision 1.26 by fitzsim, Thu Jul 14 22:07:02 2005 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_GtkButtonPeer.h"  #include "gnu_java_awt_peer_gtk_GtkButtonPeer.h"
41    
42  static gboolean focus_in_cb (GtkWidget *widget,  static jmethodID beginNativeRepaintID;
43                               GdkEventFocus *event,  static jmethodID endNativeRepaintID;
44                               jobject peer);  
45  static gboolean focus_out_cb (GtkWidget *widget,  void
46                                GdkEventFocus *event,  cp_gtk_button_init_jni (void)
47                                jobject peer);  {
48      jclass gtkbuttonpeer;
49    
50      gtkbuttonpeer = (*cp_gtk_gdk_env())->FindClass (cp_gtk_gdk_env(),
51                                               "gnu/java/awt/peer/gtk/GtkButtonPeer");
52    
53      beginNativeRepaintID = (*cp_gtk_gdk_env())->GetMethodID (cp_gtk_gdk_env(), gtkbuttonpeer,
54                                                        "beginNativeRepaint",
55                                                        "()V");
56    
57      endNativeRepaintID = (*cp_gtk_gdk_env())->GetMethodID (cp_gtk_gdk_env(), gtkbuttonpeer,
58                                                      "endNativeRepaint", "()V");
59    }
60    
61  static void block_expose_event_cb (GtkWidget *widget,  static void block_expose_event_cb (GtkWidget *widget,
62                                     jobject peer);                                     jobject peer);
# Line 89  Java_gnu_java_awt_peer_gtk_GtkButtonPeer Line 101  Java_gnu_java_awt_peer_gtk_GtkButtonPeer
101    
102    button = gtk_bin_get_child (GTK_BIN (ptr));    button = gtk_bin_get_child (GTK_BIN (ptr));
103    
104    g_signal_connect (G_OBJECT (ptr), "event",    /* Button signals */
                     G_CALLBACK (pre_event_handler), *gref);  
   
   g_signal_connect (G_OBJECT (button), "event",  
                     G_CALLBACK (pre_event_handler), *gref);  
   
   g_signal_connect (G_OBJECT (button), "focus-in-event",  
                     G_CALLBACK (focus_in_cb), *gref);  
   
   g_signal_connect (G_OBJECT (button), "focus-out-event",  
                     G_CALLBACK (focus_out_cb), *gref);  
   
105    g_signal_connect_after (G_OBJECT (button), "pressed",    g_signal_connect_after (G_OBJECT (button), "pressed",
106                            G_CALLBACK (block_expose_event_cb), *gref);                            G_CALLBACK (block_expose_event_cb), *gref);
107    
108    g_signal_connect_after (G_OBJECT (button), "released",    g_signal_connect_after (G_OBJECT (button), "released",
109                            G_CALLBACK (block_expose_event_cb), *gref);                            G_CALLBACK (block_expose_event_cb), *gref);
110    
111      /* Component signals */
112      cp_gtk_component_connect_signals (G_OBJECT (button), gref);
113    
114    gdk_threads_leave ();    gdk_threads_leave ();
115  }  }
116    
# Line 154  Java_gnu_java_awt_peer_gtk_GtkButtonPeer Line 158  Java_gnu_java_awt_peer_gtk_GtkButtonPeer
158    label = gtk_bin_get_child (GTK_BIN (button));    label = gtk_bin_get_child (GTK_BIN (button));
159    
160    font_desc = pango_font_description_from_string (font_name);    font_desc = pango_font_description_from_string (font_name);
161    pango_font_description_set_size (font_desc, size * dpi_conversion_factor);    pango_font_description_set_size (font_desc,
162                                       size * cp_gtk_dpi_conversion_factor);
163    
164    if (style & AWT_STYLE_BOLD)    if (style & AWT_STYLE_BOLD)
165      pango_font_description_set_weight (font_desc, PANGO_WEIGHT_BOLD);      pango_font_description_set_weight (font_desc, PANGO_WEIGHT_BOLD);
# Line 312  Java_gnu_java_awt_peer_gtk_GtkButtonPeer Line 317  Java_gnu_java_awt_peer_gtk_GtkButtonPeer
317    gdk_threads_leave ();    gdk_threads_leave ();
318  }  }
319    
 static gboolean  
 focus_in_cb (GtkWidget *widget __attribute((unused)),  
              GdkEventFocus *event __attribute((unused)),  
              jobject peer)  
 {  
   gdk_threads_leave ();  
   (*gdk_env())->CallVoidMethod (gdk_env(), peer,  
                                 postFocusEventID,  
                                 AWT_FOCUS_GAINED,  
                                 JNI_FALSE);  
   gdk_threads_enter ();  
   return FALSE;  
 }  
   
 static gboolean  
 focus_out_cb (GtkWidget *widget __attribute((unused)),  
               GdkEventFocus *event __attribute((unused)),  
               jobject peer)  
 {  
   gdk_threads_leave ();  
   (*gdk_env())->CallVoidMethod (gdk_env(), peer,  
                                 postFocusEventID,  
                                 AWT_FOCUS_LOST,  
                                 JNI_FALSE);  
   gdk_threads_enter ();  
   return FALSE;  
 }  
   
320  static void  static void
321  block_expose_event_cb (GtkWidget *widget, jobject peer)  block_expose_event_cb (GtkWidget *widget, jobject peer)
322  {  {
323    gdk_threads_leave ();    gdk_threads_leave ();
324    
325    (*gdk_env())->CallVoidMethod (gdk_env(), peer,    (*cp_gtk_gdk_env())->CallVoidMethod (cp_gtk_gdk_env(), peer,
326                                  beginNativeRepaintID);                                  beginNativeRepaintID);
327    
328    gdk_threads_enter ();    gdk_threads_enter ();
# Line 354  block_expose_event_cb (GtkWidget *widget Line 331  block_expose_event_cb (GtkWidget *widget
331    
332    gdk_threads_leave ();    gdk_threads_leave ();
333    
334    (*gdk_env())->CallVoidMethod (gdk_env(), peer,    (*cp_gtk_gdk_env())->CallVoidMethod (cp_gtk_gdk_env(), peer,
335                                endNativeRepaintID);                                endNativeRepaintID);
336    
337    gdk_threads_enter ();    gdk_threads_enter ();

Legend:
Removed from v.1.25  
changed lines
  Added in v.1.26

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