90b411febf9ff4f261806f3df26afe1aec0f4823
[blender.git] / intern / ghost / intern / GHOST_Event.h
1 /**
2  * $Id$
3  * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
4  *
5  * This program is free software; you can redistribute it and/or
6  * modify it under the terms of the GNU General Public License
7  * as published by the Free Software Foundation; either version 2
8  * of the License, or (at your option) any later version. The Blender
9  * Foundation also sells licenses for use in proprietary software under
10  * the Blender License.  See http://www.blender.org/BL/ for information
11  * about this.
12  *
13  * This program is distributed in the hope that it will be useful,
14  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16  * GNU General Public License for more details.
17  *
18  * You should have received a copy of the GNU General Public License
19  * along with this program; if not, write to the Free Software Foundation,
20  * Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
21  *
22  * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
23  * All rights reserved.
24  *
25  * The Original Code is: all of this file.
26  *
27  * Contributor(s): none yet.
28  *
29  * ***** END GPL/BL DUAL LICENSE BLOCK *****
30  */
31
32 /**
33
34  * $Id$
35  * Copyright (C) 2001 NaN Technologies B.V.
36  * @author      Maarten Gribnau
37  * @date        May 11, 2001
38  */
39
40 #ifndef _GHOST_EVENT_H_
41 #define _GHOST_EVENT_H_
42
43 #include "GHOST_IEvent.h"
44
45
46 /**
47  * Base class for events received the operating system.
48  * @author      Maarten Gribnau
49  * @date        May 11, 2001
50  */
51
52 class GHOST_Event : public GHOST_IEvent
53 {
54 public:
55         /**
56          * Constructor.
57          * @param msec  The time this event was generated.
58          * @param type  The type of this event.
59          * @param window The generating window (or NULL if system event).
60          */
61         GHOST_Event(GHOST_TUns64 msec, GHOST_TEventType type, GHOST_IWindow* window)
62                 : m_type(type), m_time(msec), m_window(window), m_data(0)
63         {
64         }
65
66         /**
67          * Returns the event type.
68          * @return The event type.
69          */
70         virtual GHOST_TEventType getType()
71         { 
72                 return m_type;
73         }
74
75         /**
76          * Returns the time this event was generated.
77          * @return The event generation time.
78          */
79         virtual GHOST_TUns64 getTime()
80         {
81                 return m_time;
82         }
83
84         /**
85          * Returns the window this event was generated on, 
86          * or NULL if it is a 'system' event.
87          * @return The generating window.
88          */
89         virtual GHOST_IWindow* getWindow()
90         {
91                 return m_window;
92         }
93
94         /**
95          * Returns the event data.
96          * @return The event data.
97          */
98         virtual GHOST_TEventDataPtr getData()
99         {
100                 return m_data;
101         }
102
103 protected:
104         /** Type of this event. */
105         GHOST_TEventType m_type;
106         /** The time this event was generated. */
107         GHOST_TUns64 m_time;
108         /** Pointer to the generating window. */
109         GHOST_IWindow* m_window;
110         /** Pointer to the event data. */
111         GHOST_TEventDataPtr m_data;
112 };
113
114 #endif // _GHOST_EVENT_H_