282Element spinner(int charset_index, size_t image_index) {
283 if (charset_index <= 0) {
284 const int progress_size = 40;
285 image_index %= progress_size;
286 if (image_index > progress_size / 2) {
287 image_index = progress_size - image_index;
289 return gauge(float(image_index) * 0.05F); // NOLINT
291 charset_index %= int(elements.size());
292 image_index %= int(elements[charset_index].size());
293 std::vector<Element> lines;
294 for (const auto& it : elements[charset_index][image_index]) {
295 lines.push_back(text(it));
297 return vbox(std::move(lines));