foo-webview-sdk
    Preparing search index...

    Interface SmpBootstrapResult

    The window-level globals the SMP IIFE installs alongside the main window.smp API. Surfacing as a single shape keeps the bootstrap return value self-documenting — every value is intended to be hung off window.* by the caller.

    interface SmpBootstrapResult {
        classes: {
            ContextMenuManager: typeof ContextMenuManager;
            FbFileInfo: typeof FbFileInfo;
            FbMetadbHandle: typeof FbMetadbHandle;
            FbMetadbHandleList: typeof FbMetadbHandleList;
            FbProfiler: typeof FbProfiler;
            FbTitleFormat: typeof FbTitleFormat;
            FbUiSelectionHolder: typeof FbUiSelectionHolder;
            MainMenuManager: typeof MainMenuManager;
        };
        plman: SMPPlman;
        smp: SmpCompatApi;
        smpUtils: {
            buildMenuItems: (
                items: SmpRawMenuItem[] | undefined,
                state: SmpMenuBuildState,
            ) => SmpStructuredMenuItem[];
            clamp: (n: number, min: number, max: number) => number;
            getInvoke: () => SmpInvokeFn | null;
            MENU_FLAGS: {
                checked: number;
                defaulthidden: number;
                disabled: number;
                disclosure: number;
                radiochecked: number;
            };
            normalizeHandleList: (handleList: unknown) => unknown[];
            sleep: (ms: number) => Promise<void>;
            splitMenuAddress: (value: string) => { command: string; subGuid?: string };
            toHandleId: (handle: unknown) => string;
            toHandleIdArray: (handleList: unknown) => string[];
        };
        utils: {
            __smpUtilsCompat: true;
            CheckComponent: (name: unknown, isDll?: unknown) => Promise<boolean>;
            CheckFont: (name: unknown) => boolean;
            ColourPicker: (_windowId: unknown, defaultColour?: unknown) => number;
            DateStringFromTimestamp: (ts: unknown) => string;
            FileExists: (path: unknown) => Promise<boolean>;
            FormatDuration: (seconds: unknown) => string;
            FormatFileSize: (bytes: unknown) => string;
            GetClipboardText: () => Promise<string>;
            GetFileSize: (path: unknown) => Promise<number>;
            Glob: (
                pattern: unknown,
                _excMask?: unknown,
                _incMask?: unknown,
            ) => Promise<string[]>;
            InputBox: (
                _windowId: unknown,
                promptText: unknown,
                _caption: unknown,
                defaultVal?: unknown,
                errorOnCancel?: unknown,
            ) => string;
            IsDirectory: (path: unknown) => Promise<boolean>;
            IsFile: (path: unknown) => Promise<boolean>;
            ListFiles: (folder: unknown, recursion?: unknown) => Promise<string[]>;
            ListFolders: (folder: unknown, recursion?: unknown) => Promise<string[]>;
            PathWildcardMatch: (path: unknown, pattern: unknown) => boolean;
            ReadINI: (
                path: unknown,
                section: unknown,
                key: unknown,
                defaultVal?: unknown,
            ) => Promise<string>;
            ReadTextFile: (path: unknown, _codepage?: unknown) => Promise<string>;
            ReadUTF8: (path: unknown) => Promise<string>;
            SetClipboardText: (text: unknown) => Promise<void>;
            SplitFilePath: (path: unknown) => [string, string, string];
            WriteINI: (
                path: unknown,
                section: unknown,
                key: unknown,
                val: unknown,
            ) => Promise<boolean>;
            WriteTextFile: (
                path: unknown,
                content: unknown,
                _writeBom?: unknown,
            ) => Promise<boolean>;
            get Version(): string;
        };
    }
    Index
    classes: {
        ContextMenuManager: typeof ContextMenuManager;
        FbFileInfo: typeof FbFileInfo;
        FbMetadbHandle: typeof FbMetadbHandle;
        FbMetadbHandleList: typeof FbMetadbHandleList;
        FbProfiler: typeof FbProfiler;
        FbTitleFormat: typeof FbTitleFormat;
        FbUiSelectionHolder: typeof FbUiSelectionHolder;
        MainMenuManager: typeof MainMenuManager;
    }

    Constructors for window.FbMetadbHandle etc.

    plman: SMPPlman

    Public surface for window.plman.

    Public surface for window.smp.

    smpUtils: {
        buildMenuItems: (
            items: SmpRawMenuItem[] | undefined,
            state: SmpMenuBuildState,
        ) => SmpStructuredMenuItem[];
        clamp: (n: number, min: number, max: number) => number;
        getInvoke: () => SmpInvokeFn | null;
        MENU_FLAGS: {
            checked: number;
            defaulthidden: number;
            disabled: number;
            disclosure: number;
            radiochecked: number;
        };
        normalizeHandleList: (handleList: unknown) => unknown[];
        sleep: (ms: number) => Promise<void>;
        splitMenuAddress: (value: string) => { command: string; subGuid?: string };
        toHandleId: (handle: unknown) => string;
        toHandleIdArray: (handleList: unknown) => string[];
    }

    Shared smpUtils helpers (window.smpUtils).

    Type Declaration

    • buildMenuItems: (
          items: SmpRawMenuItem[] | undefined,
          state: SmpMenuBuildState,
      ) => SmpStructuredMenuItem[]
    • clamp: (n: number, min: number, max: number) => number
    • getInvoke: () => SmpInvokeFn | null
    • MENU_FLAGS: {
          checked: number;
          defaulthidden: number;
          disabled: number;
          disclosure: number;
          radiochecked: number;
      }

      Re-export of the shared menu-flag bit constants.

    • normalizeHandleList: (handleList: unknown) => unknown[]
    • sleep: (ms: number) => Promise<void>
    • splitMenuAddress: (value: string) => { command: string; subGuid?: string }
    • toHandleId: (handle: unknown) => string
    • toHandleIdArray: (handleList: unknown) => string[]
    utils: {
        __smpUtilsCompat: true;
        CheckComponent: (name: unknown, isDll?: unknown) => Promise<boolean>;
        CheckFont: (name: unknown) => boolean;
        ColourPicker: (_windowId: unknown, defaultColour?: unknown) => number;
        DateStringFromTimestamp: (ts: unknown) => string;
        FileExists: (path: unknown) => Promise<boolean>;
        FormatDuration: (seconds: unknown) => string;
        FormatFileSize: (bytes: unknown) => string;
        GetClipboardText: () => Promise<string>;
        GetFileSize: (path: unknown) => Promise<number>;
        Glob: (
            pattern: unknown,
            _excMask?: unknown,
            _incMask?: unknown,
        ) => Promise<string[]>;
        InputBox: (
            _windowId: unknown,
            promptText: unknown,
            _caption: unknown,
            defaultVal?: unknown,
            errorOnCancel?: unknown,
        ) => string;
        IsDirectory: (path: unknown) => Promise<boolean>;
        IsFile: (path: unknown) => Promise<boolean>;
        ListFiles: (folder: unknown, recursion?: unknown) => Promise<string[]>;
        ListFolders: (folder: unknown, recursion?: unknown) => Promise<string[]>;
        PathWildcardMatch: (path: unknown, pattern: unknown) => boolean;
        ReadINI: (
            path: unknown,
            section: unknown,
            key: unknown,
            defaultVal?: unknown,
        ) => Promise<string>;
        ReadTextFile: (path: unknown, _codepage?: unknown) => Promise<string>;
        ReadUTF8: (path: unknown) => Promise<string>;
        SetClipboardText: (text: unknown) => Promise<void>;
        SplitFilePath: (path: unknown) => [string, string, string];
        WriteINI: (
            path: unknown,
            section: unknown,
            key: unknown,
            val: unknown,
        ) => Promise<boolean>;
        WriteTextFile: (
            path: unknown,
            content: unknown,
            _writeBom?: unknown,
        ) => Promise<boolean>;
        get Version(): string;
    }

    SMP-style utils namespace (window.utils).

    Type Declaration

    • Readonly__smpUtilsCompat: true
    • CheckComponent: (name: unknown, isDll?: unknown) => Promise<boolean>
    • CheckFont: (name: unknown) => boolean
    • ColourPicker: (_windowId: unknown, defaultColour?: unknown) => number
    • DateStringFromTimestamp: (ts: unknown) => string
    • FileExists: (path: unknown) => Promise<boolean>
    • FormatDuration: (seconds: unknown) => string
    • FormatFileSize: (bytes: unknown) => string
    • GetClipboardText: () => Promise<string>
    • GetFileSize: (path: unknown) => Promise<number>
    • Glob: (pattern: unknown, _excMask?: unknown, _incMask?: unknown) => Promise<string[]>
    • InputBox: (
          _windowId: unknown,
          promptText: unknown,
          _caption: unknown,
          defaultVal?: unknown,
          errorOnCancel?: unknown,
      ) => string
    • IsDirectory: (path: unknown) => Promise<boolean>
    • IsFile: (path: unknown) => Promise<boolean>
    • ListFiles: (folder: unknown, recursion?: unknown) => Promise<string[]>
    • ListFolders: (folder: unknown, recursion?: unknown) => Promise<string[]>
    • PathWildcardMatch: (path: unknown, pattern: unknown) => boolean
    • ReadINI: (
          path: unknown,
          section: unknown,
          key: unknown,
          defaultVal?: unknown,
      ) => Promise<string>
    • ReadTextFile: (path: unknown, _codepage?: unknown) => Promise<string>
    • ReadUTF8: (path: unknown) => Promise<string>
    • SetClipboardText: (text: unknown) => Promise<void>
    • SplitFilePath: (path: unknown) => [string, string, string]
    • WriteINI: (
          path: unknown,
          section: unknown,
          key: unknown,
          val: unknown,
      ) => Promise<boolean>
    • WriteTextFile: (path: unknown, content: unknown, _writeBom?: unknown) => Promise<boolean>
    • get Version(): string