Sample editor back working.

This commit is contained in:
James Grogan 2022-11-17 08:39:49 +00:00
parent 722bda2801
commit 7ad237edc1
10 changed files with 59 additions and 36 deletions

View file

@ -78,6 +78,11 @@ void Button::updateLabel(const PaintEvent* event)
mRootNode->addChild(mTextNode.get());
}
if (mTransformDirty)
{
mTextNode->setLocation(middle);
}
if (mMaterialDirty)
{
mTextNode->setFillColor(mBackgroundColor);
@ -88,4 +93,9 @@ void Button::updateLabel(const PaintEvent* event)
mTextNode->setContent(mLabel);
mContentDirty = false;
}
if (mVisibilityDirty)
{
mTextNode->setIsVisible(mVisible);
}
}

View file

@ -8,7 +8,7 @@ Label::Label()
: Widget(),
mLabel()
{
mName = "Label";
}
std::unique_ptr<Label> Label::Create()
@ -52,9 +52,19 @@ void Label::updateLabel(const PaintEvent* event)
mTextNode->setFillColor(mBackgroundColor);
}
if (mTransformDirty)
{
mTextNode->setLocation(middle);
}
if (mContentDirty)
{
mTextNode->setContent(mLabel);
mContentDirty = false;
}
if (mVisibilityDirty)
{
mTextNode->setIsVisible(mVisible);
}
}

View file

@ -1,5 +1,7 @@
#include "StackWidget.h"
#include <iostream>
StackWidget::StackWidget()
{

View file

@ -130,12 +130,13 @@ void Widget::setVisible(bool visible)
if (mVisible != visible)
{
mVisibilityDirty = true;
}
mVisible = visible;
for (auto& child : mChildren)
{
child->setVisible(mVisible);
mVisible = visible;
for (auto& child : mChildren)
{
child->setVisible(mVisible);
}
}
}
@ -174,10 +175,15 @@ void Widget::onPaintEvent(const PaintEvent* event)
if (isDirty())
{
mRootNode->setName(mName);
mRootNode->setName(mName + "_RootNode");
doPaint(event);
if (mVisibilityDirty)
{
mRootNode->setIsVisible(mVisible);
}
mTransformDirty = false;
mMaterialDirty = false;
mVisibilityDirty = false;
@ -203,7 +209,6 @@ void Widget::updateChildLocations()
{
child->setBounds(mSize.mWidth, mSize.mHeight);
child->setLocation(mLocation);
child->setVisible(mVisible);
}
}

View file

@ -109,6 +109,11 @@ public:
mName = name;
}
const std::string& getName()
{
return mName;
}
bool needsUpdate() const;
protected:
@ -134,7 +139,7 @@ protected:
unsigned mBorderThickness{0};
Color mBackgroundColor;
Color mBorderColor;
bool mVisible{false};
bool mVisible{true};
std::unique_ptr<RectangleNode> mBackgroundNode;