2
* Manager for mouse events
5
* $Id: SCA_MouseManager.cpp 15884 2008-07-30 17:41:47Z ben2610 $
7
* ***** BEGIN GPL LICENSE BLOCK *****
9
* This program is free software; you can redistribute it and/or
10
* modify it under the terms of the GNU General Public License
11
* as published by the Free Software Foundation; either version 2
12
* of the License, or (at your option) any later version.
14
* This program is distributed in the hope that it will be useful,
15
* but WITHOUT ANY WARRANTY; without even the implied warranty of
16
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17
* GNU General Public License for more details.
19
* You should have received a copy of the GNU General Public License
20
* along with this program; if not, write to the Free Software Foundation,
21
* Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
23
* The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
24
* All rights reserved.
26
* The Original Code is: all of this file.
28
* Contributor(s): none yet.
30
* ***** END GPL LICENSE BLOCK *****
38
// This warning tells us about truncation of __long__ stl-generated names.
39
// It can occasionally cause DevStudio to have internal compiler warnings.
40
#pragma warning( disable : 4786 )
43
#include "BoolValue.h"
44
#include "SCA_MouseManager.h"
45
#include "SCA_MouseSensor.h"
49
SCA_MouseManager::SCA_MouseManager(SCA_LogicManager* logicmgr,
50
SCA_IInputDevice* mousedev)
51
: SCA_EventManager(MOUSE_EVENTMGR),
52
m_mousedevice (mousedev),
53
m_logicmanager(logicmgr)
61
SCA_MouseManager::~SCA_MouseManager()
67
SCA_IInputDevice* SCA_MouseManager::GetInputDevice()
74
void SCA_MouseManager::NextFrame()
78
set<SCA_ISensor*>::iterator it;
79
for (it=m_sensors.begin(); it!=m_sensors.end(); it++)
81
SCA_MouseSensor* mousesensor = (SCA_MouseSensor*)(*it);
82
// (0,0) is the Upper Left corner in our local window
84
if (!mousesensor->IsSuspended())
86
const SCA_InputEvent& event =
87
m_mousedevice->GetEventValue(SCA_IInputDevice::KX_MOUSEX);
88
int mx = event.m_eventval;
89
const SCA_InputEvent& event2 =
90
m_mousedevice->GetEventValue(SCA_IInputDevice::KX_MOUSEY);
91
int my = event2.m_eventval;
93
mousesensor->setX(mx);
94
mousesensor->setY(my);
96
mousesensor->Activate(m_logicmanager,NULL);
102
bool SCA_MouseManager::IsPressed(SCA_IInputDevice::KX_EnumInputs inputcode)
104
/* We should guard for non-mouse events maybe? A rather silly side */
105
/* effect here is that position-change events are considered presses as */
108
return m_mousedevice->IsPressed(inputcode);