feat: expose additional events

This commit is contained in:
mathuo 2022-02-22 19:53:46 +00:00
parent 3dbe00d2a1
commit 4ef8049413
No known key found for this signature in database
GPG Key ID: C6EEDEFD6CA07281
3 changed files with 29 additions and 4 deletions

View File

@ -20,7 +20,7 @@ import {
SerializedPaneview,
IPaneviewComponent,
} from '../paneview/paneviewComponent';
import { IPaneviewPanel } from '../paneview/paneviewPanel';
import { IPaneviewPanel, PaneviewPanel } from '../paneview/paneviewPanel';
import {
AddSplitviewComponentOptions,
ISplitviewComponent,
@ -30,8 +30,9 @@ import {
import { Orientation, Sizing } from '../splitview/core/splitview';
import { ISplitviewPanel } from '../splitview/splitviewPanel';
import { GroupviewPanel } from '../groupview/groupviewPanel';
import { Event } from '../events';
import { Emitter, Event } from '../events';
import { IDisposable } from '../lifecycle';
import { PaneviewDropEvent } from '../react';
export interface CommonApi {
readonly height: number;
@ -147,6 +148,29 @@ export class PaneviewApi implements CommonApi {
return this.component.onDidLayoutChange;
}
get onDidAddView(): Event<PaneviewPanel> {
return this.component.onDidAddView;
}
get onDidRemoveView(): Event<PaneviewPanel> {
return this.component.onDidRemoveView;
}
get onDidDrop(): Event<PaneviewDropEvent> {
const emitter = new Emitter<PaneviewDropEvent>();
const disposable = this.component.onDidDrop((e) => {
emitter.fire({ ...e, api: this });
});
emitter.dispose = () => {
disposable.dispose();
emitter.dispose();
};
return emitter.event;
}
constructor(private readonly component: IPaneviewComponent) {}
getPanels(): IPaneviewPanel[] {

View File

@ -20,6 +20,7 @@ export class Paneview extends CompositeDisposable implements IDisposable {
private paneItems: PaneItem[] = [];
private _orientation: Orientation;
private animationTimer: any | undefined;
private skipAnimation = false;
private readonly _onDidChange = new Emitter<void>();
readonly onDidChange: Event<void> = this._onDidChange.event;
@ -147,8 +148,6 @@ export class Paneview extends CompositeDisposable implements IDisposable {
return paneItem;
}
private skipAnimation = false;
public moveView(from: number, to: number) {
if (from === to) {
return;

View File

@ -99,6 +99,8 @@ export interface IPaneviewComponent extends IDisposable {
readonly height: number;
readonly minimumSize: number;
readonly maximumSize: number;
readonly onDidAddView: Event<PaneviewPanel>;
readonly onDidRemoveView: Event<PaneviewPanel>;
readonly onDidDrop: Event<PaneviewDropEvent2>;
readonly onDidLayoutChange: Event<void>;
addPanel(options: AddPaneviewCompponentOptions): IDisposable;