Open Inventor Reference
SoMouseButtonEvent.h
Go to the documentation of this file.
1/*
2 *
3 * Copyright (C) 2000 Silicon Graphics, Inc. All Rights Reserved.
4 *
5 * This library is free software; you can redistribute it and/or
6 * modify it under the terms of the GNU Lesser General Public
7 * License as published by the Free Software Foundation; either
8 * version 2.1 of the License, or (at your option) any later version.
9 *
10 * This library is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 * Lesser General Public License for more details.
14 *
15 * Further, this software is distributed without any warranty that it is
16 * free of the rightful claim of any third person regarding infringement
17 * or the like. Any license provided herein, whether implied or
18 * otherwise, applies only to this software file. Patent licenses, if
19 * any, provided herein do not apply to combinations of this program with
20 * other software, or any other product whatsoever.
21 *
22 * You should have received a copy of the GNU Lesser General Public
23 * License along with this library; if not, write to the Free Software
24 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
25 *
26 * Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pkwy,
27 * Mountain View, CA 94043, or:
28 *
29 * http://www.sgi.com
30 *
31 * For further information regarding this notice, see:
32 *
33 * http://oss.sgi.com/projects/GenInfo/NoticeExplan/
34 *
35 */
36
37
38/*
39 * Copyright (C) 1990,91,92 Silicon Graphics, Inc.
40 *
41 _______________________________________________________________________
42 ______________ S I L I C O N G R A P H I C S I N C . ____________
43 |
44 | $Revision: 1.2 $
45 |
46 | Classes:
47 | SoMouseButtonEvent
48 |
49 | Author(s): David Mott, Gavin Bell
50 |
51 ______________ S I L I C O N G R A P H I C S I N C . ____________
52 _______________________________________________________________________
53 */
54
55#ifndef _SO_MOUSE_BUTTON_EVENT_
56#define _SO_MOUSE_BUTTON_EVENT_
57
59#include <Inventor/SbBasic.h>
61
63
64#define SO_MOUSE_PRESS_EVENT(EVENT,BUTTON) \
65 (SoMouseButtonEvent::isButtonPressEvent(EVENT,SoMouseButtonEvent::BUTTON))
66
67#define SO_MOUSE_RELEASE_EVENT(EVENT,BUTTON) \
68 (SoMouseButtonEvent::isButtonReleaseEvent(EVENT,SoMouseButtonEvent::BUTTON))
69
70
71
72
75
86
88
90
91 public:
92 enum Button {
93 ANY = 0,
94 BUTTON1 = 1,
95 BUTTON2 = 2,
96 BUTTON3 = 3,
97 LEFT_BUTTON = BUTTON1,
98 MIDDLE_BUTTON = BUTTON2,
99 RIGHT_BUTTON = BUTTON3
100 };
101
105
111 void setButton(SoMouseButtonEvent::Button b) { button = b; }
112 SoMouseButtonEvent::Button getButton() const { return button; }
113
115 void setIsDoubleClick(bool b) { doubleClick = b; }
116
118 bool isDoubleClick() const { return doubleClick; }
119
123 const SoEvent *e,
124 SoMouseButtonEvent::Button whichButton);
125
127 const SoEvent *e,
128 SoMouseButtonEvent::Button whichButton);
129
130 SoINTERNAL public:
131 static void initClass();
132
133 private:
134 Button button;
135
136 bool doubleClick;
137};
138
139
140#endif /* _SO_MOUSE_BUTTON_EVENT_ */
#define SoINTERNAL
Definition SbBasic.h:155
#define INVENTOR_API
Disable some annoying warnings on MSVC 6.
Definition SbSystem.h:77
#define SO_EVENT_HEADER()
*** note: many of the macros use the "do { ... } while(0)" *** hack to define multiline blocks as a s...
Definition SoSubEvent.h:97
Base class for all button events.
Base class for all events.
Definition SoEvent.h:84
Mouse button press and release events.
void setButton(SoMouseButtonEvent::Button b)
set/get which button generated the event, either SO_MOUSE_BUTTON1, SO_MOUSE_BUTTON2,...
static void initClass()
bool isDoubleClick() const
get if the button press is a double click; MEVIS Inventor only
virtual ~SoMouseButtonEvent()
void setIsDoubleClick(bool b)
set if the button press is a double click; MEVIS Inventor only
SoMouseButtonEvent()
Constructor.
static bool isButtonPressEvent(const SoEvent *e, SoMouseButtonEvent::Button whichButton)
convenience routines to see if an SoEvent is a press or release of the passed mouse button
SoMouseButtonEvent::Button getButton() const
static bool isButtonReleaseEvent(const SoEvent *e, SoMouseButtonEvent::Button whichButton)