Generated reference › API — src/Main
kind: generated#api#src-main

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.

HeaderDefinesDeclarationsBases
ICoreStartupScreen.hICoreStartupScreen5—

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;
};