lazy-widgets
Version:
Typescript retained mode GUI for the HTML canvas API
211 lines (210 loc) • 10.4 kB
TypeScript
import { TextAlignMode } from '../helpers/TextHelper.js';
import type { FlexAlignment2D } from './FlexAlignment2D.js';
import type { ThemeProperties } from './ThemeProperties.js';
import type { Alignment2D } from './Alignment2D.js';
import type { FillStyle } from './FillStyle.js';
import type { Padding } from './Padding.js';
import type { Theme } from './Theme.js';
import type { CornerRadii } from '../widgets/CornerRadii.js';
/**
* The base class for {@link Widget} and {@link Theme}. The backbone of the
* theming system.
*
* @category Theme
*/
export declare class BaseTheme implements ThemeProperties {
/** See {@link BaseTheme#fallbackTheme} */
private _fallbackTheme?;
/** Listener for theme fallback */
private listener;
/**
* The fallback theme. If this theme has a missing property, the fallback
* theme's property will be used instead. This will automatically
* (un)subscribe to/from the fallback theme.
*/
protected get fallbackTheme(): Theme | undefined;
protected set fallbackTheme(newTheme: Theme | undefined);
/**
* Called when the fallback theme changes. Does nothing by default.
*
* @param property - The property name of the theme property that was updated. If a general theme update, then this will be null and all theme properties should be treated as changed.
*/
protected onThemeUpdated(property?: string | null): void;
constructor(properties?: ThemeProperties, fallbackTheme?: Theme);
/** See {@link BaseTheme#canvasFill}. For internal use only. */
private _canvasFill?;
get canvasFill(): FillStyle;
set canvasFill(value: FillStyle | undefined);
/** See {@link BaseTheme#containerPadding}. For internal use only. */
private _containerPadding?;
get containerPadding(): Padding;
set containerPadding(value: Padding | undefined);
/** See {@link BaseTheme#containerAlignment}. For internal use only. */
private _containerAlignment?;
get containerAlignment(): Alignment2D;
set containerAlignment(value: Alignment2D | undefined);
/** See {@link BaseTheme#multiContainerSpacing}. For internal use only. */
private _multiContainerSpacing?;
get multiContainerSpacing(): number;
set multiContainerSpacing(value: number | undefined);
/** See {@link BaseTheme#multiContainerAlignment}. For internal use only. */
private _multiContainerAlignment?;
get multiContainerAlignment(): FlexAlignment2D;
set multiContainerAlignment(value: FlexAlignment2D | undefined);
/** See {@link BaseTheme#primaryFill}. For internal use only. */
private _primaryFill?;
get primaryFill(): FillStyle;
set primaryFill(value: FillStyle | undefined);
/** See {@link BaseTheme#accentFill}. For internal use only. */
private _accentFill?;
get accentFill(): FillStyle;
set accentFill(value: FillStyle | undefined);
/** See {@link BaseTheme#backgroundFill}. For internal use only. */
private _backgroundFill?;
get backgroundFill(): FillStyle;
set backgroundFill(value: FillStyle | undefined);
/** See {@link BaseTheme#backgroundGlowFill}. For internal use only. */
private _backgroundGlowFill?;
get backgroundGlowFill(): FillStyle;
set backgroundGlowFill(value: FillStyle | undefined);
/** See {@link BaseTheme#sliderMinLength}. For internal use only. */
private _sliderMinLength?;
get sliderMinLength(): number;
set sliderMinLength(value: number | undefined);
/** See {@link BaseTheme#sliderThickness}. For internal use only. */
private _sliderThickness?;
get sliderThickness(): number;
set sliderThickness(value: number | undefined);
/** See {@link BaseTheme#bodyTextFont}. For internal use only. */
private _bodyTextFont?;
get bodyTextFont(): string;
set bodyTextFont(value: string | undefined);
/** See {@link BaseTheme#bodyTextFill}. For internal use only. */
private _bodyTextFill?;
get bodyTextFill(): FillStyle;
set bodyTextFill(value: FillStyle | undefined);
/** See {@link BaseTheme#bodyTextHeight}. For internal use only. */
private _bodyTextHeight?;
get bodyTextHeight(): number | null;
set bodyTextHeight(value: number | null | undefined);
/** See {@link BaseTheme#bodyTextSpacing}. For internal use only. */
private _bodyTextSpacing?;
get bodyTextSpacing(): number | null;
set bodyTextSpacing(value: number | null | undefined);
/** See {@link BaseTheme#bodyTextAlign}. For internal use only. */
private _bodyTextAlign?;
get bodyTextAlign(): TextAlignMode | number;
set bodyTextAlign(value: TextAlignMode | number | undefined);
/** See {@link BaseTheme#checkboxLength}. For internal use only. */
private _checkboxLength?;
get checkboxLength(): number;
set checkboxLength(value: number | undefined);
/** See {@link BaseTheme#checkboxInnerPadding}. For internal use only. */
private _checkboxInnerPadding?;
get checkboxInnerPadding(): number;
set checkboxInnerPadding(value: number | undefined);
/** See {@link BaseTheme#inputBackgroundFill}. For internal use only. */
private _inputBackgroundFill?;
get inputBackgroundFill(): FillStyle;
set inputBackgroundFill(value: FillStyle | undefined);
/** See {@link BaseTheme#inputSelectBackgroundFill}. For internal use only. */
private _inputSelectBackgroundFill?;
get inputSelectBackgroundFill(): FillStyle;
set inputSelectBackgroundFill(value: FillStyle | undefined);
/** See {@link BaseTheme#inputTextFont}. For internal use only. */
private _inputTextFont?;
get inputTextFont(): string;
set inputTextFont(value: string | undefined);
/** See {@link BaseTheme#inputTextFill}. For internal use only. */
private _inputTextFill?;
get inputTextFill(): FillStyle;
set inputTextFill(value: FillStyle | undefined);
/** See {@link BaseTheme#inputTextFillDisabled}. For internal use only. */
private _inputTextFillDisabled?;
get inputTextFillDisabled(): FillStyle;
set inputTextFillDisabled(value: FillStyle | undefined);
/** See {@link BaseTheme#inputTextFillInvalid}. For internal use only. */
private _inputTextFillInvalid?;
get inputTextFillInvalid(): FillStyle;
set inputTextFillInvalid(value: FillStyle | undefined);
/** See {@link BaseTheme#inputTextHeight}. For internal use only. */
private _inputTextHeight?;
get inputTextHeight(): number | null;
set inputTextHeight(value: number | null | undefined);
/** See {@link BaseTheme#inputTextSpacing}. For internal use only. */
private _inputTextSpacing?;
get inputTextSpacing(): number | null;
set inputTextSpacing(value: number | null | undefined);
/** See {@link BaseTheme#inputTextInnerPadding}. For internal use only. */
private _inputTextInnerPadding?;
get inputTextInnerPadding(): number;
set inputTextInnerPadding(value: number | undefined);
/** See {@link BaseTheme#inputTextMinWidth}. For internal use only. */
private _inputTextMinWidth?;
get inputTextMinWidth(): number;
set inputTextMinWidth(value: number | undefined);
/** See {@link BaseTheme#inputTextAlign}. For internal use only. */
private _inputTextAlign?;
get inputTextAlign(): TextAlignMode | number;
set inputTextAlign(value: TextAlignMode | number | undefined);
/** See {@link BaseTheme#blinkRate}. For internal use only. */
private _blinkRate?;
get blinkRate(): number;
set blinkRate(value: number | undefined);
/** See {@link BaseTheme#cursorThickness}. For internal use only. */
private _cursorThickness?;
get cursorThickness(): number;
set cursorThickness(value: number | undefined);
/** See {@link BaseTheme#cursorIndicatorSize}. For internal use only. */
private _cursorIndicatorSize?;
get cursorIndicatorSize(): number;
set cursorIndicatorSize(value: number | undefined);
/** See {@link BaseTheme#scrollBarThickness}. For internal use only. */
private _scrollBarThickness?;
get scrollBarThickness(): number;
set scrollBarThickness(value: number | undefined);
/** See {@link BaseTheme#scrollBarMinPercent}. For internal use only. */
private _scrollBarMinPercent?;
get scrollBarMinPercent(): number;
set scrollBarMinPercent(value: number | undefined);
/** See {@link BaseTheme#scrollBarMinPixels}. For internal use only. */
private _scrollBarMinPixels?;
get scrollBarMinPixels(): number;
set scrollBarMinPixels(value: number | undefined);
/** See {@link BaseTheme#radioButtonLength}. For internal use only. */
private _radioButtonLength?;
get radioButtonLength(): number;
set radioButtonLength(value: number | undefined);
/** See {@link BaseTheme#radioButtonInnerPadding}. For internal use only. */
private _radioButtonInnerPadding?;
get radioButtonInnerPadding(): number;
set radioButtonInnerPadding(value: number | undefined);
/** See {@link BaseTheme#roundedCornersRadii}. For internal use only. */
private _roundedCornersRadii?;
get roundedCornersRadii(): CornerRadii;
set roundedCornersRadii(value: CornerRadii | undefined);
/** See {@link BaseTheme#tooltipFill}. For internal use only. */
private _tooltipFill?;
get tooltipFill(): FillStyle;
set tooltipFill(value: FillStyle | undefined);
/** See {@link BaseTheme#tooltipPadding}. For internal use only. */
private _tooltipPadding?;
get tooltipPadding(): Padding;
set tooltipPadding(value: Padding | undefined);
/** See {@link BaseTheme#tooltipRadii}. For internal use only. */
private _tooltipRadii?;
get tooltipRadii(): CornerRadii;
set tooltipRadii(value: CornerRadii | undefined);
/** See {@link BaseTheme#scrollbarCornersRadii}. For internal use only. */
private _scrollbarCornersRadii?;
get scrollbarCornersRadii(): CornerRadii;
set scrollbarCornersRadii(value: CornerRadii | undefined);
/** See {@link BaseTheme#scrollbarPadding}. For internal use only. */
private _scrollbarPadding?;
get scrollbarPadding(): Padding;
set scrollbarPadding(value: Padding | undefined);
/** See {@link BaseTheme#mediaFallbackFill}. For internal use only. */
private _mediaFallbackFill?;
get mediaFallbackFill(): FillStyle;
set mediaFallbackFill(value: FillStyle | undefined);
}