IP Library Granted Patent US 7,770,121
Granted Patent B2
US 7,770,121 · App. 11/786,511 · Granted Aug 3, 2010

Host controlled user interface

Assignee: Microsoft Corporation
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 7,770,121
App. No.
11/786,511
Granted
Aug 3, 2010
Kind
B2
Abstract

Described herein is technology for, among other things, a graphical user interface. The graphical user interface is made up of multiple user interface components. The multiple user interface components are hosted by a host user interface, which encapsulates and exposes the user interface components together to present a unified view of the user interface components as a single user interface. Moreover, the host user interface presents the capabilities of the user interface components as a whole.

Claims (73)

1. A method of presenting an integrated user interface (UI), the method comprising:

registering a plurality of separately coded UI components for an e-mail client application in a registry on a computing device, the plurality of separately coded UI components comprising a menu bar, a toolbar, a folder view, an e-mail list pane, and a message pane for the e-mail client application, wherein:

each of the plurality of separately coded UI components for the e-mail client application is registered with at least one host UI, and

the plurality of separately coded UI components for the e-mail client application is not compiled together as a single piece of code;

initializing, on the computing device, a host UI comprising a window of the e-mail client application;

analyzing the registry to determine each separately coded UI component for the e-mail client application that is registered with the host UI and is to be included in an integrated UI implemented by the window of the e-mail client application;

creating, by the host UI, an instance of each separately coded UI component that is to be included in the integrated UI;

interfacing, by the host UI, with each separately coded UI component that is to be included in the integrated UI; and

presenting, by the host UI, each separately coded UI component together as the integrated UI implemented by the window of the e-mail client application.

2. The method as recited in claim 1 wherein the plurality of separately coded UI components for the e-mail client application includes a first UI component that is coded based on a first programming language and a second UI component that is coded based on a second programming language that is different than the first programming language.

3. The method as recited in claim 1 further comprising:

registering a new separately coded UI component for the e-mail client application in the registry for implementing an enhancement to the host UI.

4. The method as recited in claim 1 further comprising:

removing a separately coded UI component from the intergrated UI; and

presenting the integrated UI without recompiling other separately coded UI components included in the integrated UI and without recompiling the host UI.

5. The method as recited in claim 1 further comprising:

adding a new separately coded UI component to the integrated UI without recompiling other separately coded UI components included in the integrated UI and without recompiling the host UI.

6. The method as recited in claim 5 further comprising:

registering the new separately coded UI component with the host UI.

7. The method as recited in claim 1 further comprising:

changing a separately coded UI component included in the integrated UI without recompiling other separately coded UI components included in the integrated UI and without recompiling the host UI.

8. The method as recited in claim 1 further comprising:

creating, by the host UI, an instance of a toolbar for the e-mail client application to be included in the integrated UI;

creating, by the toolbar, an instance of a first button to be included in the toolbar;

creating, by the toolbar, an instance of a second button to be included in the toolbar, wherein the first button and the second button are separately coded and based on different programming languages; and

presenting, by the toolbar, the first button and the second button together as an integrated sub-UI implemented by the toolbar.

9. The method as recited in claim 2 wherein the first programming language and the second programming language are different programming languages selected from the group consisting of C++, C++ Microsoft Foundation Class, C++ non-Microsoft Foundation Class, Visual Basic, and Avalon.

10. A computing device comprising a processing unit executing computer-readable instructions stored in memory of the computing device for performing a method of presenting an integrated user interface (UI), the method comprising:

registering a plurality of separately coded UI components for an e-mail client application in a registry on the computing device, the plurality of separately coded UI components comprising a menu bar, a toolbar, a folder view, an e-mail list pane, and a message pane for the e-mail client application, wherein:

each of the plurality of separately coded UI components for the e-mail client application is registered with at least one host UI,

the plurality of separately coded UI components for the e-mail client application is not compiled together as a single piece of code, and

the plurality of separately coded UI components for the e-mail client application includes a first UI component that is coded based on a first programming language and a second UI component that is coded based on a second programming language that is different than the first programming language;

initializing a host UI comprising a window of the e-mail client application;

analyzing the registry to determine each separately coded UI component for the e-mail client application that is registered with the host UI and is to be included in an integrated UI implemented by the window of the e-mail client application;

creating, by the host UI, an instance of each separately coded UI component that is to be included in the integrated UI including the first UI component and the second UI component;

interfacing, by the host UI, with each separately coded UI component that is to be included in the integrated UI including the first UI component and the second UI component; and

presenting, by the host UI, each separately coded UI component together as the integrated UI implemented by the window of the e-mail client application.

11. The computing device as recited in claim 10 wherein the first UI component comprises a first sub-UI component and a second sub-UI component.

12. The computing device as recited in claim 11 wherein:

the first sub-UI component and the second sub-UI component are based on different UI technologies of the first programming language, and

the first UI component presents the first sub-UI component and the second sub-UI component to the host UI as a single integrated sub-UI.

13. The computing device as recited in claim 10 wherein:

the host UI is configurable to request the first UI component and the second UI component to perform a string search, and

the first UI component and the second UI component are configurable to return search results for the string search to the host UI.

14. The computing device as recited in claim 13 wherein:

the first UI component comprises a first sub-UI component and a second sub-UI component,

the first UI component is configurable to request the first sub-UI component and the second sub-UI component to perform the string search requested by the host UI, and

the first sub-UI component and the second sub-UI component are configurable to return search results for the string search to the first UI component and the second UI component.

15. The computing device as recited in claim 10 wherein:

the window of the e-mail client application comprises an e-mail composition window, and

the first UI component comprises a message pane for the e-mail client application that is reused from another window of the e-mail client application that used the first UI component as a message preview pane.

16. A computer-readable storage medium storing computer-executable instructions that, when executed, cause a computing device to perform a method of providing an integrated user interface (UI), the method comprising:

registering a plurality of separately coded UI components for an e-mail client application in a registry on the computing device, the plurality of separately coded UI components comprising a menu bar, a toolbar, a folder view, an e-mail list pane, and a message pane for the e-mail client application, wherein:

each of the plurality of separately coded UI components for the e-mail client application is registered with at least one host UI,

the plurality of separately coded UI components for the e-mail client application is not compiled together as a single piece of code, and

the plurality of separately coded UI components for the e-mail client application includes at least one UI component that is coded based on a first programming language that is different from a second programming language used to code another of the plurality of separately coded UI components;

initializing a host UI comprising a window of the e-mail client application;

analyzing the registry to determine each separately coded UI component for the e-mail client application that is registered with the host UI and is to be included in an integrated UI implemented by the window of the e-mail client application;

creating, by the host UI, an instance of each separately coded UI component that is to be included in the integrated UI including the at least one UI;

interfacing, by the host UI, with each separately coded UI component that is to be included in the integrated UI including the at least one UI component; and

presenting, by the host UI, each separately coded UI component together as the integrated UI implemented by the window of the e-mail client application.

17. The computer-readable storage medium as recited in claim 16 further comprising computer-executable instructions for:

enabling a user to cycle focus through items associated with UI components included in the integrated UI by performing an action.

18. The computer-readable storage medium as recited in claim 17 wherein enabling a user to cycle focus comprises:

requesting a first UI component to cycle focus to a next item; and

requesting a second UI component to cycle focus to the next item if the first UI component does not contain the next item.

19. The computer-readable storage medium as recited in claim 17 wherein enabling a user to cycle focus comprises:

determining cycle-able controls of the UI components included in the integrated UI;

creating a list of cycle-able controls; and

cycling through the list of cycle-able controls, wherein an item associated with a current cycle-able control has focus in the integrated UI.

20. The computer-readable storage medium as recited in claim 19 wherein determining cycle-able controls of the UI components included in the integrated UI comprises:

determining cycle-able controls corresponding to each sub-UI component of each UI component; and

returning an array for each UI component comprising cycle-able controls corresponding to each sub-UI component.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 9, 2014
From: MICROSOFT CORPORATION
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 034542/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 28, 2007
From: JAIN, MANOJ; DAS, ARCHAN
To: MICROSOFT CORPORATION
Reel/Frame 019490/0894 →
Continuity (1)
Related Publication 20080256469A1 · Oct 16, 2008