Panels
CanvasMap includes a series of Panels (CMPanel objects) for the tools, buttons, footer. This web page also describes how the MainContainer and the Canvas element interact.
Resizing Panels
MainContainer contains MouseDown, MouseMove, and MouseUp handlers to resize panels. These have to be in the MainContainer because while resizing a panel, the mouse may move out of the panel. There is also a hanlder at the document level for when the mouse moves outside the MainContainer.
Panels that do not resize inherit from CMPanel. CMPanel's SetElement() function is called to specify the DOM element for the panel.
Panels that resize inherit from CMPanelSide.