API — src/Main
The public contract of 1 header(s) under src/Main — 1 class/struct definition(s), 5 declaration(s). Each section shows the header's banner and its public (and protected-virtual) surface exactly as the file writes it.
| Header | Defines | Declarations | Bases |
|---|---|---|---|
ICoreStartupScreen.h | ICoreStartupScreen | 5 | — |
ICoreStartupScreen.h#
src/Main/ICoreStartupScreen.h
ICoreStartupScreen -- the window ICoreBlocks shows while it starts.
THE APPLICATION'S, NOT THE SDK'S. It lives beside main() because a startup screen is a product decision: an embedder of the SDK starts its own way, or shows nothing. The SDK's part is only to REPORT how far startup has got (icore::StartupProgress, include/icore/Application.h); what is drawn with those reports is this file's.
Drawn with the platform SDK (ICoreEssentials); the only thing it takes from ICoreSDK is the product's name and version (ICoreProductInfo), which are one fact in one place. This header names neither, so main() can own a screen while itself still naming nothing but the public surface.
ICoreStartupScreen#
ICoreStartupScreen.h:20 · class · pImpl · 5 declaration(s)
class ICoreStartupScreen {
public:
// Creates the window and puts it on screen, centred on the primary screen.
// Needs a live application object -- construct it from the first startup
// report, never before the icore::Application exists.
ICoreStartupScreen();
// Takes the window off screen.
~ICoreStartupScreen();
ICoreStartupScreen(const ICoreStartupScreen&) = delete;
ICoreStartupScreen& operator=(const ICoreStartupScreen&) = delete;
// What startup is doing now and how far through it is (0..1). Repaints;
// the report's own slice of the toolkit is what gets it on screen.
void setProgress(std::string_view status, double fraction);
private:
class Impl; // the two-line residue; state lives here
std::unique_ptr<Impl> impl;
};