Cell based EUI methods and apparatus7013431Abstract In a cell based EUI, existing display container cells nested within a "host" display container cell are automatically shifted and/or downsized, if necessary, to increase available space to facilitate the creation of another display container cell nested within the "host" display container cell, in response to a request to perform the creation. Similar shifting and/or downsizing are performed to facilitate expansion of one of the nested display container cells; and shifting and upsizing are performed to facilitate contraction of one of the nested display container cells. Like kind of shifting and/or downsizing/upsizing are performed on existing display container cell to facilitate creation, expansion or contraction of a display action cell. The hierarchical relationship of the display container and action cells, and the automatic relative resizing of the container and action cells enable user interactions otherwise unavailable under prior art EUI. Claims What is claimed is: Description BACKGROUND OF THE INVENTION
Additionally, for the embodiment, associated with the definition of each region/zone "container" cell 202 and 204*-206*, and stored inside corresponding data objects 302 and 304*-306* are attributes defining a kernel 402/502 of the region/zone "container" cell 204*-206*. A kernel of a region/zone "container" cell 204*-206* refers to the smallest manifestation of the region/zone "container" cell 204*-206*. That is, when the available space within a host "container" cell 202-205* falls below the space required by the kernel of a region/zone "container" cell 204*-206*, the "container" cell 204*-206* is to be "reduced" to an icon cell. For the embodiment, the kernel related attributes include attributes defining a region/zone "container" cell's kernel's size, base and height.
Further, for the embodiment, associated with the definition of each region/zone "container" cell 202 and 204*-206*, and stored inside corresponding data objects 302 and 304*-306* are attributes defining a boundary 406/506 of the region/zone "container" cell 204*-206*. The boundary related attributes include attributes defining a thickness and a color of the boundary of the region/zone "container" cell 204*-206*.
In one embodiment, if the "boundary" attributes are not specified for a region/zone "container" cell, the region/zone "container" cell automatically inherits the "boundary" attributes of the nearest "ancestor" region "container" cells, where such attributes are specified. In other words, an inheriting region/zone "container" cell takes on the characteristics of the bequeathing "ancestor" region "container" cell. Associated with the definition of each region/zone "container" cell 202 and 204*-206*, and stored inside corresponding data objects 302 and 304*-306* are also attributes defining a border 404/504 of the region/zone "container" cell 204*-206*. The border related attributes include attributes defining a thickness, a color, a texture, a shading, a blinking and a transparency attribute of the border of the region/zone "container" cell 204*-206*.
In one embodiment, if the "border" attributes are not specified for a region/zone "container" cell, the region/zone "container" cell also automatically inherits the "border" attributes of the nearest "ancestor" region "container" cell, where such attributes are specified. In various embodiments, for a region "container" cell 204*-205*, the attributes may further include attributes defining how many zone "container" cells it may have, their names and their default alignments (e.g. center, top, bottom, right, left and so forth), whereas for a zone "container" cell 206*, the attributes may further include an attribute defining its "host" region "container" cell 202 and 204*/205*. For a zone "container" cell 206*, the attributes may further include attributes defining its content types, video, data, image, text, and so forth, and an external buffer 508. External buffer 508 defines the minimum inter-zone "container" cell spacing between immediately adjacent zone "container" cells 206*.
The above described attributes for region/zone "container" cells are merely illustrative. In alternate embodiments, the present invention may be practiced with more or less region/zone "container" cell attributes. For example, the present invention may be practiced with additional attributes defining a) the control facilities associated with the region/zone "container" attributes, b) the behavior when certain areas of a region/zone "container" cell is "mouse over", and c) forced bequeathing of certain attributes to the more inner or lower level region/zone "container" cells. Anatomy of an "Action" Cell FIG. 6 illustrates the composition of an "action" cell, more specifically, an image icon "action" cell in further detail, in accordance with one embodiment. As described earlier, an image icon "action" cell is an iconic representation of another displayable or launch-able cell with content, control facilities and so forth. Further, "action" cells may also include cells defining control facilities, and cells defining "button" icon, which provide control facilities for a region/zone "container" cell and action to be performed within a region/zone "container" cell respectively. The description to follow for an image icon "action" cell may be likewise adopted to implement button icon "action" cells and/or control facilities cells. As illustrated, for the embodiment, associated with the definition of each image icon "action" cell 208*-210* and stored inside a corresponding data object 314*-316* are attributes defining the bit map of the image icon "action" cell, the center position of the image icon "action" cell, a region/zone "container" cell with which the image icon "action" cell is associated, and a buffer 602. Buffer 602 defines the minimum space required to display the image icon "action" cell.
Similarly, in alternate embodiments, the present invention may be practiced with more or less attributes defining the various "action" cells, as well as the contents to be rendered (i.e. video, graphics, texts, and so forth). In particular, for button icon "action" cells and control facility "action" cells, each of the respective "action" cells may include one or more attributes in identifying the binaries to be executed responsive to various types of user actions, e.g. "mouse over", "single click", "double clicks", and so forth. Implementation Methods of "Container" and "Action" Cells Referring briefly to FIG. 3 again, as described earlier, for the illustrated embodiment, region/zone "container" cells, "action" cells, and data (include video, graphics, text and so forth) are implemented in an object oriented manner, with corresponding data objects 302 and 304*-316*. In one embodiment, as illustrated in FIG. 7, various methods 700 are associated with the data objects 302 and 304*-316*. For the embodiment, these methods include in particular a clear, a contract, an expand, a remove, and a set attribute method, 702-710, associated with the root data object 302, and inherited by the descendant data objects 304*-316* of the nested region/zone "container" cells 204*-206*, as well as the descendant data objects 314*-318* of the nested "action" cells 208*-210*. Clear method 702, when invoked against universal region "container" cell's data object 302 clears the EUI 102, i.e. removing all nested region/zone "container" cells 204*-206*, including their contents, as well as any nested "action" cells 208*-210*. In one embodiment, the universal region "container" cell clearing is efficiently achieved by clearing or deleting all descendant data objects 304*-316*. Inner invocation against a region/zone "container" cell 204*-206* clears the nested regions/zones "container" cells 204*/206* within the target region/zone "container" cell 204* including their contents, and any nested "action" cells 208*-210*. In like manner, the clearing is efficiently achieved by clearing or deleting the applicable descendant data objects 304*-316*. Expand and contract methods 704-706 are employed to expand and contract a region/zone "container" cell 204*-206* respectively. Remove method 708 facilitates removal of individual cells of the EUI 102, i.e. one or more regions/zone "container" cells 204*-206* or "action" cells 208*-210* without clearing all cells. Removal is achieved in like manner as clear method 702, except the operation is applied to selected ones of the descendant data objects, as opposed to all descendant data objects. Set Attribute method 710 facilitates setting of the earlier described region/zone "container" cell and "action" cell attributes associated with region/zone "container" cells 202 and 204*-206*, and "action" cells respectively. For region/zone cells 204*-206* and "action" cells 208*-210*, their corresponding data objects 304*-306* and 314*-316* further include the association of a create, and a delete, a move and a place method 712-718. Create and delete methods 712-714, as their names suggest, facilitate creation and delete of the various descendant data objects 304*-306* and 314*-316* for the nested region/zone "container" cells and "action" cells 204*-206* and 208*-210*. Move and place methods 716-718, as their names suggest, facilitate movement and relocation of the various region/zone "container" cells and "action" cells 204*-206* by modifying e.g. the position attributes of the corresponding data objects 304*-306* and 314*-316*. For the embodiment, data objects 314*-316* for "action" cells 208*-210* further include the association of a launch method 720 for launching a displayable region/zone cell 204*-206* represented by image icon "action" cells 210*. With the exception of the handling of the impact that flows from the creation, deletion, expansion and contraction of a region/zone "container" cell 204*-206*, implementation of the above described methods are within the ability of those ordinarily skilled in the art, accordingly will not be further described. Handling of the impact that flows from the creation, deletion, expansion and contraction of a region/zone "container" cell 204*-206* will be described in more detail below, referencing FIGS. 11-16. Interacting with EUI FIGS. 8-9 illustrate two novel interactions with EUI 102, otherwise not available under the prior art, and the relevant operation flow of an implementor, such as an application, a cell manager or a window manager, incorporated with the teachings of the present invention. As illustrated, by virtue of the earlier described novel architecture and data organization, contents presented through two different zone "container" cells 206* may be easily interchanged or swapped, as denoted by arrow 802. The swapping operation may be initiated through any one of a number of user key sequences, e.g. user key sequences similar to a conventional drag and drop operation. The swapping may be efficiently accomplished by switching association of the applicable data objects 308*-316* and their region/zone "container" cells 204*-206*. Further, "action" cells 314*-316* may be easily relocated to any region/zone "container" cell 204*-206* as denoted by arrow 804. As illustrated in FIG. 9, in response to a non-region/zone "container" cell impacted user interaction, an implementor (such as an application, a cell manager or a window manager incorporated with the teachings of the present invention) determines if the sequence of user inputs denotes a drag and drop of content from one region/zone "container" cell 204*-206* to another, block 902. If so, the implementor effectuates the content swapping, by switching the data objects' association with their region/zone "container" cells 204*-206*, as earlier described, block 904. If the sequence of user inputs does not denote a drag and drop of content, for the embodiment, the implementor further determines if the sequence of user inputs denotes an "action" cell drag and drop, block 906. If so, the implementor effectuates the "action" cell movement and placement by similarly switching the "action" cell's association with region/zone "container" cells 204*-206*, optionally launching the represented region/zone "container" cell 204*-206* and its contents (if so requested by the sequence of user inputs), block 908. If the sequence of user inputs does not denote either one of these novel interactions supported, the denoted prior art request may then be processed as in the prior art. The sequence of user inputs denoting the earlier described content and "action" cell drag and drop may be practiced through any key sequences, e.g. by clicking on the content or icon, using a cursor control device, and keeping the applicable click button of the cursor control device held down, until the target region/zone "container" cell 206* is reached. At such time, the click button of the cursor control device may be returned to its normal position. In alternate embodiments, the present invention may be practiced with other key sequences instead. Transition from a Current View to a Next View FIG. 10 illustrates an overview of the operation of EUI 102. The current state of EUI 102 as defined by the current states of the corresponding data objects 302-316* of the constituting cells 202-210* of EUI 102, as illustrated, is referred to as the current view of EUI 102. In response to user interactions, such as a request to add or remove a region/zone "container" cell 204*-206*, or a request to expand or contract a region/zone "container" cell 204*-206*, the implementor of the present invention, e.g. an application, a cell manager or a window manager, performs a series of responsive calculations, and generate the next view of EUI 102. The operational flow of the relevant aspects of the implementor, in response to the various user interactions of interest, will be described in turn below. Addition/Expansion of a Region/Zone "Container" Cell FIG. 11 illustrates the operational flow of the relevant aspects of an implementor, e.g. an application, a cell manager or a window manager, for responding to a request to add a region/zone "container" cell or an "action" cell to a region/zone "container" cell, or expand a region/zone "container" cell (hereinafter, for the description of FIG. 11, simply the "add/expand" request), in accordance with one embodiment. As illustrated, for the embodiment, the implementor first determines if the requested addition or expansion fits in the current available space of the host region/zone "container" cell, block 1102. The required space to accommodate the requested addition/expansion may e.g. be determined from the attribute values of the "new" or expanded region/zone "container" cell. If the requested addition or expansion fits in the current available space of the host region "container" cell, the requested addition or expansion is performed accordingly, block 1104. However, if the requested addition or expansion does not fit in the current available space of the host region/zone "container" cell, the implementor successively undertakes one or more space creation actions, until either sufficient amount of available space has been created or until all possible space creation actions have been exhausted, blocks 1102-1108. As soon as sufficient available space has been created, operation continues at block 1104 as earlier described. However, if all possible space creation actions have been exhausted and the amount of space required to accommodate the requested addition or expansion remains insufficient, the implementor successively undertakes one or more space requirement reduction actions, until either the required space has been reduced below the amount of available space or until all possible space reduction actions have been exhausted, blocks 1110-1112. Similarly, as soon as the required space to satisfy the addition or expansion request is reduced below the available space, operation continues at block 1104 as earlier described. If likewise, all possible required space reduction actions are exhausted, and the amount of space required to accommodate the add/expand request remains above the available space, an "error", such as "unable to add/expand", is returned in response to the request. In one embodiment, available space creation actions include shifting existing region/zone "container" cells within the host region/zone "container" cell the add/expand request is to be performed, and reducing the existing region/zone "container" cells if necessary. In one embodiment, shifting of existing region/zone "container" cells includes shifting the existing regions/zone "container" cells to a predetermined corner of the host region/zone "container" cell, e.g. the lower left corner, the upper left corner, the upper right corner or the lower right corner. In one embodiment, shifting of existing region/zone "container" cell to a corner is performed by aligning the region/zone "container" cells along one or the other boundary forming the corner. In another embodiment, shifting of existing region/zone "container" cells to a corner is performed by alternating in aligning the regions/zone "container" cells along the boundaries forming the corner. In one embodiment, reducing the existing region/zone "container" cells is performed in an incremental manner. In another embodiment, reducing the existing region/zone "container" cells is performed in accordance with the relative priorities of the existing region/zone "container" cells. In one embodiment, reduction is performed in an incremental manner as well as in view of the relative priorities of the existing region/zone "container" cells. In one embodiment, the lowest priority region/zone "container" cell is first successively reduced to its kernel before the next higher priority region/zone "container" cell is successively reduced towards its kernel. In another embodiment, the reduction is successively performed in a round robin manner. In yet another embodiment, reduction of existing region or zone "container" cells further includes reducing one or more of the existing region/zone "container" cells to their icon "action" cell representations. Again, in one embodiment, the reduction to iconic representation is performed in view of the relative priorities of the existing region/zone "container" cells. In one embodiment, reduction of required space action includes successively reducing the size of the region/zone "container" cell to be added, or to be expanded to. Still referring to FIG. 11, back at block 1104, upon performing the requested addition/expansion, the implementor determines if any post addition/expansion operations need to be performed. If so, the post addition/expansion operations are performed, block 1118. If not, the process terminates. Post addition/expansion operations may be required, as existing region/zone "container" cells may have been shifted to one corner of the host region/zone "container" cell or reduced, even to their kernel, in the course of accommodating the addition/expansion request. Accordingly, for the embodiment, upon accommodating the addition/expansion, attempts are made to at least partially restore the shifted and/or reduced region/zone "container" cells back to the pre-request state. Similarly, the post addition/expansion operations may include successively expanding reduced existing region/zone "container" cells, which may also be performed in view of the relative priorities, re-shifting shifted region/zone "container" cells (e.g. out from the coalesce corner) to achieve a more balance alignment of the nested region/zone "container" cells within the host region "container" cell. "Balance" may be measured e.g. by the average space gap between the boundaries of the various region/zone "container" cells. FIG. 13 illustrates an exemplary addition of a new region/zone "container" cell into a region "container" cell having two existing region/zone "container" cells, in accordance with the above described process. As illustrated, the two existing region/zone "container" cells are first shifted to the lower left corner, with the two existing region/zone "container" cells aligned along the left boundary forming the lower left corner (illustrations A & B). Since there isn't enough available space to add the requested new region/zone "container" cell, the two existing region/zone "container" cells are successively reduced, eventually to their kernels, first the lower priority region/zone "container" cell, then the higher priority region/zone "container" cell (illustrations C-D). The new region/zone "container" cell is then added to the newly created space in the opposite upper right corner (Illustration E). Further, the reduced region/zone "container" cells are shifted back out from the lower right corner and aligned in the bottom portion of the host region/zone "container" cell (illustration F & G). FIG. 14 illustrates another exemplary addition of a new region/zone "container" cell into a region/zone "container" cell having three existing region/zone "container" cells, in accordance with the above described process. Except in this illustration, the existing region/zone "container" cells are first shifted to the upper left corner, and then shifted out along the top portion of the host region/zone "container" cell instead. Further, the new region/zone "container" cell is reduced to reduce its space requirement before it is added to the host region/zone "container" cell. Removal/Contraction of a Region/Zone "Container" Cell FIG. 12 illustrates the operational flow of the relevant aspects of an implementor, e.g. an application, a cell-cell manager or a window manager, for responding to a request to remove a region/zone "container" cell from a region "container" cell, or an "action" cell from a region/zone "container" cell (hereinafter, for the description of FIG. 12, simply the "remove/contract" request), in accordance with one embodiment. As illustrated, for the embodiment, the implementor removes or contracts the region/zone "container" cell, or the "action" cell as requested, block 1202. Thereafter, the implementor determines if the there are iconized region/zone "container" cells of the host region/zone "container" cell that can be restored into the newly increased available space of the host region/zone "container" cell, block 1204. If so, the implementor restores one or more of the eligible iconized region/zone "container" cells, subject to the available space, block 1206. In one embodiment, the restoration is performed in accordance with the relative priorities of the iconized region/zone "container" cells. Upon exhausting the possibility of restoring iconized region/zone "container" cells (either because there are none left or there isn't enough space), the implementor determines if there are any reduced region/zone "container" cells that can be grown towards their maximum sizes, block 1208. If so, the implementor successively grows one or more of the reduced region/zone "container" cells, subject to the available space, block 1210. In one embodiment, the successive growth is also performed in accordance with the relative priorities of the reduced region/zone "container" cells. Next, similar to the process of adding or expanding a region/zone "container" cell, upon restoring or growing the iconized or reduced region/zone "container" cells, the implementor determines if any post restoration or growth actions need to be performed, block 1212. If so, the implementor performs the post restoration or growth actions, such as shifting and aligning to "re-balance" the region/zone "container" cells of the host region/zone "container" cell, block 1214. As before, "balance" may be measured e.g. by the average space gap between the boundaries of the various region/zone "container" cells Alternate Embodiment—Extended Boundary Method FIG. 15 illustrates the operational flow of the relevant aspects of an implementor, e.g. an application, a cell manager or a window manager for responding to a request to expand a region "container" cell (hereinafter, for the description of FIG. 15, simply the "add/expand" request), in accordance with another embodiment. In this embodiment, for efficiency of operation, region "container" cells are nested within a host region "container" cell in a contiguous manner, i.e. without available space gap between their boundaries. As illustrated, in response to a request to grow a region "container" cell by an amount, the implementor first generates extended boundaries for the growth region "container" cell (see FIG. 16), block 1502. Next, the implementor determines growth impact for up to n levels removed in all directions, using the extended boundaries. For example, for the exemplary growth request illustrated in FIG. 16, growth impact of the center region "container" cell may be determined using its extended boundaries, based on their intersections with other boundaries. The impacts on region "container" cells up to 2 degrees removed from the center region "container" cell may be summarized as follows:
Thereafter, for the embodiment, the implementor iteratively expands the region "container" cell in the various directions, adjusting the impacted region "container" cell to accommodate the growth, block 1506. The process continues until the desired amount of growth is achieved. If the desired growth is not achievable, for the embodiment, an "error", such as "growth unachievable", is returned, block 1508. Implementor As alluded to earlier, the present invention may be practiced e.g. by endowing an application itself, a cell manager or a window manager with the teachings of the present invention. In the latter cases, a cell/window manager implementor may be effectuated in at least two manners, FIG. 17a and FIG. 17b. In the embodiment of FIG. 17a, cell manager 1704 is equipped with teachings of the present invention interfaces and interacts with applications 1702 using its services, and display device driver 1706 as in the prior art. Accordingly, under this embodiment, typically, the universal region "container" cell 202 is the entire display space of a display device. In the alternate embodiment of FIG. 17b, the cell manager implementor operates as an "auxiliary" cell manager 1703 to a conventional window manager 1704. Applications 1702 may interact with conventional window manager 1704 directly or indirectly through auxiliary cell manager 1703 (equipped with the teachings of the present invention). Accordingly, universal region "container" cell 202 may be a window of a conventional window approach, except within that window, the EUI is implemented and practiced as earlier described, in accordance with the present invention. In yet other alternate embodiments, auxiliary cell manager 1703 may be integrally incorporated as part of window manager 1704. Example Computer System FIG. 18 illustrates an exemplary computer system or device suitable for practicing the present invention, in accordance with one embodiment. As shown, computer system/device 1800 (hereinafter simply "device") includes one or more processors 1802 and system memory 1804. Additionally, device 1800 includes mass storage devices 1806 (such as diskette, hard drive, CDROM and so forth), input/output devices 1808 (such as keyboard, cursor control and so forth) and communication interfaces 1810 (such as network interface cards, modems and so forth). The elements are coupled to each other via system bus 1812, which represents one or more buses. In the case of multiple buses, they are bridged by one or more bus bridges (not shown). Each of these elements performs its conventional functions known in the art. In particular, system memory 1804 and mass storage 1806 are employed to store a working copy and a permanent copy of the programming instructions implementing the implementor of the present invention, e.g. an application, a cell manager or a window manager. The permanent copy of the programming instructions may be loaded into mass storage 1806 in the factory, or in the field, through a distribution medium (not shown) or through communication interface 1810 (from a distribution server (not shown)). The constitution of these elements 1802-1812 are known, and accordingly will not be further described. Example Network Environment FIG. 19 shows an exemplary network environment suitable for practicing the present invention, in accordance with one embodiment. In this embodiment, contents are presented for user of client device 1902 to enjoy, employing the hierarchical cell based EUI 102 of the present invention. In one embodiment, display device 1904a on which EUI 102 is rendered, is an integral of client device 1902. In another embodiment, display device 1904b on which EUI 102 is rendered, is an separate and distinct "peripheral" of client device 1902. In various embodiments, the implementor of the present invention, e.g. an application, a cell manager or a window manager, may be executing on client device 1902 itself. In other embodiments, the implementor may be executing on server 1906 instead. Examples of the former case may be a personal computer, an enhanced integrated television set, and a set-top box. Examples of the latter case may be a content streaming server or a cable programming broadcasting device. Client device 1902 and server 1906 are coupled to each other via one or more private and/or public networks, including e.g. the Internet, employing Digital Subscriber Lines (DSL) (or other variants xDSL), Cable Network, Integrated Digital Service Network (ISDN), Asynchronous Transfer Mode (ATM), Frame Relay, or other high performance communication links/connections of like kind. Communications between client device 1902 and server 1906 may be accomplished via any one of a number of communication protocols known in the art, including but are not limited to the TCP/IP protocol. Examples of content may include one or more of the following content or program types
Conclusion & Epilog Thus, a novel EUI method and apparatus has been described. While the present invention has been described with the foregoing embodiments, the present invention is not so limited. The present invention may be practiced with modifications and extensions to the earlier described embodiments. The full scope of the present invention is defined by the claims to follow.
|
Same subclass Same class Consider this |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
