mirror of
https://github.com/daveallie/crosspoint-reader.git
synced 2026-02-04 14:47:37 +03:00
Battery icon, percentage text, progress bar, and chapter title were always drawn black because renderStatusBar() didn't use the inverse flag. Thread it through ScreenComponents and all status bar draw calls.
55 lines
1.8 KiB
C++
55 lines
1.8 KiB
C++
#pragma once
|
|
|
|
#include <cstddef>
|
|
#include <cstdint>
|
|
#include <vector>
|
|
|
|
class GfxRenderer;
|
|
|
|
struct TabInfo {
|
|
const char* label;
|
|
bool selected;
|
|
};
|
|
|
|
class ScreenComponents {
|
|
public:
|
|
static const int BOOK_PROGRESS_BAR_HEIGHT = 4;
|
|
|
|
struct PopupLayout {
|
|
int x;
|
|
int y;
|
|
int width;
|
|
int height;
|
|
};
|
|
|
|
static void drawBattery(const GfxRenderer& renderer, int left, int top, bool showPercentage = true,
|
|
bool black = true);
|
|
static void drawBookProgressBar(const GfxRenderer& renderer, size_t bookProgress, bool black = true);
|
|
|
|
static PopupLayout drawPopup(const GfxRenderer& renderer, const char* message);
|
|
|
|
static void fillPopupProgress(const GfxRenderer& renderer, const PopupLayout& layout, int progress);
|
|
|
|
// 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<TabInfo>& 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);
|
|
};
|