US20110161871A1 - Magnification Interface with Independent Pointer Sizing - Google Patents

Magnification Interface with Independent Pointer Sizing Download PDF

Info

Publication number
US20110161871A1
US20110161871A1 US12/828,735 US82873510A US2011161871A1 US 20110161871 A1 US20110161871 A1 US 20110161871A1 US 82873510 A US82873510 A US 82873510A US 2011161871 A1 US2011161871 A1 US 2011161871A1
Authority
US
United States
Prior art keywords
magnification
user interface
graphic user
pointing indicia
magnification level
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.)
Abandoned
Application number
US12/828,735
Inventor
Anthony Bowman Stringer
Garald Lee Voorhees
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Freedom Scientific Inc
Original Assignee
Freedom Scientific Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Freedom Scientific Inc filed Critical Freedom Scientific Inc
Priority to US12/828,735 priority Critical patent/US20110161871A1/en
Assigned to FREEDOM SCIENTIFIC, INC. reassignment FREEDOM SCIENTIFIC, INC. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: VOORHEES, GARALD LEE, STRINGER, ANTHONY BOWMAN
Assigned to RBC BANK (USA) INC. reassignment RBC BANK (USA) INC. SECURITY AGREEMENT Assignors: FREEDOM SCIENTIFIC BLV GROUP, LLC, FREEDOM SCIENTIFIC INC.
Publication of US20110161871A1 publication Critical patent/US20110161871A1/en
Priority to US13/775,811 priority patent/US9235314B2/en
Assigned to FREEDOM SCIENTIFIC INC. reassignment FREEDOM SCIENTIFIC INC. RELEASE BY SECURED PARTY (SEE DOCUMENT FOR DETAILS). Assignors: RBC BANK (USA) INC.
Priority to US14/941,128 priority patent/US10048848B2/en
Abandoned legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • G06F3/04847Interaction techniques to control parameter settings, e.g. interaction with sliders or dials
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction 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/04812Interaction techniques based on cursor appearance or behaviour, e.g. being affected by the presence of displayed objects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2203/00Indexing scheme relating to G06F3/00 - G06F3/048
    • G06F2203/048Indexing scheme relating to G06F3/048
    • G06F2203/04805Virtual magnifying lens, i.e. window or frame movable on top of displayed information to enlarge it for better reading or selection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2203/00Indexing scheme relating to G06F3/00 - G06F3/048
    • G06F2203/048Indexing scheme relating to G06F3/048
    • G06F2203/04806Zoom, i.e. interaction techniques or interactors for controlling the zooming operation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]

Definitions

  • This invention relates to low vision assistive software, and more particularly to a magnification application for a graphic user interface (GUI).
  • GUI graphic user interface
  • Magnification systems may be built into the operating system itself or may comprise feature-rich, third-party products such as those sold under the MAGIC brand manufactured by Freedom Scientific, Inc., based in St. Louis, Fla.
  • a deficiency in the current state of the art is the over-magnification of the pointing indicia.
  • Low vision users are often limited in the magnification they can impose because the pointing indicia are magnified in step with the entire GUI.
  • high magnification levels i.e., exceeding 16-fold
  • pointing indicia become so large they obscure much of the GUI itself.
  • An embodiment of the present invention includes a method of rendering a magnified GUI including the steps of establishing a first magnification level for the GUI.
  • the GUI includes the desktop and software applications that execute within the operating system.
  • a second magnification level is established for pointing indicia.
  • the pointing indicia may be a cursor or a caret.
  • a cursor is the graphical image that represents the mouse and its movements. It can take many shapes including, but not limited to, an arrow for pointing, a hand, an hourglass, or an I-shaped text selector.
  • the caret on the other hand, is the blinking indicia that is used to enter text.
  • the magnified GUI is displayed at the first magnification level.
  • Application program interface messaging for the operating system is monitored and calls for a system pointer identifier (such as a system pointer handle) are intercepted.
  • the magnification program may poll the operating system for current mouse pointer information, including but not limited to its position and shape.
  • the pointing indicia is scaled, instead, to the second magnification level and subsequently displayed.
  • HCURSOR LoadCursor HINSTANCE hInstance, LPCTSTR LPCTSTR lpCursorName
  • lpCursorName contains an identifier representing one of the standard system cursors. These values may include:
  • IDC_SIZEALL Four-pointed arrow pointing north, MAKEINTRESOURCE(32646) south, east, and west IDC_SIZENESW Double-pointed arrow pointing MAKEINTRESOURCE(32643) northeast and southwest IDC_SIZENS Double-pointed arrow pointing north MAKEINTRESOURCE(32645) and south IDC_SIZENWSE Double-pointed arrow pointing MAKEINTRESOURCE(32642) northwest and southeast IDC_SIZEWE Double-pointed arrow pointing west and MAKEINTRESOURCE(32644) east IDC_UPARROW Vertical arrow MAKEINTRESOURCE(32516) IDC_WAIT Hourglass MAKEINTRESOURCE(32514)
  • lpCursorName contains either a numeric or string identifier representing a graphic image contained in the application's resources. LoadCursor returns a numeric handle to the cursor that was loaded.
  • the foreground application selects the active cursor by calling the SetCursor function. This function takes one of the HCURSOR handles previously created by LoadCursor. By intercepting both of these functions, it is possible to keep track of the active cursor being used by an application. By intercepting the SetForegroundWindow function, it is possible to determine which application is in the foreground and hence, track which application's cursor is active system-wide.
  • An alternative method of obtaining the pointer shape under Windows includes the step of intercepting the drvSetPointerShape value between operating system and display device driver. Using drvSetPointerShape value is most appropriate for the fifteen (15) predefined (non-obsolete) cursor types available in the MICROSOFT WINDOWS application programming interface specification.
  • the second magnification level is static.
  • the GUI may be scaled to any magnification but the size of the pointing indicia remains the same.
  • the second magnification level is preselected according to at least one or more software applications in focus. For example, a mouse cursor may be magnified to 4-fold for a word processor application but only magnified 2-fold by a spreadsheet application.
  • the present invention intercepts API messaging to automatically switch second magnification levels based on the application in the foreground or in focus.
  • the second magnification level may be user-modifiable independently of the first magnification level. For example, a user may hold down a key combination while moving a mouse wheel to scale the magnification level of the GUI without affecting the magnification level of the pointing indicia. Alternatively, a different key combination may invoke magnification only for the pointing indicia. Yet another key combination may re-synchronize the GUI and pointing indicia magnification levels. Separate magnifications levels for cursors and carets may also be established.
  • Another embodiment of the invention intelligently applies a convergence value to optimize the relative magnification of the GUI and pointing indicia.
  • the embodiment includes the steps of magnifying, in synchronization, both a background GUI and a foreground pointing indicia, establishing a magnification convergence value, responsive to a magnification level of the GUI exceeding the convergence value, decoupling synchronization and displaying the pointing indicia magnified at a lesser relative factor than the GUI magnification level, and responsive to a magnification level of the GUI below or equal to the convergence value re-coupling synchronization and displaying the pointing indicia magnified at a factor relative to the GUI magnification level.
  • the synchronization may be achieved by a linear, logarithmic, or step graph relationship.
  • the convergence value may be derived from a number of factors including the magnification level of the pointing indicia.
  • an alternate method is to derive the convergence value from a ratio of pointing indicia surface area against GUI surface area. This may be particularly useful as initial pointer size at 1-fold magnification of the GUI may be highly variable (i.e., 0.5 ⁇ , 1.0 ⁇ , 2.0 ⁇ , 4.0 ⁇ , etc. . . . ).
  • An embodiment of the invention may include having separate convergence values for cursors and carets. Steps to this embodiment include providing a first convergence value for a cursor and a second convergence value for a caret, magnifying the cursor in accordance with the first convergence value, and magnifying the caret in accordance with the second convergence value.
  • a user-selectable pointing indicia magnification adjustment may be provided to decouple the synchronization whereby the pointing indicia is magnified independently of the magnification level of the GUI background and the independently magnified pointing indicia is displayed to the user.
  • the user-selectable pointing indicia magnification adjustment may include voice commands, keystrokes, mouse events, or the like.
  • a user may wish to occasionally override the automatic convergence feature of the invention. Responsive to a first user-initiated event or adjustment, synchronization is decoupled to display the pointing indicia to a user-selectable level magnification level. Responsive to a second user-initiated event, synchronization is re-coupled to display the pointing indicia according to the convergence value.
  • erratic pointer movement following a period of pointer inactivity temporarily scales the pointing indicia from a first to a second magnification level allowing the user to identify the location of the pointing indicia.
  • the pointing indicia is then returned to the first magnification level.
  • Erratic pointer movements are detected by monitoring mouse events for speed and direction of the pointer.
  • An embodiment of the invention may include one or more computer-readable media having computer-executable instructions for performing a method of running a software program on a computer, the computer operating under an operating system, the method including issuing instructions from the software program which include establishing a first magnification level for the GUI, establishing a second magnification level for a pointing indicia, displaying the magnified GUI at the first magnification level, receiving pointer-related information either by monitoring application program interface messaging, polling for current information, or a combination of both, scaling the pointing indicia to the second magnification level and displaying the pointing indicia.
  • FIG. 1 is a conceptual view of a monitor displaying a GUI and a mouse cursor at 1-fold magnification.
  • FIG. 2 is a conceptual view of a monitor displaying a GUI and a mouse cursor at 2-fold magnification.
  • FIG. 3 is a conceptual view of a monitor displaying a GUI and a mouse cursor at 4-fold magnification.
  • FIG. 4 is a conceptual view of a monitor displaying a GUI and a mouse cursor at 8-fold magnification.
  • FIG. 5 is a conceptual view of a monitor displaying a GUI and a mouse cursor at 16-fold magnification.
  • FIG. 6 is a conceptual view of a monitor displaying a GUI and a mouse cursor at 32-fold magnification.
  • FIG. 7 is a conceptual view of a monitor displaying a GUI at 32-fold magnification and a mouse cursor at 16-fold magnification.
  • FIG. 8 is a line graph showing synchronization of pointer indicia and GUI at a 1-to-1 relationship until pointer indicia reaches a 16-fold magnification ceiling.
  • FIG. 9 is a line graph showing pointer indicia remaining statically enhanced at 4-fold magnification regardless of the magnification level of the GUI.
  • FIG. 10 is a line graph showing pointer indicia synchronized with GUI magnification at a 1-to-1 ratio until GUI reaches an 8-fold magnification level.
  • FIG. 11 is a line graph showing pointer indicia synchronized with GUI magnification at a 1-to-2 ratio until pointer indicia reaches a 4-fold magnification ceiling.
  • FIG. 12 is a line graph showing mouse cursor linearly reaching a 4-fold magnification ceiling while caret continues on a 1-to-1 magnification synchronization with GUI.
  • FIG. 13 is a line graph showing cursor and caret magnification ceilings at various levels of GUI magnification.
  • FIG. 14 is a line graph showing convergence of pointer size at a 16-fold GUI magnification wherein the four pointers started at different magnification levels.
  • FIG. 15 is a conceptual sequence of displays showing circular pointer movement following a period of pointer inactivity to temporarily magnify pointer.
  • FIG. 16 is a conceptual sequence of displays showing zigzag pointer movement following a period of pointer inactivity to temporarily magnify pointer.
  • FIG. 17 is a conceptual sequence of displays showing a lesser caret magnification level compared with a greater cursor magnification level.
  • FIG. 18 is a diagrammatic view of an embodiment of the invention wherein the GUI magnification level and the pointer magnification level are manually set.
  • FIG. 19 is a diagrammatic view of an embodiment of the invention wherein wherein the pointer magnification level is set by a number of possible options, some dynamic and some static.
  • FIG. 20 is a diagrammatic view of an embodiment of the invention wherein instead of monitoring API messaging, the operating system is polled for the current pointer identifier.
  • FIGS. 21-26 are conceptual graphic user interface dialog boxes showing a number of embodiments of end-user adjustment of the independent pointer sizing.
  • FIGS. 1-7 show GUI 10 displaying text 20 , button control 30 , mouse cursor 40 and GUI magnification level 50 .
  • mouse cursor 40 is shown at 1 ⁇ magnification.
  • mouse cursor 40 could be reduced to lower magnifications (i.e., 0.5 ⁇ ) or increased to higher magnifications (i.e., 4 ⁇ ) while GUI 10 is still at 1-fold magnification.
  • FIGS. 1-6 show a 1-to-1 magnification level between GUI 10 and mouse cursor 40 as would be seen in the current state of the art.
  • GUI 10 is magnified 2-fold and mouse cursor 40 is similarly magnified to 2 ⁇ along with objects in GUI 10 such as text 20 and button control 30 .
  • GUI 10 is magnified 4-fold and mouse cursor 40 is also magnified to 4 ⁇ .
  • button control 30 and text 20 can no longer be entirely displayed within the magnified desktop area of GUI 10 .
  • GUI 10 is magnified 8-fold and mouse cursor 40 is also magnified to 8 ⁇ .
  • FIG. 1 GUI 10 is magnified 2-fold and mouse cursor 40 is similarly magnified to 2 ⁇ along with objects in GUI 10 such as text 20 and button control 30 .
  • GUI 10 is magnified 4-fold and mouse cursor 40 is also magnified to 4 ⁇ .
  • button control 30 and text 20 can no longer be entirely displayed within the magnified desktop area of GUI 10 .
  • GUI 10 is magnified 8-fold and mouse cursor 40 is also magnified to 8 ⁇ .
  • GUI 10 is magnified 16-fold and mouse cursor 40 is also magnified to 16 ⁇ .
  • GUI 10 is magnified 32-fold and mouse cursor 40 is also magnified to 32 ⁇ .
  • mouse cursor 40 provides questionable utility for the low vision user. In most positions, mouse cursor 40 itself cannot be entirely displayed on GUI 10 desktop and obscures other objects on the desktop. Thus, when mouse cursor 40 and GUI 10 are always magnified in 1-to-1 synchronization, less than desirable results may occur.
  • GUI 10 is magnified 32-fold but mouse cursor 40 is only magnified to 16 ⁇ .
  • mouse cursor 40 maintains a higher level of utility to the user while the user may still have GUI 10 magnified to a very high level. Bifurcating the relative magnification of the pointing indicia (mouse cursor 40 ) and GUI 10 enables low vision users have meaningful tools to both comprehend the content of GUI 10 at various magnification levels as well as control it via mouse cursor 40 .
  • FIGS. 8-14 show line charts that enumerate exemplary embodiments of the invention. These figures illustrate synchronization of pointing indicia and GUI and the decoupling and re-coupling of the synchronization depending on the magnification level of the GUI.
  • GUI magnification increases from 1-fold to 36-fold and above.
  • Pointer indicia is magnified in-step at a 1-to-1 relationship until GUI magnification increases beyond 16-fold. At that point, pointer indicia reaches its ceiling value of 16 ⁇ and no longer is magnified.
  • the prior synchronization between GUI and pointer indicia magnification is decoupled.
  • pointer indicia and GUI synchronization is re-coupled to a 1-to-1 relationship. This relationship correlates with the illustrations in FIGS. 1-5 , and 7 .
  • FIG. 9 An alternative embodiment of the invention is shown in FIG. 9 wherein regardless of GUI magnification, pointer indicia is always magnified at 4 ⁇ . This is static magnification of the pointer indicia.
  • pointer indicia and GUI magnification are synchronized in a 1-to-1 relationship up to a 4-fold magnification.
  • pointer indicia and GUI utilize a second synchronization scheme wherein pointer indicia is magnified in a 1-to-2 relationship with GUI. For example, when GUI is magnified 8-fold, pointer indicia is magnified to 4 ⁇ . When GUI is magnified to 16-fold, pointer indicia is magnified to 8 ⁇ . However, beyond 16-fold GUI magnification, pointer indicia remains at 8 ⁇ magnification (its ceiling value).
  • pointer indicia is magnified at 0.5 ⁇ while GUI is at 1-fold magnification.
  • Synchronization in this example is at a 2-to-1 relationship between GUI and pointer indicia.
  • GUI When GUI is at 2-fold magnification, pointer indicia is at 1 ⁇ .
  • GUI When GUI is at 4-fold magnification, pointer indicia is at 2 ⁇ .
  • GUI When GUI is at 8-fold magnification, pointer indicia is at 4 ⁇ .
  • synchronization is decoupled and pointer indicia remains at its ceiling value of 4 ⁇ .
  • a first for a mouse cursor solid line
  • a second for a caret Caret magnification remains indefinitely synchronized with GUI magnification. This might be preferable when editing highly enlarged text.
  • the mouse cursor is synchronized on a reduced magnification relationship with respect to GUI until its ceiling value is reached at 16-fold GUI magnification.
  • a floor value may also be imposed against pointing indicia whereby magnification level of the pointing indicia is not reduced even though GUI magnification level is lowered.
  • FIG. 13 distinct synchronization schemes for mouse cursor ( ⁇ ) versus caret ( ⁇ ) are shown against GUI magnification ( ⁇ ).
  • Mouse cursor ( ⁇ ) hits a ceiling at 4-fold magnification while caret ( ⁇ ) hits a ceiling at 16-fold GUI magnification.
  • FIG. 14 illustrates a convergence graph showing four (4) different pointer sizes denoted as small ( ⁇ ), normal ( ⁇ ), large ( ⁇ ) and huge (x).
  • Small pointer size value is 0.5 ⁇ .
  • Normal pointer size value is 1.0 ⁇ .
  • Large pointer size value is 2.0 ⁇ .
  • Huge pointer size value is 4.0 ⁇ .
  • small, normal, large and huge pointer sizes cover an area of the GUI of ⁇ 0%, 3%, 5% and 10% respectively.
  • magnification of the GUI is increased, the variation in pointer sizes would produce drastically different user experiences.
  • these pointer sizes are normalized (hit their ceiling value) at a 16-fold GUI magnification. As the GUI is magnified from 1-fold to 16-fold, small pointer size is increased substantially more relative to huge pointer size.
  • Pointing indicia magnification levels according to the invention may be overridden by user events. For example, holding down one or more keys on the keyboard and scrolling a mouse wheel may zoom in and out the mouse cursor while keeping the magnification level of the GUI constant. Holding down an alternate set of keys and scrolling the mouse wheel may zoom in and out the GUI while keeping the mouse cursor at the same magnification. Yet another keystroke or keystroke combination may decouple or re-couple the pointing indicia and GUI magnification synchronization.
  • erratic mouse movements following a period of mouse inactivity act to temporarily magnify the mouse cursor so that it can be easily located by the low vision user.
  • Erratic movement may include, but are not limited to, rapid side-to-side movement and circular movement.
  • mouse cursor 60 displayed on GUI 10 is moved in circular motion 70 after a period of mouse inactivity. Magnification is applied to display enlarged mouse cursor 80 for a three-second interval before magnification is released to again display mouse cursor 60 at its previous magnification level.
  • mouse cursor 60 displayed on GUI 10 is moved in a zigzag motion 90 after a period of mouse inactivity. Magnification is applied to display enlarged mouse cursor 80 for a three-second interval before magnification is released to again display mouse cursor 60 at its previous magnification level.
  • GUI 10 is 2-fold magnified.
  • Cursor 100 is likewise magnified at 2 ⁇ while mouse cursor is magnified at 4 ⁇ .
  • FIG. 18 illustrates the steps to an embodiment of the invention including establishing a first GUI magnification level 120 , establishing a second magnification level for a pointing indicia 130 , displaying 140 the GUI at the first magnification level, monitoring API messaging 150 , intercepting a call for a system pointer identifier 160 , scaling 170 the pointing indicia to second magnification level 130 and displaying the pointing indicia 180 .
  • First GUI magnification level 120 occurs either by user-initiated input or by initialization at the operating system level or by a separate magnification application such as MAGIC.
  • First GUI magnification level 120 may also be set responsive to a change in application focus (i.e., from a spreadsheet application to a word processing application).
  • a monitoring application or worker thread notifies a mouse handling subsystem of the screen magnification change.
  • the convergence magnification is the screen magnification level at which the mouse cursor stops scaling.
  • the default value of 16 ⁇ magnification is presumed. That means that at 16 ⁇ magnification, and for any magnification level beyond 16 ⁇ , the mouse cursor will be contained within a 256 ⁇ 256 pixel bounding box.
  • C Linearly interpolate the per-magnification level pixel modifier—the amount that the mouse cursor bounding box grows for each magnification level between 1 ⁇ (unmagnified) and 16 ⁇ (convergence magnification).
  • the general formula is (Max size ⁇ computed base size)/(number of magnification levels beyond 1 ⁇ ). In the previous example it is (256 ⁇ 48)/15, or 13.866 pixels. So for every magnification level beyond 1 ⁇ , an additional 14 pixels are added to each dimension of the mouse cursor bounding box.
  • the magnification engine tells the pointer subsystem to draw itself.
  • the pointer subsystem queries the system for the current mouse cursor (by handle or other identifier).
  • the pointer subsystem tries to find a cached, vector-sourced substitute. If it finds one it sets it to be the current, internal mouse cursor. If it fails to find one it copies, edge-smoothes, and caches a scaled version of the mouse cursor that is currently the active one, and associates it (by handle or other identifier) for future use in a separate lookup table. It sets this newly created and cached raster-sourced image as the current, internal mouse cursor.
  • the pointer subsystem renders the current, internal mouse cursor to an off-screen image, at a preselected location. That image is ultimately rendered by the magnification subsystem onto the display driver surface.
  • the user can manipulate: (1) the mouse cursor base scale, which would have the result of increasing the final mouse cursor size according to some inverse of the magnification level, between 1 ⁇ and the convergence magnification. Once the user is at the convergence level, using this method, the user could only decrease the mouse cursor size. The magnitude of the mouse cursor's size change at 1 ⁇ is significantly more that it would be at 14 ⁇ . This relationship is shown in FIG. 14 .
  • a multiple which may be derived from either a fixed, linear, logarithmic, or other mechanism, that is based on mouse cursor and/or desktop magnification—all which may or may not be allowed to exceed the convergence maximum size.
  • Cursors and carets may be independently configured.
  • the monitoring application intercepts or polls the operating system for the type of pointer deployed (i.e., cursor or caret) and the pointer subsystem renders cursor according to a cursor configuration or the caret according to a caret configuration.
  • the configuration for cursor and carets may be controlled by the magnification engine automatically and/or set by the user.
  • the magnification engine includes one or more display dialog boxes for individually adjusting cursor and caret settings (along with other magnification preferences). These settings are stored in user configuration files such as a registration, INI file, XML file or the like for later retrieval and use.
  • the steps include establishing a first GUI magnification level 120 , establishing a second magnification level for pointing indicia 130 .
  • Second magnification level 130 is selected from magnification scheme array 190 including static pointer magnification 200 , pointer magnification ceiling 210 , pointer magnification floor 220 , and direct user adjustment 230 .
  • Magnification scheme array 190 comprises a collection of object properties and settings for the various possible magnification possibilities.
  • the object properties are typically stored on magnetic mediums such as a local hard drive for later recall.
  • the object properties may be saved in various formats, including, but not limited to, system registration, INI, XML, database and the like.
  • Second magnification level 130 may also be calculated 240 based on the surface area of the intercepted system pointer 160 that would cover GUI. For example, second magnification level for a pointing indicia 130 may be calculated so that the pointing indicia overlays twenty (20%) percent of the entire GUI surface area of the display. For example, a desktop that is 680 ⁇ 480 pixels has an area of 307,200 square pixels. A pointer magnified to utilize 61,440 pixels would constitute twenty percent of the total desktop area and thus be considered a “ceiling value” to the pointer size.
  • the convergence point is calculated based on a percentage of screen area according to the minor screen dimension.
  • the minor screen dimension By using the minor screen dimension, the convergence value achieves a reasonable behavior when performing in largely disproportionate screens. For example, a monitor that displays a native resolution of 1360 ⁇ 768 pixels yields a major dimension almost 2 ⁇ that of the minor. In conditions like these, it's preferable to use the minor dimension since that ensures that the convergence value will never exceed any dimension of the display, unless explicitly requested by the user. In the above example, a convergence value of 60%, based on the major dimension, would in fact be 816 vertical pixels and exceed the whole of the minor screen dimension.
  • FIG. 20 illustrates yet another alternative embodiment of the invention. Under certain situations intercepting the system pointer identification by monitoring API messaging may not be possible or not preferred. In those cases, the operating system and/or application itself is polled 250 for the current pointer identification value.
  • FIG. 21 illustrates a dialog box displayed for a low-vision end user seeking to adjust the settings of the pointer ceiling.
  • a moveable slider on the left side of the dialog box moves between 32 ⁇ at the top and 4 ⁇ on the bottom. These magnification factors are arbitrary for this example and may vary linearly, by scale and logarithmically.
  • a pointer preview window in the middle of the dialog box illustrates how large the pointer will appear as the moveable slider is adjusted.
  • a default settings checkbox at the lower left of the dialog box allows an end user to return to the preselected settings established by the software developer.
  • a listbox is provided having three rows: (1) Select; (2) Busy; and (3) Text. These row descriptions correspond to the type of pointer that is currently being adjusted.
  • FIG. 21 illustrates a dialog box displayed for a low-vision end user seeking to adjust the settings of the pointer ceiling.
  • a moveable slider on the left side of the dialog box moves between 32 ⁇ at the top and 4 ⁇ on the bottom. These magnification factors are arbitrary for
  • the “Select” row is active thereby showing the “Select” type pointer in the preview window.
  • Three button components are provided at the lower right corner of the dialog box: (1) Apply; (2) OK; and (3) Cancel which fire events to apply the setting immediately, apply the setting and close the dialog box, or not apply the setting and close the dialog box respectively.
  • FIG. 22 illustrates the same dialog box as FIG. 21 but in a different state.
  • the Pointer Type in the list box has been changed to “Busy” which then causes an hourglass pointer preview to be shown.
  • the end user selected a pointer ceiling value of 16 ⁇ .
  • the dialog box has now been changed to a “Text” pointer type which typically is invoked when the mouse cursor is placed over editable or selectable text such as in a word processing application or over text in a website page.
  • the end user decided to adjust the pointer ceiling value to 6 ⁇ .
  • the end user sets a pointer floor value which is the smallest the pointer will appear at any magnification level.
  • the pointer floor value in this example is 4 ⁇ for the “Select” pointer type.
  • convergence values are set for a plurality of different pointers and a plurality of different software applications. For example, when a caret is shown in a Microsoft Word software application when the GUI is at 8 ⁇ magnification the caret is also magnified to 8 ⁇ . However, when the GUI magnification is increased in 16 ⁇ or 32 ⁇ , the caret shown in Microsoft Word remains at 8 ⁇ magnification. The magnification of a cursor appearing in Microsoft Word is synchronized with the magnification of the GUI until the GUI magnification exceeds 4 ⁇ . At that point, the cursor stays at 4 ⁇ magnification while the GUI can continue to increase in magnification.
  • a cursor appearing in Microsoft Visual Studio 2010 is magnified at the same level as the GUI until the GUI exceeds 16 ⁇ magnification. Therefore, it can be seen that when the GUI is at 32 ⁇ magnification the cursors appearing in Visual Studio 2010 remain at 16 ⁇ . Underneath the listbox showing these various settings a button is provided to add new settings that may vary based on the software application, by specific dialog boxes invoked by the operating system API, by the type of pointer, by the pointer set currently used, and the like.
  • FIG. 26 shows a dialog box interface for saving a user-defined pointer scheme.
  • an option exists to set a static pointer magnification level.
  • a text box is provided linked to a spinner may increment or decrement the magnification integer value in the text box. This may be also be stepped so instead of incrementing by values of 1 it may increment in magnification steps (i.e., from 1 ⁇ , 2 ⁇ , 4 ⁇ , 8 ⁇ , 16 ⁇ , and so on).
  • the end user in this case may not want to have a static pointer magnification value wherein regardless of the GUI magnification level the pointer magnification stays the same.
  • the end user decided to set a pointer magnification floor of 4 ⁇ and a pointer magnification ceiling of 16 ⁇ . Underneath the floor and ceiling values were checkboxes to enable these features (floor and ceiling) independently.
  • a list box is provided to select one or more software applications to apply this pointer sizing scheme to. Four applications are listed: (1) Adobe Acrobat; (2) Microsoft Office Professional Plus 2010; (3) Microsoft Project Professional 2010; and (3) Microsoft Visual Studio Professional 2010. The end user selected only Microsoft Office Professional Plus 2010 and Microsoft Project Professional 2010 to apply this scheme to. Finally, the end user is provided a text box in which to name the scheme.
  • the string “MySizingScheme” is entered into the text box.
  • This scheme may be saved in any number of formats available under the current state of the art for storing user settings. These formats may include, but are not limited to, INI files, XML files, registry keys, database fields or proprietary file formats as preferred by the developer.
  • an embodiment of the invention may include one or more computer-readable media having computer-executable instructions for performing a method of running a software program on a computer, the computer operating under an operating system.
  • the method may include, for example, issuing instructions from the software program which include establishing a first magnification level for the GUI, establishing a second magnification level for a pointing indicia, displaying the magnified GUI at the first magnification level, monitoring application program interface messaging, intercepting a call for a system pointer identifier, scaling the pointing indicia to the second magnification level and displaying the pointing indicia.
  • various other aspects of the methods described above may be included on the computer-readable media.

Abstract

A computer program for rendering a magnified graphic user interface (GUI) establishes a first magnification level for the graphic user interface and a second magnification level for a pointer. It displays the magnified GUI at the first magnification level and monitors application program interface messaging for a call for a system pointer identifier. It intercepts this call and scales the pointing indicia not to the magnification level of the GUI, but to the second magnification level for the pointer. The pointer is then displayed to an end user of the computer system at a magnification level that is different from the magnification level of the GUI. Thus, the invention provides for independent magnification of the graphic user interface from the mouse cursor or caret.

Description

    CROSS REFERENCE TO RELATED APPLICATIONS
  • This application is a nonprovisional of U.S. provisional patent application No. 61/222,714 filed Jul. 2, 2009 which is hereby incorporated by reference into this disclosure.
  • FIELD OF INVENTION
  • This invention relates to low vision assistive software, and more particularly to a magnification application for a graphic user interface (GUI).
  • BACKGROUND OF THE INVENTION
  • Low vision individuals often require magnification of computer screen interfaces to discern text and images. Magnification systems may be built into the operating system itself or may comprise feature-rich, third-party products such as those sold under the MAGIC brand manufactured by Freedom Scientific, Inc., based in St. Petersburg, Fla.
  • A deficiency in the current state of the art is the over-magnification of the pointing indicia. Low vision users are often limited in the magnification they can impose because the pointing indicia are magnified in step with the entire GUI. Thus, at high magnification levels (i.e., exceeding 16-fold) pointing indicia become so large they obscure much of the GUI itself.
  • Another deficiency exists in the current state of the art wherein low vision users, depending on the application and their own preferences, may desire a larger or smaller cursor or caret to enhance productivity. For example, a low vision user might desire a mouse pointer for a spreadsheet application to be magnified to 2-fold while the same mouse pointer in a word processing application is easier to use at 4-fold magnification.
  • SUMMARY OF INVENTION
  • An embodiment of the present invention includes a method of rendering a magnified GUI including the steps of establishing a first magnification level for the GUI. The GUI includes the desktop and software applications that execute within the operating system. A second magnification level is established for pointing indicia. The pointing indicia may be a cursor or a caret. A cursor is the graphical image that represents the mouse and its movements. It can take many shapes including, but not limited to, an arrow for pointing, a hand, an hourglass, or an I-shaped text selector. The caret, on the other hand, is the blinking indicia that is used to enter text.
  • The magnified GUI is displayed at the first magnification level. Application program interface messaging for the operating system is monitored and calls for a system pointer identifier (such as a system pointer handle) are intercepted. Alternately or in conjunction with API intercepts, the magnification program may poll the operating system for current mouse pointer information, including but not limited to its position and shape. Instead of merely displaying the pointing indicia at the magnification level of the GUI, the pointing indicia is scaled, instead, to the second magnification level and subsequently displayed.
  • To load mouse pointers, in a Microsoft Windows environment in which the invention may be used applications call the LoadCursor API function:
  • HCURSOR LoadCursor (HINSTANCE hInstance, LPCTSTR LPCTSTR
    lpCursorName);
  • If hInstance is NULL, then lpCursorName contains an identifier representing one of the standard system cursors. These values may include:
  • Value Meaning
    IDC_APPSTARTING Standard arrow and small hourglass
    MAKEINTRESOURCE(32650)
    IDC_ARROW Standard arrow
    MAKEINTRESOURCE(32512)
    IDC_CROSS Crosshair
    MAKEINTRESOURCE(32515)
    IDC_HAND Hand
    MAKEINTRESOURCE(32649)
    IDC_HELP Arrow and question mark
    MAKEINTRESOURCE(32651)
    IDC_IBEAM I-beam
    MAKEINTRESOURCE(32513)
    IDC_ICON Obsolete for applications marked
    MAKEINTRESOURCE(32641) version 4.0 or later.
    IDC_NO Slashed circle
    MAKEINTRESOURCE(32648)
    IDC_SIZE Obsolete for applications marked
    MAKEINTRESOURCE(32640) version 4.0 or later.
    Use IDC_SIZEALL.
    IDC_SIZEALL Four-pointed arrow pointing north,
    MAKEINTRESOURCE(32646) south, east, and west
    IDC_SIZENESW Double-pointed arrow pointing
    MAKEINTRESOURCE(32643) northeast and southwest
    IDC_SIZENS Double-pointed arrow pointing north
    MAKEINTRESOURCE(32645) and south
    IDC_SIZENWSE Double-pointed arrow pointing
    MAKEINTRESOURCE(32642) northwest and southeast
    IDC_SIZEWE Double-pointed arrow pointing west and
    MAKEINTRESOURCE(32644) east
    IDC_UPARROW Vertical arrow
    MAKEINTRESOURCE(32516)
    IDC_WAIT Hourglass
    MAKEINTRESOURCE(32514)
  • If hInstance is not NULL, then lpCursorName contains either a numeric or string identifier representing a graphic image contained in the application's resources. LoadCursor returns a numeric handle to the cursor that was loaded. The foreground application selects the active cursor by calling the SetCursor function. This function takes one of the HCURSOR handles previously created by LoadCursor. By intercepting both of these functions, it is possible to keep track of the active cursor being used by an application. By intercepting the SetForegroundWindow function, it is possible to determine which application is in the foreground and hence, track which application's cursor is active system-wide.
  • An alternative method of obtaining the pointer shape under Windows includes the step of intercepting the drvSetPointerShape value between operating system and display device driver. Using drvSetPointerShape value is most appropriate for the fifteen (15) predefined (non-obsolete) cursor types available in the MICROSOFT WINDOWS application programming interface specification.
  • In an embodiment of the invention, the second magnification level is static. The GUI may be scaled to any magnification but the size of the pointing indicia remains the same.
  • In yet another embodiment of the invention, the second magnification level is preselected according to at least one or more software applications in focus. For example, a mouse cursor may be magnified to 4-fold for a word processor application but only magnified 2-fold by a spreadsheet application. The present invention intercepts API messaging to automatically switch second magnification levels based on the application in the foreground or in focus.
  • The second magnification level may be user-modifiable independently of the first magnification level. For example, a user may hold down a key combination while moving a mouse wheel to scale the magnification level of the GUI without affecting the magnification level of the pointing indicia. Alternatively, a different key combination may invoke magnification only for the pointing indicia. Yet another key combination may re-synchronize the GUI and pointing indicia magnification levels. Separate magnifications levels for cursors and carets may also be established.
  • Another embodiment of the invention intelligently applies a convergence value to optimize the relative magnification of the GUI and pointing indicia. The embodiment includes the steps of magnifying, in synchronization, both a background GUI and a foreground pointing indicia, establishing a magnification convergence value, responsive to a magnification level of the GUI exceeding the convergence value, decoupling synchronization and displaying the pointing indicia magnified at a lesser relative factor than the GUI magnification level, and responsive to a magnification level of the GUI below or equal to the convergence value re-coupling synchronization and displaying the pointing indicia magnified at a factor relative to the GUI magnification level.
  • The synchronization may be achieved by a linear, logarithmic, or step graph relationship. The convergence value may be derived from a number of factors including the magnification level of the pointing indicia. However, an alternate method is to derive the convergence value from a ratio of pointing indicia surface area against GUI surface area. This may be particularly useful as initial pointer size at 1-fold magnification of the GUI may be highly variable (i.e., 0.5×, 1.0×, 2.0×, 4.0×, etc. . . . ).
  • An embodiment of the invention may include having separate convergence values for cursors and carets. Steps to this embodiment include providing a first convergence value for a cursor and a second convergence value for a caret, magnifying the cursor in accordance with the first convergence value, and magnifying the caret in accordance with the second convergence value.
  • A user-selectable pointing indicia magnification adjustment may be provided to decouple the synchronization whereby the pointing indicia is magnified independently of the magnification level of the GUI background and the independently magnified pointing indicia is displayed to the user. The user-selectable pointing indicia magnification adjustment may include voice commands, keystrokes, mouse events, or the like.
  • In yet another embodiment of the invention, a user may wish to occasionally override the automatic convergence feature of the invention. Responsive to a first user-initiated event or adjustment, synchronization is decoupled to display the pointing indicia to a user-selectable level magnification level. Responsive to a second user-initiated event, synchronization is re-coupled to display the pointing indicia according to the convergence value.
  • In yet another embodiment of the invention, erratic pointer movement following a period of pointer inactivity temporarily scales the pointing indicia from a first to a second magnification level allowing the user to identify the location of the pointing indicia. The pointing indicia is then returned to the first magnification level. Erratic pointer movements are detected by monitoring mouse events for speed and direction of the pointer.
  • An embodiment of the invention may include one or more computer-readable media having computer-executable instructions for performing a method of running a software program on a computer, the computer operating under an operating system, the method including issuing instructions from the software program which include establishing a first magnification level for the GUI, establishing a second magnification level for a pointing indicia, displaying the magnified GUI at the first magnification level, receiving pointer-related information either by monitoring application program interface messaging, polling for current information, or a combination of both, scaling the pointing indicia to the second magnification level and displaying the pointing indicia.
  • BRIEF DESCRIPTION OF THE DRAWINGS
  • For a fuller understanding of the invention, reference should be made to the following detailed description, taken in connection with the accompanying drawings, in which:
  • FIG. 1 is a conceptual view of a monitor displaying a GUI and a mouse cursor at 1-fold magnification.
  • FIG. 2 is a conceptual view of a monitor displaying a GUI and a mouse cursor at 2-fold magnification.
  • FIG. 3 is a conceptual view of a monitor displaying a GUI and a mouse cursor at 4-fold magnification.
  • FIG. 4 is a conceptual view of a monitor displaying a GUI and a mouse cursor at 8-fold magnification.
  • FIG. 5 is a conceptual view of a monitor displaying a GUI and a mouse cursor at 16-fold magnification.
  • FIG. 6 is a conceptual view of a monitor displaying a GUI and a mouse cursor at 32-fold magnification.
  • FIG. 7 is a conceptual view of a monitor displaying a GUI at 32-fold magnification and a mouse cursor at 16-fold magnification.
  • FIG. 8 is a line graph showing synchronization of pointer indicia and GUI at a 1-to-1 relationship until pointer indicia reaches a 16-fold magnification ceiling.
  • FIG. 9 is a line graph showing pointer indicia remaining statically enhanced at 4-fold magnification regardless of the magnification level of the GUI.
  • FIG. 10 is a line graph showing pointer indicia synchronized with GUI magnification at a 1-to-1 ratio until GUI reaches an 8-fold magnification level.
  • FIG. 11 is a line graph showing pointer indicia synchronized with GUI magnification at a 1-to-2 ratio until pointer indicia reaches a 4-fold magnification ceiling.
  • FIG. 12 is a line graph showing mouse cursor linearly reaching a 4-fold magnification ceiling while caret continues on a 1-to-1 magnification synchronization with GUI.
  • FIG. 13 is a line graph showing cursor and caret magnification ceilings at various levels of GUI magnification.
  • FIG. 14 is a line graph showing convergence of pointer size at a 16-fold GUI magnification wherein the four pointers started at different magnification levels.
  • FIG. 15 is a conceptual sequence of displays showing circular pointer movement following a period of pointer inactivity to temporarily magnify pointer.
  • FIG. 16 is a conceptual sequence of displays showing zigzag pointer movement following a period of pointer inactivity to temporarily magnify pointer.
  • FIG. 17 is a conceptual sequence of displays showing a lesser caret magnification level compared with a greater cursor magnification level.
  • FIG. 18 is a diagrammatic view of an embodiment of the invention wherein the GUI magnification level and the pointer magnification level are manually set.
  • FIG. 19 is a diagrammatic view of an embodiment of the invention wherein wherein the pointer magnification level is set by a number of possible options, some dynamic and some static.
  • FIG. 20 is a diagrammatic view of an embodiment of the invention wherein instead of monitoring API messaging, the operating system is polled for the current pointer identifier.
  • FIGS. 21-26 are conceptual graphic user interface dialog boxes showing a number of embodiments of end-user adjustment of the independent pointer sizing.
  • DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT
  • FIGS. 1-7 show GUI 10 displaying text 20, button control 30, mouse cursor 40 and GUI magnification level 50. At 1-fold GUI magnification in FIG. 1, mouse cursor 40 is shown at 1× magnification. However, under various embodiments of the invention, mouse cursor 40 could be reduced to lower magnifications (i.e., 0.5×) or increased to higher magnifications (i.e., 4×) while GUI 10 is still at 1-fold magnification.
  • To illustrate an advantage of the present invention, FIGS. 1-6 show a 1-to-1 magnification level between GUI 10 and mouse cursor 40 as would be seen in the current state of the art. In FIG. 2, GUI 10 is magnified 2-fold and mouse cursor 40 is similarly magnified to 2× along with objects in GUI 10 such as text 20 and button control 30. In FIG. 3, GUI 10 is magnified 4-fold and mouse cursor 40 is also magnified to 4×. At 4-fold magnification, button control 30 and text 20 can no longer be entirely displayed within the magnified desktop area of GUI 10. In FIG. 4, GUI 10 is magnified 8-fold and mouse cursor 40 is also magnified to 8×. In FIG. 5, GUI 10 is magnified 16-fold and mouse cursor 40 is also magnified to 16×. In FIG. 6, GUI 10 is magnified 32-fold and mouse cursor 40 is also magnified to 32×. At this level of magnification, mouse cursor 40 provides questionable utility for the low vision user. In most positions, mouse cursor 40 itself cannot be entirely displayed on GUI 10 desktop and obscures other objects on the desktop. Thus, when mouse cursor 40 and GUI 10 are always magnified in 1-to-1 synchronization, less than desirable results may occur. However, in FIG. 7, GUI 10 is magnified 32-fold but mouse cursor 40 is only magnified to 16×. At 16× magnification, mouse cursor 40 maintains a higher level of utility to the user while the user may still have GUI 10 magnified to a very high level. Bifurcating the relative magnification of the pointing indicia (mouse cursor 40) and GUI 10 enables low vision users have meaningful tools to both comprehend the content of GUI 10 at various magnification levels as well as control it via mouse cursor 40.
  • FIGS. 8-14 show line charts that enumerate exemplary embodiments of the invention. These figures illustrate synchronization of pointing indicia and GUI and the decoupling and re-coupling of the synchronization depending on the magnification level of the GUI.
  • In FIG. 8, GUI magnification increases from 1-fold to 36-fold and above. Pointer indicia is magnified in-step at a 1-to-1 relationship until GUI magnification increases beyond 16-fold. At that point, pointer indicia reaches its ceiling value of 16× and no longer is magnified. Hence, the prior synchronization between GUI and pointer indicia magnification is decoupled. However, as GUI magnification drops back to 16-fold, pointer indicia and GUI synchronization is re-coupled to a 1-to-1 relationship. This relationship correlates with the illustrations in FIGS. 1-5, and 7.
  • An alternative embodiment of the invention is shown in FIG. 9 wherein regardless of GUI magnification, pointer indicia is always magnified at 4×. This is static magnification of the pointer indicia.
  • In FIG. 10, pointer indicia and GUI magnification are synchronized in a 1-to-1 relationship up to a 4-fold magnification. After 4-fold magnification, pointer indicia and GUI utilize a second synchronization scheme wherein pointer indicia is magnified in a 1-to-2 relationship with GUI. For example, when GUI is magnified 8-fold, pointer indicia is magnified to 4×. When GUI is magnified to 16-fold, pointer indicia is magnified to 8×. However, beyond 16-fold GUI magnification, pointer indicia remains at 8× magnification (its ceiling value).
  • In FIG. 11, pointer indicia is magnified at 0.5× while GUI is at 1-fold magnification. Synchronization in this example is at a 2-to-1 relationship between GUI and pointer indicia. When GUI is at 2-fold magnification, pointer indicia is at 1×. When GUI is at 4-fold magnification, pointer indicia is at 2×. When GUI is at 8-fold magnification, pointer indicia is at 4×. At GUI magnification levels beyond 8-fold, synchronization is decoupled and pointer indicia remains at its ceiling value of 4×.
  • In FIG. 12, two synchronization schemes are provided: (1) a first for a mouse cursor (solid line); and (2) a second for a caret. Caret magnification remains indefinitely synchronized with GUI magnification. This might be preferable when editing highly enlarged text. However, the mouse cursor is synchronized on a reduced magnification relationship with respect to GUI until its ceiling value is reached at 16-fold GUI magnification. It should be noted that a floor value may also be imposed against pointing indicia whereby magnification level of the pointing indicia is not reduced even though GUI magnification level is lowered.
  • In FIG. 13, distinct synchronization schemes for mouse cursor (▪) versus caret (▴) are shown against GUI magnification (♦). Mouse cursor (▪) hits a ceiling at 4-fold magnification while caret (♦) hits a ceiling at 16-fold GUI magnification.
  • FIG. 14 illustrates a convergence graph showing four (4) different pointer sizes denoted as small (♦), normal (▪), large (▴) and huge (x). Small pointer size value is 0.5×. Normal pointer size value is 1.0×. Large pointer size value is 2.0×. Huge pointer size value is 4.0×. At a 1-fold magnification of the GUI, small, normal, large and huge pointer sizes cover an area of the GUI of ˜0%, 3%, 5% and 10% respectively. As magnification of the GUI is increased, the variation in pointer sizes would produce drastically different user experiences. However, under an embodiment of the present invention, these pointer sizes are normalized (hit their ceiling value) at a 16-fold GUI magnification. As the GUI is magnified from 1-fold to 16-fold, small pointer size is increased substantially more relative to huge pointer size.
  • Pointing indicia magnification levels according to the invention may be overridden by user events. For example, holding down one or more keys on the keyboard and scrolling a mouse wheel may zoom in and out the mouse cursor while keeping the magnification level of the GUI constant. Holding down an alternate set of keys and scrolling the mouse wheel may zoom in and out the GUI while keeping the mouse cursor at the same magnification. Yet another keystroke or keystroke combination may decouple or re-couple the pointing indicia and GUI magnification synchronization.
  • In yet another embodiment of the invention, erratic mouse movements following a period of mouse inactivity act to temporarily magnify the mouse cursor so that it can be easily located by the low vision user. Erratic movement may include, but are not limited to, rapid side-to-side movement and circular movement. In FIG. 15, mouse cursor 60 displayed on GUI 10 is moved in circular motion 70 after a period of mouse inactivity. Magnification is applied to display enlarged mouse cursor 80 for a three-second interval before magnification is released to again display mouse cursor 60 at its previous magnification level.
  • In FIG. 16, mouse cursor 60 displayed on GUI 10 is moved in a zigzag motion 90 after a period of mouse inactivity. Magnification is applied to display enlarged mouse cursor 80 for a three-second interval before magnification is released to again display mouse cursor 60 at its previous magnification level.
  • In FIG. 17, different synchronization schemes for caret 100 and mouse cursor 110 are shown. GUI 10 is 2-fold magnified. Cursor 100 is likewise magnified at 2× while mouse cursor is magnified at 4×.
  • FIG. 18 illustrates the steps to an embodiment of the invention including establishing a first GUI magnification level 120, establishing a second magnification level for a pointing indicia 130, displaying 140 the GUI at the first magnification level, monitoring API messaging 150, intercepting a call for a system pointer identifier 160, scaling 170 the pointing indicia to second magnification level 130 and displaying the pointing indicia 180. First GUI magnification level 120 occurs either by user-initiated input or by initialization at the operating system level or by a separate magnification application such as MAGIC. First GUI magnification level 120 may also be set responsive to a change in application focus (i.e., from a spreadsheet application to a word processing application).
  • A monitoring application or worker thread notifies a mouse handling subsystem of the screen magnification change. The pointer subsystem may calculate the mouse cursor magnification based on the following metrics and processes: (A) Compute the base mouse cursor size, relative to unmagnified system metrics. For example, the user selects 150% base mouse cursor scale. The base size of the mouse cursor would be 1.50×32 pixels=48×48 pixels in size. (B) Compute the convergence point size. In the case of a 1024×768 display size, and assuming a maximum convergence scale of 33% of minor dimension (768 pixels), then the maximum mouse size is 768/3=256 pixels. The convergence magnification is the screen magnification level at which the mouse cursor stops scaling. In this example, the default value of 16× magnification is presumed. That means that at 16× magnification, and for any magnification level beyond 16×, the mouse cursor will be contained within a 256×256 pixel bounding box. (C) Linearly interpolate the per-magnification level pixel modifier—the amount that the mouse cursor bounding box grows for each magnification level between 1× (unmagnified) and 16× (convergence magnification). The general formula is (Max size−computed base size)/(number of magnification levels beyond 1×). In the previous example it is (256−48)/15, or 13.866 pixels. So for every magnification level beyond 1×, an additional 14 pixels are added to each dimension of the mouse cursor bounding box. (D) Add a multiple of the magnification level pixel modifier and the magnification level beyond 1× to the computed base mouse metric (48×48). If in this example the GUI is set to 5× magnification, then the mouse cursor would occupy the following bounding box: 48+(4×13.866)=approximately 103 pixels—which is quite different from and more usable than the 160×160 pixels it would have occupied had the mouse cursor scaling been bounded 1:1 to that of the desktop (32×5=160).
  • For any mouse event from the system (intercepted by the magnification display driver), or for any desktop rendering event that could involve the mouse cursor, the magnification engine tells the pointer subsystem to draw itself. The pointer subsystem queries the system for the current mouse cursor (by handle or other identifier). The pointer subsystem tries to find a cached, vector-sourced substitute. If it finds one it sets it to be the current, internal mouse cursor. If it fails to find one it copies, edge-smoothes, and caches a scaled version of the mouse cursor that is currently the active one, and associates it (by handle or other identifier) for future use in a separate lookup table. It sets this newly created and cached raster-sourced image as the current, internal mouse cursor.
  • The pointer subsystem renders the current, internal mouse cursor to an off-screen image, at a preselected location. That image is ultimately rendered by the magnification subsystem onto the display driver surface.
  • When a user purposely manipulates the mouse cursor scale independently from the screen magnification, the user can manipulate: (1) the mouse cursor base scale, which would have the result of increasing the final mouse cursor size according to some inverse of the magnification level, between 1× and the convergence magnification. Once the user is at the convergence level, using this method, the user could only decrease the mouse cursor size. The magnitude of the mouse cursor's size change at 1× is significantly more that it would be at 14×. This relationship is shown in FIG. 14. (2) A multiple, which may be derived from either a fixed, linear, logarithmic, or other mechanism, that is based on mouse cursor and/or desktop magnification—all which may or may not be allowed to exceed the convergence maximum size.
  • Cursors and carets may be independently configured. The monitoring application intercepts or polls the operating system for the type of pointer deployed (i.e., cursor or caret) and the pointer subsystem renders cursor according to a cursor configuration or the caret according to a caret configuration. The configuration for cursor and carets may be controlled by the magnification engine automatically and/or set by the user. The magnification engine includes one or more display dialog boxes for individually adjusting cursor and caret settings (along with other magnification preferences). These settings are stored in user configuration files such as a registration, INI file, XML file or the like for later retrieval and use.
  • An alternative embodiment of the invention is shown in FIG. 19, the steps include establishing a first GUI magnification level 120, establishing a second magnification level for pointing indicia 130. Second magnification level 130 is selected from magnification scheme array 190 including static pointer magnification 200, pointer magnification ceiling 210, pointer magnification floor 220, and direct user adjustment 230. Magnification scheme array 190 comprises a collection of object properties and settings for the various possible magnification possibilities. The object properties are typically stored on magnetic mediums such as a local hard drive for later recall. The object properties may be saved in various formats, including, but not limited to, system registration, INI, XML, database and the like. The user may switch from one magnification scheme to another responsive to conditions such as an application changing focus. The user may also switch schemes based on user input such as a keystroke or mouse event. Second magnification level 130 may also be calculated 240 based on the surface area of the intercepted system pointer 160 that would cover GUI. For example, second magnification level for a pointing indicia 130 may be calculated so that the pointing indicia overlays twenty (20%) percent of the entire GUI surface area of the display. For example, a desktop that is 680×480 pixels has an area of 307,200 square pixels. A pointer magnified to utilize 61,440 pixels would constitute twenty percent of the total desktop area and thus be considered a “ceiling value” to the pointer size. In yet another embodiment of the invention, the convergence point is calculated based on a percentage of screen area according to the minor screen dimension. By using the minor screen dimension, the convergence value achieves a reasonable behavior when performing in largely disproportionate screens. For example, a monitor that displays a native resolution of 1360×768 pixels yields a major dimension almost 2× that of the minor. In conditions like these, it's preferable to use the minor dimension since that ensures that the convergence value will never exceed any dimension of the display, unless explicitly requested by the user. In the above example, a convergence value of 60%, based on the major dimension, would in fact be 816 vertical pixels and exceed the whole of the minor screen dimension.
  • FIG. 20 illustrates yet another alternative embodiment of the invention. Under certain situations intercepting the system pointer identification by monitoring API messaging may not be possible or not preferred. In those cases, the operating system and/or application itself is polled 250 for the current pointer identification value.
  • FIG. 21 illustrates a dialog box displayed for a low-vision end user seeking to adjust the settings of the pointer ceiling. A moveable slider on the left side of the dialog box moves between 32× at the top and 4× on the bottom. These magnification factors are arbitrary for this example and may vary linearly, by scale and logarithmically. A pointer preview window in the middle of the dialog box illustrates how large the pointer will appear as the moveable slider is adjusted. A default settings checkbox at the lower left of the dialog box allows an end user to return to the preselected settings established by the software developer. On the right side of the dialog box, a listbox is provided having three rows: (1) Select; (2) Busy; and (3) Text. These row descriptions correspond to the type of pointer that is currently being adjusted. In the FIG. 21 example, the “Select” row is active thereby showing the “Select” type pointer in the preview window. Three button components are provided at the lower right corner of the dialog box: (1) Apply; (2) OK; and (3) Cancel which fire events to apply the setting immediately, apply the setting and close the dialog box, or not apply the setting and close the dialog box respectively.
  • FIG. 22 illustrates the same dialog box as FIG. 21 but in a different state. Namely, the Pointer Type in the list box has been changed to “Busy” which then causes an hourglass pointer preview to be shown. In this case, as was the case in FIG. 21, the end user selected a pointer ceiling value of 16×. Turning to FIG. 23, the dialog box has now been changed to a “Text” pointer type which typically is invoked when the mouse cursor is placed over editable or selectable text such as in a word processing application or over text in a website page. In this case the end user decided to adjust the pointer ceiling value to 6×.
  • In FIG. 24, the end user sets a pointer floor value which is the smallest the pointer will appear at any magnification level. The pointer floor value in this example is 4× for the “Select” pointer type.
  • In FIG. 25, convergence values are set for a plurality of different pointers and a plurality of different software applications. For example, when a caret is shown in a Microsoft Word software application when the GUI is at 8× magnification the caret is also magnified to 8×. However, when the GUI magnification is increased in 16× or 32×, the caret shown in Microsoft Word remains at 8× magnification. The magnification of a cursor appearing in Microsoft Word is synchronized with the magnification of the GUI until the GUI magnification exceeds 4×. At that point, the cursor stays at 4× magnification while the GUI can continue to increase in magnification. Finally, a cursor appearing in Microsoft Visual Studio 2010 is magnified at the same level as the GUI until the GUI exceeds 16× magnification. Therefore, it can be seen that when the GUI is at 32× magnification the cursors appearing in Visual Studio 2010 remain at 16×. Underneath the listbox showing these various settings a button is provided to add new settings that may vary based on the software application, by specific dialog boxes invoked by the operating system API, by the type of pointer, by the pointer set currently used, and the like.
  • FIG. 26 shows a dialog box interface for saving a user-defined pointer scheme. In this example, an option exists to set a static pointer magnification level. A text box is provided linked to a spinner may increment or decrement the magnification integer value in the text box. This may be also be stepped so instead of incrementing by values of 1 it may increment in magnification steps (i.e., from 1×, 2×, 4×, 8×, 16×, and so on). The end user in this case may not want to have a static pointer magnification value wherein regardless of the GUI magnification level the pointer magnification stays the same. Therefore, there is a checkbox underneath the static pointer magnification value setting to enable (if checked) or disable (if unchecked) this feature. In this example, the end user decided to set a pointer magnification floor of 4× and a pointer magnification ceiling of 16×. Underneath the floor and ceiling values were checkboxes to enable these features (floor and ceiling) independently. A list box is provided to select one or more software applications to apply this pointer sizing scheme to. Four applications are listed: (1) Adobe Acrobat; (2) Microsoft Office Professional Plus 2010; (3) Microsoft Project Professional 2010; and (3) Microsoft Visual Studio Professional 2010. The end user selected only Microsoft Office Professional Plus 2010 and Microsoft Project Professional 2010 to apply this scheme to. Finally, the end user is provided a text box in which to name the scheme. The string “MySizingScheme” is entered into the text box. This scheme may be saved in any number of formats available under the current state of the art for storing user settings. These formats may include, but are not limited to, INI files, XML files, registry keys, database fields or proprietary file formats as preferred by the developer.
  • It should be noted that in addition to a method, an embodiment of the invention may include one or more computer-readable media having computer-executable instructions for performing a method of running a software program on a computer, the computer operating under an operating system. In such an embodiment, the method may include, for example, issuing instructions from the software program which include establishing a first magnification level for the GUI, establishing a second magnification level for a pointing indicia, displaying the magnified GUI at the first magnification level, monitoring application program interface messaging, intercepting a call for a system pointer identifier, scaling the pointing indicia to the second magnification level and displaying the pointing indicia. In other embodiments, various other aspects of the methods described above may be included on the computer-readable media.
  • It will be seen that the advantages set forth above, and those made apparent from the foregoing description, are efficiently attained and since certain changes may be made in the above construction without departing from the scope of the invention, it is intended that all matters contained in the foregoing description or shown in the accompanying drawings shall be interpreted as illustrative and not in a limiting sense.

Claims (22)

1. One or more computer-readable media having computer-executable instructions for performing a method by running a software program on a computer, the computer operating under an operating system, the method including issuing instructions from the software program comprising:
setting a static magnification level for a pointing indicia that is displayed on a graphic user interface controlled by the operating system;
displaying the graphic user interface at a magnification level different from the static magnification level set for the pointing indicia;
identifying a current system pointer identifier;
scaling or maintaining the pointing indicia size to correspond to the static magnification level set for the pointing indicia; and
displaying the pointing indicia at the static magnification level wherein the pointing indicia remains at the same size regardless of the magnification of the graphic user interface.
2. The media of claim 1 wherein the pointing indicia is selected from the group consisting of cursors and carets and wherein the media further comprises instructions to establish separate static magnifications levels for cursors and carets.
3. One or more computer-readable media having computer-executable instructions for performing a method by running a software program on a computer, the computer operating under an operating system, the method including issuing instructions from the software program comprising:
establishing a plurality of application-specific magnification levels for pointing indicia that are displayed on a graphic user interface controlled by the operating system;
associating each application-specific magnification level with at least one or more software applications that execute on the operating system;
magnifying the graphic user interface generated by the operating system to a user-specified magnification level;
monitoring which software application is in focus on the graphic user interface;
intercepting a call for a current system pointer identifier to be displayed within the current software application that is in focus; and
scaling the pointing indicia to the associated application-specific magnification level according to the software application that is currently in focus.
4. The media of claim 3 wherein the pointing indicia is selected from the group consisting of cursors and carets and wherein the media further comprises instructions to establish separate application-specific magnifications levels for cursors and carets.
5. The media of claim 3 wherein the plurality of application-specific magnification levels are static wherein the pointing indicia is scaled to constant size irrespective of the magnification of the graphic user interface.
6. The media of claim 3 wherein the plurality of application-specific magnification levels are relative to the graphic user interface magnification level wherein the pointing indicia is scaled to size relative to the magnification of the graphic user interface, the scaling selected from the group consisting of linear scaling, stepped scaling and logarithmic scaling.
7. One or more computer-readable media having computer-executable instructions for performing a method by running a software program on a computer, the computer operating under an operating system, the method including issuing instructions from the software program comprising:
establishing an initial magnification level for a graphic user interface and a pointing indicia whereby the graphic user interface and pointing indicia are magnified and reduced in synchronization;
establishing a magnification convergence value wherein synchronization between the graphic user interface and the pointing indicia are maintained for magnification levels equal or less to the magnification convergence value;
responsive to a magnification level of the graphic user interface exceeding the convergence value, decoupling synchronization and maintaining the magnification level of the pointing indicia at the magnification convergence value irrespective of continued magnification of the graphic user interface; and
responsive to a magnification level of the graphic user interface adjusted below or equal to the convergence value re-coupling synchronization and magnifying the pointing indicia at a factor relative to the graphic user interface magnification level.
8. The media of claim 7 wherein the synchronization is linear.
9. The media of claim 7 wherein the synchronization is logarithmic.
10. The media of claim 7 wherein the synchronization is established via stepped values.
11. The media of claim 7 wherein the convergence value is derived from a ratio of pointing indicia surface area against graphic user interface surface area.
12. The media of claim 7 further comprising instructions to perform the steps of:
providing a first convergence value for a cursor and a second convergence value for a caret;
magnifying the cursor in accordance with the first convergence value; and
magnifying the caret in accordance with the second convergence value.
13. The media of claim 7 further comprising the steps of:
providing a user-selectable pointing indicia magnification adjustment to decouple the synchronization whereby the pointing indicia is magnified independently of the magnification level of the graphic user interface background; and
displaying the independently magnified pointing indicia.
14. The method of claim 7 further comprising the steps of:
detecting the resolution of the minor axis of the graphic user interface as displayed to an end user;
establishing a convergence scale; and
dividing the resolution of the minor axis by the convergence scale to compute magnification convergence value.
15. One or more computer-readable media having computer-executable instructions for performing a method by running a software program on a computer, the computer operating under an operating system, the method including issuing instructions from the software program comprising:
magnifying in synchronization both a graphic user interface and a pointing indicia;
establishing a magnification convergence value;
responsive to a magnification level of the graphic user interface exceeding the convergence value, decoupling synchronization and displaying the pointing indicia magnified at a lesser relative factor than the graphic user interface magnification level;
responsive to a magnification level of the graphic user interface below or equal to the convergence value re-coupling synchronization and displaying the pointing indicia magnified at a factor relative to the graphic user interface magnification level;
responsive to a first user-initiated event, decoupling synchronization to display the pointing indicia to a user-selectable level magnification level; and
responsive to a second user-initiated event, re-coupling synchronization to display the pointing indicia according to the convergence value.
16. One or more computer-readable media having computer-executable instructions for performing a method by running a software program on a computer, the computer operating under an operating system, the method including issuing instructions from the software program comprising:
establishing a first magnification level for the graphic user interface;
displaying the magnified graphic user interface at the first magnification level;
detecting erratic pointer activity subsequent to a period of pointer inactivity;
temporarily scaling the pointing indicia to a second magnification level;
displaying the pointing indicia; and
returning the pointing indicia to the first magnification level for display.
17. One or more computer-readable media having computer-executable instructions for performing a method by running a software program on a computer, the computer operating under an operating system, the method including issuing instructions from the software program comprising:
magnifying in synchronization both a graphic user interface and a pointing indicia;
establishing a pointing indicia floor value for magnification; and
responsive to a modification of a current magnification level of the graphic user interface at or below the floor value, decoupling synchronization and displaying the pointing indicia at the floor value until the magnification level of the graphic user interface increases above the floor valve whereby synchronization is re-coupled.
18. The media of claim 17 further comprising the steps of:
detecting the resolution of the minor axis of the graphic user interface as displayed to an end user;
establishing a floor value scale; and
dividing the resolution of the minor axis by the floor value scale to compute the pointing indicia floor value.
19. A method of magnifying a graphic user interface and a pointing indicia on an operating system executed by a computer processor, the method comprising:
magnifying in synchronization both the graphic user interface and the pointing indicia;
establishing a pointing indicia ceiling value for magnification; and
responsive to a modification of a current magnification level of the graphic user interface exceeding the ceiling value, decoupling synchronization and displaying the pointing indicia at the ceiling value unless the magnification level of the graphic user interface falls below the ceiling value whereby synchronization is re-coupled.
20. The method of claim 19 further comprising the steps of:
detecting the resolution of the minor axis of the graphic user interface as displayed to an end user;
establishing a ceiling value scale; and
dividing the resolution of the minor axis by the ceiling value scale to compute the pointing indicia ceiling value.
21. A method of magnifying a graphic user interface and a pointing indicia on an operating system executed by a computer processor, the method comprising:
magnifying in synchronization both the graphic user interface and the pointing indicia;
establishing a pointing indicia floor value for magnification; and
responsive to a modification of a current magnification level of the graphic user interface at or below the floor value, decoupling synchronization and displaying the pointing indicia at the floor value until the magnification level of the graphic user interface increases above the floor valve whereby synchronization is re-coupled.
22. The method of claim 21 further comprising the steps of:
detecting the resolution of the minor axis of the graphic user interface as displayed to an end user;
establishing a floor value scale; and
dividing the resolution of the minor axis by the floor value scale to compute the pointing indicia floor value.
US12/828,735 2009-07-02 2010-07-01 Magnification Interface with Independent Pointer Sizing Abandoned US20110161871A1 (en)

Priority Applications (3)

Application Number Priority Date Filing Date Title
US12/828,735 US20110161871A1 (en) 2009-07-02 2010-07-01 Magnification Interface with Independent Pointer Sizing
US13/775,811 US9235314B2 (en) 2009-07-02 2013-02-25 Magnification interface with independent pointer sizing
US14/941,128 US10048848B2 (en) 2009-07-02 2015-11-13 Magnification interface with independent pointer sizing

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US22271409P 2009-07-02 2009-07-02
US12/828,735 US20110161871A1 (en) 2009-07-02 2010-07-01 Magnification Interface with Independent Pointer Sizing

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US13/775,811 Division US9235314B2 (en) 2009-07-02 2013-02-25 Magnification interface with independent pointer sizing

Publications (1)

Publication Number Publication Date
US20110161871A1 true US20110161871A1 (en) 2011-06-30

Family

ID=43411749

Family Applications (3)

Application Number Title Priority Date Filing Date
US12/828,735 Abandoned US20110161871A1 (en) 2009-07-02 2010-07-01 Magnification Interface with Independent Pointer Sizing
US13/775,811 Active 2031-11-14 US9235314B2 (en) 2009-07-02 2013-02-25 Magnification interface with independent pointer sizing
US14/941,128 Active 2031-05-15 US10048848B2 (en) 2009-07-02 2015-11-13 Magnification interface with independent pointer sizing

Family Applications After (2)

Application Number Title Priority Date Filing Date
US13/775,811 Active 2031-11-14 US9235314B2 (en) 2009-07-02 2013-02-25 Magnification interface with independent pointer sizing
US14/941,128 Active 2031-05-15 US10048848B2 (en) 2009-07-02 2015-11-13 Magnification interface with independent pointer sizing

Country Status (4)

Country Link
US (3) US20110161871A1 (en)
EP (1) EP2449454B1 (en)
CN (1) CN102576280A (en)
WO (1) WO2011002980A2 (en)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110283227A1 (en) * 2010-05-11 2011-11-17 AI Squared Displaying a user interface in a dedicated display area
US20120131446A1 (en) * 2010-11-22 2012-05-24 Samsung Electronics Co., Ltd. Method for displaying web page in a portable terminal
US20130311941A1 (en) * 2012-05-18 2013-11-21 Research In Motion Limited Systems and Methods to Manage Zooming
US9401099B2 (en) 2010-05-11 2016-07-26 AI Squared Dedicated on-screen closed caption display

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9483109B2 (en) * 2012-07-12 2016-11-01 Spritz Technology, Inc. Methods and systems for displaying text using RSVP
US20140189586A1 (en) * 2012-12-28 2014-07-03 Spritz Technology Llc Methods and systems for displaying text using rsvp
JP2016529533A (en) * 2013-05-31 2016-09-23 フリーダム サイエンティフィック インコーポレイテッド Vector-based customizable instruction indicia
US11157130B2 (en) * 2018-02-26 2021-10-26 Adobe Inc. Cursor-based resizing for copied image portions

Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040056899A1 (en) * 2002-09-24 2004-03-25 Microsoft Corporation Magnification engine
US6714218B1 (en) * 2000-09-05 2004-03-30 Intel Corporation Scaling images
US20040250216A1 (en) * 1999-11-04 2004-12-09 Roman Kendyl A. Graphical user interface including zoom control box representing image and magnification of displayed image
US20050204295A1 (en) * 2004-03-09 2005-09-15 Freedom Scientific, Inc. Low Vision Enhancement for Graphic User Interface
US20070013722A1 (en) * 2005-07-12 2007-01-18 Microsoft Corporation Context map in computer display magnification
US20070013723A1 (en) * 2005-07-12 2007-01-18 Microsoft Corporation Magnification engine and interface for computers
US20070192718A1 (en) * 2006-02-10 2007-08-16 Freedom Scientific, Inc. Graphic User Interface Control Object Stylization
US20070198942A1 (en) * 2004-09-29 2007-08-23 Morris Robert P Method and system for providing an adaptive magnifying cursor
US20080195979A1 (en) * 2007-02-13 2008-08-14 Microsoft Corporation Selective display of cursor
US7586481B1 (en) * 2005-05-10 2009-09-08 Apple Inc. Display-pointer visibility
US7916157B1 (en) * 2005-08-16 2011-03-29 Adobe Systems Incorporated System and methods for selective zoom response behavior
US8074181B2 (en) * 2008-09-15 2011-12-06 Microsoft Corporation Screen magnifier panning model with dynamically resizable panning regions
US8176438B2 (en) * 2008-09-26 2012-05-08 Microsoft Corporation Multi-modal interaction for a screen magnifier

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06507256A (en) * 1991-04-24 1994-08-11 サスマン,マイケル Digital document enlargement display device
JPH05298057A (en) * 1992-04-20 1993-11-12 Hitachi Ltd Method for displaying cursor of pointing device
JPH0689156A (en) * 1992-09-07 1994-03-29 Casio Comput Co Ltd Cursor display device
JPH08297543A (en) * 1995-04-26 1996-11-12 Nec Software Ltd Cursor symbol generating method
US5995102A (en) * 1997-06-25 1999-11-30 Comet Systems, Inc. Server system and method for modifying a cursor image
US6448956B1 (en) * 1997-10-31 2002-09-10 Eastman Kodak Company Systems and methods for direct image manipulation
JPH11203018A (en) * 1998-01-09 1999-07-30 Fujitsu Fip Corp Cursor display system and recording medium
US20020167534A1 (en) * 2001-05-10 2002-11-14 Garrett Burke Reading aid for electronic text and displays
US8117565B2 (en) * 2001-10-18 2012-02-14 Viaclix, Inc. Digital image magnification for internet appliance
US20040218451A1 (en) * 2002-11-05 2004-11-04 Said Joe P. Accessible user interface and navigation system and method
JP4564767B2 (en) * 2004-03-22 2010-10-20 キヤノン株式会社 Display device, control method therefor, and control program
US20060095867A1 (en) * 2004-11-04 2006-05-04 International Business Machines Corporation Cursor locator on a display device
US7554522B2 (en) * 2004-12-23 2009-06-30 Microsoft Corporation Personalization of user accessibility options
US7483592B2 (en) * 2005-01-06 2009-01-27 Algorithmic Implementatins, Inc., Dba Ai Squared Method and apparatus for magnifying computer screen display
US7949955B2 (en) * 2005-08-04 2011-05-24 Microsoft Corporation Virtual magnifying glass system architecture
US20070094619A1 (en) * 2005-10-26 2007-04-26 Takuya Shirai Cursor management method and program for the same
US8249315B2 (en) * 2006-05-22 2012-08-21 Upmc System and method for improved viewing and navigation of digital images
US8578292B2 (en) * 2006-12-14 2013-11-05 Microsoft Corporation Simultaneous document zoom and centering adjustment
US8896527B2 (en) * 2009-04-07 2014-11-25 Samsung Electronics Co., Ltd. Multi-resolution pointing system
US8471870B2 (en) * 2009-07-02 2013-06-25 Freedom Scientific, Inc. Vector-based magnified pointer

Patent Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040250216A1 (en) * 1999-11-04 2004-12-09 Roman Kendyl A. Graphical user interface including zoom control box representing image and magnification of displayed image
US6714218B1 (en) * 2000-09-05 2004-03-30 Intel Corporation Scaling images
US20040056899A1 (en) * 2002-09-24 2004-03-25 Microsoft Corporation Magnification engine
US20050204295A1 (en) * 2004-03-09 2005-09-15 Freedom Scientific, Inc. Low Vision Enhancement for Graphic User Interface
US20070198942A1 (en) * 2004-09-29 2007-08-23 Morris Robert P Method and system for providing an adaptive magnifying cursor
US7586481B1 (en) * 2005-05-10 2009-09-08 Apple Inc. Display-pointer visibility
US20070013723A1 (en) * 2005-07-12 2007-01-18 Microsoft Corporation Magnification engine and interface for computers
US20070013722A1 (en) * 2005-07-12 2007-01-18 Microsoft Corporation Context map in computer display magnification
US7916157B1 (en) * 2005-08-16 2011-03-29 Adobe Systems Incorporated System and methods for selective zoom response behavior
US20070192718A1 (en) * 2006-02-10 2007-08-16 Freedom Scientific, Inc. Graphic User Interface Control Object Stylization
US20080195979A1 (en) * 2007-02-13 2008-08-14 Microsoft Corporation Selective display of cursor
US8074181B2 (en) * 2008-09-15 2011-12-06 Microsoft Corporation Screen magnifier panning model with dynamically resizable panning regions
US8176438B2 (en) * 2008-09-26 2012-05-08 Microsoft Corporation Multi-modal interaction for a screen magnifier

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
MAGic® Screen Magnification Software with Speech User's Guide. Part #440329-001 Rev.C. Freedom Scientific BLV Group, LLC. January 2007 *
ZoomText 9.1 User's Guide, Second Edition: February 2009. Algorithmic Implementations Inc, d/b/a Ai Squared. *

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110283227A1 (en) * 2010-05-11 2011-11-17 AI Squared Displaying a user interface in a dedicated display area
US8856682B2 (en) * 2010-05-11 2014-10-07 AI Squared Displaying a user interface in a dedicated display area
US9401099B2 (en) 2010-05-11 2016-07-26 AI Squared Dedicated on-screen closed caption display
US20120131446A1 (en) * 2010-11-22 2012-05-24 Samsung Electronics Co., Ltd. Method for displaying web page in a portable terminal
US20130311941A1 (en) * 2012-05-18 2013-11-21 Research In Motion Limited Systems and Methods to Manage Zooming
US9435801B2 (en) * 2012-05-18 2016-09-06 Blackberry Limited Systems and methods to manage zooming

Also Published As

Publication number Publication date
EP2449454A2 (en) 2012-05-09
EP2449454A4 (en) 2016-08-17
CN102576280A (en) 2012-07-11
US10048848B2 (en) 2018-08-14
US20160070459A1 (en) 2016-03-10
EP2449454B1 (en) 2018-12-26
US9235314B2 (en) 2016-01-12
US20130174088A1 (en) 2013-07-04
WO2011002980A3 (en) 2011-04-21
WO2011002980A2 (en) 2011-01-06

Similar Documents

Publication Publication Date Title
US10048848B2 (en) Magnification interface with independent pointer sizing
US6473102B1 (en) Method and system for automatically resizing and repositioning windows in response to changes in display
US8907990B2 (en) Display system, display method, program, and recording medium
US6922816B1 (en) Method and system for adjusting settings with slider controls having variable sensitivity
KR101608095B1 (en) Arranging display areas utilizing enhanced window states
CA2012795C (en) Image editor zoom function
US7694234B2 (en) Virtual magnifying glass with on-the fly control functionalities
US7865215B2 (en) Magnification of currently selected menu item
US20080148177A1 (en) Simultaneous document zoom and centering adjustment
US20060224992A1 (en) Graphical user interface management
JPH1011264A (en) Window resizing method, and computer system
US6396487B1 (en) User interface enhancement for windows-based operating systems
US20070198942A1 (en) Method and system for providing an adaptive magnifying cursor
EP1589409A2 (en) System and method for aligning objects using non-linear pointer movement
US8471870B2 (en) Vector-based magnified pointer
JP5616223B2 (en) System and method for capturing digital images
CN102117187B (en) Method, device and system for displaying multi-area screen during remote connection process
JP2004348380A (en) Thin client system, thin client terminal, relay device, server system, and thin client terminal screen display method
US20070198953A1 (en) Target acquisition
CN114741016B (en) Operation method, device, electronic equipment and computer readable storage medium
US20050154974A1 (en) Method, apparatus and program storage device for inline controlling of row and column sets in tabular displays
JPH07110754A (en) Icon display device
CN111124246B (en) Interface interaction method, equipment and storage medium
WO2008064613A1 (en) Method and apparatous for processing desktop backgrounds and interface system for os desktop
JP3404208B2 (en) Scanning electron microscope

Legal Events

Date Code Title Description
AS Assignment

Owner name: RBC BANK (USA) INC., GEORGIA

Free format text: SECURITY AGREEMENT;ASSIGNORS:FREEDOM SCIENTIFIC INC.;FREEDOM SCIENTIFIC BLV GROUP, LLC;REEL/FRAME:025375/0884

Effective date: 20101117

STCB Information on status: application discontinuation

Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION

AS Assignment

Owner name: FREEDOM SCIENTIFIC INC., FLORIDA

Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:RBC BANK (USA) INC.;REEL/FRAME:036542/0109

Effective date: 20141030