feat: file dispatch system, file-type icons, multi-instance notepad

- Add extension-based dispatch to driver.storage.filedispatch with typed
  union (variant record THandlerKind = hkMagic/hkExtension)
- Extract file-type icon constants and mapping to core.gfx.fileicons
- Add core.search utility (getFileExtension, fmtFileSize, sortStringArray)
- Generate PUA bitmap icon fonts (32/64/128px) from Font Awesome via
  gen_file_icons.py + compile_icons.sh toolchain
- Integrate file dispatch into file browser (double-click triggers dispatch)
- Register notepad as handler for text file extensions
- Fix init order in app.mgr (filedispatch.init before app inits)
- Refactor notepad from singleton to multi-instance (up to 8 windows)
  using instance array, findStateByWid, and LVGL user_data on msgboxes
This commit is contained in:
Aaron committed 2026-03-11 19:41:49 +00:00
1 parent 140d3d6d68
commit 5628c1ddbf
78 files changed
+74877 -238

No files matched your search

+2
View File
@@ -54,10 +54,12 @@ begin
should_update := should_update or (CURRENT_TICK < LAST_UPDATE); { handle tick counter wraparound }
if (should_update) then begin
LAST_UPDATE := CURRENT_TICK;
lvgl_lock;
driver.video.windows.reapOrphanedWindows;
driver.video.desktop.update;
app.uidebug.update;
lvgl_handler;
lvgl_unlock;
driver.video.Flush;
end;
if SHOULD_CRASH then begin