diff options
Diffstat (limited to 'libjava/javax/swing/JViewport.java')
| -rw-r--r-- | libjava/javax/swing/JViewport.java | 43 |
1 files changed, 32 insertions, 11 deletions
diff --git a/libjava/javax/swing/JViewport.java b/libjava/javax/swing/JViewport.java index b164dc79045..bbb4d5cb683 100644 --- a/libjava/javax/swing/JViewport.java +++ b/libjava/javax/swing/JViewport.java @@ -45,6 +45,7 @@ import java.awt.Insets; import java.awt.Point; import java.awt.Rectangle; +import javax.accessibility.Accessible; import javax.swing.event.ChangeEvent; import javax.swing.event.ChangeListener; import javax.swing.plaf.ViewportUI; @@ -91,19 +92,20 @@ import javax.swing.plaf.ViewportUI; * the underlying child at position <code>(-VX,-VY)</code></p> * */ - public class JViewport extends JComponent { - public static int BACKINGSTORE_SCROLL_MODE = 1; - public static int BLIT_SCROLL_MODE = 2; - public static int SIMPLE_SCROLL_MODE = 3; + private static final long serialVersionUID = -6925142919680527970L; + + public static final int SIMPLE_SCROLL_MODE = 0; + public static final int BLIT_SCROLL_MODE = 1; + public static final int BACKINGSTORE_SCROLL_MODE = 2; ChangeEvent changeEvent = new ChangeEvent(this); int scrollMode; - boolean scrollUnderway; - boolean isViewSizeSet; + protected boolean scrollUnderway; + protected boolean isViewSizeSet; /** * The width and height of the Viewport's area in terms of view @@ -133,11 +135,23 @@ public class JViewport extends JComponent public Dimension getExtentSize() { if (extentSize == null) - return getPreferredSize(); + return toViewCoordinates(getSize()); else return extentSize; } + public Dimension toViewCoordinates(Dimension size) + { + return size; + } + + public Point toViewCoordinates(Point p) + { + Point pos = getViewPosition(); + return new Point(p.x + pos.x, + p.y + pos.y); + } + public void setExtentSize(Dimension newSize) { extentSize = newSize; @@ -146,10 +160,10 @@ public class JViewport extends JComponent public Dimension getViewSize() { - if (viewSize == null) - return getView().getPreferredSize(); - else + if (isViewSizeSet) return viewSize; + else + return getView().getSize(); } @@ -158,10 +172,17 @@ public class JViewport extends JComponent viewSize = newSize; Component view = getView(); if (view != null) - view.setSize(newSize); + view.setSize(viewSize); + isViewSizeSet = true; fireStateChanged(); } + /** + * Get the viewport's position in view space. Despite confusing name, + * this really does return the viewport's (0,0) position in view space, + * not the view's position. + */ + public Point getViewPosition() { Component view = getView(); |

