X-Git-Url: http://git.nikiroo.be/?a=blobdiff_plain;f=src%2Fjexer%2FTScrollableWindow.java;h=ae5f50c570e645a78f79d4170a73138e0fe3d41a;hb=68c5cd6bec3dc425ef5b55fec399d4bdc9afa7cb;hp=8935ac349298ebed6fb4840467dcdec802e4b217;hpb=56661844475522242093c8858ceb20fb15589da5;p=fanfix.git diff --git a/src/jexer/TScrollableWindow.java b/src/jexer/TScrollableWindow.java index 8935ac3..ae5f50c 100644 --- a/src/jexer/TScrollableWindow.java +++ b/src/jexer/TScrollableWindow.java @@ -28,6 +28,7 @@ */ package jexer; +import jexer.event.TMouseEvent; import jexer.event.TResizeEvent; /** @@ -53,8 +54,8 @@ public class TScrollableWindow extends TWindow implements Scrollable { protected void placeScrollbars() { if (hScroller != null) { hScroller.setY(getHeight() - 2); - hScroller.setWidth(getWidth() - 3); - hScroller.setBigChange(getWidth() - 3); + hScroller.setWidth(getWidth() - hScroller.getX() - 3); + hScroller.setBigChange(getWidth() - hScroller.getX() - 3); } if (vScroller != null) { vScroller.setX(getWidth() - 2); @@ -599,4 +600,46 @@ public class TScrollableWindow extends TWindow implements Scrollable { } } + /** + * Check if a mouse press/release/motion event coordinate is over the + * vertical scrollbar. + * + * @param mouse a mouse-based event + * @return whether or not the mouse is on the scrollbar + */ + protected final boolean mouseOnVerticalScroller(final TMouseEvent mouse) { + if (vScroller == null) { + return false; + } + if ((mouse.getAbsoluteX() == vScroller.getAbsoluteX()) + && (mouse.getAbsoluteY() >= vScroller.getAbsoluteY()) + && (mouse.getAbsoluteY() < vScroller.getAbsoluteY() + + vScroller.getHeight()) + ) { + return true; + } + return false; + } + + /** + * Check if a mouse press/release/motion event coordinate is over the + * horizontal scrollbar. + * + * @param mouse a mouse-based event + * @return whether or not the mouse is on the scrollbar + */ + protected final boolean mouseOnHorizontalScroller(final TMouseEvent mouse) { + if (hScroller == null) { + return false; + } + if ((mouse.getAbsoluteY() == hScroller.getAbsoluteY()) + && (mouse.getAbsoluteX() >= hScroller.getAbsoluteX()) + && (mouse.getAbsoluteX() < hScroller.getAbsoluteX() + + hScroller.getWidth()) + ) { + return true; + } + return false; + } + }