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); |
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 |
|
|
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 |
|
|
165 |
(*gdk_env)->CallVoidMethod (gdk_env, peer_obj, |
(*gdk_env)->CallVoidMethod (gdk_env, peer_obj, |
166 |
postMenuActionEventID); |
postMenuActionEventID); |
167 |
} |
} |
|
|
|