RELATED CO-PENDING PATENT APPLICATIONThe present invention is related to a co-pending U.S. application, Ser. No. 09/822,174, filed on Mar. 29, 2001, and entitled “Method an Feedback Concerning A Content Pane To Be Docked In A Host Window.”[0001]
FIELD OF THE INVENTIONThe present invention relates generally to docking and undocking a content pane in a host window of a computer, and more particularly to providing feedback for docking the content pane in the host window.[0002]
BACKGROUND OF THE INVENTIONComputer systems, which utilize a graphical user interface in a windows-like environment, will typically display a plurality of windows. Each of the windows can be moved via a pointing device. Typically each window has a separate existence on a graphical user interface desktop with its own content pane, docking pane, borders, title bar, and tool bar. A “content pane” is a pane that has arbitrary contents such as text. A content pane can be “undocked” and “docked” by moving it from one window into another window, referred to as a “host window.” The user moves or “drags” the content pane using a dragging gesture of the mouse. A user can also move the content pane with arrow keys on a keyboard. When a content pane is docked, it may rest in a docking pane. A “docking pane” is an area inside the host window, which can host the content pane. So a content pane is undocked from the docking pane of one window and then docked or redocked into the docking pane of another window. To illustrate the docking and undocking feature, refer now to the following description in conjunction with the accompanying figures.[0003]
FIGS. 1 and 2 illustrate a conventional docking and undocking of a[0004]content pane12 into ahost window10. In FIG. 1, docking and undocking feedback is provided by a dragged gray orblack outline14 through which the underlying components can be seen. Thisoutline14 shows the size and orientation of a window whether docking or undocking. When undocking thecontent pane12, theoutline14 is a thick granular gray border with the size and orientation of the resulting window. In FIG. 2, when docking thecontent pane12, theoutline15 is a thin black border with the size and orientation (but not the precise docking area) of the resulting docking pane. A result of docking (not shown) is a border region separated from the center of the host window with a splitter bar. A splitter bar, or “splitter,” divides two panes arranged horizontally or vertically. The problems with the conventional docking and undocking of content panes utilizing the conventional method are described herein below.
Docking occurs only in the four border regions of the host window, not in the center of the host window. In a border region, multiple docking panes can be arranged in only one direction. Docking areas are limited to four docking areas. In the direction of the splitter bar, docking always occurs outside the split panes. Given a vertical splitter bar, for example, the left-top, left-bottom, right-top, and right-bottom docking areas are not available. The feedback during docking and undocking shows only the orientation and size of the resulting docked content pane, but not how the existing docking panes will be moved and resized.[0005]
One conventional solution uses a technique where a transparent rectangle is displayed. The outline of the transparent rectangle changes shape and size to indicate a dockable docking area. Another conventional solution also uses this technique in combination with displaying different cursors to show dockable docking areas. Nevertheless, users still have difficulty predicting the arrangement of views that will result if they drop a view at a given location, because the feedback during docking and undocking does not show how the existing docking panes will be moved and resized.[0006]
Furthermore, a point on the mouse cursor, or a point on the object being dragged, called the hotspot, must be over a particular area on the screen to get a particular arrangement. Both the hotspot and the docking areas on the screen must be visible to the user to more accurately predict the resulting arrangement. Otherwise, when a content pane is placed in an ambiguous area, such as between two border regions, it is unpredictable where the content pane will be ultimately docked. Therefore, the visual feedback to the user must give the user an adequate indication of the ultimate result of the docking. Finally, there are typically areas in a host window that are not eligible for docking, and the locations of these areas are not clear unless both the hotspot and the docking areas on the screen are visible.[0007]
Accordingly, what is needed is a method and system for overcoming the above-identified problems. The present invention addresses such a need.[0008]
SUMMARY OF THE INVENTIONA method and system for providing feedback for docking a content pane in a host window is disclosed. The method and system comprise providing a docking map. The docking map includes a plurality of docking areas therewithin. The method and system also include positioning a thumbnail associated with a content pane over one of the plurality of docking areas. Finally, the method and system include providing a hotspot on the thumbnail. The hotspot indicates that the content pane can be dropped into the one docking area. The feedback enables a user to precisely dock a content pane. In addition, a user can predict the final configuration of the host window. In addition, the docking of the content pane can determine complex configurations within a host window including nested splitters and notebooks whose tabs are oriented in any direction.[0009]
BRIEF DESCRIPTION OF THE DRAWINGSFIGS. 1 and 2 illustrate a conventional docking and undocking of a content pane into a host window.[0010]
FIG. 3 illustrates a hardware environment used to implement a preferred embodiment of the present invention.[0011]
FIG. 4 is a diagram of a host window comprising a content pane, docking panes, docking maps, and a thumbnail in accordance with an embodiment of the present invention.[0012]
FIG. 5 is a simple flow chart for providing feedback for docking a content pane in a host window in accordance with an embodiment of the present invention.[0013]
FIG. 6 illustrates a docking map of FIG. 4 in accordance with an embodiment of the present invention.[0014]
FIGS.[0015]7-9 show resulting notebook configurations of a docking pane of FIG. 6 after docking a content pane in accordance with an embodiment of the present invention.
FIGS. 10 and 11 show resulting docking pane configurations within the host window of FIG. 6 after docking a content pane in accordance with an embodiment of the present invention.[0016]
FIG. 12 illustrates a docking map of FIG. 4 in accordance with an embodiment of the present invention.[0017]
FIGS.[0018]13-15 show resulting configurations of a new notebook of a docking pane of FIG. 12 after docking a content pane in accordance with an embodiment of the present invention.
FIG. 16 illustrates a docking map of FIG. 4 in accordance with an embodiment of the present invention.[0019]
FIGS. 17 and 18 show resulting configurations of a content pane and docking panes of FIG. 16 after docking a content pane in accordance with an embodiment of the present invention.[0020]
FIG. 19 illustrates the thumbnail, content pane, and docking panes of FIG. 4 in accordance with a preferred embodiment of the present invention.[0021]
FIG. 20 illustrates the content pane of FIG. 4 in accordance with an embodiment of the present invention.[0022]
DETAILED DESCRIPTIONDefinitions[0023]
The following terms are defined in accordance with the present invention.[0024]
Host window—a window that can host other windows or views. A host window is also referred to as a parent window.[0025]
Docking pane—a pane or area inside the host window that can host one or more content panes or notebooks. A docking pane is also referred to as a docking frame.[0026]
Content pane—a pane that has content such as text and that can be moved from one docking pane to another. A content pane is amodal; that is, its appearance does not preclude interaction with other content panes or other GUI controls. A content pane is also referred to as a view.[0027]
Notebook—a stack of two or more content panes where each content pane has a tab that can be selected to make the contents of the content pane visible.[0028]
Docking area—an area within a docking pane into which a content pane can be dropped for docking. Each docking area has specific functions such as docking the content pane in a notebook with other existing content panes in a docking pane, or creating a new docking pane to host the content pane.[0029]
Drag window—a window that represents the content pane being dragged when it is not eligible to be docked.[0030]
Thumbnail—a window that is associated with the content pane and indicates the docking or floating potential of the content pane. The thumbnail represents the content pane being dragged into a docking area, a pointer, and the final configuration of the host window. A drag window shrinks down to or is replaced by a thumbnail when the content pane being dragged is eligible to be docked.[0031]
Hotspot—a portion of the thumbnail that indicates when a content pane can be dropped into a docking area. The hotspot is visibly distinct from other portions of the thumbnail to allow for precise dropping of the content pane into a docking area for docking.[0032]
Docking—adding a content pane to a docking pane.[0033]
Dropping—completing a drag. A content pane can be dropped into a docking area when the hotspot of the thumbnail is positioned over the docking area. A content pane can also be dropped over the desktop to undock or float it in its own window. The content pane can then be dropped typically when the mouse button, used to grab the content pane, is released.[0034]
Floating—also known as undocking, moving a content pane to a docking pane of its own, also referred to as its floating frame.[0035]
Toolbar—a pane with toolbar buttons that can be docked or floated.[0036]
Splitter—a bar that divides two docking panes arranged horizontally or vertically.[0037]
Present Invention[0038]
The present invention relates generally to docking and undocking a content pane in a host window of a computer, and more particularly to providing feedback for docking the content pane in the host window. The following description is presented to enable one of ordinary skill in the art to make and use the invention and is provided in the context of a patent application and its requirements. Various modifications to the preferred embodiment and the generic principles and features described herein will be readily apparent to those skilled in the art. Thus, the present invention is not intended to be limited to the embodiment shown but is to be accorded the widest scope consistent with the principles and features described herein.[0039]
A method and system in accordance to the present invention for providing feedback for docking a content pane in a host window is disclosed. The method and system provide one or more docking maps that include a plurality of docking areas into which a content pane can be, dropped for docking into a host window. To facilitate in the docking procedure, a thumbnail associated with the content pane is provided. A thumbnail is utilized to represent the arrangement of the host window if the user drops the content pane into a docking area. One embodiment of a thumbnail is described in a copending U.S. application Ser. No.09/822,174, filed on Mar. 29, 2001, and entitled “Method and System for Providing Feedback Concerning A Content Pane To Be Docked In A Host Window.” More specifically in accordance with this application, a system and method provide a representation of a position of the content pane within the host window and utilizes the thumbnail to indicate the position and the orientation of the content pane within the host window. The content pane is docked according to the representation and allows for docking to occur beyond the border regions. The thumbnail feedback when docking shows how existing docking panes will be moved and resized, as well as the orientation and relative size of the resulting docking pane. Although the thumbnail effectively operates in accordance with its stated purpose, there is always a desire to improve feedback to a user when utilizing content panes in a host window.[0040]
In a system in accordance with the present invention, a thumbnail has a visible hotspot making it easier to position the content pane over one of the docking areas. The hotspot provides an indication that the content pane can be accurately dropped into one of the docking areas. In addition, the docking areas provide multiple configurations that divide the docking pane with notebooks and splitters to position a content pane being dropped in relation to existing content panes. As a result, a user can precisely predict the final configuration of the host window, i.e., how the content pane will be docked and how the docking panes will adjust. To more particularly describe the features of the present invention refer now to the following description in conjunction with the accompanying figures.[0041]
FIG. 3 illustrates a hardware environment used to implement an embodiment of the present invention. As illustrated in FIG. 3, the preferred embodiment of the present invention is implemented in a[0042]computer50. Thecomputer50 generally includes aprocessor52, amemory54 such as a random access memory (RAM), a data storage device56 (e.g., hard drive, floppy disk drive, CDROM disk drive, etc.), a data communication device58 (e.g., a modem, network interface device, etc.), a monitor60 (e.g., CRT, LCD display, etc.), a pointing device62 (e.g., a mouse, a track ball, a pad or any other device responsive to touch, etc.) and akeyboard64. It is envisioned that attached to thecomputer50 may be other devices such as read only memory (ROM), a video card drive, printers, peripheral devices including local and wide area network interface devices, etc. One of ordinary skill in the art will recognize that any combination of the above components may be used to configure thecomputer50.
The[0043]computer50 operates under the control of an operating system (“OS”)66, such as MVS™, AIX®, UNIX®, OS/2®, WINDOWS™, WINDOWS NT™, etc., which typically is loaded into thememory104 during thecomputer50 start up (boot-up) sequence after power-on or reset. (AIX and OS/2 are registered trademarks and MVS is a trademark of International Business Machines Corporation in the United States, other countries, or both. Windows and Windows NT are trademarks of Microsoft Corporation. UNIX is a registered trademark in the United States and/or other countries licensed exclusively through X/Open Company Limited.) In operation, theOS66 controls the execution by thecomputer50 ofcomputer programs68, including computer programs. Alternatively, a method, system or computer readable medium in accordance with the present invention may be implemented with any one or all of thecomputer programs68 embedded in theOS66 itself without departing from the scope of the invention. Preferably, however, the client programs are separate from the computer programs.
The[0044]OS66 and thecomputer programs68 each comprise computer readable instructions which, in general, are tangibly embodied in or are readable from a media such as thememory54, thedata storage device56 and/or thedata communications device58. When executed by thecomputer50, the instructions cause thecomputer50 to perform the steps necessary to implement the present invention. Thus, the present invention may be implemented as a method, system, or computer readable medium using programming and/or engineering techniques to produce software, hardware, firmware, or any combination hereof.
In accordance with the present invention, various embodiments for a window docking are presented that allow for feedback of the configurations displayed on a graphical user interface of the[0045]computer50. Such a graphical user interface in a computer system may be implemented via conventional programming techniques.
To describe the present invention in the context of a preferred embodiment, refer now to the following description in conjunction with the accompanying Figures.[0046]
FIG. 4 is a diagram of a[0047]host window100 comprising acontent pane102,docking panes104 and106, docking maps108-112, and athumbnail114 in accordance with an embodiment of the present invention. As illustrated in FIG. 4, the docking maps108 and110 overlay thedocking panes104 and106, respectively, and thedocking map112 overlays asplitter113. Thethumbnail114 is associated with thecontent pane102 and includes ahotspot116. The number of content panes, docking panes, and splitters is arbitrary, and one of ordinary skill in the art would recognize that any number of content panes and splitters could be utilized within the scope and nature of the present invention. The “Dockable Area Example” shown in FIG. 4 is intended to illustrate as simply as possible the characteristics of the present invention; the preferred embodiment of the present invention applies to any computer software application with multiple content panes.
FIG. 5 is a simple flow chart for providing feedback for docking a content pane in a host window in accordance with an embodiment of the present invention. First, referring to FIGS. 4 and 5 together, a docking map is provided, which includes a plurality of docking areas therewithin, via a[0048]step120. The docking map can be any one of the docking maps108,110, or112 (FIG. 4). Next, athumbnail114 associated with acontent pane102 is positioned over one of the plurality of docking areas, via astep122. Adocking area123 is an example of one of the plurality of docking areas. Ahotspot116 is indicated on thethumbnail114, wherein thehotspot116 indicates that thecontent pane102 can be dropped into the one docking area, via astep124.
The[0049]thumbnail114 has three aspects. First, thethumbnail114 represents thecontent pane102 as it is being dragged when it is positioned over one of the plurality of docking areas, such as thedocking area123. Second, thethumbnail114 represents a pointer in that thethumbnail114 appears in lieu of the pointer. Thehotspot116 on thethumbnail114 accurately indicates that thecontent pane102 can be dropped into the one docking area when thehotspot116 is within the boundaries of a docking area. Third, thethumbnail114 represents the final configuration of thehost window100 resulting from dropping thecontent pane102 in a particular docking area. Thethumbnail114 is described in more detail later in this application and more specifically in relation to FIG. 19.
The docking maps[0050]108112 include docking areas for three types of panes, respectively: thedocking pane104, which has an existing notebook with a plurality of existing content panes; thedocking pane106, which has an existing content pane and no existing notebook; and apane113, which is a splitter. Generally, the docking areas of the docking maps108-112 determine configurations within a docking pane and/or docking pane configurations within thehost window100 in which the dragged content pane can be positioned in relation to other content panes using notebooks and splitters.
FIG. 6 illustrates the[0051]docking map108 of FIG. 4 in accordance with an embodiment of the present invention. Thedocking map108 includes docking areas130-142 for docking thecontent pane102 relative to thedocking pane104. Thedocking pane104 has a notebook with two content panes. One content pane is labeled with asave tab125 and one content pane is labeled with acut tab126. As is shown, thesave tab125 is selected so that a view of the save text is visible.
The docking areas[0052]130-134 determine notebook configurations within thedocking pane104. Generally, dropping thecontent pane102 into one of the docking areas130-134 places thecontent pane102 into the notebook of thedocking pane104 and configures the notebook. FIGS.7-9 show resulting notebook configurations thedocking pane104 of FIG. 6 after docking thecontent pane102 in accordance with an embodiment of the present invention. Referring to FIGS. 6 and 7, if thecontent pane102 is dropped into thedocking area130, thecontent pane102 is placed into the notebook and has anopen tag127 that is inserted into the first tab position from the left. Referring to FIGS. 6 and 8, it thecontent pane102 is dropped into thedocking area132, thecontent pane102 is placed into the notebook and theopen tag127 is inserted into the second tab position. Referring to FIGS.6 and9, if the content,pane102 is dropped into thedocking area134, thecontent pane102 is placed into the notebook and theopen tag127 is inserted into the third tab position. Because a new content pane is potentially added to the notebook of thedocking pane104, there are n +1 docking areas available with the function of creating adding the new content pane, where n is the number of existing content panes in the notebook ofdocking pane104.
In one embodiment, the relative positions of the docking areas indicate their function. In this specific embodiment, the docking areas[0053]130-132 are located in the center of thedocking map108 to distinguish them from other types of docking areas (described further below). Symbols and/or labels can also be used to indicate the type or function of each docking area. Folder symbols are used to indicate a docking area for adding a new content pane to an existing notebook. Different folder symbols (tab on the left, tab in the middle, and tab on the right) are used to indicate different positions for a new tab of a notebook. In addition, different labels (“1,” “2,” and “3”) are also used to indicate different positions for a new tab of a notebook. The specific symbols or labels used or combination thereof can be chosen by the user and will depend on the specific application. Furthermore, the appearance of the docking symbols and labels can be chosen by the user to ensure that they are readable. Furthermore, the docking symbols and labels can be turned on and off, manually or by default.
Referring to the docking areas[0054]136-142 of FIG. 6, these docking areas determine docking pane configurations within thehost window100. Generally, dropping thecontent pane102 into one of these docking areas136-142 places thecontent pane102 into its own docking pane adjacent to the docking pane104 (separated by a splitter), and adjacent to the side of thedocking pane104 closest to the docking area into which thecontent pane102 is dropped FIGS. 10 and 11 show resulting docking pane configurations within thehost window100 of FIG. 6 after docking thecontent pane102 in accordance with an embodiment of the present invention. Referring to FIGS. 6 and 10, if thecontent pane102 is dropped into thedocking area136, thecontent pane102 is placed into its own docking pane adjacent to and to the right of thedocking pane104. Referring to FIGS. 6 and 11, if thecontent pane102 is dropped into thedocking area138, thecontent pane102 is placed into its own docking pane adjacent to and below thedocking pane104, between thedocking panes104 and106. Similarly, dropping thecontent pane102 into thedocking areas140 or142 places thecontent pane102 in its own docking pane adjacent to the left or top of thedocking pane104, respectively.
The docking areas[0055]136-142 are located along the borders of thedocking pane104 to distinguish them from other types of docking areas. Arrow symbols are used to indicate the docking location relative to thedocking pane104, i.e., to the sides of thedocking pane104 to which the arrow symbols are pointing. In a preferred embodiment, the docking maps are turned on by default. Alternatively, the docking maps, symbols, and labels can be turned on or off, manually or by default.
FIG. 12 illustrates the[0056]docking map110 of FIG. 4 in accordance with an embodiment of the present invention. Thedocking map110 includes docking areas150-186 for docking thecontent pane102 relative to thedocking pane106. Thedocking pane106 has one existing content pane labeled “Copy.”
The docking areas[0057]150-156,123, and160164 determine notebook configurations within thedocking pane106. Generally, dropping thecontent pane102 into one of these docking areas150-156,123, and160-164 places thecontent pane102 and the existing copy pane into a,new notebook in thedocking pane104, and configures the notebook. A single notebook symbol is used to indicate the function of these docking areas150-156,123, and160-164. The orientation of the tabs (bottom, left, top, or right side of the docking pane) and their relative tab positions are based on the docking area into which thecontent pane102 is dropped.
FIGS.[0058]13-15 show resulting configurations of a new notebook of thedocking pane106 of FIG. 12 after docking thecontent pane102 in accordance with an embodiment of the present invention. Referring to FIGS. 12 and 13, if thecontent pane102 is dropped into thedocking area123, thecontent pane102 and the copy content pane are placed into a new notebook indicated by tabs. The notebook is configured such that the tabs are at the bottom of thedocking pane106. Thecontent pane102 has anopen tab170 in the right tab position and the copy content pane has acopy tab172 in the left tab position. Referring to FIGS. 12 and 14, if thecontent pane102 is dropped into thedocking area160, the results are the same as those in FIG. 13 except that theopen tab170 is in the left tab position and thecopy tab172 in the right tab position.
Referring to FIGS. 12 and 15, if the[0059]content pane102 is dropped into thedocking area162, a new notebook is created for the content panes and is configured such that the tabs are at the left of thedocking pane106. Theopen tab170 is in the bottom tab position and thecopy tab172 is in the top tab position. Similarly, if thecontent pane102 is dropped into thedocking area164, the results are the same as those in FIG. 15 except that theopen tab170 would be in the top tab position and thecopy tab172 would be in the bottom tab position. If thecontent pane102 is dropped into thedocking areas150/152 or154/156, the tabs of the notebook are placed at the top or right of thedocking pane106, respectively. These docking areas150-156 determine the relative tab positions in a similar manner described for thedocking areas123 and160-164.
Referring to FIG. 12, the docking areas[0060]180186 function similarly to the docking areas136-142 of FIG. 6, respectively.
FIG. 16 illustrates the[0061]docking map112 of FIG. 4 in accordance with an embodiment of the present invention. Thedocking map112 includes docking areas for docking thecontent pane102 relative to other docking panes of thehost window100. Thedocking map112 includes twodocking areas187 and188. And the thumbnail is positioned to selectdocking area187. FIGS. 17 and 18 show resulting configurations of thecontent pane102 and thedocking panes104 and106 of FIG. 16 after docking thecontent pane102 in accordance with an embodiment of the present invention. Referring to FIGS. 16 and 17, if thecontent pane102 is dropped into thedocking area187, thecontent pane102 is docked adjacent to and to the left of both thedocking panes104 and106 and is separated from them by a vertical splitter. Referring to FIGS. 16 and 18, if thecontent pane102 is dropped into thedocking area188, thecontent pane102 is docked adjacent to and to the right of both thedocking panes104 and106 and is separated from them by a vertical splitter bar. Alternatively, a docking map can be created for any splitter depending on which content pane is grabbed for undocking and docking. For example, if the content pane of thedocking pane106 were grabbed, a docking map could appear over the vertical splitter between thecontent pane102 and thedocking pane104.
FIG. 19 illustrates the[0062]thumbnail114 of FIG. 4 in accordance with a preferred embodiment of the present invention. Thethumbnail114 comprises thehotspot116, which is indicated visually to the user so that thethumbnail114 can be more accurately placed over a target docking area. Thehotspot116 can be made visually distinct from the other portions of the thumbnail by varying the shape, color, shading, texture, size, docking area of thehotspot116, or any combination thereof. In a preferred embodiment, thehotspot116 is shown as a dark triangle in the upper-left comer of thethumbnail114. Alternatively, thehotspot116 can be located on other comers or parts of the thumbnail114 (e.g., in the center). With thehotspot116, thethumbnail114 represents a pointer in that thevisible hotspot116 is used to accurately navigate thecontent pane102 over a target docking area. When thethumbnail114 appears, it replaces the pointer. Alternatively, both an outline of thecontent pane102 being dragged by the pointer and the pointer can shrink down to or be replaced by thethumbnail114.
When the[0063]content pane102 is floatable (i.e., not currently over a docking area), an outline of thecontent pane102 is dragged where the outline represents thecontent pane102 being dragged until it is dropped. Alternatively, thethumbnail114 can appear in place of the outline and pointer immediately when thecontent pane102 is dragged. As such, thethumbnail114 represents thecontent pane102 being dragged and is proportional to thecontent pane102. As such, the thumbnail is called the drag window.
When the[0064]content pane102 is dockable (i.e., currently over a docking area), thethumbnail114 represents thecontent pane102 being dragged (as well as a pointer). In one embodiment, thethumbnail114 has the size of about 4000 pixels (about 4 times the largest mouse pointer on Windows).
In addition, when the[0065]content pane102 is dockable, thethumbnail114 displays a preview of the final configuration of the host window100 (i.e., notebook configuration and/or docking pane configuration). As illustrated in FIG. 19, thehotspot116 is placed thedocking area123 and if dropped will result in a particular final configuration in thehost window100. This final configuration will be displayed on thethumbnail114. In other words, thethumbnail114 is a miniature representation of thehost window100 after thecontent pane102 is docked.
The[0066]thumbnail114 indicates a splitter with a straight line, a notebook with a bent line, and the content pane being dragged with the selection-background color, with the same look and feel. Still referring to FIG. 19, thelower section190 of thethumbnail114 corresponding to thedocking pane106 is darkened. Also, the tab-shapedsection192 of thethumbnail114 corresponding to a new notebook tab is darkened. The tab-shapedsection192 is darkened to a lighter shade than thelower section190 such that both thelower section190 and thetabshaped section192 are visible and distinct. Alternatively, areas of thethumbnail114 can be beveled to more clearly indicate the final configuration of the of the host window, including the content pane. Shallow to deep relief bevels can be used with varying pixel depths to adjust the clarity.
In a preferred embodiment, a content pane that has been grabbed for undocking or docking can be darkened to distinguish it visually from the docking panes. The content pane that is dragged is darkened to be distinctly darker than the content panes of the docking panes that the docking maps overlay. The content pane that is dragged can be darkened with a semitransparent screen overlay. The color of the semitransparent screen can be the same as the highlight color of the thumbnail, the colors of which can be changed by the user. In addition, the areas behind the docking maps can be dimmed/lightened to render the lines and symbols of the docking maps more clearly. These lightened areas are distinctly lighter than the content pane being dragged. This helps in identifying the content pane being dragged and to view the decking maps more clearly. In one embodiment, the target area is dimmed by 50%.[0067]
FIG. 20 illustrates the[0068]content pane102 of FIG. 4 in accordance with an embodiment of the present invention. To drag thecontent pane102, the pointer or cursor is placed over adrag bar194. When thecontent pane102 is docked, it has atitle bar196 and thedrag bar194 becomes visible when the cursor is placed over thetitle bar196. The cursor can change when it is placed over thedrag bar194 or the title bar196 (e.g., from a typical mouse pointer to an open hand). The cursor can change again when the mouse button is pressed (e.g., from an open hand to a closed or grabbing hand). The specific cursor used will depend on the specific application. While a mouse is typically used to drag thecontent pane102, one of ordinary skill in the art readily recognizes that any type of pointing device could be used and that use would be within the spirit and scope of the present invention.
There are no restrictions as to where the[0069]content pane102 can be dropped. If thecontent pane102 is not dropped in a docking area of a docking map, thecontent pane102 floats (i.e., remains within its own docking pane and undocked) and is positioned at the location where thecontent pane102 was dropped. Dragging a floating content pane by its title bar merely moves the content pane together with its docking pane. Docking a floating content pane can be accomplished by grabbing itsdrag bar194. When thecontent pane102 is floating, itsdrag bar194 is visible. The title bar or the drag bar can be oriented horizontally (preferably at the top of the content pane) or vertically (preferably at the left of the content pane).
If a docked content pane is closable, its title bar can have a close button. When the close button is selected, the content pane is hidden. If a docked content pane is not closable, it does not have a close button when docked and has a close button when floating. The content pane, if floating, returns to its parent pane when the close button is selected. A content pane can have a collapse button with the following states: disabled, maximize, minimize, restore, and hidden, and the following icons: disabled (unavailable), maximize, minimize, and restore.[0070]
The[0071]docking panes104 and106 can also be undocked and docked in a similar manner described above for thecontent pane102. If a content pane to be undocked and docked already has within it an existing notebook with content panes, each content pane can be dragged separately in the manner described above. The docking pane in which the dragged content pane stays behind with one less content pane in its notebook. The dragged content pane can then be placed into a new notebook in another docking pane or can be put into its own docking pane. Alternatively, a set of content panes can be dragged together. The relative positions of their tabs would remain the same even when docked into another docking pane with its own existing notebook and corresponding tabs. The set of tabs from the content panes to be undocked and docked can be treated like a single tab relative to the other tabs. Of course the positions of all tabs can be later reordered. Furthermore, floating content panes can be docked in a similar manner described above.
A[0072]tool bar198 can also be undocked and docked in a similar manner described above for thecontent pane102. Thetool bar198 can be floated or docked and can be dragged by its border. Thetool bar198 can be docked by closing its floating pane, or by grabbing its border and dragging the resulting thumbnail to a docking area. A thumbnail for a tool bar can have two appearances. When the tool bar is floatable, the thumbnail has the size of the floating pane (i.e., the pane of the tool bar as it floats). When the tool bar is dockable, it has floating the size of a docked toolbar.
The preferred embodiment in accordance with the present invention has the following advantages over conventional docking and undocking schemes. A content pane can be docked precisely with predictability. Furthermore, the docking of the content pane can determine a notebook configuration within a docking pane and/or a docking pane configuration within a host window. Furthermore, the content pane can be dropped anywhere in the host window without restrictions because if the content pane is not dropped in a docking area, the content pane floats.[0073]
A method and system in accordance to the present invention for providing feedback for docking a content pane in a host window is disclosed. The method and system provide one or more docking maps that include a plurality of docking areas into which a content pane can be dropped for docking into a host window. To facilitate in the docking procedure, a thumbnail associated with the content pane is provided, and the thumbnail has a visible hotspot making it easier to position the content pane over one of the docking areas. The hotspot indicates that the content pane can be accurately dropped into one of the docking areas. In addition, the docking areas provide multiple notebook configurations and provide multiple docking pane configurations based on the docking area into which the content pane is dropped. As a result, a user can precisely predict the final configuration of the host window, i.e., how the content pane will be docked and how the docking panes will adjust.[0074]
Although the present invention has been described in accordance with the embodiments shown, one of ordinary skill in the art will readily recognize that there could be variations to the embodiments and those variations would be within the spirit and scope of the present invention. Accordingly, many modifications may be made by one of ordinary skill in the art without departing from the spirit and scope of the appended claims.[0075]