00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00032
00033 #pragma once
00034
00035 #include "../api_display.h"
00036 #include "../../Core/System/sharedptr.h"
00037
00038 class CL_InputDevice;
00039 class CL_InputContext_Impl;
00040
00044 class CL_API_DISPLAY CL_InputContext
00045 {
00048
00049 public:
00051 CL_InputContext();
00052
00056 CL_InputContext(const CL_InputContext ©);
00057
00058 ~CL_InputContext();
00059
00063
00064 public:
00066 int get_keyboard_count() const;
00067
00069 int get_mouse_count() const;
00070
00072 int get_joystick_count() const;
00073
00075 int get_tablet_count() const;
00076
00078 CL_InputDevice &get_keyboard(int keyboard = 0);
00079
00081 CL_InputDevice &get_mouse(int mouse = 0);
00082
00084 CL_InputDevice &get_joystick(int joystick = 0);
00085
00087 CL_InputDevice &get_tablet(int tablet = 0);
00088
00090 CL_InputDevice &get_device(const CL_StringRef &device_name);
00091
00095
00096 public:
00098 CL_InputContext &operator =(CL_InputContext ©);
00099
00101 void clear();
00102
00104 void add_keyboard(const CL_InputDevice keyboard);
00105
00107 void add_mouse(const CL_InputDevice mouse);
00108
00110 void add_joystick(const CL_InputDevice joystick);
00111
00113 void add_tablet(const CL_InputDevice tablet);
00114
00116 void process_messages();
00117
00123 bool poll(bool peek_only);
00124
00128
00129 private:
00130 CL_SharedPtr<CL_InputContext_Impl> impl;
00131
00132 friend class CL_Win32Window;
00133 friend class CL_X11Window;
00134
00136 };
00137