dockview-core
Version:
Zero dependency layout manager supporting tabs, grids and splitviews
84 lines (83 loc) • 3.57 kB
TypeScript
import { Emitter, Event } from '../events';
import { GridviewPanelApiImpl, GridviewPanelApi } from './gridviewPanelApi';
import { DockviewGroupPanel } from '../dockview/dockviewGroupPanel';
import { DockviewPanel } from '../dockview/dockviewPanel';
import { DockviewComponent } from '../dockview/dockviewComponent';
import { DockviewPanelRenderer } from '../overlay/overlayRenderContainer';
import { DockviewGroupMoveParams, DockviewGroupPanelFloatingChangeEvent } from './dockviewGroupPanelApi';
import { DockviewGroupLocation } from '../dockview/dockviewGroupPanelModel';
export interface TitleEvent {
readonly title: string;
}
export interface RendererChangedEvent {
readonly renderer: DockviewPanelRenderer;
}
export interface ActiveGroupEvent {
readonly isActive: boolean;
}
export interface GroupChangedEvent {
}
export type DockviewPanelMoveParams = DockviewGroupMoveParams;
export interface DockviewPanelApi extends Omit<GridviewPanelApi, 'setVisible' | 'onDidConstraintsChange' | 'setConstraints'> {
/**
* The id of the tab component renderer
*
* Undefined if no custom tab renderer is provided
*/
readonly tabComponent: string | undefined;
readonly group: DockviewGroupPanel;
readonly isGroupActive: boolean;
readonly renderer: DockviewPanelRenderer;
readonly title: string | undefined;
readonly onDidActiveGroupChange: Event<ActiveGroupEvent>;
readonly onDidGroupChange: Event<GroupChangedEvent>;
readonly onDidTitleChange: Event<TitleEvent>;
readonly onDidRendererChange: Event<RendererChangedEvent>;
readonly location: DockviewGroupLocation;
readonly onDidLocationChange: Event<DockviewGroupPanelFloatingChangeEvent>;
close(): void;
setTitle(title: string): void;
setRenderer(renderer: DockviewPanelRenderer): void;
moveTo(options: DockviewPanelMoveParams): void;
maximize(): void;
isMaximized(): boolean;
exitMaximized(): void;
/**
* If you require the Window object
*/
getWindow(): Window;
}
export declare class DockviewPanelApiImpl extends GridviewPanelApiImpl implements DockviewPanelApi {
private readonly panel;
private readonly accessor;
private _group;
private readonly _tabComponent;
readonly _onDidTitleChange: Emitter<TitleEvent>;
readonly onDidTitleChange: Event<TitleEvent>;
private readonly _onDidActiveGroupChange;
readonly onDidActiveGroupChange: Event<ActiveGroupEvent>;
private readonly _onDidGroupChange;
readonly onDidGroupChange: Event<GroupChangedEvent>;
readonly _onDidRendererChange: Emitter<RendererChangedEvent>;
readonly onDidRendererChange: Event<RendererChangedEvent>;
private readonly _onDidLocationChange;
readonly onDidLocationChange: Event<DockviewGroupPanelFloatingChangeEvent>;
private readonly groupEventsDisposable;
get location(): DockviewGroupLocation;
get title(): string | undefined;
get isGroupActive(): boolean;
get renderer(): DockviewPanelRenderer;
set group(value: DockviewGroupPanel);
get group(): DockviewGroupPanel;
get tabComponent(): string | undefined;
constructor(panel: DockviewPanel, group: DockviewGroupPanel, accessor: DockviewComponent, component: string, tabComponent?: string);
getWindow(): Window;
moveTo(options: DockviewPanelMoveParams): void;
setTitle(title: string): void;
setRenderer(renderer: DockviewPanelRenderer): void;
close(): void;
maximize(): void;
isMaximized(): boolean;
exitMaximized(): void;
private setupGroupEventListeners;
}