#pragma once #include #include #include class GfxRenderer; struct TabInfo { const char* label; bool selected; }; class ScreenComponents { public: static void drawBattery(const GfxRenderer& renderer, int left, int top, bool showPercentage = true); // Draw a horizontal tab bar with underline indicator for selected tab // Returns the height of the tab bar (for positioning content below) static int drawTabBar(const GfxRenderer& renderer, int y, const std::vector& tabs); // Draw a scroll/page indicator on the right side of the screen // Shows up/down arrows and current page fraction (e.g., "1/3") static void drawScrollIndicator(const GfxRenderer& renderer, int currentPage, int totalPages, int contentTop, int contentHeight); /** * Draw a progress bar with percentage text. * @param renderer The graphics renderer * @param x Left position of the bar * @param y Top position of the bar * @param width Width of the bar * @param height Height of the bar * @param current Current progress value * @param total Total value for 100% progress */ static void drawProgressBar(const GfxRenderer& renderer, int x, int y, int width, int height, size_t current, size_t total); };