Refactor in a good state
This commit is contained in:
parent
4b6e7da994
commit
164359f6aa
21 changed files with 606 additions and 105 deletions
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -20,7 +20,7 @@ void WorkspaceWidget::eventProcess(const Events& events) {
|
|||
|
||||
if (widget->mDropped) {
|
||||
auto side = mDockSpace.getPreviewSide();
|
||||
if (side != GridLayoutWidget::NONE) {
|
||||
if (side != DockLayoutWidget::NONE) {
|
||||
mFloatingLayer.mChildWidgets.removeNode(mFloatingLayer.mChildWidgets.find(widget));
|
||||
widget->setCollapsed(false);
|
||||
widget->stopFloating();
|
||||
|
|
@ -52,13 +52,13 @@ void WorkspaceWidget::eventProcess(const Events& events) {
|
|||
// toggle hide state
|
||||
if (events.isDown(InputID::LEFT_ALT)) {
|
||||
if (events.isPressed(InputID::N1)) {
|
||||
mDockSpace.toggleHiddenState(GridLayoutWidget::LEFT);
|
||||
mDockSpace.toggleHiddenState(DockLayoutWidget::LEFT);
|
||||
} else if (events.isPressed(InputID::N2)) {
|
||||
mDockSpace.toggleHiddenState(GridLayoutWidget::TOP);
|
||||
mDockSpace.toggleHiddenState(DockLayoutWidget::TOP);
|
||||
} else if (events.isPressed(InputID::N3)) {
|
||||
mDockSpace.toggleHiddenState(GridLayoutWidget::RIGHT);
|
||||
mDockSpace.toggleHiddenState(DockLayoutWidget::RIGHT);
|
||||
} else if (events.isPressed(InputID::N4)) {
|
||||
mDockSpace.toggleHiddenState(GridLayoutWidget::BOTTOM);
|
||||
mDockSpace.toggleHiddenState(DockLayoutWidget::BOTTOM);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue