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;
302 return gauge(float(image_index) * 0.05F); // NOLINT
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));
310 return vbox(std::move(lines));