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

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

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

revision 1.8 by mark, Sat Apr 17 23:24:47 2004 UTC revision 1.8.2.1 by gnu_andrew, Fri Jan 14 10:24:17 2005 UTC
# Line 49  JNIEXPORT void JNICALL Java_gnu_java_awt Line 49  JNIEXPORT void JNICALL Java_gnu_java_awt
49    GtkWidget *widget;    GtkWidget *widget;
50    const char *str;    const char *str;
51    
   /* Create global reference and save it for future use */  
52    NSA_SET_GLOBAL_REF (env, obj);    NSA_SET_GLOBAL_REF (env, obj);
53    
54    str = (*env)->GetStringUTFChars (env, label, NULL);    str = (*env)->GetStringUTFChars (env, label, NULL);
55    
56    gdk_threads_enter ();    gdk_threads_enter ();
57      
58    if (strcmp (str, "-") == 0) /* "-" signals that we need a separator */    /* "-" signals that we need a separator. */
59      if (strcmp (str, "-") == 0)
60      widget = gtk_menu_item_new ();      widget = gtk_menu_item_new ();
61    else    else
62      widget = gtk_menu_item_new_with_label (str);      widget = gtk_menu_item_new_with_label (str);
# Line 86  Java_gnu_java_awt_peer_gtk_GtkMenuItemPe Line 86  Java_gnu_java_awt_peer_gtk_GtkMenuItemPe
86    gdk_threads_leave ();    gdk_threads_leave ();
87  }  }
88    
89    JNIEXPORT void JNICALL
90    Java_gnu_java_awt_peer_gtk_GtkMenuItemPeer_gtkWidgetModifyFont
91      (JNIEnv *env, jobject obj, jstring name, jint style, jint size)
92    {
93      const char *font_name;
94      void *ptr;
95      GtkWidget *label;
96      PangoFontDescription *font_desc;
97    
98      ptr = NSA_GET_PTR (env, obj);
99    
100      font_name = (*env)->GetStringUTFChars (env, name, NULL);
101    
102      gdk_threads_enter();
103    
104      label = gtk_bin_get_child (GTK_BIN (ptr));
105    
106      if (label)
107        {
108          font_desc = pango_font_description_from_string (font_name);
109          pango_font_description_set_size (font_desc, size * dpi_conversion_factor);
110    
111          if (style & AWT_STYLE_BOLD)
112            pango_font_description_set_weight (font_desc, PANGO_WEIGHT_BOLD);
113    
114          if (style & AWT_STYLE_ITALIC)
115            pango_font_description_set_style (font_desc, PANGO_STYLE_OBLIQUE);
116    
117          gtk_widget_modify_font (GTK_WIDGET(label), font_desc);
118    
119          pango_font_description_free (font_desc);
120        }
121    
122      gdk_threads_leave();
123    
124      (*env)->ReleaseStringUTFChars (env, name, font_name);
125    }
126    
127    JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkMenuItemPeer_setEnabled
128      (JNIEnv *env, jobject obj, jboolean enabled)
129    {
130      void *ptr;
131    
132      ptr = NSA_GET_PTR (env, obj);
133    
134      gdk_threads_enter ();
135      gtk_widget_set_sensitive (GTK_WIDGET (ptr), enabled);
136      gdk_threads_leave ();
137    }
138    
139  JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkMenuItemPeer_setLabel  JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkMenuItemPeer_setLabel
140    (JNIEnv *env, jobject obj, jstring label)    (JNIEnv *env, jobject obj, jstring label)
141  {  {
142    void *ptr;    void *ptr;
143    const char *str;    const char *str;
144      GtkAccelLabel *accel_label;
145    
146    ptr = NSA_GET_PTR (env, obj);    ptr = NSA_GET_PTR (env, obj);
147    
# Line 98  JNIEXPORT void JNICALL Java_gnu_java_awt Line 149  JNIEXPORT void JNICALL Java_gnu_java_awt
149    
150    gdk_threads_enter ();    gdk_threads_enter ();
151    
152    if (strcmp (str, "-") == 0) /* "-" signals that we need a separator */    accel_label = GTK_ACCEL_LABEL (GTK_BIN (ptr)->child);
     gtk_container_remove (GTK_CONTAINER (ptr), GTK_BIN (ptr)->child);  
   else  
     {  
       GtkAccelLabel *accel_label = GTK_ACCEL_LABEL (GTK_BIN (ptr)->child);  
153    
154        gtk_label_set_text (GTK_LABEL (accel_label), str);    gtk_label_set_text (GTK_LABEL (accel_label), str);
155        gtk_accel_label_refetch (accel_label);    gtk_accel_label_refetch (accel_label);
     }  
156    
157    gdk_threads_leave ();    gdk_threads_leave ();
158    
# Line 119  item_activate (GtkMenuItem *item __attri Line 165  item_activate (GtkMenuItem *item __attri
165    (*gdk_env)->CallVoidMethod (gdk_env, peer_obj,    (*gdk_env)->CallVoidMethod (gdk_env, peer_obj,
166                                postMenuActionEventID);                                postMenuActionEventID);
167  }  }
   

Legend:
Removed from v.1.8  
changed lines
  Added in v.1.8.2.1

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