IP Library Granted Patent US 9,678,640
Granted Patent B2
US 9,678,640 · App. 14/495,376 · Granted Jun 13, 2017

View management architecture

Inventors: William Scott Stauber (Seattle, WA); Ramrajprabu Balasubramanian (Renton, WA); Patrick Derks (Seattle, WA); Kenton Allen Shipley (Woodinville, WA); Darren Ray Davis (Woodinville, WA)
Assignee: Microsoft Technology Licensing, LLC
G06F3/04842G06F3/0482G06F9/4445
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 9,678,640
App. No.
14/495,376
Granted
Jun 13, 2017
Kind
B2
Abstract

Multi-display computing environments are often represented as a unified coordinate space, where each display presents application views within a coordinate region. Such arrangements may enable features such as application views that span multiple displays, but such features may not appeal to users. Additionally, such representations may complicate the application of layouts to particular displays while maintaining relationships among application views. Instead, a view management architecture may generate a user interface collection comprising, for respective displays, an arrangement of view entries for respective views presented on the display. Entries for new views may be added to the arrangement for a particular display, and may be contained within an application container encapsulating all views of an application on the display. This multi-display representation enables display layouts to be applied to the views within a particular display while preserving relationships among views presented by each of several displays of the computing environment.

Claims (63)

1. A method of presenting a computing environment on at least two displays, the method involving a device having a processor and comprising:

executing, on the processor, instructions that cause the device to:

generate a user interface collection comprising, for respective displays, an arrangement of view entries for respective views presented on the display;

responsive to receiving a request to present an application on a selected display, create, in the arrangement of view entries for the selected display, a new view entry representing a view of the application at a position on the selected display; and

responsive to receiving a request to apply a layout to a selected display, apply the layout to the arrangement of the at least one view entry for the selected display.

2. The method of claim 1 , wherein:

the arrangement of view entries further comprises a user interface element tree; and

creating the new view entry further comprises: inserting the new view entry as a node of the user interface element tree.

3. The method of claim 1 , wherein:

respective applications are represented in the user interface collection as an application container encapsulating the view entries of respective views of the application; and

creating the new view entry further comprises: creating the new view entry in the application container for the application.

4. The method of claim 3 , wherein executing the instructions further causes the device to, responsive to receiving a request to move an application from a first display to a second display, move the application container encapsulating the view entries of respective views of the application from the arrangement for the first display to the arrangement for the second display.

5. The method of claim 4 , wherein:

the application is associated with a related application within the computing environment; and

executing the instructions further causes the device to, responsive to moving the application container for the application, move the application container encapsulating the view entries of respective views of the related application from the arrangement for the first display to the arrangement for the second display.

6. The method of claim 1 , wherein executing the instructions further causes the device to, responsive to moving a view of an application in the arrangement of view entries for a selected display, adjust the layout for the selected display according to the moving of the view of the application.

7. The method of claim 1 , wherein:

the device further comprises a layout template set comprising at least one layout template; and

executing the instructions further causes the device to:

responsive to receiving a request to present the layout template set, presents the layout template set; and

responsive to receiving a selection of a selected layout template for a selected display, applies the selected layout template to the selected display.

8. The method of claim 7 , wherein executing the instructions further causes the device to, responsive to receiving a request to store a new layout template in the layout template set, store the new layout template in the layout template set.

9. A device that presents a computing environment, the device comprising:

at least two displays;

a processor; and

a memory storing instructions that, when executed by the processor, provide a system comprising:

a display manager that generates in the memory a user interface collection comprising, for respective displays, an arrangement of view entries for respective views presented on the display;

an application positioner that, responsive to receiving a request to present an application on a selected display, creates, in the arrangement of view entries for the selected display, a new view entry representing a view of the application at a position on the selected display; and

a view manager that, responsive to receiving a request to apply a layout to a selected display, applies the layout to the arrangement of the at least one view entry for the selected display.

10. The device of claim 9 , wherein the system further comprises: a shell chrome manager that, responsive to receiving a request to create a shell user interface element on a selected display, creates, in the arrangement of view entries for the selected display, a shell view entry representing the shell user interface element at a position on the selected display.

11. The device of claim 10 , wherein:

a selected shell view entry further comprises a spacing element positioned between a first view and a second view; and

the application positioner further, responsive to adjusting a position of the first view on a selected display, adjusts the position of the spacing element according to the first view and the second view.

12. The device of claim 10 , wherein:

the request to create the shell user interface element spans at least two selected displays; and

the shell chrome manager, responsive to receiving the request, further creates, within respective selected displays, a shell view entry representing the shell user interface element at a position on the selected display.

13. The device of claim 10 , wherein the system further comprises:

an application presentation history representing a history of applications presented on the display including a current view; and

an application transitioner that, responsive to receiving a request to transition from the current view to a next view for a selected display:

records the next view in the application presentation history for the selected display; and

rearranges a selected view entry of the next view above the current view within the user interface collection for the selected display.

14. The device of claim 13 , wherein the system further comprises an application switcher that:

responsive to receiving a request to present a list of views on a selected display, presents the application presentation history of the views on the selected display; and

responsive to receiving a selected view from the application presentation history, invokes the application transitioner to select the selected view as the current view.

15. A memory storing instructions that, when executed on a processor of a device having access to at least two displays, cause the device to present a computing environment, by:

generating a user interface collection comprising, for respective displays, an arrangement of view entries for respective views presented on the display;

responsive to receiving a request to present an application on a selected display, creating, in the arrangement of view entries for the selected display, a new view entry representing a view of the application at a position on the selected display; and

responsive to receiving a request to apply a layout to a selected display, applying the layout to the arrangement of the at least one view entry for the selected display.

16. The memory of claim 15 , wherein executing the instructions further causes the device to, responsive to receiving a request to bind an input component of the computing environment to a view, bind the input component to the view.

17. The memory of claim 16 , wherein:

respective displays further comprise an input focus that is associated with a selected view; and

executing the instructions further causes the device to:

responsive to receiving, from an input component that is not bound to a view, user input that is directed to a selected display, direct the user input to the selected view that is associated with the input focus; and

responsive to receiving a request to associate a second view with the input focus of the selected display:

dissociate the input focus and the selected view; and

associate the input focus and the second view.

18. The memory of claim 15 , wherein executing the instructions on the processor further causes the device to, responsive to receiving a request to add a virtual display to the at least two displays:

generate in the user interface collection an arrangement for the virtual display; and

position the virtual display relative to the at least two displays in the user interface collection.

19. The memory of claim 15 , wherein:

a selected display of the at least two displays is accessible to the device through an auxiliary device; and

executing the instructions on the processor further causes the device to, responsive to receiving a request to transmit output for the selected display to the auxiliary device for presentation to the user.

20. The memory of claim 15 , wherein executing the instructions on the processor further causes the device to, responsive to receiving a request to project a selected view from a first display to a second display, present the selected view on the second display in addition to the first display.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 9, 2015
From: MICROSOFT CORPORATION
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 039025/0454 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 5, 2014
From: STAUBER, WILLIAM SCOTT; BALASUBRAMANIAN, RAMRAJPRABU; DERKS, PATRICK; SHIPLEY, KENTON ALLEN; DAVIS, DARREN RAY
To: MICROSOFT CORPORATION
Reel/Frame 034388/0108 →
Continuity (1)
Related Publication 20160085417A1 · Mar 24, 2016