Public Access
Launcher: the selected icon in slate, the name in white
The selected icon was dark blue on its cyan tile, which read as black: it is the Status Bar's slate now. The App's name under the grid is white instead of cyan. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0162FokPdvY2KsS4NBfwyWPk
This commit is contained in:
@@ -68,7 +68,7 @@ The Launcher was a list of names. It is now a grid of icons.
|
||||
|---|---|
|
||||
| Layout | **4 × 3** tiles of 60 × 36, so the 11 Apps are on one page. Only the selected App's name is written, on a line under the grid: a name under every tile doesn't fit 60 pixels ("LoRa Scanner"). More than 12 Apps: the rows scroll |
|
||||
| Icons | **The website's own**: its nine 16 × 16 pictures (`site/static/img/icons-dark.svg`), doubled to 32 × 32, and two drawn the same way for SSH and the Shell. 1 bit a pixel (128 bytes each, in flash). The pictures are PNGs in `assets/icons/`, named after the App's id; `scripts/make_icons.py` writes `src/ui/icons.cpp` from them and CI checks the two match |
|
||||
| Colours | **The website's**: cyan (#00dbff) on black, and the selected tile dark blue (#000055) on a cyan fill with notched corners. Both are RGB332 colours. The name under the grid is cyan too |
|
||||
| Colours | **The website's**: cyan (#00dbff) on black, and the selected tile slate (#494955, the Status Bar's) on a cyan fill with notched corners. Both are RGB332 colours. The name under the grid is white |
|
||||
| Live state | **A dot** on the tile, from `App::badge()`: IRC (unread messages), GNSS (a Track recording), the LoRa Scanner (a Capture running), SSH (a session open). The Launcher asks every App on each pass and redraws when an answer changes |
|
||||
| Order | As registered, as before |
|
||||
| Shortcuts | None for now |
|
||||
|
||||
@@ -76,7 +76,7 @@ The Launcher was a list of names. It is now a grid of icons.
|
||||
|---|---|
|
||||
| Layout | **4 × 3** tiles of 60 × 36, so the 11 Apps are on one page. Only the selected App's name is written, on a line under the grid: a name under every tile doesn't fit 60 pixels ("LoRa Scanner"). More than 12 Apps: the rows scroll |
|
||||
| Icons | **The website's own**: its nine 16 × 16 pictures (`site/static/img/icons-dark.svg`), doubled to 32 × 32, and two drawn the same way for SSH and the Shell. 1 bit a pixel (128 bytes each, in flash). The pictures are PNGs in `assets/icons/`, named after the App's id; `scripts/make_icons.py` writes `src/ui/icons.cpp` from them and CI checks the two match |
|
||||
| Colours | **The website's**: cyan (#00dbff) on black, and the selected tile dark blue (#000055) on a cyan fill with notched corners. Both are RGB332 colours. The name under the grid is cyan too |
|
||||
| Colours | **The website's**: cyan (#00dbff) on black, and the selected tile slate (#494955, the Status Bar's) on a cyan fill with notched corners. Both are RGB332 colours. The name under the grid is white |
|
||||
| Live state | **A dot** on the tile, from `App::badge()`: IRC (unread messages), GNSS (a Track recording), the LoRa Scanner (a Capture running), SSH (a session open). The Launcher asks every App on each pass and redraws when an answer changes |
|
||||
| Order | As registered, as before |
|
||||
| Shortcuts | None for now |
|
||||
|
||||
@@ -70,8 +70,9 @@ void LauncherApp::drawGrid(Canvas& c) {
|
||||
if (i >= static_cast<int>(apps.size())) break;
|
||||
int x = kContent.x + col * kTileW, y = kContent.y + row * kTileH;
|
||||
int ix = x + (kTileW - icons::kSize) / 2, iy = y + (kTileH - icons::kSize) / 2;
|
||||
// As on the website: cyan on black, and the chosen one dark on a cyan tile with notched corners.
|
||||
uint16_t ink = i == selected ? kOnAccent : kAccent;
|
||||
// As on the website: cyan on black, and the chosen one on a cyan tile with notched corners,
|
||||
// in the Status Bar's slate.
|
||||
uint16_t ink = i == selected ? kFaint : kAccent;
|
||||
if (i == selected) {
|
||||
int tx = ix - 6, tw = icons::kSize + 12;
|
||||
c.fillRect(tx + 4, y, tw - 8, kTileH, kAccent);
|
||||
@@ -100,7 +101,7 @@ void LauncherApp::drawGrid(Canvas& c) {
|
||||
}
|
||||
if (selected >= 0) {
|
||||
c.setFont(&fonts::bold);
|
||||
c.setTextColor(kAccent);
|
||||
c.setTextColor(kText);
|
||||
c.setTextDatum(top_center);
|
||||
c.drawString(apps[selected]->title, kContent.x + kContent.w / 2, kContent.y + kRows * kTileH + 1);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user