MCPcopy Create free account
hub / github.com/RevoSucks/BM64Recomp / process_event

Method process_event

src/ui/elements/ui_button.cpp:74–109  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

72 }
73
74 void Button::process_event(const Event &e) {
75 switch (e.type) {
76 case EventType::Click:
77 if (is_enabled()) {
78 for (const auto &function : pressed_callbacks) {
79 function();
80 }
81 }
82 break;
83 case EventType::Hover:
84 set_style_enabled(hover_state, std::get<EventHover>(e.variant).active && is_enabled());
85 break;
86 case EventType::Enable:
87 {
88 bool enable_active = std::get<EventEnable>(e.variant).active;
89 set_style_enabled(disabled_state, !enable_active);
90 if (enable_active) {
91 set_cursor(Cursor::Pointer);
92 set_focusable(true);
93 }
94 else {
95 set_cursor(Cursor::None);
96 set_focusable(false);
97 }
98 }
99 break;
100 case EventType::Focus:
101 set_style_enabled(focus_state, std::get<EventFocus>(e.variant).active);
102 break;
103 case EventType::Update:
104 break;
105 default:
106 assert(false && "Unknown event type.");
107 break;
108 }
109 }
110
111 void Button::add_pressed_callback(std::function<void()> callback) {
112 pressed_callbacks.emplace_back(callback);

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected