import { IControl } from "../UiControl"; import { WindowLike } from "./UiWindow"; import { IconCache, Rect, ExpandAction, DpiSize } from "../UiCommon"; import { Vec2 } from "../../Math/Vector"; export declare type TreeItemHandle = number; export declare enum TreeItemFlag { None = 0, Text = 1, Icon = 4, Blank = 8 } export declare class TreeGenericHandle { private constructor(); static get Root(): TreeItemHandle; static get First(): TreeItemHandle; static get Last(): TreeItemHandle; static get Sort(): TreeItemHandle; } export declare class TreeItem { Flag: TreeItemFlag; Icon: IconCache; Text: string; Item: TreeItemHandle; Blank: boolean; } export declare class TreeInsert { Parent: TreeItemHandle; After: TreeItemHandle; Item: TreeItem; } export declare enum TreeItemPart { Item = 0, Glyph = 1, Icon = 2, Text = 3 } export declare enum TreeItemPlace { Item = 0, Above = 1, Below = 2 } export declare enum TreeSelectionMode { Single = 0, Multiple = 1 } export declare enum TreeNextItem { Child = 0, Parent = 1, Next = 2, Previous = 3, DisplayNext = 4, DisplayPrevious = 5 } export declare class TreeHitTestResult { Item: TreeItemHandle; Part: TreeItemPart; Place: TreeItemPlace; PlaceAb: TreeItemPlace; } export declare class TreeEdit { Text: string; CanEdit: boolean; } export declare class TreeEditFinish { Text: string; Canceled: boolean; } export interface ITree extends IControl { new (window: WindowLike): ITree; ItemInsert(pInsert: TreeInsert): TreeItemHandle; ItemRemove(pItem: TreeItemHandle): boolean; ItemClear(): Tree; ItemSelect(pItem: TreeItemHandle): Tree; ItemSetSelected(pItem: TreeItemHandle, bSelect: boolean): Tree; ItemSort(pItem: TreeItemHandle, bSortChild: boolean): Tree; ItemSet(pItem: TreeItem): boolean; ItemGet(pItem: TreeItemHandle): TreeItem; ItemGetNext(pItem: TreeItemHandle, nNext: TreeNextItem): TreeItemHandle; ItemGetCountPerPage(bIncludePartial: boolean): number; ItemGetSelectionCount(): number; ItemGetSelection(): TreeItemHandle; ItemGetSelected(pItem: TreeItemHandle): boolean; ItemGetSelectionAll(): TreeItemHandle[]; ItemEnsure(pItem: TreeItemHandle): Tree; ItemGetTop(): TreeItemHandle; ItemGetTopIndex(): number; ItemSetTopIndex(nIndex: number): Tree; ItemIsVisible(pItem: TreeItemHandle): boolean; ItemGetRect(pItem: TreeItemHandle, nPart: TreeItemPart): Rect; ItemHitTest(pt: Vec2): TreeHitTestResult; ItemExpand(pItem: TreeItemHandle, nExpand: ExpandAction, bIncludeChild: boolean): Tree; ItemIsExpanded(pItem: TreeItemHandle): boolean; ItemEdit(pItem: TreeItemHandle): boolean; ItemIsEdit(): boolean; ItemEditFinish(bCancel: boolean): Tree; ItemSetHighlight(pItem: TreeItemHandle, nPlace: TreeItemPlace): Tree; SetAutoEdit(bAutoEdit: boolean): Tree; GetAutoEdit(): boolean; SetAutoScrollOnHover(b: boolean): Tree; GetAutoScrollOnHover(): boolean; SetNodeLine(b: boolean): Tree; GetNodeLine(): boolean; SetNodeLineHighlight(b: boolean): Tree; GetNodeLineHighlight(): boolean; SetSingleClickExpand(b: boolean): Tree; GetSingleClickExpand(): boolean; SetSelectionMode(nSelMode: TreeSelectionMode): Tree; GetSelectionMode(): TreeSelectionMode; SetIndentWidth(nWidth: DpiSize): Tree; GetIndentWidth(): DpiSize; SetScrollPosition(pt: Vec2, bScroll: boolean): Tree; GetScrollPosition(): Vec2; GetScrollSize(): Vec2; GetScrollMax(): Vec2; OnSelectionChange(fn: (sender: Tree) => void): Tree; OnDoubleClick(fn: (sender: Tree, pItem: TreeItemHandle) => void): Tree; OnRightClick(fn: (sender: Tree, pItem: TreeItemHandle) => void): Tree; OnEditBegin(fn: (sender: Tree, pItem: TreeItemHandle, pEidt: TreeEdit) => void): Tree; OnEditEnd(fn: (sender: Tree, pItem: TreeItemHandle, pEidt: TreeEdit) => void): Tree; OnEditFinish(fn: (sender: Tree, pItem: TreeItemHandle, pEidt: TreeEditFinish) => void): Tree; OnDragBegin(fn: (sender: Tree) => boolean): Tree; } declare const Tree_base: ITree; export declare class Tree extends Tree_base { ItemGetRect(pItem: TreeItemHandle, nPart: TreeItemPart): Rect; GetScrollPosition(): Vec2; GetScrollSize(): Vec2; GetScrollMax(): Vec2; } export {};