fast-nuclear-sim/src/graphics/input/focus.hpp

31 lines
655 B
C++

#pragma once
#include <memory>
namespace sim::graphics::focus
{
struct focus_t
{
virtual ~focus_t() { }
virtual void on_keypress(int key, int sc, int action, int mods) { }
virtual void on_mouse_button(int button, int action, int mods) { }
virtual void on_cursor_pos(double x, double y) { }
virtual void on_charcode(unsigned int c) { }
};
bool is_triggered();
void clear_trigger();
void clear();
bool is_focused();
void set(std::unique_ptr<focus_t> f);
void on_keypress(int key, int sc, int action, int mods);
void on_mouse_button(int button, int action, int mods);
void on_cursor_pos(double x, double y);
void on_charcode(unsigned int c);
};