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

The Yoix® Scripting Language

Home | What's New | Grammar | Documentation | Download | License | YDAT | YWAIT | Byzgraf | FAQs
Button typedict
 
A Button is the interface to Java's AWT Button Component. Yoix programs normally interact with a Button using event handlers and by reading or writing the following fields:
autotrim An int that is 1 when white space is automatically trimmed from both ends of every string read from or written to the text field, and 0 otherwise.
background The Color that is used to paint the background of the button. Reading returns a snapshot of the current color. Writing immediately changes the background to the new color. Storing NULL in background is special and means use the background of the nearest component that contains the button and was assigned a background color other than NULL; if no component qualifies the button uses VM.screen.background.
command A String that is assigned to the command field in the ActionEvent that is generated when the button is clicked. The value stored in the button's text field is used when command is set to NULL.
cursor An Object that should be an int, Image, or String that selects the cursor shown when the pointer is over the button. 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 changes the button's cursor to the new value. Storing STANDARD_CURSOR (the default) or NULL in cursor is special and means use the cursor assigned to the nearest component that contains the button and was assigned a cursor other than STANDARD_CURSOR; if no component qualifies the button uses DEFAULT_CURSOR.

enabled An int that is 1 when the button can respond to user input, and 0 otherwise. Reading returns the current state. Writing immediately sets the button's state to the new value.
focusowner A read-only int that is non-zero when the button has the focus.
font The Font, or font name if it is a String, used to paint the characters stored in the text field. Reading returns a snapshot of the current font. Writing immediately repaints the text in the new font.
foreground The Color that is used to paint the characters stored in the text field. Reading returns a snapshot of the current color. Writing immediately repaints the text in the new color. Storing NULL in foreground is special and means use the foreground of the nearest component that contains the button and was assigned a foreground color other than NULL; if no component qualifies the button uses VM.screen.foreground.
location A Point that determines the location of the button in a coordinate system that has its origin at the upper left corner of the container closest to the button (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 button. Reading returns the current popup menu. Writing immediately shows the popup menu at the point in the button's coordinate system specified by the popup menu's location field, assuming of course that the button 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 button.
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 button. For example, put a button in a panel and root will be set to that panel; add the panel to a frame and the button's root field will be set to that frame. A button's event handlers can use root when they need to interact with the other components in the container.
showing A read-only int that is non-zero when the button is showing on the screen.
size A Dimension that determines the size of the button 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 button that is either supplied when the button is declared, or automatically generated otherwise. Add a button 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 button, as tag, to the root.components dictionary.
text A String of characters that is centered in the button. Reading returns the current text. Writing immediately paints the new text.
visible An int that is 1 when the button is visible, and 0 otherwise. Reading returns the current visibility. Writing immediately sets the button'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 button when it is declared. The handlers that work with buttons are listed below; the names should be familiar if you have done some Java programming. The itemStateChanged event handler is only for menus.
 
 Event Handlers:   actionPerformed, 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 = {
    FlowLayout layoutmanager = {
        int  hgap = 10;
        int  vgap = 72;
    };

    Array layout = {
        new Button {
            String text = "Update";

            actionPerformed(e) {
                root.components.$_tempnam.text = tempnam("", NULL);
            }
        },

        new Button {
            String text = "  " + tempnam("", NULL) + "  ";
            String tag = "$_tempnam";
            String font = "Helvetica-14";
        },

        new Button {
            String text = "Quit";

            actionPerformed(e) {
                exit(0);
            }
        },
    };
};

f.visible = TRUE;
adds three buttons to a frame, updates the middle button's label, using the output of the tempnam built-in, when the left button is pressed, and quits when the right button is pressed.
 
 See Also:   Canvas, Checkbox, Choice, Dialog, FileDialog, Frame, Label, List, Panel, postEvent, ScrollPane, Scrollbar, TableColumn, TableManager, TextArea, TextCanvas, TextField, TextTerm, Window

 

Yoix is a registered trademark of AT&T Intellectual Property.