Center row icons between title and subtitle

When a row has a subtitle, position the icon at the midpoint between the title and subtitle text centers instead of aligning only with the title. This prevents icons from appearing too high when subtitles are present.
This commit is contained in:
Justin Mitchell
2026-06-17 01:41:10 -04:00
parent e567620003
commit 6648a980cb
2 changed files with 17 additions and 10 deletions
+8 -8
View File
@@ -75,15 +75,15 @@ static const freeink::Icon icon_transfer_40 = {40, 40, 19, icon_transfer_40_bits
static const uint8_t icon_transfer_48_bits[] = {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFC, 0x7F, 0xFF, 0xFF, 0xFF, 0xFF, 0xF8, 0x1F, 0xFF, 0xFF, 0xFF, 0xFF, 0xF0, 0x07, 0xFF, 0xFF, 0xFF, 0xFF, 0xF0, 0x01, 0xFF, 0xFF, 0xFF, 0xFF, 0xF0, 0x00, 0x7F, 0xFF, 0xFF, 0xFF, 0xF8, 0x40, 0x1F, 0xFF, 0xFF, 0xFF, 0xF8, 0x70, 0x07, 0xFF, 0xFF, 0xFF, 0xFC, 0x3C, 0x01, 0xFF, 0xFF, 0xFF, 0xFC, 0x3F, 0x80, 0x3F, 0xFF, 0xFF, 0xFC, 0x3F, 0xE0, 0x0F, 0xFF, 0xFF, 0xFE, 0x1F, 0xF8, 0x03, 0xFF, 0xFF, 0xFE, 0x1F, 0xFE, 0x00, 0xFF, 0xFF, 0xFE, 0x0F, 0xFF, 0x80, 0x3F, 0xFF, 0xFF, 0x0F, 0xFF, 0xE0, 0x0F, 0xFF, 0xFF, 0x0F, 0xFF, 0xF8, 0x03, 0xFF, 0xFF, 0x87, 0xFF, 0xFE, 0x00, 0xFF, 0xFF, 0x87, 0xFF, 0xFF, 0xC0, 0x3F, 0xFF, 0x87, 0xFF, 0xFF, 0xF0, 0x0F, 0xFF, 0xC0, 0x00, 0x00, 0x00, 0x03, 0xFF, 0xC0, 0x00, 0x00, 0x00, 0x03, 0xFF, 0xC0, 0x00, 0x00, 0x00, 0x03, 0xFF, 0xC0, 0x00, 0x00, 0x00, 0x03, 0xFF, 0x87, 0xFF, 0xFF, 0xF0, 0x0F, 0xFF, 0x87, 0xFF, 0xFF, 0xC0, 0x3F, 0xFF, 0x87, 0xFF, 0xFE, 0x00, 0xFF, 0xFF, 0x0F, 0xFF, 0xF8, 0x03, 0xFF, 0xFF, 0x0F, 0xFF, 0xE0, 0x0F, 0xFF, 0xFE, 0x0F, 0xFF, 0x80, 0x3F, 0xFF, 0xFE, 0x1F, 0xFE, 0x00, 0xFF, 0xFF, 0xFE, 0x1F, 0xF8, 0x03, 0xFF, 0xFF, 0xFC, 0x3F, 0xE0, 0x0F, 0xFF, 0xFF, 0xFC, 0x3F, 0x80, 0x3F, 0xFF, 0xFF, 0xFC, 0x3C, 0x01, 0xFF, 0xFF, 0xFF, 0xF8, 0x70, 0x07, 0xFF, 0xFF, 0xFF, 0xF8, 0x40, 0x1F, 0xFF, 0xFF, 0xFF, 0xF0, 0x00, 0x7F, 0xFF, 0xFF, 0xFF, 0xF0, 0x01, 0xFF, 0xFF, 0xFF, 0xFF, 0xF0, 0x07, 0xFF, 0xFF, 0xFF, 0xFF, 0xF8, 0x1F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFC, 0x7F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF};
static const freeink::Icon icon_transfer_48 = {48, 48, 24, icon_transfer_48_bits};
// library (lucide: library-big)
static const uint8_t icon_library_24_bits[] = {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xE0, 0x19, 0xFF, 0xC0, 0x00, 0xFF, 0xCC, 0xC4, 0xFF, 0xCC, 0xCE, 0x7F, 0xCC, 0xC6, 0x7F, 0xCC, 0xC6, 0x7F, 0xCC, 0xC7, 0x3F, 0xCC, 0xC3, 0x3F, 0xCC, 0xC3, 0x3F, 0xCC, 0xC3, 0x9F, 0xCC, 0xC9, 0x9F, 0xCC, 0xC9, 0x9F, 0xCC, 0xCD, 0xCF, 0xCC, 0xCC, 0xCF, 0xCC, 0xCC, 0xE7, 0xCC, 0xCE, 0x67, 0xCC, 0xCE, 0x67, 0xCC, 0xCE, 0x67, 0xC0, 0x0F, 0x07, 0xE0, 0x1F, 0x1F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF};
// library (lucide: library)
static const uint8_t icon_library_24_bits[] = {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xE7, 0xFF, 0xFF, 0xE7, 0xFF, 0xFF, 0xE7, 0xE6, 0x7F, 0xE7, 0xE6, 0x7F, 0xE6, 0x66, 0x7F, 0xE6, 0x67, 0x3F, 0xE6, 0x67, 0x3F, 0xE6, 0x67, 0x3F, 0xE6, 0x67, 0x9F, 0xE6, 0x67, 0x9F, 0xE6, 0x67, 0x9F, 0xE6, 0x67, 0x9F, 0xE6, 0x67, 0xCF, 0xE6, 0x67, 0xCF, 0xE6, 0x67, 0xCF, 0xE6, 0x67, 0xE7, 0xE6, 0x67, 0xE7, 0xE6, 0x67, 0xE7, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF};
static const freeink::Icon icon_library_24 = {24, 24, 12, icon_library_24_bits};
static const uint8_t icon_library_32_bits[] = {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF0, 0x01, 0x0F, 0xFF, 0xE0, 0x00, 0x07, 0xFF, 0xE7, 0x18, 0x07, 0xFF, 0xE7, 0x18, 0xE3, 0xFF, 0xE7, 0x18, 0xE3, 0xFF, 0xE7, 0x18, 0x71, 0xFF, 0xE7, 0x18, 0x71, 0xFF, 0xE7, 0x18, 0x79, 0xFF, 0xE7, 0x18, 0x38, 0xFF, 0xE7, 0x18, 0x38, 0xFF, 0xE7, 0x18, 0x1C, 0xFF, 0xE7, 0x18, 0x1C, 0x7F, 0xE7, 0x18, 0x9C, 0x7F, 0xE7, 0x18, 0x8E, 0x7F, 0xE7, 0x18, 0x8E, 0x3F, 0xE7, 0x18, 0xCE, 0x3F, 0xE7, 0x18, 0xC7, 0x3F, 0xE7, 0x18, 0xC7, 0x1F, 0xE7, 0x18, 0xE7, 0x9F, 0xE7, 0x18, 0xE3, 0x8F, 0xE7, 0x18, 0xE3, 0x8F, 0xE7, 0x18, 0xF1, 0xCF, 0xE7, 0x18, 0xF1, 0xCF, 0xE7, 0x18, 0xF8, 0x0F, 0xE0, 0x00, 0xF8, 0x0F, 0xF0, 0x01, 0xFC, 0x3F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF};
static const freeink::Icon icon_library_32 = {32, 32, 16, icon_library_32_bits};
static const uint8_t icon_library_40_bits[] = {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFC, 0x00, 0x7F, 0xFF, 0xFF, 0xF0, 0x00, 0x10, 0x3F, 0xFF, 0xF0, 0x00, 0x00, 0x3F, 0xFF, 0xE0, 0x00, 0x00, 0x1F, 0xFF, 0xE1, 0xC7, 0x87, 0x1F, 0xFF, 0xE1, 0xC7, 0x8F, 0x1F, 0xFF, 0xE1, 0xC7, 0x87, 0x0F, 0xFF, 0xE1, 0xC7, 0x87, 0x8F, 0xFF, 0xE1, 0xC7, 0x87, 0x8F, 0xFF, 0xE1, 0xC7, 0x83, 0x87, 0xFF, 0xE1, 0xC7, 0x83, 0xC7, 0xFF, 0xE1, 0xC7, 0x83, 0xC3, 0xFF, 0xE1, 0xC7, 0x81, 0xE3, 0xFF, 0xE1, 0xC7, 0x81, 0xE3, 0xFF, 0xE1, 0xC7, 0x81, 0xE1, 0xFF, 0xE1, 0xC7, 0x80, 0xF1, 0xFF, 0xE1, 0xC7, 0x88, 0xF1, 0xFF, 0xE1, 0xC7, 0x88, 0x70, 0xFF, 0xE1, 0xC7, 0x8C, 0x78, 0xFF, 0xE1, 0xC7, 0x8C, 0x78, 0xFF, 0xE1, 0xC7, 0x8C, 0x38, 0x7F, 0xE1, 0xC7, 0x8E, 0x3C, 0x7F, 0xE1, 0xC7, 0x8E, 0x3C, 0x3F, 0xE1, 0xC7, 0x8E, 0x1C, 0x3F, 0xE1, 0xC7, 0x8F, 0x1E, 0x3F, 0xE1, 0xC7, 0x8F, 0x1E, 0x1F, 0xE1, 0xC7, 0x8F, 0x0F, 0x1F, 0xE1, 0xC7, 0x8F, 0x8F, 0x1F, 0xE1, 0xC7, 0x8F, 0x87, 0x0F, 0xE1, 0xC7, 0x8F, 0x87, 0x0F, 0xE0, 0x00, 0x0F, 0xC0, 0x1F, 0xF0, 0x00, 0x0F, 0xC0, 0x1F, 0xF0, 0x00, 0x1F, 0xE0, 0x7F, 0xFC, 0x00, 0x7F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF};
static const freeink::Icon icon_library_40 = {40, 40, 20, icon_library_40_bits};
static const uint8_t icon_library_48_bits[] = {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFC, 0x00, 0x03, 0xC7, 0xFF, 0xFF, 0xF8, 0x00, 0x00, 0x01, 0xFF, 0xFF, 0xF0, 0x00, 0x00, 0x01, 0xFF, 0xFF, 0xF0, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xF0, 0xF0, 0xF0, 0x10, 0xFF, 0xFF, 0xF0, 0xF0, 0xF0, 0xF8, 0x7F, 0xFF, 0xF0, 0xF0, 0xF0, 0xF8, 0x7F, 0xFF, 0xF0, 0xF0, 0xF0, 0x78, 0x7F, 0xFF, 0xF0, 0xF0, 0xF0, 0x7C, 0x3F, 0xFF, 0xF0, 0xF0, 0xF0, 0x7C, 0x3F, 0xFF, 0xF0, 0xF0, 0xF0, 0x3C, 0x3F, 0xFF, 0xF0, 0xF0, 0xF0, 0x3E, 0x1F, 0xFF, 0xF0, 0xF0, 0xF0, 0x1E, 0x1F, 0xFF, 0xF0, 0xF0, 0xF0, 0x1E, 0x0F, 0xFF, 0xF0, 0xF0, 0xF0, 0x1F, 0x0F, 0xFF, 0xF0, 0xF0, 0xF0, 0x0F, 0x0F, 0xFF, 0xF0, 0xF0, 0xF0, 0x0F, 0x07, 0xFF, 0xF0, 0xF0, 0xF0, 0x0F, 0x87, 0xFF, 0xF0, 0xF0, 0xF0, 0x87, 0x87, 0xFF, 0xF0, 0xF0, 0xF0, 0x87, 0xC3, 0xFF, 0xF0, 0xF0, 0xF0, 0x87, 0xC3, 0xFF, 0xF0, 0xF0, 0xF0, 0xC3, 0xC3, 0xFF, 0xF0, 0xF0, 0xF0, 0xC3, 0xE1, 0xFF, 0xF0, 0xF0, 0xF0, 0xC1, 0xE1, 0xFF, 0xF0, 0xF0, 0xF0, 0xE1, 0xE1, 0xFF, 0xF0, 0xF0, 0xF0, 0xE1, 0xF0, 0xFF, 0xF0, 0xF0, 0xF0, 0xE0, 0xF0, 0xFF, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0x7F, 0xF0, 0xF0, 0xF0, 0xF0, 0xF8, 0x7F, 0xF0, 0xF0, 0xF0, 0xF8, 0x78, 0x7F, 0xF0, 0xF0, 0xF0, 0xF8, 0x7C, 0x3F, 0xF0, 0xF0, 0xF0, 0xF8, 0x7C, 0x3F, 0xF0, 0xF0, 0xF0, 0xFC, 0x3C, 0x3F, 0xF0, 0xF0, 0xF0, 0xFC, 0x3E, 0x1F, 0xF0, 0xF0, 0xF0, 0xFC, 0x3E, 0x1F, 0xF0, 0xF0, 0xF0, 0xFE, 0x10, 0x1F, 0xF0, 0x00, 0x00, 0xFE, 0x00, 0x3F, 0xF0, 0x00, 0x00, 0xFF, 0x00, 0x7F, 0xF8, 0x00, 0x01, 0xFF, 0x01, 0xFF, 0xFC, 0x00, 0x03, 0xFF, 0xC7, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF};
static const freeink::Icon icon_library_48 = {48, 48, 24, icon_library_48_bits};
static const uint8_t icon_library_32_bits[] = {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF3, 0xFF, 0xFF, 0xFF, 0xF1, 0xFF, 0xFF, 0xFF, 0xF1, 0xFF, 0xFF, 0xFF, 0xF1, 0xFE, 0x73, 0xFF, 0xF1, 0xFE, 0x71, 0xFF, 0xF1, 0xDE, 0x71, 0xFF, 0xF1, 0x8E, 0x79, 0xFF, 0xF1, 0x8E, 0x78, 0xFF, 0xF1, 0x8E, 0x78, 0xFF, 0xF1, 0x8E, 0x7C, 0xFF, 0xF1, 0x8E, 0x7C, 0x7F, 0xF1, 0x8E, 0x7C, 0x7F, 0xF1, 0x8E, 0x7C, 0x7F, 0xF1, 0x8E, 0x7E, 0x7F, 0xF1, 0x8E, 0x7E, 0x3F, 0xF1, 0x8E, 0x7E, 0x3F, 0xF1, 0x8E, 0x7F, 0x3F, 0xF1, 0x8E, 0x7F, 0x1F, 0xF1, 0x8E, 0x7F, 0x1F, 0xF1, 0x8E, 0x7F, 0x1F, 0xF1, 0x8E, 0x7F, 0x9F, 0xF1, 0x8E, 0x7F, 0x8F, 0xF1, 0x8E, 0x7F, 0x8F, 0xF3, 0xCE, 0x7F, 0xCF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF};
static const freeink::Icon icon_library_32 = {32, 32, 17, icon_library_32_bits};
static const uint8_t icon_library_40_bits[] = {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFC, 0xFF, 0xFF, 0xFF, 0xFF, 0xF8, 0xFF, 0xFF, 0xFF, 0xFF, 0xF8, 0xFF, 0xFF, 0xFF, 0xFF, 0xF8, 0xFF, 0xFF, 0xDF, 0xFF, 0xF8, 0xFF, 0xE7, 0x8F, 0xFF, 0xF8, 0xFF, 0xC3, 0x8F, 0xFF, 0xF8, 0xFF, 0xC3, 0x87, 0xFF, 0xF8, 0xF1, 0xC3, 0xC7, 0xFF, 0xF8, 0xF1, 0xC3, 0xC7, 0xFF, 0xF8, 0xF1, 0xC3, 0xC3, 0xFF, 0xF8, 0xF1, 0xC3, 0xE3, 0xFF, 0xF8, 0xF1, 0xC3, 0xE3, 0xFF, 0xF8, 0xF1, 0xC3, 0xE3, 0xFF, 0xF8, 0xF1, 0xC3, 0xE1, 0xFF, 0xF8, 0xF1, 0xC3, 0xF1, 0xFF, 0xF8, 0xF1, 0xC3, 0xF1, 0xFF, 0xF8, 0xF1, 0xC3, 0xF0, 0xFF, 0xF8, 0xF1, 0xC3, 0xF8, 0xFF, 0xF8, 0xF1, 0xC3, 0xF8, 0xFF, 0xF8, 0xF1, 0xC3, 0xF8, 0xFF, 0xF8, 0xF1, 0xC3, 0xF8, 0x7F, 0xF8, 0xF1, 0xC3, 0xFC, 0x7F, 0xF8, 0xF1, 0xC3, 0xFC, 0x7F, 0xF8, 0xF1, 0xC3, 0xFC, 0x3F, 0xF8, 0xF1, 0xC3, 0xFE, 0x3F, 0xF8, 0xF1, 0xC3, 0xFE, 0x3F, 0xF8, 0xF1, 0xC3, 0xFE, 0x3F, 0xF8, 0xF1, 0xC3, 0xFE, 0x1F, 0xF8, 0xF1, 0xC3, 0xFF, 0x1F, 0xFC, 0xF3, 0xE7, 0xFF, 0x3F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF};
static const freeink::Icon icon_library_40 = {40, 40, 21, icon_library_40_bits};
static const uint8_t icon_library_48_bits[] = {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0x7F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFC, 0x3F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFC, 0x3F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFC, 0x3F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFC, 0x3F, 0xFE, 0x7E, 0x7F, 0xFF, 0xFC, 0x3F, 0xFC, 0x3C, 0x3F, 0xFF, 0xFC, 0x3F, 0xFC, 0x3C, 0x3F, 0xFF, 0xFC, 0x3F, 0xFC, 0x3C, 0x3F, 0xFF, 0xFC, 0x3E, 0x7C, 0x3E, 0x1F, 0xFF, 0xFC, 0x3C, 0x3C, 0x3E, 0x1F, 0xFF, 0xFC, 0x3C, 0x3C, 0x3E, 0x1F, 0xFF, 0xFC, 0x3C, 0x3C, 0x3F, 0x0F, 0xFF, 0xFC, 0x3C, 0x3C, 0x3F, 0x0F, 0xFF, 0xFC, 0x3C, 0x3C, 0x3F, 0x0F, 0xFF, 0xFC, 0x3C, 0x3C, 0x3F, 0x0F, 0xFF, 0xFC, 0x3C, 0x3C, 0x3F, 0x87, 0xFF, 0xFC, 0x3C, 0x3C, 0x3F, 0x87, 0xFF, 0xFC, 0x3C, 0x3C, 0x3F, 0x87, 0xFF, 0xFC, 0x3C, 0x3C, 0x3F, 0xC3, 0xFF, 0xFC, 0x3C, 0x3C, 0x3F, 0xC3, 0xFF, 0xFC, 0x3C, 0x3C, 0x3F, 0xC3, 0xFF, 0xFC, 0x3C, 0x3C, 0x3F, 0xC3, 0xFF, 0xFC, 0x3C, 0x3C, 0x3F, 0xE1, 0xFF, 0xFC, 0x3C, 0x3C, 0x3F, 0xE1, 0xFF, 0xFC, 0x3C, 0x3C, 0x3F, 0xE1, 0xFF, 0xFC, 0x3C, 0x3C, 0x3F, 0xF0, 0xFF, 0xFC, 0x3C, 0x3C, 0x3F, 0xF0, 0xFF, 0xFC, 0x3C, 0x3C, 0x3F, 0xF0, 0xFF, 0xFC, 0x3C, 0x3C, 0x3F, 0xF0, 0xFF, 0xFC, 0x3C, 0x3C, 0x3F, 0xF8, 0x7F, 0xFC, 0x3C, 0x3C, 0x3F, 0xF8, 0x7F, 0xFC, 0x3C, 0x3C, 0x3F, 0xF8, 0x7F, 0xFC, 0x3C, 0x3C, 0x3F, 0xFC, 0x3F, 0xFC, 0x3C, 0x3C, 0x3F, 0xFC, 0x3F, 0xFC, 0x3C, 0x3C, 0x3F, 0xFC, 0x3F, 0xFE, 0x7E, 0x7E, 0x7F, 0xFE, 0x7F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF};
static const freeink::Icon icon_library_48 = {48, 48, 25, icon_library_48_bits};
// wifi (lucide: wifi)
static const uint8_t icon_wifi_24_bits[] = {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x01, 0xFF, 0xFC, 0x00, 0x1F, 0xF0, 0xFF, 0x0F, 0xC3, 0xFF, 0xC3, 0x8F, 0xFF, 0xF1, 0x9F, 0x81, 0xF9, 0xFE, 0x00, 0x7F, 0xF8, 0x7E, 0x1F, 0xF1, 0xFF, 0x8F, 0xF3, 0xFF, 0xCF, 0xFF, 0xC3, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0x3C, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xE7, 0xFF, 0xFF, 0xE7, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF};
+9 -2
View File
@@ -315,8 +315,15 @@ void LyraTheme::drawList(const GfxRenderer& renderer, Rect rect, int itemCount,
if (rowIcon != nullptr) {
const freeink::Icon* ic = pickIcon(rowIcon(i), drawnIconPx);
if (ic != nullptr) {
// Place the icon's baked-in optical center on the title's optical center.
const int textCenter = titleTop + renderer.getTextVisualCenterOffset(UI_10_FONT_ID);
// Place the icon's baked-in optical center on the row's text center. For rows
// with a subtitle, center across both lines (title near the top, subtitle at
// itemY + 30) so the icon sits in the middle of the stacked block rather than
// riding up with the title alone.
int textCenter = titleTop + renderer.getTextVisualCenterOffset(UI_10_FONT_ID);
if (rowSubtitle != nullptr) {
const int subtitleCenter = itemY + 30 + renderer.getTextVisualCenterOffset(SMALL_FONT_ID);
textCenter = (textCenter + subtitleCenter) / 2;
}
renderer.drawIcon(*ic, rect.x + M().contentSidePadding + hPaddingInSelection,
textCenter - ic->opticalCenterY);
}