Files
decky-frontend-lib/src/globals/steam-client/UI.ts
Yao Chung Hu 131ab4cc11 feat(globals): Steam client reference (#92)
* change: Add SteamClient types

Steam Version:  1690583737
Steam Client Build Date:  Sat, Jul 29 02:44 UTC -08:00

* new: Document some SteamClient interfaces

Using the SDH discord server, GitHub and some personal findings, I tried to document as much SteamClient functions as I can.

* new: Document some SteamClient interfaces - part 2

* new: Document some SteamClient interfaces - part 3

* new: Document some SteamClient interfaces - part 4

* new: Document some SteamClient interfaces - part 5

* new: Document some SteamClient interfaces - part 6

* new: Document some SteamClient interfaces - part 7

* change: Update interfaces to Steam Version 1691097434

Steam Version:  1691097434
Steam Client Build Date:  Fri, Aug 4 04:54 UTC -08:00

* new: Document some SteamClient interfaces - part 8

* new: Document some SteamClient interfaces - part 9

* change: Update interfaces to Steam Version 1694466342

Steam Version:  1694466342
Steam Client Build Date:  Tue, Sep 12 04:59 UTC +08:00

* new: Document some SteamClient interfaces - part 10

* new: Document some SteamClient interfaces - part 11

* new: Document some SteamClient interfaces - part 12

* new: Document some SteamClient interfaces - part 13

* new: Document some SteamClient interfaces - part 14

* change: Update interfaces to Steam Version 1698260427

Steam Version:  1698260427
Steam Client Build Date:  Thu, Oct 26 2:40 AM UTC -08:00

* new: Document some SteamClient interfaces - part 10

* change: Update interfaces to Steam Version 1700160213

Steam Version:  1700160213
Steam Client Build Date:  Fri, Nov 17 2:23 AM UTC +08:00

* docs(SteamClient): document some interfaces

* change: Fix formatting style

* docs(SteamClient): document protobufs & System.Report

* docs(SteamClient): document CMsgMonitorInfo

* docs(SteamClient): document remaining messages

* docs(SteamClient): update interfaces to Steam Version 1702515219
Steam Version:  1702515219
Steam Client Build Date:  Thu, Dec 14 00:36 UTC -08:00

* docs(SteamClient): update interfaces to Steam Version 1704329464
Steam Version:  1704329464
Steam Client Build Date:  Thu, Jan 4 12:23 AM UTC -08:00

* docs(SteamClient): update interfaces to Steam Version 1705630720
Steam Version:  1705630720
Steam Client Build Date:  Fri, Jan 19 1:58 AM UTC -08:00

* docs(SteamClient): update interfaces to Steam Version 1706914901
Steam Version:  1706914901
Steam Client Build Date:  Fri, Feb 2 8:46 PM UTC -08:00

* docs(SteamClient): update interfaces to Steam Version 1709920887
Steam Version:  1709920887
Steam Client Build Date:  Thu, Mar 7 5:29 PM UTC -08:00

* docs(SteamClient): update interfaces to Steam Version 1710786209
Steam Version:  1710786209
Steam Client Build Date:  Mon, Mar 18 7:07 PM UTC -08:00

* docs(SteamClient): document even more interfaces

* new: Document some SteamClient interfaces - part 15

* Fix QAM button bit number

* new: Document some SteamClient interfaces - part 16

* change: Update interfaces to Steam Version 1714854927

Steam Version: 1714854927
Steam Client Build Date:  Sat, May 4 7:11 AM UTC -08:00

* change: Refactor and reorganize SteamClient

* docs(SteamClient): document more notification interfaces

* docs(SteamClient): document more interfaces

* docs(SteamClient): add some descriptions

* docs(SteamClient): remove duplicate types

* change: Fix rebase errors

* Updated ControllerStateChange

* Fix typo

* docs(SteamClient): update interfaces to Steam Version 1723601482

Steam Version:  1723601482
Steam Client Build Date:  Wed, Aug 14 01:51 UTC -08:00

* docs(SteamClient): update interfaces to 1725654351

* docs(SteamClient): update interfaces to 1730416762

* docs(SteamClient): forgot some stuff

* docs(SteamClient): add missed interfaces

* docs(SteamClient): update enums

* docs(SteamClient): add some things and move stuff around

* docs(SteamClient): move shared enums/interfaces to a separate file

* docs(SteamClient): add more stuff

* docs(SteamClient): reword some things

* docs(SteamClient): new BrowserView things

* docs(SteamClient): review fixes

* move to src/globals

---------

Co-authored-by: ricewind012 <58827198+ricewind012@users.noreply.github.com>
Co-authored-by: Party Wumpus <48649272+PartyWumpus@users.noreply.github.com>
Co-authored-by: Xander <xander@isxander.dev>
2025-04-23 11:20:48 -04:00

91 lines
2.3 KiB
TypeScript

import { EUIMode, Unregisterable } from "./shared";
import {EOSType} from "./system";
export interface UI {
EnsureMainWindowCreated(): void;
ExitBigPictureMode(): void;
GetDesiredSteamUIWindows(): Promise<SteamWindow[]>;
/**
* Gets information about whether your OS will be unsupported in the future or not.
*/
GetOSEndOfLifeInfo(): Promise<OSEndOfLifeInfo>;
/**
* Retrieves the current UI mode.
* @returns the current UI mode.
*/
GetUIMode(): Promise<EUIMode>;
NotifyAppInitialized(): void;
RegisterDesiredSteamUIWindowsChanged(callback: () => void): Unregisterable;
/**
* Registers a callback function to be called when a convar's value gets changed.
*
* Hard crashes if such a convar does not exist or if you can't set it.
*
* @param convar The ConVar to watch.
* @param callback The callback function to be called.
*/
RegisterForClientConVar(convar: string, callback: (value: string) => void): Unregisterable;
/**
* @todo param{0,1} are enums
*/
RegisterForErrorCondition(callback: (param0: number, param1: number) => void): Unregisterable;
RegisterForKioskModeResetSignal(callback: () => void): Unregisterable;
/**
* @todo This fires multiple times.
*/
RegisterForStartupFinished(callback: () => void): Unregisterable;
RegisterForUIModeChanged(callback: (mode: EUIMode) => void): Unregisterable;
ResetErrorCondition(): void;
/**
* Sets the UI mode to the specified value.
* @param mode The UI mode to set.
*/
SetUIMode(mode: EUIMode): void;
}
export enum EWindowType {
MainGamepadUI,
OverlayGamepadUI,
Keyboard,
ControllerConfigurator,
VR,
MainDesktopUI,
DesktopLogin,
OverlayDesktopUI,
SteamChinaReviewLauncher,
}
export interface OSEndOfLifeInfo {
bOSWillBeUnsupported: boolean;
osType: EOSType;
}
/**
* The following might have more correct information:
* https://github.com/SteamDatabase/SteamTracking/blob/master/Protobufs/webuimessages_sharedjscontext.proto
*/
export interface SteamWindow {
appid: number;
hwndParent: number;
nBrowserID: number;
strAppName: string;
unID: number;
unPID: number;
windowType: EWindowType;
x: number;
y: number;
}