1. A computer-implemented method of exposing commands in a document-centric software application program, the computer-implemented method comprising: automatically displaying, by a computer, a window on a display device, the window generated by the document-centric software application program, the document-centric software 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 first context block; storing, by the computer, the first context block at one or more computer-readable storage media, the first context block comprising Hyper-Text Markup Language (HTML) code that specifies a title and a set of selectable commands executable by the document-centric software application program, the title identifying a task, the set of selectable commands useful to a user in accomplishing the task; storing a tree data structure, the tree data structure being stored at the computer, the tree data structure associated with the first context block, 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 consisting of 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 consisting of 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, the root node not being a child of any node in the overall set of nodes, each node in the overall set of nodes being associated with a value, each node in the overall set of nodes associated with a Boolean expression, the Boolean expression associated with each leaf node in the set of leaf nodes being dependent on different aspects of a current context of the user within the window, the Boolean expression associated with each non-leaf node in the set of non-leaf nodes taking as operands the values associated with each of the child nodes of the non-leaf node, the set of leaf nodes including a first leaf node, a second leaf node and a third leaf node; automatically ascertaining, at the computer, that the user has changed a position of a cursor, the cursor being within the document; in response to ascertaining that the user has changed the position of the cursor, automatically changing, at the computer, the value associated with the first leaf node; automatically ascertaining, at the computer, that the user has selected text within the document; in response to ascertaining that the user has selected the text, automatically changing, at the computer, the value associated with the second leaf node; automatically ascertaining, at the computer, a type of the document; in response to ascertaining the type of the document, automatically changing, at the computer, the value associated with the third leaf node; each time a value associated with any child node changes, generating, at the computer, a notification to a parent node, the computer generating the notification in response to the change in the value associated with the child node, the parent node and the child node being nodes in the overall set of nodes, the child node being a child of the parent node; each time a recipient node receives a notification, evaluating, at the computer, the Boolean expression associated with the recipient node to ascertain whether the value associated with the recipient node changes, the computer evaluating the Boolean expression associated with the recipient node in response to the notification, the recipient node being a non-leaf node in the set of non-leaf nodes; displaying, by the computer, in the controls area of the window, for the user, the title specified by the first context block and the set of selectable commands specified by the first context block when the value associated with the root node changes from a first value to a second value; and removing, by the computer, the title specified by the first context block and the set of selectable commands specified by the first context block from the window when the value associated with the root node changes from the second value to the first value.