snake5 icon

some ui code

snake5 | PRO | 07/15/19 06:32:46 AM UTC | 0 ⭐ | 798 👁️ | Never ⏰ | []
C++ |

840 B

|

None

|

0 👍

/

0 👎

struct OpenClose : UINode
{
    void Render(UIContainer* ctx) override
    {
        ctx->PushBox();
 
        cb = ctx->Element<UICheckbox>();
        cb->SetValue(open);
 
        openBtn = ctx->Element<UIButton>();
        openBtn->SetText("Open");
 
        closeBtn = ctx->Element<UIButton>();
        closeBtn->SetText("Close");
 
        if (open)
        {
            ctx->PushBox();
            ctx->Text("It is open!");
            ctx->Pop();
        }
 
        ctx->Pop();
    }
    void OnEvent(UIEvent& e) override
    {
        if (e.type == UIEventType::Click)
        {
            if (e.target == openBtn || e.target == closeBtn)
            {
                open = e.target == openBtn;
                e.context->Rebuild(this);
            }
        }
        if (e.type == UIEventType::Change)
        {
            if (e.target == cb)
            {
                open = cb->GetValue();
                e.context->Rebuild(this);
            }
        }
    }
 
    bool open = false;
 
    UICheckbox* cb;
    UIButton* openBtn;
    UIButton* closeBtn;
};

Comments