Cleanup widgets

This commit is contained in:
IlyaShurupov 2024-06-26 11:30:02 +03:00
parent 9e7704a446
commit bce1dbacc2
30 changed files with 705 additions and 654 deletions

View file

@ -177,7 +177,7 @@ namespace tp {
halnf mPadding = 0;
};
class ChattingWidget : public Widget {
class ChattingWidget : public GridLayoutWidget {
public:
ChattingWidget() {
// todo : fetch code
@ -205,19 +205,10 @@ namespace tp {
mActive.mHistoryView.addWidget(&message.data());
}
this->mChildWidgets.pushBack(&mSideView);
this->mChildWidgets.pushBack(&mActive);
this->mChildWidgets.pushBack(&mSplitView);
addSideWidget(&mSideView, GridLayoutWidget::RIGHT);
setCenterWidget(&mActive);
}
void eventProcess(const Events& events) override {
mSplitView.setArea(this->mArea);
mSideView.setArea(mSplitView.getSecond());
mActive.setArea(mSplitView.getFirst());
}
void eventDraw(Canvas& canvas) override { canvas.rect(this->mArea, mBGColor); }
void eventUpdateConfiguration(WidgetManager& wm) override {
wm.setActiveId("ChattingWidget");
mBGColor = wm.getColor("Back", "Background");
@ -227,7 +218,6 @@ namespace tp {
Buffer<UserWidget> mUsers;
ScrollableWindow mSideView;
ActiveChatWidget mActive;
SplitView mSplitView;
RGBA mBGColor;
};

View file

@ -9,28 +9,7 @@ using namespace tp;
class SimpleGUI : public Application {
public:
SimpleGUI() {
// debug
mGui.addSideWidget(&mButtons[0], DockSpaceWidget::BOTTOM);
mGui.addSideWidget(&mButtons[1], DockSpaceWidget::RIGHT);
mGui.removeSideWidget(DockSpaceWidget::BOTTOM);
mGui.addSideWidget(&mButtons[0], DockSpaceWidget::TOP);
mGui.addSideWidget(&mButtons[2], DockSpaceWidget::LEFT);
mGui.removeSideWidget(DockSpaceWidget::TOP);
mGui.addSideWidget(&mButtons[0], DockSpaceWidget::BOTTOM);
mGui.addSideWidget(&mButtons[3], DockSpaceWidget::TOP);
mGui.setCenterWidget(&mButtons[4]);
mButtons[4].mCallback = [&]() { mGui.toggleHiddenState(DockSpaceWidget::BOTTOM); };
mButtons[0].mCallback = [&]() { mGui.toggleHiddenState(DockSpaceWidget::TOP); };
mButtons[2].mCallback = [&]() { mGui.toggleHiddenState(DockSpaceWidget::RIGHT); };
mButtons[3].mCallback = [&]() { mGui.toggleHiddenState(DockSpaceWidget::LEFT); };
// mGui.mPreview = true;
}
void processFrame(EventHandler* eventHandler) override {
@ -49,9 +28,8 @@ public:
private:
WidgetManager mWidgetManager;
DockSpaceWidget mGui;
ButtonWidget mButtons[5];
// DockSpaceWidget mGui;
SimpleWidget3 mGui;
};
int main() {

View file

@ -5,13 +5,19 @@ namespace tp {
class SimpleWidget : public CollapsableMenu {
public:
SimpleWidget() {
this->addWidgetToMenu(&mSlider);
this->addWidgetToMenu(&mInMenuButton1);
this->addWidgetToMenu(&mInMenuButton2);
this->addWidgetToMenu(&mLabel);
this->addWidgetToMenu(&mSlider);
mInMenuButton1.mLabel.mLabel = "Button1";
mInMenuButton1.mCallback = []() {
printf("asd\n");
};
mInMenuButton2.mLabel.mLabel = "Button2";
}
@ -23,31 +29,41 @@ namespace tp {
NamedSliderWidget mSlider;
};
class SimpleWidget2 : public DockSpaceWidget {
class SimpleWidget3 : public WorkspaceWidget {
public:
SimpleWidget2() {
this->mChildWidgets.pushBack(&mFloating);
mFloating.addWidgetToMenu(&mWidget);
SimpleWidget3() {
this->mChildWidgets.pushBack(&mFloating2);
mFloating2.addWidgetToMenu(&mWidget2);
mDockSpace.addSideWidget(&mButtons[0], GridLayoutWidget::BOTTOM);
mDockSpace.addSideWidget(&mButtons[1], GridLayoutWidget::RIGHT);
mFloating2.mArea = { 200, 100, 100, 100 };
mDockSpace.removeSideWidget(GridLayoutWidget::BOTTOM);
this->mChildWidgets.pushBack(&mFloating3);
mFloating3.addWidgetToMenu(&mWidget3);
mDockSpace.addSideWidget(&mButtons[0], GridLayoutWidget::TOP);
mDockSpace.addSideWidget(&mButtons[2], GridLayoutWidget::LEFT);
mFloating3.mArea = { 400, 100, 100, 100 };
mDockSpace.removeSideWidget(GridLayoutWidget::TOP);
mDockSpace.addSideWidget(&mButtons[0], GridLayoutWidget::BOTTOM);
mDockSpace.addSideWidget(&mButtons[3], GridLayoutWidget::TOP);
mDockSpace.setCenterWidget(&mButtons[4]);
/*
mButtons[4].mCallback = [&]() { mDockSpace.toggleHiddenState(DockSpaceWidget::BOTTOM); };
mButtons[0].mCallback = [&]() { mDockSpace.toggleHiddenState(DockSpaceWidget::TOP); };
mButtons[2].mCallback = [&]() { mDockSpace.toggleHiddenState(DockSpaceWidget::RIGHT); };
mButtons[3].mCallback = [&]() { mDockSpace.toggleHiddenState(DockSpaceWidget::LEFT); };
*/
mButtons[0].addWidgetToMenu(&mWidget);
mButtons[1].addWidgetToMenu(&mWidget2);
}
private:
FloatingWidget mFloating;
FloatingWidget mButtons[5];
SimpleWidget mWidget;
FloatingWidget mFloating2;
SimpleWidget mWidget2;
FloatingWidget mFloating3;
SimpleWidget mWidget3;
};
}