dockview-core
Version:
Zero dependency layout manager supporting tabs, groups, grids and splitviews for vanilla TypeScript
46 lines (45 loc) • 1.9 kB
TypeScript
import { Overlay } from '../overlay/overlay';
import { CompositeDisposable } from '../lifecycle';
import { Gridview } from '../gridview/gridview';
import { AnchoredBox } from '../types';
import { DockviewGroupPanel, IDockviewGroupPanel } from './dockviewGroupPanel';
export interface IDockviewFloatingGroupPanel {
readonly group: IDockviewGroupPanel;
position(bounds: Partial<AnchoredBox>): void;
}
/**
* The subset of the dedicated floating title bar this panel needs to keep in
* sync. Declared structurally to avoid a circular import on `FloatingTitleBar`.
*/
export interface IAnchorTrackingTitleBar {
setGroup(group: DockviewGroupPanel): void;
}
export declare class DockviewFloatingGroupPanel extends CompositeDisposable implements IDockviewFloatingGroupPanel {
readonly overlay: Overlay;
/**
* The floating window hosts its own gridview so it can hold a nested
* splitview layout of groups, not just a single group.
*/
readonly gridview: Gridview;
private _group;
private _titleBar;
/**
* The window's representative/anchor group. A floating window can host a
* nested layout of several groups; the anchor is used for back-compat
* single-group APIs and is reassigned if it leaves the window.
*/
get group(): DockviewGroupPanel;
/**
* Register the dedicated title bar (if any) so anchor reassignment keeps
* its drag handle pointed at a group that still lives in this window.
*/
setTitleBar(titleBar: IAnchorTrackingTitleBar | undefined): void;
setAnchorGroup(group: DockviewGroupPanel): void;
constructor(group: DockviewGroupPanel, overlay: Overlay,
/**
* The floating window hosts its own gridview so it can hold a nested
* splitview layout of groups, not just a single group.
*/
gridview: Gridview);
position(bounds: Partial<AnchoredBox>): void;
}