import { IControl } from "../UiControl"; import { WindowLike } from "./UiWindow"; import { AxisDirection, ExpandAction, IconCache, Rect, DpiSize, DpiSize_2, StringKey } from "../UiCommon"; import { Vec4, Vec2 } from "../../Math/Vector"; export declare enum TabOverflow { Reduce = 0, ScrollButton = 1, ScrollBar = 2, MultipleLine = 3 } export declare enum TabSort { Unsorted = 0, Alphabet = 1, Logical = 2 } export declare enum TabUngroupedPosition { Last = 0, AfterPinned = 1 } export declare enum TabButtonDisplay { Hidden = 0, Pointing = 1, Selected = 2, Always = 3 } export declare enum TabObjectType { Tab = 0, Group = 1 } export declare enum TabItemMisc { None = 0, Disabled = 1, Pinned = 2 } export declare class TabItem { Id: number; Order: number; Icon: IconCache; Text: string; StackGroup: string; StackText: string; GroupId: number; Misc: TabItemMisc; ButtonMask: number; Color: Vec4; } export declare class TabGroup { Id: number; OrderNormal: number; OrderPinned: number; Icon: IconCache; Text: string; ButtonMask: number; Color: Vec4; } export interface ITab extends IControl { new (window: WindowLike, key?: StringKey): ITab; TabInsert(pTab: TabItem): boolean; TabGetAll(): number[]; TabGet(nId: number): TabItem; TabSet(pTab: TabItem): boolean; TabRemove(nId: number): boolean; TabClear(): Tab; TabSelect(nId: number): boolean; TabGetSelection(): number; TabSetSelected(nId: number, bSelect: boolean): Tab; TabGetSelected(nId: number): boolean; TabGetSelectionCount(): number; TabGetAllSelection(): number[]; TabSetMultipleSelection(b: boolean): Tab; TabGetMultipleSelection(): boolean; TabGetRect(nId: number, bReal: boolean): Rect; TabGetHeaderRect(): Rect; TabSetDirection(nDir: AxisDirection): Tab; TabGetDirection(): AxisDirection; TabSetVertical(b: boolean): Tab; TabGetVertical(): boolean; TabSetOverflow(nOverflow: TabOverflow): Tab; TabGetOverflow(): TabOverflow; TabSetSort(nSort: TabSort): Tab; TabGetSort(): TabSort; TabSetHeaderSize(nSize: DpiSize): Tab; TabGetHeaderSize(): DpiSize; TabSetMaxHeaderSize(nSize: DpiSize): Tab; TabGetMaxHeaderSize(): DpiSize; TabSetUngroupedPosition(nPos: TabUngroupedPosition): Tab; TabGetUngroupedPosition(): TabUngroupedPosition; TabSetUngroupedName(s: string): Tab; TabGetUngroupedName(): String; TabSetReorderable(b: boolean): Tab; TabGetReorderable(): boolean; TabSetRegroup(b: boolean): Tab; TabGetRegroup(): boolean; GroupInsert(pGroup: TabGroup): boolean; GroupGetAll(): number[]; GroupGet(nId: number): TabGroup; GroupSet(pGroup: TabGroup): boolean; GroupRemove(nId: number): boolean; GroupClear(): Tab; GroupExpand(nId: number, bPinned: boolean, nAction: ExpandAction): Tab; GroupIsExpanded(nId: number, bPinned: boolean): boolean; GroupSetGlyphVisible(b: boolean): Tab; GroupGetGlyphVisible(): boolean; ButtonClear(): Tab; ButtonSetIcon(nIndex: number, nIcon: IconCache): Tab; ButtonGetIcon(nIndex: number): IconCache; ButtonSetDisplay(nIndex: number, nDisplay: TabButtonDisplay): Tab; ButtonGetDisplay(nIndex: number): TabButtonDisplay; ButtonSetName(nIndex: number, s: string): Tab; ButtonGetName(nIndex: number): string; HeaderSetNearSize(vSize: DpiSize_2): Tab; HeaderGetNearSize(): DpiSize_2; HeaderSetNearContent(pControl: IControl): IControl; HeaderGetNearContent(): IControl; HeaderSetFarSize(vSize: DpiSize_2): Tab; HeaderGetFarSize(): DpiSize_2; HeaderSetFarContent(pControl: IControl): IControl; HeaderGetFarContent(): IControl; SetSimpleTab(b: boolean): Tab; GetSimpleTab(): boolean; SetSimpleColor(vColor: Vec4): Tab; GetSimpleColor(): Vec4; ContentSet(nId: number, pControl: IControl): IControl; ContentGet(nId: number): IControl; ContentGetRect(): Rect; ContentSetMargin(b: boolean): Tab; ContentGetMargin(): boolean; StopReordering(bCancel: boolean): Tab; SetTabKeyTip(sKeyTip: string, nId: number): Tab; GetTabKeyTip(nId: number): string; OnSelectionChange(fn: (sender: Tab) => void): Tab; OnDoubleClick(fn: (sender: Tab, nId: number, nType: TabObjectType) => void): Tab; OnRightClickOnMiddleClick(fn: (sender: Tab, nId: number, nType: TabObjectType) => void): Tab; OnMiddleClick(fn: (sender: Tab, nId: number, nType: TabObjectType) => void): Tab; OnDrag(fn: (sender: Tab, nId: number, nType: TabObjectType, vDragStartPosition: Vec2) => void): Tab; OnButtonClick(fn: (sender: Tab, nId: number, nType: TabObjectType, nButtonIndex: number) => void): Tab; } declare const Tab_base: ITab; export declare class Tab extends Tab_base { private m_HeaderNearContent; private m_HeaderFarContent; private m_Content; OnDrag(fn: (sender: Tab, nId: number, nType: TabObjectType, vDragStartPosition: Vec2) => void): Tab; GetSimpleColor(): Vec4; TabGetRect(nId: number, bReal: boolean): Rect; TabGetHeaderRect(): Rect; ContentGetRect(): Rect; HeaderSetNearContent(pControl: IControl): IControl; HeaderSetFarContent(pControl: IControl): IControl; TabRemove(nId: number): boolean; TabClear(): Tab; ContentSet(nId: number, pControl: IControl): IControl; } export {};