iutil/csinput.h
Go to the documentation of this file.00001 /* 00002 Crystal Space input library 00003 Copyright (C) 1998,2000 by Jorrit Tyberghein 00004 Written by Andrew Zabolotny <[email protected]> 00005 00006 This library is free software; you can redistribute it and/or 00007 modify it under the terms of the GNU Library General Public 00008 License as published by the Free Software Foundation; either 00009 version 2 of the License, or (at your option) any later version. 00010 00011 This library is distributed in the hope that it will be useful, 00012 but WITHOUT ANY WARRANTY; without even the implied warranty of 00013 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00014 Library General Public License for more details. 00015 00016 You should have received a copy of the GNU Library General Public 00017 License along with this library; if not, write to the Free 00018 Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. 00019 */ 00020 00021 #ifndef __CS_IUTIL_STDINPUT_H__ 00022 #define __CS_IUTIL_STDINPUT_H__ 00023 00036 #include "csutil/scf.h" 00037 #include "iutil/event.h" 00038 #include "csutil/csunicode.h" 00039 00043 enum csKeyComposeResult 00044 { 00046 csComposeNoChar = -1, 00048 csComposeNormalChar, 00050 csComposeComposedChar, 00055 csComposeUncomposeable 00056 }; 00057 00061 struct iKeyComposer : public virtual iBase 00062 { 00063 SCF_INTERFACE(iKeyComposer, 2,0,0); 00078 virtual csKeyComposeResult HandleKey (const csKeyEventData& keyEventData, 00079 utf32_char* buf, size_t bufChars, int* resultChars = 0) = 0; 00085 virtual void ResetState () = 0; 00086 }; 00087 00088 00112 struct iKeyboardDriver : public virtual iBase 00113 { 00114 SCF_INTERFACE(iKeyboardDriver, 2,0,0); 00119 virtual void Reset () = 0; 00120 00131 virtual void DoKey (utf32_char codeRaw, utf32_char codeCooked, bool iDown, 00132 bool autoRepeat = false, csKeyCharType charType = csKeyCharTypeNormal) = 0; 00133 00138 virtual bool GetKeyState (utf32_char codeRaw) const = 0; 00139 00143 virtual uint32 GetModifierState (utf32_char codeRaw) const = 0; 00144 00151 virtual csPtr<iKeyComposer> CreateKeyComposer () = 0; 00152 00157 virtual csEventError SynthesizeCooked (iEvent *) = 0; 00158 }; 00159 00160 00179 struct iMouseDriver : public virtual iBase 00180 { 00181 SCF_INTERFACE(iMouseDriver, 2,0,0); 00183 virtual void SetDoubleClickTime (int iTime, size_t iDist) = 0; 00184 00189 virtual void Reset () = 0; 00190 00192 virtual int GetLastX (uint number = 0) const = 0; 00194 virtual int GetLastY (uint number = 0) const = 0; 00196 virtual int GetLast (uint n, uint a) const = 0; 00198 virtual const int32 *GetLast (uint n) const = 0; 00200 virtual bool GetLastButton (uint number, int button) const = 0; 00201 virtual bool GetLastButton (int button) const = 0; 00202 00207 virtual void DoButton (uint number, int button, bool down, 00208 const int32 *axes, uint numAxes) = 0; 00209 virtual void DoButton (int button, bool down, int x, int y) = 0; 00211 virtual void DoMotion (uint number, const int32 *axes, uint numAxes) = 0; 00212 virtual void DoMotion (int x, int y) = 0; 00213 }; 00214 00215 SCF_VERSION(iJoystickDriver, 0, 0, 1); 00216 00233 struct iJoystickDriver : public virtual iBase 00234 { 00235 SCF_INTERFACE(iJoystickDriver, 2,0,0); 00240 virtual void Reset () = 0; 00241 00243 CS_DEPRECATED_METHOD virtual int GetLastX (uint number) const = 0; 00245 CS_DEPRECATED_METHOD virtual int GetLastY (uint number) const = 0; 00247 virtual const int32 *GetLast (uint number) const = 0; 00249 virtual int GetLast (uint number, uint axis) const = 0; 00250 00255 virtual bool GetLastButton (uint number, int button) const = 0; 00256 00261 virtual void DoButton (uint number, int button, bool down, 00262 const int32 *axes, uint numAxes) = 0; 00264 virtual void DoMotion (uint number, const int32 *axes, uint nunmAxes) = 0; 00265 }; 00266 00269 #endif // __CS_IUTIL_STDINPUT_H__
Generated for Crystal Space by doxygen 1.4.7