3#include "base_widget.hpp"
4#include <concepts/widget.hpp>
10template <
typename T,
bool can_delete = true>
15 void update()
override final;
41template <
typename T,
bool can_delete>
45 static_cast<T*
>(
this)->set();
48template <
typename T,
bool can_delete>
53 auto x_offset{this->parent->get_x() + this->get_x()};
54 auto y_offset{this->parent->get_y() + this->get_y()};
56 painter.ofset(x_offset, y_offset);
57 static_cast<const T*
>(
this)->paint(
painter);
58 painter.ofset(-x_offset, -y_offset);
62template <
typename T,
bool can_delete>
65 auto p_x{this->parent->get_x()};
66 auto p_y{this->parent->get_y()};
76 auto x{this->get_x()};
77 auto y{this->get_y()};
78 auto x_offset{x + p_x};
79 auto y_offset{y + p_y};
85 presser.ofset(-x_offset, -y_offset);
92 static_cast<T*
>(
this)->on_double_press(
presser);
93 presser.ofset(-x_offset, -y_offset);
100 this->parent->remove_held(
this);
101 static_cast<T*
>(
this)->on_drag(
presser);
102 presser.ofset(-x_offset, -y_offset);
109 this->parent->remove_held(
this);
110 static_cast<T*
>(
this)->on_drop(
presser);
111 presser.ofset(-x_offset, -y_offset);
116 presser.get_bool() ? this->parent->add_held(
this)
117 : this->parent->remove_held(
this);
120 static_cast<T*
>(
this)->on_press(
presser);
122 presser.ofset(-x_offset, -y_offset);
Definition deleter.hpp:12
The painter class.
Definition painter.hpp:12
Definition presser.hpp:14