#ifndef PW_SYSTEM_INPUT_HPP
#define PW_SYSTEM_INPUT_HPP

#include <pw/core/globals.hpp>
#include <pw/core/point.hpp>

namespace pw {

class input {
public:

    static input& get();

    point mouse_position() const { return _mouse_position; }

    bool mouse_pressed() const { return _mouse_pressed; }
    int mouse_button() const { return _mouse_button; }


    std::string input_string() const { return _input_string; }

	~input() = default;

	enum mouse_button_state {
		pressed,
		released
	};

    void reset();

protected:

    friend class window;

    input();

private:

    point _mouse_position;
	int _mouse_button;
    bool _mouse_pressed;

    int _key_code;
    bool _key_pressed;

	std::string _input_string;


};

}

#endif
