Left rail corresponding icon for launching apps within the context of a personal information manager

Systems and method are directed to launching an application from a rail located within a user interface of a personal information manager application. More specifically, a display of a first user interface of a first application may be rendered at a display device, where the first user interface includes a rail populated with a plurality of icons representing a plurality of applications. At least one of the plurality of icons may be selected and a second application may be determined based on the selected icon. Based upon the selection of the icon, a display of a second user interface may be rendered within a portion of the first user interface.

BACKGROUND

Icons are generally used as shortcuts to launch applications, such as word processing application, messaging applications and the like. In some examples, icons within applications such as word processing applications may be used for performing a function associated with the application and/or a file of the application. For example, an icon for performing a paste function within the file may be located within a toolbar of the application. However, such icons are generally limited to performing functions related to the application in which they are presented. Moreover, if a user desires to launch an application when viewing another application, the user generally has to divert their attention from the application they are viewing in order to launch the application they wish to use. For example, the user may need to minimize or close a current application, locate the application they wish to use, or an icon indicative of the application they wish to use, and then launch such application. Accordingly, a user may lose context and/or focus when having to perform multiple steps to launch an application.

SUMMARY

In accordance with examples of the present disclosure, an icon associated with an application may be located in a rail that is part of the application the user is currently using or working in. The application, when launched from the rail, may be contained within an application in which the user is currently working. As an example, a user may be using an application, such as a personal information manager application; MICROSOFT™ OUTLOOK™ is an example of a personal information manager application and/or application a user may be using. Instead of requiring a user to locate another application either as an icon on a desktop or from an icon in a start menu, an icon associated with an application may be located in a rail, where the rail may be positioned at a left side of the personal information manager application. An application launched from the rail, may be contained within, or embedded within, a window, area, or region of a user interface that a user may be currently working in. Accordingly, user attention and focus may be maintained at the personal information manager application.

In accordance with at least one example of the present disclosure, a system is provided. The system may include one or more computer readable storage media and program instructions stored on the one or more computer readable storage media that, when executed by at least one processor, cause the at least one processor to: cause a display of a first user interface of a first application to be rendered at a display device, the first user interface comprising a rail including a plurality of icons representing a plurality of applications; receive an indication of an input directed to a selection of an icon of the plurality of icons, determine a second application associated with the selected icon; and cause a display of a second user interface of the second application to be rendered within a portion of the first user interface at the display device.

In accordance with at least one example of the present disclosure, a method for displaying a user interface of an application is provided. The method may include causing a rendering of a display of a first user interface of a first application at a display device, the first user interface comprising a rail including a plurality of icons representing a plurality of applications, receiving an indication of an input directed to a selection of an icon of the plurality of icons; determining a second application associated with the selected icon, determining a location to render a display of a second user interface associated with the second application; and causing a rendering of a display of the second user interface associated with the second application at the determined location.

In accordance with at least one example of the present disclosure, a method for displaying a user interface of an application is provided. The method may include determining, from a manifest file, a plurality of icons representing a plurality of applications to be displayed at a first user interface, populating a first application window of a first user interface with the determined plurality of icons, receiving an indication of a selection of an icon of the determined plurality of icons from within the first application window of the first user interface, determining an application associated with the selected icon, and causing a user interface associated with the determined application to be displayed within a second application window of the first user interface.

DETAILED DESCRIPTION

In the following detailed description, references are made to the accompanying drawings that form a part hereof, and in which are shown by way of illustrations specific embodiments or examples. These aspects may be combined, other aspects may be utilized, and structural changes may be made without departing from the present disclosure. Embodiments may be practiced as methods, systems, or devices. Accordingly, embodiments may take the form of a hardware implementation, an entirely software implementation, or an implementation combining software and hardware aspects. The following detailed description is therefore not to be taken in a limiting sense, and the scope of the present disclosure is defined by the appended claims and their equivalents (0042)FIG. 1depicts a user interface100of a personal information manager application101in accordance with examples of the present disclosure. Non-limiting examples of the personal information manager application101include, but are not limited to, MICROSOFT™ OUTLOOK™, SCRIBE™, POSTBOX™, EVOLUTION™, MOZILLA™ THUNDERBIRD™, and GMAIL™. In some examples, the personal information manager application101may be an application that manages information other than personal information. As an example, corporate financial information, company logistics information, and/or employment data may be managed by the personal information manager101. In some examples, the personal information manager application101may be a native client application residing on a processing device such as a computing device; in some examples, the personal information manager application101may be a web application, such as but not limited to OUTLOOK WEB ACCESS provided by MICROSOFT™ or GMAIL™, where such personal information manager application101may run or otherwise execute instructions within a web browser. The user interface100of the personal information manager application101may include a top portion104which may include a search field for searching one or more messages maintained by or otherwise available at the personal information manager application101. The user interface100may also include multiple regions configured to display message related information to a user. For example, the user interface100of the personal information manager application101may display a region108configured to provide a summary of a quantity of messages contained in a folder or otherwise associated with a label, the folder and/or label, such as but not limited to “inbox” or “sent items” as depicted inFIG. 1, may correspond to a favorite item such that a user may quickly access messages from and/or view summary information associated with one or more of the folders or labels. Similarly, the user interface100of the personal information manager application101may display a region112configured to provide a more granulized summary of a quantity of messages contained in a folder or otherwise associated with a label; the folder and/or label depicted inFIG. 1may correspond to a structure of a one or more message folders or labels, such as but not limited to an “inbox” or “Folder 1” for example. Although a person information manager is described here, aspects of the present disclosure may be practiced with other types of applications that may be different from personal information manager applications.

The user interface100of the personal information manager application101may display a region116configured to provide a display of one or more messages within a folder or label selected in the region108and/or region112. As depicted inFIG. 1, the messages in the region116may correspond to email messages, however, the messages in the region116may correspond to other types of messages, such as instant message, chat messages, etc. As further depicted inFIG. 1, the user interface100of the personal information manager application101may display a region120providing content associated with a selected message in the region116. For example, the message in the region120may correspond to a summary of a quantity of messages contained in a folder or otherwise associated with a label. The region124of the user interface100may further display additional information associate with the message in the region120.

In accordance with examples of the present disclosure, the user interface100of the personal information manager application101may include a rail128. The rail128may comprise a portion of the user interface100that is visually distinct from the remaining portions of the user interface. For example, a line or divider visually divide the rail128from other portions of the user interface100. In some examples, the line or divider may appear as a different color from a background color displayed by the rail128and/or some of the other portions of the user interface. In some examples, the rail may be similar to a toolbar and may be placed at different locations of the user interface100. In some examples, the rail128may be detachable from the user interface100such that the rail128exists as a separate portion and/or standalone portion of the user interface100. The rail128may include icons of one or more applications capable of being launched and displaying another user interface100. As depicted in the user interface100, the rail128may be placed at the left side of the user interface100and may provide easy and/or efficient access to one or more of the regions108and/or112for selecting one or more messages to view based at least in part on proximity to such regions. However, it should be appreciated that the rail128may be placed at other locations within the user interface100.

The rail128may provide access to a plurality of applications other than the personal information manager application101. For example, the rail128may include shortcuts for a plurality of applications, where each shortcut may be associated with one or more displayed icons located at the rail128. The rail128may allow a user to launch one or more applications, such as MICROSOFT™ WORD™132, MICROSOFT™ POWERPOINT™136, and/or MICROSOFT™ POWER BI™140. Of course, other applications are contemplated and within the scope of this disclosure. Moreover, first party and third party applications (e g, applications created by or provided by a company other than the company associated with the first party applications) may also be used.

In accordance with examples of the present disclosure, a user may select an application to launch by selecting, clicking, or otherwise activing an icon associated with the desired application; such application may launch and may be contained within one or more areas or regions of the personal information manager application101. For example, and as depicted inFIG. 2, upon selecting the MICROSOFT™ POWER BI™ icon204, the application, MICROSOFT™ POWER BI™ may be launched within the user interface200of the personal information manager application depicted inFIG. 2. The personal information manager application201depicted inFIG. 2may be the same as or similar to the personal information manager application depicted inFIG. 1. In some examples, the launched application may occupy one or more regions of the user interface200. For example, the MICROSOFT™ POWER BI™ dashboard displayed inFIG. 2may occupy regions108,116,120, and124of the user interface200. However, one or more toolbars212and/or216of the personal information manager application may be maintained and/or displayed. In some examples, clicking on an item in one or more of the toolbars212and/or216may cause the personal information manager application201to switch from displaying the application launched according to a selected icon, to displaying the user interface200of the personal information manager application201. To return to the application launched according to the selected icon, a user may be required to click the icon204corresponding to the application that was previously launched. In some examples, keyboard shortcuts or other ways of returning to the application launched according to the selected icon may be utilized. In some examples, the application launched according to the selected icon may occupy zero or more regions108,116,120, and/or124. In other examples, one or more of the toolbars212and/or216may be modified or otherwise occupied or covered by a portion of the launched application. For example, a user interface associated with the application launched according to the selected icon may cover one or more of the toolbars212and/or216.

In accordance with some examples of the present disclosure, an application associated with a selected icon may launch in a window separate and apart from the user interface200. For example, upon selecting the MICROSOFT™ POWER BI™ icon204, the application, MICROSOFT™ POWER BI™ may be launched in a separate window and as a separate application304that is not contained within the user interface300of the personal information manager application301. The personal information manager application301depicted inFIG. 3may be the same as or similar to the personal information manager application101depicted inFIG. 1. Accordingly, as a user is interacting with the user interface300of the personal information manager application301, a user may wish to switch to or otherwise utilize another application, such as the MICROSOFT™ POWER BI™ by selecting the icon204for example. Upon selection of the icon204, a user interface300for the MICROSOFT™ POWER BI™ program may be rendered to a display, in a window that is different than a window displaying the user interface100or200, and display application specific elements308associated with the selected icon204associated with an application. In some examples, upon selection of the icon204, a user interface300for the MICROSOFT™ POWER BI™ program may be rendered to a display, in a window and at a display device that is different than a window and display device displaying the user interface100or200, application specific elements308associated with the selected icon204associated with an application may be provided to a user. Accordingly, a user may interact with the application displayed in the user interface300as they normally would and may close the application displayed in the user interface300using the elements displayed as part of the user interface300.

FIG. 4depicts an application gallery408in accordance with examples of the present disclosure. When an icon for an application that a user wishes to launch is not displayed in the rail428, a user may select the “plus” element404to cause an application gallery408to be displayed to the user. The personal information manager application401depicted inFIG. 4may be the same as or similar to the personal information manager application101depicted inFIG. 1. The application gallery408may display one or more icons412representing applications that can be added to or otherwise pinned to the rail428. For example, a user desiring to have an auto application displayed in the rail428, may click or otherwise select the “plus” element404located in the rail428. The “plus” element404may cause the application gallery408to launch thereby displaying a plurality of icons412. A user may then may make a selection, such as the auto icon416such that the auto icon416is displayed in the rail428.

FIG. 5depicts a rail528populated with a user selected application in accordance with examples of the present disclosure. The personal information manager application301depicted inFIG. 5may be the same as or similar to the personal information manager application101depicted inFIG. 1. As depicted inFIG. 5, the auto icon504is displayed in the rail528. A user may then have quick and/or efficient access to the application represented by the icon504.

FIG. 6displays a user interface600of the personal information manager application601in accordance with examples of the present disclosure. The personal information manager application601depicted inFIG. 6may be the same as or similar to the personal information manager application101depicted inFIG. 1. The user interface600may include a user interface605of the launched application associated with the icon604. That is, the user interface600of the personal information manager application may display the launched application “auto” for example, within the personal information manager application. Accordingly, a user working within the personal information manager application601can conveniently access messaging functions of the personal information manager application601while working within the user interface605of the launched application. For example, the toolbars612and616are displayed within the user interface600of the personal information manager application601, such toolbars provide a user access to the messaging functions while also allowing a user to interact with the launched application. As one example, a user may select or click on a new email icon in the toolbar616; in response, an interface to compose the new email may be displayed; the interface may be a pop out window to compose the email or return back to the personal information manager application user interface while still executing the Auto application. In some examples, as the user interface605of the auto application is displayed, a user may interact with one or more controls in the auto application. For example, a user may select the car icon and a dashboard displaying information about a car may be provided to the user via the user interface605.

FIG. 7displays a user interface700of the personal information manager application701in accordance with examples of the present disclosure. The personal information manager application701depicted inFIG. 7may be the same as or similar to the personal information manager application101depicted inFIG. 1. The user interface700may include a user interface704of the launched application associated with the icon707. That is, the user interface700of the personal information manager application701may display the launched application “auto” for example, within the personal information manager application701. Accordingly, a user working within the personal information manager application701can conveniently access messaging functions of the personal information manager application701while working within the user interface704of the launched application. However, unlike the user interface605, the user interface704is displayed such that the toolbars612and616are no longer visible. Accordingly, a user desiring to access messaging functions associated with the user interface700of the personal information manager application701may switch to a user interface displaying the messages by selecting, or clicking on, one or more of the messaging function icons,708,712,716, and/or720for example. That is, the icon708, when selected, may cause a different user interface, such as user interface100, to be displayed. The icon712, when selected, may cause a calendar user interface of the personal information manager application701to be displayed. The icon716, when selected, may cause a contacts user interface of the personal information manager application701to be displayed. The icon720, when selected, may cause a task management user interface of the personal information manager application701to be displayed.

FIG. 8Adepicts details of a user interface associated with adding an application to the application gallery808. The personal information manager application801depicted inFIG. 8may be the same as or similar to the personal information manager application101depicted inFIG. 1. More specifically, a user desiring to add an icon representative of an application to the rail828may select the “plus” element804thereby causing the application gallery808to be displayed. While the application gallery808may display a plurality of icons802associated with a plurality of different applications, a user may desire to add a specific application to the application gallery808such that an icon representative of the application to be added may be displayed in the rail828. The application to be added may be a first party application or may be a third party application. The user may select the “add” element, or button,816to add such application. As depicted inFIG. 8B, a window820may be displayed in response to a user selecting the “add” element, or button,816. Accordingly, a user may provide a location of the application the user wishes to add to the application gallery808, a suggested icon, and whether such application should be launched within the user interface800of the personal information manager application. The location of the application to be added to the application gallery808may reside on a computing device that is presenting or otherwise causing the presentation of user interface800. Accordingly, a user may provide a path to an executable or other type of file that when launched, causes a desired application to be rendered and displayed. In some instances, one or more parameters may be entered into the window820. As one example, an indication as to whether a user desires to have the application launch within the user interface800of the personal information manager application may be received. As another example, one or more parameters may be entered that indicate which of the regions of the user interface800are to be occupied by the desired application when executed. In some examples, a portion of an application may be executed in one or more of the previously described regions of the user interface800.

In some instances, a user may desire a new window to display the application, where the new window is separate and apart from the user interface800. In some instances, a user may desire the application to launch within the user interface800of the personal information manager application801. Accordingly, once the path of the application, an icon, and/or other parameters are entered, a user may select the submit button to close the window820such that an icon associated with the application identified in the window820may be displayed in the application gallery808. As depicted inFIG. 8C, the icon824associated with the desired application is then added to the application gallery808. As provided inFIG. 8D, an icon832associated with the newly added application may be added to or otherwise pinned to the rail828.

In accordance with some examples of the present disclosure, when a desired application is added to the application gallery880, the location of the application may be entered as a network address or otherwise an address available via one or more network locations. For example, and as depicted inFIG. 8E, the location of the desired app is located at a website. In some examples, an instance of a browser application may be launched when a network address is provided, accordingly, a user may have the option of using a default browser instance and/or provide a selection of a browser to use. In accordance with some examples of the present disclosure, when the application is launched, a browser may be launched within the user interface800such that the added application appears to be running locally but is actually running via a web page or another networked connection. In some examples, the application running within the user interface800is a web version of an application that may be natively installed or executed on a processing device. Accordingly, the personal information manager application801may be configured to execute both remote applications, such as a web application, and local application such as a natively installed application at the processing device.

FIG. 9depicts details of the personal information manager application901in accordance with examples of the present disclosure. The personal information manager application9901depicted inFIG. 9may be the same as or similar to the personal information manager application101depicted inFIG. 1. The rail928may be responsive to minimization and maximization commands. For example,FIG. 9depicts the rail902in a minimized state; to maximize the rail902or otherwise make the rail902appear, a user may select the element904. Such selection of the element904may correspond to a click of the element904or a hover above the element904.

FIG. 10depicts an example of a web accessible personal information manager application1001having a user interface1000in accordance with examples of the present disclosure. The web accessible personal information manager application may be an OUTLOOK™ Web Access application provided by MICROSOFT™. In another example, the web accessible application may be Gmail's email application. The personal information manager application1001and rail1016behave and/or operate in a manner similar to the personal information manager application and rail128,428,528,628,828, and928described with respect toFIG. 1-9. Initially, a user may navigate to a web address location using the location bar1008. The user may be required to login or authenticate before the user interface1000is displayed. The user interface1000may include a plurality of regions1018,1020, and1022corresponding to regions112and116ofFIG. 1. Accordingly, if a user were to select a message displayed in the region1020, a popup window may be displayed that presents the text of the selected message. In accordance with examples of the present disclosure, a user may desire to launch an application within the user interface1000. Accordingly, the user may select an icon located on the rail1016to launch the application. For example, the user may select the MICROSOFT™ POWER BI™ icon1022, thereby causing the MICROSOFT™ POWER BI™ application to be displayed in the user interface1100as depicted inFIG. 11.

As an example, the personal information manager application1101depicted inFIG. 11may be the same as or similar to the personal information manager application1001depicted inFIG. 10. In some examples, the launched application may occupy one or mote regions of the user interface1100. For example, the MICROSOFT™ POWER BI™ dashboard displayed inFIG. 11may occupy regions corresponding to1018and1020ofFIG. 10. In some examples, clicking on an item in the rail1116may cause the web accessible personal information manager application to switch from displaying the application launched according to the selected icon, to displaying the user interface1100of the personal information manager application. To return to the application launched according to the selected icon, a user may be required to click the icon1122corresponding to the application that was previously launched. In some examples, keyboard shortcuts or other ways of returning to the application launched according to the selected icon may be utilized. In some examples, the application launched according to the selected icon may occupy zero or more regions1018and1022.

In accordance with some examples of the present disclosure, an application associated with a selected icon may launch in a window separate and apart from the user interface1100. For example, upon selecting the MICROSOFT™ POWER BI™ icon1122, the application, MICROSOFT™ POWER BI™ may be launched in a separate window or as a separate web accessible application that is not contained within the user interface1100of the personal information manager application1101. Accordingly, as a user is interacting with the user interface1100of the personal information manager application1101, a user may wish to switch to or otherwise utilize another application, such as the MICROSOFT™ POWER BI™ by selecting the icon1122for example. Upon selection of the icon1122, a user interface for the MICROSOFT™ POWER BI™ program may display, in a window that is different than a window displaying the user interface1100and the application associated with the icon1122. Accordingly, a user may interact with the application displayed in the user interface as they normally would and may close the application displayed in the user interface using the elements.

In accordance with some examples of the present disclosure, when an icon for an application that a user wishes to launch using the rail1216of the personal information manager application1201is not displayed in the rail1216, a user may select the “plus” or “add” selection1204to cause an application gallery1208to be displayed to the user as displayed inFIG. 12. The application gallery1208may display one or more icons1212representing applications that can be added to or otherwise pinned to the rail1216. For example, a user desiring to have an auto application displayed in the rail1216, may click or otherwise select the “plus” or “add” icon1204located in the rail1216. The “plus” or “add” icon1204may cause the application gallery1208to launch thereby displaying a plurality of icons1212. A user may then may make a selection, such as the auto icon1217such that the auto icon1217is displayed in the rail1216. As depicted inFIG. 13, the selected application is displayed in the rail1316in the user interface1300of the personal information manager application1301as icon1304. Accordingly, a user may then have quick and/or efficient access to the application represented by the icon1304.

FIG. 14Adepicts details of a user interface associated with adding an application to the application gallery1408of a personal information manager application1401in accordance with examples of the present disclosure. More specifically, a user desiring to add an icon representative of an application to the rail1416may select the “plus” or “add” icon1402thereby causing the application gallery1408to be displayed. While the application gallery1408may display a plurality of icons1412associated with a plurality of different applications, a user may desire to add a specific application to the application gallery1408such that an icon representative of the application to be added may be displayed in the rail1416. The application to be added may be a first party application or may be a third party application. The user may select the “add” element, or button,1402to add such application. As depicted inFIG. 14B, a window1420may be displayed in response to a user selecting the “add” element, or button,1404. Accordingly, a user may provide a location of the application the user wishes to add to the application gallery1408, a suggested icon, and whether such application should be launched within the user interface1400of the personal information manager application. In accordance with some examples of the present disclosure, when a desired application is added to the application gallery1408, the location of the application may be entered as a network address or otherwise an address available via one or more network locations. For example, and as depicted inFIG. 14B, the location of the desired app is located at a website. Accordingly, and in accordance with some examples of the present disclosure, when the application is launched, a browser may be launched within the user interface1400, which may be a web browser itself, such that the added application appears to be running locally but is actually running via a web page or another networked connection. In some examples, the application running within the user interface1400is a web version of an application that may be natively installed or executed on a processing device. Accordingly, the personal information manager application may be configured to execute both remote applications, such as a web application, and local application such as a natively installed application at the processing device.

In some instances, one or more parameters may be entered into the window1420. As one example, an indication as to whether a user desires to have the application launch within the user interface1400of the personal information manager application may be received. As another example, one or more parameters may be entered that indicate which of the regions of the user interface1400are to be occupied by the desired application when executed. In some examples, a portion of an application may be executed in one or more of the previously described regions of the user interface1400.

In some instances, a user may desire a new window to display the application, where the new window is separate and apart from the user interface1400of the personal information manager application1401. In some instances, a user may desire the application to launch within the user interface1400of the personal information manager application1401. Accordingly, once the path of the application, an icon, and/or other parameters are entered, a user may select the submit button to close the window1420such that an icon associated with the application identified in the window1420may be displayed in the application gallery1408. As depicted inFIG. 14C, the icon1424associated with the desired application is then added to the application gallery1408. As provided inFIG. 8D, an icon1432associated with the newly added application may be added to or otherwise pinned to the rail1416upon selection by a user.

FIG. 15Adepicts details of a personal information manager application1504residing on and executing at a processing device1502in accordance with examples of the present disclosure. The processing device1502may be any type of processing device configured for user interaction. Example processing devices include, but are not limited to laptops, tablets, smartphones, and the like. The personal information manager application1504may be the same as or similar to the previously described personal information manager applications. As an example, the personal information manager application1504may be the same as or similar to the personal information manager application101previously described. In accordance with examples of the present disclosure, the personal information manager application1504may cause to be executed an embedded application1508, where the embedded application may be the same as or similar to the previously described first or third party applications selected by and/or launched by a user. Non-limiting examples of the embedded application1508may correspond to MICROSOFT™ POWER BI™, MICROSOFT™ Forms, Auto, etc. as previously described. In some examples, the embedded application1508may be executed as a web application or an application running in a web browser, such as web browser1506. Accordingly, the personal information manager application1504may cause a web browser1506to execute the embedded application1508in a portion of a user interface displayed by the personal information manager application1504executed in the web browser1506, where the web browser1506executes commands and/or otherwise displays data associated with the embedded application1508. In some examples, the embedded application1508may display a user interface within the personal information manager application1504while interacting with a web browser1507residing at the processing device1502. Thus, the embedded application1508may communicate with the web browser1507while providing an interactive user interface within the user interface of the personal information manager application1504. Accordingly, the web browser1506may be optional or otherwise implemented as the web browser1507. The processing device1502may also include a manifest1520; the manifest1520may store or otherwise identify applications in an application gallery, such as the application gallery408as previously described. In addition, the manifest1520may indicate which applications have been added to or otherwise pinned to the rail of the personal information manager application1504. As one example, the manifest may indicating that two default applications, such as but not limited to MICROSOFT™ WORD™ and MICROSOFT™ POWERPOINT™ are to appear in the rail128in addition to a user selected application, such as Auto.

In accordance with examples of the present disclosure, the personal information manager application, embedded application1508, and/or the web browser1507may communicate with a server device1512to access application specific data. For example, the personal information manager application1504may communicate via a first communication channel1524to the server device1512to send and receive messages, such messages may be stored as personal information manager application data1514located at the server device1512. In some examples, the embedded application1508may not require communication with the server device1512for data. In other examples, the embedded application1508may share the communication channel with the personal information manager application1504to interact with embedded application data1517residing at the server device1512. In some examples, a new communication channel1522may be utilized by the embedded application1508to interact with embedded application data1517residing at the server device1512. In accordance with some examples of the present disclosure, the embedded application data1517may be accessed by an application executing at the server device1512such that the application1516is responsive to one or more commands from the embedded application1508. For example, the application1516may correspond to a service, such as a MICROSOFT™ POWER BI™ service running on the server device1512. The MICROSOFT™ POWER BI™ service may interact with the embedded application data1157to provide data, user interfaces, views, etc to the embedded application1508. Similarly, the persona) information manager application1504may interact with a service1515that makes the personal information manager application data1514available to the personal information manager application1504. In accordance with some examples of the present disclosure, the server device1512may also include a manifest1518; the manifest1518may store or otherwise identify applications in an application gallery, such as the application gallery408as previously described. In addition, the manifest1518may indicate which applications have been added to or otherwise pinned to the rail of the personal information manager application1504. As one example, the manifest may indicating that two default applications, such as but not limited to MICROSOFT™ WORD™ and MICROSOFT™ POWERPOINT™ are to appear in the rail128in addition to a user selected application, such as Auto Such manifest1518may be retrieved by the personal information manager application1504when the personal information manager application1504communicates with the server device1512.

In accordance with some examples of the present disclosure, a server device1526may include a unified hosting interface1528for providing, or serving, content to the personal information manager application1504as depicted inFIG. 15B. That is, the unified hosting interface1528may provide a hosting interface between a first or third party application1532and the personal information manager application1504. In some examples, the first or third party application1532may be hosted at a server device1538. The unified hosting interface1528may interact with application data1536via the application1532. For example, the server device1526may establish a communication channel1540to obtain data from the application1532, the server device1538may then establish a different communication channel1542to provide the data to the unified hosting interface1528. The unified hosting interface1528, via the server device1526, may establish a communication channel1544to provide the data to the personal information manager application1504. In some examples, the unified hosting interface1528may receive data from the personal information manager application1504via the communication channel1546. Accordingly, the unified hosting interface1528may provide content to the personal information manager application1504such that the first or third party application1532is unaware as to which personal information manager application1504it is running from. Further, the embedded application1508communicates with the unified hosting interface1528, where the unified hosting interface1528may provide content from several first or third party applications.

FIG. 16Adepicts details of a web browser1604residing on and executing at a processing device1602in accordance with examples of the present disclosure. The processing device1602may be any time of processing device configured for user interaction Example processing devices include, but are not limited to laptops, tablets, smartphones, and the like. The web browser1604may be the same as or similar to the previously described web browser ofFIGS. 10-14D. Thus, the web browser1604may utilized to navigate to a networked location such that a web application1606may be accessed to display a user interface, such as the user interface1000ofFIG. 10. More specifically, the web browser may access a web version of the previously described personal information manager application. As an example, the web version of the personal information manager application may be the same as or similar to the personal information manager application1001previously described. In. accordance with examples of the present disclosure, the web version of the personal information manager application may cause to be displayed, a user interface associated with second web application1608; the second web application1608may correspond to a first or third party application selected by and/or launched by a user. Non-limiting examples of the second web application1608may correspond to MICROSOFT™ POWER BI™, MICROSOFT™ Forms, Auto, etc. as previously described. In some examples, the web browser1604executes commands and/or otherwise displays data associated with the web application1606and the second web application1608, where the user interface associated with the second web application1608may be embedded within or otherwise displayed within the user interface of the web application1606.

In accordance with examples of the present disclosure, the web browser1604may communicate with an application1616which may be a personal information manager application to access application specific data. For example, the web browser1604may communicate via a first communication channel1624to the server device1612to send and receive messages; such messages may be stored as personal information manager application data1614located at the server device1612. In some examples, the second web application1608may share the communication channel with the web browser1604and/or the web application1606to communicate with the or otherwise interact with application data1617residing at the server device1612. In some examples, a new communication channel1622may be utilized by the web browser1604to interact with application data1617residing at the server device1612. In accordance with some examples of the present disclosure, the application data1617may be accessed by an application1616executing at the server device1612such that the application1616is responsive to one or more commands from the web browser1604. As an example, the application1616may correspond to a service, such as a MICROSOFT™ POWER BI™ service running on the server device1612. The MICROSOFT™ POWER BI™ service may interact with the application data1617to provide data, user interfaces, views, etc to the web browser1604. Similarly, the web browser1604executing a personal information manager application may interact with a service or application1616that makes the personal information manager application data1614available to the web browser1604. In accordance with some examples of the present disclosure, the server device1612may also include a manifest1618; the manifest1618may store or otherwise identify applications in an application gallery, such as the application gallery1208as previously described. In addition, the manifest1618may indicate which applications have been added to or otherwise pinned to the rail1016of the personal information manager application. As one example, the manifest may indicate that two default applications, such as but not limited to MICROSOFT™ WORD™ and MICROSOFT™ POWERPOINT™ are to appear in the rail1016in addition to a user selected application, such as Auto. Such manifest1618may be retrieved by the web application1606when the web application1606communicates with the server device1612.

In accordance with some examples of the present disclosure, a server device1626may include a unified hosting interface1628for providing, or serving, content to the web browser1604running or executing the web version of the personal information manager application as depicted inFIG. 16B. That is, the unified hosting interface1628may provide a hosting interface between a first or third party application1632and the web browser1604. In some examples, the first or third party application1632may be hosted at a server device1638. The unified hosting interface1628may interact with application data1636via the application1632. For example, the server device1626may establish a communication channel1640to obtain data from the application1632; the server device1638may then establish a different communication channel1642to provide the data to the unified hosting interface1628. The unified hosting interface1628, via the server device1626, may establish a communication channel1644to provide the data to the web browser1604. In some examples, the unified hosting interface1628may receive data from the web version of the personal information manager application running in the web browser1604via the communication channel1646. Accordingly, the unified hosting interface1628may provide content to the web version of the personal information manager application running in the web browser1604such that the first or third party application1632is unaware as to which web version of the personal information manager application running in the web browser1604is running from. Further, the unified hosting interface1628may provide content from several first or third party applications.

FIG. 17depicts details of a user interface1700of the personal information manager application1701in accordance with examples of the present disclosure. More specifically, the personal information manager application1701may be the same as or similar to the personal information manager application101ofFIG. 1. As depicted inFIG. 17, the user interface1700may be segmented into various regions1704,1708,1712,1716,1720, and1724,1726, and1730. Of course, more or fewer regions are contemplated herein. In accordance with examples of the present disclosure, an application launched from the rail1702may be contained to one or more regions identified inFIG. 17. Of course the regions may be of various sizes and shapes. In some examples, the application launched from the rail1702may occupy two regions, three regions, or more regions. Accordingly, when an application is launched, a determination may be made as to where the application will be displayed. Such determination may be made based on a display configuration file or setting maintained by an operating system and/or the personal information manager application1701.

FIG. 18depicts an example user interface1800associated with the personal information manager application1801in accordance with examples of the present disclosure. The personal information manager application1801may be the same as or similar to the personal information manager application101ofFIG. 1. More specifically, the user interface1800may be divided into one or more regions as previously discussed with respect toFIG. 17. In some examples, an application1840that a user desires to launch may occupy one or more regions1824. That is, the region1824may contain or otherwise display the entirety of the user interface of the launched application1840.

FIG. 19depicts an example user interface1900associated with the personal information manager application1901in accordance with examples of the present disclosure. The personal information manager application1901may be the same as or similar to the personal information manager application101ofFIG. 1. More specifically, the user interface1900may be divided into one or more regions as previously discussed with respect toFIG. 17. In some examples, an application1940that a user desires to launch may occupy one or more regions1924. However, only a portion of the launched application1940may occupy the region1924. For example, the launched application1940may display two windows, such as illustrated in region1824ofFIG. 18. In some examples, only a signal window may be displayed within the user interface1900. For example, only the window associated with region1924may be displayed. Such a determination or identification of a window to display may be based on a configuration or setting maintained by an operation system, the personal information manager application1901, or the launched application1940.

FIG. 20depicts a data structure2000in accordance with examples of the present disclosure. More specifically, the data structure2000may be associated with one or more applications to be launched by a user from a rail of an application or web application. The data structure2000may be specific to a single application or otherwise include information and configuration settings specific to a plurality of applications. In examples, the data structure2000may include and/or identify an application by name or some other form of identification, as depicted in the “Application” column2004. In addition the data structure2000may include one or more parameters indicating how such application should launch, operate, and/or be displayed at a user interface of a personal information manager application. Non-limiting examples of how the application should launch and operate include whether the application should launch in a new window as depicted in the “New Window” column2008instead of or in addition to a new tab as depicted in the “New Tab” column2012. As another example, the “Location” column2016may providing information for where an application should launch and operate. For example, an application Auto may launch in a region defined as Region 1 of the personal information manager application user interface. As another example, a “LinkedIn” application should launch into a region defined as sub-region 2. Of course other regions and other parameters associated with how an application should launch and/or operate are contemplated. In some examples, the data structure2000may also indicate what portion of an application should be displayed and/or launched as depicted in the “Application Portion” column2020. For example, for applications capable of providing compartmentalized output and/or otherwise being capable of being segmented into one or more portions, the data structure2000may identify which portion of the application may be output, rendered, or otherwise displayed at a user interface of the personal information manager application.

FIG. 21depicts details of a method2100for launching and rendering an application selected from a rail of a personal information manager application user interface in accordance with examples of the present disclosure. A general order for the steps of the method2100is shown inFIG. 21. Generally, the method2100starts at2102and ends at2122. The method2100may include more or fewer steps or may arrange the order of the steps differently than those shown inFIG. 21. The method2100can be executed as a set of computer-executable instructions executed by a computer system and encoded or stored on a computer readable medium. Further, the method2100can be performed by gates or circuits associated with a processor, Application Specific Integrated Circuit (ASIC), a field programmable gate array (FPGA), a system on chip (SOC), or other-hardware device. Hereinafter, the method2100shall be explained with reference to the systems, components, modules, software, data structures, user interfaces, etc described in conjunction withFIGS. 1-20.

The method starts at2102, where flow may proceed to2104. At2104, an indication that a user has selected an icon for a different application that is displayed in a user interface associated with a personal information manager application may be received. For example, a user may select icon140of the user interface100, where the icon140is located in the rail128of the personal information manager application101ofFIG. 1. Flow may proceed to2106, where an application associated with the icon is determined. In some examples, the icon may include location information identifying a location, such as a location on a computing device or a location accessible via a network. As an example, the location may correspond to a location entered by a user when adding an application to an application gallery, such as the application gallery808ofFIG. 8. For example, a location associated with the icon may be identified based on a location in the window820ofFIG. 8. The method may then proceed to2120, where a determination as to whether the application selected by the user that is to be launched is local (e.g., resides at the computing device) or is remote (e.g., resides at a network location).

If the application is local, then the method may proceed to2112to perform authentication locally at a processing device for example. That is, an operating system at the processing device may determine whether a user, the personal information management application, and/or a combination of both the user and the personal information manager application has appropriate privileges to access the local application. In some examples, a user may be presented with a logon screen to enter credentials giving the user access to the location and/or the privileges to execute the application.

If the application is located at a remote location, then the method may proceed to2114to perform authentication at the remote location, (e g, a remotely located processing device, such as a server) for example. That is, an operating system and/or application at the remotely located server may determine whether a user, the personal information management application, and/or a combination of both the user and the personal information manager application has appropriate privileges to access the remote application and/or data associated with the remote application. In some examples, a user may be presented with a logon screen to enter credentials giving the user access to the location and/or the privileges to execute the application. For example, the application selected by the user may be a web accessible application; accordingly, a logon screen provided to the user may allow the user to access the web accessible application.

The method may then proceed to2116, where a determination is made as to how the application should launch and be rendered to a display. Such determination as to how the application should launch and be rendered to the display may be based on one or more configuration settings maintained by an operating system and/or the personal information manager application. For example, information may be configured by the user using the window820for example, and stored in a data structure, such as data structure2000ofFIG. 20. If a new tab is needed following the determination as to how the application should launch and be rendered to the display at2116, the method may proceed to2120where a new tab in a web browser may be created and the application may be launched and rendered within the web browser. Alternatively, or in addition, if a new window is needed following the determination as to how the application should launch and be rendered to the display at2116, the method may proceed to2120where a new window may be created and the application may be launched and rendered within the new window In instances where the selected application is to be launched within the personal information manager application running, for example the personal information manager application running within a web browser or as a native application running at or otherwise being executed at a local computing devices, one or more parameters may indicate a region, or location, within the personal information manager application that a user interface should be located. In some examples, the application launched may correspond to a web browser instance such that the application may be executed in a web browser within one or more regions of the personal information manager application Once the application has launched and has been rendered to the display, the method2100may end at2122.

FIG. 22depicts details of a method2200for launching and rendering a portion of an application within a personal information manager application user interface that is different from the application in accordance with examples of the present disclosure. A general order for the steps of the method2200is shown inFIG. 22. Generally, the method2200starts at2202and ends at2222. The method2200may include more or fewer steps or may arrange the order of the steps differently than those shown inFIG. 22. The method2200can be executed as a set of computer-executable instructions executed by a computer system and encoded or stored on a computer readable medium. Further, the method2200can be performed by gates or circuits associated with a processor. Application Specific Integrated Circuit (ASIC), a field programmable gate array (FPGA), a system on chip (SOC), or other hardware device. Hereinafter, the method2200shall be explained with reference to the systems, components, modules, software, data structures, user interfaces, etc. described in conjunction withFIGS. 1-21.

The method starts at2202, where flow may proceed to2204. At2204, an indication that a user has selected an icon for a different application that is displayed in a user interface associated with a personal information manager application may be received. For example, a user may select icon140of the user interface100, where the icon140is located in the rail128of the personal information manager application101ofFIG. 1. Flow may proceed to2206, where an application associated with the icon is determined. In some examples, the icon may include location information identifying a location, such as a location on a computing device or a location accessible via a network. As an example, the location may correspond to a location entered by a user when adding an application to an application gallery, such as the application gallery808ofFIG. 8. A location associated with the icon may be identified based on a location in the window820ofFIG. 8. The method may then proceed to2220, where a determination as to whether the application selected by the user that is to be launched is local (e.g., resides at the computing device) or is remote (e.g., resides at a network location).

If the application is local, then the method may proceed to2212to perform authentication locally at a processing device for example. That is, an operating system at the processing device may determine whether a user, the personal information management application, and/or a combination of both the user and the personal information manager application has appropriate privileges to access the local application. In some examples, a user may be presented with a logon screen to enter credentials giving the user access to the location and/or the privileges to execute the application.

If the application is located at a remote location, then the method may proceed to2214to perform authentication at the remote location, (e.g, a remotely located processing device, such as a server) for example. That is, an operating system and/or application at the remotely located server may determine whether a user, the personal information management application, and/or a combination of both the user and the personal information manager application has appropriate privileges to access the remote application and/or data associated with the remote application. In some examples, a user may be presented with a logon screen to enter credentials giving the user access to the location and/or the privileges to execute the application. For example, the application selected by the user may be a web accessible application, accordingly, a logon screen provided to the user may allow the user to access the web accessible application.

The method may then proceed to2216, where a region within the user interface of the personal information manager application may be identified, the region corresponding to a location within the personal information manager application that the application, or a portion of the application, should be displayed. For example, the region within the user interface of the personal information manager application may correspond to one or more regions identified inFIG. 17. As a non-limiting example, the region may correspond to Region 31712, Region 4.11716, Region 4.21720, and Region 51724ofFIG. 17. As another non-liming example, the region may correspond to Region 51724ofFIG. 17. The method2200may proceed to2218where a portion of an application to launch and render to a display may be identified. In examples, the portion of the application to launch and render to the display may be identified from one or more configuration settings or parameters associated with the application. As an example, the portion of the application may be identified from the data structure2000shown inFIG. 20. The method2200may then proceed to2220, where the application window may be rendered at the specified region of the user interface of the personal information manager application. As one non-limiting example, the portion of the application may correspond to a text portion and may be rendered at a region of the user interface of the personal information manager application identified at1924ofFIG. 19. In some examples, the portion of the application launched may correspond to a web browser instance such that the portion of the application may be executed in a web browser within the identified regions of the personal information manager application Once the application has launched and has been rendered to the display, the method2200may end at2222.

FIG. 23depicts details of a method2300for placing a focus on a region or on a new window after launching and rendering an application selected from a rail of a personal information manager application user interface in accordance with examples of the present disclosure. A general order for the steps of the method2300is shown inFIG. 23. Generally, the method2300starts at2302and ends at2314. The method2300may include more or fewer steps or may arrange the order of the steps differently than those shown inFIG. 23. The method2300can be executed as a set of computer-executable instructions executed by a computer system and encoded or stored on a computer readable medium. Further, the method2300can be performed by gates or circuits associated with a processor, Application Specific Integrated Circuit (ASIC), a field programmable gate array (FPGA), a system on chip (SOC), or other hardware device. Hereinafter, the method2300shall be explained with reference to the systems, components, modules, software, data structures, user interfaces, etc described in conjunction withFIGS. 1-22.

The method starts at2302, where flow may proceed to2304. At2304, an indication that a user has selected an for a different application that is displayed in a user interface associated with a personal information manager application may be received. For example, a user may select icon140of the user interface100, where the icon140is located in the rail128of the personal information manager application101ofFIG. 1. Flow may proceed to2306, where an application associated with the icon is determined. In some examples, the icon may include location information identifying a location, such as a location on a computing device or a location accessible via a network. As an example, the location may correspond to a location entered by a user when adding an application to an application gallery, such as the application gallery808ofFIG. 8. A location associated with the icon may be identified based on a location in the window820ofFIG. 8. The method may then proceed to2308, where a one or more application launch parameters may be determined. For example, the one or more or more launch parameters may correspond to one or more configuration settings identified from the data structure2000. In some examples, the one or more configuration settings may indicate that a new window and/or web browser tab may need to be created and that the application is to be launched within the newly-created window and/or web browser. As another example, the one or more configuration settings may indicate that the application is to be launched within the personal information manager application. The method may proceed to2310, where the application may be launched and rendered in accordance with the identified launch parameters. In some examples, the application launched may correspond to a web browser instance such that the application may be executed in a web browser within one or more identified regions of the personal information manager application.

Upon launching the application and rendering a user interface associated with the application to the display, the method2300may proceed to2312, where the focus following the application launch may be determined and applied to the determined location. Text or commands entered at the keyboard or mouse or pasted from a clipboard is sent to or otherwise directed to the component which has the focus. Moving the mouse will typically move the mouse pointer without changing the focus. The focus can usually be changed by clicking on an element, such as an icon, that can receive focus with the mouse. Accordingly, when an application is launched, there is often a need to determine which element, application, or otherwise is to receive the focus following the launch.

For example, if the application was launched in a new window, the focus may transition from the personal information manager application (e.g., the selection of the icon associated with the application) to the new window in which the application was launched. In some examples, the focus may remain at the personal information manager application. For example, if the application was launched in a new window, the focus may remain at the personal information manager application (e.g., the selection of the icon associated with the application) and not transition to the new window in which the application was launched. Such determination may be associated with a configuration setting and/or parameter, where such configuration setting and/or parameter may be accessible via the data structure2000for example.

In some examples, upon launching the application and rendering a user interface associated with the application to the display, the focus following the application launch may be determined to correspond to a location or region within the personal information manager application. For example, if the application was launched and displayed within a region of the user interface of the personal information manager application, the focus may transition from the rail, for example the selection of the icon associated with the application, to the region within the user interface of the personal information manager application where the application as launched to the new window in which the application was launched. In some examples, the focus may remain at the left rail of the personal information manager application Such a determination may be associated with a configuration setting and/or parameter, where such configuration setting and/or parameter may be accessible via the data structure2000for example. The method2300may end at2314.

FIG. 24depicts details of a method2400for launching and rendering an application selected from a rail of a personal information manager application user interface with in accordance with examples of the present disclosure. A general order for the steps of the method2400is shown inFIG. 24. Generally, the method2400starts at2402and ends at2414. The method2400may include more or fewer steps or may arrange the order of the steps differently than those shown inFIG. 24. The method2400can be executed as a set of computer-executable instructions executed by a computer system and encoded or stored on a computer readable medium. Further, the method2400can be performed by gates or circuits associated with a processor, Application Specific Integrated Circuit (ASIC), a field programmable gate array (FPGA), a system on chip (SOC), or other hardware device. Hereinafter, the method2400shall be explained with reference to the systems, components, modules, software, data structures, user interfaces, etc. described in conjunction withFIGS. 1-23.

The method starts at2402, where flow may proceed to2404. At2404, an indication that a user has selected an icon for a different application that is displayed in a user interface associated with a personal information manager application may be received. For example, a user may select icon140of the user interface100, where the icon140is located in the rail128of the personal information manager application101ofFIG. 1. Flow may proceed to2406, where an application associated with the icon is determined. In some examples, the icon may include location information identifying a location, such as a location on a computing device or a location accessible via a network. As an example, the location may correspond to a location entered by a user when adding an application to an application gallery, such as the application gallery808ofFIG. 8. A location associated with the icon may be identified based on a location in the window820ofFIG. 8. The method may then proceed to2408, where a determination is made as to whether an existing security token associated with the personal information manager application is valid and is associated with the application to be launched.

For example, a token-based authentication architecture may be employed by the personal information manager application. Alternatively, or in addition, the personal information manager application may communicate with a centralized identity provider and/or platform that performs and manages identity verification processes and tasks that may be needed to ensure that each user has access to the personal information manager application and the data relied upon by the personal information manager application. More specifically, a centralized identity platform may authenticate users and provide security tokens, such as access tokens, refresh tokens, and ID tokens that allow the personal information manager application to access protected resources on a resource server, for example the server device1512ofFIG. 15A and/or 1612ofFIG. 16A. An access token is a security token that is issued by an authorization server as part of an authentication process. The access token contains information about the user and the application for which the token is intended. The access token may be used to access web application programming interfaces and other protected resources. Accordingly, an access token may be issued allowing a user to use the personal information manager application to access the personal information manager application data. As access tokes are generally valid for a short period of time, a refresh token may be issued from the centralized identity platform such that a client may exchange the refresh token for an access token. An ID token may be provided to the personal information manager application alongside of or instead of an access token such that the personal information manager application may properly authenticate a user using the application.

In examples, when the application selected by the user is launched, the application may determine if a valid security token exists. In some examples, the valid security token may be the same security token used by the personal information manager application. In other examples, the valid security token may be utilized as part of a single-sign-on event and/or remain from a previous session. If an existing valid security token does not exist upon application launch for example, the method2400may proceed to2410where authentication credentials of a user may be obtained. For example, a user interface with a username field and a password field may be presented to the user such that the user can enter the requested information. In some examples, the request for authentication may utilize facial recognition, voice recognition, or a similar authentication process to ensure the user attempting to access the launched application can verify their identity. That is, the user's identity may be verified at2412. The method may then proceed to2114, where the application may be launched and rendered to a display in accordance with the launch parameters, such as the parameters in the data structure2000. The method2400may then end at2416.

FIG. 25depicts details of a method2500for adding an application icon to the rail of the user interface of the personal information manager application in accordance with in accordance with examples of the present disclosure. A general order for the steps of the method2500is shown inFIG. 25. Generally, the method2500starts at2502and ends at2522. The method2500may include more or fewer steps or may arrange the order of the steps differently than those shown inFIG. 25. The method2500can be executed as a set of computer-executable instructions executed by a computer system and encoded or stored on a computer readable medium. Further, the method2500can be performed by gates or circuits associated with a processor. Application Specific Integrated Circuit (ASIC), a field programmable gate array (FPGA), a system on chip (SOC), or other hardware device. Hereinafter, the method2500shall be explained with reference to the systems, components, modules, software, data structures, user interfaces, etc. described in conjunction withFIGS. 1-24.

The method starts at2502, where flow may proceed to2504. At2504, an indication to add an application icon to the rail may be received. For example, an indication that a user selected the “plus” element404in the left rail428ofFIG. 4may be received. Upon receiving the indication that the user selected the “plus” element404for example, an application gallery may be rendered and displayed to a user. For example, the application gallery408ofFIG. 4including various application icons corresponding to a plurality of applications may be displayed. In some instances, a user may desire to add a custom application to the application gallery and/or the rail. For example, a user may select the add icon816ofFIG. 8. Accordingly, the method2500may proceed to2510, where a custom user interface may be displayed to a user that allows the user to select the application they would like to add to the application gallery. As one example, the window820ofFIG. 8may be displayed to the user. Accordingly, a user may provide a location, an icon, and/or whether to launch the application within the personal information manager application or external to the personal information manager application at2512.

The method2500may then proceed to2514, where the custom application may be added to the application gallery. As one example, the custom “MyApp” application ofFIGS. 8B and 8Cmay be added to the application gallery808. The method may proceed to2516where an indication of a selection of an icon made by the user is received. In examples, the user may select the newly added application, such as the “MyApp” icon824ofFIG. 8representing the custom application that was added to the application gallery at2514. In other examples, the indication may correspond to a selection of an application previously existing in the application gallery. The method may then proceed to2518, where one or more parameters may be copied to the rail.

In accordance with examples of the present disclosure, the one or more parameters may correspond to a location associated with an icon. For example, the one or more settings may be a link indicating where the underlying application, such as an executable file is locally located. In some examples, the link may refer to a network location, such as a webpage or web accessible resource. In some examples, the one or more configuration settings may specify how the application is to be launched and rendered to the display. For example, the one or more configuration settings my included one or more settings of the data structure2000ofFIG. 20. In examples, the one or more configuration settings may indicate that when launched, a new window or browser tap is to be created and the user interface associated with the application should be directed to that particular window or browser instance. In some examples, a region may be specified in the one or more configuration settings. The method may flow to2520such that the icon representing the application may be displayed on the rail.

In some examples, the one or more configuration settings may be modified once the icon has been added to the rail. For example, the one or more configuration settings may indicate which position on the rail the icon occupies. Further, in instances there a location of the underlying executable file or network location changes, such locations can be updated to reflect a new location. The method2500may end at2522.

FIG. 26depicts details of a method2600for determining one or more icons representative of an application to display at a rail of the user interface of the personal information manager application in accordance with in accordance with examples of the present disclosure. A general order for the steps of the method2600is shown inFIG. 26. Generally, the method2600starts at2602and ends at2612. The method2600may include more or fewer steps or may arrange the order of the steps differently than those shown inFIG. 26. The method2600can be executed as a set of computer-executable instructions executed by a computer system and encoded or stored on a computer readable medium. Further, the method2600can be performed by gates or circuits associated with a processor, Application Specific Integrated Circuit (ASIC), a field programmable gate array (FPGA), a system on chip (SOC), or other hardware device. Hereinafter, the method2600shall be explained with reference to the systems, components, modules, software, data structures, user interfaces, etc. described in conjunction withFIGS. 1-25.

The method starts at2602, where flow may proceed to2604. At2604, an indication that a personal information manager application has been launched is received. For example, the indication may correspond to a selection of an icon associated with the personal information manager application. As another example, the indication may be received as the personal information manager application loads and/or access information. In some examples, the indication may correspond to a successful authentication at a web site such that the personal information manager application may be presented as a web-enabled application. The method may proceed to2606to retrieve information associated with a manifest. In some examples, the manifest may be specific to the rail. In other examples, the manifest may be a shared manifest an include information associated with the rail and information associated with a gallery. An example manifest may be the same as or similar to the manifest1520,1518, and/or1618.

In examples, the manifest may include a description of one or more applications that should be included in the rail, such as rail128. Accordingly, the manifest may be seen as a list of applications, and/or icons, specifying a location for each icon on the rail. In some examples, the manifest may also include additional information, such as one or more configuration settings; the one or more configuration settings may be the same as or similar to the one or more configuration settings and/or parameters of the data structure2000. In some examples, the manifest may be a collection of information associated with icons and applications, where a designation may be provided indicating that the designated icon is to appear on the rail.

The method may proceed to2608, where a rail, such as the left rail128, is populated with one or more icons based on the information included in the manifest. For example, a rail load procedure may be called which identifies one or more applications, based on the manifest, that are to be added to the rail. In some examples, and as part of the process of loading the icons and/or applications associated with the rail, the personal information manager application may proceed to ensure that the user using the personal information manager application is authenticated with respect to each of the applications appearing on the rail. Accordingly, if a user is required to provide authentication credentials, the personal information manager application make such request, or allow such request, and ensure that the user is properly logged in and configured to use each of the applications appearing on the rail. The method2600may proceed to2610, where the personal information manager application including the populated rail is rendered to the display. The method2600may end at2612.

FIG. 27depicts details of a method2700for determining one or more icons representative of an application to display in an application gallery of a window associated with the user interface of the personal information manager application in accordance with in accordance with examples of the present disclosure. A general order for the steps of the method2700is shown inFIG. 27. Generally, the method2700starts at2702and ends at2712. The method2700may include more or fewer steps or may arrange the order of the steps differently than those shown inFIG. 27. The method2700can be executed as a set of computer-executable instructions executed by a computer system and encoded or stored on a computer readable medium. Further, the method2700can be performed by gates or circuits associated with a processor, Application Specific Integrated Circuit (ASIC), a field programmable gate array (FPGA), a system on chip (SOC), or other hardware device. Hereinafter, the method2700shall be explained with reference to the systems, components, modules, software, data structures, user interfaces, etc. described in conjunction withFIGS. 1-26.

The method starts at2702, where flow may proceed to2704. At2704, an indication that an application gallery, such as the application gallery808, has been launched is received. For example, the indication may correspond to a selection of the “plus” or “add” icon804. The method may proceed to2706to retrieve information associated with a manifest. In some examples, the manifest may be specific to the application gallery. In other examples, the manifest may be a shared manifest an include information associated with the application gallery and information associated with a gallery. An example manifest may be the same as or similar to the manifest1520,1518ofFIG. 15A and/or 1618ofFIG. 16A.

In examples, the manifest may include a description of one or more applications that should be included in the application gallery808ofFIG. 8. Accordingly, the manifest may be seen as a list of applications, and/or icons, specifying a location for each icon in the application gallery. In some examples, the manifest may also include additional information, such as one or more configuration settings; the one or more configuration settings may be the same as or similar to the one or more configuration settings and/or parameters of the data structure2000ofFIG. 20. In some examples, the manifest may be a collection of information associated with icons and applications, where a designation may be provided indicating that the designated icon is to appear in the application gallery.

The method may proceed to2708, where an application gallery, such as the application gallery808, is populated with one or more icons based on the information included in the manifest. For example, an application gallery load procedure may be called which identities one or more applications, based on the manifest, that are to be added to the application gallery. In some examples, and as part of the process of loading the icons and/or applications associated with the application gallery, the personal information manager application may proceed to ensure that the user using the personal information manager application is authenticated or otherwise authorized to use each of the applications appearing on the rail. The method2700may proceed to2710, where a window associated with the application gallery is rendered to the display. The method2700may end at2712.

FIG. 28depicts details of a method2800for routing an input received by an operating system to one or more of the personal information manager application and/or an application launched within or otherwise contained within the personal information manager application in accordance with in accordance with examples of the present disclosure. A general order for the steps of the method2800is shown inFIG. 28. Generally, the method2800starts at2802and ends at2814. The method2800may include more or fewer steps or may arrange the order of the steps differently than those shown inFIG. 28. The method2800can be executed as a set of computer-executable instructions executed by a computer system and encoded or stored on a computer readable medium. Further, the method2800can be performed by gates or circuits associated with a processor. Application Specific Integrated Circuit (ASIC), a field programmable gate array (FPGA), a system on chip (SOC), or other hardware device. Hereinafter, the method2700shall be explained with reference to the systems, components, modules, software, data structures, user interfaces, etc described in conjunction withFIGS. 1-27.

The method starts at2802, where flow may proceed to2804. At2804, an input may be received by an operating system. The input may correspond to a click, select, or other indication generally made to an area rendered at a display device. The method may proceed to2806, where a location on the displayed user interface may be determined. For example, an x,y location may be determined and/or received from the operating system. In some examples, an indication of focus may also be received. For example, an application may have a focus and an input may not be specific to a location. Accordingly, the input may be routed to the application having the focus.

In examples, the personal information manager application may have focus, and a user may be interacting with the application contained within the personal information manager application. Accordingly, at2808, based on the location determined at2806, the personal information manager application may determine whether the location is associated with the personal information manager application context (e.g, location corresponds to an area at the personal information manager application) or the context associated with the application that is running within the personal information manager application (e.g., location corresponds to an area within the personal information manager application and associated with the application). In some examples, the context may include not only what is currently being displayed, but may be based on user information (e.g, user credentials) and/or physical display parameters and/or input device information (such as mouse, keyboard, touch etc). If the location is associated with the context of the personal information manager application, then the input may be passed to the personal information manager application whereby the personal information manager application processes the input. For example, the location may be determined to be on the rail128, accordingly, the input may be passed to the personal information manager application and an action associated with the received input may be processed by the personal information manager application. If, at2808, the location is associated with the application context, then the input may be passed to the application such that the application can process the input. For example, the input may correspond to a selection of a dashboard in the MICROSOFT POWER BI™ interface. The method2800may end at2814.

FIG. 29is a block diagram illustrating physical components (e.g., hardware) of a computing device2900with which aspects of the disclosure may be practiced. The computing device components described below may be suitable for the computing and/or processing devices described above. In a basic configuration, the computing device2900may include at least one processing unit2902and a system memory2904. Depending on the configuration and type of computing device, the system memory2904may comprise, but is not limited to, volatile storage (e.g., random-access memory (RAM)), non-volatile storage (e.g, read-only memory (ROM)), flash memory, or any combination of such memories.

The system memory2904may include an operating system2905and one or more program modules2906suitable for running software application2920, such as one or more components supported by the systems described herein. As examples, system memory2904may include the personal information manager application2921, the contained application2922, and/or a web browser2923. The personal information manager application2921may be the same as or similar to the personal information previously described; the contained application2922may be the same as or similar to the contained application or otherwise the user selected application that is selected from the rail as previously described, the web browser may be the same as or similar to the web browser as previously described. The operating system2905, for example, may be suitable for controlling the operation of the computing device2900.

Furthermore, embodiments of the disclosure may be practiced in conjunction with a graphics library, other operating systems, or any other application program and is not limited to any particular application or system. This basic configuration is illustrated inFIG. 29by those components within a dashed line2908. The computing device2900may have additional features or functionality. For example, the computing device2900may also include additional data storage devices (removable and/or non-removable) such as, for example, magnetic disks, optical disks, or tape. Such additional storage is illustrated inFIG. 29by a removable storage device2909and a non-removable storage device2910.

As stated above, a number of program modules and data files may be stored in the system memory2904. While executing on the processing unit2902, the program modules2906(e.g, application2920) may perform processes including, but not limited to, the aspects, as described herein. Other program modules that may be used in accordance with aspects of the present disclosure may include electronic mail and contacts applications, word processing applications, spreadsheet applications, database applications, slide presentation applications, drawing or computer-aided programs, etc.

The computing device2900may also have one or more input device(s)2912such as a keyboard, a mouse, a pen, a sound or voice input device, a touch or swipe input device, etc. The output device(s)2914such as a display, speakers, a printer, etc may also be included. In some examples, the output device2914may include two displays. The aforementioned devices are examples and others may be used. The computing device2900may include one or more communication connections2916allowing communications with other computing devices2950. Examples of suitable communication connections916include, but are not limited to, radio frequency (RF) transmitter, receiver, and/or transceiver circuitry; universal serial bus (USB), parallel, and/or serial ports.

FIGS. 30A-30Billustrate a mobile computing device3000, for example, a mobile telephone, a smart phone, wearable computer (such as a smart watch), a tablet computer, a laptop computer, and the like, with which embodiments of the disclosure may be practiced. In some respects, the client may be a mobile computing device. With reference toFIG. 30A, one aspect of a mobile computing device3000for implementing the aspects is illustrated. In a basic configuration, the mobile computing device3000is a handheld computer having both input elements and output elements. The mobile computing device3000typically includes one or more displays3005and one or more input buttons3010that allow the user to enter information into the mobile computing device3000. The one or more displays3005of the mobile computing device3000may also function as an input device (e.g., a touch screen display).

If included, an optional side input element3015allows further user input. The side input element3015may be a rotary switch, a button, or any other type of manual input element. In alternative aspects, mobile computing device3000may incorporate greater or fewer input elements. For example, a display of the one or more displays3005may not be a touch screen in some embodiments.

In yet another alternative embodiment, the mobile computing device3000is a portable phone system, such as a cellular phone. The mobile computing device3000may also include an optional keypad3035. Optional keypad3035may be a physical keypad or a “soft” keypad generated on the touch screen display.

In various embodiments, the output elements include the display3005for showing a graphical user interface (GUI), a visual indicator3020(e.g., a light emitting diode), and/or an audio transducer3025(e.g., a speaker). In some aspects, the mobile computing device3000incorporates a vibration transducer for providing the user with tactile feedback. In yet another aspect, the mobile computing device3000incorporates input and/or output ports, such as an audio input (e.g., a microphone jack), an audio output (e.g, a headphone jack), and a video output (e.g., a HDMI port) for sending signals to or receiving signals from an external device.

FIG. 30Bis a block diagram illustrating the architecture of one aspect of a mobile computing device. That is, the mobile computing device3000can incorporate a system (e.g., an architecture)3002to implement some aspects. In one embodiment, the system3002is implemented as a “smart phone” capable of running one or more applications (e.g., browser, e-mail, calendaring, contact managers, messaging clients, games, and media clients/players). In some aspects, the system3002is integrated as a computing device, such as an integrated personal digital assistant (PDA) and wireless phone.

One or more application programs3066may be loaded into the memory3062and run on or in association with the operating system3064. Examples of the application programs include phone dialer programs, e-mail programs, personal information management (PIM) programs, word processing programs, spreadsheet programs, Internet browser programs, messaging programs, and so forth. The system3002also includes a non-volatile storage area3068within the memory3062. The non-volatile storage area3068may be used to store persistent information that should not be lost if the system3002is powered down. The application programs3066may use and store information in the non-volatile storage area3068, such as e-mail or other messages used by an e-mail application, and the like. A synchronization application (not shown) also resides on the system3002and is programmed to interact with a corresponding synchronization application resident on a host computer to keep the information stored in the non-volatile storage area3068synchronized with corresponding information stored at the host computer. As should be appreciated, other applications may be loaded into the memory3062and run on the mobile computing device3000described herein (e.g., search engine, extractor module, relevancy ranking module, answer scoring module, etc).

The system3002has a power supply3070, which may be implemented as one or more batteries. The power supply3070might further include an external power source, such as an AC adapter or a powered docking cradle that supplements or recharges the batteries.

The system3002may also include a radio interface layer3072that performs the function of transmitting and receiving radio frequency communications. The radio interface layer3072facilitates wireless connectivity between the system3002and the “outside world,” via a communications carrier or service provider. Transmissions to and from the radio interface layer3072are conducted under control of the operating system3064. In other words, communications received by the radio interface layer3072may be disseminated to the application programs3066via the operating system3064, and vice versa.

The visual indicator3020may be used to provide visual notifications, and/or an audio interface3074may be used for producing audible notifications via the audio transducer3025. In the illustrated embodiment, the visual indicator3020is a light emitting diode (LED) and the audio transducer3025is a speaker. These devices may be directly coupled to the power supply3070so that when activated, they remain on for a duration dictated by the notification mechanism even though the processor3060and other components might shut down for conserving battery power. The LED may be programmed to remain on indefinitely until the user takes action to indicate the powered-on status of the device. The audio interface3074is used to provide audible signals to and receive audible signals from the user. For example, in addition to being coupled to the audio transducer3025, the audio interface3074may also be coupled to a microphone to receive audible input, such as to facilitate a telephone conversation. In accordance with embodiments of the present disclosure, the microphone may also serve as an audio sensor to facilitate control of notifications, as will be described below. The system3002may further include a video interface3076that enables an operation of an on-board camera3030to record still images, video stream, and the like.

A mobile computing device3000implementing the system3002may have additional features or functionality. For example, the mobile computing device3000may also include additional data storage devices (removable and/or non-removable) such as, magnetic disks, optical disks, or tape. Such additional storage is illustrated inFIG. 30Bby the non-volatile storage area3068.

Data/information generated or captured by the mobile computing device3000and stored via the system3002may be stored locally on the mobile computing device3000, as described above, or the data may be stored on any number of storage media that may be accessed by the device via the radio interface layer3072or via a wired connection between the mobile computing device3000and a separate computing device associated with the mobile computing device3000, for example, a server computer in a distributed computing network, such as the Internet. As should be appreciated such data/information may be accessed via the mobile computing device3000via the radio interface layer3072or via a distributed computing network. Similarly, such data/information may be readily transferred between computing devices for storage and use according to well-known data/information transfer and storage means, including electronic mail and collaborative data/information sharing systems.

FIG. 31illustrates one aspect of the architecture of a system for processing data received at a computing system from a remote source, such as a personal computer3104, tablet computing device3106, or mobile computing device3108, as described above. The personal computer3104, tablet computing device3106, or mobile computing device3108may include the personal information3102and/or a web browser3103as previously described. Content at a server device3110may be stored in different communication channels or other storage types. For example, various documents may be stored using a directory service3122, a web portal3124, a mailbox service3126, an instant messaging store3128, or a social networking site3130.

One or more of the previously described program modules2906or software applications2920may be employed by server device3110and/or the personal computer3104, tablet computing device3106, or mobile computing device3108, as described above. For example, the server device3110may include a personal information manager application3102, the contained application3118, and/or a service3120. The personal information manager application3102may be the same as or similar to the personal information previously described; the contained application3118may be the same as or similar to the contained application or otherwise the user selected application that is selected from the rail as previously described.

The server device3110may provide data to and from a client computing device such as a personal computer3104, a tablet computing device3106and/or a mobile computing device3108(e.g., a smart phone) through a network3115. By way of example, the computer system described above may be embodied in a personal computer3104, a tablet computing device3106and/or a mobile computing device3108(e.g., a smart phone). Any of these embodiments of the computing devices may obtain content from the store3116, in addition to receiving graphical data useable to be either pre-processed at a graphic-originating system, or post-processed at a receiving computing system.