Refactor in a good state

This commit is contained in:
IlyaShurupov 2024-10-09 14:31:23 +03:00 committed by Ilya Shurupov
parent 4b6e7da994
commit 164359f6aa
21 changed files with 606 additions and 105 deletions

View file

@ -2,15 +2,15 @@
using namespace tp;
GridLayoutWidget::GridLayoutWidget() {
DockLayoutWidget::DockLayoutWidget() {
mSideWidgets[0].side = LEFT;
mSideWidgets[1].side = TOP;
mSideWidgets[2].side = RIGHT;
mSideWidgets[3].side = BOTTOM;
}
void GridLayoutWidget::addSideWidget(Widget* widget, Side side) {
if (isSideExists(side)) return;
void DockLayoutWidget::addSideWidget(Widget* widget, Side side) {
if (sideExists(side)) return;
auto& sideWidget = mSideWidgets[side];
sideWidget.widget = widget;
@ -27,8 +27,8 @@ void GridLayoutWidget::addSideWidget(Widget* widget, Side side) {
widget->mIsDocked = true;
}
void GridLayoutWidget::removeSideWidget(Side side) {
if (!isSideExists(side)) return;
void DockLayoutWidget::removeSideWidget(Side side) {
if (!sideExists(side)) return;
bool removed = false;
for (ualni i = 0; i < 3; i++) {
@ -48,18 +48,18 @@ void GridLayoutWidget::removeSideWidget(Side side) {
mSideWidgets[side].widget = nullptr;
}
void GridLayoutWidget::setCenterWidget(Widget* widget) {
void DockLayoutWidget::setCenterWidget(Widget* widget) {
mChildWidgets.removeNode(mChildWidgets.find(mCenterWidget));
mCenterWidget = widget;
mChildWidgets.pushBack(mCenterWidget);
}
void GridLayoutWidget::toggleHiddenState(GridLayoutWidget::Side side) {
if (!isSideExists(side)) return;
void DockLayoutWidget::toggleHiddenState(DockLayoutWidget::Side side) {
if (!sideExists(side)) return;
mSideWidgets[side].hidden = !mSideWidgets[side].hidden;
}
void GridLayoutWidget::eventProcess(const tp::Events& events) {
void DockLayoutWidget::eventProcess(const tp::Events& events) {
calculateSideAreas();
calculateResizeHandles();
// calculateHeaderAreas();
@ -70,7 +70,7 @@ void GridLayoutWidget::eventProcess(const tp::Events& events) {
updateChildSideWidgets();
}
void GridLayoutWidget::eventDraw(Canvas& canvas) {
void DockLayoutWidget::eventDraw(Canvas& canvas) {
canvas.rect(this->mArea, mBackgroundColor, 0);
for (auto& sideWidget : mSideWidgets) {
@ -89,7 +89,7 @@ void GridLayoutWidget::eventDraw(Canvas& canvas) {
}
}
void GridLayoutWidget::eventDrawOver(Canvas& canvas) {
void DockLayoutWidget::eventDrawOver(Canvas& canvas) {
if (!mPreview) return;
if (mPreviewSide != NONE) canvas.rect(mPreviewArea.shrink(mPadding * 2), mPreviewColor, mRounding);
@ -100,7 +100,7 @@ void GridLayoutWidget::eventDrawOver(Canvas& canvas) {
}
}
void GridLayoutWidget::calculateSideAreas() {
void DockLayoutWidget::calculateSideAreas() {
auto startArea = this->mArea;
for (auto& sideWidget : mSideWidgets) {
const auto side = sideWidget.order;
@ -135,7 +135,7 @@ void GridLayoutWidget::calculateSideAreas() {
mCenterArea = startArea.shrink(mPadding);
}
void GridLayoutWidget::calculateResizeHandles() {
void DockLayoutWidget::calculateResizeHandles() {
RectF rec;
if (isSideVisible(LEFT)) {
@ -162,7 +162,7 @@ void GridLayoutWidget::calculateResizeHandles() {
}
}
void GridLayoutWidget::handleResizeEvents(const Events& events) {
void DockLayoutWidget::handleResizeEvents(const Events& events) {
for (auto& sideWidget : mSideWidgets) {
auto& sideSize = sideWidget.absoluteSize;
auto& resizeHandle = sideWidget.resizeHandle;
@ -225,11 +225,11 @@ void GridLayoutWidget::handleResizeEvents(const Events& events) {
}
}
void GridLayoutWidget::updateChildSideWidgets() {
void DockLayoutWidget::updateChildSideWidgets() {
// Update Child Widgets
{
for (ualni i = 0; i < 4; i++) {
if (!isSideExists(Side(i))) continue;
if (!sideExists(Side(i))) continue;
auto widget = mSideWidgets[i].widget;
if (!isSideVisible(Side(i))) {
@ -261,7 +261,7 @@ void GridLayoutWidget::updateChildSideWidgets() {
*/
}
void GridLayoutWidget::calculateHeaderAreas() {
void DockLayoutWidget::calculateHeaderAreas() {
for (ualni i = 0; i < 4; i++) {
if (!isSideVisible(Side(i))) continue;
auto& area = mSideWidgets[i].area;
@ -273,13 +273,13 @@ void GridLayoutWidget::calculateHeaderAreas() {
}
}
bool GridLayoutWidget::isSideVisible(GridLayoutWidget::Side side) {
return isSideExists(side) && !mSideWidgets[side].hidden;
bool DockLayoutWidget::isSideVisible(DockLayoutWidget::Side side) {
return sideExists(side) && !mSideWidgets[side].hidden;
}
bool GridLayoutWidget::isSideExists(GridLayoutWidget::Side side) { return mSideWidgets[side].widget; }
bool DockLayoutWidget::sideExists(DockLayoutWidget::Side side) { return mSideWidgets[side].widget; }
ualni GridLayoutWidget::getVisibleSidesSize() {
ualni DockLayoutWidget::getVisibleSidesSize() {
ualni out = 0;
for (ualni i = 0; i < 4; i++) {
if (isSideVisible(Side(i))) out++;
@ -287,9 +287,9 @@ ualni GridLayoutWidget::getVisibleSidesSize() {
return out;
}
GridLayoutWidget::Side GridLayoutWidget::getPreviewSide() { return mPreviewSide; }
DockLayoutWidget::Side DockLayoutWidget::getPreviewSide() { return mPreviewSide; }
void GridLayoutWidget::handlePreview(const Events& events) {
void DockLayoutWidget::handlePreview(const Events& events) {
if (!mPreview) {
mPreviewSide = NONE;
return;