Connect APP shell to logic
This commit is contained in:
81
docs/host_app_rebuild.md
Normal file
81
docs/host_app_rebuild.md
Normal file
@@ -0,0 +1,81 @@
|
||||
# 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
|
||||
Reference in New Issue
Block a user