aboutsummaryrefslogtreecommitdiff
path: root/src/ui/predefine.hpp
blob: 03e98a98e6876de7aebabbf79ec7943d377daddb (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
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);
    }
}