-->

Previous | Table of Contents | Next

Page 122

Dump Widget Tree to a File When documenting applications it is often useful to be able to dump the entire application widget tree to an ASCII file. This file can then be included in the manual page. When this menu item is selected, a pop-up dialog is activated. Type the name of the file in this dialog, and either select Okay, or type a carriage-return. editres will dump the widget tree to this file. To cancel the file dialog, select the Cancel button.
Show Resource Box This command will pop up a resource box for the current application. This resource box (described in detail later in this section) will allow the user to see exactly which resources can be set for the widget that is currently selected in the widget tree display. Only one widget may be currently selected; if greater or fewer are selected, editres will refuse to pop up the resource box and put an error message in the Message Area.
Set Resource This command will pop up a simple dialog box for setting an arbitrary resource on all selected widgets. You must type in the resource name, as well as the value. You can use the Tab key to switch between the resource name field and the resource value field.
Quit Exits editres.

TREE COMMANDS

The Tree menu contains several commands that enable operations to be performed on the widget tree.

Select Widget in Client This menu item allows you to select any widget in the application; editres will then highlight the corresponding element the widget tree display. After this menu item is selected, the pointer cursor will again turn to a crosshair, and you must click any pointer button in the widget you wish to have displayed. Since some widgets are fully obscured by their children, it is not possible to get to every widget this way, but this mechanism does give very useful feedback between the elements in the widget tree and those in the actual application.
Select All, Unselect All,Invert All These functions allow the user to select, unselect, or invert all widgets in the widget tree.
Select Children, Select Parents These functions select the immediate parent or children of each of the currently selected widgets.
Select Descendants, Select Ancestors These functions select all parents or children of each of the currently selected widgets. This is a recursive search.
Show Widget Names, Show Class Names, Show Widget Windows When the tree widget is initially displayed, the labels of each widget in the tree correspond to the widget names. These functions will cause the label of all widgets in the tree to be changed to show the class name, IDs, or window associated with each widget in the application. The widget IDs, and windows are shown as hex numbers.
In addition, there are keyboard accelerators for each of the Tree operations. If the input focus is over an individual widget in the tree, then that operation will only affect that widget. If the input focus is in the Tree background, it will have exactly the same effect as the corresponding menu item.
The translation entries shown may be applied to any widget in the application. If that widget is a child of the Tree widget, then it will only affect that widget; otherwise, it will have the same effect as the commands in the Tree menu.
Flash Active Widgets This command is the inverse of the Select Widget in Client command; it will show the user each widget that is currently selected in the widget tree by flashing the corresponding widget in the application numFlashes (three by default) times in the flash-Color.
Key Option Translation Entry
space Unselect Select(nothing)
w Select Select(widget)
s Select Select(all)
i Invert Select(invert)

Page 123

Key Option Translation Entry
c Select Children Select(children)
d Select Descendants Select(descendants)
p Select Parent Select(parent)
a Select Ancestors Select(ancestors)
N Show Widget Names Relabel(name)
C Show Class Names Relabel(class)
I Show Widget IDs Relabel(id)
W Show Widget Windows Relabel(window)
T Toggle Widget/Class Name Relabel(toggle)

Clicking button 1 on a widget adds it to the set of selected widgets. Clicking button 2 on a widget deselects all other widgets and then selects just that widget. Clicking button 3 on a widget toggles its label between the widget's instance name the widget's class name.

USING THE RESOURCE BOX

The resource box contains five different areas. Each of the areas, as they appear on the screen from top to bottom, are discussed in the following list:

The Resource Line This area at the top of the resource box shows the current resource name exactly as it would appear if you were to save it to a file or apply it.
The Widget Names and Classes This area enables you to select exactly which widgets this resource will apply to. The area contains four lines; the first contains the name of the selected widget and all its ancestors, and the more restrictive dot (.) separator. The second line contains less specific class names of each widget, as well as the less restrictive star (*) separator. The third line contains a set of special buttons called Any Widget that will generalize this level to match any widget. The last line contains a set of special buttons called Any Widget Chain that will turn the single level into something that matches zero or more levels.
The initial state of this area is the most restrictive, using the resource names and the dot separator. By selecting the other buttons in this area, you can ease the restrictions to allow more and more widgets to match the specification. The extreme case is to select all the Any Widget Chain buttons, which will match every widget in the application. As you select different buttons, the tree display will update to show you exactly which widgets will be affected by the current resource specification.
Normal and Constraint Resources The next area allows you to select the name of the normal or constraint resources you wish to set. Some widgets may not have constraint resources, so that area will not appear.
Resource Value This next area allows you to enter the resource value. This value should be entered exactly as you would type a line into your resource file. Thus, it should contain no unescaped newlines. There are a few special character sequences for this file:
\n- This will be replaced with a newline.
\###- Where # is any octal digit. This will be replaced with a single byte that contains this sequence interpreted as an octal number. For example, a value containing a NULL byte can be stored by specifying \000.
\<new-line>- This will compress to nothing.
\\- This will compress to a single backslash.

Previous | Table of Contents | Next