throbber
Ulllted States Patent
`
`[19]
`
`[11] Patent Number:
`
`6,121,968
`
`Arcuri et al.
`
`[45] Date of Patent:
`
`Sep. 19, 2000
`
`US006121968A
`
`[54] ADAPTIVE MENUS
`
`[75]
`
`Inventors: Michael P. Arcuri, Seattle; Thomas
`SCOtt C0011, Kirkland; Jeifrey .I-
`Johnson, Bellevue; Alexis Warren
`Jacob Manning, Redmond; Martijn
`Eldert van Tilburg, Seattle, all of
`WaSh-
`
`Steve Harris, et al. “Inside WordPerfect 6 for Windows”,
`New Riders Publishing, p. 1063, 1994.
`
`“Suitable Icon” IBM Technical Disclosure Bulletin, vol. 39,
`N0. 11, pp. 63_64, 1996.
`
`Microsoft® Works Reference, Appendix E: Macros, ©Copy-
`right Microsoft Corporation 1987, 1988, 1989, pp. 369-382.
`
`[73] Assignee: Microsoft Corporation, Redmond,
`WaSh~
`
`Microsoft Word User’s Guide, Version 5.0, ©Copyright
`1991-1992 Microsoft Corporation, pp. 61-66.
`
`Primary Examiner—Raymond J. Bayerl
`Assistant Examiner—Tadesse Hailu
`Attorney, Agent, or Firm—Jones & Askew, LLP
`
`ABSTRACT
`[57]
`Drop down menus provided by a computer program are
`provided in two states, a short menu state and a long menu
`state. When a user opens a desired menu, the menu opened
`will initially take the form of a short menu of executable
`commands which are a subset of the total number of
`executable commands available under the selected menu.
`
`The short menu may be dynamically expanded into a long
`menu which will contain the complete set of executable
`commands available under the selected menu. The short
`b
`d
`t dt
`th
`1
`d
`fth
`h
`0
`men“ may ea ap 9
`‘°*P‘°*rS°“a “Ce 5°
`ellserw 9“
`the user selects commands from the long menu which are not
`contained in the short menu. Usage information is stored and
`d t d
`th
`f
`h
`d
`dt
`9 9
`9
`9
`on
`up a 9
`9 usage 9 9“ menu Comm“
`short menu. Menu commands are removed from the adapted
`short menus based on non-use of those menu commands by
`the user. Information stored, maintained, and updated on the
`.
`usage of the menu commands added to the short menus is
`stored in a compact and efficient data structure which
`
`facilitates efficient computer memory use.
`
`30 Claims, 7 Drawing Sheets
`
`SET NO OF
`SESSIONS
`SINCE LAST
`USED = 0
`
`[21] Appl. No.: 09/098,403
`.
`.
`[22]
`Jun’ 17’ 1998
`F1199’
`[51]
`Int. Cl.7 .................................................... .. G06F 13/00
`
`[52]
`345/352; 345/348; 345/333
`[58] Field of Search ..................................... 345/352, 146,
`345 343 333 335 334
`/
`’
`’
`’
`
`[56]
`
`References Cited
`U.S. PATENT DOCUMENTS
`
`.
`.
`
`.
`
`7/1987 SteiI1haft-
`4,680,729
`9/1987 Redford et al.
`4,692,858
`8/1991 Ephrath et al.
`5,041,967
`5/1992 Kerr .
`5,115,501
`6/1993 Padawer et al.
`5,220,675
`11/1993 B““1dt-
`5>261>042
`2/1994 Gram .
`5,287,514
`......................... .. 345/339
`11/1995 Blades etal.
`5,465,358
`7/1997 Tuniman et a1. N
`N 345/352
`5,544,737
`7/1997 M011fS11I1d Ct 31-
`-- 345/354
`5,644,739
`3/1998 Siefert et al.
`..
`5,726,688
`5/1998 Oran et al.
`............................ .. 345/348
`5,757,371
`6/1998 Gram .
`5,760,768
`5,825,357 10/1998 Malamud .............................. .. 345/340
`5>867>162
`2/1999 O’L°‘“Y ct a1~
`~~ 345/352
`5,897,670
`4/1999 Nielsen ................................. .. 345/334
`
`
`
`OTHER PUBLICATIONS
`
`Sybex; Microsoft Excel’ 1994’ Chapter 1.
`“Intelligent Tool Tracker/Display IBM Technical Disclosure
`Bulletin”, Vol. 37, No. 2A Feb. 1, 1999, p. 175.
`
`500
`
`
`
`SEARCH FOR
`COMMAND
`USAGE RECORD
`515
`
`SELECT MENU
`COMMAND
`
`RECORD7
`YES
`
`CREATE
`RECORD
`
`ADD
`-—— CONMANDTO
`SHORT MENU
`
`DISMISS MENU
`TD HIDDEN
`STATE
`
`550
`
`555
`
`
`
`
`
`
`INCREMENT
`USAGECOUNT
`
`
`
`Apple Exhibit 103
`
`Apple v. Core Wireles
`IPR2015-0189
`
`Page 0000
`
`ENUMERATE
`COMMANDS FOR
`SELECTED
`MENU
`
`SET
`
`ALLOw_DECAv
`BIT FOR
`EXISTING
`RECORDS = 1
`
`
`
`Apple Exhibit 1036
`Apple v. Core Wireless
`IPR2015-01898
`Page 00001
`
`

`
`U.S. Patent
`
`Sep. 19,2000
`
`Sheet 1 of7
`
`6,121,968
`
`_o._c22
`
`//
`
`C.
`
`u-_....__._.
`
`_
`
`__
`
`_
`
`_
`
`
`
`
`
`E0352<mm<.2004
`
`m:.os_mm
`
`mm.S.=2oo
`
`51/
`
`
`
`E0352<mm<85>
`
`_9.—m
`
`_EE<o<:23“89>ozammoomm
`
`_zmzmrm
`
`_oz=<mmn_o
`
`_8
`
`_5:5
`
`_m§_aoomn_
`_mmzo:.<o_._&<
`
`xmozfimz
`
`uo<uEm»z_
`
`
`
`Eon.iamw
`
`mo<uEm:z_
`
`mu<uEm»z_
`
`#930
`
`xm_o
`
`
`
`mama.._m_n_
`
`mo<uEm:.z_
`
`u_Bzo¢s_
`
`V5593..
`
`mama
`
`mo<..E.n:z_
`
`
`
`$5002:<mwoxn_
`
`zo_»<o_._&<
`
`m2<m.oomn_
`
`5:5
`
`
`
`nozéuoxmzo:<o_._&<uzckmmmo
`
`«Sane:mmm2<moocn_mmzmfirm.
`
`
`Page 0000
`
`Page 00002
`
`
`
`
`
`
`
`
`
`

`
`U.S. Patent
`
`Sep. 19,2000
`
`Sheet 2 of7
`
`6,121,968
`
`
`
`
`
`’K’/
`
`
`
`
`
`
`.
`/xi
`r
`/7’
`
`I] file Edit _iw l_nsert _Format Iools Iable \_/_V
`‘
` I? V_Veb Layout
`
`
`
`El Draft
`
`Ioolbars
`
`ljeader and Footer
`
`_
`hort version
`mands like
`
`
`al all comm
`you seem tc
`
`u has been
`command or leave the m
`menus adapt quickly but
`immediately when used_
`application sessions. Afl
`commands that you norm
`a smaller, more personal
`
`Zoom...
`
`VV
`
`
`
`
`I
`
`,/ /’ //
`
`'-Wzaifi 0 ,,
`
`
`
`0
`' 116
`//////A% .
`h§i'§nV§§$i'a?<3
`7
`_________________' al all comtm
`
`yu has been
`Emotes
`'::7:ki3zm
`
`‘El Qomments
`when used,
`
`essions. Afl
`© HTML Source
`at you norm
`
`8 FE" Screen
`re personal
`*2:c.:i:.:::5 |=|(; 23
`
`
`
`
`
`Qutlme
`
`
`770
`
`
`
`ou seem c
`
`
`
`118
`
`Page 0000
`
`
`
`Page 00003
`
`

`
`U.S. Patent
`
`Sep. 19,2000
`
`Sheet 3 of7
`
`6,121,968
`
`
`
`W
`_
`
`
`Qutline
`
`E graft
`
`
`
`[oolbars
`
`
`hort version
`mands like
`
`
`
`you seem tc
`» u has been
`leave the m
`quickly bul
`when used.
`essions. Afl
`at you norm
`re personal
`
`
` 1,;//
`
`0
`l
`Ell/4 ‘W
`1] file _l_Edit |_nsert _Format Iools _T_able W
`
`E] Erint Layout
`
`
`
`
`
`
`
`
`
`J:
`
`§ v
`
`
`
`
`E Vjeb Layout
`D_raft
`Ioolbars
`Q Euler
`
`
`
`hort version
`Lleader and Footer
`mands like
`al all comm
`you seem to
`» u has been
`0 ’ ‘ an or leave the m
`menus adapt quickly bul
`immediately when used.
`application sessions. Afl
`commands that you norm
`a smaller. more personal F | G _ 2 D
`
`Page 0000
`
`
`
`Page 00004
`
`

`
`U.
`
`waP
`
`mS
`
`7Mm
`
`m><#_m_aw:zws_
`mmmomoz<n_xm_m.,
`
`:zm_s_Eoxmmmm_mm_s_m_n_mam:
`
`S.azms.029mmmm_s_m_ommw:
`
`:zm_s_oz9op
`
`
`
`moz<n_xmmmmn:zms_maomomum:
`
`1’6
`
`Q06
`
`9,.nm0.“.
`
`Page
`
`Page 00005
`
`
`

`
`U.S. Patent
`
`Sep. 19,2000
`
`Sheet 5 of7
`
`6,121,968
`
`400
`
`430
`
`COMMAND
`IDENTIFIER
`
`NUMBER OF
`SESSIONS SINCE
`
`LAST USE
`
`ALLOW_DECAY
`
`440
`
`450
`
`460
`
`470
`
`MENU (N)
`
`COMMAND(N)
`
`COMMAND(N)
`USAGE
`
`RECORD
`
`F|G.4A
`
`F|G.4B
`
`Page 0000
`
`Page 00006
`
`

`
`U.S. Patent
`
`Sep. 19,2000
`
`Sheet 6 of7
`
`6,121,968
`
`500
`
`505
`
`510
`
`COMMAND
`
`530
`
`SEARCH FOR
`COMMAND
`USAGE RECORD
`
`
`
`SET NO. OF
`SESSIONS
`SINCE LAST
`USED = o
`
`515
`
`NO
`
`545
`
`520
`
`EXECUTE
`COMMAND
`
`RECORD
`,,
`-
`
`‘"53
`
`INCREMENT
`USAGE COUNT
`
`CREATE
`RECORD
`
`ADD
`COMMAND TO
`
`SHORT MENU 525
`
`550
`
`DISMISS MENU
`TO HIDDEN
`STATE
`
`F | G . 5
`
`Page 0000
`
`526
`
`
`
`
`ENUMERATE
`COMMANDS FOR
`
`SELECTED
`MENU
`
`
`527
`
`SET
`ALLOW_DECAY
`BIT FOR
`EXISTING
`
`RECORDS = 1
`
`Page 00007
`
`

`
`U.S. Patent
`
`Sep. 19,2000
`
`Sheet 7 of7
`
`6,121 968
`
`600
`
`START
`
`(605
`
`NO
`
`685
`
`END
`
`‘'55 606
`
`
`
`NO
`
`YES
`
`607
`
`SET ALLOW_DECAY
`Bn=o
`
`610
`
`665
`
`DECREMENT USAGE
`COUNT BY‘
`
`667
`
`DECREMENT
`USAGE COUNT BY
`
`MAX OF 2 OR 25%
`
`CL(§’h%§",\'J°D
`USAGE RECORD
`615
`
`YES
`
`SESSION = 6
`
`LAST
`sessuom = 9
`?
`
`N0 660
`
`
`
`DELETE COMMAND
`USAGE RECORD
`
`YES
`
`
`
`Page 0000
`
`Page 00008
`
`

`
`6,121,968
`
`1
`ADAPTIVE MENUS
`
`TECHNICAL FIELD
`
`This invention generally relates to computer program user
`interfaces and more particularly relates to dynamically
`increasing and decreasing the number of available com-
`mands in a shortened computer program menu based on the
`particular needs of a user of that program and based on the
`historical utilization of particular commands by a user of
`that computer program.
`
`BACKGROUND OF THE INVENTION
`
`In recent years, use of computers has increased dramati-
`cally worldwide. Users of computers utilize computer pro-
`grams for a variety of purposes including word processing,
`data base management, desktop publishing, and the like. In
`order to facilitate more efficient utilization of computer
`programs, a variety of commands is typically provided in
`each computer program for allowing a user to manipulate
`data and text based on the particular application and the
`needs of the user. For example, a user of a word processing
`program may wish to open a variety of documents or files,
`edit those documents or files, and arrange the layout or print
`characteristics of text contained in those documents or files
`
`according to the particular needs of the user.
`The available functionality of a computer application
`program is typically accessed by selecting commands within
`a menu displayed on a user interface of the application
`program. As designers of computer application programs
`provide more and more commands and menus, these menus
`become “cluttered” and confusing to users. This cluttering of
`menus with large numbers of commands (often not utilized
`by the user of the program application) is often referred to
`as “bloat.”
`
`Some application programs include the capability to use
`“short” sets of menus which expose only a subset of the
`available commands as opposed to “long” sets of menus
`which expose the full set of available commands in a
`particular menu. The content of such short menus is often
`predetermined and static. Because the commands available
`to the user in such short menus often are static, the user must
`either use the long menu or the preset short menu, but the
`user is incapable of changing the content of the short menu
`to provide a more desirable set of commands.
`Some computer program applications allow the user to
`customize the menus and the commands that appear on the
`menus. This allows the advanced user to remove commands
`
`the
`they do not use and add additional commands that
`program designers did not place on the menus by default.
`This is normally done through a dialog which allows the user
`to drag unwanted controls off the menus. However, if the
`user ever wants one of the removed controls or commands
`back, the user must search for the desired control and add it
`back to the appropriate menu. Customizing the menus can be
`a complicated and confusing task. Unfortunately, most users
`either lack the sophistication to perform such menu
`customization, or
`they are afraid to delete currently
`unneeded commands or controls in the event that they might
`need those commands or controls at some point in the future.
`Therefore, there is a need for a system and method for
`dynamically changing the available commands in a given
`short menu based upon the particular needs and utilization
`behavior of the user.
`
`There is further a need for a system and method that can
`dynamically add to and subtract from available commands
`
`10
`
`15
`
`20
`
`25
`
`30
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`2
`provided in a short menu without the need for the user to
`deliberately and manually select from a preset long menu or
`from a preset short menu.
`There is further a need for a system and method for
`creating and updating a record of usage of menu commands
`added to a short menu where the record is compact and
`computer memory efficient.
`SUMMARY OF THE INVENTION
`
`The present invention satisfies the above-described needs
`by providing a system and method for dynamically changing
`the available commands in a given short menu based upon
`the particular needs and utilization behavior of a user. In
`general, drop down menus provided by a computer program
`are provided in two states, a short menu state and a long
`menu state. When a user opens a desired menu, the menu
`opened will initially take the form of a short menu contain-
`ing a subset of executable commands of the total number of
`executable commands available under the selected menu.
`
`The short menu may be dynamically expanded into a long
`menu, which will contain the complete set of executable
`commands available under the selected menu.
`
`Generally stated, the short menu may be adapted to the
`personal needs of the user when the user selects commands
`from the long menu which are not contained in the short
`menu. Usage information is stored and updated on the usage
`of each menu command added to a short menu. Menu
`
`commands are removed from the adapted short menus based
`on non-use of those menu commands by the user. Informa-
`tion stored, maintained, and updated on the usage of the
`menu commands added to the short menus is stored in a
`
`compact and efficient data structure which facilitates effi-
`cient computer memory use.
`One aspect of the present invention provides a method for
`expanding a menu of a computer program module. A deter-
`mination is made as to which commands should be included
`
`in a subset of multiple commands within a short form of the
`menu displayed on a display device. When an expansion
`action is detected,
`the short form menu is expanded by
`displaying a long form of the menu having each of the
`commands. In response to expanding the menu, other menus
`contained in the program module also can be expanded.
`Various methods may be employed for use as expansion
`actions. The expansion action may include detecting the
`selection of an icon contained in the short form of the menu
`
`or detecting the hovering of a mouse controlled arrow or
`cursor over an icon contained in the short form of the menu.
`
`The expansion action may also include detecting the execu-
`tion of a keyboard accelerator or detecting a mouse con-
`trolled double-click over a menu selection key. The expan-
`sion action may further include detecting the hovering of a
`mouse controlled arrow or cursor over the short form of the
`menu.
`
`In another aspect of the present invention, a method of
`creating an adaptive menu of a computer program module is
`provided. A short form of the menu can be displayed on a
`display device, the short form having a subset of a group of
`commands. A need for an additional command not included
`
`in the subset of commands can be detected. In response, the
`short form of the menu can be expanded by displaying a long
`form of the menu having each of the group of commands. In
`response to selecting the additional command from the long
`form of the menu. The additional command can be added to
`
`the subset of the group of commands contained in the short
`form of the menu.
`A first record can be created to document the number of
`times the additional command is selected. A count main-
`
`Page 0000
`
`Page 00009
`
`

`
`6,121,968
`
`3
`tained in the first record can be incremented each additional
`time the command is selected. A second record also can be
`created to track the number of sessions the program module
`was used wherein the additional command was not selected.
`The second record is incremented for each time the program
`module is used and the additional command is not selected.
`The count in the first record can be decremented by “n”
`usage counts if the second record is incremented to represent
`a prescribed number of sessions during which the additional
`command is not selected. The additional command can be
`removed from the short form of the menu after the count in
`the first record is decremented to a prescribed number of
`usage counts. The prescribed number of usage counts is
`typically zero
`In another aspect of the present invention, a method of
`creating and updating an historical usage record for a
`command within a menu of a program module is provided.
`Generally, an historical usage record can be created, includ-
`ing a command identifier field, a usage count field, and a last
`session count field. The usage count can be incremented
`each time the menu command is selected from the menu.
`The last usage count can be incremented each time the
`program module is operated and the command is not
`selected for use. The usage count can be decremented by “n”
`usage counts if the last session count is incremented to a
`prescribed number of sessions during which the command
`was not selected. The historical usage record can be deleted
`if the usage count field is decremented to a prescribed
`number of usage counts. If desired,
`the historical usage
`record may include an Allow_Decay field. The Allow_
`Decay field may contain data determinative of whether the
`usage count should be analyzed.
`In another aspect of the present invention, a computer-
`readable medium having stored thereon a data structure is
`provided. Afirst data field contains data representing a menu
`command of a program module. Asecond data field contains
`data representing a first number of executions of the menu
`command identified by the data contained in the first data
`field. A third data field contains data representing a number
`of sessions the program module containing the menu com-
`mand has been operated during which the menu command
`was not executed. If data contained in the third data field is
`
`altered to represent a predetermined number of the sessions,
`the n in the data in the second data field is altered to
`
`10
`
`15
`
`20
`
`25
`
`30
`
`35
`
`40
`
`represent a second number of executions of the menu
`command.
`
`45
`
`In another aspect of the present invention, a method for
`visually distinguishing commands in a menu of a program
`module is provided. Generally, a short form of the menu is
`presented on a display device, the short form having a subset
`of a group of commands the subset of commands contained
`in the short form of the menu is displayed in a first visual
`configuration. The short form of the menu can be expanded
`by displaying a long form of the menu, the long form having
`each of the group of commands. Each of the group of
`commands not included in the subset of commands can be
`
`displayed in a second visual configuration. The first visual
`configuration typically comprises a first color, and the
`second visual configuration comprise a second color.
`Other objects, features, and advantages of the present
`invention will become apparent upon reading the following
`specification, when taken in conjunction with the drawings
`and the appended claims.
`BRIEF DESCRIPTION OF THE DRAWINGS
`
`FIG. 1 is a block diagram of a personal computer that
`provides an exemplary operating environment for an
`embodiment of the present invention.
`
`50
`
`55
`
`60
`
`65
`
`4
`FIGS. 2A, 2B, 2C, and 2D depict illustrative computer
`programs screen shots according to an exemplary embodi-
`ment of the present invention.
`FIG. 3 is a state diagram illustrating an exemplary inter-
`action between hidden menus, short menus, and long menus
`based upon utilization by the user of the computer program.
`FIG. 4A is a simplified block diagram illustrating the
`interaction of a computer program module with a given
`menu, a given set of commands within that menu and a
`command usage record for each of the given commands in
`accordance with an exemplary embodiment of the present
`invention.
`
`FIG. 4B is a simplified block diagram illustrating the
`preferred data structure of the computer usage record of FIG.
`4A in accordance with an exemplary embodiment of the
`present invention.
`FIG. 5 is a flow diagram illustrating the preferred steps for
`updating the command usage record of FIG. 4B and of
`adding commands to an exemplary short menu in accor-
`dance with the present invention.
`FIG. 6 is a flow diagram illustrating the preferred steps for
`reducing or decaying the usage count maintained in the
`command usage record and for deleting the command usage
`record if the usage count is reduced to a prescribed count.
`DETAILED DESCRIPTION OF THE
`DISCLOSED EMBODIMENTS
`
`In accordance with an exemplary embodiment of the
`present invention, drop down menus for a computer appli-
`cation program can be provided in two states, a short menu
`state and a long menu state. When a user drops a desired
`menu onto the screen of the monitor of a computer, the menu
`dropped will initially take the form of a short menu of
`executable commands, which are a subset of the total
`number of executable commands available under the
`
`the present
`selected menu. As will be discussed below,
`invention provides the ability to dynamically expand the
`short menu into a long menu, which will contain the
`complete set of executable commands available under the
`selected menu.
`
`The initial short menu provided to the user contains a set
`of executable commands predefined by the developer of the
`computer application program. When a user needs an
`executable command not included in the initial short menu,
`the short menu is expanded to the long menu state where the
`user will find the needed executable command. Once the
`
`user selects the needed executable command from the long
`menu, the present invention dynamically adds the selected
`executable command to the short menu to adapt the short
`menu to the personal needs of the user.
`Once an executable command is added to the short menu
`
`to adapt the short menu to the user’s personal needs, the
`present invention provides for monitoring the usage of the
`added executable command by the user. Subsequently, each
`time the user “boots up” the application program, the present
`invention provides for an analysis of the user’s previous
`usage of the menu commands added to the short menu from
`the long menu. As the user’s usage of menu commands
`which have been added to the short menu decreases or
`
`ceases, an exemplary embodiment of the present invention
`removes the added menu commands from the short menu in
`
`accordance with usage parameters as will be discussed in
`detail below. Additionally, the present invention maintains
`data on the user’s usage of menu commands added to the
`short menu in a data structure which is compact and efficient
`and which saves memory space.
`
`Page 0001
`
`Page 00010
`
`

`
`6,121,968
`
`5
`The detailed description which follows is represented
`largely in terms of processes and symbolic representations
`of operations by conventional computer components,
`including a processor, memory storage devices for
`the
`processor, connected display devices, and input devices.
`Furthermore,
`these processes and operations may utilize
`conventional computer components in a heterogeneous dis-
`tributed computing environment,
`including remote file
`servers, computer servers, and memory storage devices.
`Each of these conventional distributed computing compo-
`nents is accessible by the processor via a communication
`network.
`
`The processes and operations performed by the computer
`include the manipulation of signals by a processor or remote
`server and the maintenance of these signals within data
`structures resident in one or more of the local or remote
`
`memory storage devices. Such data structures impose a
`physical organization upon the collection of data stored
`within a memory storage device and represent specific
`electrical or magnetic elements. These symbolic represen-
`tations are the means used by those skilled in the art of
`computer programming and computer construction to most
`effectively convey teachings and discoveries to others
`skilled in the art.
`
`For the purposes of this discussion, a process is generally
`conceived to be a sequence of computer-executed steps
`leading to a desired result. These steps generally require
`physical manipulations of physical quantities. Usually,
`though not necessarily, these quantities take the form of
`electrical, magnetic, or optical signals capable of being
`stored,
`transferred, combined, compared, or otherwise
`manipulated. It is conventional for those skilled in the art to
`refer to these signals as bits, bytes, words, values, elements,
`symbols, characters,
`terms, numbers, points,
`records,
`objects, images, files or the like. It should be kept in mind,
`however, that these and similar terms should be associated
`with appropriate physical quantities for computer
`operations, and that these terms are merely conventional
`labels applied to physical quantities that exist within and
`during operation of the computer.
`It should also be understood that manipulations within the
`computer are often referred to in terms such as adding,
`calling, comparing, receiving, sending, reading, transferring,
`determining, routing, selecting, transmitting, etc. which are
`often associated with manual operations performed by a
`human operator. The operations described herein are
`machine operations performed in conjunction with various
`input provided by a human operator or user that interacts
`with the computer.
`Referring now to the drawings, in which like numerals
`represent
`like elements throughout
`the several
`figures,
`aspects of the present invention and the preferred operating
`environment will be described.
`
`Exemplary Operating Environment
`FIG. 1 and the following discussion are intended to
`provide a brief, general description of the suitable comput-
`ing environment
`in which the invention may be imple-
`mented. While the invention will be described in the general
`context of an application program that runs on an operating
`system in conjunction with a personal computer,
`those
`skilled in the art will recognize that the invention may also
`be implemented in combination with other program mod-
`ules. Generally, program modules include routines,
`programs, components, data structures (such as tables or tree
`structures), etc., that perform particular tasks or implement
`particular abstract data types. Moreover, those skilled in the
`art will appreciate that the invention may be practiced with
`
`10
`
`15
`
`20
`
`25
`
`30
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`6
`other computer system configurations, including hand-held
`devices, multiprocessor systems, microprocessor-based or
`programmable consumer electronics, minicomputers, main-
`frame computers, and the like. The invention may also be
`practiced in distributed computing environments where
`tasks are performed by remote processing devices that are
`linked through a communication network. In a distributed
`computing environment, program modules may be located
`in both local and remote memory storage devices.
`Referring now to FIG. 1, an exemplary system for imple-
`menting the present invention includes a conventional per-
`sonal computer 20,
`including a processor 21, a system
`memory 22, and a system bus 23 that couples the system
`memory 22 to the processor 21. The system memory 22
`includes read only memory (ROM) 24 and random access
`memory (RAM) 25. A basic input/output system 26 (BIOS)
`is stored in ROM 24. The BIOS 26 essentially contains the
`basic routines that help to transfer information between
`elements within the personal computer 20 during certain
`computer operations, such as during start-up. The personal
`computer 20 further includes a hard disk drive 27, a mag-
`netic disk drive 28 (e.g., that reads from and writes to a
`removable disk 29), and an optical disk drive 30 (e.g., that
`reads from an optical disk 31 or reads from or writes to other
`optical media). The hard disk drive 27, magnetic disk drive
`28, and optical disk drive 30 are connected to the system bus
`23 by a hard disk drive interface 32, a magnetic disk drive
`interface 33, and an optical drive interface 34, respectively.
`The drives and their associated computer-readable media
`provide non-volatile storage for the personal computer 20.
`Although the description of computer-readable media above
`includes the hard disk drive 27, a removable magnetic disk
`29 and a removable optical disk 31, such as a CD-ROM disk
`or DVD, it should be appreciated by those skilled in the art
`that other types of removable media which are readable by
`a computer, such as magnetic cassettes, flash memory cards,
`digital tapes, Bernoulli cartridges, and the like, may also be
`used in the exemplary operating environment.
`Anumber of program modules may be stored in the drives
`and RAM 25, including an operating system 35, one or more
`program modules 36 (such as a word processing program
`module), other program modules 37.
`The operating system 35, in conjunction with the BIOS 26
`and associated device drivers, provides the basic interface
`between the computer’s hardware and software resources,
`the user, and program modules. Auser may enter commands
`and information into the personal computer 20 through a
`keyboard 40 and an input or pointing device, such as a
`mouse 42.
`
`input devices (not shown) may include a
`Other
`microphone, a key pad, a touch sensor, a joystick, a game
`pad, a satellite dish, a scanner, or the like. The keyboard 40,
`mouse 42, and other input devices are often connected to the
`processor 21 through a serial port interface 46, such as a
`game port or a universal serial bus (USB). A monitor 47 or
`other type of display device is also connected to the system
`bus 23 via an interface, such as a video adapter 48. In
`addition to the monitor 47, personal computers typically
`include other peripheral output devices (not shown), such as
`speakers and printers.
`The personal computer 20 may operate in a networked
`environment using logical connections to one or more
`remote programmable devices, such as a remote computer
`49. The remote computer 49 may be a server, a router, a peer
`device, or other common network node. Typically,
`the
`remote computer 49 includes many or all of the elements
`described relative to the personal computer 20, although
`
`Page 0001
`
`Page 00011
`
`

`
`6,121,968
`
`7
`only a memory storage device 50 has been illustrated in FIG.
`1. The logical connections depicted in FIG. 1 include a local
`area network (LAN) 51 and a wide area network 52.
`Such networking environments are commonplace in offices,
`enterprise-wide computer networks, intranets and the global
`Internet.
`
`When used in a LAN networking environment, the per-
`sonal computer 20 is connected to the local network 51
`through a network interface 53. When used in a WAN
`networking environment, the personal computer 20 typically
`includes a modem 54 or other means for establishing com-
`munications over the wide area network 52, such as the
`global Internet. The modem 54, which may be internal or
`external, is connected to the system bus via the serial port
`interface 46. In a networked environment, program modules
`depicted relative to the personal computer 20, or portions
`thereof, may be stored in the remote memory storage device
`50.
`It will be appreciated that
`the network connections
`shown are exemplary and other means of establishing a
`communications link between the personal computer 20 and
`the remote computer 49 may be used.
`Exemplary User Interfaces
`Personalized adaptive short menus, as created in accor-
`dance with an exemplary embodiment of the present
`invention, act as caches of the menu commands that a user
`is likely to need. The commands the user is likely to need are
`the ones he or she has used before.
`In an exemplary
`embodiment of the present invention, fewer, more relevant
`menu commands are presented in each predefined short
`menu by default. The default setting of the menu commands
`presented in the short menu is predefined by the developer
`of a given computer application program, such as illustrated
`in FIG. 2A. As should be understood, the default setting
`initially may contain no commands, and the short menu may
`be filled with only those commands selected by the user
`from the corresponding long menu, as described below.
`Further, it should be understood, the default setting initially
`may contain all commands.
`Once the user begins actual use of the computer applica-
`tion program, the short menus are personalized and adapted
`to fit the usage behavior of the individual user, as briefly
`described above. It should be understood, however,
`that
`while the short menus are not a replacement for the long
`menus which contain all available menu commands, an
`exemplary embodiment of the present invention provides for
`the presentation of the short menus by default until the user
`effects an expansion from the short menu into the long
`menu, as described above. Thus,
`the present
`invention
`reduces the “bloat” phenomenon characteristic of numerous
`and often superfluous menu commands located in the full
`length long menus.
`During use of the default short menus or the adapted short
`menus, the user does not have to think about the menus. The
`user simply uses the short menus which typically will have
`exactly the menu commands he or she needs. The menu
`commands found on the adapted short menus will be famil-
`iar to the user and will be easy to browse. This aspect of the
`present invention allows the user to be in better control of
`the computer application program he or she is using.
`However, if the user does need to find a new menu command
`or would like to browse some menu command that he or she
`
`has not used in a while, the menus easily expand from the
`default or adapted short menu to the long menu to facilitate
`the user’s needs.
`
`As briefly described above, the present invention provides
`a method and system for allowing a user to dynamically
`expand a preset short menu of commands to a long menu of
`
`8
`commands when the user desires or needs commands not
`
`present in the short menu of commands. Before describing
`the particular implementation of the present invention, it is
`advantageous at this point to describe a set of exemplary
`user interfaces encountered by a user of a given computer
`application program employing an exemplary embodiment
`of the present invention. FIGS. 2A, 2B, 2C, and 2D depict
`illustrative computer program display screens according to
`an exemplary embodiment of the present invention.
`Referring to FIG. 2A, a user of an exemplary word
`processing pro

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