pointer events property support and apply ptr events None to select arrow svg

This commit is contained in:
thecozies
2025-07-29 14:46:47 -05:00
parent ce12002c28
commit d14731120b
4 changed files with 19 additions and 0 deletions
+2
View File
@@ -195,6 +195,8 @@ namespace recompui {
arrow->set_width(select_element_caret_size);
arrow->set_height(select_element_caret_size);
arrow->set_color(theme::color::TextDim);
// makes clicking on the arrow pass click interactions through to whats beneath it
arrow->set_pointer_events(PointerEvents::None);
add_style(&hover_style, hover_state);
add_style(&focus_style, focus_state);
+11
View File
@@ -717,4 +717,15 @@ namespace recompui {
set_or_add_transformation(Rml::Transforms::Rotate2D(degrees));
}
void Style::set_pointer_events(PointerEvents pointer_events) {
switch (pointer_events) {
case PointerEvents::None:
set_property(Rml::PropertyId::PointerEvents, Rml::Style::PointerEvents::None);
break;
case PointerEvents::Auto:
set_property(Rml::PropertyId::PointerEvents, Rml::Style::PointerEvents::Auto);
break;
}
}
} // namespace recompui
+1
View File
@@ -119,6 +119,7 @@ namespace recompui {
void set_tab_index_auto();
void set_tab_index_none();
void set_focusable(bool focusable);
void set_pointer_events(PointerEvents pointer_events);
virtual bool is_element() { return false; }
ResourceId get_resource_id() { return resource_id; }
};
+5
View File
@@ -60,6 +60,11 @@ namespace recompui {
Count
};
enum class PointerEvents {
None,
Auto
};
template <typename Enum, typename = std::enable_if_t<std::is_enum_v<Enum>>>
constexpr uint32_t Events(Enum first) {
return 1u << static_cast<uint32_t>(first);