Menu bar status items: status (work stopped early, unfinished)
File: desk3/03l-statusbar.HC (renamed from 03k so it cannot be confused with 03k-hostpoll.HC; load order is after it). It is written but has NEVER been compiled or run on x86 or Aiwnios. No VM was started, no screenshots exist.
Done (code only, untested)#
- MenuStatus struct (I64 fields), provider hooks (StProvSet, StProvTick), simulated defaults, "Simulated" footer.
- Bar: 11 items, popovers for Wi-Fi, Bluetooth, Sound, Battery, Keyboard, Eject (confirmation only), Control Centre, Calendar, Notification Centre; Spotlight-like Search overlay; blurred cached glass panel; fade and slide; dimming overlay for brightness (cheap full-screen alpha rect); Settings page function StSettingsPage.
- Keys F1..F10 (see file header). Icons: 19 added to scripts/gen-icons.py (eject is custom), KSICONS.BIN regenerated (first 45 icons byte identical), L_WIFI..L_HDD (45..63) and NICON=72 in desk3/01-core.HC.
Shared-file hunks still to make (none made yet except icons)#
- 02-ui.HC: declare
I64 (*ks_stbar)()=NULL; U0 (*ks_stset)(I64 px,I64 yy,I64 pw,I64 B)=NULL;before Menubar; in Menubar replace the old clock/pill block: left=(*ks_stbar)() draws the items, pill sits left of it. WITHOUT these the file does not compile. - 04-main.HC: Click:
if (StClick(i)) return;after KsOverlayClick; Keys:else if (StKey(ch,sc)) {}afterif (lp_on) LpKey; AppClick1<=k<=4-><=5; Animate: per-second Dirty only if ks_showms (width 640). - 06-run.HC: Draw
StDraw;after KMenu; Main loopStTick(dt);after KsExtraTick. - 03-apps.HC AppSettings: ks_sp_name[5] + "Menu bar", sidebar loop 5 rows with icon L_SLIDERS, branch
ks_sp==4calling (*ks_stset). - New file desk3/04b-statusact.HC (not written): StApply using st_req/st_arg: 1 OpenApp(st_arg), 2 SetStyle(ks_st+1),
3 MenuAct(2), 4 ks_sp=st_arg;OpenApp(4), 5 SetStyle(st_arg); then
st_apply=&StApply;. - scripts/send-to-vm.sh desk_files list is stale (lacks 01b, 03d-03g): add 03l-statusbar.HC and 04b.
Known risks#
Array of function pointers via I64 (StProvTick), class with array members, Now on Aiwnios, ScanKey codes for F-keys,
glass cache when the clip only partly covers the panel. Check aiwnios/kslint.py.
Next steps#
- Make hunks 1-3 and 5, compile on Aiwnios (headless driver like drive-icons.HC), fix errors. 2. Hunk 4. 3. Six screenshots.
- Measure idle redraws and popover frame time. 5. One x86 pass. 6. docs/apps/statusbar.md and README section.