aboutsummaryrefslogtreecommitdiff
path: root/src/ui/predefine.hpp
diff options
context:
space:
mode:
authorcrupest <crupest@outlook.com>2018-11-09 22:59:38 +0800
committercrupest <crupest@outlook.com>2018-11-09 22:59:38 +0800
commitac4b0f8d438e7a7c2ecd836af8332b5da1e035c9 (patch)
treee5b886f1884fa56dd90059523b1f4dc730bb5003 /src/ui/predefine.hpp
parent4b219b569c16db6027dd36e4656152f261321c60 (diff)
downloadcru-ac4b0f8d438e7a7c2ecd836af8332b5da1e035c9.tar.gz
cru-ac4b0f8d438e7a7c2ecd836af8332b5da1e035c9.tar.bz2
cru-ac4b0f8d438e7a7c2ecd836af8332b5da1e035c9.zip
Add predefine resource.
Diffstat (limited to 'src/ui/predefine.hpp')
-rw-r--r--src/ui/predefine.hpp59
1 files changed, 59 insertions, 0 deletions
diff --git a/src/ui/predefine.hpp b/src/ui/predefine.hpp
new file mode 100644
index 00000000..03e98a98
--- /dev/null
+++ b/src/ui/predefine.hpp
@@ -0,0 +1,59 @@
+#pragma once
+
+#include "system_headers.hpp"
+
+#include "any_map.h"
+#include "application.hpp"
+
+namespace cru::ui::predefine
+{
+#define CRU_DEFINE_KEY(name, key) \
+ constexpr const wchar_t* key_##name = L#key;
+
+ //region BorderProperty
+ CRU_DEFINE_KEY(border_property_brush, BorderProperty_Brush)
+
+ //region Button
+ CRU_DEFINE_KEY(button_normal_border, Button_Normal_Border)
+ CRU_DEFINE_KEY(button_press_border, Button_Press_Border)
+
+ //region TextControl
+ CRU_DEFINE_KEY(text_control_selection_brush, TextControl_SelectionBrush)
+
+ //region TextBox
+ CRU_DEFINE_KEY(text_box_border, TextBox_Border)
+ CRU_DEFINE_KEY(text_box_text_brush, TextBox_TextBrush)
+ CRU_DEFINE_KEY(text_box_text_format, TextBox_TextFormat)
+ CRU_DEFINE_KEY(text_box_caret_brush, TextBox_CaretBrush)
+
+ //region TextBlock
+ CRU_DEFINE_KEY(text_block_text_brush, TextBlock_TextBrush)
+ CRU_DEFINE_KEY(text_block_text_format, TextBlock_TextFormat)
+
+ //region ToggleButton
+ CRU_DEFINE_KEY(toggle_button_on_brush, ToggleButton_On_Brush)
+ CRU_DEFINE_KEY(toggle_button_off_brush, ToggleButton_Off_Brush)
+
+#ifdef CRU_DEBUG_LAYOUT
+ //region debug
+ CRU_DEFINE_KEY(debug_layout_out_border_brush, Debug_Layout_Out_Border_Brush)
+ CRU_DEFINE_KEY(debug_layout_margin_brush, Debug_Layout_Margin_Brush)
+ CRU_DEFINE_KEY(debug_layout_padding_brush, Debug_Layout_Padding_Brush)
+#endif
+
+#undef CRU_DEFINE_KEY
+
+ void InitThemes(AnyMap* resource_map);
+
+ template<typename T>
+ T GetPredefineResource(const String& key)
+ {
+ return Application::GetInstance()->GetPredefineResourceMap()->GetValue<T>(key);
+ }
+
+ template<typename T>
+ Microsoft::WRL::ComPtr<T> GetPredefineResourceComPtr(const String& key)
+ {
+ return GetPredefineResource<Microsoft::WRL::ComPtr<T>>(key);
+ }
+}