1 /******************************************************************************* 2 * Copyright (c) 2000, 2008 IBM Corporation and others. 3 * All rights reserved. This program and the accompanying materials 4 * are made available under the terms of the Eclipse Public License v1.0 5 * which accompanies this distribution, and is available at 6 * http://www.eclipse.org/legal/epl-v10.html 7 * 8 * Contributors: 9 * IBM Corporation - initial API and implementation 10 * Port to the D programming language: 11 * Frank Benoit <benoit@tionex.de> 12 *******************************************************************************/ 13 module org.eclipse.swt.events.MouseEvent; 14 15 16 import org.eclipse.swt.widgets.Event; 17 import org.eclipse.swt.events.TypedEvent; 18 19 import java.lang.all; 20 21 /** 22 * Instances of this class are sent whenever mouse 23 * related actions occur. This includes mouse buttons 24 * being pressed and released, the mouse pointer being 25 * moved and the mouse pointer crossing widget boundaries. 26 * <p> 27 * Note: The <code>button</code> field is an integer that 28 * represents the mouse button number. This is not the same 29 * as the <code>SWT</code> mask constants <code>BUTTONx</code>. 30 * </p> 31 * 32 * @see MouseListener 33 * @see MouseMoveListener 34 * @see MouseTrackListener 35 * @see <a href="http://www.eclipse.org/swt/">Sample code and further information</a> 36 */ 37 38 public class MouseEvent : TypedEvent { 39 40 /** 41 * the button that was pressed or released; 1 for the 42 * first button, 2 for the second button, and 3 for the 43 * third button, etc. 44 */ 45 public int button; 46 47 /** 48 * the state of the keyboard modifier keys at the time 49 * the event was generated 50 */ 51 public int stateMask; 52 53 /** 54 * the widget-relative, x coordinate of the pointer 55 * at the time the mouse button was pressed or released 56 */ 57 public int x; 58 59 /** 60 * the widget-relative, y coordinate of the pointer 61 * at the time the mouse button was pressed or released 62 */ 63 public int y; 64 65 /** 66 * the number times the mouse has been clicked, as defined 67 * by the operating system; 1 for the first click, 2 for the 68 * second click and so on. 69 * 70 * @since 3.3 71 */ 72 public int count; 73 74 //static const long serialVersionUID = 3257288037011566898L; 75 76 /** 77 * Constructs a new instance of this class based on the 78 * information in the given untyped event. 79 * 80 * @param e the untyped event containing the information 81 */ 82 public this(Event e) { 83 super(e); 84 this.x = e.x; 85 this.y = e.y; 86 this.button = e.button; 87 this.stateMask = e.stateMask; 88 this.count = e.count; 89 } 90 91 /** 92 * Returns a string containing a concise, human-readable 93 * description of the receiver. 94 * 95 * @return a string representation of the event 96 */ 97 public override String toString() { 98 return Format( "{} button={} stateMask={} x={} y={} count={}}", 99 super.toString[ 0 .. $-1 ], 100 button, stateMask, x, y, count ); 101 } 102 }