Detailed Description
Embodiments are provided for utilizing a ribbon to access an application user interface. A ribbon for accessing an application user interface may be provided. The ribbon may be displayed on a computer in association with an application user interface. The functional area may include a horizontally scrolling gallery. The horizontal scrolling gallery may display a subset of available options that may be used to perform one or more actions on content displayed in the application user interface. The computer may receive input to navigate through available options in the horizontally scrolling gallery.
FIG. 1A illustrates a computer screen display of an application user interface 100 incorporating a ribbon according to one embodiment. The application user interface 100 may be generated by one or more productivity applications executing on a computing device for creating and/or editing content (e.g., documents, images, web content, etc.). As will be discussed in more detail herein, the computing device may comprise a general purpose desktop, laptop, handheld, tablet, or other type of computer capable of executing one or more application programs. The application user interface 100 may include a ribbon 105 that may further include a title bar area 110 and a ribbon area 115 (shown separated from the title bar area 110 by a dashed line for illustrative purposes only). The title area 110 may display a title 130 associated with content 135 (displayed below the functional area 105 in the application user interface 100). According to an embodiment, the content 135 may include a variety of different types of content (e.g., text and/or images, web content, etc.) that are displayed as a "montage" of an interactive tile on a content surface.
The ribbon area 115 may display a horizontally scrolling gallery (hereinafter "gallery") 120. The gallery 120 may be used to navigate and select a number of options, such as a subset of gallery options 150, 152, 154, 156, 158, 160, 162, and 164, for performing one or more actions on the content 135 in the application user interface 100. For example, gallery 120 may include a theme gallery for selecting different style options to apply formatting (e.g., specially colored and shaded text boxes and custom titles and lists) to content 135. It should be appreciated that the gallery example described above is merely illustrative and one skilled in the art will recognize that gallery 120 may be used to display any number of options that may be selected and used to perform any number of actions in an application user interface. Gallery 120 may be scrolled horizontally "in place" via a gesture (e.g., using touch input by hand 122) or by using a stylus. It should be understood that gallery 120 may include additional available options that are hidden from view (which would become visible when the gallery is scrolled left or right). It should be appreciated that by scrolling horizontally "in place, gallery 120 conserves valuable screen area on a mobile computing device (such as a tablet) with limited display space by allowing a user to view all available options without further expanding the gallery to the limited available space. Ribbon area 115 may also include a plurality of tabs (such as tabs 170, 175, 180, and 185) that may be used to select various options associated with the application user interface. It should be understood that tabs 170 and 185 may include a base tab (i.e., tabs 170, 175, and 180) and one or more context tabs (i.e., tabs 185). It should also be understood that the base tab is always displayed in the ribbon 105, while the context tab may be displayed based only on the particular piece of content being selected in the application user interface. Selection of any of the tabs 170-185 may also be emphasized in the functional area 105, such as by highlighting, shading, or coloring. In addition, the display of the context tab may be further emphasized by the appearance of a bar above the tab name (e.g., bar 187 above tab 185). The functional area 115 can also include a refresh control 140 that can be used to update options in the gallery 120. For example, selection of the refresh control 140 may cause updated gallery options to be populated into the gallery 120 from a remote server. Ribbon area 115 may also display icons 190, 192, and 194 which, when selected, perform additional options in application user interface 100 (e.g., add tiles and add/change background images and colors). It should be appreciated that according to embodiments described herein, refreshing the display of the control 140 and icons 190, 192, and 194 is not required, and thus the ribbon 105 may exclude the options described above.
FIG. 1B illustrates a computer screen display of an application user interface 100 incorporating a ribbon according to an alternative embodiment. The application user interface 100 of FIG. 1B includes many of the features described in the discussion above of FIG. 1A, including the ribbon 105, the title bar area 110, the ribbon area 115, the gallery 120, the title 130, the content 135, the refresh control 140, the subset of gallery options 150, 152, 154, 156, 158, 160, 162, and 164, the tabs 170, 175, 180, and 185, the bar 187, and the icons 190 and 194. In addition, the application user interface 100 of FIG. 1B includes a gallery scroll paddle 125 that can be used to navigate among the available options in the gallery 120 using a pointing device (represented by the device pointer 124) in communication with the computing device. It will be appreciated that the gallery scroll paddle 125 may only be displayed upon receipt of a hover action of the device pointer 124 over the gallery 120. Thus, during the time that the device pointer 124 is not interacting with the gallery 120, the gallery scroll paddle will not be visible to the user applying the user interface 100.
FIG. 2A illustrates a computer screen display of an application user interface 200 incorporating a ribbon according to an alternative embodiment. The application user interface 200 may be generated by one or more productivity applications executing on a computing device for creating and/or editing content (e.g., documents, images, web content, etc.). The application user interface 200 may include a functional area 205, which may further include a functional area region 215. The ribbon area 215 may display a horizontally scrolling gallery (hereinafter "gallery") 220. Gallery 220 may be used to navigate through and select a number of options, such as gallery options 250, 252, 254, 256, and 258, for performing one or more actions on content displayed under the function field 205. For example, gallery 220 may include a number of "teaser" options that include a series of cached images for displaying a montage associated with home housekeeping data. For example, the gallery option 250 may be associated with content including a montage including, but not limited to, recipes 235, family photographs 236, budget and plan information 237, and medical records 238. Gallery 220 may be scrolled horizontally "in place" via a gesture (e.g., using touch input by hand 222) or by using a stylus. It should be understood that gallery 220 may include additional available options that are hidden from view (which would become visible when the gallery is scrolled left or right). The functional area 215 may also include a plurality of tabs (such as tabs 270, 275, 280, 285, and 287) that may be used to select various options associated with the application user interface. It should be understood that tab 270-287 may include base tabs (i.e., tabs 270, 275, and 280) and context tabs (i.e., tabs 285 and 287). It should also be understood that the base tab is always displayed in the function area 205, while the context tab may be displayed based only on the particular piece of content being selected in the application user interface. Selection of any of tabs 270-287 may also be emphasized in function area 205, such as by highlighting, shading, or coloring. In addition, the display of the contextual tabs may be further emphasized by the presence of a bar above the tab name (e.g., bar 289 above tabs 285 and 287). The ribbon area 215 may also include a refresh control 240 that may be used to update options in the gallery 220. For example, selection of the refresh control 240 may cause updated gallery options to be populated into the gallery 220 from a remote server. The ribbon area 215 may also display icons 292 and 294, which when selected, perform additional options (e.g., custom images and text) in the application user interface 200. It should be appreciated that according to embodiments described herein, refreshing the display of control 240 and icons 292 and 294 is not required, and thus, functional area 205 may exclude the above-described options.
FIG. 2B illustrates a computer screen display of an application user interface 200 incorporating a ribbon according to an alternative embodiment. The application user interface 200 of FIG. 2B includes many of the features described above in the discussion of FIG. 2A, including the ribbon 205, the ribbon area 215, the gallery 220, the content 235 plus 238, the refresh control 240, the subset of the gallery options 250 plus 258, the tabs 270 plus 287, the bar 289, and the icons 292 plus 294. In addition, the application user interface 200 of FIG. 2B includes a gallery scroll paddle 225 that may be used to navigate among the available options in the gallery 220 using a pointing device (represented by device pointer 224) in communication with the computing device. It will be appreciated that the gallery scroll paddle 225 may only be displayed upon receipt of a hover action of the device pointer 224 over the gallery 220. Thus, during the time that the device pointer 224 is not interacting with the gallery 220, the gallery scroll paddle will not be visible to the user applying the user interface 200.
FIG. 3A illustrates a computer screen display of an application user interface 300 incorporating a ribbon according to an alternative embodiment. The application user interface 300 may be generated by one or more productivity applications executing on a computing device for creating and/or editing content (e.g., documents, images, web content, etc.). The application user interface 300 may include a ribbon 305, which may further include a ribbon area 315. The ribbon area 315 may display a horizontally scrolling gallery (hereinafter "gallery") 320. The gallery 320 may be used to navigate through and select a number of options, such as gallery options 350, 355, and 360, for performing one or more actions on content displayed under the ribbon 305. For example, gallery 320 may include a number of options for accessing and displaying various social networking sites. Gallery 320 may be scrolled horizontally "in place" via gestures (e.g., touch input using hand 322) or by using a stylus. It should be understood that gallery 320 may include additional available options that are hidden from view (which would become visible when the gallery is scrolled left or right). The ribbon area 315 may also include a plurality of tabs (such as tabs 370, 375, and 3805) that may be used to select various options associated with the application user interface. Selection of any of the tabs 370-380 may be emphasized in the function area 305, such as by highlighting, shading, or coloring. The ribbon area 315 may also include a refresh control 340 that may be used to update options in the gallery 320. For example, selection of the refresh control 340 may cause updated gallery options to be populated into the gallery 320 from a remote server. Ribbon area 315 may also display icons 392,394,396and398, which when selected, perform additional options for social networking sites displayed as content 335 in application user interface 300. It should be appreciated that the display of the refresh control 340 and the icons 392 and398 is not required according to the embodiments described herein, and thus the ribbon 305 may exclude such options.
FIG. 3B illustrates a computer screen display of an application user interface 300 incorporating a ribbon according to an alternative embodiment. The application user interface 300 of FIG. 3B includes many of the features described above in the discussion of FIG. 3A, including the ribbon 305, the ribbon area 315, the gallery 320, the content 335, the refresh control 240, the gallery options 350-. In addition, the application user interface 300 of FIG. 3B includes a gallery scroll paddle 325 that may be used to navigate through available options in the gallery 320 using a pointing device (represented by the device pointer 324) in communication with the computing device. It will be appreciated that the gallery scroll paddle 325 may only be displayed upon receipt of a hover action of the device pointer 324 over the gallery 320. Thus, during the time that the device pointer 324 does not interact with the gallery 320, the gallery scroll paddle will not be visible to the user applying the user interface 300.
Fig. 4A and 4B illustrate computer screen displays of an application user interface 400 incorporating a ribbon for selecting available options in a horizontal scroll gallery via touch and reordering the display of the selected available options in the horizontal scroll gallery, according to an embodiment. The application user interface 400 includes a ribbon 405, which may further include a ribbon area 415. The ribbon area 415 may display a horizontally scrolling gallery (hereinafter "gallery") 420. The gallery 420 may be used to navigate through and select a number of options, such as gallery options 450, 452, 454, 456, 458, 460, and 462, for performing one or more actions on content 435 displayed beneath the ribbon 405. For example, gallery 420 may include a theme gallery for selecting different style options to apply formatting (e.g., specially colored and shaded text boxes and custom titles and lists) to content 435. The ribbon area 415 may further include refresh controls 440, tabs 470, 475, and 480, and icons 490, 492, and 494. Fig. 4A illustrates the selection of a gallery option 454 (shown in the horizontally scrolling gallery 400 as being surrounded by a dashed line) using touch input (e.g., using hand 422) to replace the currently selected subject (i.e., gallery option 450). Fig. 4B illustrates the application of the gallery option 454 to the content 435. In particular, the theme represented by the newly selected gallery option 454 is reflected in the content 435 surrounded by the dashed line. In addition, horizontal gallery 420 shows a reordering of gallery options such that the currently selected gallery option 454 (i.e., the currently selected subject) is displayed in the first card slot in the gallery. It should be appreciated that, according to one embodiment, the gallery options are automatically reordered in the gallery such that the currently selected theme is always displayed in the first gallery slot, regardless of the previous location of the theme in the gallery.
FIG. 5 illustrates a computer screen display of an application user interface 500 incorporating a ribbon including a resized horizontal scrolling gallery for displaying available options according to one embodiment. The application user interface 500 includes a ribbon 505, which may further include a ribbon area 515. The ribbon area 515 may display a gallery 520. As shown in FIG. 5, the window comprising application user interface 500 has been adjusted to be smaller so that there is insufficient space to display two or more options in gallery 520 horizontally. As a result, gallery 520 is displayed as a single button and the available gallery options associated with the gallery are hidden from view. According to an embodiment, the available gallery options may be revealed in response to selection (via touch or pointing device input) of a button of the gallery 520, resulting in display of the available gallery options in the grid 540 that is pulled down (from the ribbon 505) into the content area 545 in the application user interface 500.
FIG. 6 is a flow diagram illustrative of a routine 600 for utilizing a ribbon to access an application user interface, according to an embodiment. When reading the discussion of the routines presented herein, it should be appreciated that the logical operations of various embodiments of the present invention are implemented (1) as a sequence of computer implemented acts or program modules running on a computing device or system and/or (2) as interconnected machine logic circuits or circuit modules within the computing device or system. Such implementation is a matter of choice dependent on the performance requirements of the computing device or system implementing the invention. Accordingly, the logical operations illustrated in FIG. 6and making up the embodiments described herein are referred to variously as operations, structural devices, acts or modules. It will be recognized by one skilled in the art that these operations, structural devices, acts and modules may be implemented in software, hardware, firmware, special purpose digital logic, and any combination thereof without deviating from the spirit and scope of the present invention as recited within the claims set forth herein.
The routine 600 begins at operation 605, where an application executing on a computing device displays a ribbon in an application user interface generated by the application. For example, the application may generate any of the illustrative application user interfaces that display the ribbon as discussed above with reference to fig. 1-5. In particular, according to one embodiment, the functional area may include a functional area and a title bar area. The ribbon area may display a horizontal scrolling gallery that displays a subset of available options for performing one or more actions in the application user interface, and one or more context tabs that are displayed only upon selection of a content segment in the application user interface. The ribbon area may optionally display one or more icons for executing additional options in the application user interface and a refresh control for updating the available options in the horizontal scroll gallery.
From operation 605, the routine 600 continues to operation 610, where an application executing on the computing device may receive input to navigate among available options in a horizontal scrolling gallery displayed in the functional area. For example, the application may receive touch input that scrolls horizontally through all available options in the horizontally scrolling gallery, as shown in fig. 1A, 2A, and 3A. Alternatively, the application may receive pointing device input that scrolls horizontally through all available options in the horizontally scrolling gallery, as shown in FIGS. 1B, 2B, and 3B. It should be appreciated that if the pointing device is to be used to navigate through the available gallery options, the application may display a scroll paddle adjacent to the horizontally scrolling gallery upon receiving a hover action of the pointing device.
From operation 610, the routine 600 continues to operation 615, where an application executing on the computing device may receive a selection of a refresh control in the functional zone to update available options in the horizontal scrolling gallery. For example, according to an embodiment, a server may provide a "teaser" service that "chops" individual pieces of content added to one or more content tiles into different pieces. For example, the electronic document may contain a file name, an author, a first photograph, and one or more pictures. The teaser service may pull all of these content pieces from the document and then stitch them together to create a teaser (i.e., a preview of the document) that is provided to the user in a horizontal scrolling gallery. Subsequently, when the user clicks a refresh control on the client computing device that provides the application user interface and the ribbon, the teaser service is invoked to fetch the content segments (i.e., electronic documents) and run the teaser service again during the teaser generation process. It should be appreciated that, according to an embodiment, the refresh control may be used to update available options in the horizontal scroll gallery after content previously added to the application user interface has been edited to cause gallery options (e.g., teasers) displayed in the horizontal scroll gallery to expire. According to another embodiment, the refresh control may be used to update the available options in the horizontal scrolling gallery after the user has added new content (e.g., pictures) that will be used by the forecast service to generate forecasts for display in the gallery. For example, if a user adds a picture of an author of an electronic document, the teaser service may use the added picture to generate teasers for the electronic document for display in the gallery.
From operation 615, the routine 600 continues to operation 620, where an application executing on the computing device may resize the horizontally scrolling gallery to display a single button representing the gallery. In particular, the user may zoom out of the application user interface displaying the horizontally scrolling gallery so that there is no longer sufficient area to display two or more gallery options horizontally. An illustrative resized horizontal scrolling gallery is shown in FIG. 5 as described above.
From operation 620, the routine 600 continues to operation 625, where the application executing on the computing device may pull down a grid from the ribbon to display the available gallery options. An illustrative drop-down grid displaying available gallery options is shown in FIG. 5, described above.
From operation 625, the routine 600 continues to operation 630, where the application executing on the computing device may reorder the available options in the horizontally scrolling gallery in the functional area such that the currently selected gallery option is always displayed in the first card slot in the gallery. In particular (and as discussed in detail above with reference to fig. 4A and 4B), gallery options may be automatically reordered in the gallery such that the currently selected option is always displayed in the first gallery slot, regardless of the option's previous location in the gallery. From operation 630, the routine 600 then ends.
FIG. 7 is a block diagram illustrating example physical components of a computing device 700 that may be used to implement embodiments of the present invention. The computing device components described below may be applicable to the computing devices referenced above with respect to fig. 1-6. In a basic configuration, computing device 700 may include at least one processing unit 702 and system memory 704. Depending on the configuration and type of computing device, system memory 704 may include, but is not limited to, volatile (e.g., Random Access Memory (RAM)), non-volatile (e.g., read-only memory (ROM)), flash memory, or any combination. The system memory 704 may include an operating system 705 and applications 707. Operating system 705, for example, may be suitable for controlling the operation of computing device 700, and according to an embodiment operating system 705 may include the WINDOWS operating systems from MICROSOFT CORPORATION of Redmond, Washington. For example, the applications 707 can include a variety of different types of productivity application software, including but not limited to word processing software, presentation graphics software, spreadsheet software, drawing software, project management software, publishing software, personal information management software, and notes software. According to an embodiment, the applications 707 may include one or more of the following software applications: WORD processing software from microsoft corporation of redmond, washington, POWERPOINT presentation graphics software, EXCEL spreadsheet software, VISIO drawing software, PROJECT management software, publish publishing software, OUTLOOK personal information management software, and ONENOTE note software. It should be appreciated that the software application described above may comprise a single application program, or alternatively may be incorporated into an application suite, such as the OFFICE application suite from Microsoft corporation. However, it should be appreciated that the embodiments described herein may also be implemented in connection with other operating systems and application programs, and further are not limited to any particular application or system.
Computing device 700 may have additional features or functionality. For example, the computing device 700 may also include additional data storage devices (removable and/or non-removable) such as, for example, magnetic disks, optical disks, solid State Storage Devices (SSDs), flash memory, or tape. Such additional storage is illustrated in FIG. 7 by removable storage 709 and non-removable storage 710.
Generally, consistent with embodiments, program modules may be provided that include routines, programs, components, data structures, and other types of structures that may perform particular tasks or that may implement particular abstract data types. Moreover, embodiments may be practiced with other computer system configurations, including hand-held devices, multiprocessor systems, microprocessor-based or programmable consumer electronics, minicomputers, mainframe computers, and the like. Embodiments may also be practiced in distributed computing environments where tasks are performed by remote processing devices that are linked through a communications network. In a distributed computing environment, program modules may be located in both local and remote memory storage devices.
Furthermore, embodiments may be practiced in circuits comprising discrete electronic elements, packaged or integrated electronic chips containing logic gates, circuits utilizing microprocessors, or on a single chip containing electronic elements or microprocessors. For example, embodiments may be practiced with a system on a chip ("SOC"), where each or many of the components shown in FIG. 7 may be integrated onto a single integrated circuit. Such SOC devices may include one or more processing units, graphics units, communication units, system virtualization units, and various application functions, all integrated (or "burned") onto a chip substrate as a single integrated circuit. When operating with an SOC, the functionality described herein may operate through application specific logic integrated with other components of the computing device/system 700 on a single integrated circuit (chip). Embodiments may also be practiced using other technologies capable of performing logical operations such as, for example, AND, OR, AND NOT, including but NOT limited to mechanical, optical, fluidic, AND quantum technologies. In addition, embodiments may be practiced in a general purpose computer or any other circuits or systems.
For example, embodiments may be implemented as a computer process (method), a computing system, or as an article of manufacture, such as a computer program product or computer readable media. The computer program product may be a computer storage media readable by a computer system and encoding a computer program of instructions for executing a computer process.
The term computer readable media as used herein may include computer storage media. Computer storage media may include volatile and nonvolatile, removable and non-removable media implemented in any method or technology for storage of information, such as computer readable instructions, data structures, program modules, or other data. System memory 704, removable storage 709 and non-removable storage 710 are all computer storage media examples (i.e., memory storage). Computer storage media may include, but is not limited to, RAM, ROM, electrically erasable read-only memory (EEPROM), flash memory or other memory technology, CD-ROM, Digital Versatile Disks (DVD) or other optical storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other medium which can be used to store information and which can accessed by computer device 700. Any such computer storage media may be part of computing device 700. Computing device 700 may also have input device(s) 712 such as keyboard, mouse, pen, voice input device (e.g., a microphone for voice input), touch input device, etc. Output device(s) 714 such as a display, speakers, printer, etc. may also be included. The above devices are examples and other devices may be used.
The term computer readable media as used herein also includes communication media. Communication media may be embodied by computer readable instructions, data structures, program modules, or other data in a modulated data signal, such as a carrier wave or other transport mechanism, and includes any information delivery media. The term "modulated data signal" may describe a signal that has one or more of its characteristics set or changed in such a manner as to encode information in the signal. By way of example, and not limitation, communication media includes wired media such as a wired network or direct-wired connection, and wireless media such as acoustic, Radio Frequency (RF), infrared and other wireless media.
Fig. 8A and 8B illustrate a suitable mobile computing environment, such as a mobile computing device 850, which may include, but is not limited to, a smartphone, tablet personal computer, laptop computer, and the like, in which embodiments may be implemented. With reference to fig. 8A, an example mobile computing device 850 for implementing embodiments is illustrated. In a basic configuration, the mobile computing device 850 is a handheld computer having both input elements and output elements. The input elements may include a touch screen display 825 and input buttons 810 that allow a user to input information into the mobile computing device 850. The mobile computing device 850 may also incorporate optional side input elements 820 that allow further user input. Optional side input element 820 may be a rotary switch, a button, or any other type of manual input element. In alternative embodiments, mobile computing device 850 may incorporate more or fewer input elements. For example, in some embodiments, the display 825 may not be a touch screen. In yet another alternative embodiment, the mobile computing device is a portable telephone system, such as a cellular telephone having a display 825 and input buttons 810. The mobile computing device 850 may also include an optional keypad 805. Optional keypad 805 may be a physical keypad or a "soft" keypad generated on a touch screen display.
The mobile computing device 850 incorporates an output element, such as a display 825 that may display a Graphical User Interface (GUI). Other output elements include a speaker 830 and LED light 826. Additionally, mobile computing device 850 may contain a vibration module (not shown) that causes mobile computing device 850 to vibrate to notify a user of an event. In yet another embodiment, the mobile computing device 850 may incorporate a headphone jack (not shown) for providing another means for providing output signals.
Although described herein in connection with a mobile computing device 850, in alternative embodiments, any number of computer systems may be used in combination, such as in a desktop environment, a laptop or notebook computer system, a multiprocessor system, microprocessor-based or programmable consumer electronics, network PCs, minicomputers, mainframe computers, and the like. Embodiments may also be practiced in distributed computing environments where tasks are performed by remote processing devices that are linked through a communications network in a distributed computing environment, and where programs are located in both local and remote memory storage devices. In summary, any computer system having multiple environmental sensors, multiple output elements that provide notifications to a user, and multiple notification event types may incorporate the various embodiments described herein.
Fig. 8B is a block diagram that illustrates components of a mobile computing device used in one embodiment, such as mobile computing device 850 shown in fig. 8A. That is, mobile computing device 850 can incorporate system 802 to implement certain embodiments. For example, the system 802 may be used to implement a "smart phone" or tablet computer that can run one or more applications similar to those of a desktop or notebook computer. In certain embodiments, system 802 is integrated as a computing device, such as an integrated Personal Digital Assistant (PDA) and wireless phone.
Applications 867 can be loaded into the memory 862 and run on the operating system 864 or in association with the operating system 664. The system 802 also includes non-volatile storage 868 within the memory 862. The non-volatile storage 868 may be used to store persistent information that is not lost when the system 802 is powered down. The application 867 can use the information and store it in the non-volatile storage 868. A synchronization application (not shown) also resides on system 802 and is programmed to interact with a corresponding synchronization application resident on a host computer to keep the information stored in non-volatile storage 868 synchronized with corresponding information stored at the host computer. It should be appreciated that other applications may also be loaded into the memory 862 and run on the mobile computing device 850.
The system 802 has a power supply 870 that may be implemented as one or more batteries. The power supply 870 may also include an external power source, such as an AC adapter or a powered docking cradle that supplements or recharges the batteries.
The system 802 may also include a radio 872 (i.e., a radio interface layer) that performs the function of transmitting and receiving radio frequency communications. The radio 872 facilitates wireless connectivity between the system 802 and the "outside world" through a communications carrier or service provider. Transmissions to and from the radio 872 are made under control of the operating system 864. In other words, communications received over the radio 872 may be disseminated to the applications 867 via the operating system 864, and vice versa.
The radio 872 allows the system 802 to communicate with other computing devices, such as over a network. Radio 872 is one example of communication media. Embodiments of system 802 are shown with two types of notification output devices: an LED880 operable to provide a visual notification and an audio interface 874 operable to provide an audio notification in conjunction with the speaker 830. These devices may be directly coupled to the power supply 870 so that when activated, they remain on for a duration dictated by the notification mechanism even though the processor 860 and other components might shut down in order to conserve battery power. The LED880 may be programmed to remain on indefinitely until the user takes action to indicate the powered-on status of the device. The audio interface 874 is used to provide audible signals to and receive audible signals from the user. For example, in addition to being coupled to speaker 830, audio interface 874 may also be coupled to a microphone (not shown) to receive audible input in order to facilitate a telephone conversation. According to various embodiments, the microphone may also act as an audio sensor to facilitate control of notifications. The system 802 may further include a video interface 876 that allows operation of the on-board camera 840 to record still images, video streams, and the like.
The mobile computing device implementing system 802 may have additional features or functionality. For example, the device may also include additional data storage devices (removable and/or non-removable) such as, magnetic disks, optical disks, or tape. Such additional storage is illustrated in FIG. 8B by storage 868.
The data/information generated or captured by the mobile computing device 850 and stored via the system 802 may be stored locally on the mobile computing device 850 as described above, or the data may be stored on any number of storage media that are accessible by the device via the radio 872 or via a wired connection between the mobile computing device 850 and a separate computing device associated with the mobile computing device 850, such as a server computer in a distributed computing network, e.g., the internet. As should be appreciated, such data/information may be accessed via the mobile computing device 850, via the radio 872, or via a distributed computing network. Similarly, such data/information may be readily transferred between computing devices for storage and use in accordance with known data/information transfer and storage means, including email and collaborative data/information sharing systems.
FIG. 9 is a simple block diagram of a distributed computing system in which embodiments may be implemented. A distributed computing system may include multiple client devices, such as computing device 905, tablet computing device 903, and mobile computing device 910. Client devices 905, 903, and 910 can communicate with a distributed computing network 915 (e.g., the internet). The server 920 is in communication with the client devices 905, 903, and 910 via the network 915. The server 920 may store the application 900, the application 900 may execute routines including, for example, one or more of the operations in the routine 600 described above.
Embodiments are described above with reference to block diagrams and/or operational illustrations of methods, systems, and computer program products. The functions/acts noted in the blocks may occur out of the order noted in any block diagrams. For example, two blocks shown in succession may, in fact, be executed substantially concurrently, or the blocks may sometimes be executed in the reverse order, depending upon the functionality/acts involved.
While specific embodiments have been described, other embodiments are possible. In addition, although embodiments are described as being associated with data stored in memory and other storage media, data can also be stored on or read from other types of computer-readable media, such as secondary storage devices (like hard disks, floppy disks, or a CD-ROM), a carrier wave from the Internet, or other forms of RAM or ROM. Moreover, the operations of the disclosed routines may be modified in any manner, including by reordering operations and/or inserting or deleting operations, without departing from the embodiments described herein.
It will be apparent to those skilled in the art that various modifications or variations may be made without departing from the scope or spirit of the embodiments described herein. Other embodiments will be apparent to those skilled in the art from consideration of the specification and practice of the embodiments described herein.