tge/engine/gui/utility/guiMouseEventCtrl.cc
2017-04-17 06:17:10 -06:00

96 lines
2.9 KiB
C++
Executable File

//-----------------------------------------------------------------------------
// Torque Game Engine
// Copyright (C) GarageGames.com, Inc.
//-----------------------------------------------------------------------------
#include "gui/utility/guiMouseEventCtrl.h"
#include "console/consoleTypes.h"
IMPLEMENT_CONOBJECT(GuiMouseEventCtrl);
GuiMouseEventCtrl::GuiMouseEventCtrl()
{
mLockMouse = false;
}
//------------------------------------------------------------------------------
void GuiMouseEventCtrl::sendMouseEvent(const char * name, const GuiEvent & event)
{
char buf[3][32];
dSprintf(buf[0], 32, "%d", event.modifier);
dSprintf(buf[1], 32, "%d %d", event.mousePoint.x, event.mousePoint.y);
dSprintf(buf[2], 32, "%d", event.mouseClickCount);
Con::executef(this, 4, name, buf[0], buf[1], buf[2]);
}
//------------------------------------------------------------------------------
void GuiMouseEventCtrl::initPersistFields()
{
Parent::initPersistFields();
addField("lockMouse", TypeBool, Offset(mLockMouse, GuiMouseEventCtrl));
Con::setIntVariable("$EventModifier::LSHIFT", SI_LSHIFT);
Con::setIntVariable("$EventModifier::RSHIFT", SI_RSHIFT);
Con::setIntVariable("$EventModifier::SHIFT", SI_SHIFT);
Con::setIntVariable("$EventModifier::LCTRL", SI_LCTRL);
Con::setIntVariable("$EventModifier::RCTRL", SI_RCTRL);
Con::setIntVariable("$EventModifier::CTRL", SI_CTRL);
Con::setIntVariable("$EventModifier::LALT", SI_LALT);
Con::setIntVariable("$EventModifier::RALT", SI_RALT);
Con::setIntVariable("$EventModifier::ALT", SI_ALT);
}
//------------------------------------------------------------------------------
void GuiMouseEventCtrl::onMouseDown(const GuiEvent & event)
{
if(mLockMouse)
mouseLock();
sendMouseEvent("onMouseDown", event);
}
void GuiMouseEventCtrl::onMouseUp(const GuiEvent & event)
{
if(mLockMouse)
mouseUnlock();
sendMouseEvent("onMouseUp", event);
}
void GuiMouseEventCtrl::onMouseMove(const GuiEvent & event)
{
sendMouseEvent("onMouseMove", event);
}
void GuiMouseEventCtrl::onMouseDragged(const GuiEvent & event)
{
sendMouseEvent("onMouseDragged", event);
}
void GuiMouseEventCtrl::onMouseEnter(const GuiEvent & event)
{
sendMouseEvent("onMouseEnter", event);
}
void GuiMouseEventCtrl::onMouseLeave(const GuiEvent & event)
{
sendMouseEvent("onMouseLeave", event);
}
void GuiMouseEventCtrl::onRightMouseDown(const GuiEvent & event)
{
if(mLockMouse)
mouseLock();
sendMouseEvent("onRightMouseDown", event);
}
void GuiMouseEventCtrl::onRightMouseUp(const GuiEvent & event)
{
if(mLockMouse)
mouseUnlock();
sendMouseEvent("onRightMouseUp", event);
}
void GuiMouseEventCtrl::onRightMouseDragged(const GuiEvent & event)
{
sendMouseEvent("onRightMouseDragged", event);
}