Docs menu

Exported Firmware

ForgeUI Fi Runtime

Turn any Standard Fi Icon into a generated runtime object through the canonical Icon pipeline and the 90, 95 and 96 ownership boundary.

Every Standard Fi Icon can become a runtime object

A Standard Fi Icon remains display-only by default, can expose generated visibility, opacity and colour controls, and can optionally become clickable. Application code uses generated FG_Set_* functions and FG_On_* hooks; normal use requires no raw LVGL.

90 / 95 / 96 responsibilities

FileResponsibility
90_Studio_Export.c / .hGenerated LVGL object creation and ownership, serialized geometry, runtime binding and optional event attachment.
95_UserEvents.c / .hDeveloper input behavior, optional Icon click hooks and Live preservation merge.
96_FiRuntime.c / .hGenerated retained visibility, opacity and colour state, object binding and image/symbol abstraction.

One canonical Icon pipeline

text
Icon Browser
    ↓
Canonical Renderer
    ↓
Persisted Asset
    ↓
Canvas
    ↓
Browser Preview
    ↓
Native Export
    ↓
96 Runtime
  • One renderer and normalized Icon model
  • One 92% automatic-fit rule with exact explicit-size override
  • One source-dimension and transparent-padding model
  • One source-aware scaling and centring calculation
  • One generated export used by Live Studio and Standalone Export
  • Only used icons emit assets and runtime code

Component-name generated APIs

c
void FG_Set_<Name>_Visible(bool visible);
void FG_Set_<Name>_Opacity(uint8_t opacity);
void FG_Set_<Name>_Color(uint32_t rgb);

/* Optional when click is enabled */
void FG_On_<Name>_Clicked(void);

Duplicate and sanitization-colliding component names receive deterministic _2, _3 and later suffixes. The selected Fi asset name controls only what is drawn.

Retained and silent runtime behavior

  • Setters are silent and never invoke 95_UserEvents
  • Pre-initialization calls update retained state and apply on object binding
  • Null object pointers are guarded
  • Repeated effective values are suppressed
  • Image-backed icons use LVGL image recolour with cover opacity
  • Supported LVGL-symbol-backed icons use label text colour
  • Multiple instances keep independent state and collision-safe names
  • A deliberate click produces exactly one hook and startup produces none

Inspector configuration

ControlDefault and behavior
Generate runtime APIOn; older projects hydrate safely to enabled.
Enable tap/clickOff; normal icons remain display-only.
Pressed colour and opacityAvailable only when click is enabled.
Icon presentationSelected icon, colour, opacity, visibility, geometry and automatic or explicit size remain canonical.

Plant WiFi, Living Room AirPlay and Settings Shortcut

c
FG_Set_Plant_WiFi_Visible(true);
FG_Set_Plant_WiFi_Opacity(220);
FG_Set_Plant_WiFi_Color(0x42C9D7);

FG_Set_Living_Room_AirPlay_Color(0xF2A900);

void FG_On_Living_Room_AirPlay_Clicked(void)
{
    /* Developer behavior in 95_UserEvents.c */
}

void FG_On_Settings_Shortcut_Clicked(void)
{
    /* Runtime API may remain disabled for this click-only Icon. */
}

Plant WiFi is runtime-enabled and display-only. Living Room AirPlay uses runtime presentation plus click. Settings Shortcut demonstrates click-only generation: 90 and 95 are used, but no presentation setters are emitted for that instance.

Future semantic runtime direction

c
FG_Set_Plant_WiFi_State(...);
FG_Set_Battery_Level(...);
FG_Set_Cloud_State(...);
FG_Set_Bluetooth_Connected(...);

Live and Standalone ownership

Live Studio regeneration replaces 90 and 96 while preservation-merging matching 95 hook bodies. Standalone Export receives the same generated blocks and source registration; after export, the standalone project becomes developer-owned. Normal developer use requires no raw LVGL.

Fi Runtime proof status

SOFTWARE COMPLETE · CLICK PATH PROVEN · PRESENTATION PROOF PENDING

text
FG_On_Comp_MS9QE1N7GA5O3_Clicked
FG_On_Comp_MS9Q2MXPEJP7D_Clicked
FG_On_Comp_MS9Q42SGCB4EB_Clicked