WO2004095415A1 - Mandataires de bouton de fenetre de dialogue se trouvant pres du curseur - Google Patents
Mandataires de bouton de fenetre de dialogue se trouvant pres du curseur Download PDFInfo
- Publication number
- WO2004095415A1 WO2004095415A1 PCT/US2004/012659 US2004012659W WO2004095415A1 WO 2004095415 A1 WO2004095415 A1 WO 2004095415A1 US 2004012659 W US2004012659 W US 2004012659W WO 2004095415 A1 WO2004095415 A1 WO 2004095415A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- buttons
- window
- proxy
- user
- control pad
- Prior art date
Links
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
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/451—Execution arrangements for user interfaces
Definitions
- the invention is related to software user interface windows, and especially to dialog windows, alert windows, drop-down "sheet” windows, and other windows with the purpose of asking a question of the user or informing the user of something that requires an answer or acknowledgment; to the visual presentation of the dialog information and/or question and user response mechanisms; to user input gestures to answer or acknowledge the dialog window's information and or question using a mouse, other pointing device, or keyboard, for example by the clicking of a GUI button or typing a key on a keyboard; and to the supplying of supplementary "proxy" buttons near the cursor which operate similarly to the actual buttons in the dialog window.
- a typical occurrence in Graphical User Interfaces is for the software to display (or "pop up") a so-called Dialog Window whose purpose is to ask a question of a user, which the user typically must answer or dismiss by clicking a UI button or typing a key which has been designed to have an equivalent effect to clicking one of those buttons.
- the user is prohibited from taking some or any other action until they have answered the question posed by the Dialog Window.
- the question may be merely a request for acknowledgment of information given in the dialog window, the response typically being the activating of a button, typically named "OK".
- the Kensington MouseWorks system enhancement (later referred to as the "warped cursor" approach) works thus: when a window containing a default button is displayed, MouseWorks mores the cursor (without any user gesture) to the default button (a default button is one that is invokable by hitting the Return key).
- the MouseWorks approach has three disadvantages:
- a pop-up dialog window is a disruption. To deal with the disruption, the user must move the mouse away from where he's working to one of the buttons on the dialog window, or he must switch from the mode of using the pointing device to using the keyboard, often by moving the pointing device hand to the keyboard and back again to the pointing device.
- dialog window is traditionally placed in the center of the screen, regardless of where the cursor is; thus, the dialog window buttons are usually not near the cursor. Placing the dialog window behind the cursor is not a good solution.
- the problem is to minimize the disruption caused by the distance f om the cursor to the dialog window buttons.
- the invention eases the disruption of a dialog window by offering additional copies of the dialog window buttons (proxy buttons) very near to the cursor.
- the invention's proxy buttons are very close to the cursor, it is easy for the user to move the mouse to one or the other of them and click it. This action is generally far easier than moving the cursor to the actual dialog window buttons, and easier than interrupting normal pointing device use to type a key on the keyboard.
- any other user input gesture forces the invention to cease its intervention and to withdraw its visual representation, and furthermore such an input gesture will nevertheless have its normal effect with respect to other graphical representations on the display, the invention avoids compounding the dialog window disruption with its own action.
- the failure mode of the "warped cursor" approach is that the user decides to click something on the display, and before he has a chance to complete this action, a dialog window appears, and the cursor is summarily moved ("warped") over to the default button of the dialog window, thus interpreting the user's click as a click of a newly-appeared button on the dialog window.
- the invention does not have this failure mode.
- the worst case for the invention would be if the user happens to be moving the mouse in the direction of something to click, and that something is then covered by a proxy button.
- the probability of this failure mode is considered to be so low as to be inconsequential, and besides, the invention can be implemented such that a timeout mechanism prevents even this eventuality.
- Figure 1 shows a typical example, in the initial state: a display with no windows visible. Cursor is at lower left.
- Figure 2 shows a typical example, but with the invention inactive or not yet visible.
- Figure 2 is like Figure 1 except that a single dialog window is visible.
- the dialog window has a Cancel button and an OK button.
- the cursor is far away from the buttons.
- the invention is not active.
- Figure 3 shows a typical example with the invention active and visible.
- Figure 3 is like Figure 2 except that the invention is active, displaying a light beam from the dialog buttons extending downward toward small proxy Cancel and OK buttons placed near the cursor by the invention.
- Figure 4 is like Figure 3 except that invisible outlines of some user interface objects are elucidated.
- Figure 5 is like Figure 3 except that outline of the Light Beam is elucidated.
- Figure 6 shows a window other than a dialog window: a web browser window with two buttons in it.
- the invention is displaying a Light Beam extending to two small proxies of those buttons.
- Figure 7 shows the Window Helper process steps.
- Figure 8 shows the Make Control Pad process steps.
- Figure 9 shows the make Control Window process steps.
- Figure 10 shows the Handle Events process steps.
- Figure 1 shows the initial condition before a typical Graphical User Interface dialog window is displayed.
- a Graphical Display (outline: 10) with the Cursor (11) at lower left.
- Figure 2 shows an example of an application displaying a dialog window, without the action of the invention.
- Target Window (12) While the cursor (11) is at lower left on the Display (10), the Target Window (12) has appeared, with its Interesting Buttons (22) — interesting because clicking them will close the window.
- FIG. 3 shows the invention in action.
- Figure 4 shows the outline of some of the objects in Figure 3 which are invisible.
- the opening of the Target Window (12) has triggered the Window Helper process to create and display a borderless, partially-transparent Control Window (20) in a layer in front of the Target Window (12) and in front of all other windows on the Display (10).
- the Control Window contains these elements: • Interesting Button Copies (23), which are copies of the Interesting Buttons (22,
- the Light Beam is in the rearmost layer of the Control Window; the Proxy Buttons and the Interesting Button Copies are in the front most layer.
- the Window Helper process of the invention first identifies the Interesting Buttons (22) in the Target Window and makes a Control Pad (24), which is a transparent, rectangular container just large enough to enclose the Interesting Button Copies (23), which it makes to look exactly like the Interesting Buttons (22).
- the Window Helper then makes the Remote Control Pad (14), patterned after the Control Pad and its contents and decides the position of the Remote Control Pad relative to the Cursor (11).
- the Window Helper constructs the Control Window (20) to be just large enough to contain the Control Pad (24) and the Remote Control Pad (14).
- the Control Window's size and shape is also just sufficient to include the Light Beam (18).
- Figure 5 shows the outline of the Light Beam (18).
- the user can very easily move the cursor the short distance toward the Remote Control Pad (14) and click on one of its Proxy Buttons in lieu of moving the cursor even farther to click one of the Interesting Buttons (22) in the Target Window (12).
- the user can make the Control Window (20) disappear
- a click that makes the Control Window disappear is delivered to the target object underneath it as it would be delivered if the Control Window did not exist, thus minimizing any disruption to the flow of the user's work.
- FIG. 6 shows a web browser example in which this would be useful.
- the Light Beam (18) (along with everything in it) stays visible even as the user types text into the Text Field (26) in the Target Window (12) on the Display (10). Because the Control Window remains intact after the user is finished typing text, the invention affords the user the option of clicking a button near the cursor on the Remote Control Pad.
- the software can be added to an application by the application's developer.
- the software can be added to the UI toolkit software that is used by applications and also possibly added to the platform's Window Server or other Operating System components.
- the system can work without any special preparation by the application programmer. However, an application programmer can exert more fine control over how the system works by programming some of the windows of the application to specify exactly how they will work with the system. There are two optional steps for each window in the application a. (optional) Make a call to the UI toolkit that explicitly designates this window as a Prepared Window. A Prepared Window explicitly designates whether the window should be subject to the effects of the invention or not. b.
- the operation of the Window Helper can be made optional by the user, and its parameters can be made adjustable by the user. Adjustable parameters could include
- Orientation Varies (boolean) - whether the Orientation Preference should vary with the direction from the cursor to the Control Pad. In the preferred embodiment, the Orientation Varies option is false.
- Disappearance Time Delay (integer) - a time delay after which the Control Window will disappear if there is no mouse activity toward it (0 signifies infinite delay). In the preferred embodiment, Disappearance Time Delay is 0 (signifying infinite).
- Remote Control Pad Overlaps Dialog (boolean) - whether to allow the Remote Control Pad to appear in a position that overlaps with the Target Window. In the preferred embodiment, Remote Control Pad Overlaps Dialog is true. Operation
- the Window Helper process is the heart of the system. It makes the system visible to the user and interacts with the user.
- the Window Helper is in Waiting State (inactive) until it triggered into action (Step 7-1).
- Step 7-1 When a window appears, the Window Helper is triggered into action. Go to Step 7-2.
- Target Window is a Prepared Window, i.e. a window that the application programmer has programmed to explicitly specify its behavior with the Window Helper. If Yes, go to Step 7-3; if No, go to Step 7-13.
- Step 7-4 If Yes, go to Step 7-4; if No, go to Step 7-15.
- Step 7-5 If Yes, go to Step 7-5; if No, go to Step 7-13.
- Step 7-5 Get the Control Pad provided for the window by the application programmer. Go to Step 7-6.
- Step 7-6 Determine if the cursor position is ?far enough away?.
- the cursor is ?far enough away? in the preferred embodiment if the Cursor is in such a position that the Remote Control Pad will not overlap the Control Pad.
- Another possible definition of ?far enough away? is that the Cursor is in such a position that the Remote Control Pad will not overlap the Target Window.
- User preferences or implementation choice may further require that the Cursor be some additional small distance further away from the Control Pad or the Target Window, depending on which object is being avoided. If Yes, go to Step 7-7; if No, go to Step 7-17.
- Step 7-8 Determine if the Make Control Window procedure succeeded. If Yes, go to Step 7-9; if No, go to Step 7-18.
- Step 7-10 If the Make Control Window procedure succeeded (8 -> Yes), display the Control Window. Go to Step 7-10.
- Step 7-14 Determine if the Make Control Pad procedure was successful in making a Control Pad. If Yes, go to Step 7-6; if No, go to Step 7-16. 7-15.
- the application programmer has programmed the window to be a Prepared Window and has specifically disabled the Window Helper to operate with it (3 -> No). Done.
- the Window Helper process immediately removes anything it has displayed on the Display and reverts to Waiting State.
- the Window Helper process immediately removes anything it has displayed on the Display and reverts to Waiting State.
- the Make Control Pad process is invoked dynamically if necessary to make a Control Pad for a window that was not prepared with a designated Control Pad by the application programmer. This process also determines if the window is appropriate for use with the Window Helper. If the window is not appropriate, the process returns with a failure indication.
- Step 8-2 Determine if the window is used modally. In the preferred embodiment, this test is available and is used, but in other implementations, it may not be possible to make this determination, so this step is skipped and the flow goes to Step 8-8.
- Step 8-3 If Yes, go to Step 8-3; if No (or feature not implemented), go to Step 8-8.
- Step 8-10 If Yes, go to Step 8-4; if No, go to Step 8-10.
- buttons in the window 3 -> Yes
- buttons in the window 3 -> Yes
- all of them are Interesting Buttons (i.e. ones that will close the window) and make a list of them.
- the toolkit has a way for the programmer to designate which buttons are capable of causing the window to close; with such a toolkit, if the implementation software can determine that all such buttons have been so designated by the programmer, the set of Interesting Buttons is restricted to the buttons so designated. Go to Step 8-5.
- this window is now marked as if it were a Prepared Window, it is enabled for use with Window Helper, and the dynamically-created Control Pad is cached for use the next time this window is made visible.
- Step 8-8 Determine if the window has an enabled close box in the title bar of the window. If yes, then we assume that the window is not functioning as a modal dialog. An implementation may choose to omit this step and go to Step 8-3.
- Step 8-9 If Yes, go to Step 8-9; if No, go to Step 8-3.
- the Make Control Window process uses the Control Pad's absolute position on the Display and the Cursor's absolute position on the Display is to make the Control Wmdow ad hoc. h the preferred embodiment, the system maintains only one Control Window, which is reused each time and reconfigured to match the new situation, but functionally it is as if the Control Window were made and disposed each time.
- Step 9-1 Begin. Go to Step 9-2.
- the Remote Control Pad including its Proxy Buttons, is a copy of the Control Pad except that the dimensions of the control pad and its contents are 1/2 those of the Control Pad.
- the properties of the Proxy Buttons are the same as the properties of the Interesting Buttons, including highlighting, animation, and designated activation keys, if any. Go to Step 9-3.
- Step 9-3 Make a Remote Control Pad Controller that will respond to each button press in the Remote Control Pad by invoking the correspondmg action in the Control Pad Controller. Go to Step 9-4.
- the Remote Control Pad position is adjusted so that the Remote Confrol Pad just touches the edge of the Display; in this case, the angle from the center of the Remote Control Pad to the point of the Cursor is allowed to deviate from the Orientation Preference angle. If the calculated position is such that the top of the Remote Control Panel would extend beyond the top of the Display, then the position is considered not to be 'suitable' (see Step 9- 5); otherwise the position is 'suitable'.
- 'Display' means the combined area of all display screens used in conjunction. If the chosen Orientation Preference angle is not (as in the preferred embodiment) 90 degrees, the features described in the above process are modified accordingly. Go to Step 9-5.
- Step 9-5 Determine if Step 9-4 noted that the position calculated is 'suitable'. If Yes, go to Step 9-6; if No, go to Step 9-12.
- Step 9-7 Add the Control Pad to the Control Window if the Control Pad was created dynamically by the Make Control Pad process invoked by the Window Helper; otherwise, add a copy of the Target Window's (prepared) Control Pad to the Control Window. Position the Control Pad so that it exactly overlays the over the Interesting Buttons of the Target Window. Go to Step 9-8.
- the Light Beam is displayed with an opacity of 40%, meaning that its pixels are mixed in with the Display pixels behind it such that 40% of the value of a Light Beam pixel is mixed with 60% of the value of the corresponding color at each pixel location.
- the Light Beam is appears as a bundle of beams of blue light whose lightness varies across the beam to resemble sunbeams coming from clouds such that the sunbeams narrow toward the Remote Control Pad, connecting equivalent parts of the Control Pad to their equivalent parts in the Remote Control Pad as in Figure 3.
- the Light Beam can be animated, perhaps suggesting motion from the Remote Control Pad to the Control Pad.
- the coloration can be varied in waves that slowly travel in that direction along the beam. Go to Step 9-10.
- Step 9-12 The position arrived at in Step 9-4 is not 'suitable'. Done. Return with a failure indication to the caller.
- Step 10-3 Wait for a user input event. Go to Step 10-3.
- Step 10-4 If Yes, go to Step 10-4; if No, go to Step 10-6.
- the event is a mouse event (3 -> Yes). Determine if it is motion only (no button activity).
- Step 10-5 If Yes, go to Step 10-5; if No, go to Step 10-9.
- the event is a mouse motion event with no buttons pressed (4 -> Yes). Determine if the motion is toward the Remote Control Pad or if the Cursor position is within the Remote Control Pad.
- Step 10-2 If Yes, go to Step 10-2; if No, go to Step 10-14.
- Step 10-6 The Event is not a mouse event (3 -> No). Determine if it is a keyboard event. If Yes, go to Step 10-7; if No, go to Step 10-8.
- Step 10-7 Determine if the keyboard event is Return or Esc. If Yes, go to Step 10-13; if No, go to Step 10-8.
- the event is either from a device other than a pointing device or keyboard (6 -> No) or it is a keyboard event other than Return or Esc (7 -> No). Pass the even back to the system to deliver as it would have done were the Handle Events process not active. Go to Step 10-2. 10-9.
- the event is a mouse event involving clicking (4 -> No). Determine if the event is within the Remote Control Pad.
- Step 10-10 If Yes, go to Step 10-10; if No, go to Step 10-14.
- the event is within the Remote Control Pad (9 -> Yes). Determine if the event is a click on one of the Proxy Buttons.
- Step 10-8 If Yes, go to Step 10-8; if No, go to Step 10-2.
- the event is a mouse event that either moved the cursor away from the Remote
- the invention can be implemented in a computer operating system, in a GUI software library, or in a specific application program.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US46512903P | 2003-04-23 | 2003-04-23 | |
US60/465,129 | 2003-04-23 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2004095415A1 true WO2004095415A1 (fr) | 2004-11-04 |
Family
ID=33310996
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/US2004/012659 WO2004095415A1 (fr) | 2003-04-23 | 2004-04-22 | Mandataires de bouton de fenetre de dialogue se trouvant pres du curseur |
Country Status (1)
Country | Link |
---|---|
WO (1) | WO2004095415A1 (fr) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130191764A1 (en) * | 2012-01-23 | 2013-07-25 | International Business Machines Corporation | Quick close button |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6613101B2 (en) * | 1992-04-30 | 2003-09-02 | Apple Computer, Inc. | Method and apparatus for organizing information in a computer system |
-
2004
- 2004-04-22 WO PCT/US2004/012659 patent/WO2004095415A1/fr active Application Filing
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6613101B2 (en) * | 1992-04-30 | 2003-09-02 | Apple Computer, Inc. | Method and apparatus for organizing information in a computer system |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130191764A1 (en) * | 2012-01-23 | 2013-07-25 | International Business Machines Corporation | Quick close button |
US9389747B2 (en) * | 2012-01-23 | 2016-07-12 | International Business Machines Corporation | Quick close button |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7861180B2 (en) | Modeless interaction with GUI widget applications | |
US5790127A (en) | Supervising activations states in application sharing | |
US7694234B2 (en) | Virtual magnifying glass with on-the fly control functionalities | |
US5801693A (en) | "Clear" extension to a paste command for a clipboard function in a computer system | |
US6710788B1 (en) | Graphical user interface | |
US5742285A (en) | Virtual screen display system | |
US7350154B2 (en) | Virtual desktop manager | |
US5956032A (en) | Signalling a user attempt to resize a window beyond its limit | |
US5767835A (en) | Method and system for displaying buttons that transition from an active state to an inactive state | |
US7603628B2 (en) | User interface for and method of managing icons on group-by-group basis using skin image | |
EP0747805B1 (fr) | Gestion de fenêtres | |
JP5004779B2 (ja) | マルチウインドウ・システム、マルチウインドウ・システムのセキュリティ保護方法、及びマルチウインドウ・システムのセキュリティ保護プログラム | |
US6429883B1 (en) | Method for viewing hidden entities by varying window or graphic object transparency | |
US5949417A (en) | Dynamic property sheet system | |
US6025841A (en) | Method for managing simultaneous display of multiple windows in a graphical user interface | |
US20040183834A1 (en) | User-configurable soft input applications | |
JP3788942B2 (ja) | 情報処理装置およびコンピュータの操作支援方法 | |
US20040141015A1 (en) | Pen-mouse system | |
JPH0827700B2 (ja) | コンピュータ表示制御システム | |
JP2006302320A (ja) | スタート・メニュー付タスクバー | |
JP2000181597A (ja) | コンピュ―タ・システムのグラフィック・ユ―ザ・インタフェ―ス内の制御を保護する方法及び装置 | |
US20110185301A1 (en) | Providing sensory information based on detected events | |
JP2002099370A (ja) | 仮想デスクトップ間をスイッチするための方法、システム、およびコンピュータ・プログラム製品 | |
KR20020019881A (ko) | 스폿라이트 커서 | |
WO2004095415A1 (fr) | Mandataires de bouton de fenetre de dialogue se trouvant pres du curseur |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AK | Designated states |
Kind code of ref document: A1 Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BW BY BZ CA CH CN CO CR CU CZ DE DK DM DZ EC EE EG ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NA NI NO NZ OM PG PH PL PT RO RU SC SD SE SG SK SL SY TJ TM TN TR TT TZ UA UG US UZ VC VN YU ZA ZM ZW |
|
AL | Designated countries for regional patents |
Kind code of ref document: A1 Designated state(s): BW GH GM KE LS MW MZ SD SL SZ TZ UG ZM ZW AM AZ BY KG KZ MD RU TJ TM AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IT LU MC NL PL PT RO SE SI SK TR BF BJ CF CG CI CM GA GN GQ GW ML MR NE SN TD TG |
|
121 | Ep: the epo has been informed by wipo that ep was designated in this application | ||
122 | Ep: pct application non-entry in european phase |