diff options
author | crupest <crupest@outlook.com> | 2018-11-09 22:59:38 +0800 |
---|---|---|
committer | crupest <crupest@outlook.com> | 2018-11-09 22:59:38 +0800 |
commit | ac4b0f8d438e7a7c2ecd836af8332b5da1e035c9 (patch) | |
tree | e5b886f1884fa56dd90059523b1f4dc730bb5003 /src/ui/predefine.hpp | |
parent | 4b219b569c16db6027dd36e4656152f261321c60 (diff) | |
download | cru-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.hpp | 59 |
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); + } +} |