The Layout Editor is used to lay out tiles (cards or game pieces), tile stacks, grids (each grid cell contains one tile stack), and standard widgets.
Standard Widgets
Labels, buttons, edit boxes, check boxes, radio buttons, combo boxes, memo boxes, panels, group boxes, image boxes, tabbed notebooks, etc.
Static Components
These components are used for board games, and do not support animation.
Tile
A collection of bitmaps, labels (text), and/or vector graphics. A standard playing card (Card) is a subclass of the Tile class.
Tile-stack
A linear array of (possibly overlapping) Tile objects. Tile-stacks may support multi-select, in which the user may select a particular Tile object in the stack by clicking/dragging on it with the mouse.
Grid
A one- or two-dimensional array of cells. Each cell contains one Tile-stack object.
Board-grid
A two-dimensional array of cells. Each cell contains one Tile-stack object, and all cells are the same size.
Row-grid
A one-dimensional array of cells. Each cell contains one Tile-stack object, and all cells are the same size. This grid may be oriented horizontally or vertically.
Table-grid
A two-dimensional array of cells. Each cell contains one Tile-stack object, column widths and row heights may vary, adjacent cells may be merged into one cell, and any cell may be split vertically or horizontally into 2 or more cells.
Hex-grid
A two-dimensional array of cells. Each cell contains one Tile-stack object, and all cells are the same size and shape. Each cell is shaped like a hexagon or a triangle.
Animated Components
There are 4 classes of animated components: 1.5-D, 2-D, 2.5-D, and 3-D. Tile objects in 1.5-D can only move in 4 directions: up, down, left, or right, and are always either centered in a Tile-stack object or straddling the border between 2 adjacent Tile-stack objects. Tile objects in 2-D can be located anywhere within the borders of a Tile-stack object (or can straddle the border between 2 adjacent Tile-stack objects), and can move in any direction, but vector graphics are not supported. Tile objects in 2.5-D add support for scalable vector graphics, including linear transformations. Tile objects in 3-D are composed of triangles in 3-dimensional space, with a color or texture. The XO Laptop may not be powerful enough to support 3-D Tile objects.
In addition to the usual mouse events, animated components support collision-detection events, which are triggered when 2 Tile objects in the same Tile-stack collide, or when a Tile object collides with a Tile-stack border. Both static and animated games have optional joystick support, which is treated as cursor key events, other key events (Enter, Spacebar), or mouse click events.
Tile-stack (animated)
A collection of (possibly overlapping) Tile objects. Tile-stacks may support multi-select, in which the user may select a particular Tile object in the stack by clicking/dragging on it with the mouse.
Grid (animated)
A one- or two-dimensional array of cells. Each cell contains one Tile-stack object.
Object Inspector
A rectangular window with 2 columns and multiple rows. The 1st column contains a list of properties, and the 2nd column contains a list of values. Each property has its own data type, and the values of different data types are edited in different ways. The cells of the Object Inspector are populated whenever the user selects a game component by clicking on it. If multiple game components are selected, only those properties common to all selected components are displayed. If the Events tab is selected, the first column contains a list of events.