X-Git-Url: http://git.nikiroo.be/?a=blobdiff_plain;f=src%2Fjexer%2Fevent%2FTMouseEvent.java;h=496d8bc06422baa3014a95a98ae953f60cd4325e;hb=12b90437b5f22c2ae6e9b9b14c3b62b60f6143e5;hp=4a148656d545bc0683300662189bbaac130d8014;hpb=7c870d89433346ccb5505f8f9ba62d3fc18fe996;p=fanfix.git diff --git a/src/jexer/event/TMouseEvent.java b/src/jexer/event/TMouseEvent.java index 4a14865..496d8bc 100644 --- a/src/jexer/event/TMouseEvent.java +++ b/src/jexer/event/TMouseEvent.java @@ -1,29 +1,27 @@ -/** +/* * Jexer - Java Text User Interface * - * License: LGPLv3 or later - * - * This module is licensed under the GNU Lesser General Public License - * Version 3. Please see the file "COPYING" in this directory for more - * information about the GNU Lesser General Public License Version 3. + * The MIT License (MIT) * - * Copyright (C) 2015 Kevin Lamonte + * Copyright (C) 2019 Kevin Lamonte * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public License - * as published by the Free Software Foundation; either version 3 of - * the License, or (at your option) any later version. + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. * - * You should have received a copy of the GNU Lesser General Public - * License along with this program; if not, see - * http://www.gnu.org/licenses/, or write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA - * 02110-1301 USA + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. * * @author Kevin Lamonte [kevin.lamonte@gmail.com] * @version 1 @@ -35,7 +33,11 @@ package jexer.event; * the relative (x,y) ARE MUTABLE: TWidget's onMouse() handlers perform that * update during event dispatching. */ -public final class TMouseEvent extends TInputEvent { +public class TMouseEvent extends TInputEvent { + + // ------------------------------------------------------------------------ + // Constants -------------------------------------------------------------- + // ------------------------------------------------------------------------ /** * The type of event generated. @@ -54,14 +56,107 @@ public final class TMouseEvent extends TInputEvent { /** * Mouse button up. X and Y will have screen coordinates. */ - MOUSE_UP + MOUSE_UP, + + /** + * Mouse double-click. X and Y will have screen coordinates. + */ + MOUSE_DOUBLE_CLICK } + // ------------------------------------------------------------------------ + // Variables -------------------------------------------------------------- + // ------------------------------------------------------------------------ + /** * Type of event, one of MOUSE_MOTION, MOUSE_UP, or MOUSE_DOWN. */ private Type type; + /** + * Mouse X - relative coordinates. + */ + private int x; + + /** + * Mouse Y - relative coordinates. + */ + private int y; + + /** + * Mouse X - absolute screen coordinates. + */ + private int absoluteX; + + /** + * Mouse Y - absolute screen coordinate. + */ + private int absoluteY; + + /** + * Mouse button 1 (left button). + */ + private boolean mouse1; + + /** + * Mouse button 2 (right button). + */ + private boolean mouse2; + + /** + * Mouse button 3 (middle button). + */ + private boolean mouse3; + + /** + * Mouse wheel UP (button 4). + */ + private boolean mouseWheelUp; + + /** + * Mouse wheel DOWN (button 5). + */ + private boolean mouseWheelDown; + + // ------------------------------------------------------------------------ + // Constructors ----------------------------------------------------------- + // ------------------------------------------------------------------------ + + /** + * Public contructor. + * + * @param type the type of event, MOUSE_MOTION, MOUSE_DOWN, or MOUSE_UP + * @param x relative column + * @param y relative row + * @param absoluteX absolute column + * @param absoluteY absolute row + * @param mouse1 if true, left button is down + * @param mouse2 if true, right button is down + * @param mouse3 if true, middle button is down + * @param mouseWheelUp if true, mouse wheel (button 4) is down + * @param mouseWheelDown if true, mouse wheel (button 5) is down + */ + public TMouseEvent(final Type type, final int x, final int y, + final int absoluteX, final int absoluteY, + final boolean mouse1, final boolean mouse2, final boolean mouse3, + final boolean mouseWheelUp, final boolean mouseWheelDown) { + + this.type = type; + this.x = x; + this.y = y; + this.absoluteX = absoluteX; + this.absoluteY = absoluteY; + this.mouse1 = mouse1; + this.mouse2 = mouse2; + this.mouse3 = mouse3; + this.mouseWheelUp = mouseWheelUp; + this.mouseWheelDown = mouseWheelDown; + } + + // ------------------------------------------------------------------------ + // TMouseEvent ------------------------------------------------------------ + // ------------------------------------------------------------------------ + /** * Get type. * @@ -71,11 +166,6 @@ public final class TMouseEvent extends TInputEvent { return type; } - /** - * Mouse X - relative coordinates. - */ - private int x; - /** * Get x. * @@ -97,11 +187,6 @@ public final class TMouseEvent extends TInputEvent { this.x = x; } - /** - * Mouse Y - relative coordinates. - */ - private int y; - /** * Get y. * @@ -123,11 +208,6 @@ public final class TMouseEvent extends TInputEvent { this.y = y; } - /** - * Mouse X - absolute screen coordinates. - */ - private int absoluteX; - /** * Get absoluteX. * @@ -138,9 +218,13 @@ public final class TMouseEvent extends TInputEvent { } /** - * Mouse Y - absolute screen coordinate. + * Set absoluteX. + * + * @param absoluteX the new value */ - private int absoluteY; + public void setAbsoluteX(final int absoluteX) { + this.absoluteX = absoluteX; + } /** * Get absoluteY. @@ -152,9 +236,13 @@ public final class TMouseEvent extends TInputEvent { } /** - * Mouse button 1 (left button). + * Set absoluteY. + * + * @param absoluteY the new value */ - private boolean mouse1; + public void setAbsoluteY(final int absoluteY) { + this.absoluteY = absoluteY; + } /** * Get mouse1. @@ -165,11 +253,6 @@ public final class TMouseEvent extends TInputEvent { return mouse1; } - /** - * Mouse button 2 (right button). - */ - private boolean mouse2; - /** * Get mouse2. * @@ -179,11 +262,6 @@ public final class TMouseEvent extends TInputEvent { return mouse2; } - /** - * Mouse button 3 (middle button). - */ - private boolean mouse3; - /** * Get mouse3. * @@ -193,11 +271,6 @@ public final class TMouseEvent extends TInputEvent { return mouse3; } - /** - * Mouse wheel UP (button 4). - */ - private boolean mouseWheelUp; - /** * Get mouseWheelUp. * @@ -207,11 +280,6 @@ public final class TMouseEvent extends TInputEvent { return mouseWheelUp; } - /** - * Mouse wheel DOWN (button 5). - */ - private boolean mouseWheelDown; - /** * Get mouseWheelDown. * @@ -222,34 +290,14 @@ public final class TMouseEvent extends TInputEvent { } /** - * Public contructor. + * Create a duplicate instance. * - * @param type the type of event, MOUSE_MOTION, MOUSE_DOWN, or MOUSE_UP - * @param x relative column - * @param y relative row - * @param absoluteX absolute column - * @param absoluteY absolute row - * @param mouse1 if true, left button is down - * @param mouse2 if true, right button is down - * @param mouse3 if true, middle button is down - * @param mouseWheelUp if true, mouse wheel (button 4) is down - * @param mouseWheelDown if true, mouse wheel (button 5) is down + * @return duplicate intance */ - public TMouseEvent(final Type type, final int x, final int y, - final int absoluteX, final int absoluteY, - final boolean mouse1, final boolean mouse2, final boolean mouse3, - final boolean mouseWheelUp, final boolean mouseWheelDown) { - - this.type = type; - this.x = x; - this.y = y; - this.absoluteX = absoluteX; - this.absoluteY = absoluteY; - this.mouse1 = mouse1; - this.mouse2 = mouse2; - this.mouse3 = mouse3; - this.mouseWheelUp = mouseWheelUp; - this.mouseWheelDown = mouseWheelDown; + public TMouseEvent dup() { + TMouseEvent mouse = new TMouseEvent(type, x, y, absoluteX, absoluteY, + mouse1, mouse2, mouse3, mouseWheelUp, mouseWheelDown); + return mouse; } /**