Reorganize code in widgets

This commit is contained in:
IlyaShurupov 2024-10-14 16:41:13 +03:00 committed by Ilya Shurupov
parent 837d8dc507
commit e00dec67ba
31 changed files with 652 additions and 481 deletions

View file

@ -1,52 +0,0 @@
#include "FloatingLayout.hpp"
#include "Widget.hpp"
using namespace tp;
void FloatingLayout::pickRect() {
if (mIsFloating) {
auto area = getArea();
if (mIsResizing) {
mPointerCurrent.clamp(mMinSize, mMaxSize);
area.size = mPointerCurrent + mHandleSize / 2.f;
for (auto child : children()) {
child->triggerWidgetUpdate("floating menu resized");
}
} else if (mIsFloating) {
area.pos += mPointerCurrent - mPointerStart;
}
setArea(area);
}
clampMinMaxSize();
}
RectF FloatingLayout::resizeHandleRect() {
auto area = getAnimatedArea().relative();
area.pos = area.p3() - mHandleSize;
area.size = mHandleSize;
area.shrink(mHandlePadding);
return area;
}
void FloatingLayout::startAction(const Vec2F& pointer) {
mPointerStart = pointer;
mIsFloating = true;
if (resizeHandleRect().isInside(mPointerStart)) {
mIsResizing = true;
}
}
void FloatingLayout::updateAction(const Vec2F& pointer) {
mPointerCurrent = pointer;
}
void FloatingLayout::endAction() {
mIsResizing = mIsFloating = false;
}