US20030146941A1 - Systems and methods for creating and managing graphical user interface lists - Google Patents
Systems and methods for creating and managing graphical user interface lists Download PDFInfo
- Publication number
- US20030146941A1 US20030146941A1 US10/072,396 US7239602A US2003146941A1 US 20030146941 A1 US20030146941 A1 US 20030146941A1 US 7239602 A US7239602 A US 7239602A US 2003146941 A1 US2003146941 A1 US 2003146941A1
- Authority
- US
- United States
- Prior art keywords
- display
- list
- controls
- scroll
- recited
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0481—Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
- G06F3/0482—Interaction with lists of selectable items, e.g. menus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/38—Creation or generation of source code for implementing user interfaces
Definitions
- the systems and methods described herein relate to graphical user interface lists. More particularly, the described invention relates to systems and methods for providing a standard list function to create a graphical user interface list and list manager while allowing the graphical user interface to vary by appearance.
- Lists are a prominent part of most graphical user interfaces and are typically used to display a list of selections available to a user. For example, clicking on a toolbar item usually causes a list to drop down or pop up from the toolbar. A user may then make a selection from the drop down list that is revealed.
- lists commonly consist of a vertical column of text items, in which text is displayed to indicate the function of the button.
- the functionality provided by such a list is adequate for the needs required by most applications that run on the desktop system.
- a developer of such applications does not have to write new computer instructions, or code, for each list that the developer wants to create. Instead, a list control is provided that the developer uses to define parameters of the list.
- the control includes executable code that actually creates the form of the list. As a result of using such a control, the developer can become accustomed to a standard way of efficiently creating and manipulating lists.
- a sound system may provide a list that contains several choices for CD play mode such a play, pause, repeat, etc.
- An automobile manufacturer wants to create a sensory experience that is unique to a particular manufacturer, so that the experience becomes associated with that manufacturer. As a part of the sensory experience, the manufacturer may want to create unique-looking lists, such as a unique way to display a CD play mode list.
- GUI graphical user interface
- a list manager is created in an application by a list control. Instead of writing the basic functions for creating and presenting a list in a GUI, an application developer simply places the list control into the application.
- the list control includes a method that is used by the developer to set properties for the list manager.
- List manager properties determine the link between a button associated with a list (such as a scrolling button) and its function, and a source for data to populate the list.
- the list manager pumps appropriate list data from a data source to display controls—i.e., buttons—on a graphical user interface.
- the list manager receives input from the GUI and processes the input with data from the data source. For example, if the list manager receives input to scroll up, the list manager determines which data should be displayed in a list after it is scrolled up and provides the appropriate data for display.
- the list manager is used in applications that utilize a graphical user interface that includes lists.
- the list manager does not provide any visual quality to the GUI. Therefore, a list manager application may be written that uses a GUI without actually defining the appearance of the GUI. Multiple other applications written to define the GUI may be used in conjunction with the list manager application to provide multiple interactive experiences that utilize the same list manager application.
- FIG. 1 a is an illustration of a display list.
- FIG. 1 b is an illustration of a display list.
- FIG. 1 c is an illustration of a display list.
- FIG. 2 a is a block diagram of a computer system conforming to the invention described herein.
- FIG. 2 b is a block diagram of a list manager and related components.
- FIG. 3 is a flow diagram depicting a methodological implementation of a list manager in accordance with the present invention.
- FIG. 4 is a diagram of an exemplary system on which the present invention may be implemented.
- This invention concerns a computer operating system that runs applications that provide a graphical user interface (GUI) that includes display lists.
- GUI graphical user interface
- the invention relates to creating and managing the display lists.
- An application using the present invention may be used in conjunction with other applications to present various and unique visual presentations that handle list data similarly.
- the present invention may at times be described according to an automobile computer implementation. However, it is noted that the features described herein may be applied to any computer system or application that utilizes display lists in a graphical user interface.
- the invention is illustrated in the drawings as being implemented in a suitable computing environment.
- a computing device such as a personal computer or a hand-held computer or electronic device.
- program modules include routines, programs, objects, components, data structures, etc. that perform particular tasks or implement particular abstract data types.
- program modules include routines, programs, objects, components, data structures, etc. that perform particular tasks or implement particular abstract data types.
- program modules may be practiced with other computer system configurations, including multi-processor systems, microprocessor-based or programmable consumer electronics, network PCs, minicomputers, mainframe 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 communications network.
- program modules may be located in both local and remote memory storage devices.
- a list manager is described that provides a standard method of creating and managing display lists (“lists”).
- the list manager fills, scrolls, and notifies an application when a list item in a list has been selected.
- the list manager does not show any visible user interface, but pumps list item elements to a set of attached display controls, such as buttons, sliders, labels, meters, knobs, checkboxes, palettes etc.
- FIG. 1 a is an illustration of a display list 100 that is typical of a graphical user interface (GUI).
- the display list 100 includes several selectable list items 102 . In this example, there are five list items 102 . However, it is noted that a list may have any practical number of list items, depending on the environment.
- the list items 102 are populated with list elements 104 from a data list (not shown).
- a list element 104 is content to fill a single list item. If a data list has more list elements 104 than there are list items 102 in the display list 100 , an up scroll button 104 and a down scroll button 106 allow a user to scroll up or down, respectively, to re-populate the list items 102 with appropriate list elements 104 .
- FIG. 1 b is an illustration of a display list 110 that is a little different in its look and feel.
- the display list 110 includes list items 112 and list elements 114 similar to the list items 102 of display list 100 . But the display list 110 has an up scroll button 116 and a down scroll button 118 that are positioned differently than in FIG. 1 a .
- the scroll up button 116 is located above the list items 112 and the scroll down button 118 is located below the list items 112 .
- FIG. 1 c is an illustration of a GUI 120 that includes a display list 122 .
- the display list 122 includes list items 124 , list elements 126 , an up scroll button 128 and a down scroll button 130 like the display list 100 shown in FIG. 1 a
- the display list 122 has a markedly different appearance.
- the display list 122 is a sweeping design wherein the list items 124 are of differing sizes. (A display area 132 is also shown as visible in a part of the GUI 120 that is not covered by the display list 122 ).
- An application written to utilize a standard design list layout may not know how to create the display list 122 and manage list elements 126 to be displayed in the display list 122 . As a result, a new and unique version of the application would have to be written to accommodate the use of such a display list. This is highly undesirable, given the large number of different systems on which a particular application may be—at least potentially—run.
- a street name list application can efficiently handle scrolling through a data list of a thousand street names and selecting one. To provide adequate performance, the application provides only those list elements necessary to populate a limited number of list items on a display.
- a photograph preview application can show a large photograph in the middle of a display and two smaller photographs on each of the left and right sides of the large photograph. Images are scrolled into and out of the large middle control similar to other more common controls.
- An adaptive graphic equalizer application can send a request to a system asking how many graphic equalizer bands are supported.
- the graphic equalizer bands can then be displayed in a scrolling list.
- the list items are not buttons, but sliders. In fact, any type of control can be used as the list items in a display list.
- FIG. 2 a is a block diagram of a computer system 200 conforming to the invention described herein.
- the computer system 200 includes a processor 202 , a display 204 and memory 206 .
- the computer system 200 also includes an input/output (I/O) unit 208 that may include hardware, software or a combination of the two.
- the I/O unit 208 allows a user to input data into the computer system 200 , and allows the computer system 200 to output data to a user.
- the I/O unit 208 may comprise more than one component, such as a key pad, a microphone, a speaker, and the like (not shown).
- the computer system 200 also includes hardware 210 and firmware 212 .
- the hardware 212 includes any system-specific hardware that may be necessary for the computer system 200 to function in a particular manner.
- the firmware 212 is software that is executable on the processor 202 , the software enabling the hardware 212 to operate properly on the computer system 200 .
- the memory 206 of the computer system 200 stores an operating system 214 that includes, among other modules (not shown) that are typically found in an operating system, a list manager control 216 that may be copied into applications to provide list manager functionality to the application.
- the memory 206 also stores a software application 218 that utilizes the list manager control 216 .
- the application 218 includes a list manager 220 created with the list manager control 216 .
- the list manager 220 may be created in a variety of ways.
- the list manager 220 could be created by a COM (Common Object Model) object or a by initializing a class.
- COM Common Object Model
- a data source 222 is stored in the memory 206 and provides a data resource for the list manager 220 so that the list manager 220 can populate the display list 230 .
- the data source 222 is shown stored in the memory 206 , the data source 222 may be located on one or more computer-readable media or may be provided live over a network such as the Internet.
- the list manager 220 also receives input from a scrolling source 224 that tells the list manager 220 when a scrolling event occurs.
- OEM graphical user interface software 226 is stored in the memory 206 and is configured to provide a GUI 228 on the display 204 . As part of the GUI 228 , display list 230 is configured to display one or more selectable display controls 232 to a user.
- the display controls 232 make up the display list 230 as described earlier, with each display control 232 displaying a list item 234 in the display list 230 .
- the display controls 232 shown on the GUI 228 are selectable by a user, such as by a user positioning a cursor over the display controls 232 and clicking.
- a user such as by a user positioning a cursor over the display controls 232 and clicking.
- the list manager 220 also includes certain properties 250 , methods 252 and events 254 . These will be discussed in greater detail, below.
- FIG. 2 b is a block diagram that illustrates in more detail some of the elements shown in FIG. 2 a .
- the display list 230 attaches itself to the list manager 220 and provides information to the list manager 220 about the list items 234 included in the display list 230 .
- the display list 230 also provides events to the list manager 220 .
- the list manager 220 provides a pointer to the data source 222 to set up a link between the data source 222 and the display list 230 .
- the scrolling source 224 indicates to the list manager 220 when to scroll, how many items to scroll, and which direction to scroll the display list 230 .
- the list manager calculates what data is required from the data source 222 .
- the data source 222 then provides this data to the display list 230 .
- the First Item scrolling event clears any current list items 234 and fills the five list items 234 with the first five list elements.
- the Last Item scrolling event clears any current list items 234 and fills the five list items 234 with the last five list elements.
- the Previous Item scrolling event shows one new list element (the previous list element) and the following four list elements.
- the Next Item scrolling event shows one new list element (the next list element) and the previous four list elements.
- the Previous Page scrolling event clears any current list items 234 and shows five new list elements—the five list elements before the current list items 234 . If there are not enough list elements to fill an entirely new page, the scrolling action taken is similar to a First Page scrolling event.
- the Next Page scrolling event clears any current list items 234 and shows five new list elements—the five list elements after the current list elements. If there are not enough list elements to fill an entirely new page, the scrolling action taken is similar to a Last Page scrolling event.
- the list manager 220 knows that there are five list items 234 , the data source 222 does not have to be aware of this fact. This is because the list manager 220 is linked to the display controls 232 .
- FIG. 3 is a flow diagram depicting a methodological implementation of a list manager in accordance with the present invention.
- the display controls 232 on the graphical user interface 228 link to the list manager 220 .
- the list manager 220 then links to the data source 222 that will be used to provide data to the display controls 232 (block 302 ) and provides a pointer to the data source 222 that references the display controls 232 . This allows the data source 222 to provide data directly to the display controls 232 .
- the GUI 228 is a separate process from the application 218 . As a result, the GUI 228 may change but still operate with the list manager 220 . Therefore, different GUIs will operate with the list manager 220 and will have a similar look and feel.
- the list manager 220 monitors for scrolling events that occur on the GUI 228 . Even though the GUI 228 is separate from the list manager 220 , the list manager 220 is informed of scrolling events by virtue of the linkage between the list manager 220 and the display controls 232 on the GUI 228 .
- the list manager 220 calculates updates that should be made to the display list 230 in accordance with the scrolling event (block 310 ). It then requests that the display source 222 update data for the display items 234 at block 312 . The data source 222 provides the appropriate data for the list positions requested by the list manager 220 .
- the following discussion provides more detail to the function of the list manager 220 by describing the properties 250 , methods 252 and events 254 utilized by the list manager 220 .
- the properties, methods and events are exemplary only. It is noted that the properties may be implemented as methods or events. Similarly, methods may be implemented as properties or events, and events may be implemented as properties or methods.
- a list manager control is instantiated within the application. At this time, the list manager properties are set to enable the list manager 220 and any necessary key assignments (such as for scrolling keys) are made.
- the list manager 220 Since the list manager 220 does not take up any visible screen area, visual controls must be attached to the list manager 220 .
- the first step to accomplish this is to call the Attach Item Control method to attach each display control 232 to the list manager 220 and give it a usage identifier.
- the list manager 220 is configured to trap notifications from these attached controls and generate list notifications.
- Scrolling controls are attached by calling an Attach Scroll Control method, which tells the list manager 220 how to scroll the list when this control is actuated. Scrolling occurs in a direction and by a scroll interval.
- the scroll interval page means to scroll by the number of list item controls.
- the list manager 220 may be informed to scroll as follows: Command Direction Interval Scroll First Item Backward List End Scroll Last Item Forward List End Scroll Prev Page Backward Page Scroll Next Page Forward Page Scroll Prev Item Backward Item Scroll Next Item Forward Item
- the data source 222 must be linked to the list manager 220 .
- An interface containing the list manager events requests the data source 222 to fill the list items 234 with list element data.
- the list manager 220 requests that controls attached as a result of calling AttachItemControl method be populated by passing a reference to the controls to the data source within the event.
- the interface includes a Refresh Content method and a Scroll method.
- the Refresh Content method erases the content in the list and requests it fresh from the data source 222 beginning with a provided parameter (Starting Element).
- the Scroll method scrolls the display list 228 by a provided parameter (Items To Scroll).
- the list manager scrolls the list by a fixed amount set when the scroll control was attached.
- the list manager 220 also can request keyboard input to go directly to itself.
- the list manager 220 calls an AutoScroll method on the attached style class and this method determines the appropriate scroll action. The method then affects this action by calling the Scroll method on the list manager 220 to scroll the display list 230 .
- the list manager 220 makes no presumptions about the orientation and visual interaction model of the layout of the display list 230 , the list manager 220 must be configured as to what events should result in auto scrolling.
- the list manager 220 is configured to fire several events as needed.
- An Item Clicked event is sent when a list item is clicked.
- a Provide Content event is used to request data from the data source 222 .
- the Provide Content event is fired when the list manager 220 needs data to fill a list item 234 .
- a Scroll Content event is used to request the data source 222 to copy content from one control to another.
- the list manager 220 sends multiple events to scroll—one event for each visible list item 234 .
- a Scroll Changed event is fired to indicate that it is time to update the scrolling indicators. This event is sent whenever the list manager has finished a scrolling event. This gives the application 218 a chance to update the user interface, for example, to disable or hide scroll indicators.
- the first parameter is true when there are additional list items toward the top of the list.
- the second parameter is true when there are additional list items toward the bottom of the list.
- Some interfaces include control groupings that are mutually exclusive, e.g., Radio Buttons groups in which only one of the radio buttons are set at a time and setting one button within the group will unset the other buttons.
- This scenario is enabled by the List Manager forwarding all events it receives from the display list items on to the data source 222 .
- the list manager 220 forwards these events it adds two additional pieces of information: a reference to the control that sent the event and a unique identifier specifying which data element that particular control is currently displaying.
- the list manager 220 extends all display list controls by wrapping them and adding an additional property that it uses to store this unique identifier.
- the data source 222 fills in this identifier and has complete flexibility as to the numbering scheme used to ensure the uniqueness of these identifiers. This identifier does not need to be unique to the entire data set, however, it must be unique while it is visible within a display list item. This enables applications to request more detail about a data element from the data source 222 beyond that which is currently displayed within the display list items.
- This provides the additional feature that the application 218 can listen to events from the list manager 220 alone, instead of listening to events from the individual display list items.
- a contacts application could listen to the list manager 220 for item focused events and fill in a detail pane by requesting more information from the data source 222 regarding the data element that just got focused.
- FIG. 5 shows components of typical example of such a computer, referred by to reference numeral 500 .
- the components shown in FIG. 5 are only examples, and are not intended to suggest any limitation as to the scope of the functionality of the invention; the invention is not necessarily dependent on the features shown in FIG. 5.
- program modules include routines, programs, objects, components, data structures, etc. that perform particular tasks or implement particular abstract data types. Tasks might also be performed by remote processing devices that are linked through a communications network.
- program modules may be located in both local and remote computer storage media.
- the instructions and/or program modules are stored at different times in the various computer-readable media that are either part of the computer or that can be read by the computer.
- Programs are typically distributed, for example, on floppy disks, CD-ROMs, DVD, or some form of communication media such as a modulated signal. From there, they are installed or loaded into the secondary memory of a computer. At execution, they are loaded at least partially into the computer's primary electronic memory.
- the invention described herein includes these and other various types of computer-readable media when such media contain instructions programs, and/or modules for implementing the steps described below in conjunction with a microprocessor or other data processors.
- the invention also includes the computer itself when programmed according to the methods and techniques described below.
- the components of computer 500 may include, but are not limited to, a processing unit 520 , a system memory 530 , and a system bus 521 that couples various system components including the system memory to the processing unit 520 .
- the system bus 521 may be any of several types of bus structures including a memory bus or memory controller, a peripheral bus, and a local bus using any of a variety of bus architectures.
- bus architectures include Industry Standard Architecture (ISA) bus, Micro Channel Architecture (MCA) bus, Enhanced ISA (EISA) bus, Video Electronics Standards Association (VESA) local bus, and Peripheral Component Interconnect (PCI) bus also known as the Mezzanine bus.
- Computer 500 typically includes a variety of computer-readable media.
- Computer-readable media can be any available media that can be accessed by computer 500 and includes both volatile and nonvolatile media, removable and non-removable media.
- Computer-readable media may comprise computer storage media and communication media.
- Computer storage media includes both volatile and nonvolatile, removable and non-removable media implemented in any method or technology for storage of information such as computer-readable instructions, data structures, program modules, or other data.
- Computer storage media includes, but is not limited to, RAM, ROM, EEPROM, flash memory or other memory technology, CD-ROM, digital versatile disks (DVD) or other optical disk storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other medium which can be used to store the desired information and which can be accessed by computer 510 .
- Communication media typically embodies computer-readable instructions, data structures, program modules or other data in a modulated data signal such as a carrier wave or other transport mechanism and includes any information delivery media.
- modulated data signal means a signal that has one or more if its characteristics set or changed in such a manner as to encode information in the signal.
- communication media includes wired media such as a wired network or direct-wired connection and wireless media such as acoustic, RF, infrared and other wireless media. Combinations of any of the above should also be included within the scope of computer readable media.
- the system memory 530 includes computer storage media in the form of volatile and/or nonvolatile memory such as read only memory (ROM) 531 and random access memory (RAM) 532 .
- ROM read only memory
- RAM random access memory
- BIOS basic input/output system
- RAM 532 typically contains data and/or program modules that are immediately accessible to and/or presently being operated on by processing unit 520 .
- FIG. 5 illustrates operating system 534 , application programs 535 , other program modules 536 , and program data 537 .
- the computer 500 may also include other removable/non-removable, volatile/nonvolatile computer storage media.
- FIG. 5 illustrates a hard disk drive 541 that reads from or writes to non-removable, nonvolatile magnetic media, a magnetic disk drive 551 that reads from or writes to a removable, nonvolatile magnetic disk 552 , and an optical disk drive 555 that reads from or writes to a removable, nonvolatile optical disk 556 such as a CD ROM or other optical media.
- removable/non-removable, volatile/nonvolatile computer storage media that can be used in the exemplary operating environment include, but are not limited to, magnetic tape cassettes, flash memory cards, digital versatile disks, digital video tape, solid state RAM, solid state ROM, and the like.
- the hard disk drive 541 is typically connected to the system bus 521 through a non-removable memory interface such as interface 540
- magnetic disk drive 551 and optical disk drive 555 are typically connected to the system bus 521 by a removable memory interface such as interface 550 .
- the drives and their associated computer storage media discussed above and illustrated in FIG. 5 provide storage of computer-readable instructions, data structures, program modules, and other data for computer 500 .
- hard disk drive 541 is illustrated as storing operating system 544 , application programs 545 , other program modules 546 , and program data 547 .
- operating system 544 application programs 545 , other program modules 546 , and program data 547 are given different numbers here to illustrate that, at a minimum, they are different copies.
- a user may enter commands and information into the computer 500 through input devices such as a keyboard 562 and pointing device 561 , commonly referred to as a mouse, trackball, or touch pad.
- Other input devices may include a microphone, joystick, game pad, satellite dish, scanner, or the like.
- These and other input devices are often connected to the processing unit 520 through a user input interface 560 that is coupled to the system bus, but may be connected by other interface and bus structures, such as a parallel port, game port, or a universal serial bus (USB).
- a monitor 591 or other type of display device is also connected to the system bus 521 via an interface, such as a video interface 590 .
- computers may also include other peripheral output devices such as speakers 597 and printer 596 , which may be connected through an output peripheral interface 595 .
- the computer may operate in a networked environment using logical connections to one or more remote computers, such as a remote computer 580 .
- the remote computer 580 may be a personal computer, a server, a router, a network PC, a peer device or other common network node, and typically includes many or all of the elements described above relative to computer 500 , although only a memory storage device 581 has been illustrated in FIG. 5.
- the logical connections depicted in FIG. 5 include a local area network (LAN) 571 and a wide area network (WAN) 573 , but may also include other networks.
- LAN local area network
- WAN wide area network
- Such networking environments are commonplace in offices, enterprise-wide computer networks, intranets, and the Internet.
- the computer 500 When used in a LAN networking environment, the computer 500 is connected to the LAN 571 through a network interface or adapter 570 .
- the computer 500 When used in a WAN networking environment, the computer 500 typically includes a modem 572 or other means for establishing communications over the WAN 573 , such as the Internet.
- the modem 572 which may be internal or external, may be connected to the system bus 521 via the user input interface 560 , or other appropriate mechanism.
- program modules depicted relative to the computer 500 may be stored in the remote memory storage device.
- FIG. 5 illustrates remote application programs 585 as residing on memory device 581 . It will be appreciated that the network connections shown are exemplary and other means of establishing a communications link between the computers may be used.
- the systems and methods as described thus provide a way to provide a standardized way to create common user interface mechanisms, such as display lists, while affording a product manufacturer to alter the visual appearance of the user interface.
- a single application can be utilized on multiple platforms to provide similar user experiences.
Abstract
Description
- The systems and methods described herein relate to graphical user interface lists. More particularly, the described invention relates to systems and methods for providing a standard list function to create a graphical user interface list and list manager while allowing the graphical user interface to vary by appearance.
- Lists are a prominent part of most graphical user interfaces and are typically used to display a list of selections available to a user. For example, clicking on a toolbar item usually causes a list to drop down or pop up from the toolbar. A user may then make a selection from the drop down list that is revealed.
- In a desktop computing environment, lists commonly consist of a vertical column of text items, in which text is displayed to indicate the function of the button. The functionality provided by such a list is adequate for the needs required by most applications that run on the desktop system. In some systems, such as the WINDOWS family of operating systems produced by MICROSOFT CORP., a developer of such applications does not have to write new computer instructions, or code, for each list that the developer wants to create. Instead, a list control is provided that the developer uses to define parameters of the list. The control includes executable code that actually creates the form of the list. As a result of using such a control, the developer can become accustomed to a standard way of efficiently creating and manipulating lists.
- While such a system works well for desktop environments, manufacturers of today's embedded computer products, e.g., cell phones, personal digital assistants (PDA), appliances, etc., tend to want to create a more rich visual experience to make a product more attractive to consumers. As a result, embedded computer systems are designed that provide graphical functionality that applications may use while allowing applications to control the appearance of graphics.
- For example, automobile manufacturers are beginning to install one or more computers in most vehicles, the computers being used for navigation systems, sound systems, and the like. Lists are used in those systems to provide an interaction between the system and a user, e.g., a sound system may provide a list that contains several choices for CD play mode such a play, pause, repeat, etc. An automobile manufacturer wants to create a sensory experience that is unique to a particular manufacturer, so that the experience becomes associated with that manufacturer. As a part of the sensory experience, the manufacturer may want to create unique-looking lists, such as a unique way to display a CD play mode list.
- The drawback in providing a unique visual experience for each different manufacturer is that applications must be created separately for each individual manufacturer. What is needed is a way to provide applications developers standardized way to create common user interface mechanisms, such as lists, while affording a product manufacturer to alter the visual appearance of the user interface.
- Systems and methods are described for creating and managing graphical user interface (GUI) lists and for providing a GUI list function for application development. The described systems and methods provide an application developer with a standardized way to create lists for a graphical user interface while maintaining a manufacturer's freedom to use any visual style for the graphical user interface.
- A list manager is created in an application by a list control. Instead of writing the basic functions for creating and presenting a list in a GUI, an application developer simply places the list control into the application. The list control includes a method that is used by the developer to set properties for the list manager. List manager properties determine the link between a button associated with a list (such as a scrolling button) and its function, and a source for data to populate the list.
- The list manager pumps appropriate list data from a data source to display controls—i.e., buttons—on a graphical user interface. The list manager receives input from the GUI and processes the input with data from the data source. For example, if the list manager receives input to scroll up, the list manager determines which data should be displayed in a list after it is scrolled up and provides the appropriate data for display.
- As previously noted, the list manager is used in applications that utilize a graphical user interface that includes lists. However, the list manager does not provide any visual quality to the GUI. Therefore, a list manager application may be written that uses a GUI without actually defining the appearance of the GUI. Multiple other applications written to define the GUI may be used in conjunction with the list manager application to provide multiple interactive experiences that utilize the same list manager application.
- A more complete understanding of exemplary methods and arrangements of the present invention may be had by reference to the following detailed description when taken in conjunction with the accompanying drawings wherein:
- FIG. 1a is an illustration of a display list.
- FIG. 1b is an illustration of a display list.
- FIG. 1c is an illustration of a display list.
- FIG. 2a is a block diagram of a computer system conforming to the invention described herein.
- FIG. 2b is a block diagram of a list manager and related components.
- FIG. 3 is a flow diagram depicting a methodological implementation of a list manager in accordance with the present invention.
- FIG. 4 is a diagram of an exemplary system on which the present invention may be implemented.
- This invention concerns a computer operating system that runs applications that provide a graphical user interface (GUI) that includes display lists. The invention relates to creating and managing the display lists. An application using the present invention may be used in conjunction with other applications to present various and unique visual presentations that handle list data similarly. The present invention may at times be described according to an automobile computer implementation. However, it is noted that the features described herein may be applied to any computer system or application that utilizes display lists in a graphical user interface.
- Computer-Executable Instructions/Modules
- The invention is illustrated in the drawings as being implemented in a suitable computing environment. Although not required, the invention is described in the general context of computer-executable instructions, such as program modules, to be executed by a computing device, such as a personal computer or a hand-held computer or electronic device. Generally, program modules include routines, programs, objects, components, data 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 other computer system configurations, including multi-processor systems, microprocessor-based or programmable consumer electronics, network PCs, minicomputers, mainframe 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 communications network. In a distributed computing environment, program modules may be located in both local and remote memory storage devices.
- Overview
- A list manager is described that provides a standard method of creating and managing display lists (“lists”). The list manager fills, scrolls, and notifies an application when a list item in a list has been selected. The list manager does not show any visible user interface, but pumps list item elements to a set of attached display controls, such as buttons, sliders, labels, meters, knobs, checkboxes, palettes etc.
- Information related to the invention described herein is described in U.S. patent application Ser. No. 09/603,846 by Richard St. Clair Bailey, entitled “Methods and Systems For Manipulating User Interface Controls” and assigned to MICROSOFT CORP.
- GUI Lists
- FIG. 1a is an illustration of a
display list 100 that is typical of a graphical user interface (GUI). Thedisplay list 100 includes severalselectable list items 102. In this example, there are fivelist items 102. However, it is noted that a list may have any practical number of list items, depending on the environment. Thelist items 102 are populated withlist elements 104 from a data list (not shown). Alist element 104 is content to fill a single list item. If a data list hasmore list elements 104 than there arelist items 102 in thedisplay list 100, an upscroll button 104 and adown scroll button 106 allow a user to scroll up or down, respectively, to re-populate thelist items 102 withappropriate list elements 104. - Most desktop computers and many embedded computers use display lists similar to the
display list 100 shown in FIG. 1a. As previously discussed, there are manufacturers that install embedded computers in the manufacturer's products, such as automobile manufacturers that use embedded computers for navigation or sound systems. Many of these manufacturers do not want the familiar, ordinary-look provided with a display list similar to thedisplay list 100 shown. - For example, FIG. 1b is an illustration of a
display list 110 that is a little different in its look and feel. Thedisplay list 110 includeslist items 112 andlist elements 114 similar to thelist items 102 ofdisplay list 100. But thedisplay list 110 has an upscroll button 116 and adown scroll button 118 that are positioned differently than in FIG. 1a. The scroll upbutton 116 is located above thelist items 112 and the scroll downbutton 118 is located below thelist items 112. - This is a small but significant difference. By presenting the
scroll buttons display list 100 represents a standard layout), thedisplay list 110 may not operate properly with software applications that are written to work with the standard display list layout. The possibilities can be even more extreme. - FIG. 1c is an illustration of a
GUI 120 that includes adisplay list 122. Even though thedisplay list 122 includeslist items 124,list elements 126, an upscroll button 128 and adown scroll button 130 like thedisplay list 100 shown in FIG. 1a, thedisplay list 122 has a markedly different appearance. Thedisplay list 122 is a sweeping design wherein thelist items 124 are of differing sizes. (Adisplay area 132 is also shown as visible in a part of theGUI 120 that is not covered by the display list 122). - An application written to utilize a standard design list layout may not know how to create the
display list 122 and managelist elements 126 to be displayed in thedisplay list 122. As a result, a new and unique version of the application would have to be written to accommodate the use of such a display list. This is highly undesirable, given the large number of different systems on which a particular application may be—at least potentially—run. - The following discussion describes a solution to that problem: a control mechanism is provided that allows automated layout of display lists while still allowing an original equipment manufacturer (OEM) to utilize a unique visual layout for displaying lists.
- This type of functionality could be useful in the following, and other, scenarios.
- A street name list application can efficiently handle scrolling through a data list of a thousand street names and selecting one. To provide adequate performance, the application provides only those list elements necessary to populate a limited number of list items on a display.
- A photograph preview application can show a large photograph in the middle of a display and two smaller photographs on each of the left and right sides of the large photograph. Images are scrolled into and out of the large middle control similar to other more common controls.
- An adaptive graphic equalizer application can send a request to a system asking how many graphic equalizer bands are supported. The graphic equalizer bands can then be displayed in a scrolling list. In this case, the list items are not buttons, but sliders. In fact, any type of control can be used as the list items in a display list.
- Having a list manager control to create and manage virtually any type of display lists saves application developers from having to create a unique version of the application for any use other than a standard use.
- Exemplary List Manager
- FIG. 2a is a block diagram of a
computer system 200 conforming to the invention described herein. Thecomputer system 200 includes aprocessor 202, adisplay 204 andmemory 206. Thecomputer system 200 also includes an input/output (I/O)unit 208 that may include hardware, software or a combination of the two. The I/O unit 208 allows a user to input data into thecomputer system 200, and allows thecomputer system 200 to output data to a user. The I/O unit 208 may comprise more than one component, such as a key pad, a microphone, a speaker, and the like (not shown). - The
computer system 200 also includeshardware 210 andfirmware 212. Thehardware 212 includes any system-specific hardware that may be necessary for thecomputer system 200 to function in a particular manner. Thefirmware 212 is software that is executable on theprocessor 202, the software enabling thehardware 212 to operate properly on thecomputer system 200. - The
memory 206 of thecomputer system 200 stores anoperating system 214 that includes, among other modules (not shown) that are typically found in an operating system, alist manager control 216 that may be copied into applications to provide list manager functionality to the application. Thememory 206 also stores asoftware application 218 that utilizes thelist manager control 216. - The
application 218 includes alist manager 220 created with thelist manager control 216. Although in thelist manager 220 is described as being created with thelist manager control 216, it is noted that thelist manager 220 may be created in a variety of ways. For example, thelist manager 220 could be created by a COM (Common Object Model) object or a by initializing a class. - A
data source 222 is stored in thememory 206 and provides a data resource for thelist manager 220 so that thelist manager 220 can populate thedisplay list 230. Although thedata source 222 is shown stored in thememory 206, thedata source 222 may be located on one or more computer-readable media or may be provided live over a network such as the Internet. Thelist manager 220 also receives input from a scrollingsource 224 that tells thelist manager 220 when a scrolling event occurs. OEM graphicaluser interface software 226 is stored in thememory 206 and is configured to provide aGUI 228 on thedisplay 204. As part of theGUI 228,display list 230 is configured to display one or more selectable display controls 232 to a user. The display controls 232 make up thedisplay list 230 as described earlier, with eachdisplay control 232 displaying alist item 234 in thedisplay list 230. The display controls 232 shown on theGUI 228 are selectable by a user, such as by a user positioning a cursor over the display controls 232 and clicking. Although only one block is shown to represent the display controls 232 and one block is shown to represent thelist items 234, it should be understood that there may be multiple display controls 232 andmultiple list items 234, and that each control displays alist item 234. - The
list manager 220 also includescertain properties 250,methods 252 andevents 254. These will be discussed in greater detail, below. - FIG. 2b is a block diagram that illustrates in more detail some of the elements shown in FIG. 2a. The
display list 230 attaches itself to thelist manager 220 and provides information to thelist manager 220 about thelist items 234 included in thedisplay list 230. Thedisplay list 230 also provides events to thelist manager 220. Thelist manager 220 provides a pointer to thedata source 222 to set up a link between thedata source 222 and thedisplay list 230. The scrollingsource 224 indicates to thelist manager 220 when to scroll, how many items to scroll, and which direction to scroll thedisplay list 230. The list manager calculates what data is required from thedata source 222. Thedata source 222 then provides this data to thedisplay list 230. - Use of the
list manager control 216 and components related to it will be discussed in greater detail below. - Scrolling Behavior
- There are six core scrolling events that are supported by the list manager220: First Item, Last Item, Previous Item, Next Item, Previous Page and Next Page. The following examples assume there are five
list items 234 and twenty possible list elements in thedata source 222 that may be displayed in the fivelist items 234. - The First Item scrolling event clears any
current list items 234 and fills the fivelist items 234 with the first five list elements. - Example:
- displayed list elements prior to scroll=4, 5, 6, 7, 8
- displayed list elements after scroll=1, 2, 3, 4, 5
- The Last Item scrolling event clears any
current list items 234 and fills the fivelist items 234 with the last five list elements. - Example:
- displayed list elements prior to scroll=4, 5, 6, 7, 8
- displayed list elements after scroll=16, 17, 18, 19, 20
- The Previous Item scrolling event shows one new list element (the previous list element) and the following four list elements.
- Example:
- displayed list elements prior to scroll=4, 5, 6, 7, 8
- displayed list elements after scroll=3, 4, 5, 6, 7
- The Next Item scrolling event shows one new list element (the next list element) and the previous four list elements.
- Example:
- displayed list elements prior to scroll=4, 5, 6, 7, 8
- displayed list elements after scroll=5, 6, 7, 8, 9
- The Previous Page scrolling event clears any
current list items 234 and shows five new list elements—the five list elements before thecurrent list items 234. If there are not enough list elements to fill an entirely new page, the scrolling action taken is similar to a First Page scrolling event. - Example:
- displayed list elements prior to scroll=4, 5, 6, 7, 8
- displayed list elements after scroll=1, 2, 3, 4, 5
- The Next Page scrolling event clears any
current list items 234 and shows five new list elements—the five list elements after the current list elements. If there are not enough list elements to fill an entirely new page, the scrolling action taken is similar to a Last Page scrolling event. - Example:
- displayed list elements prior to scroll=4, 5, 6, 7, 8
- displayed list elements after scroll=9, 10, 11, 12, 13
- It is noted that although the
list manager 220 knows that there are fivelist items 234, thedata source 222 does not have to be aware of this fact. This is because thelist manager 220 is linked to the display controls 232. - Methodological Implementation: List Manager
- FIG. 3 is a flow diagram depicting a methodological implementation of a list manager in accordance with the present invention. At
block 300, the display controls 232 on thegraphical user interface 228 link to thelist manager 220. Thelist manager 220 then links to thedata source 222 that will be used to provide data to the display controls 232 (block 302) and provides a pointer to thedata source 222 that references the display controls 232. This allows thedata source 222 to provide data directly to the display controls 232. It is noted that theGUI 228 is a separate process from theapplication 218. As a result, theGUI 228 may change but still operate with thelist manager 220. Therefore, different GUIs will operate with thelist manager 220 and will have a similar look and feel. - At
block 304, thelist manager 220 monitors for scrolling events that occur on theGUI 228. Even though theGUI 228 is separate from thelist manager 220, thelist manager 220 is informed of scrolling events by virtue of the linkage between thelist manager 220 and the display controls 232 on theGUI 228. - As long as no scrolling event is received (“No” branch, block306), the
list manager 220 continues to monitor for scrolling events. If a scrolling event is detected (“Yes” branch, block 306), then the list manager receives the scrolling event atblock 308. - The
list manager 220 calculates updates that should be made to thedisplay list 230 in accordance with the scrolling event (block 310). It then requests that thedisplay source 222 update data for thedisplay items 234 atblock 312. Thedata source 222 provides the appropriate data for the list positions requested by thelist manager 220. - List Manager: Properties, Methods and Events
- The following discussion provides more detail to the function of the
list manager 220 by describing theproperties 250,methods 252 andevents 254 utilized by thelist manager 220. The properties, methods and events are exemplary only. It is noted that the properties may be implemented as methods or events. Similarly, methods may be implemented as properties or events, and events may be implemented as properties or methods. - In the discussion that follows, implementations specific to one or more versions of the WINDOWS family of operating system by MICROSOFT CORP. may be described. This does not imply that the present invention is limited to a WINDOWS operating system. The present invention, including the list manager and its properties, methods, events and style class settings may be implemented with any operating system that supports the functions described below. The properties, methods and events described are not necessarily described in any relevant order.
- A list manager control is instantiated within the application. At this time, the list manager properties are set to enable the
list manager 220 and any necessary key assignments (such as for scrolling keys) are made. - Since the
list manager 220 does not take up any visible screen area, visual controls must be attached to thelist manager 220. The first step to accomplish this is to call the Attach Item Control method to attach eachdisplay control 232 to thelist manager 220 and give it a usage identifier. Thelist manager 220 is configured to trap notifications from these attached controls and generate list notifications. - Scrolling controls are attached by calling an Attach Scroll Control method, which tells the
list manager 220 how to scroll the list when this control is actuated. Scrolling occurs in a direction and by a scroll interval. The scroll interval page means to scroll by the number of list item controls. - The
list manager 220 may be informed to scroll as follows:Command Direction Interval Scroll First Item Backward List End Scroll Last Item Forward List End Scroll Prev Page Backward Page Scroll Next Page Forward Page Scroll Prev Item Backward Item Scroll Next Item Forward Item - To put list elements into the
list manager 220, thedata source 222 must be linked to thelist manager 220. An interface containing the list manager events requests thedata source 222 to fill thelist items 234 with list element data. Thelist manager 220 requests that controls attached as a result of calling AttachItemControl method be populated by passing a reference to the controls to the data source within the event. - In addition, the interface includes a Refresh Content method and a Scroll method. The Refresh Content method erases the content in the list and requests it fresh from the
data source 222 beginning with a provided parameter (Starting Element). The Scroll method scrolls thedisplay list 228 by a provided parameter (Items To Scroll). - When used in conjunction with AttachScrollControl, referenced above, the list manager scrolls the list by a fixed amount set when the scroll control was attached. The
list manager 220 also can request keyboard input to go directly to itself. When this key input is received, thelist manager 220 calls an AutoScroll method on the attached style class and this method determines the appropriate scroll action. The method then affects this action by calling the Scroll method on thelist manager 220 to scroll thedisplay list 230. - Also with regard to auto scrolling, the
list manager 220 makes no presumptions about the orientation and visual interaction model of the layout of thedisplay list 230, thelist manager 220 must be configured as to what events should result in auto scrolling. - The
list manager 220 is configured to fire several events as needed. An Item Clicked event is sent when a list item is clicked. A Provide Content event is used to request data from thedata source 222. The Provide Content event is fired when thelist manager 220 needs data to fill alist item 234. - A Scroll Content event is used to request the
data source 222 to copy content from one control to another. Thelist manager 220 sends multiple events to scroll—one event for eachvisible list item 234. - A Scroll Changed event is fired to indicate that it is time to update the scrolling indicators. This event is sent whenever the list manager has finished a scrolling event. This gives the application218 a chance to update the user interface, for example, to disable or hide scroll indicators.
- The first parameter is true when there are additional list items toward the top of the list. The second parameter is true when there are additional list items toward the bottom of the list.
- Some interfaces include control groupings that are mutually exclusive, e.g., Radio Buttons groups in which only one of the radio buttons are set at a time and setting one button within the group will unset the other buttons. This scenario is enabled by the List Manager forwarding all events it receives from the display list items on to the
data source 222. When thelist manager 220 forwards these events it adds two additional pieces of information: a reference to the control that sent the event and a unique identifier specifying which data element that particular control is currently displaying. - The
list manager 220 extends all display list controls by wrapping them and adding an additional property that it uses to store this unique identifier. Thedata source 222 fills in this identifier and has complete flexibility as to the numbering scheme used to ensure the uniqueness of these identifiers. This identifier does not need to be unique to the entire data set, however, it must be unique while it is visible within a display list item. This enables applications to request more detail about a data element from thedata source 222 beyond that which is currently displayed within the display list items. - This provides the additional feature that the
application 218 can listen to events from thelist manager 220 alone, instead of listening to events from the individual display list items. For example, a contacts application could listen to thelist manager 220 for item focused events and fill in a detail pane by requesting more information from thedata source 222 regarding the data element that just got focused. - Exemplary Computer Environment
- The various components and functionality described herein are implemented with a number of individual computers. FIG. 5 shows components of typical example of such a computer, referred by to reference numeral500. The components shown in FIG. 5 are only examples, and are not intended to suggest any limitation as to the scope of the functionality of the invention; the invention is not necessarily dependent on the features shown in FIG. 5.
- Generally, various different general purpose or special purpose computing system configurations can be used. Examples of well known computing systems, environments, and/or configurations that may be suitable for use with the invention include, but are not limited to, personal computers, server computers, hand-held or laptop devices, multiprocessor systems, microprocessor-based systems, set top boxes, programmable consumer electronics, network PCs, minicomputers, mainframe computers, distributed computing environments that include any of the above systems or devices, and the like.
- The functionality of the computers is embodied in many cases by computer-executable instructions, such as program modules, that are executed by the computers. Generally, program modules include routines, programs, objects, components, data structures, etc. that perform particular tasks or implement particular abstract data types. Tasks might also be performed by remote processing devices that are linked through a communications network. In a distributed computing environment, program modules may be located in both local and remote computer storage media.
- The instructions and/or program modules are stored at different times in the various computer-readable media that are either part of the computer or that can be read by the computer. Programs are typically distributed, for example, on floppy disks, CD-ROMs, DVD, or some form of communication media such as a modulated signal. From there, they are installed or loaded into the secondary memory of a computer. At execution, they are loaded at least partially into the computer's primary electronic memory. The invention described herein includes these and other various types of computer-readable media when such media contain instructions programs, and/or modules for implementing the steps described below in conjunction with a microprocessor or other data processors. The invention also includes the computer itself when programmed according to the methods and techniques described below.
- For purposes of illustration, programs and other executable program components such as the operating system are illustrated herein as discrete blocks, although it is recognized that such programs and components reside at various times in different storage components of the computer, and are executed by the data processor(s) of the computer.
- With reference to FIG. 5, the components of computer500 may include, but are not limited to, a processing unit 520, a system memory 530, and a system bus 521 that couples various system components including the system memory to the processing unit 520. The system bus 521 may be any of several types of bus structures including a memory bus or memory controller, a peripheral bus, and a local bus using any of a variety of bus architectures. By way of example, and not limitation, such architectures include Industry Standard Architecture (ISA) bus, Micro Channel Architecture (MCA) bus, Enhanced ISA (EISA) bus, Video Electronics Standards Association (VESA) local bus, and Peripheral Component Interconnect (PCI) bus also known as the Mezzanine bus.
- Computer500 typically includes a variety of computer-readable media. Computer-readable media can be any available media that can be accessed by computer 500 and includes both volatile and nonvolatile media, removable and non-removable media. By way of example, and not limitation, computer-readable media may comprise computer storage media and communication media. “Computer storage media” includes both volatile and nonvolatile, removable and non-removable media implemented in any method or technology for storage of information such as computer-readable instructions, data structures, program modules, or other data. Computer storage media includes, but is not limited to, RAM, ROM, EEPROM, flash memory or other memory technology, CD-ROM, digital versatile disks (DVD) or other optical disk storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other medium which can be used to store the desired information and which can be accessed by computer 510. Communication media typically embodies computer-readable instructions, data structures, program modules or other data in a modulated data signal such as a carrier wave or other transport mechanism and includes any information delivery media. The term “modulated data signal” means a signal that has one or more if its characteristics set or changed in such a manner as to encode information in the signal. By way of example, and not limitation, communication media includes wired media such as a wired network or direct-wired connection and wireless media such as acoustic, RF, infrared and other wireless media. Combinations of any of the above should also be included within the scope of computer readable media.
- The system memory530 includes computer storage media in the form of volatile and/or nonvolatile memory such as read only memory (ROM) 531 and random access memory (RAM) 532. A basic input/output system 533 (BIOS), containing the basic routines that help to transfer information between elements within computer 500, such as during start-up, is typically stored in ROM 531. RAM 532 typically contains data and/or program modules that are immediately accessible to and/or presently being operated on by processing unit 520. By way of example, and not limitation, FIG. 5 illustrates operating system 534, application programs 535, other program modules 536, and program data 537.
- The computer500 may also include other removable/non-removable, volatile/nonvolatile computer storage media. By way of example only, FIG. 5 illustrates a hard disk drive 541 that reads from or writes to non-removable, nonvolatile magnetic media, a magnetic disk drive 551 that reads from or writes to a removable, nonvolatile magnetic disk 552, and an optical disk drive 555 that reads from or writes to a removable, nonvolatile optical disk 556 such as a CD ROM or other optical media. Other removable/non-removable, volatile/nonvolatile computer storage media that can be used in the exemplary operating environment include, but are not limited to, magnetic tape cassettes, flash memory cards, digital versatile disks, digital video tape, solid state RAM, solid state ROM, and the like. The hard disk drive 541 is typically connected to the system bus 521 through a non-removable memory interface such as interface 540, and magnetic disk drive 551 and optical disk drive 555 are typically connected to the system bus 521 by a removable memory interface such as interface 550.
- The drives and their associated computer storage media discussed above and illustrated in FIG. 5 provide storage of computer-readable instructions, data structures, program modules, and other data for computer500. In FIG. 5, for example, hard disk drive 541 is illustrated as storing operating system 544, application programs 545, other program modules 546, and program data 547. Note that these components can either be the same as or different from operating system 534, application programs 535, other program modules 536, and program data 537. Operating system 544, application programs 545, other program modules 546, and program data 547 are given different numbers here to illustrate that, at a minimum, they are different copies. A user may enter commands and information into the computer 500 through input devices such as a keyboard 562 and pointing device 561, commonly referred to as a mouse, trackball, or touch pad. Other input devices (not shown) may include a microphone, joystick, game pad, satellite dish, scanner, or the like. These and other input devices are often connected to the processing unit 520 through a user input interface 560 that is coupled to the system bus, but may be connected by other interface and bus structures, such as a parallel port, game port, or a universal serial bus (USB). A monitor 591 or other type of display device is also connected to the system bus 521 via an interface, such as a video interface 590. In addition to the monitor, computers may also include other peripheral output devices such as speakers 597 and printer 596, which may be connected through an output peripheral interface 595.
- The computer may operate in a networked environment using logical connections to one or more remote computers, such as a remote computer580. The remote computer 580 may be a personal computer, a server, a router, a network PC, a peer device or other common network node, and typically includes many or all of the elements described above relative to computer 500, although only a memory storage device 581 has been illustrated in FIG. 5. The logical connections depicted in FIG. 5 include a local area network (LAN) 571 and a wide area network (WAN) 573, but may also include other networks. Such networking environments are commonplace in offices, enterprise-wide computer networks, intranets, and the Internet.
- When used in a LAN networking environment, the computer500 is connected to the LAN 571 through a network interface or adapter 570. When used in a WAN networking environment, the computer 500 typically includes a modem 572 or other means for establishing communications over the WAN 573, such as the Internet. The modem 572, which may be internal or external, may be connected to the system bus 521 via the user input interface 560, or other appropriate mechanism. In a networked environment, program modules depicted relative to the computer 500, or portions thereof, may be stored in the remote memory storage device. By way of example, and not limitation, FIG. 5 illustrates remote application programs 585 as residing on memory device 581. It will be appreciated that the network connections shown are exemplary and other means of establishing a communications link between the computers may be used.
- The systems and methods as described, thus provide a way to provide a standardized way to create common user interface mechanisms, such as display lists, while affording a product manufacturer to alter the visual appearance of the user interface. As a result, a single application can be utilized on multiple platforms to provide similar user experiences.
- Although details of specific implementations and embodiments are described above, such details are intended to satisfy statutory disclosure obligations rather than to limit the scope of the following claims. Thus, the invention as defined by the claims is not limited to the specific features described above. Rather, the invention is claimed in any of its forms or modifications that fall within the proper scope of the appended claims, appropriately interpreted in accordance with the doctrine of equivalents.
Claims (36)
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/072,396 US7603627B2 (en) | 2002-02-05 | 2002-02-05 | Systems and methods for creating and managing graphical user interface lists |
US11/031,589 US7752560B2 (en) | 2002-02-05 | 2005-01-07 | Systems and methods for creating and managing graphical user interface lists |
US11/062,526 US7590943B2 (en) | 2002-02-05 | 2005-02-22 | Systems and methods for creating and managing graphical user interface lists |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/072,396 US7603627B2 (en) | 2002-02-05 | 2002-02-05 | Systems and methods for creating and managing graphical user interface lists |
Related Child Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US11/031,589 Continuation US7752560B2 (en) | 2002-02-05 | 2005-01-07 | Systems and methods for creating and managing graphical user interface lists |
US11/062,526 Continuation US7590943B2 (en) | 2002-02-05 | 2005-02-22 | Systems and methods for creating and managing graphical user interface lists |
Publications (2)
Publication Number | Publication Date |
---|---|
US20030146941A1 true US20030146941A1 (en) | 2003-08-07 |
US7603627B2 US7603627B2 (en) | 2009-10-13 |
Family
ID=27659473
Family Applications (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US10/072,396 Expired - Lifetime US7603627B2 (en) | 2002-02-05 | 2002-02-05 | Systems and methods for creating and managing graphical user interface lists |
US11/031,589 Expired - Fee Related US7752560B2 (en) | 2002-02-05 | 2005-01-07 | Systems and methods for creating and managing graphical user interface lists |
US11/062,526 Expired - Lifetime US7590943B2 (en) | 2002-02-05 | 2005-02-22 | Systems and methods for creating and managing graphical user interface lists |
Family Applications After (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US11/031,589 Expired - Fee Related US7752560B2 (en) | 2002-02-05 | 2005-01-07 | Systems and methods for creating and managing graphical user interface lists |
US11/062,526 Expired - Lifetime US7590943B2 (en) | 2002-02-05 | 2005-02-22 | Systems and methods for creating and managing graphical user interface lists |
Country Status (1)
Country | Link |
---|---|
US (3) | US7603627B2 (en) |
Cited By (32)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050144571A1 (en) * | 2003-12-29 | 2005-06-30 | Loverin Darrell J. | System and method for secondary selection highlighting |
US20050144569A1 (en) * | 2003-12-29 | 2005-06-30 | Wilcox Eric M. | System and method for scrolling among categories in a list of documents |
US20050144570A1 (en) * | 2003-12-29 | 2005-06-30 | Loverin Darrell J. | System and method for color coding list items |
US20050144572A1 (en) * | 2003-12-29 | 2005-06-30 | Wattenberg Martin M. | System and method for providing a category separator in a list of documents |
US20070016652A1 (en) * | 2005-03-29 | 2007-01-18 | Citu Gheorghe A | Dynamic image display |
US20070234232A1 (en) * | 2006-03-29 | 2007-10-04 | Gheorghe Adrian Citu | Dynamic image display |
FR2950712A1 (en) * | 2009-09-28 | 2011-04-01 | Thomson Licensing | PAGES NAVIGATION METHOD IN AN ORDERED LIST OF DOCUMENTS, AND APPARATUS USING THE METHOD |
US20110138290A1 (en) * | 2009-12-04 | 2011-06-09 | Samsung Electronics Co., Ltd. | Method and apparatus for providing remote user interface list |
US20120072863A1 (en) * | 2010-09-21 | 2012-03-22 | Nintendo Co., Ltd. | Computer-readable storage medium, display control apparatus, display control system, and display control method |
US20130069899A1 (en) * | 2008-03-04 | 2013-03-21 | Jason Clay Beaver | Touch Event Model |
US8552999B2 (en) | 2010-06-14 | 2013-10-08 | Apple Inc. | Control selection approximation |
US8566044B2 (en) | 2009-03-16 | 2013-10-22 | Apple Inc. | Event recognition |
US8566045B2 (en) | 2009-03-16 | 2013-10-22 | Apple Inc. | Event recognition |
US8661363B2 (en) | 2007-01-07 | 2014-02-25 | Apple Inc. | Application programming interfaces for scrolling operations |
US8682602B2 (en) | 2009-03-16 | 2014-03-25 | Apple Inc. | Event recognition |
US8717305B2 (en) | 2008-03-04 | 2014-05-06 | Apple Inc. | Touch event model for web pages |
US8723822B2 (en) | 2008-03-04 | 2014-05-13 | Apple Inc. | Touch event model programming interface |
US9298363B2 (en) | 2011-04-11 | 2016-03-29 | Apple Inc. | Region activation for touch sensitive surface |
US9311112B2 (en) | 2009-03-16 | 2016-04-12 | Apple Inc. | Event recognition |
US9529519B2 (en) | 2007-01-07 | 2016-12-27 | Apple Inc. | Application programming interfaces for gesture operations |
US9684521B2 (en) | 2010-01-26 | 2017-06-20 | Apple Inc. | Systems having discrete and continuous gesture recognizers |
US9733716B2 (en) | 2013-06-09 | 2017-08-15 | Apple Inc. | Proxy gesture recognizer |
US9842113B1 (en) | 2013-08-27 | 2017-12-12 | Google Inc. | Context-based file selection |
US9870554B1 (en) | 2012-10-23 | 2018-01-16 | Google Inc. | Managing documents based on a user's calendar |
US9973462B1 (en) | 2013-10-21 | 2018-05-15 | Google Llc | Methods for generating message notifications |
US10140198B1 (en) | 2012-10-30 | 2018-11-27 | Google Llc | Networked desktop environment |
US10181016B2 (en) * | 2013-06-03 | 2019-01-15 | Ricoh Company, Ltd. | Information processing device, information processing method, and program |
CN111026377A (en) * | 2019-11-21 | 2020-04-17 | 中国航空工业集团公司西安航空计算技术研究所 | Calling display list pre-decoding method based on finite-state machine |
US10963142B2 (en) | 2007-01-07 | 2021-03-30 | Apple Inc. | Application programming interfaces for scrolling |
CN112711365A (en) * | 2020-12-30 | 2021-04-27 | 航天信息股份有限公司 | Method and system for passing list control checking event |
US11560058B2 (en) * | 2020-08-31 | 2023-01-24 | Toyota Jidosha Kabushiki Kaisha | Vehicle display control device, vehicle display control method, computer-readable storage medium, and vehicle display system for displaying action schedule item |
US11954322B2 (en) | 2022-09-15 | 2024-04-09 | Apple Inc. | Application programming interface for gesture operations |
Families Citing this family (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7603627B2 (en) * | 2002-02-05 | 2009-10-13 | Microsoft Corporation | Systems and methods for creating and managing graphical user interface lists |
JP4043965B2 (en) * | 2003-02-05 | 2008-02-06 | カルソニックカンセイ株式会社 | List display device |
US20070136268A1 (en) * | 2005-12-09 | 2007-06-14 | Microsoft Corporation | Just in time loading list |
US7937349B2 (en) * | 2006-11-09 | 2011-05-03 | Pucher Max J | Method for training a system to specifically react on a specific input |
US20090140977A1 (en) * | 2007-11-30 | 2009-06-04 | Microsoft Corporation | Common User Interface Structure |
CN101911004B (en) * | 2008-01-09 | 2013-10-30 | 惠普开发有限公司 | BIOS graphical engine providing uniform look and feel |
JP5357464B2 (en) * | 2008-08-26 | 2013-12-04 | アルパイン株式会社 | Menu display device and menu display method |
US20110202871A1 (en) * | 2010-02-17 | 2011-08-18 | Oracle International Corporation | Method and system for scrolling through a graphical user interface list control |
KR101719989B1 (en) * | 2010-10-14 | 2017-03-27 | 엘지전자 주식회사 | An electronic device and a interface method for configurating menu using the same |
US10026058B2 (en) | 2010-10-29 | 2018-07-17 | Microsoft Technology Licensing, Llc | Enterprise resource planning oriented context-aware environment |
US20120110508A1 (en) * | 2010-10-29 | 2012-05-03 | Microsoft Corporation | Enterprise resource planning oriented context-aware user interface |
US9348498B2 (en) | 2011-09-12 | 2016-05-24 | Microsoft Technology Licensing, Llc | Wrapped content interaction |
US20130067393A1 (en) * | 2011-09-12 | 2013-03-14 | Ryan J. Demopoulos | Interaction with Lists |
US8879703B1 (en) | 2012-05-31 | 2014-11-04 | Tal Lavian | System method and device for providing tailored services when call is on-hold |
US8819587B1 (en) | 2012-10-30 | 2014-08-26 | Google Inc. | Methods of managing items in a shared workspace |
CN105393204B (en) * | 2013-05-29 | 2019-03-19 | 索尼公司 | Information processing equipment updates information notice method and program |
US20220156760A1 (en) * | 2020-11-16 | 2022-05-19 | Salesforce.Com, Inc. | Configuring choice components of an application or web page using a database system |
Citations (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4772882A (en) * | 1986-07-18 | 1988-09-20 | Commodore-Amiga, Inc. | Cursor controller user interface system |
US5001697A (en) * | 1988-02-10 | 1991-03-19 | Ibm Corp. | Method to automatically vary displayed object size with variations in window size |
US5748974A (en) * | 1994-12-13 | 1998-05-05 | International Business Machines Corporation | Multimodal natural language interface for cross-application tasks |
US5796401A (en) * | 1996-08-09 | 1998-08-18 | Winer; Peter W. | System for designing dynamic layouts adaptable to various display screen sizes and resolutions |
US5838969A (en) * | 1996-05-10 | 1998-11-17 | Apple Computer, Inc. | System and method for collecting and dispatching selected events in a computer application program |
US5854629A (en) * | 1996-12-31 | 1998-12-29 | International Business Machine Corporation | Enhanced scrolling technique for context menus in graphical user interfaces |
US6065041A (en) * | 1997-09-18 | 2000-05-16 | Electronics For Imaging, Inc. | Interface code architecture |
US6081816A (en) * | 1998-03-18 | 2000-06-27 | Microsoft Corporation | Method for placing text around polygons and other constraints |
US6125347A (en) * | 1993-09-29 | 2000-09-26 | L&H Applications Usa, Inc. | System for controlling multiple user application programs by spoken input |
US6192339B1 (en) * | 1998-11-04 | 2001-02-20 | Intel Corporation | Mechanism for managing multiple speech applications |
US6233559B1 (en) * | 1998-04-01 | 2001-05-15 | Motorola, Inc. | Speech control of multiple applications using applets |
US6289395B1 (en) * | 1997-11-24 | 2001-09-11 | International Business Machines Corporation | Generic Java-based event processor for scripting Java beans |
US20020024539A1 (en) * | 2000-05-08 | 2002-02-28 | Columbia University | System and method for content-specific graphical user interfaces |
US20020055928A1 (en) * | 2000-06-21 | 2002-05-09 | Imedium, Inc. | Methods and apparatus employing multi-tier de-coupled architecture for enabling visual interactive display |
US6463413B1 (en) * | 1999-04-20 | 2002-10-08 | Matsushita Electrical Industrial Co., Ltd. | Speech recognition training for small hardware devices |
US6469711B2 (en) * | 1996-07-29 | 2002-10-22 | Avid Technology, Inc. | Graphical user interface for a video editing system |
US6507817B1 (en) * | 1999-09-03 | 2003-01-14 | Cisco Technology, Inc. | Voice IP approval system using voice-enabled web based application server |
US6701383B1 (en) * | 1999-06-22 | 2004-03-02 | Interactive Video Technologies, Inc. | Cross-platform framework-independent synchronization abstraction layer |
US20040087304A1 (en) * | 2002-10-21 | 2004-05-06 | Buddhikot Milind M. | Integrated web cache |
US6965770B2 (en) * | 2001-09-13 | 2005-11-15 | Nokia Corporation | Dynamic content delivery responsive to user requests |
US6993508B1 (en) * | 2000-12-29 | 2006-01-31 | Novell, Inc. | Method and mechanism for vending digital content |
US7020848B2 (en) * | 2000-12-20 | 2006-03-28 | Eastman Kodak Company | Comprehensive, multi-dimensional graphical user interface using picture metadata for navigating and retrieving pictures in a picture database |
US7073130B2 (en) * | 2001-01-31 | 2006-07-04 | Microsoft Corporation | Methods and systems for creating skins |
US7178025B2 (en) * | 1998-02-13 | 2007-02-13 | Tec Sec, Inc. | Access system utilizing multiple factor identification and authentication |
US20070043946A1 (en) * | 2005-08-18 | 2007-02-22 | Microsoft Corporation | Key confirmed authenticated key exchange with derived ephemeral keys |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5746974A (en) * | 1988-11-03 | 1998-05-05 | Igen International, Inc. | Apparatus for improved luminescence assays using particle concentration, electrochemical generation of chemiluminescence and chemiluminescence detection |
US5680595A (en) * | 1995-06-07 | 1997-10-21 | Micron Technology, Inc. | Programmable data port clocking system for clocking a plurality of data ports with a plurality of clocking signals in an asynchronous transfer mode system |
US5842165A (en) | 1996-02-29 | 1998-11-24 | Nynex Science & Technology, Inc. | Methods and apparatus for generating and using garbage models for speaker dependent speech recognition purposes |
US5797123A (en) | 1996-10-01 | 1998-08-18 | Lucent Technologies Inc. | Method of key-phase detection and verification for flexible speech understanding |
US6456974B1 (en) | 1997-01-06 | 2002-09-24 | Texas Instruments Incorporated | System and method for adding speech recognition capabilities to java |
US6310629B1 (en) | 1997-12-19 | 2001-10-30 | Texas Instruments Incorporated | System and method for advanced interfaces for virtual environments |
US6061653A (en) | 1998-07-14 | 2000-05-09 | Alcatel Usa Sourcing, L.P. | Speech recognition system using shared speech models for multiple recognition processes |
US20020095290A1 (en) | 1999-02-05 | 2002-07-18 | Jonathan Kahn | Speech recognition program mapping tool to align an audio file to verbatim text |
US6456305B1 (en) | 1999-03-18 | 2002-09-24 | Microsoft Corporation | Method and system for automatically fitting a graphical display of objects to the dimensions of a display window |
US6434529B1 (en) | 2000-02-16 | 2002-08-13 | Sun Microsystems, Inc. | System and method for referencing object instances and invoking methods on those object instances from within a speech recognition grammar |
US20030050777A1 (en) | 2001-09-07 | 2003-03-13 | Walker William Donald | System and method for automatic transcription of conversations |
US6785654B2 (en) | 2001-11-30 | 2004-08-31 | Dictaphone Corporation | Distributed speech recognition system with speech recognition engines offering multiple functionalities |
US7603627B2 (en) | 2002-02-05 | 2009-10-13 | Microsoft Corporation | Systems and methods for creating and managing graphical user interface lists |
-
2002
- 2002-02-05 US US10/072,396 patent/US7603627B2/en not_active Expired - Lifetime
-
2005
- 2005-01-07 US US11/031,589 patent/US7752560B2/en not_active Expired - Fee Related
- 2005-02-22 US US11/062,526 patent/US7590943B2/en not_active Expired - Lifetime
Patent Citations (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4772882A (en) * | 1986-07-18 | 1988-09-20 | Commodore-Amiga, Inc. | Cursor controller user interface system |
US5001697A (en) * | 1988-02-10 | 1991-03-19 | Ibm Corp. | Method to automatically vary displayed object size with variations in window size |
US6125347A (en) * | 1993-09-29 | 2000-09-26 | L&H Applications Usa, Inc. | System for controlling multiple user application programs by spoken input |
US5748974A (en) * | 1994-12-13 | 1998-05-05 | International Business Machines Corporation | Multimodal natural language interface for cross-application tasks |
US5838969A (en) * | 1996-05-10 | 1998-11-17 | Apple Computer, Inc. | System and method for collecting and dispatching selected events in a computer application program |
US6469711B2 (en) * | 1996-07-29 | 2002-10-22 | Avid Technology, Inc. | Graphical user interface for a video editing system |
US5796401A (en) * | 1996-08-09 | 1998-08-18 | Winer; Peter W. | System for designing dynamic layouts adaptable to various display screen sizes and resolutions |
US5854629A (en) * | 1996-12-31 | 1998-12-29 | International Business Machine Corporation | Enhanced scrolling technique for context menus in graphical user interfaces |
US6065041A (en) * | 1997-09-18 | 2000-05-16 | Electronics For Imaging, Inc. | Interface code architecture |
US6289395B1 (en) * | 1997-11-24 | 2001-09-11 | International Business Machines Corporation | Generic Java-based event processor for scripting Java beans |
US7178025B2 (en) * | 1998-02-13 | 2007-02-13 | Tec Sec, Inc. | Access system utilizing multiple factor identification and authentication |
US6081816A (en) * | 1998-03-18 | 2000-06-27 | Microsoft Corporation | Method for placing text around polygons and other constraints |
US6233559B1 (en) * | 1998-04-01 | 2001-05-15 | Motorola, Inc. | Speech control of multiple applications using applets |
US6192339B1 (en) * | 1998-11-04 | 2001-02-20 | Intel Corporation | Mechanism for managing multiple speech applications |
US6463413B1 (en) * | 1999-04-20 | 2002-10-08 | Matsushita Electrical Industrial Co., Ltd. | Speech recognition training for small hardware devices |
US6701383B1 (en) * | 1999-06-22 | 2004-03-02 | Interactive Video Technologies, Inc. | Cross-platform framework-independent synchronization abstraction layer |
US6507817B1 (en) * | 1999-09-03 | 2003-01-14 | Cisco Technology, Inc. | Voice IP approval system using voice-enabled web based application server |
US20020024539A1 (en) * | 2000-05-08 | 2002-02-28 | Columbia University | System and method for content-specific graphical user interfaces |
US20020055928A1 (en) * | 2000-06-21 | 2002-05-09 | Imedium, Inc. | Methods and apparatus employing multi-tier de-coupled architecture for enabling visual interactive display |
US7020848B2 (en) * | 2000-12-20 | 2006-03-28 | Eastman Kodak Company | Comprehensive, multi-dimensional graphical user interface using picture metadata for navigating and retrieving pictures in a picture database |
US6993508B1 (en) * | 2000-12-29 | 2006-01-31 | Novell, Inc. | Method and mechanism for vending digital content |
US7073130B2 (en) * | 2001-01-31 | 2006-07-04 | Microsoft Corporation | Methods and systems for creating skins |
US6965770B2 (en) * | 2001-09-13 | 2005-11-15 | Nokia Corporation | Dynamic content delivery responsive to user requests |
US20040087304A1 (en) * | 2002-10-21 | 2004-05-06 | Buddhikot Milind M. | Integrated web cache |
US20070043946A1 (en) * | 2005-08-18 | 2007-02-22 | Microsoft Corporation | Key confirmed authenticated key exchange with derived ephemeral keys |
Cited By (81)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8151214B2 (en) | 2003-12-29 | 2012-04-03 | International Business Machines Corporation | System and method for color coding list items |
US9015603B1 (en) | 2003-12-29 | 2015-04-21 | Google Inc. | Secondary selection highlighting of e-mail item listing |
US8875030B1 (en) | 2003-12-29 | 2014-10-28 | Google Inc. | Color coding and selection highlighting of e-mail item listing |
US20050144572A1 (en) * | 2003-12-29 | 2005-06-30 | Wattenberg Martin M. | System and method for providing a category separator in a list of documents |
US8732608B2 (en) | 2003-12-29 | 2014-05-20 | Google Inc. | System and method for scrolling among categories in a list of documents |
US20050144571A1 (en) * | 2003-12-29 | 2005-06-30 | Loverin Darrell J. | System and method for secondary selection highlighting |
US7421664B2 (en) * | 2003-12-29 | 2008-09-02 | International Business Machines Corporation | System and method for providing a category separator in a list of documents |
US20080270935A1 (en) * | 2003-12-29 | 2008-10-30 | International Business Machines Corporation (Ibm) | System for providing a category separation in a list of documents |
US7908566B2 (en) * | 2003-12-29 | 2011-03-15 | International Business Machines Corporation | System and method for scrolling among categories in a list of documents |
US7917867B2 (en) | 2003-12-29 | 2011-03-29 | International Business Machines Corporation | System for providing a category separator in a list of documents |
US20050144569A1 (en) * | 2003-12-29 | 2005-06-30 | Wilcox Eric M. | System and method for scrolling among categories in a list of documents |
US20110099510A1 (en) * | 2003-12-29 | 2011-04-28 | Ibm Corporation | System and method for scrolling among categories in a list of documents |
US8171426B2 (en) | 2003-12-29 | 2012-05-01 | International Business Machines Corporation | Method for secondary selection highlighting |
US20050144570A1 (en) * | 2003-12-29 | 2005-06-30 | Loverin Darrell J. | System and method for color coding list items |
US9262045B1 (en) * | 2005-03-29 | 2016-02-16 | Vendio Services, Inc. | Dynamic image display |
US20070016652A1 (en) * | 2005-03-29 | 2007-01-18 | Citu Gheorghe A | Dynamic image display |
US20070234232A1 (en) * | 2006-03-29 | 2007-10-04 | Gheorghe Adrian Citu | Dynamic image display |
US11449217B2 (en) | 2007-01-07 | 2022-09-20 | Apple Inc. | Application programming interfaces for gesture operations |
US9760272B2 (en) | 2007-01-07 | 2017-09-12 | Apple Inc. | Application programming interfaces for scrolling operations |
US10613741B2 (en) | 2007-01-07 | 2020-04-07 | Apple Inc. | Application programming interface for gesture operations |
US9448712B2 (en) | 2007-01-07 | 2016-09-20 | Apple Inc. | Application programming interfaces for scrolling operations |
US9529519B2 (en) | 2007-01-07 | 2016-12-27 | Apple Inc. | Application programming interfaces for gesture operations |
US10963142B2 (en) | 2007-01-07 | 2021-03-30 | Apple Inc. | Application programming interfaces for scrolling |
US9575648B2 (en) | 2007-01-07 | 2017-02-21 | Apple Inc. | Application programming interfaces for gesture operations |
US9665265B2 (en) | 2007-01-07 | 2017-05-30 | Apple Inc. | Application programming interfaces for gesture operations |
US8661363B2 (en) | 2007-01-07 | 2014-02-25 | Apple Inc. | Application programming interfaces for scrolling operations |
US10175876B2 (en) | 2007-01-07 | 2019-01-08 | Apple Inc. | Application programming interfaces for gesture operations |
US10817162B2 (en) | 2007-01-07 | 2020-10-27 | Apple Inc. | Application programming interfaces for scrolling operations |
US9037995B2 (en) | 2007-01-07 | 2015-05-19 | Apple Inc. | Application programming interfaces for scrolling operations |
US10481785B2 (en) | 2007-01-07 | 2019-11-19 | Apple Inc. | Application programming interfaces for scrolling operations |
US9639260B2 (en) | 2007-01-07 | 2017-05-02 | Apple Inc. | Application programming interfaces for gesture operations |
US10521109B2 (en) | 2008-03-04 | 2019-12-31 | Apple Inc. | Touch event model |
US9971502B2 (en) | 2008-03-04 | 2018-05-15 | Apple Inc. | Touch event model |
US9798459B2 (en) | 2008-03-04 | 2017-10-24 | Apple Inc. | Touch event model for web pages |
US8836652B2 (en) | 2008-03-04 | 2014-09-16 | Apple Inc. | Touch event model programming interface |
US8723822B2 (en) | 2008-03-04 | 2014-05-13 | Apple Inc. | Touch event model programming interface |
US8717305B2 (en) | 2008-03-04 | 2014-05-06 | Apple Inc. | Touch event model for web pages |
US8645827B2 (en) | 2008-03-04 | 2014-02-04 | Apple Inc. | Touch event model |
US9720594B2 (en) | 2008-03-04 | 2017-08-01 | Apple Inc. | Touch event model |
US9690481B2 (en) | 2008-03-04 | 2017-06-27 | Apple Inc. | Touch event model |
US9323335B2 (en) | 2008-03-04 | 2016-04-26 | Apple Inc. | Touch event model programming interface |
US9389712B2 (en) | 2008-03-04 | 2016-07-12 | Apple Inc. | Touch event model |
US8560975B2 (en) * | 2008-03-04 | 2013-10-15 | Apple Inc. | Touch event model |
US20130069899A1 (en) * | 2008-03-04 | 2013-03-21 | Jason Clay Beaver | Touch Event Model |
US10936190B2 (en) | 2008-03-04 | 2021-03-02 | Apple Inc. | Devices, methods, and user interfaces for processing touch events |
US11740725B2 (en) | 2008-03-04 | 2023-08-29 | Apple Inc. | Devices, methods, and user interfaces for processing touch events |
US8566044B2 (en) | 2009-03-16 | 2013-10-22 | Apple Inc. | Event recognition |
US9483121B2 (en) | 2009-03-16 | 2016-11-01 | Apple Inc. | Event recognition |
US8566045B2 (en) | 2009-03-16 | 2013-10-22 | Apple Inc. | Event recognition |
US9311112B2 (en) | 2009-03-16 | 2016-04-12 | Apple Inc. | Event recognition |
US11755196B2 (en) | 2009-03-16 | 2023-09-12 | Apple Inc. | Event recognition |
US8682602B2 (en) | 2009-03-16 | 2014-03-25 | Apple Inc. | Event recognition |
US9285908B2 (en) | 2009-03-16 | 2016-03-15 | Apple Inc. | Event recognition |
US10719225B2 (en) | 2009-03-16 | 2020-07-21 | Apple Inc. | Event recognition |
US9965177B2 (en) | 2009-03-16 | 2018-05-08 | Apple Inc. | Event recognition |
US11163440B2 (en) | 2009-03-16 | 2021-11-02 | Apple Inc. | Event recognition |
WO2011036040A3 (en) * | 2009-09-28 | 2012-04-05 | Thomson Licensing | Method for the page-by-page navigation in an ordered list of documents, and apparatus for implementing the method |
FR2950712A1 (en) * | 2009-09-28 | 2011-04-01 | Thomson Licensing | PAGES NAVIGATION METHOD IN AN ORDERED LIST OF DOCUMENTS, AND APPARATUS USING THE METHOD |
US20110138290A1 (en) * | 2009-12-04 | 2011-06-09 | Samsung Electronics Co., Ltd. | Method and apparatus for providing remote user interface list |
US8914727B2 (en) | 2009-12-04 | 2014-12-16 | Samsung Electronics Co., Ltd | Method and apparatus for providing remote user interface list |
AU2010327460B2 (en) * | 2009-12-04 | 2014-09-25 | Samsung Electronics Co., Ltd. | Method and apparatus for providing remote user interface list |
EP2507937A2 (en) * | 2009-12-04 | 2012-10-10 | Samsung Electronics Co., Ltd. | Method and apparatus for providing remote user interface list |
EP2507937A4 (en) * | 2009-12-04 | 2014-01-22 | Samsung Electronics Co Ltd | Method and apparatus for providing remote user interface list |
US9684521B2 (en) | 2010-01-26 | 2017-06-20 | Apple Inc. | Systems having discrete and continuous gesture recognizers |
US10732997B2 (en) | 2010-01-26 | 2020-08-04 | Apple Inc. | Gesture recognizers with delegates for controlling and modifying gesture recognition |
US10216408B2 (en) | 2010-06-14 | 2019-02-26 | Apple Inc. | Devices and methods for identifying user interface objects based on view hierarchy |
US8552999B2 (en) | 2010-06-14 | 2013-10-08 | Apple Inc. | Control selection approximation |
US20120072863A1 (en) * | 2010-09-21 | 2012-03-22 | Nintendo Co., Ltd. | Computer-readable storage medium, display control apparatus, display control system, and display control method |
US9298363B2 (en) | 2011-04-11 | 2016-03-29 | Apple Inc. | Region activation for touch sensitive surface |
US9870554B1 (en) | 2012-10-23 | 2018-01-16 | Google Inc. | Managing documents based on a user's calendar |
US10140198B1 (en) | 2012-10-30 | 2018-11-27 | Google Llc | Networked desktop environment |
US10181016B2 (en) * | 2013-06-03 | 2019-01-15 | Ricoh Company, Ltd. | Information processing device, information processing method, and program |
US11429190B2 (en) | 2013-06-09 | 2022-08-30 | Apple Inc. | Proxy gesture recognizer |
US9733716B2 (en) | 2013-06-09 | 2017-08-15 | Apple Inc. | Proxy gesture recognizer |
US11681654B2 (en) | 2013-08-27 | 2023-06-20 | Google Llc | Context-based file selection |
US9842113B1 (en) | 2013-08-27 | 2017-12-12 | Google Inc. | Context-based file selection |
US9973462B1 (en) | 2013-10-21 | 2018-05-15 | Google Llc | Methods for generating message notifications |
CN111026377A (en) * | 2019-11-21 | 2020-04-17 | 中国航空工业集团公司西安航空计算技术研究所 | Calling display list pre-decoding method based on finite-state machine |
US11560058B2 (en) * | 2020-08-31 | 2023-01-24 | Toyota Jidosha Kabushiki Kaisha | Vehicle display control device, vehicle display control method, computer-readable storage medium, and vehicle display system for displaying action schedule item |
CN112711365A (en) * | 2020-12-30 | 2021-04-27 | 航天信息股份有限公司 | Method and system for passing list control checking event |
US11954322B2 (en) | 2022-09-15 | 2024-04-09 | Apple Inc. | Application programming interface for gesture operations |
Also Published As
Publication number | Publication date |
---|---|
US7590943B2 (en) | 2009-09-15 |
US7752560B2 (en) | 2010-07-06 |
US20050120361A1 (en) | 2005-06-02 |
US7603627B2 (en) | 2009-10-13 |
US20050160374A1 (en) | 2005-07-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7590943B2 (en) | Systems and methods for creating and managing graphical user interface lists | |
US7636897B2 (en) | System and method for property-based focus navigation in a user interface | |
JP4812337B2 (en) | Method and apparatus for generating a form using a form type | |
US7437720B2 (en) | Efficient high-interactivity user interface for client-server applications | |
US6724403B1 (en) | System and method for simultaneous display of multiple information sources | |
US7512892B2 (en) | Method and system for displaying and interacting with paginated content | |
US7376907B2 (en) | System and method for simultaneous display of multiple information sources | |
US7266807B2 (en) | Method for integration edition of setting file and setting file integration base | |
US20160266781A1 (en) | Customizable media player controls | |
US7603624B2 (en) | System and method for styling content in a graphical user interface control | |
US20070050750A1 (en) | Extensible data-driven setup application for operating system | |
CA2387933A1 (en) | System and method for simultaneous display of multiple information sources | |
JP2012074018A (en) | Method and system for personalized content layout, and program (system and method for personalized content layout) | |
US6011555A (en) | Method and apparatus for a drop down control that changes contents dynamically | |
JPH10240746A (en) | Method for generating single-frame multimedia title | |
US10013478B2 (en) | System and method for modular business applications | |
US5745713A (en) | Movie-based facility for launching application programs or services | |
US20080163109A1 (en) | User configurable action button | |
US20060078228A1 (en) | Information processing device and program | |
US7447993B2 (en) | System and method for displaying a user interface object using an associated style | |
US20020087952A1 (en) | Debugger system and method of extending debug functions of a debugger system and debugger program product stored in a computer readable medium | |
CN112257405A (en) | Webpage table editing method, device and equipment and computer readable storage medium | |
US8572510B2 (en) | Handling multiple dynamically-linked dropdowns in online applications | |
CN101421685B (en) | Generic user interface command architecture | |
EP2466461A2 (en) | System and method for modular business applications |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: MICROSOFT CORPORATION, WASHINGTON Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:BAILEY, RICHARD ST. CLAIR;SHARPE, TIMOTHY;FALCON, STEPHEN RUSSELL;AND OTHERS;REEL/FRAME:012657/0802 Effective date: 20020205 |
|
STCF | Information on status: patent grant |
Free format text: PATENTED CASE |
|
FPAY | Fee payment |
Year of fee payment: 4 |
|
AS | Assignment |
Owner name: MICROSOFT TECHNOLOGY LICENSING, LLC, WASHINGTON Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:MICROSOFT CORPORATION;REEL/FRAME:034541/0477 Effective date: 20141014 |
|
FPAY | Fee payment |
Year of fee payment: 8 |
|
MAFP | Maintenance fee payment |
Free format text: PAYMENT OF MAINTENANCE FEE, 12TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1553); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY Year of fee payment: 12 |