annotate pkg-src/tree-x/help.h @ 163:0132846995bd r20-3b8

Import from CVS: tag r20-3b8
author cvs
date Mon, 13 Aug 2007 09:43:35 +0200
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1 static char help_text[] ="\n"
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
2 "Introduction\n"
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
3 "\n"
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
4 " The OO-Browser Graphical Interface\n"
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
5 "\n"
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
6 " This program demonstrates a dynamic tree-drawing \n"
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
7 " algorithm developed by Sven Moen. The algorithm is \n"
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
8 " published in \"IEEE Software\", July 1990, pp. 21-28.\n"
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
9 " If you desire more information than the description\n"
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
10 " given below, see the above-referenced article. \n"
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
11 "\n"
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
12 " A number of the features mentioned herein are not\n"
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
13 " included in this version of the program.\n"
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
14 "\n"
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
15 "Algorithm\n"
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
16 "\n"
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
17 " Unlike other algorithms, Moen's algorithm uses an \n"
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
18 " explicit representation of node and subtree contours\n"
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
19 " and it stores each contour as a polygon. \n"
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
20 "\n"
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
21 " Trees with nodes of any polygonal shape can be drawn\n"
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
22 " compactly, and the data structure supports insert and\n"
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
23 " delete operations on subtrees. The results are tidy\n"
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
24 " trees and efficient relayouts when the tree changes.\n"
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
25 "\n"
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
26 " In the Layout step, the tree is traversed in depth-first\n"
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
27 " fashion until the leaf nodes are reached. The contour\n"
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
28 " of each leaf node is formed by creating a linked list of\n"
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
29 " lines that wrap around the node's shape. This is the \n"
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
30 " LayoutLeaf step. As the return trip is made back to the\n"
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
31 " root, the contour of each interior node is formed by\n"
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
32 " joining the individual contours of each child. This Join\n"
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
33 " step involves a Merge step where the offset between\n"
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
34 " two neighboring contours is computed to avoid overlap. \n"
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
35 " Since the width of each subtree contour is known at\n"
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
36 " each step, each interior node is centered over its\n"
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
37 " children, and the subtree contour is extended to include\n"
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
38 " the interior node. This is the AttachParent step.\n"
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
39 "\n"
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
40 " In a dynamic update operation (insert or delete), the\n"
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
41 " algorithm reuses the contours not influenced by the\n"
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
42 " change and updates them efficiently. When a given \n"
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
43 " node changes, subtree contours at higher levels must\n"
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
44 " be disassembled before the change. This is called\n"
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
45 " the Unzip step, which call RuboutLeaf, Split, and\n"
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
46 " DetachParent, all inverses of LayoutLeaf, Join, and\n"
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
47 " AttachParent, respectively. After the change is made,\n"
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
48 " the Zip step reassembles the contours by again calling\n"
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
49 " Layout, Join, and AttachParent.\n"
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
50 "\n"
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
51 "User Interface\n"
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
52 " \n"
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
53 " This program offers an interactive environment for \n"
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
54 " creating and updating trees of arbitrary size. Trees\n"
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
55 " can be loaded from a file or created on-the-fly. You\n"
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
56 " can also save trees, and specify various layout and\n"
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
57 " animation options. Each feature is associated with \n"
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
58 " a menu item which is explained in the next section.\n"
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
59 "\n"
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
60 " When invoking the program, you may specify a single\n"
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
61 " argument indicating the name of a tree file. This file\n"
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
62 " will be loaded upon startup. If you start the program\n"
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
63 " without arguments, the canvas will be blank.\n"
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
64 "\n"
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
65 "Tree Menu\n"
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
66 "\n"
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
67 " New Tree... Create a new tree. You specify \n"
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
68 " a new root, and the existing tree, \n"
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
69 " if any, is deleted.\n"
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
70 "\n"
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
71 " Load Tree... Load a tree specification file.\n"
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
72 " (see the File Format section)\n"
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
73 "\n"
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
74 " Save Tree... Save a tree specification file.\n"
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
75 " (see the File Format section)\n"
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
76 "\n"
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
77 " Quit Exits the program.\n"
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
78 "\n"
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
79 "Layout Menu\n"
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
80 "\n"
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
81 " Layout Spacing...\n"
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
82 " Displays a dialog that allows you\n"
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
83 " to change the spacing between nodes\n"
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
84 " on the same level and the spacing\n"
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
85 " between levels. \n"
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
86 "\n"
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
87 " Align Nodes on Level\n"
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
88 " Adds a constraint to the layout\n"
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
89 " algorithm that forces all nodes\n"
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
90 " on the same level to have the same\n"
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
91 " x-position. This leads to truncation\n"
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
92 " of nodes if necessary. The maximum\n"
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
93 " node width is controlled by the\n"
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
94 " Level Spacing. By default, this is\n"
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
95 " disabled.\n"
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
96 "\n"
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
97 "Node Menu\n"
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
98 "\n"
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
99 " This popup menu is invoked by pressing and holding\n"
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
100 " the left mouse button on a node. This menu offers\n"
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
101 " several actions that can be performed on nodes.\n"
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
102 "\n"
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
103 " Add Child Add a child to the node. The new child\n"
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
104 " is added after the bottommost child.\n"
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
105 "\n"
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
106 " Add Sibling Before\n"
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
107 " Add a sibling before this node.\n"
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
108 "\n"
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
109 " Add Sibling After\n"
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
110 " Add a sibling after this node.\n"
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
111 "\n"
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
112 " Collapse Node Collapses or expands the subtree\n"
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
113 " Expand Node beginning at the specified node.\n"
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
114 " This operation is similiar to a\n"
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
115 " Delete operation, except that the\n"
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
116 " subtree is preserved so that you\n"
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
117 " can display it again. Collapsed\n"
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
118 " nodes are marked with a gray box.\n"
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
119 "\n"
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
120 " Delete Node Delete the subtree beginning at the\n"
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
121 " specified node.\n"
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
122 "\n"
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
123 "Tree File Format\n"
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
124 "\n"
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
125 " If you wish to load a file, you can load a file created\n"
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
126 " by the OO-Browser with the {C-c d}, (br-xbr) command.\n"
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
127 "\n"
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
128 " Node labels are sequences of characters delimited by\n"
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
129 " newlines or end-of-file. \n"
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
130 "\n"
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
131 " Files must begin with an OO-Browser Environment path\n"
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
132 " name. The next line must be a label, which indicates the\n"
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
133 " root node. Optionally, lists containing labels may\n"
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
134 " follow. Each child label is indented two spaces more \n"
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
135 " its parent. Lists of labels are nested to produce trees. \n"
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
136 "\n"
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
137 " For example, a three-level binary tree is as follows:\n"
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
138 "\n"
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
139 " ^^c++-^^~/OOBR\n"
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
140 " root node level1\n"
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
141 " level2-1\n"
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
142 " level3-1\n"
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
143 " level3-2\n"
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
144 " level2-2\n"
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
145 " level3-3\n"
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
146 " level3-4\n"
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
147 "\n"
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
148 "X11 Resources\n"
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
149 "\n"
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
150 " Various settings in the program can be manipulated by \n"
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
151 " using X11 resources, specified either on the command\n"
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
152 " line or in a resource setting file. The supported \n"
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
153 " resources are:\n"
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
154 "\n"
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
155 " tree.font: Sets the font of the label nodes.\n"
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
156 " Default is \"fixed\".\n"
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
157 "\n"
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
158 " tree.backgroundColor:\n"
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
159 " Sets the background color of the \n"
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
160 " canvas. Default is \"white\".\n"
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
161 "\n"
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
162 " tree.treeColor: Sets the color of the displayed tree.\n"
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
163 " Default is \"black\".\n"
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
164 "\n"
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
165 " tree.splitColor:\n"
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
166 " Sets the color of split contours which\n"
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
167 " appear during a dynamic update.\n"
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
168 " Default is \"goldenrod\".\n"
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
169 " \n"
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
170 " tree.highlightColor:\n"
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
171 " Sets the color of highlighted nodes.\n"
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
172 " Default is \"OrangeRed\".\n"
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
173 "\n"
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
174 "Help\n"
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
175 "\n"
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
176 " If you are reading this, chances are that you found the\n"
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
177 " Help button on the menubar. \n"
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
178 "\n"
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
179 "Author\n"
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
180 " \n"
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
181 " This program was written by Mark L. Stern during\n"
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
182 " the summer of 1990. It was redone by Bob Weiner for\n"
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
183 " use with the OO-Browser.\n"
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
184 "\n"
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
185 " Stephan Zachwieja contributed the double-buffering\n"
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
186 " code used for smooth animations in this program.\n"
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
187 "\n"
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
188 " The other authors have permitted Bob Weiner to distribute\n"
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
189 " the code freely as part of the OO-Browser.\n";