--- a/ui/winui/icons.h Fri Oct 13 11:26:47 2023 +0200 +++ b/ui/winui/icons.h Fri Oct 13 15:20:54 2023 +0200 @@ -30,12 +30,33 @@ #include "../ui/toolkit.h" + + struct UiIcon { - winrt::Microsoft::UI::Xaml::Controls::IconElement icon; + //virtual ~UiIcon() = 0; + + virtual winrt::Microsoft::UI::Xaml::Controls::IconElement getIcon() = 0; }; -void ui_init_symbol_icons(); +struct UiSymbolIcon : UiIcon { + winrt::Microsoft::UI::Xaml::Controls::Symbol symbol; + + UiSymbolIcon(winrt::Microsoft::UI::Xaml::Controls::Symbol sym); + + ~UiSymbolIcon(); + + winrt::Microsoft::UI::Xaml::Controls::IconElement getIcon(); +}; -void ui_add_symbol_icon(std::string name, winrt::Microsoft::UI::Xaml::Controls::Symbol symbol); +struct UiImageIcon : UiIcon { + winrt::Windows::Foundation::Uri uri{ nullptr }; + + UiImageIcon(const char* uristr); + + ~UiImageIcon(); + + winrt::Microsoft::UI::Xaml::Controls::IconElement getIcon(); +}; + winrt::Microsoft::UI::Xaml::Controls::IconElement ui_get_icon(const char* name);