CrystalSpace

Public API Reference

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 <bit@eltech.ru>
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 
00231 struct iJoystickDriver : public virtual iBase
00232 {
00233   SCF_INTERFACE(iJoystickDriver, 2,1,0);
00238   virtual void Reset () = 0;
00239 
00241   virtual const int32 *GetLast (uint number) const = 0;
00243   virtual int GetLast (uint number, uint axis) const = 0;
00244 
00249   virtual bool GetLastButton (uint number, int button) const = 0;
00250 
00255   virtual void DoButton (uint number, int button, bool down, 
00256     const int32 *axes, uint numAxes) = 0;
00258   virtual void DoMotion (uint number, const int32 *axes, uint nunmAxes) = 0;
00259 };
00260 
00263 #endif // __CS_IUTIL_STDINPUT_H__

Generated for Crystal Space 1.2.1 by doxygen 1.5.3