diff options
Diffstat (limited to 'core/os/input.h')
| -rw-r--r-- | core/os/input.h | 76 |
1 files changed, 13 insertions, 63 deletions
diff --git a/core/os/input.h b/core/os/input.h index cc51dbf42f..8aa0e6b18a 100644 --- a/core/os/input.h +++ b/core/os/input.h @@ -5,7 +5,7 @@ /* GODOT ENGINE */ /* http://www.godotengine.org */ /*************************************************************************/ -/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */ +/* Copyright (c) 2007-2015 Juan Linietsky, Ariel Manzur. */ /* */ /* Permission is hereby granted, free of charge, to any person obtaining */ /* a copy of this software and associated documentation files (the */ @@ -61,82 +61,32 @@ public: virtual bool is_action_pressed(const StringName& p_action)=0; virtual float get_joy_axis(int p_device,int p_axis)=0; + virtual String get_joy_name(int p_idx)=0; + virtual void joy_connection_changed(int p_idx, bool p_connected, String p_name)=0; + virtual Point2 get_mouse_pos() const=0; virtual Point2 get_mouse_speed() const=0; virtual int get_mouse_button_mask() const=0; + virtual void warp_mouse_pos(const Vector2& p_to)=0; + virtual Vector3 get_accelerometer()=0; virtual void action_press(const StringName& p_action)=0; virtual void action_release(const StringName& p_action)=0; - Input(); -}; - -VARIANT_ENUM_CAST(Input::MouseMode); - -class InputDefault : public Input { + void get_argument_options(const StringName& p_function,int p_idx,List<String>*r_options) const; - OBJ_TYPE( InputDefault, Input ); - _THREAD_SAFE_CLASS_ + virtual bool is_emulating_touchscreen() const=0; - int mouse_button_mask; - Set<int> keys_pressed; - Set<int> joy_buttons_pressed; - Map<int,float> joy_axis; - Map<StringName,int> custom_action_press; - Vector3 accelerometer; - Vector2 mouse_pos; - MainLoop *main_loop; - - struct SpeedTrack { - - uint64_t last_tick; - Vector2 speed; - Vector2 accum; - float accum_t; - float min_ref_frame; - float max_ref_frame; - - void update(const Vector2& p_delta_p); - void reset(); - SpeedTrack(); - }; - - SpeedTrack mouse_speed_track; - -public: + virtual void set_custom_mouse_cursor(const RES& p_cursor,const Vector2& p_hotspot=Vector2())=0; + virtual void set_mouse_in_window(bool p_in_window)=0; + Input(); +}; +VARIANT_ENUM_CAST(Input::MouseMode); - virtual bool is_key_pressed(int p_scancode); - virtual bool is_mouse_button_pressed(int p_button); - virtual bool is_joy_button_pressed(int p_device, int p_button); - virtual bool is_action_pressed(const StringName& p_action); - - virtual float get_joy_axis(int p_device,int p_axis); - - virtual Vector3 get_accelerometer(); - - virtual Point2 get_mouse_pos() const; - virtual Point2 get_mouse_speed() const; - virtual int get_mouse_button_mask() const; - - void parse_input_event(const InputEvent& p_event); - void set_accelerometer(const Vector3& p_accel); - void set_joy_axis(int p_device,int p_axis,float p_value); - - void set_main_loop(MainLoop *main_loop); - void set_mouse_pos(const Point2& p_posf); - - void action_press(const StringName& p_action); - void action_release(const StringName& p_action); - - void iteration(float p_step); - - InputDefault(); - -}; #endif // INPUT_H |