gui make a graphical user interface for an object

.gui is a common interface convention that creates a graphical user interface for the object

nil.gui;

"2".gui;

2.gui;

[1,nil,"tree"].gui;

gui(parent,bounds)

parent -

a Window,

a FlowView

CompositeVIew

HLayoutView

VLayoutView

nil (will create a window with a FlowView)

bounds -

anything that responds to asRect:

Nil - the gui will use its own default size

Point - width @ height

Usually the bounds are not specified. The object's gui class first adds a container,

lays its things inside that container and then shrinks the container to fit it.

If you specify a bounds, the container will be set to that size and will stay that way.

Add yourself to a parent view (window)

(

f = FlowView.new;

nil.gui(f);

"2".gui(f);

2.gui(f);

)

Each class can specify an associated guiClass, which is a subclass of ObjectGui.

If none is specified then ObjectGui will create the simplest of guis.

Examples specifying guiClass:

Object-guiClass { ^ObjectGui }

AbstractPlayer-guiClass { ^AbstractPlayerGui }

Patch-guiClass { ^PatchGui }

For any class where it is appropriate, a separate gui class is implemented, usually inheriting much of its behavior from the gui class of the superclass.

see also [ObjectGui]