AT&T Home | AT&T Labs | Research
AT&T Labs, Inc. - Research

The Yoix® Scripting Language

Home | What's New | Grammar | Documentation | Download | License | YChart | YDAT | YWAIT | Byzgraf | FAQs
ScrollPane typedict
 
A ScrollPane represents a simple container that is implemented using Java's AWT ScrollPane class. It is used to display a single child, often a complicated panel or large canvas, in a scrollable viewport. Scrollpanes do not create windows, which means you only see them when they are in a visible Frame, Dialog, or Window. Yoix programs normally interact with a ScrollPane using event handlers and by reading or writing the following fields:
background The Color that is used to paint the background of the scrollpane. It is also the default background color assigned to components in the layout array that do not pick their own. Reading returns a snapshot of the current color. Writing immediately sets the scrollpane's background, and the background of components contained in the scrollpane that do not pick their own, to the new color.
components A Dictionary maintained by the interpreter's layout machinery that maps tag fields to actual components; every component contained in the scrollpane has an entry in the dictionary. Add the scrollpane to another container (e.g., a frame or panel) and entries in the components dictionary are copied into the new container's components dictionary. In addition, the root field in each component is automatically set to the top-level container, so the components dictionary is easy to find, and that means individual components can find each other by name using the root.components dictionary.
cursor An Object that should be an int, Image, or String that selects the cursor shown when the pointer is over the scrollpane. It is also the default cursor assigned to components in the scrollpane's layout array that do not pick their own. A cursor that is an int should be one of the cursors defined in the yoix.awt.Cursor dictionary. A cursor that is an Image can describe the cursor using its size and hotspot fields and often draws it using its paint function. A cursor that is a String should be the name of a cursor that is already defined in yoix.awt.Cursor or the name a local a file or URL that contains a GIF or JPEG image that will be used as the cursor.

Reading returns the current cursor. Writing immediately sets the scrollpane's cursor, and the cursor of components contained in the scrollpane that do not pick their own, to the new value. A scrollpane that does not set its own cursor uses DEFAULT_CURSOR.

enabled An int that is 1 when the scrollpane, or any of the components contained in the scrollpane, can respond to user input, and 0 otherwise. Reading returns the current state. Writing immediately sets the scrollpane's state to the new value.
focusowner A read-only int that is non-zero when the scrollpane has the focus.
font The Font, or font name if it is a String, that is used as the default font assigned to components in the layout array that do not pick their own. Reading returns a snapshot of the current font. Writing immediately changes the scrollpane's font, and the font used by all components contained in the scrollpane that do not pick their own, to the new font.
foreground The Color that is used as the default foreground color assigned to components in the layout array that do not pick their own. Reading returns a snapshot of the current color. Writing immediately sets the scrollpane's foreground, and the foreground of components contained in the scrollpane that do not pick their own, to the new color.
fronttoback An int that is 1 when components that appear earlier in the layout array are placed on top of components that appear later, and 0 when the stacking order is reversed. Reading returns the current stacking order. Writing immediately tries to change the stacking order.
layout An Array of objects, usually just a panel or large canvas, that the layoutmanager arranges in the scrollpane. Reading returns the current array. Writing immediately clears scrollpane and then arranges the new set of components in the scrollpane.
layoutmanager A LayoutManager that is permanently set to NULL, because scrollpanes take responsibility for placing the child component, usually just a panel or large canvas, in the viewport. The scrollpane updates its own components dictionary, just like other layout managers, and makes sure the root field in each component is set to the scrollpane. Writing is not allowed and will result in an invalidaccess error.
location A Point that determines the location of the scrollpane in a coordinate system that has its origin at the upper left corner of the container closest to the scrollpane (in the component hierarchy) that actually contains it, positive x to the right, positive y down, and a resolution of 72 dots per inch. Reading returns a snapshot of the current location. Writing is allowed, but layout managers usually get the final say, so setting location should be viewed as a request that may not be honored.
popup A PopupMenu that is associated with the scrollpane. Reading returns the current popup menu. Writing immediately shows the popup menu at the point in the scrollpane's coordinate system specified by the popup menu's location field, assuming of course that the scrollpane is showing on the screen. Storing TRUE in the popup menu's visible field, which was added in release 1.2.0, is an easy way to show the popup menu that currently belongs to the scrollpane.
requestfocus An int that can be used to request or transfer the keyboard focus. Storing a non-zero value in requestfocus tries to get the focus. Storing 0 tries to transfer the focus. Reading requestfocus does not currently return any useful information.
root An Object that is automatically updated by the interpreter's layout machinery so it is always the top-level object that contains the scrollpane. For example, put a scrollpane in a panel and root will be set to the panel; add that panel to a frame and the scrollpane's root field will be set to that frame. A scrollpane's event handlers can use root when they need to interact with the other components in the container.
scroll An int that controls the scrollbar display policy for the scrollpane. The value should be ALWAYS, AS_NEEDED, or NEVER, which are all defined in yoix.awt. The value cannot be changed once the scrollpane is created.
showing A read-only int that is non-zero when the scrollpane is showing on the screen.
size A Dimension that determines the size of the scrollpane in units of 72 dots per inch. Reading returns a snapshot of the current size. Writing is allowed, but layout managers usually get the final say, so setting size should be viewed as a request that may not be honored.
tag A String used to identify the scrollpane that is either supplied when the scrollpane is declared, or automatically generated otherwise. Add a scrollpane to a container, like a Frame or Panel, and the interpreter's layout machinery updates the root field so it points at the top-level container and then adds the scrollpane, as tag, to the root.components dictionary.
validate An int that is 1 when changing the layoutmanager field takes effect immediately, and 0 when the change is delayed, often until after the layout, size, or validate fields change. Storing a 1 in validate always runs Java's layout manager, even when nothing has changed.
visible An int that is 1 when the scrollpane is visible, and CR 0 otherwise. Reading returns the current visibility. Writing immediately sets the scrollpane's visibility to the new state.
Several permanent fields have not been documented and should not be used in Yoix applications. Event handlers are functions that must be added to a scrollpane when it is declared. The handlers that work with scrollpanes are listed below; the names should be familiar if you have done some Java programming. The actionPerformed and itemStateChanged event handlers are only for menus.
 
 Event Handlers:   actionPerformed, adjustmentValueChanged, componentHidden, componentMoved, componentResized, componentShown, dragDropEnd, dragEnter, dragExit, dragGestureRecognized, dragMouseMoved, dragOver, drop, dropActionChanged, focusGained, focusLost, invocationRun, itemStateChanged, keyPressed, keyReleased, keyTyped, mouseClicked, mouseDragged, mouseEntered, mouseExited, mouseMoved, mousePressed, mouseReleased, mouseWheelMoved
 
 Example:   The program,
import yoix.*.*;

Frame f = {
    Dimension size = {
        double width = 8*72;
        double height = 6*72;
    };

    Array layout = {
        new ScrollPane {
            Array layout = {
                new Panel {
                    BorderLayout layoutmanager;
                    Array layout = {
                        new Label {
                            String text = "A ScrollPane Example";
                            String font = "Helvetica-bold-14";
                            int    alignment = CENTER;
                        }, NORTH,

                        new TextArea {
                            int rows = 50;
                            int columns = 100;
                            int scroll = NONE;
                        }, CENTER,

                        new Panel {
                            Array layout = {
                                new Button {
                                    String text = "One";
                                },
                                new Button {
                                    String text = "Two";
                                },
                                new Button {
                                    String text = "Dismiss";
                                    actionPerformed(e) {
                                        exit(0);
                                    }
                                },
                            };
                        }, SOUTH,
                    };
                },
            };
        },
    };
};

f.visible = TRUE;
arranges a label, three buttons, and a large textarea in a panel, which is then added to a scrollpane and displayed in a frame that should start out smaller than the panel.
 
 See Also:   Button, Canvas, Checkbox, Choice, Dialog, FileDialog, Frame, Label, List, Menu, MenuBar, Panel, PopupMenu, postEvent, Scrollbar, TableColumn, TableManager, TextArea, TextCanvas, TextField, TextTerm, Window

 

Yoix is a registered trademark of AT&T Inc.