diff 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
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/pkg-src/tree-x/help.h	Mon Aug 13 09:43:35 2007 +0200
@@ -0,0 +1,189 @@
+static char help_text[] ="\n"
+"Introduction\n"
+"\n"
+"		The OO-Browser Graphical Interface\n"
+"\n"
+"	This program demonstrates a dynamic tree-drawing \n"
+"	algorithm developed by Sven Moen.  The algorithm is \n"
+"	published in \"IEEE Software\", July 1990, pp. 21-28.\n"
+"	If you desire more information than the description\n"
+"	given below, see the above-referenced article. \n"
+"\n"
+"	A number of the features mentioned herein are not\n"
+"	included in this version of the program.\n"
+"\n"
+"Algorithm\n"
+"\n"
+"	Unlike other algorithms, Moen's algorithm uses an \n"
+"	explicit representation of node and subtree contours\n"
+"	and it stores each contour as a polygon. \n"
+"\n"
+"	Trees with nodes of any polygonal shape can be drawn\n"
+"	compactly, and the data structure supports insert and\n"
+"	delete operations on subtrees.  The results are tidy\n"
+"	trees and efficient relayouts when the tree changes.\n"
+"\n"
+"	In the Layout step, the tree is traversed in depth-first\n"
+"	fashion until the leaf nodes are reached.  The contour\n"
+"	of each leaf node is formed by creating a linked list of\n"
+"	lines that wrap around the node's shape.  This is the \n"
+"	LayoutLeaf step.  As the return trip is made back to the\n"
+"	root, the contour of each interior node is formed by\n"
+"	joining the individual contours of each child. This Join\n"
+"	step involves a Merge step where the offset between\n"
+"	two neighboring contours is computed to avoid overlap. \n"
+"	Since the width of each subtree contour is known at\n"
+"	each step, each interior node is centered over its\n"
+"	children, and the subtree contour is extended to include\n"
+"	the interior node.  This is the AttachParent step.\n"
+"\n"
+"	In a dynamic update operation (insert or delete), the\n"
+"	algorithm reuses the contours not influenced by the\n"
+"	change and updates them efficiently. When a given \n"
+"	node changes, subtree contours at higher levels must\n"
+"	be disassembled before the change. This is called\n"
+"	the Unzip step, which call RuboutLeaf, Split, and\n"
+"	DetachParent, all inverses of LayoutLeaf, Join, and\n"
+"	AttachParent, respectively.  After the change is made,\n"
+"	the Zip step reassembles the contours by again calling\n"
+"	Layout, Join, and AttachParent.\n"
+"\n"
+"User Interface\n"
+"	\n"
+"	This program offers an interactive environment for \n"
+"	creating and updating trees of arbitrary size. Trees\n"
+"	can be loaded from a file or created on-the-fly.  You\n"
+"	can also save trees, and specify various layout and\n"
+"	animation options.  Each feature is associated with \n"
+"	a menu item which is explained in the next section.\n"
+"\n"
+"	When invoking the program, you may specify a single\n"
+"	argument indicating the name of a tree file. This file\n"
+"	will be loaded upon startup. If you start the program\n"
+"	without arguments, the canvas will be blank.\n"
+"\n"
+"Tree Menu\n"
+"\n"
+"	New Tree...	Create a new tree. You specify \n"
+"			a new root, and the existing tree, \n"
+"			if any, is deleted.\n"
+"\n"
+"	Load Tree...	Load a tree specification file.\n"
+"			(see the File Format section)\n"
+"\n"
+"	Save Tree...	Save a tree specification file.\n"
+"			(see the File Format section)\n"
+"\n"
+"	Quit		Exits the program.\n"
+"\n"
+"Layout Menu\n"
+"\n"
+"	Layout Spacing...\n"
+"			Displays a dialog that allows you\n"
+"			to change the spacing between nodes\n"
+"			on the same level and the spacing\n"
+"			between levels. \n"
+"\n"
+"	Align Nodes on Level\n"
+"			Adds a constraint to the layout\n"
+"			algorithm that forces all nodes\n"
+"			on the same level to have the same\n"
+"			x-position. This leads to truncation\n"
+"			of nodes if necessary. The maximum\n"
+"			node width is controlled by the\n"
+"			Level Spacing. By default, this is\n"
+"			disabled.\n"
+"\n"
+"Node Menu\n"
+"\n"
+"	This popup menu is invoked by pressing and holding\n"
+"	the left mouse button on a node. This menu offers\n"
+"	several actions that can be performed on nodes.\n"
+"\n"
+"	Add Child	Add a child to the node. The new child\n"
+"			is added after the bottommost child.\n"
+"\n"
+"	Add Sibling Before\n"
+"			Add a sibling before this node.\n"
+"\n"
+"	Add Sibling After\n"
+"			Add a sibling after this node.\n"
+"\n"
+"	Collapse Node	Collapses or expands the subtree\n"
+"	Expand Node	beginning at the specified node.\n"
+"			This operation is similiar to a\n"
+"			Delete operation, except that the\n"
+"			subtree is preserved so that you\n"
+"			can display it again. Collapsed\n"
+"			nodes are marked with a gray box.\n"
+"\n"
+"	Delete Node	Delete the subtree beginning at the\n"
+"			specified node.\n"
+"\n"
+"Tree File Format\n"
+"\n"
+"	If you wish to load a file, you can load a file created\n"
+"	by the OO-Browser with the {C-c d}, (br-xbr) command.\n"
+"\n"
+"	Node labels are sequences of characters delimited by\n"
+"	newlines or end-of-file. \n"
+"\n"
+"	Files must begin with an OO-Browser Environment path\n"
+"	name.  The next line must be a label, which indicates the\n"
+"	root node.  Optionally, lists containing labels may\n"
+"	follow. Each child label is indented two spaces more \n"
+"	its parent. Lists of labels are nested to produce trees. \n"
+"\n"
+"	For example, a three-level binary tree is as follows:\n"
+"\n"
+"		^^c++-^^~/OOBR\n"
+"		root node level1\n"
+"		  level2-1\n"
+"		    level3-1\n"
+"		    level3-2\n"
+"		  level2-2\n"
+"		    level3-3\n"
+"		    level3-4\n"
+"\n"
+"X11 Resources\n"
+"\n"
+"	Various settings in the program can be manipulated by \n"
+"	using X11 resources, specified either on the command\n"
+"	line or in a resource setting file. The supported \n"
+"	resources are:\n"
+"\n"
+"	tree.font:	Sets the font of the label nodes.\n"
+"			Default is \"fixed\".\n"
+"\n"
+"	tree.backgroundColor:\n"
+"			Sets the background color of the \n"
+"			canvas.  Default is \"white\".\n"
+"\n"
+"	tree.treeColor:	Sets the color of the displayed tree.\n"
+"			Default is \"black\".\n"
+"\n"
+"	tree.splitColor:\n"
+"			Sets the color of split contours which\n"
+"			appear during a dynamic update.\n"
+"			Default is \"goldenrod\".\n"
+"	\n"
+"	tree.highlightColor:\n"
+"			Sets the color of highlighted nodes.\n"
+"			Default is \"OrangeRed\".\n"
+"\n"
+"Help\n"
+"\n"
+"	If you are reading this, chances are that you found the\n"
+"	Help button on the menubar. \n"
+"\n"
+"Author\n"
+"	\n"
+"	This program was written by Mark L. Stern during\n"
+"	the summer of 1990.  It was redone by Bob Weiner for\n"
+"	use with the OO-Browser.\n"
+"\n"
+"	Stephan Zachwieja contributed the double-buffering\n"
+"	code used for smooth animations in this program.\n"
+"\n"
+"	The other authors have permitted Bob Weiner to distribute\n"
+"	the code freely as part of the OO-Browser.\n";