250 |
251 |
251 Symbol symbol = ui_symbol_icons[name]; |
252 Symbol symbol = ui_symbol_icons[name]; |
252 SymbolIcon icon = SymbolIcon(symbol); |
253 SymbolIcon icon = SymbolIcon(symbol); |
253 return icon; |
254 return icon; |
254 } |
255 } |
|
256 |
|
257 |
|
258 // symbol icon implementation |
|
259 UiSymbolIcon::UiSymbolIcon(winrt::Microsoft::UI::Xaml::Controls::Symbol sym) { |
|
260 symbol = sym; |
|
261 } |
|
262 |
|
263 UiSymbolIcon::~UiSymbolIcon() { |
|
264 |
|
265 } |
|
266 |
|
267 winrt::Microsoft::UI::Xaml::Controls::IconElement UiSymbolIcon::getIcon() { |
|
268 return SymbolIcon(symbol); |
|
269 } |
|
270 |
|
271 // image icon implementation |
|
272 UiImageIcon::UiImageIcon(const char* uristr) { |
|
273 wchar_t* wuri = str2wstr(uristr, nullptr); |
|
274 Windows::Foundation::Uri uri{ wuri }; |
|
275 this->uri = uri; |
|
276 free(wuri); |
|
277 } |
|
278 |
|
279 UiImageIcon::~UiImageIcon() { |
|
280 |
|
281 } |
|
282 |
|
283 winrt::Microsoft::UI::Xaml::Controls::IconElement UiImageIcon::getIcon() { |
|
284 BitmapIcon icon = BitmapIcon(); |
|
285 icon.UriSource(uri); |
|
286 return icon; |
|
287 } |
|
288 |
|
289 UIEXPORT UiIcon* ui_icon(const char* name, size_t size) { |
|
290 Symbol symbol = ui_symbol_icons[name]; |
|
291 UiSymbolIcon* icon = new UiSymbolIcon(symbol); |
|
292 return icon; |
|
293 } |
|
294 |
|
295 |
|
296 UIEXPORT UiIcon* ui_imageicon(const char* file) { |
|
297 return new UiImageIcon(file); |
|
298 } |
|
299 |
|
300 UIEXPORT void ui_icon_free(UiIcon* icon) { |
|
301 delete icon; |
|
302 } |