Background of the Invention
Graphical user interfaces (GUIs), such as those found on computers using the MACINTOSH.TM. Operating System or MICROSOFT WINDOWS.TM., have long used menu bars and dialogue boxes to control the operation of application programs. A menu bar is a strip of menu choices, such as "Edit," usually arranged along the top of a screen or window. A dialogue box, often generated in response to a menu choice, is a window that prompts a user for information. Usually, the user closes the dialogue box once the command is complete.
The menu bar and dialogue box interface, however, is cumbersome when used for performing frequently used commands. For example, if the user makes frequent changes to the style of text in a document, the user must choose a menu choice and respond to a dialogue box for each change. These repetitive tasks can be costly in terms of time and effort.
Accordingly, more advanced GUIs display "panels" containing tools, commands, and information displays used for modifying a document. A panel is a small floating window that can be opened from a menu. Panels usually have a header bar that can be used to move the panel around the screen. Panels persist until the panels are explicitly closed.
Multiple open panels, however, can occupy large amounts of screen space and block the underlying document. To minimize the amount of space occupied by panels, advanced GUIs use "tabs." Tabs allow the functionality of different panels to be stacked within a single panel, with each item in the stack identified by a tab. To choose a particular functionality within a panel, the user merely selects a tab identifying that functionality. The selected functionality rises to the top of the stack and is displayed within the panel. In addition, a tab can be dragged from one panel to another.
A problem with tabs is that only a single tab's functionality can be displayed by a panel at one time. As a result, the user is often required to keep multiple panels displayed simultaneously. Therefore, tabs do not solve the problem of having panels clutter up the screen.
Accordingly, there is a need in the art for an efficient way to move panels on the screen.
There is a further need in the art for an efficient way to organize panels on the screen.
There is a further need in the art for a way to display panels that minimizes the amount of screen covered by the panels.
There is a further need in the art for a way to minimize multiple panels as a single block.
There is a further need in the art for a way to link multiple panels having similar uses.
Summary of the Invention
The above and other needs are met by a method and system for displaying and organizing panels that allows panels to be "docked." Docked panels act as a single unit. Thus, docked panels can be opened, closed, or moved around the screen with a single command.
A user can dock a panel to another by dragging the first panel in proximity to the second panel while holding down a modifier key. When the first panel is released, a docking wedge is created between the two panels and the first panel snaps into a docked position on the docking wedge. Panels may be docked in any configuration. Panels are undocked by either pressing the docking wedge or dragging a panel's header bar while holding down the modifier key.
Docked panels may be opened, closed, or moved as a single unit. In addition, resizable panels can still be resized while docked. When a docked panel is resized, the configuration of the docked panels automatically changes as necessary to prevent the docked panels from overlapping.
Furthermore, docked panels can be zipped and unzipped as a single unit. When the minimize button on the header bar of a docked panel is pressed, panels are reduced so that only the panels' tabs are displayed. If a panel does not have tabs, then only the header bar is displayed. Also, the docking wedge is not displayed. In order to minimize screen clutter, zipped panels are automatically moved to the upper left corner of an imaginary bounding box surrounding the panels before the panels were minimized. Panels are unzipped by again pressing the minimize button. When unzipped, docked panels move back to the same screen position as before the panels were zipped.
A technical advantage of the present invention is that multiple panels can be combined into a single unit while still maintaining each panel as a discrete unit.
Another technical advantage is that the panels can be docked in any configuration desired by the user.
Another technical advantage is that the docked panels can be manipulated as a single unit.
A corresponding technical advantage is that docked panels can easily be split into separate panels.
Another technical advantage is that multiple panels can be zipped or unzipped with a single command.
Another technical advantage is that tabs can still be used in docked panels and dragged among panels.
The foregoing has outlined rather broadly the features and technical advantages of the present invention in order that the detailed description of the invention that follows may be better understood. Additional features and advantages of the invention will be described hereinafter which form the subject of the claims of the invention. It should be appreciated by those skilled in the art that the conception and the specific embodiment disclosed may be readily utilized as a basis for modifying or designing other structures for carrying out the same purposes of the present invention. It should also be realized by those skilled in the art that such equivalent constructions do not depart from the spirit and scope of the invention as set forth in the appended claims.
Brief Description of the Drawings
For a more complete understanding of the present invention, and the advantages thereof, reference is now made to the following descriptions taken in conjunction with the accompanying drawings, in which:
FIG. 1 illustrates a high-level block diagram of a computer system adapted to execute the present invention;
FIG. 2 illustrates a prior art screen display showing panels;
FIG. 3 illustrates a screen display showing docked panels;
FIG. 4 illustrates the screen display of FIG. 3 after a panel has been resized;
FIG. 5 illustrates a screen display showing an alternate configuration of docked panels; and
FIG. 6 illustrates a screen display showing zipped panels.
Description of the Preferred Embodiments
FIG. 1 illustrates computer system 10 adapted to execute the present invention. Central processing unit (CPU) 11 is coupled to bus 12, which in turn is coupled to random access memory (RAM) 13, read only memory (ROM) 14, input/output (I/O) adapter 15, communications adapter 16, user interface adapter 17, and display adapter 18.
CPU 11 may be any general purpose CPU, such as an Intel x86 compatible, Motorola 680x0, or PowerPC compatible CPU. However, the present invention is not restricted by the architecture of CPU 11.
RAM 13 and ROM 14 hold user and system data and programs as is well known in the art. I/O adapter 15 connects storage devices, such as hard drive 150, to the computer system. Communications adaptor 16 couples the computer system to a local or wide-area network 160. User interface adapter 17 couples user input devices, such as keyboard 170 and pointing device 171, to the computer system. Pointing device 171 may be a mouse, track ball, stylus and pressure sensitive pad, or other device allowing a user to control a cursor. This discussion assumes that certain well known user interface commands, such as drag and drop, are implemented using pointing device 171.
Finally, display adapter 18 is driven by CPU 11 to control the display on display device 180. As is well known in the art, subsequent figures representing screen displays are typically displayed on display device 180. Display device 180 may be a standard CRT monitor, a LCD or LED screen, or any other device capable of displaying data to a user. As is also well known in the art, a computer program embodying the present invention preferably resides on hard drive 150 and executes on CPU 11.
FIG. 2 illustrates a prior art display on display device 180. Shown are three panels, 210, 212, 214. All three panels 210, 212, 214 contain well known user interface controls. Panel 210, for example, has a header bar 216, also known as a title bar when it includes text, that can be used to drag (move) the panel. Since panel 210 can have multiple purposes, header bar 216 is blank. If panel 210 had a dedicated purpose, then header bar 216 would display a title indicating that purpose.
Within header bar 216 are close button 218 and minimize button 220. When selected, close button 218 closes the panel and removes it from the display. Minimize button 220, when selected, zips the panel as described above. Panel 210 also contains resize button 222, which is used to resize the panel. A panel's default size is determined by the size of the tabs it contains. If a tab is not resizable or has a minimum size, then that tab's size will constitute the minimum size for that panel.
Within panel 210 are two tabs 224, 226 labelled "Colors" and "Layers," respectively. Colors tab 224 is currently selected and, accordingly, the colors commands and controls are presented within panel 210. If layers tab 226 were selected, that tab 226 would rise to the top and the layers commands and controls would be displayed within panel 210.
Panel 212, unlike panel 210, only has a single tab 228 labelled "Mixer." Since mixer tab 228 is not resizable, panel 212 does not have a resize button. Panel 214 has multiple tabs 230. Panel 214's tabs 230 have graphic labels, rather than the text labels found in the other panels.
Any tab can be dragged to another panel and placed within that panel. For example, colors tab 224 can be dragged from panel 210 and dropped within panel 214. If a tab is dropped when it is not over a panel, then a new panel is automatically created having that tab as the panel's sole tab.
To dock two or more panels, the user drags a first panel while holding down a modifier key, such as "control" or "command," or a particular pointing device button. If the user drops the first panel within a predetermined proximity to a second panel, then the first panel docks with the second panel and a docking wedge is created. Preferably, the user must drop the first panel within 12 pixels of the second panel for the panels to dock. In such a case, the first panel will "snap" to the side of a docking wedge which will be created between the panels.
FIG. 3 illustrates a screen display 300 showing the panels 210,212,214 of FIG. 2 after the panels have been docked. The panels 210,212,214 are identical to those of FIG. 2, except that docking wedges 310, 312 have been placed between the panels. The docking wedges 310, 312 are thin buttons that provide a visual reminder that the panels are docked and are used to undock the panels as described below.
If a docked panel is resized, moreover, the other panels and docking wedges will automatically reconfigure to assure that the docked panels and docking wedges do not overlap. FIG. 4 is a screen display 400 showing screen display 300 after panel 210 has been resized. Panel 210 has been enlarged. Accordingly, docking wedges 310 and 312 are automatically enlarged to match the new shape of panel 210.
Similarly, FIG. 5 illustrates a screen display 500 showing an alternate configuration of docked panels. In this configuration, panel 212 is docked on the right of panel 210 and connected by docking wedge 510. Likewise, panel 210 is docked on the right of panel 214 by docking wedge 512. An additional panel 518 is docked on the bottom of panel 214 by docking wedge 520.
Once docked, the panels behave as a single unit. Thus, the docked panels can be moved by dragging any one of the panels' header bars 216,514,516,522. In addition, docked panels can be "zipped" as a single unit. If the user presses a docked panel's minimize button 220, then all of the docked panels will zip up. That is, panels containing tabs are reduced to a header bar and tabs. Panels not having tabs are reduced to only a title bar. In addition, the docking wedges are not displayed. Moreover, the zipped panels automatically are repositioned at the upper left corner of an imaginary bounding box surrounding the panels before the panels were minimized.
FIG. 6 illustrates a screen display 600 showing the screen display 500 of FIG. 5 after the panels 210,212,214,518 have been zipped. Note that only the header bars and tabs of panels 212, 214, and 216 are displayed. Panel 518, in contrast, does not have any tabs. Therefore, only the title bar 522 of panel 518 is displayed.
Panels are unzipped by pressing a docked panel's minimize button 220. Then, all of the zipped panels are restored to their former size and screen location. In addition, the docking wedges are redisplayed.
To undock a panel, the user can either click on a docking wedge or hold down a modifier key while dragging a panel's header bar. If the user selects a docking wedge, then that wedge will disappear and the panel docked via that wedge will become undocked. Similarly, if the user drags a docked panel while holding down a modifier key, the docking wedge holding that panel will disappear and the panel will become undocked.
Consider, for example, the docked configuration shown in FIG. 5. The user can undock panel 212 by either clicking on docking wedge 510 or holding down a modifier key while dragging panel 212 via header bar 514. In either case, docking wedge 510 will disappear but docking wedge 512 will remain. Thus, panel 212 will become undocked, but panels 210 and 214 will remain docked.
Note that it is possible for the docked configuration of FIG. 5 to be positioned on the display so that panels 210 and 212 are off the right edge of the display and only panels 214 and 518 are visible. If the user undocks panel 214 while panels 210 and 212 are not visible, then panels 210 and 212 will automatically move back onto the visible area of the screen. Accordingly, it is impossible for panels to get lost off the edge of the screen.
Although the present invention and its advantages have been described in detail, it should be understood that various changes, substitutions and alterations can be made herein without departing from the spirit and scope of the invention as defined by the appended claims.