
These instructions go with the "item.ss" MrEd test file. You probably
got them by clicking on the "Get Instructions" button.

This file mostly contains instructions for running the "Make Big
Frame" and "Make Medium Frame" tests. "Big" and "Medium" are silly
names; they're essentially the same set of tests, but for different
sets of controls. There are just too many kinds of controls to fit in
one frame.

The clock in the upper right of the "Test Selector" frame should
increment every second.

The buttons at the bottom of the Selector frame open little frames for
testing individual control types in detail. Those frames come with
their own instructions.

Make XXX Frame
--------------

Big Frame should contain the following on the left:

  Message (a message) <down-left arrow> (a message)
  Hello (a button)
  <BB logo> (a button)
  List (a list box)
   Apple
   Banana
   Coconut & Donut
  Check (a check box)
  <MrEd logo> (a check box)
  Radio (a radio box)
   First
   Second
   Third
  Image Radio (a check box)
   <down-left arrow>
   <down-right arrow> 
  Choice (a choice item)
   Alpha
   Beta
   Gamma
   Delta & Rest
 Text (a text field)
   initial & starting

Medium Frame should contain:

 H Slider (a horizontal slider)
 V Slider (a vertical slider)
 H Gauge (a horizontal slider)
 V Gauge (a vertical slider)
 Text (a multi-line text field)
   initial & starting
 A tab panel with two tabs
   

The names on labels must match the above exactly, except that most
labels have an "e" or "i" that gets an accent mark to test Latin-1
labels. Also, <> above indicates an image. Watch out for letters that
are dropped or &s that are dropped.

Make sure all the controls with moving parts work.

Tabbing and arrow keys should work correctly. The canvas in the bottom
middle area does not receive the focus via tabs in Big Frame, but it
does in Medium Frame. When it receives the focus via a tab, "Tab in"
is drawn in the canvas; when the focus leaves the canvas for any reason
(tab out, mouse click somewhere else, etc.), "Tab in" is erased.

Window Resizing
---------------

Stretch the window vertically. Stretch it horizontally.  Unless the
frame was created with "all stechy" on, then messages, buttons, check
boxes, and radio boxes should not stretch. Choice and text items 
should only stretch horizontally. Sliders and gauges should only
resize in the major direction.

If "all stretchy" was on, then everything in the left column should
stretch both directions.

Show and Hide
-------------

The second column in the window starts with "Hide and Show".  Click it
and see that the frame disappears and reappears.  The remaining
checkboxes can be un-checked to hide items.  The first two hide
everything in the left column. The remained hide the corresponding
item on the left.

Click on the canvas at the bottom of the second column. A popup menu
should accurately report the local visibility of each control. (If a
control is shown but the panel is hidden, the menu should still say
SHOWN.)


  * hide/show all the controls through each panel
    checkbox; the menu should say SHOWN for all
    items

  * click each checkbox to hide an item, then click 
    again to show it before moving to the next item;
    check the popup menu for accuracy before and after
    re-showing

  * hide all of the controls, then hide and unhide the
    whole panel (one of the top checkboxes); unhiding
    should not show the hidden controls; unhide one
    or two to convince yourself that the panel is
    unhid

  * hide the panel and unhide all of the controls;
    you should not see any of them; then unhide the
    panel; they should all appear

  * hide the panel; hide all the controls; unhide the
    panel (the controls should not appear); unhide
    all the controls

  * repeat the three steps above with the other panel checkbox

Enable and Disable
------------------

The third column contains checkboxes for enabling things. Note that
each radio button has its own enabler, as well as the whole radio
box. Try each one, clicking on the item to make sure it's really
disabled.

  * enable/disable all the controls through each panel
    checkbox

  * click each checkbox to disable an item; click on the
    item to make sure it's disabled; recheck the checkbox;
    make sure the item is re-enabled

  * disable all the controls; disable and re-enable the
    whole panel; make sure the controls are still disabled

  * disable the panel; re-enable the individual controls;
    make sure the controls are still not enabled; re-enable
    the panel and check that the controls are enabled

  * disable the panel; disable all the controls; enable the
    panel and make sure the controls are still disabled;
    enable all the controls

  * repeat the three steps above with the other panel checkbox

  * repeat the three steps for radioboxes and radio items,
    instead of panels and controls

Relabeling
----------

The buttons in the fourth column toggle the labels on items.  The
control should not resize itself for the new label.

For text labels, the new label is XXXXXXXXX. For icon labels,
it depends:

  - message: <down-right arrow>
  - button: <down-left arrow>
  - checkbox: <BB icon>

Note that radio items can't be relabeled.

Be sure to click each button twice, to make sure that the original
label is restored.

Cursors
-------

Checking "Control Bullseye Cursors" should change the cursor over
every control in the left column, plus the canvas in the second
column.  The cursor should only apply to the "client area" of a
control, not the label if it is outside the control. The cursor should
be normal everywhere else.

Checking "Frame Cross Cursor" should change the cursor in the
frame to a cross. It sets the cursor for the controls only when
"Controls Bullseye Cursors" is not set.

Checking "Busy Cursor" should change the cursor to a watch everywhere
in the frame's eventspace. It overrides all other cursor settings.

Combinations to try:

   * Bull only - just controls changed
   * Cross only - all of frame changed
   * Bull + Cross - controls are bullseye, cross everywhere else
       - Uncheck Cross and make sure Bull still works
       - Recheck Cross, uncheck Bull and make sure Cross works on
          controls
   * Busy only - everywhere changed
   * Busy + Cross - everywhere changed
       - Uncheck Busy and make sure Cross still works
       - Recheck Busy, uncheck cross and make sure Busy still works
       - Uncheck Busy and make sure Cross is still off
   * Busy + Bull - everywhere changed
       (same as above, but for Bull)
   * Busy + Bull + Cross - everywhere changed
       - Uncheck Busy and verify Bull + Cross
       (that's enough)

Also, while the busy cursor is on, try creating a new Big/Medium Frame
and make sure that the busy cursor is active in the new frame and over
all controls in the new frame.

Deleted Adds
-------------

The "New Deleted" popup creates subwindow<%>s and adds them to the
same panel as the "New Deleted" control, but each subwindow<%> is
created with the 'deleted style, which means that the subwindow<%> is
initially hidden and deleted. The "*Activate Last*" item activates
the last-created subwindow<%>, i.e., it shows the subwindow<%> and
adjusts the panel size to accommodate the activated window<%>. The key
part of this test is that no deleted subwindow<%> is shown, and no
deleted subwindow<%> affects the panel's geometry.
      
Popup Menus (Big Frame)
-----------

Hide something. Left-click on the canvas to see the SHOW state.
Unhide that something. RIGHT-click on the canvas to get the old
 SHOW state. Then left-click to see the new SHOW state.
Left-click and pick some item; verify that the canvas shows the
 select index (counting from 1)
Right-click and pick some item; verify that the canvas shows the
 selected index (counting from 1)

Focus Info
----------

Under "Enable Text", the current focus is show as:
     label value
 Sometimes label is () for null (no label)
 Sometimes value is just #<object> (no known class)
but usually you can tell what it means.

Click on various controls. Watch how the focus changes (some controls
on some platforms never get the focus). Verify that the focus
indicator is always right. (There's about a 1 second delay.)

Event Info
----------

Under the focus indicator, the last event is reported. If the label of
the destination is non-null, the label is shown, otherwise the value
is shown.

As the mouse is moved over a control's client area, the event
indicator should report the control under the mouse and `mouse' for
mouse event. This is independent of the location of the focus.

Press a key. Instead of `mouse', the event indicator should say `key',
and report the item that currently has the focus. (Unfortunately,
under windows, the key info is immediately replaced with mouse info.)

Event Filtering
---------------

When "Drop Mouse Events" is checked at the bottom of the third column,
all other controls (except "Drop Mouse Events" and "Drop Key Events")
should cease to respond to mouse events. The event indicator will still
work. Keyboard events should not be affected (though it may be hard to
get the focus somewhere interesting).

Try every control with mouse events dropped.

"Drop Key Events" does the obvious thing. Try every keyboard-responding
control with events dropped. Try dialog navigation keys on other
controls, such as TAB or left-arrow.

Different Configurations
------------------------

Each Frame can be created in several different configurations (32 or
64 of them!).

Step through the first 16 configurations, create a frame each time,
and make sure the resulting controls look right. Resize each frame and
check stretchiness before closing it.

Go back to the default configuration and try the 3 other combinations
of label and button fonts. The big label font should apply to external
control labels, and to message items. The button font should apply to
the content of controls (names within a button, checkbox, listbox,
choice, or text control). The "Initially" radio box controls whether
the control-containing panel is initially enabled (before the controls
it contains are created). The "Selection" radio box controls the
initial-value setting for check boxes, radio buttons, list boxes, and
choices.
