mirror of
https://github.com/usatiuk/cardboy.git
synced 2025-10-28 23:27:49 +01:00
better lockscreen progress
This commit is contained in:
@@ -31,12 +31,12 @@ using Framebuffer = typename AppContext::Framebuffer;
|
|||||||
using Clock = typename AppContext::Clock;
|
using Clock = typename AppContext::Clock;
|
||||||
|
|
||||||
constexpr std::array<std::uint8_t, font16x8::kGlyphHeight> kArrowUpGlyph{
|
constexpr std::array<std::uint8_t, font16x8::kGlyphHeight> kArrowUpGlyph{
|
||||||
0b00011000, 0b00111100, 0b01111110, 0b11111111, 0b00011000, 0b00011000, 0b00011000, 0b00011000,
|
0b00010000, 0b00111000, 0b01111100, 0b11111110, 0b00010000, 0b00010000, 0b00010000, 0b00010000,
|
||||||
0b00011000, 0b00011000, 0b00011000, 0b00011000, 0b00011000, 0b00011000, 0b00000000, 0b00000000};
|
0b00010000, 0b00010000, 0b00010000, 0b00010000, 0b00010000, 0b00010000, 0b00000000, 0b00000000};
|
||||||
|
|
||||||
constexpr std::array<std::uint8_t, font16x8::kGlyphHeight> kArrowDownGlyph{
|
constexpr std::array<std::uint8_t, font16x8::kGlyphHeight> kArrowDownGlyph{
|
||||||
0b00000000, 0b00000000, 0b00011000, 0b00011000, 0b00011000, 0b00011000, 0b00011000, 0b00011000,
|
0b00000000, 0b00000000, 0b00010000, 0b00010000, 0b00010000, 0b00010000, 0b00010000, 0b00010000,
|
||||||
0b00011000, 0b00011000, 0b00011000, 0b11111111, 0b01111110, 0b00111100, 0b00011000, 0b00000000};
|
0b00010000, 0b00010000, 0b00010000, 0b11111110, 0b01111100, 0b00111000, 0b00010000, 0b00000000};
|
||||||
|
|
||||||
struct TimeSnapshot {
|
struct TimeSnapshot {
|
||||||
bool hasWallTime = false;
|
bool hasWallTime = false;
|
||||||
@@ -562,24 +562,18 @@ private:
|
|||||||
const std::string dateLine = formatDate(snap);
|
const std::string dateLine = formatDate(snap);
|
||||||
drawCenteredText(framebuffer, timeY + font16x8::kGlyphHeight * scaleTime + 16, dateLine, scaleSmall, 1);
|
drawCenteredText(framebuffer, timeY + font16x8::kGlyphHeight * scaleTime + 16, dateLine, scaleSmall, 1);
|
||||||
|
|
||||||
const std::string instruction = holdActive ? "KEEP HOLDING A+SELECT" : "HOLD A+SELECT";
|
const std::string instruction = "HOLD A+SELECT TO UNLOCK";
|
||||||
const int instructionWidth = font16x8::measureText(instruction, scaleSmall, 1);
|
const int instructionWidth = font16x8::measureText(instruction, scaleSmall, 1);
|
||||||
const int barHeight = 14;
|
const int barHeight = 18;
|
||||||
const int barY = framebuffer.height() - 24;
|
const int barY = framebuffer.height() - 30;
|
||||||
const int textY = barY + (barHeight - textLineHeight) / 2;
|
const int textY = barY + (barHeight - textLineHeight) / 2 + 1;
|
||||||
const int textX = 8;
|
drawCenteredText(framebuffer, textY, instruction, scaleSmall, 1);
|
||||||
font16x8::drawText(framebuffer, textX, textY, instruction, scaleSmall, true, 1);
|
|
||||||
|
|
||||||
int barX = textX + instructionWidth + 12;
|
const int barWidth = framebuffer.width() - 64;
|
||||||
int barWidth = framebuffer.width() - barX - 8;
|
const int barX = 32;
|
||||||
if (barWidth < 40) {
|
|
||||||
barWidth = 40;
|
|
||||||
barX = std::min(barX, framebuffer.width() - barWidth - 8);
|
|
||||||
}
|
|
||||||
|
|
||||||
drawRectOutline(framebuffer, barX, barY, barWidth, barHeight);
|
|
||||||
|
|
||||||
if (holdActive || holdProgressMs > 0) {
|
if (holdActive || holdProgressMs > 0) {
|
||||||
|
drawRectOutline(framebuffer, barX, barY, barWidth, barHeight);
|
||||||
const int innerWidth = barWidth - 2;
|
const int innerWidth = barWidth - 2;
|
||||||
const int innerHeight = barHeight - 2;
|
const int innerHeight = barHeight - 2;
|
||||||
const float ratio = std::clamp(holdProgressMs / static_cast<float>(kUnlockHoldMs), 0.0f, 1.0f);
|
const float ratio = std::clamp(holdProgressMs / static_cast<float>(kUnlockHoldMs), 0.0f, 1.0f);
|
||||||
|
|||||||
Reference in New Issue
Block a user