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
|
@ -844,9 +844,10 @@ public abstract class Component
|
|||
// Inspection by subclassing shows that Sun's implementation calls
|
||||
// show(boolean) which then calls show() or hide(). It is the show()
|
||||
// method that is overriden in subclasses like Window.
|
||||
if (peer != null)
|
||||
peer.setVisible(b);
|
||||
this.visible = b;
|
||||
if (b)
|
||||
show();
|
||||
else
|
||||
hide();
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -856,7 +857,9 @@ public abstract class Component
|
|||
*/
|
||||
public void show()
|
||||
{
|
||||
setVisible(true);
|
||||
if (peer != null)
|
||||
peer.setVisible(true);
|
||||
this.visible = true;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -877,7 +880,9 @@ public abstract class Component
|
|||
*/
|
||||
public void hide()
|
||||
{
|
||||
setVisible(false);
|
||||
if (peer != null)
|
||||
peer.setVisible(false);
|
||||
this.visible = false;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -1448,8 +1453,10 @@ public abstract class Component
|
|||
public Dimension getPreferredSize()
|
||||
{
|
||||
if (prefSize == null)
|
||||
prefSize = (peer != null ? peer.getPreferredSize()
|
||||
: new Dimension(width, height));
|
||||
if (peer == null)
|
||||
return new Dimension(width, height);
|
||||
else
|
||||
prefSize = peer.getPreferredSize();
|
||||
return prefSize;
|
||||
}
|
||||
|
||||
|
|
|
@ -171,13 +171,13 @@ public class FlowLayout implements LayoutManager, Serializable
|
|||
int new_h = 0;
|
||||
int j;
|
||||
boolean found_one = false;
|
||||
for (j = i; j < num && ! found_one; ++j)
|
||||
for (j = i; j < num; ++j)
|
||||
{
|
||||
// Skip invisible items.
|
||||
if (! comps[i].visible)
|
||||
if (! comps[j].visible)
|
||||
continue;
|
||||
|
||||
Dimension c = comps[i].getPreferredSize ();
|
||||
Dimension c = comps[j].getPreferredSize ();
|
||||
|
||||
int next_w = new_w + hgap + c.width;
|
||||
if (next_w <= d.width || ! found_one)
|
||||
|
|
|
@ -390,8 +390,8 @@ setValues(int value, int visibleAmount, int minimum, int maximum)
|
|||
if (value > maximum)
|
||||
value = maximum;
|
||||
|
||||
if (visibleAmount > value)
|
||||
visibleAmount = value;
|
||||
if (visibleAmount > maximum - minimum)
|
||||
visibleAmount = maximum - minimum;
|
||||
|
||||
this.value = value;
|
||||
this.visibleAmount = visibleAmount;
|
||||
|
@ -664,6 +664,7 @@ processEvent(AWTEvent event)
|
|||
protected void
|
||||
processAdjustmentEvent(AdjustmentEvent event)
|
||||
{
|
||||
value = event.getValue();
|
||||
if (adjustment_listeners != null)
|
||||
adjustment_listeners.adjustmentValueChanged(event);
|
||||
}
|
||||
|
|
|
@ -370,7 +370,11 @@ getPreferredSize(int rows, int columns)
|
|||
{
|
||||
TextAreaPeer tap = (TextAreaPeer)getPeer();
|
||||
if (tap == null)
|
||||
return(null); // FIXME: What do we do if there is no peer?
|
||||
{
|
||||
// Sun's JDK just seems to return Dimension(0,0) in this case.
|
||||
// we do the same.
|
||||
return new Dimension(0, 0);
|
||||
}
|
||||
|
||||
return(tap.getPreferredSize(rows, columns));
|
||||
}
|
||||
|
|
|
@ -345,8 +345,9 @@ getPreferredSize(int columns)
|
|||
{
|
||||
TextFieldPeer tfp = (TextFieldPeer)getPeer();
|
||||
if (tfp == null)
|
||||
return(null); // FIXME: What do we do if there is no peer?
|
||||
|
||||
{
|
||||
return new Dimension(0, 0);
|
||||
}
|
||||
return(tfp.getPreferredSize(columns));
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue