00001 /************************************************************************/ 00002 /* Ex Nihlo Engine by Hermanns Christophe */ 00003 /************************************************************************/ 00004 /* This program is free software; you can redistribute it and/or */ 00005 /* modify it under the terms of the GNU General Public License */ 00006 /* as published by the Free Software Foundation; either version 2 */ 00007 /* of the License, or (at your option) any later version. */ 00008 /* */ 00009 /* This program is distributed in the hope that it will be useful, */ 00010 /* but WITHOUT ANY WARRANTY; without even the implied warranty of */ 00011 /* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. */ 00012 /* */ 00013 /* See the GNU General Public License for more details. */ 00014 /* */ 00015 /* You should have received a copy of the GNU General Public License */ 00016 /* along with this program; if not, write to the Free Software */ 00017 /* Foundation, Inc., 59 Temple Place - Suite 330, */ 00018 /* Boston, MA 02111-1307, USA. */ 00019 /* */ 00020 /* If you use a important part of this code please send me a mail */ 00021 /* I just want to see where my code go thks :) */ 00022 /************************************************************************/ 00023 00024 /************************************************************************/ 00025 /* Contact */ 00026 /************************************************************************/ 00027 /* ExNihilo Website :www.ploksoftware.org */ 00028 /* */ 00029 /* Hermanns Christophe ExNihilo creator and main programmer */ 00030 /* */ 00031 /* Mail : Data@ploksoftware.org */ 00032 /* ICQ : 8030901 */ 00033 /* MSN Messenger : Data_7@hotmail.com */ 00034 /* */ 00035 /* */ 00036 /************************************************************************/ 00037 00038 /************************************************************************/ 00039 /* File Description */ 00040 /************************************************************************/ 00041 /* File Name :InputActionList.h */ 00042 /* */ 00043 /* Start Date :03/15/2002 */ 00044 /* */ 00045 /* */ 00046 /* Last Update :06/20/2003 */ 00047 /* */ 00048 /* File Description : */ 00049 /* */ 00050 /* For update of this file check : www.ploksoftware.org */ 00051 /************************************************************************/ 00052 00053 #ifndef __EXMANAGERINPUTGLUT_H__ 00054 #define __EXMANAGERINPUTGLUT_H__ 00055 //------------------------------------------------------------------------ 00056 //Includes 00057 //------------------------------------------------------------------------ 00058 #include "ExDefine.h" 00059 #include "ExCCommand.h" 00060 //------------------------------------------------------------------------ 00061 #include "Math/ExMath.h" 00062 //------------------------------------------------------------------------ 00063 #include "Manager/ExManager.h" 00064 #include "Manager/ExManagerCommand.h" 00065 //------------------------------------------------------------------------ 00066 class ExManagerInputGLUT : public ExManager 00067 { 00068 private: 00069 //------------------------------------------------------------------------ 00070 // Variable 00071 //------------------------------------------------------------------------ 00072 ExManagerCommand *ManagerCommand; 00073 bool m_Keyboard; 00074 bool m_Mouse; 00075 bool m_SpaceBall; 00076 bool m_Tablet; 00077 bool m_Joystick; 00078 int m_MouseNumberButtons; 00079 int m_SpaceBallNumberButtons; 00080 int m_TabletNumberButtons; 00081 int m_JoystickNumberButtons; 00082 int m_JoystickNumberAxes; 00083 bool m_Pressed[256]; 00084 //------------------------------------------------------------------------ 00085 // Singleton creation 00086 //------------------------------------------------------------------------ 00087 static bool m_flag; 00088 static ExManagerInputGLUT *m_instance; 00089 ExManagerInputGLUT(void); 00090 ~ExManagerInputGLUT(void); 00091 public: 00092 static ExManagerInputGLUT* CreateSingleton(void); 00093 //------------------------------------------------------------------------ 00094 // Methode 00095 //------------------------------------------------------------------------ 00096 void Reset(void){return;} 00097 void Init(void){return;} 00098 inline void SetManagerCommand(ExManagerCommand *Command){ManagerCommand = Command;} 00099 //------------------------------------------------------------------------ 00100 //Ask for Hardware Methode 00101 //------------------------------------------------------------------------ 00102 inline bool IsKeyboard(void) {return m_Keyboard;}; 00103 inline bool IsMouse(void) {return m_Mouse;}; 00104 inline bool IsSpaceBall(void) {return m_SpaceBall;}; 00105 inline bool IsTablet(void) {return m_Tablet;}; 00106 inline bool IsJoystick(void) {return m_Joystick;}; 00107 void CheckInput(void); 00108 void DisplayAviableInput(void); 00109 //------------------------------------------------------------------------ 00110 //Keyboard function 00111 //------------------------------------------------------------------------ 00112 void Key (unsigned char key,int x,int y); 00113 void KeyUp (unsigned char key, int x, int y); 00114 void KeySpe (int key,int x,int y); 00115 void KeySpeUp (int key, int x, int y); 00116 //------------------------------------------------------------------------ 00117 //Mouse Function 00118 //------------------------------------------------------------------------ 00119 void Mouse (int button, int state, int x, int y); 00120 void MouseMotion (int x, int y); 00121 void MousePassiveMotion (int x, int y); 00122 void Focus (int state); 00123 //------------------------------------------------------------------------ 00124 //SpaceBall Function 00125 //------------------------------------------------------------------------ 00126 void SpaceballMotion(int x, int y, int z); 00127 void SpaceballRotate(int x, int y, int z); 00128 //------------------------------------------------------------------------ 00129 //Tablet Function 00130 //------------------------------------------------------------------------ 00131 void TabletMotion(int x, int y); 00132 void TabletButton(int button, int state, int x, int y); 00133 //------------------------------------------------------------------------ 00134 //joystik Function 00135 //------------------------------------------------------------------------ 00136 }; 00137 //------------------------------------------------------------------------ 00138 #endif //__EXMANAGERINPUTGLUT_H__