FTXUI 6.1.9
C++ functional terminal UI.
Chargement...
Recherche...
Aucune correspondance
src/ftxui/dom/spinner.cpp
Aller à la documentation de ce fichier.
1// Copyright 2020 Arthur Sonzogni. All rights reserved.
2// L'utilisation de ce code source est régie par la licence MIT qui peut être trouvée dans
3// le fichier LICENSE.
4#include <cstddef> // for size_t
5#include <string> // for basic_string, string
6#include <utility> // for move
7#include <vector> // for vector, __alloc_traits<>::value_type
8
9#include "ftxui/dom/elements.hpp" // for Element, gauge, text, vbox, spinner
10
11namespace ftxui {
12
13namespace {
14// NOLINTNEXTLINE
15const std::vector<std::vector<std::vector<std::string>>> elements = {
16 {
17 {"Remplacé par la jauge"},
18 },
19 {
20 {". "},
21 {".. "},
22 {"..."},
23 },
24 {
25 {"|"},
26 {"/"},
27 {"-"},
28 {"\"},
29 },
30 {
31 {"+"},
32 {"x"},
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 {""},
60 {""},
61 {""},
62 {""},
63 {" "},
64 },
65 {
66 {""},
67 {""},
68 {""},
69 {""},
70 {""},
71 {""},
72 {""},
73 {""},
74 {""},
75 {""},
76 {""},
77 {""},
78 },
79 {
80 {""},
81 {""},
82 {""},
83 {""},
84 },
85 {
86 {""},
87 {""},
88 {""},
89 {""},
90 },
91 {
92 {""},
93 {""},
94 {""},
95 {""},
96 },
97 {
98 {""},
99 {""},
100 {""},
101 {""},
102 },
103 {
104 {""},
105 {""},
106 {""},
107 {""},
108 },
109 {
110 {""},
111 {""},
112 {""},
113 },
114 {
115 {""},
116 {""},
117 {""},
118 {""},
119 {""},
120 {""},
121 {""},
122 {""},
123 },
124 {
125 {""},
126 {""},
127 {""},
128 {""},
129 {""},
130 {""},
131 {""},
132 {""},
133 {""},
134 {""},
135 },
136 {
137 {"(*----------)"},
138 {"(-*---------"}
139 {"(--*--------)"},
140 {"("---*-------"}
141 {"("----*------)"},
142 {"("-----*-----"}
143 {"("------*----)"},
144 {"("-------*---"}
145 {"("--------*--)"},
146 {"("---------*-"}
147 {"("----------*)"},
148 {"("---------*-"}
149 {"("--------*--)"},
150 {"("-------*---"}
151 {"("------*----)"},
152 {"("-----*-----"}
153 {"("----*------)"},
154 {"("---*-------"}
155 {"(--*--------)"},
156 {"(-*---------"}
157 },
158 {
159 {"[ ]"},
160 {"[= ]"},
161 {"[== ]"},
162 {"[=== ]"},
163 {"[==== ]"},
164 {"[===== ]"},
165 {"[======]"},
166 {"[===== ]"},
167 {"[==== ]"},
168 {"[=== ]"},
169 {"[== ]"},
170 {"[= ]"},
171 },
172 {
173 {"[ ]"},
174 {"[= ]"},
175 {"[== ]"},
176 {"[=== ]"},
177 {"[==== ]"},
178 {"[===== ]"},
179 {"[======]"},
180 {"[ =====]"},
181 {"[ ====]"},
182 {"[ ===]"},
183 {"[ ==]"},
184 {"[ =]"},
185 },
186 {
187 {"[== ]"},
188 {"[== ]"},
189 {"[== ]"},
190 {"[== ]"},
191 {"[== ]"},
192 {" [== ]"},
193 {"[ == ]"},
194 {"[ == ]"},
195 {"[ ==]"},
196 {"[ ==]"},
197 {"[ ==]"},
198 {"[ ==]"},
199 {"[ ==]"},
200 {"[ ==] "},
201 {"[ == ]"},
202 {"[ == ]"},
203 },
204 {
205 {
206 " ─╮",
207 " │",
208 " ",
209 },
210 {
211 " ╮",
212 " │",
213 " ╯",
214 },
215 {
216 " ",
217 " │",
218 " ─╯",
219 },
220 {
221 " ",
222 " ",
223 "╰─╯",
224 },
225 {
226 " ",
227 "│ ",
228 "╰─ ",
229 },
230 {
231 "╭ ",
232 "│ ",
233 "╰ ",
234 },
235 {
236 "╭─ ",
237 "│ ",
238 " ",
239 },
240 {
241 "╭─╮",
242 " ",
243 " ",
244 },
245 },
246 {
247 {
248 " /\O ",
249 " /\/",
250 " /\ ",
251 " / \ ",
252 "LOL LOL",
253 },
254 {
255 " _O ",
256 " //|_ ",
257 " | ",
258 " /| ",
259 " LLOL ",
260 },
261 {
262 " O ",
263 " /_ ",
264 " |\ ",
265 " / | ",
266 " LOLLOL ",
267 },
268 },
269 {
270 {" ", "_______", " "},
271 {" ", "______/", " "},
272 {" _", "_____/ ", " "},
273 {" _ ", "____/ \", " "},
274 {" _ ", "___/ \ ", " \"},
275 {" _ ", "__/ \ ", " \_"},
276 {" _ ", "_/ \ ", " \_/"},
277 {" _ ", "/ \ _", " \_/ "},
278 {"_ ", " \ __", " \_/ "},
279 {" ", "\ ___", " \_/ "},
280 {" ", " ___", "\_/ "},
281 {" ", " _____", "_/ "},
282 {" ", " ______", "/ "},
283 {" ", "_______", " "},
284 },
285};
286
287} // namespace
288
289/// @brief Utile pour représenter l'effet du temps et/ou des événements. Cela affiche
290/// une "vidéo" en art ASCII.
291/// @param charset_index Le type de "vidéo".
292/// @param image_index L'"image" de la vidéo. Vous devez l'augmenter pour
293/// chaque "étape".
294/// @ingroup dom
295Element spinner(int charset_index, size_t image_index) {
296 if (charset_index <= 0) {
297 const int progress_size = 40;
298 image_index %= progress_size;
299 if (image_index > progress_size / 2) {
300 image_index = progress_size - image_index;
301 }
302 return gauge(float(image_index) * 0.05F); // NOLINT
303 }
304 charset_index %= int(elements.size());
305 image_index %= int(elements[charset_index].size());
306 std::vector<Element> lines;
307 for (const auto& it : elements[charset_index][image_index]) {
308 lines.push_back(text(it));
309 }
310 return vbox(std::move(lines));
311}
312
313} // namespace ftxui
L'espace de noms FTXUI ftxui::
Definition animation.hpp:10