WidgetsNew Initial

This commit is contained in:
IlyaShurupov 2024-07-17 09:44:18 +03:00 committed by Ilya Shurupov
parent 3f49ee11ae
commit 279cf58dff
15 changed files with 741 additions and 0 deletions

View file

@ -0,0 +1,32 @@
#include "FloatingWidget.hpp"
using namespace tp;
void FloatingWidget::process(const EventHandler& events) {
const auto relativePointer = events.getPointer();
bool inside = getRelativeArea().isInside(relativePointer);
if (inside && events.isPressed(InputID::MOUSE1)) {
mPointerStart = relativePointer;
mIsFloating = true;
}
if (mIsFloating && events.isReleased(InputID::MOUSE1)) {
mIsFloating = false;
}
mPointerCurrent = relativePointer;
setActive(mIsFloating || needUpdate());
}
void FloatingWidget::updateArea(RectF& area) const {
if (mIsFloating) {
area.pos += mPointerCurrent - mPointerStart;
}
}
void FloatingWidget::draw(Canvas& canvas) {
canvas.rect(getRelativeArea(), RGBA(0.5f), 10);
}