/* * This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ #pragma once #include #include namespace OpenVulkano::Input { class InputDevice; class BaseInputAction { std::string m_name; std::vector m_devices; bool m_enabled; protected: BaseInputAction(const std::string& name) : m_name(name), m_enabled(true) {} public: virtual ~BaseInputAction() = default; [[nodiscard]] const std::string& GetName() const { return m_name; } [[nodiscard]] const std::vector& GetDevices() const { return m_devices; } [[nodiscard]] bool IsEnabled() const { return m_enabled; } void SetEnabled(bool enabled) { m_enabled = enabled; } }; }