aboutsummaryrefslogtreecommitdiff
path: root/src/ui/controls
diff options
context:
space:
mode:
authorcrupest <crupest@outlook.com>2018-11-10 15:53:32 +0800
committercrupest <crupest@outlook.com>2018-11-10 15:53:32 +0800
commit8d5a08e8d054e9504ca31e0bfbfff7a1018c23c0 (patch)
treefdd8ac836b266044de380fea26e8f5fc80a5d9d9 /src/ui/controls
parentac4b0f8d438e7a7c2ecd836af8332b5da1e035c9 (diff)
downloadcru-8d5a08e8d054e9504ca31e0bfbfff7a1018c23c0.tar.gz
cru-8d5a08e8d054e9504ca31e0bfbfff7a1018c23c0.tar.bz2
cru-8d5a08e8d054e9504ca31e0bfbfff7a1018c23c0.zip
Refactor predefine resources. Add check for dead recursion in singletons in debug mode.
Diffstat (limited to 'src/ui/controls')
-rw-r--r--src/ui/controls/button.cpp6
-rw-r--r--src/ui/controls/text_block.cpp7
-rw-r--r--src/ui/controls/text_box.cpp14
-rw-r--r--src/ui/controls/text_control.cpp4
-rw-r--r--src/ui/controls/toggle_button.cpp6
5 files changed, 18 insertions, 19 deletions
diff --git a/src/ui/controls/button.cpp b/src/ui/controls/button.cpp
index a90c218d..0bd6a70d 100644
--- a/src/ui/controls/button.cpp
+++ b/src/ui/controls/button.cpp
@@ -1,13 +1,13 @@
#include "button.hpp"
#include "graph/graph.hpp"
-#include "ui/predefine.hpp"
+#include "ui/ui_manager.hpp"
namespace cru::ui::controls
{
Button::Button() : Control(true),
- normal_border_{predefine::GetPredefineResource<BorderProperty>(predefine::key_button_normal_border)},
- pressed_border_{predefine::GetPredefineResource<BorderProperty>(predefine::key_button_press_border)}
+ normal_border_{UiManager::GetInstance()->GetPredefineResources()->button_normal_border},
+ pressed_border_{UiManager::GetInstance()->GetPredefineResources()->button_press_border}
{
SetBordered(true);
GetBorderProperty() = normal_border_;
diff --git a/src/ui/controls/text_block.cpp b/src/ui/controls/text_block.cpp
index 290ddd58..8276ce4e 100644
--- a/src/ui/controls/text_block.cpp
+++ b/src/ui/controls/text_block.cpp
@@ -1,13 +1,12 @@
#include "text_block.hpp"
-#include "ui/window.hpp"
-#include "ui/predefine.hpp"
+#include "ui/ui_manager.hpp"
namespace cru::ui::controls
{
TextBlock::TextBlock() : TextControl(
- predefine::GetPredefineResourceComPtr<IDWriteTextFormat>(predefine::key_text_block_text_format),
- predefine::GetPredefineResourceComPtr<ID2D1Brush>(predefine::key_text_block_text_brush)
+ UiManager::GetInstance()->GetPredefineResources()->text_block_text_format,
+ UiManager::GetInstance()->GetPredefineResources()->text_block_text_brush
)
{
diff --git a/src/ui/controls/text_box.cpp b/src/ui/controls/text_box.cpp
index 0ed1248c..fd357fdb 100644
--- a/src/ui/controls/text_box.cpp
+++ b/src/ui/controls/text_box.cpp
@@ -6,7 +6,7 @@
#include "graph/graph.hpp"
#include "exception.hpp"
#include "application.hpp"
-#include "ui/predefine.hpp"
+#include "ui/ui_manager.hpp"
namespace cru::ui::controls
{
@@ -16,15 +16,15 @@ namespace cru::ui::controls
}
TextBox::TextBox() : TextControl(
- predefine::GetPredefineResourceComPtr<IDWriteTextFormat>(predefine::key_text_box_text_format),
- predefine::GetPredefineResourceComPtr<ID2D1Brush>(predefine::key_text_box_text_brush)
+ UiManager::GetInstance()->GetPredefineResources()->text_box_text_format,
+ UiManager::GetInstance()->GetPredefineResources()->text_box_text_brush
)
{
SetSelectable(true);
- caret_brush_ = predefine::GetPredefineResourceComPtr<ID2D1Brush>(predefine::key_text_box_caret_brush);
+ caret_brush_ = UiManager::GetInstance()->GetPredefineResources()->text_box_caret_brush;
- GetBorderProperty() = predefine::GetPredefineResource<BorderProperty>(predefine::key_text_box_border);
+ GetBorderProperty() = UiManager::GetInstance()->GetPredefineResources()->text_box_border;
SetBordered(true);
}
@@ -40,7 +40,7 @@ namespace cru::ui::controls
TextControl::OnDrawContent(device_context);
if (is_caret_show_)
{
- const auto caret_half_width = Application::GetInstance()->GetCaretInfo().half_caret_width;
+ const auto caret_half_width = UiManager::GetInstance()->GetCaretInfo().half_caret_width;
FLOAT x, y;
DWRITE_HIT_TEST_METRICS metrics{};
ThrowIfFailed(text_layout_->HitTestTextPosition(caret_position_, FALSE, &x, &y, &metrics));
@@ -53,7 +53,7 @@ namespace cru::ui::controls
TextControl::OnGetFocusCore(args);
assert(!caret_timer_.has_value());
is_caret_show_ = true;
- caret_timer_ = SetInterval(Application::GetInstance()->GetCaretInfo().caret_blink_duration, [this]
+ caret_timer_ = SetInterval(UiManager::GetInstance()->GetCaretInfo().caret_blink_duration, [this]
{
is_caret_show_ = !is_caret_show_;
Repaint();
diff --git a/src/ui/controls/text_control.cpp b/src/ui/controls/text_control.cpp
index 42214583..974001b3 100644
--- a/src/ui/controls/text_control.cpp
+++ b/src/ui/controls/text_control.cpp
@@ -5,7 +5,7 @@
#include "ui/window.hpp"
#include "graph/graph.hpp"
#include "exception.hpp"
-#include "ui/predefine.hpp"
+#include "ui/ui_manager.hpp"
namespace cru::ui::controls
{
@@ -23,7 +23,7 @@ namespace cru::ui::controls
brush_ = init_brush;
- selection_brush_ = predefine::GetPredefineResourceComPtr<ID2D1Brush>(predefine::key_text_control_selection_brush);
+ selection_brush_ = UiManager::GetInstance()->GetPredefineResources()->text_control_selection_brush;
}
diff --git a/src/ui/controls/toggle_button.cpp b/src/ui/controls/toggle_button.cpp
index a901f650..b16eca23 100644
--- a/src/ui/controls/toggle_button.cpp
+++ b/src/ui/controls/toggle_button.cpp
@@ -2,7 +2,7 @@
#include "graph/graph.hpp"
#include "ui/animations/animation.hpp"
-#include "ui/predefine.hpp"
+#include "ui/ui_manager.hpp"
namespace cru::ui::controls
{
@@ -19,8 +19,8 @@ namespace cru::ui::controls
{
graph::GraphManager::GetInstance()->GetD2D1Factory()->CreateRoundedRectangleGeometry(D2D1::RoundedRect(D2D1::RectF(-half_width, -half_height, half_width, half_height), half_height, half_height), &frame_path_);
- on_brush_ = predefine::GetPredefineResourceComPtr<ID2D1Brush>(predefine::key_toggle_button_on_brush);
- off_brush_ = predefine::GetPredefineResourceComPtr<ID2D1Brush>(predefine::key_toggle_button_off_brush);
+ on_brush_ = UiManager::GetInstance()->GetPredefineResources()->toggle_button_on_brush;
+ off_brush_ = UiManager::GetInstance()->GetPredefineResources()->toggle_button_off_brush;
}
inline D2D1_POINT_2F ConvertPoint(const Point& point)