The present invention relates generally to software. More specifically, space management in windowed environments is described.
Windowed environments, such as graphical user interfaces (GUIs), facilitate the display of software applications on personal computers. For example, an e-mail client, a web browser, or a word processor may be displayed in a window. A windowed environment may include multiple windows running multiple applications simultaneously displayed in a GUI, allowing for multitasking.
A window may include one or more panes, which are subdivisions of windows that may act independently or in concert. Panes may help organize the display of a windowed application. For example, an email client may include several panes: one displaying a list of messages, one displaying a list of email boxes, and one displaying the detailed text of a selected message.
Panes may further be related to one another. For example, two panes may have a master/detail relationship. One pane may display a list of items available for viewing. A user may select one of the items from the list, and detail related to that item is displayed in the other pane. For example, an e-mail client may include a list of messages in an inbox in one pane, and the text of a message selected from the list in another pane. However, it may be difficult to legibly and adequately display the list and the detail simultaneously on a user's screen.
Thus, what is needed is a solution for space management for windowed environments without the limitations of conventional techniques.
Various embodiments of the invention are disclosed in the following detailed description and the accompanying drawings:
Various embodiments may be implemented in numerous ways, including as a system, a process, an apparatus, or a series of program instructions on a computer readable medium such as a computer readable storage medium or a computer network where the program instructions are sent over optical or electronic communication links. In general, operations of disclosed processes may be performed in an arbitrary order, unless otherwise provided in the claims.
A detailed description of one or more embodiments is provided below along with accompanying figures. The detailed description is provided in connection with such embodiments, but is not limited to any particular example. The scope is limited only by the claims and numerous alternatives, modifications, and equivalents are encompassed. Numerous specific details are set forth in the following description in order to provide a thorough understanding. These details are provided for the purpose of example and the described techniques may be practiced according to the claims without some or all of these specific details. For the purpose of clarity, technical material that is known in the technical fields related to the embodiments has not been described in detail to avoid unnecessarily obscuring the description.
According to various embodiments, space management in windowed environments is described. A window may include a first pane and second pane adjacent to the first pane. The window may further include a divider between the first pane and the second pane. When a user activates the first pane, for example, by moving a cursor into the first pane, the first pane expands and the second pane contracts to aid in viewing the contents of the first pane. Likewise, if the user activates the second pane (e.g., by moving the cursor into the second pane), the first pane contracts and the second pane expands.
According to an embodiment, the panes 102 and 104 may have a master/detail relationship. For example, if the window 100 displays an e-mail client, the first pane 102 may include a list 108 showing received e-mail messages, and the second pane 104 may include a detail 110 of a selected message. A highlight bar 112 highlights the e-mail message in the list 108 that corresponds to the detail 110. A user may control a cursor 114 (using, for example, a mouse or other pointing device) to select another item of the list 108. The detail 110 shown in the second pane 104 would then change to reflect the new selection.
The list 108 and the detail 110 may have too much information to display legibly in the panes 102 and 104, respectively. A portion of the list 108 and/or detail 110 may be displayed and the remainder can be brought into view using the scroll bars 116a and 116b. Alternatively, using various embodiments of space management as described herein, a user may activate one of the first pane 102 and the second pane 104 to expand the activated pane and expose more of its content.
According to an embodiment, when a user makes an input to activate either the first pane 102 or the second pane 104, the pane that is activated expands to reveal more information, while the other, deactivated pane contracts. The divider 106 between the panes 102 and 104 also moves while a pane is expanding or contracting. According to an embodiment, the total area of the panes 102 and 104 remains approximately constant during the expansion and contraction so that the expanding and the contracting maintain a constant, original size (i.e., the size prior to activation of a pane) of the window 100. The expansion and contraction of planes may also be animated. The divider 106 further includes a grab handle 118, which a user may use to manually position the divider 106, thereby manually resizing the panes 102 and 104. The function of the grab handle with relation to the window management described herein is further discussed regarding
According to an embodiment, a pane is activated when a user has taken some action regarding the pane. For example, a user may “mouse-over” the pane. A mouse-over may involve moving a cursor controlled by a pointing device (such as a mouse) into an area occupied by the pane. Alternatively, a pane may be activated using a keyboard, for example, by issuing a keystroke that selects the pane. Different techniques for activating a pane may be used as desired.
As shown in
If a user wants to expand the first pane 102, for example to see more of the list 108 displayed in the first window 102, the user may move the cursor 114 to the first pane 102.
Although certain techniques for space management are disclosed here, it is understood that other variations are possible. For example, any number of panes (e.g., three or more) may be included in a window and various different formulas may be used for determining a size of the panes after expansion and contraction. Additionally different configurations of the panes may also be used. For example, the panes may be arranged horizontally rather than vertically.
According to an embodiment, when a user changes the size of the panes 202 and 204 using the grab handle 208, the space management techniques illustrated in
In block 302, a window, including a first pane and a second pane adjacent to the first pane, is drawn. The first pane and the second pane may be, for example, the first pane 102 and the second pane 104 as shown in
In block 304, a divider is drawn between the first pane and the second pane. The divider (e.g., the divider 106) visually separates the first pane and the second pane, and may also include a grab handle (e.g., the grab handle 208) used to manually adjust the size of the first pane and the second pane.
In block 306, an input to activate the first pane is received. The input may be an input to move a cursor into the first pane, for example. The input may be a mouse-over including a movement using a pointing device such as a mouse or a trackball.
In block 308, the first pane is expanded to a first size and second pane is contracted to a second size. The first pane and the second pane may be simultaneously expanded and contracted, and the movements may be animated. For example, the first pane may expand from 30% of the size of the window to 40%, then 50%, then 60%, and finally 70% of the size of the window. Likewise, the second pane may contract from 70% of the size of the window, to 60%, then 50%, then 40%, and finally 30% of the size of the window.
The first size of the first pane and the second size of the second pane may be determined using various techniques. For example, the first size and the second size may be a percentage of the size of the window. Alternatively, the first size may be a size large enough to show the entire contents of the first pane. A combination of the techniques may also be used; the first pane may expand to whichever is smaller, a size large enough to show the entire contents of the first pane or 70% of the size of the window. Other techniques may also be used.
In block 310, the divider is moved to correspond to the expanding and contracting. The divider may be redrawn at various intervals to show the boundaries of the first pane and the second pane as the first pane and the second pane expand and contract, respectively.
In block 312, the divider is moved to manually adjust the size of the first pane and the second pane in response to a user input. The divider may be moved by using a grab handle (e.g., the grab handle 208). The user may click the grab handle and drag the divider to whatever position the user desires. In block 314, the user may restore the space management. The user may restore the space management by, for example, selecting a button such as the button 212. When space management is restored, the panes may remain the same, or may expand or contract to a default setting.
Various operations are described in the blocks 302-314. It is understood that certain of these operations are optional for the various embodiments described herein. For example, the operations described in blocks 310-312 may be omitted, and other operations may be added where appropriate.
According to some embodiments, the computer system 400 performs specific operations by processor 404 executing one or more sequences of one or more instructions stored in the system memory 406. Such instructions may be read into the system memory 406 from another computer readable medium, such as the static storage device 408 or the disk drive 410. In some embodiments, hard-wired circuitry may be used in place of or in combination with software instructions to implement various embodiments.
Although the foregoing examples have been described in some detail for purposes of clarity of understanding, the invention is not limited to the details provided. There are many alternative ways of implementing the invention. The disclosed examples are illustrative and not restrictive.