Show kmousemanager.h syntax highlighted
/*
Copyright (C) 2003, 2004 by Luca Cappa
Written by Luca Cappa groton@users.sourceforge.net
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public
License as published by the Free Software Foundation; either
version 2 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with this library; if not, write to the Free
Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
#ifndef __KMOUSEMANAGER_H__
#define __KMOUSEMANAGER_H__
struct iEngine;
struct iGraphics3D;
struct iLoader;
struct iMaterialWrapper;
struct iMeshWrapper;
struct iSprite3DState;
struct iSprite3DFactoryState;
class csTransform;
struct iPolygon3D;
struct iCollideSystem;
class csVector3;
struct iKDraggable;
struct iKDragHandler;
struct KBaseDraggable;
class BlockId;
class KFlags;
class csBox3;
enum MOUSEMANAGER_MODE
{
TRANSLATING_OBJECT_MODE = 1,
ROTATING_OBJECT_MODE,
CREATING_PATH_MODE,
PUTTING_BLOCK_MODE,
HIDING_MODE
};
struct KMouseManager : public iEventHandler
{
protected:
MOUSEMANAGER_MODE m_mode;
bool m_mouseActingMode;
csRef<iMouseDriver> m_mouse;
//datas for the mouse pointer image
csSimplePixmap* m_mousePointerNormal;
csSimplePixmap* m_mousePointerPicking;
csSimplePixmap* m_mousePointerRotating;
csSimplePixmap* m_mousePointerPath;
/*
Just lets handle the events below.
*/
bool MouseButton1ClickHandler (iEvent& p_e);
bool MouseButton2ClickHandler (iEvent& p_e);
bool MouseButton1UpHandler (iEvent& p_e);
bool MouseButton1DownHandler (iEvent& p_e);
bool MouseButtonMovingHandler (iEvent& p_e);
public:
SCF_DECLARE_IBASE;
KMouseManager ();
virtual ~KMouseManager ();
int GetLastX ();
int GetLastY ();
bool HandleEvent (iEvent&);
//??crappy event handling! we should instead create such as real events.
bool StopCreatingPath ();
bool StartCreatingPath ();
void SetMode (MOUSEMANAGER_MODE);//??
MOUSEMANAGER_MODE GetMode ();//??
};
#endif // __KMOUSEMANAGER_H__
See more files for this project here