## Designer

Designers are visual design time editors for creating and manipulating components and properties.
Each designer maintains it's own method in the generated source.
Clicking on an item in a Designer will select display that item's properties and events in the Inspector.
Double clicking will open the default editor (like a collection editor) or define the default event for the control.

The following designers are currently available:

- Designer
- DataView
- Collection Editors

The Frame Designer is a GUI building view on wxFrame type modules that cooperates closely with the Inspector. It is used to select, size and position controls.
It maintains the _init_ctrls method.
Multiple selection is supported by holding down shift while selecting controls. Only sibling controls can be in a multiple selection.
Selections can be cut, copied and pasted to and from the clipboard in the Frame Designer and the DataView. When a selection is copied, the equivalent code is put on the clipboard and can also be pasted directly into your source code.
Layout Anchors have been integrated with the Frame Designer. If a control has any anchors set, it will show the selection tags as a shade of blue instead of black.
Right click on a top, bottom, left or right selection tag to set or unset the anchor.

When a designer is opened a session is started. When you end the session, either by posting or cancelling, all your changes will be applied to the source.
Closing the Designer frame also ends the session and posts the changes.
While the designer is open for a module, the source code will be read-only.

A DataView will also be opened inside the Editor associated with the Designer and closed on posting / cancelling, this will usually be the last view of the module in the Editor.
It maintains the _init_utils method.
Invisible controls located on the Utilities page of the Palette must be created/inspected in this view.

Collection Editors maintain list like properties.
Selecting an item will display it's properties and events in the Inspector.
Each maintain a _init_coll_* method.