2 * Jexer - Java Text User Interface
4 * License: LGPLv3 or later
6 * This module is licensed under the GNU Lesser General Public License
7 * Version 3. Please see the file "COPYING" in this directory for more
8 * information about the GNU Lesser General Public License Version 3.
10 * Copyright (C) 2015 Kevin Lamonte
12 * This program is free software; you can redistribute it and/or
13 * modify it under the terms of the GNU Lesser General Public License
14 * as published by the Free Software Foundation; either version 3 of
15 * the License, or (at your option) any later version.
17 * This program is distributed in the hope that it will be useful, but
18 * WITHOUT ANY WARRANTY; without even the implied warranty of
19 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
20 * General Public License for more details.
22 * You should have received a copy of the GNU Lesser General Public
23 * License along with this program; if not, see
24 * http://www.gnu.org/licenses/, or write to the Free Software
25 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
28 * @author Kevin Lamonte [kevin.lamonte@gmail.com]
34 * This class encapsulates several kinds of mouse input events. Note that
35 * the relative (x,y) ARE MUTABLE: TWidget's onMouse() handlers perform that
36 * update during event dispatching.
38 public final class TMouseEvent
extends TInputEvent
{
41 * The type of event generated.
45 * Mouse motion. X and Y will have screen coordinates.
50 * Mouse button down. X and Y will have screen coordinates.
55 * Mouse button up. X and Y will have screen coordinates.
61 * Type of event, one of MOUSE_MOTION, MOUSE_UP, or MOUSE_DOWN.
70 public Type
getType() {
75 * Mouse X - relative coordinates.
91 * @param x new relative X value
92 * @see jexer.TWidget#onMouseDown(TMouseEvent mouse)
93 * @see jexer.TWidget#onMouseDown(TMouseEvent mouse)
94 * @see jexer.TWidget#onMouseMotion(TMouseEvent mouse)
96 public void setX(final int x
) {
101 * Mouse Y - relative coordinates.
117 * @param y new relative Y value
118 * @see jexer.TWidget#onMouseDown(TMouseEvent mouse)
119 * @see jexer.TWidget#onMouseDown(TMouseEvent mouse)
120 * @see jexer.TWidget#onMouseMotion(TMouseEvent mouse)
122 public void setY(final int y
) {
127 * Mouse X - absolute screen coordinates.
129 private int absoluteX
;
136 public int getAbsoluteX() {
141 * Mouse Y - absolute screen coordinate.
143 private int absoluteY
;
150 public int getAbsoluteY() {
155 * Mouse button 1 (left button).
157 private boolean mouse1
;
164 public boolean isMouse1() {
169 * Mouse button 2 (right button).
171 private boolean mouse2
;
178 public boolean isMouse2() {
183 * Mouse button 3 (middle button).
185 private boolean mouse3
;
192 public boolean isMouse3() {
197 * Mouse wheel UP (button 4).
199 private boolean mouseWheelUp
;
204 * @return mouseWheelUp
206 public boolean isMouseWheelUp() {
211 * Mouse wheel DOWN (button 5).
213 private boolean mouseWheelDown
;
216 * Get mouseWheelDown.
218 * @return mouseWheelDown
220 public boolean isMouseWheelDown() {
221 return mouseWheelDown
;
227 * @param type the type of event, MOUSE_MOTION, MOUSE_DOWN, or MOUSE_UP
228 * @param x relative column
229 * @param y relative row
230 * @param absoluteX absolute column
231 * @param absoluteY absolute row
232 * @param mouse1 if true, left button is down
233 * @param mouse2 if true, right button is down
234 * @param mouse3 if true, middle button is down
235 * @param mouseWheelUp if true, mouse wheel (button 4) is down
236 * @param mouseWheelDown if true, mouse wheel (button 5) is down
238 public TMouseEvent(final Type type
, final int x
, final int y
,
239 final int absoluteX
, final int absoluteY
,
240 final boolean mouse1
, final boolean mouse2
, final boolean mouse3
,
241 final boolean mouseWheelUp
, final boolean mouseWheelDown
) {
246 this.absoluteX
= absoluteX
;
247 this.absoluteY
= absoluteY
;
248 this.mouse1
= mouse1
;
249 this.mouse2
= mouse2
;
250 this.mouse3
= mouse3
;
251 this.mouseWheelUp
= mouseWheelUp
;
252 this.mouseWheelDown
= mouseWheelDown
;
256 * Make human-readable description of this TMouseEvent.
258 * @return displayable String
261 public String
toString() {
262 return String
.format("Mouse: %s x %d y %d absoluteX %d absoluteY %d 1 %s 2 %s 3 %s DOWN %s UP %s",
265 absoluteX
, absoluteY
,