Go to the documentation of this file.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 "../Window/input_device.h"
00037 #include "../../Core/System/disposable_object.h"
00038 #include "../../Core/System/sharedptr.h"
00039 #include "../../Core/Text/string_types.h"
00040 #include "../../Core/Signals/signal_v1.h"
00041
00045 class CL_API_DISPLAY CL_InputDeviceProvider : public CL_DisposableObject
00046 {
00049
00050 public:
00051 virtual ~CL_InputDeviceProvider() { return; }
00052
00054 virtual void destroy() = 0;
00055
00059
00060 public:
00062 virtual CL_String get_name() const = 0;
00063
00065 virtual CL_String get_device_name() const = 0;
00066
00068 virtual CL_InputDevice::Type get_type() const = 0;
00069
00071
00073 virtual CL_String get_key_name(int id) const = 0;
00074
00076 virtual bool supports_keyid_mapping() const { return false; }
00077
00079 virtual CL_String keyid_to_string(int keycode) const { return CL_String(); }
00080
00082 virtual int string_to_keyid(const CL_String &str) const { return 0; }
00083
00085
00086 virtual bool get_keycode(int keycode) const = 0;
00087
00089
00090 virtual int get_x() const = 0;
00091
00093
00094 virtual int get_y() const = 0;
00095
00097 virtual float get_axis(int index) const = 0;
00098
00100 virtual int get_axis_count() const = 0;
00101
00103
00104 virtual int get_button_count() const = 0;
00105
00107
00108 virtual bool in_proximity() const = 0;
00109
00113
00114 public:
00116
00118 virtual void init(CL_Signal_v1<const CL_InputEvent &> *sig_provider_event) = 0;
00119
00121 virtual void set_position(int x, int y) = 0;
00122
00128 virtual bool poll(bool peek_only) = 0;
00129
00133
00134 private:
00136 };
00137