UNPKG

phaser4-rex-plugins

Version:
166 lines (127 loc) 5.3 kB
import Label from '../label/Label'; import Buttons from '../buttons/Buttons'; import FixWidthButtons from '../fixwidthbuttons/FixWidthButtons'; import Scrollable from '../utils/scrollable/Scrollable'; export default DropDownList; declare namespace DropDownList { type CreateButtonCallbackType = ( this: DropDownList, scene: Phaser.Scene, option: any, index: number, options: any[] ) => Phaser.GameObjects.GameObject; type CreateGeneralGameObjectCallbackType = ( this: DropDownList, scene: Phaser.Scene, ) => Phaser.GameObjects.GameObject; type OnButtonClickCallbackType = ( this: DropDownList, button: Phaser.GameObjects.GameObject, index: number, pointer: Phaser.Input.Pointer, event: Phaser.Types.Input.EventData ) => void; type OnButtonOverCallbackType = ( this: DropDownList, button: Phaser.GameObjects.GameObject, index: number, pointer: Phaser.Input.Pointer, event: Phaser.Types.Input.EventData ) => void; type OnButtonOutCallbackType = ( this: DropDownList, button: Phaser.GameObjects.GameObject, index: number, pointer: Phaser.Input.Pointer, event: Phaser.Types.Input.EventData ) => void; type AlignParentType = 'text' | 'icon' | 'label'; type ExpandDirectionType = 0 | 1 | 'down' | 'up'; type SetValueCallbackType = ( dropDownList: DropDownList, value?: any, previousValue?: any, ) => void; interface IListSpace { left?: number, right?: number, top?: number, bottom?: number, item?: number } interface IWrapListSpace { left?: number, right?: number, top?: number, bottom?: number, item?: number, line?: number } interface IScrollableListSpace extends IListSpace { panel?: number } interface IScrollableWrapListSpace extends IWrapListSpace { panel?: number } type SpaceType = IListSpace | IWrapListSpace | IScrollableListSpace | IScrollableWrapListSpace; interface IConfig extends Label.IConfig { options?: any[], list?: { createBackgroundCallback?: CreateGeneralGameObjectCallbackType; createButtonCallback?: CreateButtonCallbackType; createTrackCallback?: CreateGeneralGameObjectCallbackType; createThumbCallback?: CreateGeneralGameObjectCallbackType; scroller?: Scrollable.IScrollerConfig; mouseWheelScroller?: Scrollable.IMouseWheelScroller; sliderAdaptThumbSize?: boolean; onButtonClick?: OnButtonClickCallbackType; onButtonOver?: OnButtonOverCallbackType; onButtonOut?: OnButtonOutCallbackType; easeIn?: number; easeOut?: number; wrap?: boolean; maxHeight?: number; width?: number; height?: number; alignParent?: AlignParentType; alignSide?: string; expandDirection?: ExpandDirectionType; bounds?: Phaser.Geom.Rectangle; space?: SpaceType; draggable?: boolean; }, setValueCallback?: SetValueCallbackType; setValueCallbackScope?: object; value?: any; } } declare class DropDownList extends Label { constructor( scene: Phaser.Scene, config?: DropDownList.IConfig ); readonly isOpened: boolean; listPanel: undefined | Buttons | FixWidthButtons; setOptions(options: any[]): this; options: any[]; openListPanel(): this; closeListPanel(): this; toggleListPanel(): this; setValue(value?: any): this; value: any; setCreateButtonCallback(callback?: DropDownList.CreateButtonCallbackType): this; setCreateBackgroundCallback(callback?: DropDownList.CreateGeneralGameObjectCallbackType): this; setCreateListSliderTrackCallback(callback?: DropDownList.CreateGeneralGameObjectCallbackType): this; setCreateListSliderThumbCallback(callback?: DropDownList.CreateGeneralGameObjectCallbackType): this; setButtonClickCallback(callback?: DropDownList.OnButtonClickCallbackType): this; setButtonOverCallback(callback?: DropDownList.OnButtonOverCallbackType): this; setButtonOutCallback(callback?: DropDownList.OnButtonOutCallbackType): this; setListEaseInDuration(duration?: number): this; setListEaseOutDuration(duration?: number): this; setWrapEnable(enable?: boolean): this; setListWidth(width?: number): this; setListHeight(height?: number): this; setListSize(width?: number, height?: number): this; setListAlignmentMode(mode?: DropDownList.AlignParentType): this; setListAlignmentSide(side?: string): this; setListBounds(bounds: Phaser.Geom.Rectangle): this; setListSpace(space?: DropDownList.SpaceType): this; setListDraggable(enable?: boolean): this; emitButtonClick(index: number): this; emitButtonOver(index: number): this; currentOverIndex: number; focusNextButton(): this; focusPrevButton(): this; }