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

File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
+3 -3
View File
@@ -119,10 +119,10 @@ begin
if map^.count > max_load then begin
NewSize:= map^.Size * 2;
NewTable:= DPHashItem(kalloc(sizeof(PHashItem) * NewSize));
for i:=0 to NewSize-1 do begin
NewTable[i]:= nil;
end;
If NewTable <> nil then begin
for i:=0 to NewSize-1 do begin
NewTable[i]:= nil;
end;
for i:=0 to map^.size-1 do begin
item:= map^.table[i];
while item <> nil do begin
File diff suppressed because it is too large. Load diff