X-Git-Url: http://git.nikiroo.be/?a=blobdiff_plain;f=src%2Fjexer%2FTWidget.java;h=8833f8ff7d0668fb232222ef6fa032a232976be8;hb=a0d734e68fc28e441d74075e4d8d0166bbcde180;hp=12e43444a6f085392903d4335fe6004fc72c6194;hpb=1c19fdeaff911aa6e9e028f3ad4db06c8d0597dd;p=fanfix.git diff --git a/src/jexer/TWidget.java b/src/jexer/TWidget.java index 12e4344..8833f8f 100644 --- a/src/jexer/TWidget.java +++ b/src/jexer/TWidget.java @@ -980,6 +980,29 @@ public abstract class TWidget implements Comparable { } } + /** + * Method that subclasses can override to handle mouse button + * double-clicks. + * + * @param mouse mouse button event + */ + public void onMouseDoubleClick(final TMouseEvent mouse) { + // Default: do nothing, pass to children instead + for (int i = children.size() - 1 ; i >= 0 ; i--) { + TWidget widget = children.get(i); + if (widget.mouseWouldHit(mouse)) { + // Dispatch to this child, also activate it + activate(widget); + + // Set x and y relative to the child's coordinates + mouse.setX(mouse.getAbsoluteX() - widget.getAbsoluteX()); + mouse.setY(mouse.getAbsoluteY() - widget.getAbsoluteY()); + widget.handleEvent(mouse); + return; + } + } + } + /** * Method that subclasses can override to handle window/screen resize * events. @@ -1072,6 +1095,10 @@ public abstract class TWidget implements Comparable { onMouseMotion(mouse); break; + case MOUSE_DOUBLE_CLICK: + onMouseDoubleClick(mouse); + break; + default: throw new IllegalArgumentException("Invalid mouse event type: " + mouse.getType());