/** * Triangles * Copyright (C) 2016 POSITIVE MENTAL ATTITUDE * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, version 3 of the License. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #pragma once #include #include class Input { public: enum Type { RealTime = 1, Pressed = 1 << 1, Released = 1 << 2 }; Input() = delete; Input(const Input& other); Input& operator=(const Input& other); Input(const sf::Keyboard::Key& key, int type=Type::RealTime|Type::Pressed); Input(const sf::Mouse::Button& button, int type=Type::RealTime|Type::Pressed); Input(const int joystickButton, int type=Type::RealTime|Type::Pressed); Input(const sf::Joystick::Axis& axis, bool positive); float test() const; bool operator==(const sf::Event& event) const; bool operator==(const Input& other) const; private: template friend class InputTarget; sf::Event _event; int _type; bool _positive; };