Support retrieving caption label from ui::window

This commit is contained in:
Nikita Lisitsa 2022-12-08 17:53:55 +03:00
parent 0434a7d904
commit 11e46ba1c6
2 changed files with 5 additions and 4 deletions

View file

@ -1,6 +1,7 @@
#pragma once #pragma once
#include <psemek/ui/element.hpp> #include <psemek/ui/element.hpp>
#include <psemek/ui/label.hpp>
#include <functional> #include <functional>
@ -12,7 +13,7 @@ namespace psemek::ui
{ {
using on_close_callback = std::function<void()>; using on_close_callback = std::function<void()>;
virtual void set_caption(std::string caption) = 0; virtual label * caption() = 0;
virtual std::shared_ptr<element> set_child(std::shared_ptr<element> c) = 0; virtual std::shared_ptr<element> set_child(std::shared_ptr<element> c) = 0;
virtual void on_close(on_close_callback callback) = 0; virtual void on_close(on_close_callback callback) = 0;
}; };

View file

@ -259,9 +259,9 @@ namespace psemek::ui
}); });
} }
void set_caption(std::string caption) override label * caption() override
{ {
caption_->set_text(caption); return caption_.get();
} }
std::shared_ptr<element> set_child(std::shared_ptr<element> c) override std::shared_ptr<element> set_child(std::shared_ptr<element> c) override
@ -771,7 +771,7 @@ namespace psemek::ui
{ {
auto r = std::make_shared<window_impl>(impl().cross_red_16x16); auto r = std::make_shared<window_impl>(impl().cross_red_16x16);
r->setup_close(); r->setup_close();
r->set_caption(std::move(caption)); r->caption()->set_text(std::move(caption));
return r; return r;
} }