]> de.git.xonotic.org Git - xonotic/netradiant.git/blob - contrib/camera/listener.h
transfer from internal tree r5311 branches/1.4-gpl
[xonotic/netradiant.git] / contrib / camera / listener.h
1 /*\r
2 Copyright (C) 1999-2007 id Software, Inc. and contributors.\r
3 For a list of contributors, see the accompanying CONTRIBUTORS file.\r
4 \r
5 This file is part of GtkRadiant.\r
6 \r
7 GtkRadiant is free software; you can redistribute it and/or modify\r
8 it under the terms of the GNU General Public License as published by\r
9 the Free Software Foundation; either version 2 of the License, or\r
10 (at your option) any later version.\r
11 \r
12 GtkRadiant is distributed in the hope that it will be useful,\r
13 but WITHOUT ANY WARRANTY; without even the implied warranty of\r
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\r
15 GNU General Public License for more details.\r
16 \r
17 You should have received a copy of the GNU General Public License\r
18 along with GtkRadiant; if not, write to the Free Software\r
19 Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA\r
20 */\r
21 \r
22 /*\r
23 Camera plugin for GtkRadiant\r
24 Copyright (C) 2002 Splash Damage Ltd.\r
25 */\r
26 \r
27 class CListener : public IWindowListener  \r
28 {\r
29 public:\r
30         bool OnMouseMove(guint32 nFlags, gdouble x, gdouble y);\r
31         bool OnLButtonDown(guint32 nFlags, gdouble x, gdouble y);\r
32         bool OnMButtonDown(guint32 nFlags, gdouble x, gdouble y);\r
33         bool OnRButtonDown(guint32 nFlags, gdouble x, gdouble y);\r
34         bool OnLButtonUp(guint32 nFlags, gdouble x, gdouble y);\r
35         bool OnMButtonUp(guint32 nFlags, gdouble x, gdouble y);\r
36         bool OnRButtonUp(guint32 nFlags, gdouble x, gdouble y);\r
37         bool OnKeyPressed(char *s) { return false; }\r
38         bool Paint() { return true; }\r
39         void Close() { }\r
40         \r
41         void UnRegister();\r
42         void Register();\r
43         CListener();\r
44         virtual ~CListener();\r
45 \r
46         void IncRef() { refCount++; }\r
47         void DecRef() { refCount--; if (refCount <= 0) delete this; }\r
48 \r
49   void SetViewType( VIEWTYPE vt ) { if( m_vt != vt ) oldValid = false; m_vt = vt; }\r
50 \r
51 private:\r
52   IXYWndWrapper *g_pXYWndWrapper;\r
53 \r
54         bool m_bHooked;\r
55         int refCount;\r
56   VIEWTYPE m_vt;\r
57 \r
58   // mouse button status\r
59   bool m_bLeftMBPressed, m_bRightMBPressed, m_bMiddleMBPressed;\r
60 \r
61   // old mouse coordinates\r
62   bool oldValid;\r
63   gdouble old_x, old_y;\r
64 };\r