The system and method of the present invention relate generally to the field of creating and displaying classes of graphical display objects.
The increased use of computer software has led to the creation of graphical display objects that allow users to customize the look of a running software module. For example, the RealNetworks® RealJukebox® program allows the user to customize the look of the RealJukebox® program through the use of Skins.
Users create their own graphical display objects by defining objects, such as buttons, graphics, and menus, that will appear in the graphical display. These definitions may include, for example, the location of the object, the color of the object, the size of the object, and the corresponding graphics file.
One common problem with conventional approaches is that the creation of the graphical display objects is a very time consuming task as the user has to define each element that will appear in the graphical display object.
Additionally, the definition of the graphical display object may be quite lengthy. Thus, if a user wants to use multiple graphical display objects, the user must store the multiple definitions which require a large amount of storage space.
In general, the present invention relates to creating and displaying classes of graphical display objects.
One aspect of the present invention relates to a method for creating a graphical display object for an executable application wherein the graphical display object is based in part on at least one of a plurality of default display objects. The method comprises receiving a definition data structure for an object wherein the definition data structure includes a plurality of display item data about a plurality of corresponding display objects; processing the definition data structure to extract information relating to the plurality of display item data; determining from the extracted information which of the plurality of display objects are default display objects; building default display objects based at least upon default item data wherein the default item data is stored in a plurality of default definition data structures; determining from the extracted information which of the plurality of display objects are custom display objects; building custom display objects based at least upon a portion of the plurality of corresponding display item data; and building a graphical display object based at least upon the default display objects and the custom display objects.
Another aspect of the present invention relates to a method of defining a class of graphical display objects. The method comprises receiving a default definition data structure wherein the default definition data structure includes information about a default graphical display object; receiving a first class member definition data structure related to a first graphical display object wherein the first class member definition data structure includes information about the differences between the default graphical display object and the first graphical display object; and receiving a second class member definition data structure related to a second graphical display object wherein the second class member definition data structure includes information about the differences between the default graphical display object and the second graphical display object.
Another aspect of the present invention relates to a method for defining a plurality of related display configurations for a computer program which is capable of reading display configurations from a file, wherein the plurality of related display configurations define which graphical elements will appear in the display configuration, where the graphical elements should appear within the display, and functional information for the graphical elements. The method comprises receiving a selection of a group of related display configurations; determining which elements are common to more than one of the display configurations selected; and preparing a display configuration family definition wherein the display configuration family definition includes default values for common elements and configuration specific values.
Another aspect of the present invention relates to a method of defining a class of graphical display objects. The method comprises means for receiving a default definition data structure wherein the default definition data structure includes information about a default graphical display object; means for receiving a first class member definition data structure related to a first graphical display object wherein the first class member definition data structure includes information about the differences between the default graphical display object and the first graphical display object; and means for receiving a second class member definition data structure related to a second graphical display object wherein the second class member definition data structure includes information about the differences between the default graphical display object and the second graphical display object.
Another aspect of the present invention relates to a system for creating a class of graphical display objects. The system comprises a default class definition module configured to receive a default class definition of a graphical display object; a class member module configured to receive a first class member definition of a first graphical display object related to the default class definition; and the class member module further configured to receive a second class member definition of a second graphical display object related to the default class definition and different from the first class member definition.
Another aspect of the present invention relates to a system for building a graphical display object. The system comprises a class definition module configured to receive a default class definition and first class member definition; a definition extraction module configured to extract information relating to a graphical display object from the first class member definition and to extract information relating to the graphical display object from the default class definition; and a graphical object builder module configured to build the graphical display object based at least upon the extracted information from the first class member definition and the extracted information from the default class definition wherein the extracted information from the first class member definition overrides at least a portion of the extracted information from the default class definition.
Another aspect of the present invention relates to a graphical display object system for building graphical display objects. The graphical display object system comprises means for receiving class definitions including a default class definition and first class member definition; means for extracting information relating to a graphical display object from the first class member definition and the default class definition; and means for building a graphical display object based at least upon extracted information from the first class member definition and the default class definition wherein the extracted information from the first class member definition overrides at least a portion of the extracted information from the default class definition.
For purposes of summarizing the invention, certain aspects, advantages, and novel features of the invention are described herein. It is to be understood that not necessarily all such advantages may be achieved in accordance with any particular embodiment of the invention. Thus, for example, those skilled in the art will recognize that the invention may be embodied or carried out in a manner that achieves one advantage or group of advantages as taught herein without necessarily achieving other advantages as may be taught or suggested herein.
a illustrates an example graphical display object of the RealJukebox® program.
b illustrates an additional example graphical display object of the RealJukebox® program.
c illustrates an additional example graphical display object of the RealJukebox® program.
A system and method which represent one embodiment and example application of the invention will now be described with reference to the drawings. Variations to the system and method which represent other embodiments will also be described. In one disclosed embodiment, the system and method are used to create and display classes of graphical display objects. It will be recognized that a variety of data structures may be used to store the graphical display object information.
For purposes of illustration, one embodiment will be described in the context of classes of graphical display objects for an audio music playing device. The inventors contemplate that the present invention is not limited by the type of graphical display object or the type of program for which the graphical display objects are created, and that the types of programs may include any program, such as, for example, a telephone program, a video player program, a calculator program, and a game program. The figures and descriptions, however, relate to an embodiment of the invention wherein the graphical display object is a Skin created for the RealJukebox® program. Furthermore, it is recognized that in other embodiments, the system and method for creating and displaying classes of graphical display objects may be implemented as a single module and/or implemented in conjunction with a variety of other modules and the like. Moreover, the specific implementations described herein are set forth in order to illustrate, and not to limit, the invention. The scope of the invention is defined by the claims.
These and other features will now be described with reference to the drawings summarized above. The drawings and the associated descriptions are provided to illustrate embodiments of the invention, and not to limit the scope of the invention. Throughout the drawings, reference numbers may be re-used to indicate correspondence between referenced elements. In addition, the first digit of each reference number indicates the figure in which the element first appears.
In the graphical display object system, a user can create a class of graphical display objects such that the various members of the class may share common features. In addition, the graphical display object system builds the graphical display objects based upon the common class definitions as well as the custom features of the graphical display object.
One benefit of this embodiment is that the user can create a class of graphical display objects by creating a file that includes common or default values. For the individual class members, the user can define the nondefault values without having to include default values assisting the user in avoiding repetitious work. This saves the user time and effort in creating graphical display objects.
Another benefit of this embodiment is that others can create additional members to existing classes of graphical display objects. For example, a user may add an additional member to the class such that the control buttons of the graphical display object are in a different location than the default definition and the control buttons are two sizes larger than the default definition, but yet the other features are based on the default definition. The user may use, one or more default definitions to help build his graphical display object. This benefit saves users time and effort when creating graphical display objects allowing them to build from existing classes of graphical display objects and use the definitions of others.
An additional benefit of this embodiment is that the amount of storage space for storing the graphical display object definitions is reduced. Because the default definitions are stored in a single location and not duplicated for each class member, the storage space required for a class of graphical display objects is less than the storage space required for a set of independent graphical display objects.
a, 1b, and 1c illustrate three graphical display objects known as Skins for the RealJukebox® program. The graphical display objects vary slightly from each other in that the graphical display object in
The graphical display object definitions in
In
As used herein, the word module, whether in upper or lower case letters, refers to logic embodied in hardware or firmware, or to a collection of software instructions, advantageously having entry and exit points, written in a programming language, such as, for example, C++. A software module may be compiled and linked into an executable program, or installed in a dynamic link library, or may be written in an interpretive language such as BASIC. It will be appreciated that software modules may be callable from other modules or from themselves, and/or may be invoked in response to detected events or interrupts. Software instructions may be embedded in firmware, such as an EPROM. It will be further appreciated that hardware modules may be comprised of connected logic units, such as gates and flip-flops, and/or may be comprised of programmable units, such as programmable gate arrays or processors. The modules described herein are preferably implemented as software modules, but may be represented in hardware or firmware.
In one embodiment, the graphical display object system 400 is implemented on a user computer (not shown). The user computer is a device which allows a user to access the graphical display objects. While the term user computer is used, it is recognized that in other embodiments, the graphical display object system 400 may be implemented on other systems such as, for example, a portable computing device, a portable audio player, a portable video player, a server, a computer workstation, a local area network of individual computers, an interactive television, an interactive kiosk, a personal digital assistant, an interactive wireless communications device, a handheld computer, a telephone, a router, a satellite, a smart card, an embedded computing device, or the like.
In one embodiment, the user computer is a conventional, general purpose computer using one or more microprocessors, such as, for example, a Pentium processor, a Pentium II processor, a Pentium Pro processor, an xx86 processor, an 8051 processor, a MIPS processor, a Power PC processor, or an Alpha processor. In one embodiment, the user computer runs an appropriate operating system, such as, for example, Microsoft® Windows® 3.X, Microsoft® Windows 98, Microsoft® Windows® NT, Microsoft® Windows® CE, Palm Pilot OS, Apple® MacOS®, Disk Operating System (DOS), UNIX, Linux®, or IBM® OS/2® operating systems.
In one embodiment, the graphical display object system 400 includes and/or communicates with a program module (not shown). For example, the graphical display object system 400 may communicate with an audio player, a video player, and a calculator such that a user may use a graphical display object of the graphical display object system 400 to access the program module.
A. Graphical Display Object Module
In one embodiment, the graphical display object system 400 includes a graphical display object module 410. As indicated above, the graphical display object module 410 communicates with the graphical user interface 420 and a graphical display object database 430.
The graphical display object module 410 works with the graphical user interface 420 to allow the user to create graphical display objects and to present graphical display objects to the user.
In one embodiment, the graphical display object module 410 includes a create graphical display object class process 412 and a build display process 414.
1. Create Graphical Display Object Class Process
The create graphical display object class process 412 is used to create a class of graphical display objects including a set of default or common class values as well as class members that may include custom and/or nondefault values.
One embodiment of a create graphical display object class process (“create class process”) 412 is shown in
It is recognized that the create class process 412 may be implemented in a different manner. For example, in one embodiment, the user may create a set of graphical display objects and the graphical display object system 400 may automatically generate the class definition as well as the class member definitions by determining which elements are common to graphical display objects and which elements are not common to the graphical display objects. In another embodiment, the create class process 412 may allow the user to create a class member based on more than one default class definition, using, for example, multiple levels of default classes (e.g., parent, grandparent, etc.).
In one embodiment, the default definition and the definitions for each class member are stored in a single file while it is recognized that they may be stored in a set of files and/or other data structures. It is also recognized that in one embodiment additional information may also be stored in the graphical display object database 430, such as, for example, graphics files used in the graphical display object, non-class based graphical display object definitions, compression algorithms, and program modules.
2. Build Display Process
The build display process 414 is used to build a graphical display object that is a member of a graphical display object class.
One embodiment of a build display process 414 is shown in
It is recognized that the build display process 414 may be implemented in a different manner. For example, the graphical display object definition may be retrieved before or with the class default definition or the default graphical display object could be built first and then overridden with the graphical display object's values.
The graphical display object module 410 may include other processes (not shown) such as, for example, a process for compiling a graphical display object class definitions, and/or a process for revising a graphical display object class.
B. Graphical User Interface
In one embodiment, the graphical display object system 400 includes a graphical user interface 420 (“GUI”). The GUI 420 in
The GUI 420 may be implemented as a module that uses text, graphics, audio, video, and other media to present data and to allow interaction with the graphical display objects. The GUI 420 may be implemented as a combination of an all points addressable display such as a cathode-ray tube (CRT), a liquid crystal display (LCD), a plasma display, or other types and/or combinations of displays; input devices such as, for example, a mouse, a trackball, a touch screen, a pen, a keyboard, and/or a voice recognition module; and software with the appropriate interfaces which allow a user to access data through the use of stylized screen elements such as, for example, menus, windows, dialog boxes, toolbars, and/or controls (e.g., radio buttons, check boxes, sliding scales, etc.).
C. Graphical Display Object Database
In one embodiment, the graphical display object database 430 stores information about the classes of graphical display objects. This information may include the members of a class, the default definitions for a class, as well as definitions of class members. For example, the graphical display object database 430 may include information about the SampleSkin class as illustrated in
The graphical display object database 430 may work with other databases (not shown) for performing various tasks. For example, the graphical display object database 430 may communicate with a graphics database, a program module database, a metadata database, and a metadata organization database.
In connection with the graphical display object database 430, in one embodiment, there may be several processes (not shown) such as ID generators, number generators, statistics generators, session generators, and temporary storage units that work with the graphical display object database 430.
In one embodiment, the graphical display object database 430 is implemented using a flat file structure. It is recognized, however, that the graphical display object database 430 may be implemented using other types of databases such as, for example, a relational database, an entity-relationship database, an object-oriented database, and/or a record-based database.
Moreover, while the graphical display object database 430 depicted in
While certain embodiments of the invention have been described, these embodiments have been presented by way of example only, and are not intended to limit the scope of the present invention. Accordingly, the breadth and scope of the present invention should be defined in accordance with the following claims and their equivalents.
Number | Name | Date | Kind |
---|---|---|---|
5588108 | Kumar et al. | Dec 1996 | A |
5603034 | Swanson | Feb 1997 | A |
5613124 | Atkinson et al. | Mar 1997 | A |
5781193 | Alimpich et al. | Jul 1998 | A |
5887193 | Takahashi et al. | Mar 1999 | A |
5977967 | Berner et al. | Nov 1999 | A |
5978811 | Smiley | Nov 1999 | A |
6005561 | Hawkins et al. | Dec 1999 | A |
6097384 | Alecci et al. | Aug 2000 | A |
6346953 | Erlikh et al. | Feb 2002 | B1 |
6538673 | Maslow | Mar 2003 | B1 |
6542166 | Washington et al. | Apr 2003 | B1 |
6628301 | Acton et al. | Sep 2003 | B1 |