PanelManager

Description

Manages layout of panels surrounding the editor area, and size of the editor area (but not its contents).

Updates panel sizes when the window is resized. Maintains the max resizing limits for panels, based on currently available window size.

Events:

  • editorAreaResize -- When editor-holder's size changes for any reason (including panel show/hide
        panel resize, or the window resize).
        The 2nd arg is the new editor-holder height.
        The 3rd arg is a refreshHint flag for internal EditorManager use.
    

Variables Summary

Functions Summary

Variables

$editorHolder

$windowContent

windowResizing

Functions

Panel

Represents a panel below the editor area (a child of ".content").

$panel non-nullable jQueryObject
The entire panel, including any chrome, already in the DOM.
minSize optional number
Minimum height of panel in px.
Public API

_notifyLayoutChange

Used by EditorManager to notify us of layout changes our normal panel/window listeners wouldn't detect. For internal use only: most code should call EditorManager.resizeEditor().

calcEditorHeight

Calculates the available height for the full-size Editor (or the no-editor placeholder), accounting for the current size of all visible panels, toolbar, & status bar.

Returns: number
Public API

createBottomPanel

Creates a new panel beneath the editor area and above the status bar footer. Panel is initially invisible.

id non-nullable string
Unique id for this panel. Use package-style naming, e.g. "myextension.feature.panelname"
$panel non-nullable jQueryObject
DOM content to use as the panel. Need not be in the document yet.
minSize optional number
Minimum height of panel in px.
Returns: !Panel

handleWindowResize

Trigger editor area resize whenever the window is resized

listenToResize

Trigger editor area resize whenever the given panel is shown/hidden/resized

triggerEditorResize

Calculates a new size for editor-holder and resizes it accordingly, then and dispatches the "editorAreaResize" event. (The editors within are resized by EditorManager, in response to that event).

refreshHint optional string
One of "skip", "force", or undefined. See EditorManager docs.

updateResizeLimits

Updates panel resize limits to disallow making panels big enough to shrink editor area below 0