throbber
United States Patent
`Beer
`
`119
`
`{11} Patent Number:
`
`[45] Date of Patent:
`
`5,793,368
`Aug. 11, 1998
`
`US005793368A_
`
`[54] METHOD FOR DYNAMICALLY SWITCHING
`BETWEENVISUAL STYLES
`
`[57]
`
`ABSTRACT
`
`[75]
`
`Inventor:
`
`John C. Beer. Oceanside. Calif.
`
`[73] Assignee: TriTeal Corporation, Carlsbad, Calif.
`
`[21] Appl. No.: 747,792
`
`[22] Filed:
`
`Novy. 14, 1996
`
`Tint, Ce oececccsscseesceccnnsnssesscessesnessenees G06F 3/00
`PSDP
`[52] U.S. Ch 345/334; 345/335; 345/343
`
`[58] Field of Searchy o.ccscccssccssssssssssasessees 345/326-358.
`345/977; 704/8; 395/200.3-200.83. 680,
`682. 685
`
`[56]
`
`References Cited
`
`U.S. PATENT DOCUMENTS
`
`.....ccesssessccssessssseavere 345/333
`7/1994 Fults et al.
`5,327,529
`5/1995 Malcolm ........escesssenseeeneees 345/333 X
`5,416,903
`3/1996 Silver et al.
`.......ssccessecenseee 345/333 X
`5,499,335
`4/1996 Leong et al.
`.....scssscesesessesseee 345/333
`5,513,342
`1/1997 Stucka et al.
`......cccecereessseeeseee 345/340
`5,596,702
`2/1997 Swanson etal.
`wore 345/333
`5,600,778
`9/1997 Brown et al.
`.....sscsessecesseresers 345/335
`5,673,403
`5,696,914 12/1997 Nahabooet al... ssn 345/333
`
`
`
`
`A method and system for allowing a userto retrieve a user
`interface and a visual style from a local or remote storage
`unit, rapidly display the visual stylized user interface, and
`dynamically switch between visual styles. without compris-
`ing security over a network system. Once displayed, the user
`can customize or configure the visual style of the user
`interface. The invention includes a programmable graphics
`user interface (PGUI). The PGUT is initialized to a default
`visual style or to a user’s preferred style when the user logs
`onto a network system. In the preferred embodiment, after
`proper login, a user interface, stored on a server as a
`description in a text-based User Interface Language (UIL).
`is transferred to user’s client system. The PGUI parses the
`UIL description and creates the user interface controls
`defined in the description. The PGUI then uses the currently
`selected visual style to display the user interface, and then
`reads any content (e.g.. text. images, or other content) for the
`interface. The PGUI displays the content within the user
`interface, such as in a scrollable area or any other area
`described by the UIL. Once the user interface is displayed.
`the user can change the user interface. save the user
`interface, change the contents, save the contents. or switch
`visual styles. Compound or complex user interfaces can be
`easily created by combining simple user interface compo-
`nents.
`
`Primary Examiner—John E. Breene
`Attorney, Agent, or Firm—Fish & Richardson P.C.
`
`12 Claims, 3 Drawing Sheets
`
`SAMSUNG 1007
`
`
`
`ChangeStyle
`
`Styles
`© Windows95
`
` 1
`
`20
`
`21
`
`IPR2024-00145
`Apple EX1007 Page 1
`
`

`

`U.S. Patent
`
`Aug. 11, 1998
`
`Sheet 1 of 3
`
`5,793,368
`
`Jas-)|| SeZIG
`waoils|pPfNG
`/hd$$...}-Db
`
`
`
`(UO}}e}UaSalq)BJAJSSOepa}U]JOSH
`
`
`
`SIENSIAOGSMOPUIAAESN
`
`G6SMOPUI\\
`
`
`
`sjensiA4QDasn
`
`|ainbi4
`
`sHOW
`
`doiq-u-6beig
`
`sabew]
`
`}xOL
`
`7 (
`
`
`
`
`
`jUa}Uu0D)Byegqsoepalu
`
`IPR2024-00145
`Apple EX1007 Page 2
`
`

`

`U.S. Patent
`
`Aug. 11, 1998
`
`Sheet 2 of 3
`
`5,793,368
`
`\.Vv
`
`
`
`
`
`Zainbil4
`
`sjensiA3QDesn
`
`G6SMOPUIAA
`
`SOW
`
`dojq-u-Beigq
`
`sebew|
`
`xo]
`
`
`PmESS
`
`
`
`(uoje}Uasald)ajAjgsoepayy]Jase)
`
`
`
`(juajuoD)eVeqsoepajulJesp
`
`IPR2024-00145
`Apple EX1007 Page 3
`
`

`

`U.S. Patent
`
`Aug.11, 1998
`
`Sheet 3 of 3
`
`5,793,368
`
`
`
`Change Style
`Styles
`© Windows95
`
`
`
` 20
`
`21
`
`Figure 3
`
`
`
`
`
`
`
`Change Style
`Styles
`© Windows95
`
`
`
`Figure 4
`
`IPR2024-00145
`Apple EX1007 Page 4
`
`

`

`5,793,368
`
`1
`METHOD FOR DYNAMICALLY SWITCHING
`BETWEEN VISUAL STYLES
`
`This invention is related to the inventions entitled “Sys-
`tem and Method for Distributing Objects and User
`Interfaces”, and “URL Login”. U.S. patent application Ser.
`No. 08/748.664.filed on the same date as the presentpatent
`invention.
`
`BACKGROUND OF THE INVENTION
`
`1. Field of the Invention
`This invention relates to computer graphical user
`interfaces, and moreparticularly to a graphical user interface
`having dynamically switchable, user-definable visual styles.
`2. Description of Related Art
`Present computer systems, such as personal computers
`and workstations. generally have a graphical user interface
`(GUD. A GUI allows a user to interact with a computer
`system by using an input device (e.g.. a pointing device such
`as a mouse or touchpad, a keyboard. or voice control) and
`icon or graphics-based commands and controls. Presently,
`different brands of computer systems often use different
`GUIs. For example, the Windows95 system from Microsoft
`Corporation differs in “look and feel” from the Macintosh
`System 7 operating system from Apple Corporation, both of
`which differ from the Motif GUI often used on UNIX
`systems. Further. applications that are nominally the same
`may differ in appearance and interaction depending on
`platform. Thus, a word processing application on one type of
`GUl-based system generally looks different from, and
`requires different user interaction than,
`the same word
`processor application designed for a different GUI-based
`system. For example, Microsoft Word has a different user
`interface on the Macintosh System 7 operating system than
`it does under the Windows95 operating system. Such dif-
`ferences present a problem for employers who may have
`widely disparate types of computer systems. due to the cost
`of training employees on how to use different user inter-
`faces.
`Another problem with current computer systems occurs
`with networked computer systems. Such systems generally
`have centrally maintained applications stored on a server
`computer that are accessed by multiple client computers by
`meansof a networkedfile system. This type of configuration
`requires that an entire application be transferred from the
`server over the network to a client in order for the user to
`interact with the application. Today’s applications are typi-
`cally 1-2 megabytes in size. and can be significantly larger.
`Loading such large applications on a server and providing
`access to multiple users decreases the overall performance
`of a network. For example, the start-up time alone for such
`applications can take 60 seconds or more. resulting in a
`decrease of overall productivity of employees.
`Loading applications from servers also presents a security
`problem. The machine code of an application can bealtered
`in transit or on a server's local storage unit, which could lead
`to corruption or deletion of a company’s sensitive or vital
`data upon execution of that code.
`The design of applications themselves pose some prob-
`lems for users. A user typically buys an application because
`it provides some kind of functionality that enables the user
`to perform a particular task. One of the problems that arises
`when acquiring prepackaged. or “shrink wrapped”, applica-
`tions is that such applications often provide some of the
`functionality a user needs but not all of it, or provide more
`functionality than a user needs, thereby increasing the dif-
`
`2
`ficulty of learning applications. Another problem of such
`applications is that a user generally cannot modify the user
`interface to make the applications easier to use.
`Nosolution is known to exist to simultaneously deal with
`all the problems discussed above. Accordingly. there is a
`need for a method and system to overcome these problems.
`The present invention provides such a method and system.
`SUMMARYOF THE INVENTION
`The invention comprises a method and system for allow-
`ing a userto retrieve a user interface and a visual style from
`a local or remote storage unit, rapidly display the visual
`stylized user interface, and dynamically switch between
`visual styles. without comprising security over a network
`system. Oncedisplayed. the user can customize or configure
`the visual style of the user interface.
`The invention includes a programmable graphics user
`interface (PGUI) that provides visual
`information about
`resources and objects throughout a network and on user
`systems. Objects are presented as icons which a user can
`manipulate by means of an input device. such as a pointing
`device, keyboard, touch screen, etc. An object can be opened
`by selecting the object with an input device (for example, by
`moving a display cursor over the object icon and double-
`clicking a mouse button), thereby invoking an associated
`application for viewing and/or manipulating the object.
`The PGUI is initialized to a default visual style or to a
`user’s preferred style when the user logs onto a network
`system. In the preferred embodiment, after proper login. a
`user interface, stored on a server as a description in a
`text-based User Interface Language (UIL),is transferred to
`user’s client system. The PGUI parses the UIL description
`andcreates the user interface controls defined in the descrip-
`tion. The PGUI then uses the currently selected visual style
`to display the user interface, and then reads any content(e.g..
`text, images, or other content) for the interface. The PGUI
`displays the content within the user interface, such as in a
`scrollable area or any other area described by the UIL. Once
`the user interface is displayed. the user can change the user
`interface, save the user interface, change the contents, save
`the contents, or switch visual styles. Compound or complex
`user interfaces can be easily created by combining simple
`user interface components.
`The invention provides a method to present a user inter-
`face with multiple selectable visual styles, and defined in a
`simple markup-text form that can be quickly retrieved from
`a server to define a user interface on a client. The invention
`also reduces security risks inherent when loading applica-
`tions from servers by avoiding use of machine code in
`defining a user interface, The invention further provides a
`method to separate the functionality of user interface con-
`trols from the display of the user interface controls, and a
`method to separate the functionality of an application from
`the display of the user interface. The invention provides a
`simple method for adding new functionality and new con-
`trols to a user interface. Finally, the invention provides a
`method for using a plurality of UIL’s with the capability of
`specifying each UIL in a user’s native natural language.
`The details of the preferred embodiment of the present
`invention are set forth in the accompanying drawings and
`the description below. Once the details of the invention are
`known, numerous additional innovations and changes will
`become obvious to one skilled in the art.
`
`10
`
`15
`
`20
`
`25
`
`30
`
`35
`
`45
`
`50
`
`55
`
`65
`
`BRIEF DESCRIPTION OF THE DRAWINGS
`FIG. 1 is a screen shot showing an exemplary represen-
`tation of a word processor having a Windows95 visual style
`created using the invention.
`5
`
`IPR2024-00145
`Apple EX1007 Page 5
`
`

`

`5,793,368
`
`3
`FIG. 2 is a screen shot showing an exemplary represen-
`tation of the word processor of FIG. 1. but having a Motif
`visual style created using the invention.
`FIG. 3 is a screen shot showing details of a Windows95
`visual style for a radiobutton widget.
`FIG. 4 is a screen shot showing details of a Motif visual
`style for a radiobutton widget.
`Like reference numbers and designations in the various
`drawings indicate like elements.
`DETAILED DESCRIPTION OF THE
`INVENTION
`
`Throughout this description. the preferred embodiment
`and examples shown should be considered as exemplars,
`rather than as limitations on the present invention.
`Overview
`The preferred embodimentof the invention is targeted for
`use on a system comprising, for example, a processor, a
`display device, at least one input devices such as a pointing
`device or keyboard, and other input and output devices
`connected together via a network to other systems, personal
`computers, workstations, servers, printers, and other com-
`puting and peripheral equipment. Use of the invention
`allows a user to select from a variety of different visual
`styles for a user interface. For example, a user could
`configure a word processing application to appear like either
`of the examples in FIG. 1 or FIG. 2. regardless of the actual
`underlying operating system. Thus, a user can have a Win-
`dows95 style for applications running under the UNIX
`operating system, or a Motif style for applications running
`under the Macintosh System 7 operating system. Further, the
`user can add to or change the functionality of an application
`by defining additional controls for an application.
`The preferred embodiment of the invention includes an
`icon server, an image cache, a UIL server, a UIL user
`interface description, a UIL parser, user interface controls or
`“widgets”, widget geometry manager objects, an event
`object, event handlers, a Widget Registry, an Event Handler
`Registry, an Event Name Registry, a visual style object. and
`a user interface within which a user can switch visual styles.
`The UIL provides the syntax and grammar rules for
`describing a user interface. The UIL user interface descrip-
`tion is preferably a text file. in a format similar to various
`text-markup languages, such as HTML (Hyper Text Markup
`Language). Since the UIL userinterface description is a text
`file that is parsed during interpretation, corruptionofthefile
`can be readily detected and handled in error routines.
`However, the UIL description may also be compiled to a
`binary format and/or compressed to reduce size.
`In the preferred embodiment,
`the PGUI resident in a
`user’s computer system initially loads a UIL user interface
`description from a UIL server via a protocol such as the NFS
`protocol, the World Wide Web (WWW) HTTP protocol, or
`other network protocols. Alternatively, the UIL user inter-
`face description can be loaded from a local storage unit. The
`UIL user interface description describes the controls or
`widgets that comprise the user interface. In the preferred
`embodiment, the UIL user interface description allows a
`user to set widget attributes. Examples of such attributes
`include: name,icon, width, height. uil_ID. parentID, layout
`manager, widget EventHandler, and other attributes. The
`PGUI allowsthe user to add or delete widgets via dragging
`and dropping the widgets with a pointing device,
`thus
`changing the description of the user interface. Once
`changed, the PGUI can save a copy of the description on a
`UIL server, a local storage unit, or other storage means, for
`later retrieval.
`
`10
`
`15
`
`20
`
`25
`
`30
`
`35
`
`45
`
`30
`
`35
`
`65
`
`User Interface
`
`4
`
`A user interface comprises one or more interface widgets.
`FIGS. 1 and 2 show some of the user interface widgets
`currently being used by those skilled in the art of user
`interface design: a window 1, separator 2, toolbar buttons3,
`menu bar 4, radiobutton 5, sliders 6, status bar 7, content
`area 8, dropdown listboxes 9, window control buttons 10,
`window icon 11, and title bar 12. However, conventional
`applications define such an interface as essentially a mono-
`lithic entity. An important aspect of the invention is that it
`defines a user interface in terms of parts. separating widgets.
`widget functionality, and widget attributes so as to permit
`extremely fine control of a user interface in each UIL user
`interface description. Listing 1 below illustrates an example
`UIL user interface description in accordance with the inven-
`tion that describes the user interface illustrated in FIGS. 1
`and 2.
`
`
`
`Lising 1 - textEditor.uil
`
`</widget><widget WindowFrameWidget>
`<attribute width=400>
`<attribute height=300>
`<attribute nilID=“mainWindow">
`<widget>
`<widget TitleBarWidget>
`<attribute uilID=“titleBarPanel”>
`<attribute name=“untitled’’>
`<attribute parentID=“mainWindow">
`<attribute geometryManager=“TitleBarLayout”>
`<attribute icon—“http//www.triteal.com/icons/data.gif’>
`</widget>
`<request>
`<attribute eventID=“LOAD’>
`<attribute eventArg=“menuBar.uil’>
`<attribute parentID=“mainWindow">
`</request>
`<widget SeparatorWidget>
`<attribute shadowWidth=“1">
`<atiribute parentID=“mainWindow">
`</widget>
`<widget ToolbarWidget>
`<attribute geometryManager=“HorizontalLayout">
`<attribute parentID=“mainWindow’>
`<attribute uilID=“toolBar">
`<widget>
`<widget RadioButtonWidger>
`<attribute parentID=“toolBar">
`<attribute isSet=“true”>
`<attribute name=“Auto Save">
`<twidget>
`<widget DropDownListBoxWidget>
`<attribute parentID=“toolBar">
`<attribute label=“Font:">
`<attribute uilID=“font”>
`<attribute value=“Times”>
`</widget>
`<widget DropDownListBoxWidget>
`<attribute parentID=“toolBar’>
`<attribute name=“Size:">
`<attribute uillD=“size”>
`<attribute value=“10pt">
`</widget>
`<widget ToolbarButtonWidget>
`<attribute parentID=“toolBar">
`<attribute icon=“leftjustified.gif’>
`<attribute uselconServer=“true”>
`<Jwidget>
`<widget ToolbarButtonWidget>
`<attribute parentID=“toolBar’>
`<attribute icon=“centered.gif">
`<attribute uselconServer=“true”>
`<widget>
`<widget ToolbarButtonWidget>
`<attribute parentID=“toolBar">
`<attribute icon=“rightjustified.gif’>
`
`6
`
`IPR2024-00145
`Apple EX1007 Page 6
`
`

`

`5.793.368
`
`5
`~continued
`
`Lising 1 - textEditor.uil
`<attribute useIconServer=“true”>
`<widget>
`<widget ToolbarButtonWidget>
`<attribute parent/D=“toolBar”>
`<attribute icon=“fulljustifiedgif’>
`<attribute uselconServer=“true">
`<fwidget>
`<widget ScrollableAreaWidget>
`<attribute parentID=“mainWindow">
`<attribute uilID=“workArea”>
`<twidget>
`<widget StatusBarWidget>
`<attribute name=" ">
`<attribute parentID=“mainWindow">
`</widget>
`<request>
`<attribute parentID—“workArea”>
`<attribute event(ID=“URL__OPEN’>
`<attribute eventArg=“http://www.triteal.com/UlPatentixt’>
`</request>
`
`Not all widgets have ail attributes, but each widget
`succinctly describes the characteristics of each part of the
`user interface for an example text editor application. Thus,
`for example,the first widget, WindowFrameWidget, defines
`a window 1 (see FIG. 1) having an initial width of 400
`screen units and a height of 300 screen units, with a handle
`or uilID of “‘mainWindow”. The SeparatorWidget defines a
`separation bar 2 having a shadow width attribute of “1”, and
`a parentID attribute of “mainWindow”. Thus. the Separa-
`torWidget inherits the attributes of the WindowFrameWid-
`et.
`, As another example,
`there are several
`toolbar button
`widgets 3. one of which has an icon attribute of
`“fulljustified.gif”, which references a graphical image in a
`conventional GIF file format to be shown on the button 3. As
`yet another example, a menu bar user interface 4 is defined
`by reference. using a request function described below.
`The UIL description in Listing 1 defines each part of the
`application interface withoutinitially dictating a visual style.
`Simple changes to the UIL description permit changes to the
`parts of the application interface, by adding, subtracting, or
`changing widgets. Because the parts of an application can be
`defined so succinctly, retrieving a UIL user interface
`description over a network link is rapid—much more so than
`retrieving several megabytes of an application.
`In building a user interface. the PGUI retrieves icons(e.g..
`graphics, pictures, bitmaps, etc.) that represent objects from
`an icon servervia similar network protocols used by the UIL
`server. Alternatively, the icons could also be retrieved from
`a local storage device. The icon server may be the same as
`the UIL server. In the preferred embodiment. the PGUI
`places the retrieved icons in an image cache. The advantage
`of caching icons is that when other widgets reference the
`same icon, the PGUI accessesthe cacheinsteadofretrieving
`the icon from the icon server again. For example, an
`application that shows a directory’s files may use icons to
`represent the files in the directory. Such a directory may
`contain hundredsoffiles. The application mayalso allow the
`user to traverse the directory hierarchy. The act of traversing
`a file system could quickly create thousands of accesses to
`icons in just a few minutes. Retrieving the same icons from
`cache for each needed instance is faster than file system
`retrieval. Thus, an image cache enhancesthe performance of
`the overall PGUL
`As the PGUI is retrieving a user interface description
`from the UIL server, it uses a UIL parser in parallel to create
`each part defined in that description. The UIL userinterface
`
`10
`
`15
`
`20
`
`25
`
`30
`
`35
`
`45
`
`350
`
`55
`
`65
`
`6
`description includes information that allows the PGUI to
`create a “widget registry” based on the uilID attribute. In the
`preferred embodiment, the PGUI uses the parentID attribute
`to create a hierarchy or registry of widgets. where each
`“parent” widget is the widget whose uilID equals the paren-
`uD of a “child” widget. The PGUI mayalso load in other
`UIL files, which allows it to create compound or complex
`user interfaces. For example, the PGUI. in parsing Listing 1.
`retrieves the menu bar user interface 4 described in Listing
`2 below via a request feature of the UIL. A request includes
`the concept of an environment: the environment contains the
`parentID attribute which allows the PGUI to create a correct
`hierarchical relationship. The principle advantage of
`describing userinterfaces with requests allows the sharing of
`common user interface components.
`
`Lising 2 - menuBar.uil
`<widget MenuBarWidget>
`<attribute widgetEventHandler=“PopupMenuHandler”>
`<attribute geometryManager=“HorizontalLayout">
`<attribute uil[D=“menuBar’>
`</widge>
`<widget MenuButtonWidget>
`<attribute parentID="“menuBar’>
`<attribute mnemonic=“F’>
`<attribute PopupMenu=“FileMenu”>
`<attribute widgetventHandler=“PopupMenuHandler”>
`<attribute name=“File”>
`<widget>
`<widget MenuButtonWidget>
`<attribute parentID=“menuBar’>
`<attribute mnemonic=“E”>
`<attribute PopupMenu=“EditMenu”>
`<attribute subMenuld=“BditMenu">
`<attribute name=“Edit”>
`</widget>
`<widget MenuButtonWidger>
`<attribute parentID=“menuBar’>
`<attribute PopupMenu=“HelpMenu”>
`<attribute subMenuld=“HelpMenu”>
`<attribute mnemonic=“H”">
`<attribute name=“Help”>
`
`The widget registry also serves as a widget cache. Thus,
`the PGUI has the same performance benefits when accessing
`widgets as those described above for the image cache.
`Referencing Listing 1 and Listing 2 again.
`the UIL
`geometryManager atiribute provides the widget programmer
`a way to separate geometry management(i.e.. widget posi-
`tioning and sizing) from widget functionality. For example,
`both the MenuBarWidget and the ToolBarWidget controls
`use the HorizontalLayout geometry managerto position and
`size children widgets. Thus, children widgets do not need to
`position or size themselves, but only need to provide button
`widget functionality, such as responding to input events
`from pointing devices, a keyboard, or other input devices.
`Another advantage is that a widget programmer can reuse
`the geometry managerin different widgets or use different
`geometry managers in the same widget.
`Events
`In the preferred embodiment, the invention uses an event
`object to invoke actions, such as loading a UIL user interface
`description file and any other actions knowntothose skilled
`in the art. Event handlers provide the functionality for each
`user interface control. The event handlers respond to events
`input device events (e.g., keyboard input. mouse input.
`touch screen input, etc.), system events, user defined events,
`and other events known to those skilled in the art. In the
`7
`
`IPR2024-00145
`Apple EX1007 Page 7
`
`

`

`5,793,368
`
`7
`preferred embodiment. if an event handler can service or
`handle an event, it returns true, otherwise it returns false and
`the event propagates to the parent widget. An example of a
`radio button event handler is shown below:
`
`
`
`public class RadioButtonEventHandler extends EventHandler
`{
`
`Widget currentRadioButton;
`public boolean handleEvent(Event event, Widget widget)
`
`if (event.id equals EventMOUSE_UP)
`{
`
`Event evt = new Event(Event-CHANGE_STATE);
`currentRadioButton.state = unselected;
`currentRadioButton.postEvent(evt);
`currentRadioButton = widget;
`widget.state = selected,
`widget.postEvent(evt),
`retum true;
`
`return false;
`
`
`
`In this example. the event handler responds to an input
`device event. in particular. a MOUSE_UP event(i.e., detec-
`tion of the release of a mouse button). The event handler
`changesthestate of the current radiobutton and then creates
`a new system event, CHANGE_STATE,and sends the new
`event
`to the current selected radiobutton by calling the
`postEvent function. An event handler can also have state
`information. The current radiobutton selected is the event
`handler’s state. After setting its state, the event handler sets
`the new current radiobutton’s state to selected and then
`sends the CHANGE_STATE event
`to the radiobutton.
`Finally. the event handler returns true. If the event was
`anything other than a MOUSE_UP event, the handler does
`nothing and returns false; the PGUI then propagates the
`event to the parent widget. An advantage of using event
`handlers is that a widget programmer can reuse event
`handlers in different widgets or use different event handlers
`in the same widget.
`The invention provides a method for the user to add
`functionality to the PGUI through the UIL user interface
`description. The user can use the request feature to register
`new events in an event handler registry and the event name
`registry. An example of such use is set forth in Listing 3:
`
`
`Listing 3 - changeStyle.uil
`<request>
`<attribute eventID=“REGISTER_EVENT’>
`<attribute eventName=“SwitchStyle">
`<attribute eventHandler—“SwitchStyleEventHandler’>
`<request>
`<widget WindowFrameWidget>
`<attribute width=220>
`<attribute height=155>
`<attribute widgetEventHandler—“PropertySheetEventHandler”>
`<attribute type=“dialog”>
`<attribute geometryManager=“MainWindowLayout”>
`<attribute uillD=“mainWindow">
`</widget>
`<widget TitleBarWidget>
`<attribute wilID=“titlebarPanel"’>
`<attribute parentID=“mainWindow”">
`<attribute name=“Change Style”>
`</widget>
`<widget PropertyWidget>
`<attribute parentID=“mainWindow”>
`<attribute applyEventID=“SwitchStyle">
`
`8
`-continued
`
`Listing 3 - changeStyle.uil
`
`<attribute uilID=“lookFeelPropertySheet”>
`<Jwidget>
`<widget GroupBoxWidget>
`<attribute name=“Styles”>
`<attribute parentID=“lookFeePropertySheet”>
`<attribute geometryManager=“VerticalLayout’>
`<attribute parentID=“styleRangeGroup”>
`<attribute uillD=“styleRange”’>
`<attribute widgetEventHandler=“RadioButtonEventHandler’>
`</widget>
`<widget RadioButtonWidget>
`<attribute parentID=“styleRange”>
`<attribute isSet=“true”>
`<attribute name=“Windows95”>
`<attribute styleClass=“Win95Style”>
`widget
`<widget RadioButtonWidget>
`<attribute parentID=“styleRange”>
`<attribute name=“Motif’>
`<attribute styleClass=“MotifStyle”>
`<widget>
`<widget ButtonWidget>
`<attribute name=“OK”>
`<attribute parentID=“mainWindow">
`<attribute uilID=“OK”>
`</widget>
`<widget ButtonWidget>
`<attribute name=“Cancel”>
`<attribute eventID=“WINDOW_CLOSE”>
`<attribute parent{D=“mainWindow">
`<attribute uillID=“Cancel”>
`<widget>
`
`In this example. the PGUI responds to the system event
`called REGISTER_EVENT byassigning an eventID to the
`eventNameattribute’s value and storing the ID and event
`name in an event name registry. The PGUI then loads the
`eventhandler attribute’s value and stores the ID and event
`handler in an event handler registry. In this example, the
`PGUI registers the SwitchStyle name in the event name
`registry and the SwitchStyleEventHandler in the event han-
`dler registry. The SwitchStyle event is now available for use.
`The PropertyWidget control’s applyEventID attribute’s
`value makes reference to the SwitchStyle event. When the
`property widget receives an Apply event(i.e., a command to
`apply a style), the property widget can retrieve the Switch-
`Style event ID from the event name registry and then use
`that event ID to retrieve the SwitchStyleEventHandler from
`the event handler registry.
`Visual Styles
`An importantaspect of the invention is that it provides a
`visual style object as a means for switching visual styles for
`the widgets defined in a basic UIL user interface description.
`Suchvisual style objects can be defined in the same UIL user
`interface description file, or be stored in a separate file.
`FIGS. 1 and 2 show in detail two different visual styles.
`Thevisual styles use different colors (shown as shades in
`the figures), border widths, widget spacing. widget widths,
`text alignment, and shadowing or bordering techniques. The
`style objects also draw different widgets differently, such as
`the WindowControlsWidget control 10. Some controls are
`not drawn in various styles. For example, the Title barWid-
`get control 12 depicted in FIG. 2 (the Motif style) lacks a
`WindowCloseButton widget, but the TitlebarWidgetcontrol
`12 depicted in FIG. 1 (the Windows95 style) has one.
`However, regardless of visual style, any displayed widget
`performs the same function.
`The following object definition shows an example visual
`style object in accordance with the present invention:
`8
`
`15
`
`20
`
`25
`
`30
`
`35
`
`45
`
`50
`
`55
`
`65
`
`IPR2024-00145
`Apple EX1007 Page 8
`
`

`

`5,793,368
`
`10
`color, font, alignment, visibility, and other attributes of the
`visual style of widgets. In the preferred embodiment. the
`attribute functions require at least one parameter, a user
`interface indicator, such as MenuBar or ScrollableArea that
`identifies the widget type to the style object. Someattribute
`functions require a second parameter which contains the
`state of the widget, such as selected, visible. active. pressed,
`iconified, and other user interface states. The two following
`visual style object definitions provide examples of how the
`PGUI can display the same user interface in multiple visual
`styles. Hach definition extends the basic definition set forth
`above. Thefirst definition defines a Motif-type visual style,
`while the second definition defines a Windows95-type visual
`style.
`
`
`10
`
`15
`
`
`
`class Style
`{
`
`private static Style currentStyle = null;
`yoid setCurrentStyle(Style style)
`
`currentStyle = style;
`
`tyle getCurrentStyle 0
`
`}S
`
`if (currentStyle = null)
`currentStyle = load(“MotifStyle”);
`tTeturn currentStyle;
`
`}i
`
`nt getAlignment(int ui_type)
`{
`
`return LEFT,
`
`oolean showControl(int ui_type)
`
`Tetum true;
`
`class MotifStyle extends Style
`{
`
`class MotifColor(Color bg, Color fg)
`
`}b
`
`{
`
`}v
`
`{}y
`
`Color background = bg;
`Color foreground = fg;
`
`}M
`
`inactiveWinMgrColor=new MotifColor (dimGray,
`
`Color color = normalColors.background;
`if (uiType is TitleBar)
`
`if (state is selected)
`color = activeWinMgrColors.background,
`
`else
`
`color = inactiveWinMgrColors.background,
`
`return color;
`
`}
`
`lass Win9S5Style extends Style
`
`int WindowForeground = 0,
`int WindowBackground = 1;
`int TitleSelectedBackground = 2;
`int Titleackground = 3;
`Color colors[] = new Color{4];
`colors[WindowForeground] = black;
`colors[WindowBackground] = white;
`colors[TitleBackground] = mediumGray;
`colors[TitleSelectedground] = darkBlue,
`Color getBackground(int uiType, int state)
`{
`
`int color = WindowBackground;
`if (uiType is TitleBar)
`{
`
`if (state is selected)
`color = TitleSelctedBackground;
`else
`
`color = TitleBackground,
`
`}r
`
`eturn colors [color];
`
`20
`
`25
`
`}c
`
`{
`
`30
`
`35
`
`45
`
`50
`
`oid drawRadio(Graphics graphics,
`int x,int y,
`int width, int height,
`int shadowType,
`int state, int ui_type)
`
`{}y
`
`{}v
`
`oid drawCheckBox (Graphics graphics,
`int x, int y,
`int width, int height,
`int shadowType,
`int state, int ui_type)
`
`oid drawBorder (Graphics graphics,
`int x, int y,
`int width, int height,
`int shadowType,
`int uiType, int state)
`
`{ F
`
`ont getFont(int ui_type, int state)
`
`return helvetica;
`botor getBackground(int ui_type, int state)
`‘
`return lightGray;
`botor getPoreground(int ui__type, int state)
`return black;
`&or getSelectColor(int ui_type, int state)
`retum white;
`
`oid drawArrow(Graphics graphics,
`int x, int y,
`int width, int height,
`normalColors=new MotifColor(ItGray, black);
`otifColor
`int shadowType,
`
`MotifColor activeWinMgrColor=new=MotifColor(ItGreen,
`int state, int ui_type)
`white)
`MotifColor
`black);
`Color getBackground(int uiType, int state)
`{
`
`
`
`35
`
`
`
`This basic style is used as a template for the visual
`characteristics of various widgets or widget elements, such
`as position, width, height, shadow type, state, etc. The PGUI
`can determine the current style by calling a getCurrentStyle
`function. Likewise, the PGUI can set the current style by
`calling a setCurrentStyle function. If the user does not set a
`visual style, the visual style object loads a default style. In
`the above example, the visual style object loads the Motif
`style using the getCurrentStyle function.
`The visual style object, by means of calling functions,
`abstracts the methods by which the PGUI determines the
`
`65
`
`Referring to the above examples, the preferred embodi-
`mentof the invention provides a method by which a visual
`style’s attributes can be determined regardless ofthe style.
`The examples show that the state, the user interface type,
`andthe currentvisual style setting determine the background
`and other visual style attributes. Referring to the above
`Motif-type visual style object. the definition indicates to one
`skilled in the art that the Title

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket