diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/theme_builder/components/MainWindow.cpp | 27 | ||||
-rw-r--r-- | src/theme_builder/components/MainWindow.h | 12 | ||||
-rw-r--r-- | src/theme_builder/components/StyleRuleEditor.cpp | 9 | ||||
-rw-r--r-- | src/theme_builder/components/StyleRuleEditor.h | 4 | ||||
-rw-r--r-- | src/theme_builder/components/StyleRuleSetEditor.cpp | 9 | ||||
-rw-r--r-- | src/theme_builder/components/StyleRuleSetEditor.h | 4 | ||||
-rw-r--r-- | src/ui/components/Menu.cpp | 57 | ||||
-rw-r--r-- | src/ui/controls/TextBlock.cpp | 9 | ||||
-rw-r--r-- | src/ui/controls/Window.cpp | 4 |
9 files changed, 46 insertions, 89 deletions
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() {} |