ui/winui/icons.cpp

branch
newapi
changeset 213
7e39db525fd9
child 215
1bd5534c395d
equal deleted inserted replaced
212:ad5c74af14c4 213:7e39db525fd9
1 /*
2 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
3 *
4 * Copyright 2017 Olaf Wintermann. All rights reserved.
5 *
6 * Redistribution and use in source and binary forms, with or without
7 * modification, are permitted provided that the following conditions are met:
8 *
9 * 1. Redistributions of source code must retain the above copyright
10 * notice, this list of conditions and the following disclaimer.
11 *
12 * 2. Redistributions in binary form must reproduce the above copyright
13 * notice, this list of conditions and the following disclaimer in the
14 * documentation and/or other materials provided with the distribution.
15 *
16 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
17 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
18 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
19 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
20 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
21 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
22 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
23 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
24 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
25 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
26 * POSSIBILITY OF SUCH DAMAGE.
27 */
28
29 #include "pch.h"
30
31 #include "icons.h"
32
33 #include <stdlib.h>
34 #include <string.h>
35
36
37 using namespace winrt;
38 using namespace Microsoft::UI::Xaml;
39 using namespace Microsoft::UI::Xaml::Controls;
40 using namespace Windows::UI::Xaml::Interop;
41 using namespace winrt::Windows::Foundation;
42 using namespace winrt::Microsoft::UI::Xaml::Controls::Primitives;
43
44
45 std::unordered_map<std::string, Symbol> ui_symbol_icons = {
46 {"Accept", Symbol::Accept },
47 {"Account", Symbol::Account },
48 {"Add", Symbol::Add },
49 {"AddFriend", Symbol::AddFriend },
50 {"Admin", Symbol::Admin },
51 {"AlignCenter", Symbol::AlignCenter },
52 {"AlignLeft", Symbol::AlignLeft },
53 {"AlignRight", Symbol::AlignRight },
54 {"AllApps", Symbol::AllApps },
55 {"Attach", Symbol::Attach },
56 {"AttachCamera", Symbol::AttachCamera },
57 {"Audio", Symbol::Audio },
58 {"Back", Symbol::Back },
59 {"BackToWindow", Symbol::BackToWindow },
60 {"BlockContact", Symbol::BlockContact },
61 {"Bold", Symbol::Bold },
62 {"Bookmarks", Symbol::Bookmarks },
63 {"BrowsePhotos", Symbol::BrowsePhotos },
64 {"Bullets", Symbol::Bullets },
65 {"Calculator", Symbol::Calculator },
66 {"Calendar", Symbol::Calendar },
67 {"CalendarDay", Symbol::CalendarDay },
68 {"CalendarReply", Symbol::CalendarReply },
69 {"CalendarWeek", Symbol::CalendarWeek },
70 {"Camera", Symbol::Camera },
71 {"Cancel", Symbol::Cancel },
72 {"Caption", Symbol::Caption },
73 {"CellPhone", Symbol::CellPhone },
74 {"Character", Symbol::Character },
75 {"Clear", Symbol::Clear },
76 {"ClearSelection", Symbol::ClearSelection },
77 {"Clock", Symbol::Clock },
78 {"ClosedCaption", Symbol::ClosedCaption },
79 {"ClosePane", Symbol::ClosePane },
80 {"Comment", Symbol::Comment },
81 {"Contact", Symbol::Contact },
82 {"Contact2", Symbol::Contact2 },
83 {"ContactInfo", Symbol::ContactInfo },
84 {"ContactPresence", Symbol::ContactPresence },
85 {"Copy", Symbol::Copy },
86 {"Crop", Symbol::Crop },
87 {"Cut", Symbol::Cut },
88 {"Delete", Symbol::Delete },
89 {"Directions", Symbol::Directions },
90 {"DisableUpdates", Symbol::DisableUpdates },
91 {"DisconnectDrive", Symbol::DisconnectDrive },
92 {"Dislike", Symbol::Dislike },
93 {"DockBottom", Symbol::DockBottom },
94 {"DockLeft", Symbol::DockLeft },
95 {"DockRight", Symbol::DockRight },
96 {"Document", Symbol::Document },
97 {"Download", Symbol::Download },
98 {"Edit", Symbol::Edit },
99 {"Emoji", Symbol::Emoji },
100 {"Emoji2", Symbol::Emoji2 },
101 {"Favorite", Symbol::Favorite },
102 {"Filter", Symbol::Filter },
103 {"Find", Symbol::Find },
104 {"Flag", Symbol::Flag },
105 {"Folder", Symbol::Folder },
106 {"Font", Symbol::Font },
107 {"FontColor", Symbol::FontColor },
108 {"FontDecrease", Symbol::FontDecrease },
109 {"FontIncrease", Symbol::FontIncrease },
110 {"FontSize", Symbol::FontSize },
111 {"Forward", Symbol::Forward },
112 {"FourBars", Symbol::FourBars },
113 {"FullScreen", Symbol::FullScreen },
114 {"GlobalNavigationButton", Symbol::GlobalNavigationButton },
115 {"Globe", Symbol::Globe },
116 {"Go", Symbol::Go },
117 {"GoToStart", Symbol::GoToStart },
118 {"GoToToday", Symbol::GoToToday },
119 {"HangUp", Symbol::HangUp },
120 {"Help", Symbol::Help },
121 {"HideBcc", Symbol::HideBcc },
122 {"Highlight", Symbol::Highlight },
123 {"Home", Symbol::Home },
124 {"Import", Symbol::Import },
125 {"ImportAll", Symbol::ImportAll },
126 {"Important", Symbol::Important },
127 {"Italic", Symbol::Italic },
128 {"Keyboard", Symbol::Keyboard },
129 {"LeaveChat", Symbol::LeaveChat },
130 {"Library", Symbol::Library },
131 {"Like", Symbol::Like },
132 {"LikeDislike", Symbol::LikeDislike },
133 {"Link", Symbol::Link },
134 {"List", Symbol::List },
135 {"Mail", Symbol::Mail },
136 {"MailFilled", Symbol::MailFilled },
137 {"MailForward", Symbol::MailForward },
138 {"MailReply", Symbol::MailReply },
139 {"MailReplyAll", Symbol::MailReplyAll },
140 {"Manage", Symbol::Manage },
141 {"Map", Symbol::Map },
142 {"MapDrive", Symbol::MapDrive },
143 {"MapPin", Symbol::MapPin },
144 {"Memo", Symbol::Memo },
145 {"Message", Symbol::Message },
146 {"Microphone", Symbol::Microphone },
147 {"More", Symbol::More },
148 {"MoveToFolder", Symbol::MoveToFolder },
149 {"MusicInfo", Symbol::MusicInfo },
150 {"Mute", Symbol::Mute },
151 {"NewFolder", Symbol::NewFolder },
152 {"NewWindow", Symbol::NewWindow },
153 {"Next", Symbol::Next },
154 {"OneBar", Symbol::OneBar },
155 {"OpenFile", Symbol::OpenFile },
156 {"OpenLocal", Symbol::OpenLocal },
157 {"OpenPane", Symbol::OpenPane },
158 {"OpenWith", Symbol::OpenWith },
159 {"Orientation", Symbol::Orientation },
160 {"OtherUser", Symbol::OtherUser },
161 {"OutlineStar", Symbol::OutlineStar },
162 {"Page", Symbol::Page },
163 {"Page2", Symbol::Page2 },
164 {"Paste", Symbol::Paste },
165 {"Pause", Symbol::Pause },
166 {"People", Symbol::People },
167 {"Permissions", Symbol::Permissions },
168 {"Phone", Symbol::Phone },
169 {"PhoneBook", Symbol::PhoneBook },
170 {"Pictures", Symbol::Pictures },
171 {"Pin", Symbol::Pin },
172 {"Placeholder", Symbol::Placeholder },
173 {"Play", Symbol::Play },
174 {"PostUpdate", Symbol::PostUpdate },
175 {"Preview", Symbol::Preview },
176 {"PreviewLink", Symbol::PreviewLink },
177 {"Previous", Symbol::Previous },
178 {"Print", Symbol::Print },
179 {"Priority", Symbol::Priority },
180 {"ProtectedDocument", Symbol::ProtectedDocument },
181 {"Read", Symbol::Read },
182 {"Redo", Symbol::Redo },
183 {"Refresh", Symbol::Refresh },
184 {"Remote", Symbol::Remote },
185 {"Remove", Symbol::Remove },
186 {"Rename", Symbol::Rename },
187 {"Repair", Symbol::Repair },
188 {"RepeatAll", Symbol::RepeatAll },
189 {"RepeatOne", Symbol::RepeatOne },
190 {"ReportHacked", Symbol::ReportHacked },
191 {"ReShare", Symbol::ReShare },
192 {"Rotate", Symbol::Rotate },
193 {"RotateCamera", Symbol::RotateCamera },
194 {"Save", Symbol::Save },
195 {"SaveLocal", Symbol::SaveLocal },
196 {"Scan", Symbol::Scan },
197 {"SelectAll", Symbol::SelectAll },
198 {"Send", Symbol::Send },
199 {"SetLockScreen", Symbol::SetLockScreen },
200 {"SetTile", Symbol::SetTile },
201 {"Setting", Symbol::Setting },
202 {"Share", Symbol::Share },
203 {"Shop", Symbol::Shop },
204 {"ShowBcc", Symbol::ShowBcc },
205 {"ShowResults", Symbol::ShowResults },
206 {"Shuffle", Symbol::Shuffle },
207 {"SlideShow", Symbol::SlideShow },
208 {"SolidStar", Symbol::SolidStar },
209 {"Sort", Symbol::Sort },
210 {"Stop", Symbol::Stop },
211 {"StopSlideShow", Symbol::StopSlideShow },
212 {"Street", Symbol::Street },
213 {"Switch", Symbol::Switch },
214 {"SwitchApps", Symbol::SwitchApps },
215 {"Sync", Symbol::Sync },
216 {"SyncFolder", Symbol::SyncFolder },
217 {"Tag", Symbol::Tag },
218 {"Target", Symbol::Target },
219 {"ThreeBars", Symbol::ThreeBars },
220 {"TouchPointer", Symbol::TouchPointer },
221 {"Trim", Symbol::Trim },
222 {"TwoBars", Symbol::TwoBars },
223 {"TwoPage", Symbol::TwoPage },
224 {"Underline", Symbol::Underline },
225 {"Undo", Symbol::Undo },
226 {"UnFavorite", Symbol::UnFavorite },
227 {"UnPin", Symbol::UnPin },
228 {"UnSyncFolder", Symbol::UnSyncFolder },
229 {"Up", Symbol::Up },
230 {"Upload", Symbol::Upload },
231 {"Video", Symbol::Video },
232 {"VideoChat", Symbol::VideoChat },
233 {"View", Symbol::View },
234 {"ViewAll", Symbol::ViewAll },
235 {"Volume", Symbol::Volume },
236 {"WebCam", Symbol::WebCam },
237 {"World", Symbol::World },
238 {"XboxOneConsole", Symbol::XboxOneConsole },
239 {"ZeroBars", Symbol::ZeroBars },
240 {"Zoom", Symbol::Zoom },
241 {"ZoomIn", Symbol::ZoomIn },
242 {"ZoomOut", Symbol::ZoomOut }
243 };
244
245 winrt::Microsoft::UI::Xaml::Controls::IconElement ui_get_icon(const char* name) {
246 if (ui_symbol_icons.find(name) == ui_symbol_icons.end()) {
247 SymbolIcon no_icon = { nullptr };
248 return no_icon;
249 }
250
251 Symbol symbol = ui_symbol_icons[name];
252 SymbolIcon icon = SymbolIcon(symbol);
253 return icon;
254 }

mercurial