Software applications used for preparing and processing rich text documents provide a platform to enable users to write, calculate, organize, prepare presentations, send and receive electronic mail, compose music, and the like. For example, modern electronic word processing applications allow users to prepare a variety of useful documents. Modern spreadsheet applications allow users to enter, manipulate, and organize data. Modern electronic slide presentation applications allow users to create a variety of slide presentations containing text, pictures, data or other useful objects. Such applications may be used on devices of all shapes and sizes.
This Summary is provided to introduce a selection of concepts in a simplified form that are further described below in the Detailed Description. This Summary is not intended to identify key features or essential features of the claimed subject matter, nor is it intended to be used as an aid in determining the scope of the claimed subject matter.
Embodiments of the present disclosure relate to displaying a scalable integrated application user interface. The user interface may be a functional landscape of an application that accommodates and displays, substantially in-line and in various combinations, multiple regions of application functional controls and information. In some embodiments, a first region displays a plurality of selectable functionality groupings, a second region displays document information, and a third region displays a plurality of individual functional controls. The user interface may detect a change in available screen space for the application and adjust the functional landscape accordingly.
According to an aspect of the disclosure, a method for displaying a user interface at a display device includes arranging multiple regions of application functionalities and information; identifying an amount of space available to the user interface; comparing the amount of available application space with an amount of space used by the multiple regions of application functionalities and information; and adjusting the visual display of at least one of the multiple regions of application functionalities and information according to one or more predetermined scaling priorities to accommodate the available space within the designated area of the application.
According to an aspect of the disclosure, a system includes an application executed at least in part by a computing device, the computing device comprising at least one processor, a memory for containing computer-executable instructions, which when executed by the at least one processor, cause the computing device to perform a method comprising arranging multiple regions of application functionalities and information for display substantially in-line within a designated area of an application, identifying an amount of space available to the user interface within the designated area of the application, comparing the amount of available application space with an amount of space used by the multiple regions of application functionalities and information, and adjusting a visual display of at least one of the multiple regions of application functionalities and information according to one or more predetermined scaling priorities to accommodate the available space within the designated area of the application.
The use of the same reference numbers in different instances in the description and the figures may indicate similar or identical items. Non-limiting and non-exhaustive embodiments are described with reference to the following Figures in which:
Embodiments of the present disclosure relate to displaying a scalable integrated application user interface. The user interface may be a functional landscape of an application that accommodates and displays, substantially in-line and in various combinations, multiple regions of application functional controls and information. In some embodiments, a first region displays a plurality of selectable functionality groupings, a second region displays document information, and a third region displays a plurality of individual functional controls. The user interface may detect a change in available screen space for the application and may adjust the functional landscape accordingly.
Referring now to the drawings, in which like numerals represent like elements through the several figures, aspects of the present invention and the exemplary operating environment will be described.
Generally, program modules include routines, programs, components, data structures, and other types of structures that perform particular tasks or implement particular abstract data types. Moreover, those skilled in the art will appreciate that the invention 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. The invention 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.
Turning now to
The mass storage device 14 may be connected to the CPU 4 through a mass storage controller (not shown) connected to the bus 12. The mass storage device 14 and its associated computer-readable media may provide non-volatile storage for the personal computer 2. Although the description of computer-readable media contained herein refers to a mass storage device, such as a hard disk or CD-ROM drive, it should be appreciated by those skilled in the art that computer-readable media can be any available media that can be accessed by the personal computer 2.
According to various embodiments of the disclosure, the personal computer 2 may operate in a networked environment using logical connections to remote computers through a TCP/IP network 18, such as the Internet. The personal computer 2 may connect to the TCP/IP network 18 through a network interface unit 20 connected to the bus 12. It should be appreciated that the network interface unit 20 may also be utilized to connect to other types of networks and remote computer systems. The personal computer 2 may also include an input/output controller 22 for receiving and processing input from a number of devices, including a keyboard or mouse (not shown). Similarly, an input/output controller 22 may provide output to a display screen, a printer, or other type of output device.
As mentioned briefly above, a number of program modules and data files may be stored in the mass storage device 14 and RAM 8 of the personal computer 2, including an operating system 16 suitable for controlling the operation of a networked personal computer, such as the WINDOWS operating systems from Microsoft Corporation of Redmond, Wash. The mass storage device 14 and RAM 8 may also store one or more application programs. In particular, the mass storage device 14 and RAM 8 may store an application program 105 for providing a variety of functionalities to a user. For instance, the application program 105 may comprise many types of programs such as a word processing application, a spreadsheet application, a desktop publishing application, and the like. According to some embodiments, the application program 105 may comprise a multiple functionality software application for providing word processing functionality, slide presentation functionality, spreadsheet functionality, database functionality and the like. Some of the individual program modules comprising the multiple functionality application 105 may include a word processing application 125, an electronic mail application 130 a slide presentation application 135, a spreadsheet application 140 and a database application 145.
The following discussion describes an example procedure for displaying and scaling an in-line (e.g. integrated into one row or one column) user interface of the present disclosure. In portions of the following discussion, reference will be made to the environments depicted above in
According to some embodiments of the disclosure, top-level functionality tabs, interactive elements, informational elements, generic commands and/or other application elements may be integrated into one row or column, providing a compact region of functionality and information. The in-line user interface 300 may also display as a top-level common landscape or region of the application, such that the interface elements may not change substantially from one document to another when opened in the application using a particular device. That is, for a given device size, screen size, or width available to the application within the screen, the in-line user interface may display in substantially the same manner for each document. Thus, visual consistency for the interface 300 may be maintained, allowing users to develop familiarity with the application and its corresponding available functions as they are displayed on multiple devices. In further embodiments, the in-line user interface 300 may provide a consistent display across a plurality of related applications (e.g., a suite of applications). Additionally, the in-line user interface maximizes available application canvas space by adjusting displayed elements depending on, for instance, device, screen size, or width available to the application within the screen. As will be discussed in detail, the interface 300 may employ one or more scaling techniques to appropriately size the display of one or more elements of the interface 300 to accommodate changes in available application space. While the in-line user interface 300 is shown at the top of the application, the interface 300 may display in any suitable region of the application, including horizontally along either side or at the bottom of the application.
Example regions of an in-line user interface 300 according to an embodiment of the disclosure are described below. Where space is available, all or most of the regions may be arranged for display. As will also be discussed in further detail below, prior to display of any of the below described regions, the interface 300 may identify an amount of available space and make adjustments accordingly. For ease of description of one or more subsequent steps of the method 200, a description of the regions is provided first.
As shown in
As mentioned above, the user interface 300 of the present disclosure may also include an informational region 304 displaying product information. The first informational region 304 may display, for example a brand or product name, an icon representing a logo for a brand or product name, or any other such element. As shown in
In some embodiments, a search region 306 displaying a search function entry point may be provided in-line with other displayed elements of the user interface 300.
In some embodiments, a second informational region 308 displaying a second type of information may be provided in-line with other displayed elements of the user interface 300. As shown in
In some embodiments, a sync region 310 displaying a sync indicator may be provided in-line with other displayed elements of the user interface 300.
In further embodiments, a quick command region 312 displaying one or more quick commands may be provided in-line with other displayed elements of the user interface 300.
In some instances, a toolbar may be provided within the in-line user interface.
In some instances, a seventh region (not shown) including a plurality of selectable controls for functionality not associated with a particular task may be provided. For instance, such generic selectable controls may be general file commands such as “open,” “save” and “print.” According to one embodiment, the selectable controls included in the region may be controls that are generally found and used across a number of different software applications.
Method 200 may proceed to operation 204, where an amount of available application space is identified. In order to calculate the appropriate layout for interface 300, an available application width or height may be identified or calculated. According to embodiments of the disclosure, such calculations of available space may involve ascertaining a number of available pixels in a given visual environment. In some instances, the available application width or height may correspond to an amount of window space available (e.g., within the parameters of a document open on a smartphone or other device when no other applications are open). In other instances, the available application width or height corresponds only to an amount of space available within the application upon execution (e.g., within the parameters of a document open on a tablet or other device when other applications are also open). Identifying the window size of the application may include identifying any changes in the window size of the application. A display screen may change in size due to user selection or based on a change in display screen for the computing device. In smaller computer devices (such as phones, tablets, watches, and etc.), the window size of the application may correspond to the size of the display screen. In some instances, identifying an amount of available space may include identifying a change in an amount of available space, such as, when a user rotates a device to change its orientation or manually reduces the size of an application. In some embodiments, the application is hosted within a window.
Method 200 may proceed to operation 206, where a comparison is made between the amount of space available and the amount of space needed for the multiple regions of functionalities and information. Upon identifying the available space, a component of the application executed by the computing device may calculate a layout for the in-line user interface 300. To perform such calculations, one or more application components may first calculate the size of each element (e.g., top-level functionality tabs, interactive elements, informational elements, generic commands and/or other application elements). For instance, a pixel size may be determined for each element and/or region. A total available size needed to accommodate the interface 300 may then be summed from the individual calculations. In some embodiments, the in-line user interface may be configured to display a first number of functional controls and informational elements, as shown in
Upon identifying an amount of available space, method 200 may proceed to operation 208, where the visual display of at least one of the multiple regions of application functionalities and information may be adjusted. Accordingly, when insufficient space is available in the interface 300 for displaying regions, a determination may be made at application run time as to any regions that may be truncated or eliminated. For instance, an amount of available space may be calculated based on screen width of 768 pixels, or a change in width or height from one pixel amount to 768 pixels, 500 pixels, or any other reduction/enlargement in pixel size may be detected. For instance, if the user manually reduces the size of the interface 300, or rotates the device, a similar determination may be made as to the available space for displaying the regions. As should be appreciated, a determination may be made as to the order of truncating functional or informational regions, as well as for determining which selectable functionality control sections are displayed and which sections are collapsed, and in what order, as the available space in the user interface is decreased.
In some embodiments, the visual display of the interface 300 may be adjusted according to one or more predetermined scaling priorities to accommodate the identified application width. As mentioned above, the in-line user interface 300 may adjust to accommodate available application space. Such an adjustment may occur prior to displaying the interface 300. As should be appreciated, depending upon the amount of space available for displaying the in-line user interface 300 or depending upon the display settings utilized by a given user of the interface 300, varying amounts of space will be available for each of the above described regions and elements.
To adjust the interface in response to available application space identification, a priority list or hierarchy of truncation may be implemented. In some embodiments, the priority list identifies whether a region should change in size, display both a graphical representation and a textual representation, or only display one of a graphical representation and a textual representation. In such embodiments, the specific layout of the interface 300 may be calculated by identifying a width of one or more regions for display, identifying an available application width based on the available application space, and injecting regions that fit within the available width into the display. In embodiments where the interface 300 is displayed vertically, an available application height may be calculated, and corresponding steps for identifying a number and sizes of regions to display may be performed.
Priority rules corresponding to the reduction/truncation hierarchy may be used to determine which aspects of the landscape are reduced. Such rules may be stored on the application. One or more priority rules may be utilized to identify which elements may first be truncated. In some embodiments, each element and/or region may be allocated an amount of space, which may be a percentage of the available space within the application. In other embodiments, some regions or elements of regions may be completely truncated. In some instances where an amount of the interface 300 is to be reduced, a first region may be selected for reduction. A first scaling may involve truncating a document information region and/or a quick command region. For instance, a first step may be to reduce/truncate the document information region 308 (e.g., a document name) to first minimum threshold (e.g., a first number of characters). A truncated document title may be displayed as a shortened version of the original title. A non-functional ellipsis or other like element may be displayed to provide a visual indication that the document information has been truncated.
As illustrated in
If a determination is made that reduction of the first region is not sufficient, a second region may be reduced or truncated. For instance, a second step may be to further reduce/truncate the document information region 918 to a second minimum threshold. If a determination is made that reduction of the second region is not sufficient, a third region may be reduced or truncated. For instance, a third step may be to truncate one or more quick commands such that only an icon or glyph of the quick command displays (e.g., glyphs 314, 316 and 318 of
If a determination is made that reduction of the fourth region is not sufficient, a fifth region may be reduced or truncated. As illustrated in
If a determination is made that reduction of the fifth region is not sufficient, a sixth region may be reduced or truncated. For instance, as illustrated in
In further embodiments, when a change in available width is identified, the functional landscape may adaptively react to a new available amount of space relative to a previously available amount of space. For instance, the functional landscape may scale up or down. For instance, scaling logic may adapt the relative sizing/representation of an element of the in-line user interface 300 to provide appropriate scaling across a variety of device sizes and/or window/screen sizes. For example, where a window and/or screen size for an application might have been half the width of the screen, when maximized the same logic for scaling down as described above can be used to take advantage of the newly available pixels to scale the user interface 300 up to the larger pixel. In some embodiments, the scaling up of the window/screen size is not merely the reverse application of the scaling down logic. In these embodiments, the landscape of the graphical user interface 300 is recalculated each time a pixel size increases utilizing priority rules corresponding to the increase/truncation hierarchy to determine which aspects of the landscape to increase in size.
In alternate embodiments, a frequency of use determination may be made prior to truncating or increasing one or more functional and/or informational regions. For instance, a “most used” or “most recently used” determination may be made. In other embodiments, a non-functional or informational element (e.g., separator 334) may be removed prior to or along with other truncation operations.
According to an alternate embodiment, if the interface 300 lacks sufficient space to display all regions of functional controls and information, the size of the display of individual elements may be reduced to allow space for the display of all regions. According to one aspect of this embodiment, different sizes of elements, for example small, medium and large, may be defined. In such embodiments, at display time, a determination may be made as to the available space. At a starting point, the largest size for each element may be presented. As required, the display size may be reduced (i.e., large to medium to small) for one or more elements of a region until each region fits in the available space. In addition, for smaller layouts, the layout of regions or individual elements contained in given regions may be rearranged to allow for more efficient use of space.
In some embodiments, the in-line user interface 300 may appear as a pop-over, covering a portion of the application canvas without the application canvas resizing. For instance, as illustrated in
In other embodiments, the interface 300 may be locked. That is, the interface 300 may persist and a function that may be utilized to dismiss the interface 300 may be disabled.
In additional embodiments, an application may be fully immersive, where none of the in-line user interface 300 is displayed as a document is viewed or processed. In such instances, a movement such as a swipe or a touch may activate the interface 300, which may then display one or more of the above described elements, depending, for instance, on device type or screen availability. An immersive mode setting may be activated by a user or may display by default depending on device or screen size. In some embodiments, the in-line user interface 300 may be sticky (i.e., the interface maintains a current open/closed state until the user modifies the interface 300). In some instances, a user may modify the interface state by swiping in from an edge, or via a mouse or keyboard equivalent.
Techniques for providing a scalable user interface are described. Although embodiments are described in language specific to structural features and/or methodological acts, it is to be understood that the embodiments defined in the appended claims are not necessarily limited to the specific features or acts described above. Rather, the specific features and acts are disclosed as example forms of implementing the claimed embodiments.
A number of methods may be implemented to perform the techniques discussed herein. Aspects of the methods may be implemented in hardware, firmware, or software, or a combination thereof. The methods are shown as a set of blocks that specify operations performed by one or more devices and are not necessarily limited to the orders shown for performing the operations by the respective blocks. Furthermore, an operation shown with respect to a particular method may be combined and/or interchanged with an operation of a different method in accordance with one or more implementations. Aspects of the methods may be implemented via interaction between various entities discussed above with reference to the user interface 300.
The embodiments and functionalities described herein may operate via a multitude of computing systems including, without limitation, desktop computer systems, wired and wireless computing systems, mobile computing systems (e.g., mobile telephones, netbooks, tablet or slate type computers, notebook computers, and laptop computers), hand-held devices, multiprocessor systems, microprocessor-based or programmable consumer electronics, minicomputers, and mainframe computers.
In addition, the embodiments and functionalities described herein may operate over distributed systems (e.g., cloud-based computing systems), where application functionality, memory, data storage and retrieval and various processing functions may be operated remotely from each other over a distributed computing network, such as the Internet or an intranet. User interfaces and information of various types may be displayed via on-board computing device displays or via remote display units associated with one or more computing devices. For example, user interfaces and information of various types may be displayed and interacted with on a wall surface onto which user interfaces and information of various types are projected. Interaction with the multitude of computing systems with which embodiments of the invention may be practiced include, keystroke entry, touch screen entry, voice or other audio entry, gesture entry where an associated computing device is equipped with detection (e.g., camera) functionality for capturing and interpreting user gestures for controlling the functionality of the computing device, and the like.
As stated above, a number of program modules and data files may be stored in the system memory 1204. While executing on the processing unit 1202, the program modules 1206 (e.g., the device module 106) may perform processes including, but not limited to, one or more of the stages of the method 200 illustrated in
Furthermore, embodiments of the invention may be practiced in an electrical circuit comprising discrete electronic elements, packaged or integrated electronic chips containing logic gates, a circuit utilizing a microprocessor, or on a single chip containing electronic elements or microprocessors. For example, embodiments of the invention may be practiced via a system-on-a-chip (SOC) where each or many of the components illustrated in
The computing device 102 may also have one or more input device(s) 1212 such as a keyboard, a mouse, a pen, a sound input device, a touch input device, etc. The output device(s) 1214 such as a display, speakers, a printer, etc. may also be included. The aforementioned devices are examples and others may be used. The computing device 102 may include one or more communication connections 1216 allowing communications with other computing devices 1218. Examples of suitable communication connections 1216 include, but are not limited to, RF transmitter, receiver, and/or transceiver circuitry; universal serial bus (USB), parallel, and/or serial ports.
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, or program modules. The system memory 1204, the removable storage device 1209, and the non-removable storage device 1210 are all computer storage media examples (i.e., memory storage.) Computer storage media may include 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 article of manufacture which can be used to store information and which can be accessed by the computing device 102. Any such computer storage media may be part of the computing device 102. Computer storage media does not include a carrier wave or other propagated or modulated data signal.
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 characteristics set or changed in such a manner as to encode information in the signal. By way of example, and not limitation, communication media may include 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.
One or more application programs 1366 may be loaded into the memory 1362 and run on or in association with the operating system 1364. 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, collaborative programs, note-taking programs, and so forth. The system 1302 also includes a non-volatile storage area 1368 within the memory 1362. The non-volatile storage area 1368 may be used to store persistent information that should not be lost if the system 1302 is powered down. The application programs 1366 may use and store information in the non-volatile storage area 1368, 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 system 1302 and is programmed to interact with a corresponding synchronization application resident on a host computer to keep the information stored in the non-volatile storage area 1368 synchronized with corresponding information stored at the host computer. As should be appreciated, other applications may be loaded into the memory 1362 and run on the mobile computing device 1300, including the device module 106 described herein.
The system 1302 has a power supply 1370, which may be implemented as one or more batteries. The power supply 1370 might further include an external power source, such as an AC adapter or a powered docking cradle that supplements or recharges the batteries
The system 1302 may also include a radio 1372 that performs the function of transmitting and receiving radio frequency communications. The radio 1372 facilitates wireless connectivity between the system 1302 and the “outside world,” via a communications carrier or service provider. Transmissions to and from the radio 1372 are conducted under control of the operating system 1364. In other words, communications received by the radio 1372 may be disseminated to the application programs 1366 via the operating system 1364, and vice versa.
The visual indicator 1320 may be used to provide visual notifications, and/or an audio interface 1374 may be used for producing audible notifications via the audio transducer 1325. In the illustrated embodiment, the visual indicator 1320 is a light emitting diode (LED) and the audio transducer 1325 is a speaker. These devices may be directly coupled to the power supply 1370 so that when activated, they remain on for a duration dictated by the notification mechanism even though the processor 1360 and 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 interface 1374 is used to provide audible signals to and receive audible signals from the user. For example, in addition to being coupled to the audio transducer 1325, the audio interface 1374 may also be coupled to a microphone to receive audible input, such as to facilitate a telephone conversation. In accordance with embodiments of the present invention, the microphone may also serve as an audio sensor to facilitate control of notifications, as will be described below. The system 1302 may further include a video interface 1376 that enables an operation of an on-board camera 1330 to record still images, video stream, and the like.
A mobile computing device 1300 implementing the system 1302 may have additional features or functionality. For example, the mobile computing device 1300 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
Data/information generated or captured by the mobile computing device 1300 and stored via the system 1302 may be stored locally on the mobile computing device 1300, 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 1372 or via a wired connection between the mobile computing device 1300 and a separate computing device associated with the mobile computing device 1300, 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 device 1300 via the radio 1372 or 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.
Embodiments of the present invention, for example, are described above with reference to block diagrams and/or operational illustrations of methods, systems, and computer program products according to embodiments of the invention. The functions/acts noted in the blocks may occur out of the order shown in any flowchart. 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.
The description and illustration of one or more embodiments provided in this application are not intended to limit or restrict the scope of the invention as claimed in any way. The embodiments, examples, and details provided in this application are considered sufficient to convey possession and enable others to make and use the best mode of claimed invention. The claimed invention should not be construed as being limited to any embodiment, example, or detail provided in this application. Regardless of whether shown and described in combination or separately, the various features (both structural and methodological) are intended to be selectively included or omitted to produce an embodiment with a particular set of features. Having been provided with the description and illustration of the present application, one skilled in the art may envision variations, modifications, and alternate embodiments falling within the spirit of the broader aspects of the general inventive concept embodied in this application that do not depart from the broader scope of the claimed invention.
Number | Date | Country | |
---|---|---|---|
61973678 | Apr 2014 | US |