apps/train with halkyon_train_server, _client and _flutter, as Todo's: halkyon_base configured by trainBase(), its own register alone and a member of the instance's where the operator names one, the app on halkyon_app's gates with Train's frame, account sheet and About, texts in British English and German that speak of workouts, app.halkyon.train on Android, iOS, Linux, macOS and Windows. Where it differs from Todo: development ports of its own (8180 to 8190), so it runs beside Learn's server; one initial migration with the schema Todo's migrations end at (the same tables, compared line by line), not Todo's seventeen; and Todo's icon as a placeholder until the icon tool of ADR 0031 draws Train's bike. The workspace, the licences, the READMEs and AGENTS.md name it. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Signed-off-by: Tizian 「ティツィアーン」 <raisondetredev@pm.me>
46 lines
1.4 KiB
C++
46 lines
1.4 KiB
C++
#ifndef RUNNER_FLUTTER_WINDOW_H_
|
|
#define RUNNER_FLUTTER_WINDOW_H_
|
|
|
|
#include <flutter/dart_project.h>
|
|
#include <flutter/encodable_value.h>
|
|
#include <flutter/flutter_view_controller.h>
|
|
#include <flutter/method_channel.h>
|
|
|
|
#include <memory>
|
|
|
|
#include "win32_window.h"
|
|
|
|
// A window that does nothing but host a Flutter view.
|
|
class FlutterWindow : public Win32Window {
|
|
public:
|
|
// Creates a new FlutterWindow hosting a Flutter view running |project|.
|
|
explicit FlutterWindow(const flutter::DartProject& project);
|
|
virtual ~FlutterWindow();
|
|
|
|
protected:
|
|
// Win32Window:
|
|
bool OnCreate() override;
|
|
void OnDestroy() override;
|
|
LRESULT MessageHandler(HWND window, UINT const message, WPARAM const wparam,
|
|
LPARAM const lparam) noexcept override;
|
|
|
|
private:
|
|
// The project to run.
|
|
flutter::DartProject project_;
|
|
|
|
// The Flutter instance hosted by this window.
|
|
std::unique_ptr<flutter::FlutterViewController> flutter_controller_;
|
|
|
|
// The channel halkyon_app's SecretScreen asks to keep the window out of
|
|
// screen captures while something secret shows (the recovery phrase,
|
|
// recovery codes, an authenticator's key), and how many show: counted, as
|
|
// several may at once.
|
|
std::unique_ptr<flutter::MethodChannel<flutter::EncodableValue>>
|
|
screen_guard_;
|
|
int secrets_shown_ = 0;
|
|
|
|
// Answers |screen_guard_|.
|
|
void GuardScreen();
|
|
};
|
|
|
|
#endif // RUNNER_FLUTTER_WINDOW_H_
|