GtkLabelPeer.java (create()): Call new create.
2003-11-11 Thomas Fitzsimmons <fitzsim@redhat.com> * gnu/java/awt/peer/gtk/GtkLabelPeer.java (create()): Call new create. (create(String, float)): New method. (setText): Make native. (nativeSetAlignment): New method. (setAlignment): Call nativeSetAlignment. (getArgs): Remove method. * jni/gtk-peer/gnu_java_awt_peer_gtk_GtkComponentPeer.c (find_fg_color_widget, find_bg_color_widget): New functions. (gtkWidgetSetForeground): Call find_fg_color_widget. (gtkWidgetSetBackground): Call find_bg_color_widget. Modify active and prelight colors. * jni/gtk-peer/gnu_java_awt_peer_gtk_GtkLabelPeer.c (create): Wrap label widget in event box. (setText, setAlignment): Implement new native methods. From-SVN: r73453
This commit is contained in:
parent
4d595e4342
commit
009ed5cc5c
4 changed files with 127 additions and 23 deletions
|
@ -1,3 +1,20 @@
|
|||
2003-11-11 Thomas Fitzsimmons <fitzsim@redhat.com>
|
||||
|
||||
* gnu/java/awt/peer/gtk/GtkLabelPeer.java (create()): Call new create.
|
||||
(create(String, float)): New method.
|
||||
(setText): Make native.
|
||||
(nativeSetAlignment): New method.
|
||||
(setAlignment): Call nativeSetAlignment.
|
||||
(getArgs): Remove method.
|
||||
* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkComponentPeer.c
|
||||
(find_fg_color_widget, find_bg_color_widget): New functions.
|
||||
(gtkWidgetSetForeground): Call find_fg_color_widget.
|
||||
(gtkWidgetSetBackground): Call find_bg_color_widget. Modify active and
|
||||
prelight colors.
|
||||
* jni/gtk-peer/gnu_java_awt_peer_gtk_GtkLabelPeer.c (create): Wrap label
|
||||
widget in event box.
|
||||
(setText, setAlignment): Implement new native methods.
|
||||
|
||||
2003-11-11 Michael Koch <konqueror@gmx.de>
|
||||
|
||||
* java/awt/Font.java,
|
||||
|
|
|
@ -45,21 +45,25 @@ import java.awt.peer.LabelPeer;
|
|||
public class GtkLabelPeer extends GtkComponentPeer
|
||||
implements LabelPeer
|
||||
{
|
||||
native void create ();
|
||||
void create ()
|
||||
{
|
||||
Label label = (Label) awtComponent;
|
||||
create (label.getText (), getGtkAlignment (label.getAlignment ()));
|
||||
}
|
||||
|
||||
native void create (String text, float alignment);
|
||||
|
||||
public GtkLabelPeer (Label l)
|
||||
{
|
||||
super (l);
|
||||
}
|
||||
|
||||
public void setText (String text)
|
||||
{
|
||||
set ("label", text);
|
||||
}
|
||||
|
||||
native public void setText (String text);
|
||||
|
||||
native void nativeSetAlignment (float alignment);
|
||||
public void setAlignment (int alignment)
|
||||
{
|
||||
set ("xalign", getGtkAlignment (alignment));
|
||||
nativeSetAlignment (getGtkAlignment (alignment));
|
||||
}
|
||||
|
||||
float getGtkAlignment (int alignment)
|
||||
|
@ -76,15 +80,4 @@ public class GtkLabelPeer extends GtkComponentPeer
|
|||
|
||||
return 0.0f;
|
||||
}
|
||||
|
||||
public void getArgs (Component component, GtkArgList args)
|
||||
{
|
||||
super.getArgs (component, args);
|
||||
|
||||
Label label = (Label) component;
|
||||
|
||||
args.add ("label", label.getText ());
|
||||
args.add ("xalign", getGtkAlignment (label.getAlignment ()));
|
||||
args.add ("yalign", 0.5f);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -40,6 +40,9 @@ exception statement from your version. */
|
|||
#include "gnu_java_awt_peer_gtk_GtkComponentPeer.h"
|
||||
#include <gtk/gtkprivate.h>
|
||||
|
||||
static GtkWidget *find_fg_color_widget (GtkWidget *widget);
|
||||
static GtkWidget *find_bg_color_widget (GtkWidget *widget);
|
||||
|
||||
JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkGenericPeer_dispose
|
||||
(JNIEnv *env, jobject obj)
|
||||
{
|
||||
|
@ -299,7 +302,7 @@ Java_gnu_java_awt_peer_gtk_GtkComponentPeer_gtkWidgetSetBackground
|
|||
|
||||
gdk_threads_enter ();
|
||||
|
||||
widget = GTK_WIDGET (ptr);
|
||||
widget = find_bg_color_widget (GTK_WIDGET (ptr));
|
||||
|
||||
gtk_widget_modify_bg (widget, GTK_STATE_NORMAL, &normal_color);
|
||||
gtk_widget_modify_bg (widget, GTK_STATE_ACTIVE, &active_color);
|
||||
|
@ -324,9 +327,11 @@ Java_gnu_java_awt_peer_gtk_GtkComponentPeer_gtkWidgetSetForeground
|
|||
|
||||
gdk_threads_enter ();
|
||||
|
||||
widget = GTK_WIDGET (ptr);
|
||||
widget = find_fg_color_widget (GTK_WIDGET (ptr));
|
||||
|
||||
gtk_widget_modify_fg (widget, GTK_STATE_NORMAL, &color);
|
||||
gtk_widget_modify_fg (widget, GTK_STATE_ACTIVE, &color);
|
||||
gtk_widget_modify_fg (widget, GTK_STATE_PRELIGHT, &color);
|
||||
|
||||
gdk_threads_leave ();
|
||||
}
|
||||
|
@ -542,3 +547,39 @@ JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkComponentPeer_connectHooks
|
|||
connect_awt_hook (env, obj, 1, GTK_WIDGET (ptr)->window);
|
||||
gdk_threads_leave ();
|
||||
}
|
||||
|
||||
static GtkWidget *
|
||||
find_fg_color_widget (GtkWidget *widget)
|
||||
{
|
||||
GtkWidget *fg_color_widget;
|
||||
|
||||
if (GTK_IS_EVENT_BOX (widget))
|
||||
fg_color_widget = gtk_bin_get_child (GTK_BIN(widget));
|
||||
else
|
||||
fg_color_widget = widget;
|
||||
|
||||
return fg_color_widget;
|
||||
}
|
||||
|
||||
static GtkWidget *
|
||||
find_bg_color_widget (GtkWidget *widget)
|
||||
{
|
||||
GtkWidget *bg_color_widget;
|
||||
|
||||
if (GTK_IS_WINDOW (widget))
|
||||
{
|
||||
GtkWidget *vbox;
|
||||
GList* children;
|
||||
|
||||
children = gtk_container_get_children(GTK_CONTAINER(widget));
|
||||
vbox = children->data;
|
||||
|
||||
children = gtk_container_get_children(GTK_CONTAINER(vbox));
|
||||
bg_color_widget = children->data;
|
||||
}
|
||||
else
|
||||
bg_color_widget = widget;
|
||||
|
||||
return bg_color_widget;
|
||||
}
|
||||
|
||||
|
|
|
@ -41,15 +41,68 @@ exception statement from your version. */
|
|||
|
||||
JNIEXPORT void JNICALL
|
||||
Java_gnu_java_awt_peer_gtk_GtkLabelPeer_create
|
||||
(JNIEnv *env, jobject obj)
|
||||
(JNIEnv *env, jobject obj, jstring text, jfloat xalign)
|
||||
{
|
||||
GtkWidget *label;
|
||||
GtkWidget *ebox;
|
||||
GtkContainer *ebox_container;
|
||||
const char *str;
|
||||
|
||||
str = (*env)->GetStringUTFChars (env, text, 0);
|
||||
|
||||
gdk_threads_enter ();
|
||||
|
||||
label = gtk_label_new (NULL);
|
||||
ebox = gtk_event_box_new ();
|
||||
ebox_container = GTK_CONTAINER (ebox);
|
||||
label = gtk_label_new (str);
|
||||
gtk_misc_set_alignment (GTK_MISC (label), xalign, 0.5);
|
||||
gtk_container_add (ebox_container, label);
|
||||
gtk_widget_show (label);
|
||||
|
||||
gdk_threads_leave ();
|
||||
|
||||
NSA_SET_PTR (env, obj, label);
|
||||
(*env)->ReleaseStringUTFChars (env, text, str);
|
||||
|
||||
NSA_SET_PTR (env, obj, ebox);
|
||||
}
|
||||
|
||||
JNIEXPORT void JNICALL
|
||||
Java_gnu_java_awt_peer_gtk_GtkLabelPeer_setText
|
||||
(JNIEnv *env, jobject obj, jstring text)
|
||||
{
|
||||
const char *str;
|
||||
void *ptr;
|
||||
GtkWidget *label;
|
||||
|
||||
ptr = NSA_GET_PTR (env, obj);
|
||||
|
||||
str = (*env)->GetStringUTFChars (env, text, 0);
|
||||
|
||||
gdk_threads_enter ();
|
||||
|
||||
label = gtk_bin_get_child (GTK_BIN(ptr));
|
||||
|
||||
gtk_label_set_label (GTK_LABEL (label), str);
|
||||
|
||||
gdk_threads_leave ();
|
||||
|
||||
(*env)->ReleaseStringUTFChars (env, text, str);
|
||||
}
|
||||
|
||||
JNIEXPORT void JNICALL
|
||||
Java_gnu_java_awt_peer_gtk_GtkLabelPeer_setAlignment
|
||||
(JNIEnv *env, jobject obj, jfloat xalign)
|
||||
{
|
||||
void *ptr;
|
||||
GtkWidget *label;
|
||||
|
||||
ptr = NSA_GET_PTR (env, obj);
|
||||
|
||||
gdk_threads_enter ();
|
||||
|
||||
label = gtk_bin_get_child (GTK_BIN(ptr));
|
||||
|
||||
gtk_misc_set_alignment (GTK_MISC (label), xalign, 0.5);
|
||||
|
||||
gdk_threads_leave ();
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue