9. A method of exposing commands in a document-centric application program executed by a computer, the method comprising: automatically displaying, by the computer, a window on a display device, the window generated by the document-centric application program, the document-centric application program operating at the computer, the window containing a work area and a controls area, the work area containing a document, the controls area not initially containing a context block; storing, by the computer, Hyper-Text Markup Language (HTML) code that specifies a title of the context block and a set of commands of the context block, the set of command executable by the document-centric application program, the title identifying a task, the set of commands useful to a user in accomplishing the task; storing a tree data structure at the computer, the tree data structure comprising an overall set of nodes, each node in the overall set of nodes being an independent data structure, the overall set of nodes including a root node and a set of child nodes, each node in the set of child nodes being a child of one other node in the overall set of nodes, the overall set of nodes comprising a set of leaf nodes and a set of non-leaf nodes, no node in the overall set of nodes being a child of any node in the set of leaf nodes, each node in the set of non-leaf nodes having at least one child node in the overall set of nodes, the root node not being a child of any node in the overall set of nodes, each node in the overall set of nodes associated with a value, each node in the overall set of nodes associated with a Boolean expression, the Boolean expressions associated with each of node in the set of non-leaf nodes taking as operands the values associated with each child node of the node, the set of leaf nodes including a first leaf node; ascertaining, at the computer, whether a change has occurred to selected text portions of the document, the selected text portions of the document being portions of the document selected using a cursor, the cursor controlled by a user, wherein the document is a document in which the user is working; in response to ascertaining that the change has occurred to the selected text portions of the document, making, at the computer, a change to the value associated with the first leaf node; in response to a change to the value associated with any non-root node, using, at the computer, the Boolean expression associated with a parent node to make a determination whether to change a value associated with the parent node, the non-root node being in the set of child nodes, the parent node being a parent of the non-root node; in response to making a determination to change the value associated with the parent node, changing, at the computer, the value associated with the parent node; in response to determining that the value associated with the root node has changed from a first value to a second value, automatically causing, at the computer, the controls area of the user interface to contain the context block, the context block containing the title of the context block and the set of commands of the context block, the computer causing the user interface to contain the context block independent of the user selecting any displayed menu item, the context block not obscuring the document, each command in the set of commands of the context block being selectable by the user, at least one command in the set of commands of the context block being selectable by the user to perform an action on the selected text portions of the document; in response to determining that the value associated with the root node has changed from the second value to the first value, automatically causing, at the computer, the user interface not to contain the context block.
9. A method of exposing commands in a document-centric application program executed by a computer, the method comprising: automatically displaying, by the computer, a window on a display device, the window generated by the document-centric application program, the document-centric application program operating at the computer, the window containing a work area and a controls area, the work area containing a document, the controls area not initially containing a context block; storing, by the computer, Hyper-Text Markup Language (HTML) code that specifies a title of the context block and a set of commands of the context block, the set of command executable by the document-centric application program, the title identifying a task, the set of commands useful to a user in accomplishing the task; storing a tree data structure at the computer, the tree data structure comprising an overall set of nodes, each node in the overall set of nodes being an independent data structure, the overall set of nodes including a root node and a set of child nodes, each node in the set of child nodes being a child of one other node in the overall set of nodes, the overall set of nodes comprising a set of leaf nodes and a set of non-leaf nodes, no node in the overall set of nodes being a child of any node in the set of leaf nodes, each node in the set of non-leaf nodes having at least one child node in the overall set of nodes, the root node not being a child of any node in the overall set of nodes, each node in the overall set of nodes associated with a value, each node in the overall set of nodes associated with a Boolean expression, the Boolean expressions associated with each of node in the set of non-leaf nodes taking as operands the values associated with each child node of the node, the set of leaf nodes including a first leaf node; ascertaining, at the computer, whether a change has occurred to selected text portions of the document, the selected text portions of the document being portions of the document selected using a cursor, the cursor controlled by a user, wherein the document is a document in which the user is working; in response to ascertaining that the change has occurred to the selected text portions of the document, making, at the computer, a change to the value associated with the first leaf node; in response to a change to the value associated with any non-root node, using, at the computer, the Boolean expression associated with a parent node to make a determination whether to change a value associated with the parent node, the non-root node being in the set of child nodes, the parent node being a parent of the non-root node; in response to making a determination to change the value associated with the parent node, changing, at the computer, the value associated with the parent node; in response to determining that the value associated with the root node has changed from a first value to a second value, automatically causing, at the computer, the controls area of the user interface to contain the context block, the context block containing the title of the context block and the set of commands of the context block, the computer causing the user interface to contain the context block independent of the user selecting any displayed menu item, the context block not obscuring the document, each command in the set of commands of the context block being selectable by the user, at least one command in the set of commands of the context block being selectable by the user to perform an action on the selected text portions of the document; in response to determining that the value associated with the root node has changed from the second value to the first value, automatically causing, at the computer, the user interface not to contain the context block. 12. The method of claim 9 , wherein automatically causing the user interface to contain the context block comprises causing the context block to contain a title bar area, the title bar area containing the title of the context block.