From 5440f3d32684b1cab4c5b8977fb2c65cee758e15 Mon Sep 17 00:00:00 2001 From: zeroxdead Date: Mon, 6 May 2024 13:15:43 +0300 Subject: [PATCH] ui/quickSettings.d.ts: add constructor props Also contains general improvements such as addition of missing types --- .../gnome-shell/src/ui/quickSettings.d.ts | 165 ++++++++++++++---- 1 file changed, 133 insertions(+), 32 deletions(-) diff --git a/packages/gnome-shell/src/ui/quickSettings.d.ts b/packages/gnome-shell/src/ui/quickSettings.d.ts index 4dce48e..653cf47 100644 --- a/packages/gnome-shell/src/ui/quickSettings.d.ts +++ b/packages/gnome-shell/src/ui/quickSettings.d.ts @@ -7,26 +7,56 @@ import St from '@girs/st-14'; import * as PopupMenu from './popupMenu.js'; import { Slider } from './slider.js'; +/** + * @see https://gitlab.gnome.org/GNOME/gnome-shell/-/blob/main/js/ui/quickSettings.js#L21 + * @version 46 + */ +export namespace QuickSettingsItem { + interface ConstructorProps extends St.Button.ConstructorProps { + hasMenu: boolean; + } +} + /** * Class representing a quick settings item. + * + * @see https://gitlab.gnome.org/GNOME/gnome-shell/-/blob/main/js/ui/quickSettings.js#L29 + * @version 46 */ -export declare class QuickSettingsItem extends St.Button { +export class QuickSettingsItem extends St.Button { hasMenu: boolean; menu: QuickToggleMenu; /** - * Initializes a new instance of `QuickSettingsItem`. + * Initializes a new instance of `QuickToggle`. + */ + constructor(params?: Partial); + + /** + * Initializes a new instance of `QuickToggle`. */ - _init(config?: Partial): void; + _init(params?: Partial): void; +} + +/** + * @see https://gitlab.gnome.org/GNOME/gnome-shell/-/blob/main/js/ui/quickSettings.js#L43 + * @version 46 + */ +export namespace QuickToggle { + interface ConstructorProps extends St.Button.ConstructorProps { + title: string | null; + subtitle: string | null; + gicon: Gio.Icon; + } } /** * Class representing a quick toggle item. * - * @see https://gitlab.gnome.org/GNOME/gnome-shell/-/blob/main/js/ui/quickSettings.js#L43 + * @see https://gitlab.gnome.org/GNOME/gnome-shell/-/blob/main/js/ui/quickSettings.js#L56 * @version 46 */ -export declare class QuickToggle extends QuickSettingsItem { +export class QuickToggle extends QuickSettingsItem { title: string | null; subtitle: string | null; gicon: Gio.Icon; @@ -39,19 +69,37 @@ export declare class QuickToggle extends QuickSettingsItem { /** * Initializes a new instance of `QuickToggle`. */ - _init(params: Partial): void; + constructor(params?: Partial); + + /** + * Initializes a new instance of `QuickToggle`. + */ + _init(params?: Partial): void; get label(): string; set label(label: string); } +/** + * @see https://gitlab.gnome.org/GNOME/gnome-shell/-/blob/main/js/ui/quickSettings.js#L144 + * @version 46 + */ +export namespace QuickMenuToggle { + interface ConstructorProps extends St.Button.ConstructorProps { + title: string | null; + subtitle: string | null; + gicon: Gio.Icon; + menuEnabled: boolean; + } +} + /** * Class representing a quick menu toggle. * - * @see https://gitlab.gnome.org/GNOME/gnome-shell/-/blob/main/js/ui/quickSettings.js#L144 + * @see https://gitlab.gnome.org/GNOME/gnome-shell/-/blob/main/js/ui/quickSettings.js#L161 * @version 46 */ -export declare class QuickMenuToggle extends QuickSettingsItem { +export class QuickMenuToggle extends QuickSettingsItem { title: string | null; subtitle: string | null; gicon: Gio.Icon; @@ -63,13 +111,34 @@ export declare class QuickMenuToggle extends QuickSettingsItem { /** * Initializes a new instance of `QuickMenuToggle`. */ - _init(params: Partial): void; + constructor(params?: Partial); + + /** + * Initializes a new instance of `QuickMenuToggle`. + */ + _init(params?: Partial): void; +} + +/** + * @see https://gitlab.gnome.org/GNOME/gnome-shell/-/blob/main/js/ui/quickSettings.js#L235 + * @version 46 + */ +export namespace QuickSlider { + interface ConstructorProps extends St.Button.ConstructorProps { + gicon: Gio.Icon; + iconReactive: boolean; + iconLabel: string; + menuEnabled: boolean; + } } /** * Class representing a quick slider. + * + * @see https://gitlab.gnome.org/GNOME/gnome-shell/-/blob/main/js/ui/quickSettings.js#L257 + * @version 46 */ -export declare class QuickSlider extends QuickSettingsItem { +export class QuickSlider extends QuickSettingsItem { gicon: Gio.Icon; iconReactive: boolean; iconLabel: string; @@ -78,18 +147,28 @@ export declare class QuickSlider extends QuickSettingsItem { private _icon: St.Icon; private _iconButton: St.Button; + private _menuButton: St.Button; + + /** + * Initializes a new instance of `QuickSlider`. + */ + constructor(params?: Partial); /** * Initializes a new instance of `QuickSlider`. */ - _init(params: Partial): void; + _init(params?: Partial): void; } /** * Class representing a quick toggle menu. + * @see https://gitlab.gnome.org/GNOME/gnome-shell/-/blob/main/js/ui/quickSettings.js#L350 + * @version 46 */ -export declare class QuickToggleMenu extends PopupMenu.PopupMenuBase { - header: St.Widget; +export class QuickToggleMenu extends PopupMenu.PopupMenuBase { + actor: St.Widget; + + private _header: St.Widget; private _headerIcon: St.Icon; private _headerTitle: St.Label; private _headerSubtitle: St.Label; @@ -114,29 +193,16 @@ export declare class QuickToggleMenu extends PopupMenu.PopupMenuBase { close(animate: boolean): void; private _syncChecked(): void; -} - -/** - * Class representing a system indicator. - */ -export declare class SystemIndicator extends St.BoxLayout { - quickSettingsItems: QuickSettingsItem[]; - /** - * Initializes a new instance of `SystemIndicator`. - */ - _init(): void; - - /** - * Adds an indicator to the system indicator. - */ - _addIndicator(): St.Icon; + private _setOpenedSubMenu(submenu: PopupMenu.PopupSubMenu | null): void; } /** * Layout metadata for QuickSettingsLayout. + * @see https://gitlab.gnome.org/GNOME/gnome-shell/-/blob/main/js/ui/quickSettings.js#L519 + * @version 46 */ -export declare class QuickSettingsLayoutMeta extends Clutter.LayoutMeta { +export class QuickSettingsLayoutMeta extends Clutter.LayoutMeta { /** * The span of a child widget in grid columns. */ @@ -145,8 +211,10 @@ export declare class QuickSettingsLayoutMeta extends Clutter.LayoutMeta { /** * Custom layout manager for QuickSettingsMenu. + * @see https://gitlab.gnome.org/GNOME/gnome-shell/-/blob/main/js/ui/quickSettings.js#L536 + * @version 46 */ -export declare class QuickSettingsLayout extends Clutter.LayoutManager { +export class QuickSettingsLayout extends Clutter.LayoutManager { /** * Spacing between rows. */ @@ -162,11 +230,19 @@ export declare class QuickSettingsLayout extends Clutter.LayoutManager { */ nColumns: number; + /** + * Overlay actor passed to the constructor + */ + private _overlay: Clutter.Actor; + /** * Initializes a new instance of QuickSettingsLayout. */ constructor(overlay: Clutter.Actor, params?: Partial); + /** + * Initializes a new instance of QuickSettingsLayout. + */ _init(overlay: Clutter.Actor, params?: Partial): void; /** @@ -194,6 +270,7 @@ export declare class QuickSettingsLayout extends Clutter.LayoutManager { */ vfunc_allocate(container: Clutter.Actor, box: Clutter.ActorBox): void; + private _containerStyleChanged(): void; private _getColSpan(container: Clutter.Actor, child: Clutter.Actor): number; private _getMaxChildWidth(container: Clutter.Actor): [number, number]; private _getRows(container: Clutter.Actor): Clutter.Actor[][]; @@ -202,8 +279,10 @@ export declare class QuickSettingsLayout extends Clutter.LayoutManager { /** * Class representing the QuickSettingsMenu. + * @see https://gitlab.gnome.org/GNOME/gnome-shell/-/blob/main/js/ui/quickSettings.js#L708 + * @version 46 */ -export declare class QuickSettingsMenu extends PopupMenu.PopupMenu { +export class QuickSettingsMenu extends PopupMenu.PopupMenu { private _dimEffect: Clutter.BrightnessContrastEffect; private _boxPointer: St.Widget; private _grid: St.Widget; @@ -235,3 +314,25 @@ export declare class QuickSettingsMenu extends PopupMenu.PopupMenu { private _completeAddItem(item: Clutter.Actor, colSpan: number): void; private _setDimmed(dim: boolean): void; } + +/** + * Class representing a system indicator. + */ +export class SystemIndicator extends St.BoxLayout { + quickSettingsItems: QuickSettingsItem[]; + + /** + * Initializes a new instance of `SystemIndicator`. + */ + _init(): void; + + /** + * Sets the visibility of the indicator based on the visibility of its children + */ + _syncIndicatorsVisible(): void; + + /** + * Adds an indicator to the system indicator. + */ + _addIndicator(): St.Icon; +}