Files
OpenRA/BluntDx/MouseState.h
chrisf 206df3514e lets do this properly.
git-svn-id: svn://svn.ijw.co.nz/svn/OpenRa@1144 993157c7-ee19-0410-b2c4-bb4e9862e678
2007-07-10 02:24:10 +00:00

67 lines
950 B
C++

#pragma once
namespace BluntDirectX { namespace DirectInput {
value class MouseData
{
public:
long x;
long y;
long z;
unsigned char left, right, middle, aux;
};
public ref class MouseState
{
private:
MouseData d;
internal:
MouseState( MouseData d ) : d(d) {}
public:
property bool default[ int ]
{
bool get( int button )
{
unsigned char value = 0;
switch( button )
{
case 0: value = d.left; break;
case 1: value = d.right; break;
case 2: value = d.middle; break;
case 3: value = d.aux; break;
default:
throw gcnew System::Exception("you idiot");
}
return (value & 0x80) != 0;
}
}
property int X
{
int get()
{
return (int)d.x;
}
}
property int Y
{
int get()
{
return (int)d.y;
}
}
property int Z
{
int get()
{
return (int)d.z;
}
}
};
}}