diff options
author | crupest <crupest@outlook.com> | 2022-02-10 19:49:06 +0800 |
---|---|---|
committer | crupest <crupest@outlook.com> | 2022-02-10 19:49:06 +0800 |
commit | c1dbad5fdf0560983e6c832eddded6f610eae94e (patch) | |
tree | 40f22f7e6aa7ef39c49b1c007beed37130fc0b5d | |
parent | b2622f654598f82a220a98daaa84fed9ce3b92b2 (diff) | |
download | cru-c1dbad5fdf0560983e6c832eddded6f610eae94e.tar.gz cru-c1dbad5fdf0560983e6c832eddded6f610eae94e.tar.bz2 cru-c1dbad5fdf0560983e6c832eddded6f610eae94e.zip |
...
22 files changed, 98 insertions, 184 deletions
diff --git a/demos/main/main.cpp b/demos/main/main.cpp index a45b7185..2e8188a1 100644 --- a/demos/main/main.cpp +++ b/demos/main/main.cpp @@ -1,4 +1,3 @@ -#include <memory> #include "cru/platform/bootstrap/Bootstrap.h" #include "cru/platform/gui/Base.h" #include "cru/platform/gui/UiApplication.h" @@ -17,7 +16,8 @@ using cru::platform::gui::IUiApplication; using namespace cru::ui::controls; int main() { - IUiApplication* application = cru::platform::bootstrap::CreateUiApplication(); + std::unique_ptr<IUiApplication> application( + cru::platform::bootstrap::CreateUiApplication()); auto application_menu = application->GetApplicationMenu(); @@ -33,35 +33,35 @@ int main() { mi->SetOnClickHandler([&]() { application->RequestQuit(0); }); } - const auto window = Window::Create(); + Window window; - const auto flex_layout = FlexLayout::Create(); - flex_layout->SetFlexDirection(FlexDirection::Vertical); - flex_layout->SetContentMainAlign(FlexCrossAlignment::Center); - flex_layout->SetItemCrossAlign(FlexCrossAlignment::Center); + FlexLayout flex_layout; + flex_layout.SetFlexDirection(FlexDirection::Vertical); + flex_layout.SetContentMainAlign(FlexCrossAlignment::Center); + flex_layout.SetItemCrossAlign(FlexCrossAlignment::Center); - window->AddChildAt(flex_layout, 0); + window.AddChild(&flex_layout); - const auto text_block = TextBlock::Create(u"Hello World from CruUI!", true); - flex_layout->AddChildAt(text_block, 0); + TextBlock text_block(u"Hello World from CruUI!", true); + flex_layout.AddChild(&text_block); - const auto button_text_block = TextBlock::Create(u"OK"); - const auto button = Button::Create(); - button->SetChild(button_text_block); - flex_layout->AddChildAt(button, 1); + TextBlock button_text_block(u"OK"); + Button button; + button.SetChild(&button_text_block); + flex_layout.AddChild(&button); - const auto text_box = TextBox::Create(); - text_box->SetMultiLine(true); - flex_layout->AddChildAt(text_box, 2); + TextBox text_box; + text_box.SetMultiLine(true); + flex_layout.AddChild(&text_box); - auto popup_menu = std::make_unique<cru::ui::components::PopupMenu>(window); + auto popup_menu = std::make_unique<cru::ui::components::PopupMenu>(&window); popup_menu->GetMenu()->AddTextItem(u"Item 1", [] {}); popup_menu->GetMenu()->AddTextItem(u"Item 2000", [] {}); - window->MouseDownEvent()->Bubble()->AddHandler( - [window, &popup_menu](cru::ui::events::MouseButtonEventArgs& e) { + window.MouseDownEvent()->Bubble()->AddHandler( + [&window, &popup_menu](cru::ui::events::MouseButtonEventArgs& e) { if (e.GetButton() == cru::ui::mouse_buttons::right) { - popup_menu->SetPosition(e.GetPoint() + window->GetWindowHost() + popup_menu->SetPosition(e.GetPoint() + window.GetWindowHost() ->GetNativeWindow() ->GetClientRect() .GetLeftTop()); @@ -69,7 +69,7 @@ int main() { } }); - window->GetWindowHost()->GetNativeWindow()->SetVisibility( + window.GetWindowHost()->GetNativeWindow()->SetVisibility( cru::platform::gui::WindowVisibilityType::Show); return application->Run(); diff --git a/demos/scroll_view/main.cpp b/demos/scroll_view/main.cpp index d859ce3a..b049a408 100644 --- a/demos/scroll_view/main.cpp +++ b/demos/scroll_view/main.cpp @@ -11,15 +11,14 @@ using cru::ui::controls::TextBlock; using cru::ui::controls::Window; int main() { - IUiApplication* application = cru::platform::bootstrap::CreateUiApplication(); + std::unique_ptr<IUiApplication> application( + cru::platform::bootstrap::CreateUiApplication()); - auto window = Window::Create(); + Window window; + ScrollView scroll_view; + window.AddChild(&scroll_view); - auto scroll_view = ScrollView::Create(); - - window->AddChild(scroll_view); - - auto text_block = TextBlock::Create( + TextBlock text_block( uR"([Verse 1] The snow glows white on the mountain tonight Not a footprint to be seen @@ -76,13 +75,12 @@ Let it go, let it go That perfect girl is gone Here I stand in the light of day Let the storm rage on! -The cold never bothered me anyway)"); - - text_block->SetSelectable(true); +The cold never bothered me anyway)", + true); - scroll_view->SetChild(text_block); + scroll_view.SetChild(&text_block); - window->GetWindowHost()->GetNativeWindow()->SetVisibility( + window.GetWindowHost()->GetNativeWindow()->SetVisibility( cru::platform::gui::WindowVisibilityType::Show); return application->Run(); diff --git a/include/cru/ui/components/Menu.h b/include/cru/ui/components/Menu.h index 32936f84..99668f62 100644 --- a/include/cru/ui/components/Menu.h +++ b/include/cru/ui/components/Menu.h @@ -22,7 +22,7 @@ class CRU_UI_API MenuItem : public Component { ~MenuItem(); public: - controls::Control* GetRootControl() override { return container_; } + controls::Control* GetRootControl() override { return &container_; } void SetText(String text); @@ -31,8 +31,8 @@ class CRU_UI_API MenuItem : public Component { } private: - controls::Button* container_; - controls::TextBlock* text_; + controls::Button container_; + controls::TextBlock text_; std::function<void()> on_click_; }; @@ -46,7 +46,7 @@ class CRU_UI_API Menu : public Component { ~Menu(); public: - controls::Control* GetRootControl() override { return container_; } + controls::Control* GetRootControl() override { return &container_; } gsl::index GetItemCount() const { return static_cast<gsl::index>(items_.size()); @@ -67,7 +67,7 @@ class CRU_UI_API Menu : public Component { } private: - controls::FlexLayout* container_; + controls::FlexLayout container_; std::vector<Component*> items_; std::function<void(Index)> on_item_click_; @@ -85,8 +85,8 @@ class CRU_UI_API PopupMenu : public Component { public: controls::Control* GetRootControl() override; - controls::Popup* GetPopup() { return popup_; } - Menu* GetMenu() { return menu_; } + controls::Popup* GetPopup() { return &popup_; } + Menu* GetMenu() { return &menu_; } // position relative to screen left top. void SetPosition(const Point& position); @@ -101,7 +101,7 @@ class CRU_UI_API PopupMenu : public Component { private: controls::Control* attached_control_; - controls::Popup* popup_; - Menu* menu_; + controls::Popup popup_; + Menu menu_; }; } // namespace cru::ui::components diff --git a/include/cru/ui/controls/Button.h b/include/cru/ui/controls/Button.h index d35d7ef8..1828dc57 100644 --- a/include/cru/ui/controls/Button.h +++ b/include/cru/ui/controls/Button.h @@ -15,12 +15,8 @@ class CRU_UI_API Button : public SingleChildControl<render::BorderRenderObject>, public: static constexpr StringView kControlType = u"Button"; - static Button* Create() { return new Button(); } - - protected: - Button(); - public: + Button(); Button(const Button& other) = delete; Button(Button&& other) = delete; Button& operator=(const Button& other) = delete; diff --git a/include/cru/ui/controls/Container.h b/include/cru/ui/controls/Container.h index adb0fad1..3df2b445 100644 --- a/include/cru/ui/controls/Container.h +++ b/include/cru/ui/controls/Container.h @@ -8,10 +8,8 @@ class CRU_UI_API Container : public SingleChildControl<render::BorderRenderObject> { static constexpr StringView kControlType = u"Container"; - protected: - Container(); - public: + Container(); CRU_DELETE_COPY(Container) CRU_DELETE_MOVE(Container) diff --git a/include/cru/ui/controls/FlexLayout.h b/include/cru/ui/controls/FlexLayout.h index 15494742..148586c0 100644 --- a/include/cru/ui/controls/FlexLayout.h +++ b/include/cru/ui/controls/FlexLayout.h @@ -15,12 +15,8 @@ class CRU_UI_API FlexLayout public: static constexpr StringView kControlType = u"FlexLayout"; - static FlexLayout* Create() { return new FlexLayout(); } - - protected: - FlexLayout(); - public: + FlexLayout(); FlexLayout(const FlexLayout& other) = delete; FlexLayout(FlexLayout&& other) = delete; FlexLayout& operator=(const FlexLayout& other) = delete; diff --git a/include/cru/ui/controls/Popup.h b/include/cru/ui/controls/Popup.h index 271ad4b7..464e7278 100644 --- a/include/cru/ui/controls/Popup.h +++ b/include/cru/ui/controls/Popup.h @@ -10,10 +10,6 @@ class CRU_UI_API Popup : public RootControl { public: static constexpr StringView kControlType = u"Popup"; - static Popup* Create(Control* attached_control = nullptr) { - return new Popup(attached_control); - } - explicit Popup(Control* attached_control = nullptr); CRU_DELETE_COPY(Popup) diff --git a/include/cru/ui/controls/ScrollView.h b/include/cru/ui/controls/ScrollView.h index 43b6390c..244977d5 100644 --- a/include/cru/ui/controls/ScrollView.h +++ b/include/cru/ui/controls/ScrollView.h @@ -7,17 +7,11 @@ namespace cru::ui::controls { class CRU_UI_API ScrollView : public SingleChildControl<render::ScrollRenderObject> { public: - static ScrollView* Create() { return new ScrollView(); } - static constexpr StringView kControlType = u"ScrollView"; - protected: ScrollView(); - - public: CRU_DELETE_COPY(ScrollView) CRU_DELETE_MOVE(ScrollView) - ~ScrollView() override; public: diff --git a/include/cru/ui/controls/StackLayout.h b/include/cru/ui/controls/StackLayout.h index 28e0e796..82826171 100644 --- a/include/cru/ui/controls/StackLayout.h +++ b/include/cru/ui/controls/StackLayout.h @@ -9,15 +9,9 @@ class CRU_UI_API StackLayout public: static constexpr StringView kControlType = u"StackLayout"; - static StackLayout* Create() { return new StackLayout(); } - - protected: StackLayout(); - - public: CRU_DELETE_COPY(StackLayout) CRU_DELETE_MOVE(StackLayout) - ~StackLayout() override; String GetControlType() const final { return kControlType.ToString(); } diff --git a/include/cru/ui/controls/TextBlock.h b/include/cru/ui/controls/TextBlock.h index feb5cfa3..dc47d00a 100644 --- a/include/cru/ui/controls/TextBlock.h +++ b/include/cru/ui/controls/TextBlock.h @@ -10,19 +10,19 @@ class CRU_UI_API TextBlock : public NoChildControl, public: static constexpr StringView kControlType = u"TextBlock"; - static TextBlock* Create(); - static TextBlock* Create(String text, bool selectable = false); - - protected: - TextBlock(); - public: + TextBlock(); TextBlock(const TextBlock& other) = delete; TextBlock(TextBlock&& other) = delete; TextBlock& operator=(const TextBlock& other) = delete; TextBlock& operator=(TextBlock&& other) = delete; ~TextBlock() override; + TextBlock(String text, bool selectable = false) : TextBlock() { + SetText(std::move(text)); + SetSelectable(selectable); + } + String GetControlType() const final { return kControlType.ToString(); } render::RenderObject* GetRenderObject() const override; diff --git a/include/cru/ui/controls/TextBox.h b/include/cru/ui/controls/TextBox.h index 0632cc12..94a1ac0c 100644 --- a/include/cru/ui/controls/TextBox.h +++ b/include/cru/ui/controls/TextBox.h @@ -15,15 +15,9 @@ class CRU_UI_API TextBox : public NoChildControl, public: static constexpr StringView control_type = u"TextBox"; - static TextBox* Create() { return new TextBox(); } - - protected: TextBox(); - - public: CRU_DELETE_COPY(TextBox) CRU_DELETE_MOVE(TextBox) - ~TextBox() override; String GetControlType() const final { return control_type.ToString(); } diff --git a/include/cru/ui/controls/TreeView.h b/include/cru/ui/controls/TreeView.h index 2e782ee0..b36ca553 100644 --- a/include/cru/ui/controls/TreeView.h +++ b/include/cru/ui/controls/TreeView.h @@ -7,13 +7,10 @@ class TreeView; class CRU_UI_API TreeViewItem : public Object { friend TreeView; - private: - TreeViewItem(TreeView* tree_view, TreeViewItem* parent); - public: + TreeViewItem(TreeView* tree_view, TreeViewItem* parent); CRU_DELETE_COPY(TreeViewItem) CRU_DELETE_MOVE(TreeViewItem) - ~TreeViewItem() override; TreeView* GetTreeView() { return tree_view_; } diff --git a/include/cru/ui/controls/Window.h b/include/cru/ui/controls/Window.h index 5fb6d594..a1a97f87 100644 --- a/include/cru/ui/controls/Window.h +++ b/include/cru/ui/controls/Window.h @@ -10,15 +10,9 @@ class CRU_UI_API Window final : public RootControl { static constexpr StringView control_type = u"Window"; public: - static Window* Create(Control* attached_control = nullptr); - - private: - explicit Window(Control* attached_control); - - public: + explicit Window(Control* attached_control = nullptr); CRU_DELETE_COPY(Window) CRU_DELETE_MOVE(Window) - ~Window() override; public: diff --git a/src/theme_builder/components/MainWindow.cpp b/src/theme_builder/components/MainWindow.cpp index 4c605756..91c093cc 100644 --- a/src/theme_builder/components/MainWindow.cpp +++ b/src/theme_builder/components/MainWindow.cpp @@ -9,27 +9,22 @@ using namespace cru::ui::controls; using namespace cru::platform::gui; MainWindow::MainWindow() { - window_ = Window::Create(); - window_->GetNativeWindow()->SetTitle(u"CruUI Theme Builder"); + window_.GetNativeWindow()->SetTitle(u"CruUI Theme Builder"); + main_layout_.SetFlexDirection(FlexDirection::Horizontal); + window_.AddChild(&main_layout_); + main_layout_.AddChild(&preview_layout_); - main_layout_ = FlexLayout::Create(); - main_layout_->SetFlexDirection(FlexDirection::Horizontal); - window_->AddChild(main_layout_); - - preview_layout_ = StackLayout::Create(); - main_layout_->AddChild(preview_layout_); - - preview_button_ = Button::Create(); - preview_button_->SetChild(TextBlock::Create(u"Preview")); - preview_layout_->AddChild(preview_button_); - preview_layout_->SetChildLayoutData( + preview_button_text_.SetText(u"Preview"); + preview_button_.SetChild(&preview_button_text_); + preview_layout_.AddChild(&preview_button_); + preview_layout_.SetChildLayoutData( 0, StackChildLayoutData{Alignment::Center, Alignment::Center}); } -MainWindow::~MainWindow() { delete window_; } +MainWindow::~MainWindow() {} void MainWindow::Show() { - window_->GetNativeWindow()->SetVisibility(WindowVisibilityType::Show); - window_->GetNativeWindow()->SetToForeground(); + window_.GetNativeWindow()->SetVisibility(WindowVisibilityType::Show); + window_.GetNativeWindow()->SetToForeground(); } } // namespace cru::theme_builder diff --git a/src/theme_builder/components/MainWindow.h b/src/theme_builder/components/MainWindow.h index 101b678e..c6733111 100644 --- a/src/theme_builder/components/MainWindow.h +++ b/src/theme_builder/components/MainWindow.h @@ -3,6 +3,7 @@ #include "cru/ui/controls/Button.h" #include "cru/ui/controls/FlexLayout.h" #include "cru/ui/controls/StackLayout.h" +#include "cru/ui/controls/TextBlock.h" #include "cru/ui/controls/Window.h" namespace cru::theme_builder { @@ -15,14 +16,15 @@ class MainWindow : public ui::components::Component { ~MainWindow() override; - ui::controls::Control* GetRootControl() override { return window_; } + ui::controls::Control* GetRootControl() override { return &window_; } void Show(); private: - ui::controls::Window* window_; - ui::controls::FlexLayout* main_layout_; - ui::controls::StackLayout* preview_layout_; - ui::controls::Button* preview_button_; + ui::controls::Window window_; + ui::controls::FlexLayout main_layout_; + ui::controls::StackLayout preview_layout_; + ui::controls::Button preview_button_; + ui::controls::TextBlock preview_button_text_; }; } // namespace cru::theme_builder diff --git a/src/theme_builder/components/StyleRuleEditor.cpp b/src/theme_builder/components/StyleRuleEditor.cpp index 1cbeaeb2..977672e3 100644 --- a/src/theme_builder/components/StyleRuleEditor.cpp +++ b/src/theme_builder/components/StyleRuleEditor.cpp @@ -1,14 +1,9 @@ #include "StyleRuleEditor.h" namespace cru::theme_builder { -StyleRuleEditor::StyleRuleEditor() { - main_layout_ = ui::controls::FlexLayout::Create(); -} +StyleRuleEditor::StyleRuleEditor() {} -StyleRuleEditor::~StyleRuleEditor() { - main_layout_->RemoveFromParent(); - delete main_layout_; -} +StyleRuleEditor::~StyleRuleEditor() { main_layout_.RemoveFromParent(); } void StyleRuleEditor::BindStyleRule(ui::style::StyleRule *rule) { style_rule_ = rule; diff --git a/src/theme_builder/components/StyleRuleEditor.h b/src/theme_builder/components/StyleRuleEditor.h index 181ff0ef..5a14161e 100644 --- a/src/theme_builder/components/StyleRuleEditor.h +++ b/src/theme_builder/components/StyleRuleEditor.h @@ -15,7 +15,7 @@ class StyleRuleEditor : public ui::components::Component { ~StyleRuleEditor() override; public: - ui::controls::Control* GetRootControl() override { return main_layout_; } + ui::controls::Control* GetRootControl() override { return &main_layout_; } void BindStyleRule(ui::style::StyleRule* rule); @@ -23,7 +23,7 @@ class StyleRuleEditor : public ui::components::Component { void UpdateView(); private: - ui::controls::FlexLayout* main_layout_; + ui::controls::FlexLayout main_layout_; ui::style::StyleRule* style_rule_; }; diff --git a/src/theme_builder/components/StyleRuleSetEditor.cpp b/src/theme_builder/components/StyleRuleSetEditor.cpp index 313b53da..072b8307 100644 --- a/src/theme_builder/components/StyleRuleSetEditor.cpp +++ b/src/theme_builder/components/StyleRuleSetEditor.cpp @@ -3,14 +3,9 @@ namespace cru::theme_builder { using namespace cru::ui::controls; -StyleRuleSetEditor::StyleRuleSetEditor() { - main_layout_ = FlexLayout::Create(); -} +StyleRuleSetEditor::StyleRuleSetEditor() {} -StyleRuleSetEditor::~StyleRuleSetEditor() { - main_layout_->RemoveFromParent(); - delete main_layout_; -} +StyleRuleSetEditor::~StyleRuleSetEditor() { main_layout_.RemoveFromParent(); } void StyleRuleSetEditor::BindStyleRuleSet( std::shared_ptr<ui::style::StyleRuleSet> rule_set) { diff --git a/src/theme_builder/components/StyleRuleSetEditor.h b/src/theme_builder/components/StyleRuleSetEditor.h index 50f1c80d..75597cf4 100644 --- a/src/theme_builder/components/StyleRuleSetEditor.h +++ b/src/theme_builder/components/StyleRuleSetEditor.h @@ -15,7 +15,7 @@ class StyleRuleSetEditor : public ui::components::Component { ~StyleRuleSetEditor() override; public: - ui::controls::Control* GetRootControl() override { return main_layout_; } + ui::controls::Control* GetRootControl() override { return &main_layout_; } void BindStyleRuleSet(std::shared_ptr<ui::style::StyleRuleSet> rule_set); @@ -23,7 +23,7 @@ class StyleRuleSetEditor : public ui::components::Component { void UpdateView(); private: - ui::controls::FlexLayout* main_layout_; + ui::controls::FlexLayout main_layout_; std::shared_ptr<ui::style::StyleRuleSet> style_rule_set_; }; diff --git a/src/ui/components/Menu.cpp b/src/ui/components/Menu.cpp index af2043a9..ab897077 100644 --- a/src/ui/components/Menu.cpp +++ b/src/ui/components/Menu.cpp @@ -5,6 +5,7 @@ #include "cru/ui/controls/Button.h" #include "cru/ui/controls/Control.h" #include "cru/ui/controls/FlexLayout.h" +#include "cru/ui/controls/Popup.h" #include "cru/ui/controls/TextBlock.h" #include "cru/ui/helper/ClickDetector.h" #include "cru/ui/host/WindowHost.h" @@ -12,44 +13,35 @@ namespace cru::ui::components { MenuItem::MenuItem() { - container_ = controls::Button::Create(); - text_ = controls::TextBlock::Create(); - container_->SetChild(text_); - container_->GetStyleRuleSet()->SetParent( + container_.SetChild(&text_); + container_.GetStyleRuleSet()->SetParent( ThemeManager::GetInstance()->GetResourceStyleRuleSet(u"menuitem.style")); - container_->ClickEvent()->AddHandler([this](const helper::ClickEventArgs&) { + container_.ClickEvent()->AddHandler([this](const helper::ClickEventArgs&) { if (this->on_click_) this->on_click_(); }); } MenuItem::MenuItem(String text) : MenuItem() { SetText(std::move(text)); } -MenuItem::~MenuItem() { - container_->RemoveFromParent(); - delete container_; -} +MenuItem::~MenuItem() { container_.RemoveFromParent(); } -void MenuItem::SetText(String text) { text_->SetText(std::move(text)); } +void MenuItem::SetText(String text) { text_.SetText(std::move(text)); } -Menu::Menu() { - container_ = controls::FlexLayout::Create(); - container_->SetFlexDirection(controls::FlexDirection::Vertical); -} +Menu::Menu() { container_.SetFlexDirection(controls::FlexDirection::Vertical); } Menu::~Menu() { for (auto item : items_) { delete item; } - container_->RemoveFromParent(); - delete container_; + container_.RemoveFromParent(); } void Menu::AddItem(Component* item, gsl::index index) { Expects(index >= 0 && index <= GetItemCount()); items_.insert(items_.cbegin() + index, item); - container_->AddChildAt(item->GetRootControl(), index); + container_.AddChildAt(item->GetRootControl(), index); } Component* Menu::RemoveItem(gsl::index index) { @@ -58,7 +50,7 @@ Component* Menu::RemoveItem(gsl::index index) { Component* item = items_[index]; items_.erase(items_.cbegin() + index); - container_->RemoveChildAt(index); + container_.RemoveChildAt(index); return item; } @@ -70,7 +62,7 @@ void Menu::ClearItems() { items_.clear(); - container_->ClearChildren(); + container_.ClearChildren(); } void Menu::AddTextItem(String text, gsl::index index, @@ -84,33 +76,24 @@ void Menu::AddTextItem(String text, gsl::index index, } PopupMenu::PopupMenu(controls::Control* attached_control) - : attached_control_(attached_control) { - popup_ = controls::Popup::Create(attached_control); - - menu_ = new Menu(); - - menu_->SetOnItemClick([this](Index) { this->Close(); }); - - popup_->AddChildAt(menu_->GetRootControl(), 0); + : attached_control_(attached_control), popup_(attached_control) { + menu_.SetOnItemClick([this](Index) { this->Close(); }); + popup_.AddChildAt(menu_.GetRootControl(), 0); } -PopupMenu::~PopupMenu() { - delete menu_; - - delete popup_; -} +PopupMenu::~PopupMenu() {} -controls::Control* PopupMenu::GetRootControl() { return popup_; } +controls::Control* PopupMenu::GetRootControl() { return &popup_; } void PopupMenu::SetPosition(const Point& position) { - popup_->GetWindowHost()->GetNativeWindow()->SetClientRect(Rect{position, {}}); + popup_.GetWindowHost()->GetNativeWindow()->SetClientRect(Rect{position, {}}); } void PopupMenu::Show() { - popup_->GetWindowHost()->RelayoutWithSize(Size::Infinate(), true); - popup_->GetWindowHost()->GetNativeWindow()->SetVisibility( + popup_.GetWindowHost()->RelayoutWithSize(Size::Infinate(), true); + popup_.GetWindowHost()->GetNativeWindow()->SetVisibility( platform::gui::WindowVisibilityType::Show); } -void PopupMenu::Close() { popup_->GetWindowHost()->GetNativeWindow()->Close(); } +void PopupMenu::Close() { popup_.GetWindowHost()->GetNativeWindow()->Close(); } } // namespace cru::ui::components diff --git a/src/ui/controls/TextBlock.cpp b/src/ui/controls/TextBlock.cpp index 80d9fe34..f3d2405b 100644 --- a/src/ui/controls/TextBlock.cpp +++ b/src/ui/controls/TextBlock.cpp @@ -8,15 +8,6 @@ namespace cru::ui::controls { using render::TextRenderObject; -TextBlock* TextBlock::Create() { return new TextBlock(); } - -TextBlock* TextBlock::Create(String text, bool selectable) { - auto c = new TextBlock(); - c->SetText(text); - c->SetSelectable(selectable); - return c; -} - TextBlock::TextBlock() { const auto theme_manager = ThemeManager::GetInstance(); diff --git a/src/ui/controls/Window.cpp b/src/ui/controls/Window.cpp index 6891c918..b1881136 100644 --- a/src/ui/controls/Window.cpp +++ b/src/ui/controls/Window.cpp @@ -1,10 +1,6 @@ #include "cru/ui/controls/Window.h" namespace cru::ui::controls { -Window* Window::Create(Control* attached_control) { - return new Window(attached_control); -} - Window::Window(Control* attached_control) : RootControl(attached_control) {} Window::~Window() {} |