@deephaven/golden-layout
Version:
A multi-screen javascript Layout manager
55 lines • 1.67 kB
TypeScript
import type LayoutManager from '../LayoutManager';
import EventEmitter from './EventEmitter';
/**
* An EventEmitter singleton that propagates events
* across multiple windows. This is a little bit trickier since
* windows are allowed to open childWindows in their own right
*
* This means that we deal with a tree of windows. Hence the rules for event propagation are:
*
* - Propagate events from this layout to both parents and children
* - Propagate events from parent to this and children
* - Propagate events from children to the other children (but not the emitting one) and the parent
*/
declare class EventHub extends EventEmitter {
private _layoutManager;
private _dontPropagateToParent;
private _childEventSource;
private _boundOnEventFromChild;
constructor(layoutManager: LayoutManager);
/**
* Called on every event emitted on this eventHub, regardles of origin.
*/
private _onEventFromThis;
/**
* Called by the parent layout.
*
* @param args Event name + arguments
*/
private _$onEventFromParent;
/**
* Callback for child events raised on the window
*
* @param event
*/
private _onEventFromChild;
/**
* Propagates the event to the parent by emitting
* it on the parent's DOM window
*
* @param args Event name + arguments
*/
private _propagateToParent;
/**
* Propagate events to children
*
* @param args Event name + arguments
*/
private _propagateToChildren;
/**
* Destroys the EventHub
*/
destroy(): void;
}
export default EventHub;
//# sourceMappingURL=EventHub.d.ts.map