XToolkit.java (getFontMetrics): initialize if necessary.
2003-02-18 Hans Boehm <Hans.Boehm@hp.com> * gnu/awt/xlib/XToolkit.java (getFontMetrics): initialize if necessary. * gnu/java/awt/peer/gtk/GtkButtonPeer.java, gnu/java/awt/peer/gtk/GtkTextAreaPeer.java, gnu/java/awt/peer/gtk/GtkTextFieldPeer.java, jni/gtk-peer/gnu_java_awt_peer_gtk_GtkButtonPeer.c, jni/gtk-peer/gnu_java_awt_peer_gtk_GtkTextAreaPeer.c, jni/gtk-peer/gnu_java_awt_peer_gtk_GtkTextFieldPeer.c (setFont, gtkSetFont): add. gnu/java/awt/peer/gtk/GtkComponentPeer.java (GtkComponentPeer): Propagate font to peer. (setFont): add FIXME comment. * jni/gtk-peer/gnu_java_awt_peer_gtk_GtkTextAreaPeer.c (gtkTextGetSize): fix height, width computation. * gnu/java/awt/peer/gtk/GtkFontPeer.java (GtkFontPeer): Make X font name a bit less bogus. * jni/gtk-peer/gnu_java_awt_peer_gtk_GtkScrollBarPeer.c (post_adjustment_event): Pass on GTK_SCROLL_NONE. * java/awt/Scrollbar.java (setValues): Fix visibleAmount range check. (processAdjustmentEvent): Adjust value. * java/awt/FlowLayout.java (layoutContainer) Fix 2 indexing and one logic errors. * java/awt/Component.java (setVisible, show, hide): Call show and hide methods in subclasses. (getPreferredSize): don't set prefSize before we have peer. * java/awt/TextArea.java, java/awt/TextField.java (getPreferredSize): Guess (0,0) if we don't have peer. From-SVN: r63077
This commit is contained in:
parent
35bd551997
commit
56bba8cf57
16 changed files with 229 additions and 24 deletions
|
@ -47,6 +47,8 @@ public class GtkButtonPeer extends GtkComponentPeer
|
|||
{
|
||||
native void create ();
|
||||
|
||||
native void gtkSetFont(String xlfd, int size);
|
||||
|
||||
public GtkButtonPeer (Button b)
|
||||
{
|
||||
super (b);
|
||||
|
@ -86,4 +88,9 @@ public class GtkButtonPeer extends GtkComponentPeer
|
|||
|
||||
args.add ("label", ((Button)component).getLabel ());
|
||||
}
|
||||
|
||||
public void setFont (Font f)
|
||||
{
|
||||
gtkSetFont(((GtkFontPeer)f.getPeer()).getXLFD(), f.getSize());
|
||||
}
|
||||
}
|
||||
|
|
|
@ -88,6 +88,8 @@ public class GtkComponentPeer extends GtkGenericPeer
|
|||
awtComponent.setBackground (getBackground ());
|
||||
// if (c.getFont () == null)
|
||||
// c.setFont (cp.getFont ());
|
||||
if (awtComponent.getFont() != null)
|
||||
setFont(awtComponent.getFont());
|
||||
|
||||
if (! (awtComponent instanceof Window))
|
||||
{
|
||||
|
@ -273,6 +275,9 @@ public class GtkComponentPeer extends GtkGenericPeer
|
|||
|
||||
public void setFont (Font f)
|
||||
{
|
||||
// FIXME: This should really affect the widget tree below me.
|
||||
// Currently this is only handled if the call is made directly on
|
||||
// a text widget, which implements setFont() itself.
|
||||
}
|
||||
|
||||
public void setForeground (Color c)
|
||||
|
@ -352,7 +357,8 @@ public class GtkComponentPeer extends GtkGenericPeer
|
|||
p = component.getPeer ();
|
||||
} while (p instanceof java.awt.peer.LightweightPeer);
|
||||
|
||||
args.add ("parent", p);
|
||||
if (p != null)
|
||||
args.add ("parent", p);
|
||||
}
|
||||
|
||||
native void set (String name, String value);
|
||||
|
|
|
@ -57,14 +57,34 @@ public class GtkFontPeer implements FontPeer
|
|||
}
|
||||
}
|
||||
|
||||
final private String Xname;
|
||||
final private String Xname; // uses %d for font size.
|
||||
|
||||
public GtkFontPeer (String name, int style)
|
||||
{
|
||||
if (bundle != null)
|
||||
Xname = bundle.getString (name.toLowerCase () + "." + style);
|
||||
else
|
||||
Xname = "-*-*-medium-r-normal-*-12-*-*-*-c-*-*-*";
|
||||
{
|
||||
String weight;
|
||||
String slant;
|
||||
String spacing;
|
||||
|
||||
if (style == Font.ITALIC || (style == (Font.BOLD+Font.ITALIC)))
|
||||
slant = "i";
|
||||
else
|
||||
slant = "r";
|
||||
if (style == Font.BOLD || (style == (Font.BOLD+Font.ITALIC)))
|
||||
weight = "bold";
|
||||
else
|
||||
weight = "medium";
|
||||
if (name.equals("Serif") || name.equals("SansSerif")
|
||||
|| name.equals("Helvetica") || name.equals("Times"))
|
||||
spacing = "p";
|
||||
else
|
||||
spacing = "c";
|
||||
|
||||
Xname = "-*-*-" + weight + "-" + slant + "-normal-*-%d-*-*-*-" + spacing + "-*-*-*";
|
||||
}
|
||||
}
|
||||
|
||||
public String getXLFD ()
|
||||
|
|
|
@ -45,6 +45,8 @@ public class GtkTextAreaPeer extends GtkTextComponentPeer
|
|||
{
|
||||
native void create (int scrollbarVisibility);
|
||||
|
||||
native void gtkSetFont(String xlfd, int size);
|
||||
|
||||
void create ()
|
||||
{
|
||||
create (((TextArea)awtComponent).getScrollbarVisibility ());
|
||||
|
@ -99,4 +101,9 @@ public class GtkTextAreaPeer extends GtkTextComponentPeer
|
|||
{
|
||||
insert (str, pos);
|
||||
}
|
||||
|
||||
public void setFont (Font f)
|
||||
{
|
||||
gtkSetFont(((GtkFontPeer)f.getPeer()).getXLFD(), f.getSize());
|
||||
}
|
||||
}
|
||||
|
|
|
@ -51,6 +51,8 @@ public class GtkTextFieldPeer extends GtkTextComponentPeer
|
|||
|
||||
native void gtkEntryGetSize (int cols, int dims[]);
|
||||
|
||||
native void gtkSetFont(String xlfd, int size);
|
||||
|
||||
public GtkTextFieldPeer (TextField tf)
|
||||
{
|
||||
super (tf);
|
||||
|
@ -95,4 +97,9 @@ public class GtkTextFieldPeer extends GtkTextComponentPeer
|
|||
{
|
||||
setEchoChar (c);
|
||||
}
|
||||
|
||||
public void setFont (Font f)
|
||||
{
|
||||
gtkSetFont(((GtkFontPeer)f.getPeer()).getXLFD(), f.getSize());
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue