# Host APP Rebuild ## Goal Keep the APP layer suitable for teaching from simple to complex. Teaching order: 1. one button 2. one keyboard page 3. two pages 4. one main window 5. one shared theme ## Completed Nodes ### Node 1: theme helpers Files: - `KeyBorad/KeyBorad/APP/AppTheme.h` - `KeyBorad/KeyBorad/APP/AppTheme.cpp` Design notes: - centralize colors and style strings - keep styling readable - avoid mixing style text inside every widget ### Node 2: key button Files: - `KeyBorad/KeyBorad/APP/AppKeyButton.h` - `KeyBorad/KeyBorad/APP/AppKeyButton.cpp` Design notes: - teach one custom button first - keep state changes explicit - let one widget own its own text and style refresh ### Node 3: keyboard page Files: - `KeyBorad/KeyBorad/APP/AppKeyboardPage.h` - `KeyBorad/KeyBorad/APP/AppKeyboardPage.cpp` Design notes: - grow from one button to a full keypad - keep layout data local and explicit ### Node 4: settings page Files: - `KeyBorad/KeyBorad/APP/AppSettingsPage.h` - `KeyBorad/KeyBorad/APP/AppSettingsPage.cpp` Design notes: - use a second page early - give transport status and action feedback one simple home ### Node 5: main window integration Files updated in this step: - `KeyBorad/KeyBorad/APP/AppMainWindow.h` - `KeyBorad/KeyBorad/APP/AppMainWindow.cpp` - `KeyBorad/KeyBorad/main.cpp` Implemented behavior: - create the two-page window - own one `Lgc_Core` - start handshake on launch - poll the logic layer with a timer - refresh settings page texts from logic state