Terrapin Resources

Panels

All panels (LISTENER, GRAPHICS, TOOLBOX, FILES, HELP, EDITOR, DEBUGGER, ICONBAR) have the same core set of properties that control their layout:

LAYOUT

Controls the position and size of a panel.

Description

The LAYOUT property is a four-element list of the left, top, width, and height values. All values represent percentage values between 0 and 100, which refer to width and height of Logo’s container window. A width of 50, for example, would cause the panel’s width to be half of the window width.

Note that the LAYOUT property of the ICONBAR is read-only, and reports a list of four zeros, because its position is fixed.

Example

GPROP “LISTENER “LAYOUT Result: [0 60 100 40]

STATE

Controls the display mode of a panel.

Description

This property controls the display mode of a panel. It can be one of four values: NORMAL, MINIMIZED, MAXIMIZED, or HIDDEN.

Note that the ICONBAR treats every other value than HIDDEN as NORMAL, because its position and size cannot be changed.

Example

PPROP “EDITOR “STATE “HIDDEN

LISTENER

Apart from the layout properties, the Listener panel offers properties to track keyboard input and menu commands.

KEY

Reports the last key that the user has typed.

Description

KEY reports the last key that the user has typed. The property is read-only. You can monitor keyboard input with the WHEN command.

Example

WHEN “LISTENER [KEY = “HOME] [PR [GOING HOME]]

GRAPHICS

The Graphics panel offers the following properties in addition to the layout properties:

BGCOLOR

Controls the background color of the Graphics panel.

Description

BGCOLOR controls the background color of the Graphics panel. Initially, this color is transparent so background images can shine through. Try to set the background color’s opacity value together with a background image!

SETBG sets this property.

Example

PPROP “GRAPHICS “BGCOLOR [255 0 0 0.5]

BGPATTERN

Sets the background pattern.

Description

BGPATTERN sets the background pattern using the current background color. Please see the SETBGPATTERN command for alist of possible input values.

Example

ASK “GRAPHICS “BGPATTERN Result: 0

BUTTON

Reports the state of the mouse’s buttons.

Description

BUTTON reports the state of the mouse buttons. The property is read-only. You can monitor the state of the buttons with the WHEN command.

The value of the BUTTON property is 1 for the left button down, 2 for the right button down, and 4 for the middle button down. All of these values can be combined if more than one button is pressed. If the mouse supports more than three buttons, more values like 8, 16, or 32 are possible.

Example

WHEN “GRAPHICS [BUTTON = 1] [PR [LEFT MOUSE BUTTON CLICKED]]

MOUSE

Reports the position of the mouse.

Description

Reports the position of the mouse over the Graphics panel as a two-element list of turtle coordinates. The property is read-only. You can monitor the mouse position with the WHEN command.

Example

WHEN [MOUSE] [PR SE [MOUSE MOVED TO] MOUSE]

OFFSET

Controls the location of the Graphics panel’s center point.

Description

This property controls the offset of the entire Graphics panel from the original center point. Setting the offset’s first element to, for example, 100, moves all content of the Graphics panel 100 pixels to the right. If you provide a single input (a number) as input, it sets the offset to that value in both directions.

Note: Due to a bug in Logo, the value for the vertical offset is inverted. A positive value moves the origin down, not up.

Example

GPROP “GRAPHICS “OFFSET Result: [0 0]

SIZE (DRAWSIZE)

Reports the size of the Graphics panel.

Description

SIZE reports the size of the Graphics panel in pixels. The property is read-only. You can monitor any changes of the panel size with the WHEN command.

Example

GPROP “GRAPHICS “SIZE Result: [1360 442]

TOUCH

Reports touch data on touch screen equipped devices.

Description

TOUCH reports a list of lists when one or more fingers touch the surface of the Graphics panel. Each list element stands for a finger. Each “finger list” has three elements. The first element is a two-element list of the X and Y coordinates. The next element is again a two-element list of the touch area’s width and height; a finger is never so small that it touches only a single pixel as a mouse does. Finally, the third element indicates the amount of pressure that the finger applied; this is a value between 0 and 1. For touch screens without pressure sensitivity (most are not pressure sensitive), the value is 1.

The property is read-only. You can monitor the touch data with the WHEN command.

Example

GPROP “GRAPHICS “TOUCH Result: [TOUCHED [[164 -21] [50 50] 0.5]]

WRAPMODE

Controls how the turtle reacts when it hits the edge of the Graphics panel.

Description

WRAPMODE controls the turtle wrap mode; one of WRAP, FENCE, WINDOW, or BOUNCE.

See the WRAP, FENCE, WINDOW and BOUNCE commands for more details.

Example

GPROP “GRAPHICS “WRAPMODE Result: WRAP