Commit 009ed5cc by Thomas Fitzsimmons Committed by Thomas Fitzsimmons

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
parent 4d595e43
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 ();
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 ();
(*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_label_new (NULL);
label = gtk_bin_get_child (GTK_BIN(ptr));
gtk_label_set_label (GTK_LABEL (label), str);
gdk_threads_leave ();
NSA_SET_PTR (env, obj, label);
(*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 ();
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment