Oh no, not again. We have to account for our style adjustments when
computing width and height all the time rather than tacking them on at the end. git-svn-id: https://samskivert.googlecode.com/svn/trunk@955 6335cc39-0255-0410-8fd6-9bcaacd3b74c
This commit is contained in:
@@ -1,5 +1,5 @@
|
|||||||
//
|
//
|
||||||
// $Id: Label.java,v 1.28 2002/11/13 23:14:57 mdb Exp $
|
// $Id: Label.java,v 1.29 2002/12/02 21:55:45 mdb Exp $
|
||||||
//
|
//
|
||||||
// samskivert library - useful routines for java programs
|
// samskivert library - useful routines for java programs
|
||||||
// Copyright (C) 2002 Michael Bayne
|
// Copyright (C) 2002 Michael Bayne
|
||||||
@@ -348,28 +348,6 @@ public class Label implements SwingConstants, LabelStyleConstants
|
|||||||
layouts.add(new Tuple(layout, bounds));
|
layouts.add(new Tuple(layout, bounds));
|
||||||
}
|
}
|
||||||
|
|
||||||
switch (_style) {
|
|
||||||
case OUTLINE:
|
|
||||||
// we need to be two pixels bigger in both directions
|
|
||||||
_size.width += 2;
|
|
||||||
_size.height += 2;
|
|
||||||
break;
|
|
||||||
|
|
||||||
case SHADOW:
|
|
||||||
// we need to be one pixel bigger in both directions
|
|
||||||
_size.width += 1;
|
|
||||||
_size.height += 1;
|
|
||||||
break;
|
|
||||||
|
|
||||||
case BOLD:
|
|
||||||
// we need to be one pixel bigger horizontally
|
|
||||||
_size.width += 1;
|
|
||||||
break;
|
|
||||||
|
|
||||||
default:
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
// create our layouts array
|
// create our layouts array
|
||||||
int lcount = layouts.size();
|
int lcount = layouts.size();
|
||||||
_layouts = new TextLayout[lcount];
|
_layouts = new TextLayout[lcount];
|
||||||
@@ -568,9 +546,15 @@ public class Label implements SwingConstants, LabelStyleConstants
|
|||||||
* Computes the total width of a {@link TextLayout} given bounds
|
* Computes the total width of a {@link TextLayout} given bounds
|
||||||
* returned from a call to {@link TextLayout#getBounds}.
|
* returned from a call to {@link TextLayout#getBounds}.
|
||||||
*/
|
*/
|
||||||
protected static double getWidth (Rectangle2D laybounds)
|
protected double getWidth (Rectangle2D laybounds)
|
||||||
{
|
{
|
||||||
return laybounds.getX() + laybounds.getWidth();
|
double width = laybounds.getX() + laybounds.getWidth();
|
||||||
|
switch (_style) {
|
||||||
|
case OUTLINE: width += 2; break;
|
||||||
|
case SHADOW: width += 1; break;
|
||||||
|
case BOLD: width += 1; break;
|
||||||
|
}
|
||||||
|
return width;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -578,9 +562,15 @@ public class Label implements SwingConstants, LabelStyleConstants
|
|||||||
* than what the layout reports via <code>getBounds()</code> which
|
* than what the layout reports via <code>getBounds()</code> which
|
||||||
* rarely seems to have any bearing on reality.
|
* rarely seems to have any bearing on reality.
|
||||||
*/
|
*/
|
||||||
protected static float getHeight (TextLayout layout)
|
protected float getHeight (TextLayout layout)
|
||||||
{
|
{
|
||||||
return layout.getLeading() + layout.getAscent() + layout.getDescent();
|
float height = layout.getLeading() + layout.getAscent() +
|
||||||
|
layout.getDescent();
|
||||||
|
switch (_style) {
|
||||||
|
case OUTLINE: height += 2; break;
|
||||||
|
case SHADOW: height += 1; break;
|
||||||
|
}
|
||||||
|
return height;
|
||||||
}
|
}
|
||||||
|
|
||||||
/** The text of the label. */
|
/** The text of the label. */
|
||||||
|
|||||||
Reference in New Issue
Block a user