@steambrew/client
Version:
A support library for creating plugins with Millennium.
316 lines (315 loc) • 9.27 kB
TypeScript
import { ETouchGesture } from '../Browser';
export interface BrowserViewPopup {
/**
* Blur the popup contents.
* @param enabled Is the blur enabled?
* @param useBackgroundColor
* @param blur
*/
AddGlass(enabled: boolean, useBackgroundColor: boolean, blur: boolean): void;
/**
* @returns `true` if you can go backward in history.
*/
CanGoBackward(): boolean;
/**
* @returns `true` if you can go forward in history.
*/
CanGoForward(): boolean;
DialogResponse(param0: boolean): void;
EnableSteamInput(): void;
/**
* Find a string in the page.
* @param input The string to find.
* @param param1
* @param previous `true` for previous match, `false` for next match.
*/
FindInPage(input: string, param1: boolean, previous: boolean): void;
/**
* Get the current popup position. Only updates when using {@link SetBounds}!
* @returns the window position.
*/
GetBounds(): BrowserViewBounds;
/**
* Go back in history.
*/
GoBack(): void;
/**
* Go forward in history.
*/
GoForward(): void;
/**
* @param command See {@link BrowserViewContextMenu.custom_commands}.
*/
HandleContextMenuCommand(command: number, param2: BrowserViewContextMenu): void;
/**
* Load the specified URL.
* @param url The URL to go to.
*/
LoadURL(url: string): void;
NotifyUserActivation(): void;
/**
* Paste the current clipboard selection.
*/
Paste(): void;
/**
* @returns a boolean indicating whether the operation was successful. Will
* always be `false` if there are no listeners created by
* {@link BrowserView.RegisterForMessageFromParent}.
*/
PostMessage(message: string, args: string): boolean;
/**
* Reload the page.
*/
Reload(): void;
/**
* Load the specified URL, but don't save history.
* @param url The URL to go to.
*/
ReplaceURL(url: string): void;
/**
* Define blocked protocols, like https, etc.
* @param protocols The protocols to block, separated by a semicolon.
*/
SetBlockedProtocols(protocols: string): void;
/**
* Sets the browser window position.
* @param x Browser window X position.
* @param y Browser window Y position.
* @param width Browser window width.
* @param height Browser window height.
*/
SetBounds(x: number, y: number, width: number, height: number): void;
/**
* Sets the browser window focus state.
* @param value Is the window focused?
*/
SetFocus(value: boolean): void;
SetName(browserName: string): void;
/**
* Registers a callback to be called when a context menu is shown.
* @param callback The callback function to be called.
*/
SetShowContextMenuCallback(callback: (data: BrowserViewContextMenu) => void): void;
/**
* Registers a callback to be called when a steam:// URL is loaded.
*/
SetSteamURLCallback(callback: (url: string) => void): void;
/**
* @todo unconfirmed
*/
SetTouchGesturesToCancel(gestures: ETouchGesture[]): void;
SetVRKeyboardVisibility(value: boolean): void;
SetVisible(value: boolean): void;
SetWindowStackingOrder(value: EWindowStackingOrder): void;
/**
* Stop the 'find in page' function.
*/
StopFindInPage(): void;
/**
* Stop listening for an event.
* @param event The event to stop listening to.
* @param callback The callback function to be called.
*/
off<K extends keyof BrowserViewEventMap>(event: K, callback: BrowserViewEventMap[K]): void;
/**
* Start listening for an event.
* @param event The event to start listening to.
* @param callback The callback function to be called.
*/
on<K extends keyof BrowserViewEventMap>(event: K, callback: BrowserViewEventMap[K]): void;
}
interface BrowserViewEventMap {
/**
* Fires when an `alert()` dialog appears.
*/
'alert-dialog': (message: string) => void;
/**
* Fires when the browser is about to get destroyed.
*/
'before-close': () => void;
/**
* Fires when a URL gets blocked.
* @todo not SetBlockedProtocols, maybe only steam links
*/
'blocked-request': (blockedURL: string) => void;
/**
* Fires when {@link BrowserViewPopup.CanGoBackward} or
* {@link BrowserViewPopup.CanGoForward} state changes.
*/
'can-go-back-forward-changed': (canGoBackward: boolean, canGoForward: boolean) => void;
/**
* Fires when a `confirm()` dialog appears.
*/
'confirm-dialog': (message: string) => void;
/**
* Fires when the browser's favicon changes.
*/
'favicon-urls-changed': (faviconURLs: string[]) => void;
/**
* Fires when 'Find in page' gets its results.
*/
'find-in-page-results': (results: number, activeResultIndex: number) => void;
/**
* Fires when the page finishes loading.
*/
'finished-request': (currentURL: string, previousURL: string) => void;
/**
* Fires when the browser goes focused or vice versa.
*/
'focus-changed': (focused: boolean) => void;
/**
* Fires when the browser goes fullscreen or vice versa.
*/
'full-screen': (fullscreen: boolean) => void;
/**
* Fires when history changes occur.
*/
'history-changed': (history: BrowserViewHistory) => void;
/**
* Fires when the URL fails to load.
*/
'load-error': (errorCode: number, errorURL: string, errorDescription: string) => void;
/**
* Fires when a message gets sent with {@link BrowserView.PostMessageToParent}.
*/
message: (message: string, args: string, currentURL: string) => void;
'new-tab': (url: string, param1: boolean) => void;
/**
* Fires when a node gets focused.
*/
'node-has-focus': (
/**
* Same as {@link Element.tagName}, but the value is the element's ID when exists.
*/
elementIdOrTagName: string,
/**
* Same as {@link Element.tagName}.
*/
elementTag: string,
/**
* The `type` attribute of an `<input>` element.
*/
inputType: string,
/**
* @todo Localization token that doesn't seem to exist? (#Web_FormSubmit)
*/
token: string, param4: boolean) => void;
'page-security': (url: string, pageSecurity: BrowserViewPageSecurity) => void;
/**
* Fires when the page's `<title>` changes.
*/
'set-title': (title: string) => void;
/**
* Fires when the page starts loading.
*/
'start-loading': (url: string, param1: boolean) => void;
/**
* Fires when the page starts loading.
*/
'start-request': (url: string) => void;
/**
* Fires when "Find in page" gets toggled.
*/
'toggle-find-in-page': () => void;
}
export interface BrowserViewBounds {
x: number;
y: number;
width: number;
height: number;
}
export interface BrowserViewContextMenu {
/**
* Mouse X position inside the browser view.
*/
coord_x: number;
/**
* Mouse Y position inside the browser view.
*/
coord_y: number;
custom_commands: BrowserViewContextMenuCustomCommand[];
/**
* Bitmask representing edit state. Appears on editable elements like `<input>`, etc.
* @see {@link EBrowserViewContextMenuEditFlag}
*/
edit_state_flags?: number;
/**
* The misspelled word the cursor is on. Appears on an editable element with text.
*/
misspelled_word?: string;
/**
* Browser page URL.
* @todo Appears when there is selected text?
*/
link_url?: string;
/**
* Browser page URL.
*/
page_url: string;
/**
* Selected text. Appears when there is selected text.
*/
selection_text?: string;
/**
* Bitmask representing context menu type.
* @see {@link EBrowserViewContextMenuTypeFlag}
*/
type_flags: number;
/**
* Browser page URL.
* @todo Appears when there is selected text?
*/
unfiltered_link_url?: string;
}
export interface BrowserViewContextMenuCustomCommand {
id: number;
label: string;
}
export declare enum EBrowserViewContextMenuTypeFlag {
None = 0,
Page = 1,
Frame = 2,
Link = 4,
Media = 8,
Selection = 16,
Editable = 32
}
export declare enum EBrowserViewContextMenuEditFlag {
None = 0,
CanUndo = 1,
CanRedo = 2,
CanCut = 4,
CanCopy = 8,
CanPaste = 16,
CanDelete = 32,
CanSelectAll = 64,
CanTranslate = 128
}
export declare enum EBrowserViewContextMenuCommand {
Close = -1,
OpenDevTools = 26500,
CloseDevTools = 26501,
InspectElement = 26502,
OpenLinkInNewTab = 26503
}
export declare enum EWindowStackingOrder {
Bottom = 0,
Top = 1
}
export interface BrowserViewHistory {
index: number;
entries: BrowserViewHistoryEntry[];
}
export interface BrowserViewHistoryEntry {
url: string;
}
export interface BrowserViewPageSecurity {
bHasCertError: boolean;
bIsEVCert: boolean;
bIsSecure: boolean;
certExpiry: number;
certName: string;
issuerName: string;
nCertBits: number;
}
export {};