IP Library Granted Patent US 10,656,802
Granted Patent B2
US 10,656,802 · App. 15/479,964 · Granted May 19, 2020

User interface component registry

Inventors: Diego F. Martinez (Bellevue, WA); Savannah K Reiff (Kirkland, WA); Matthew P Kopchick (Bellevue, WA); Edward A Layne (Seattle, WA); Andrey V. Fomichev (Bellevue, WA)
Assignee: Microsoft Technology Licensing, LLC
G06F3/0484G06F3/0482G06F9/451G06F3/04845G06F9/44505
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,656,802
App. No.
15/479,964
Granted
May 19, 2020
Kind
B2
Abstract

Systems, methods, and computer-executable instructions for notifying UI components of state changes of other UI components are disclosed. Operations for notifying UI components can include registering first and second UI components. The second UI component can be associated with the first UI component. A state of the first UI component can be monitored for changes. Once a state change is detected, the second UI component can receive a notification of the state change. The second UI component can then update its state accordingly.

Claims (55)

1. A system for notifying user interface (UI) components of state changes, the system comprising:

a hardware processing unit configured to perform operations comprising:

receiving a request for an anchor registry associated with a parent user interface (UI) window;

determining an anchor registry does not exist for the parent UI window;

creating the anchor registry based upon determining the anchor registry does not exist;

registering a first user interface (UI) component associated with a parent UI window in the anchor registry, wherein a first anchor identifier is associated with the first UI component;

receiving a second registration request from a second UI component associated with the parent UI window, wherein a second anchor identifier is associated with the second UI component;

receiving a request to associate the first UI component with the second UI component, wherein the request comprises the first anchor identifier and the second anchor identifier;

registering the second UI component, in the anchor registry, to receive one or more events associated with the first UI component based upon the request to associate the first UI component with the second UI component;

monitoring, in the anchor registry, a state of the first UI component to detect a state change of the first UI component, the state change including a moving or resizing of the first UI component, wherein the first UI component is displayed at a first location, and wherein the state change indicates a location change of the first UI component;

determining one or more UI components are registered to receive a notification of the state change of the first UI component;

providing the notification of the state change of the first UI component from the anchor registry to the one or more UI, components, based on the registration of the one or more UI components in the anchor registry, wherein the one or more UI components comprises the second UI component;

determining a second location of the first UI component within the parent UI window, the second location resulting from the moving or resizing of the first UI component based on the location change; and

in response to the notification of the state change being provided from the anchor registry to the second UI component, updating a location of the second UI component within the parent UI window from a third location to a fourth location based upon the location change of the first UI component to the second location.

2. The system of claim 1 , wherein the first UI component comprises a menu item.

3. The system of claim 2 , wherein the second UI component comprises a teaching callout that includes displayed information associated with the first UI component.

4. The system of claim 1 , wherein a location of the second UI component is updated based upon the notification.

5. The system of claim 1 , wherein the notification comprises the second location of the first UI component.

6. The system of claim 1 , wherein the state change includes a focus change of the first UI component.

7. The system of claim 1 , wherein the state change indicates the first UI component is no longer visible, and wherein the operations further comprise hiding the second UI component within the parent UI window.

8. The system of claim 1 , wherein the parent UI window is an outermost window of an application.

9. The system of claim 1 , wherein the operations further comprise determining, at runtime, the first anchor identifier.

10. The system of claim 1 , wherein monitoring a state of the first UI component comprising monitoring operation system messages and messages from the parent UI window.

11. The system of claim 1 , wherein the operations further comprise highlighting the first UI component.

12. A method, performed by a computing device, for notifying user interface (UI) components of state changes, the method comprising:

receiving a request for an anchor registry associated with a parent user interface (UI) window;

determining an anchor registry does not exist for the parent UI window;

creating the anchor registry based upon determining the anchor registry does not exist;

registering, in the anchor registry, a first UI component associated with the parent UI window, wherein a first anchor identifier is associated with the first UI component;

receiving a second registration request from a second UI component associated with the parent UI window, wherein a second anchor identifier is associated with the second UI component;

receiving a request to associate the first UI component with the second UI component, wherein the request comprises the first anchor identifier and the second anchor identifier;

registering, in the anchor registry, the second UI component to receive one or more events associated with the first UI component based upon the request to associate the first UI component with the second UI component;

monitoring, in the anchor registry, a state of the first UI component to detect a state change of the first UI component, the state change including a moving or resizing of the first UI component, wherein the first UI component is displayed at a first location, and wherein the state change indicates a location change of the first UI component;

determining one or more UI components are registered to receive a notification of the state change of the first UI component;

providing the notification of the state change of the first UI component from the anchor registry to the one or more UI components, based on the registration of the one or more UI components in the anchor registry, wherein the one or more UI components comprises the second UI component;

determining a second location of the first UI component within the parent UI window, the second location resulting from the moving or resizing of the first UI component based on the location change; and

in response to the notification of the state change being provided from the anchor registry to the second UI component, updating a location of the second UI component within the parent UI window from a third location to a fourth location based upon the location change of the first UI component to the second location.

13. The method of claim 12 , wherein the first UI component comprises a menu item, and wherein the second UI component comprises a teaching callout comprising displayed information associated with the first UI component.

14. A computer-readable storage media storing computer-executable instructions for causing a computing device to notify user interface (UI) components of state changes, the stored instructions comprising:

instructions to receive a request for an anchor registry associated with a parent UI window;

instructions to determine the anchor registry does not exist for the parent UI window;

instructions to create the anchor registry based upon determining the anchor registry does not exist;

instructions to register a first UI component associated with the parent UI window, wherein a first anchor identifier associated with the first UI component;

instructions to receive a second registration request from a second UI component associated with the parent UI window, wherein a second anchor identifier is associated with the second UI component;

instructions to receive a request to associate the first UI component with the second UI component, wherein the request comprises the first anchor identifier and the second anchor identifier;

instructions to register the second UI component to receive one or more events associated with the first UI component based upon the request to associate the first UI component with the second UI component;

instructions to monitor, in the anchor registry, a state of the first UI component to detect a state change of the first UI component, the state change including a moving or resizing of the first UI component, wherein the first UI component is displayed at a first location, and wherein the state change indicates a location change of the first UI component;

instructions to determine one or more UI components are registered to receive a notification of the state change of the first UI component;

instructions to provide the notification of the state change of the first UI component from the anchor registry to the one or more UI components, based on the registration of the one or more UI components in the anchor registry, wherein the one or more UI components comprises the second UI component;

instructions to determine a second location of the first UI component within the parent UI window, the second location resulting from the moving or resizing of the first UI component based on the location change; and

instructions to, in response to the notification of the state change being provided from the anchor registry to the second UI component, update a location of the second UI component within the parent UI window from a third location to a fourth location based upon the location change of the first UI component to the second location.

15. The computer-readable storage media of claim 14 , wherein the notification comprises the second location of the first UI component.

16. The computer-readable storage media of claim 14 , wherein the state change includes a focus change of the first UI component.

17. The computer-readable storage media of claim 14 , wherein the state change indicates the first UI component is no longer visible, and wherein the operations further comprise hiding the second UI component within the parent UI window.

18. The computer-readable storage media of claim 14 , wherein the parent UI window is an outermost window of an application.

Assignments (3)
CORRECTIVE ASSIGNMENT TO CORRECT THE SPELLING OF INVENTOR ANDREY V. FOMICHEV'S NAME AND ADD INVENTOR EDWARD A LAYNE PREVIOUSLY RECORDED ON REEL 041931 FRAME 0412. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Jun 5, 2017
From: LAYNE, EDWARD A; FOMICHEV, ANDREY V.
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 042688/0806 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 7, 2017
From: FOMICHEV, AUDREY V.
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 041931/0412 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 5, 2017
From: REIFF, SAVANNAH K.; MARTINEZ, DIEGO F.; KOPCHICK, MATTHEW P.
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 041862/0962 →
Continuity (1)
Related Publication 20180292958A1 · Oct 11, 2018