Public Access
Steps 5 and 6 of M0. - lib/ui (host-tested): ListModel, LineEditor (UTF-8, byte-limited), wrapText, ToastQueue, DialogModel - lib/input (host-tested): KeyMapper turns keyboard state into logical keys (Fn arrows, ` Back, Fn+` Home) and composes accents with opt - src/ui: off-screen 16-bit frame pushed in one transfer (fixes the flicker), Status Bar, list, text, line editor, dialog, Toast widgets, Notifier (Toast + beep + LED), vendored public-domain Latin-1 fonts - Apps: minimal Launcher, Widget demo, Diagnostics (SD erase now behind a confirmation dialog) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01EhqxQ49eCju4CzKYNjZzwT
24 lines
532 B
C++
24 lines
532 B
C++
#pragma once
|
|
|
|
#include "app.h"
|
|
#include "app_manager.h"
|
|
#include "list_model.h"
|
|
#include "ui/theme.h"
|
|
|
|
namespace roro {
|
|
|
|
// Home screen: lists the visible Apps; Select opens one.
|
|
class LauncherApp : public App {
|
|
public:
|
|
void setManager(AppManager& manager) { manager_ = &manager; }
|
|
void onEnter() override;
|
|
bool onKey(const KeyEvent& e) override;
|
|
void draw(Canvas& c) override;
|
|
|
|
private:
|
|
AppManager* manager_ = nullptr;
|
|
ListModel list_{theme::kContent.h / theme::kLineHeight};
|
|
};
|
|
|
|
} // namespace roro
|