With the proliferation of computing and networking technologies, two aspects of computing devices have become prevalent: non-traditional (e.g., mouse and keyboard) input mechanisms and smaller form factors. User interfaces for all kinds of software applications have been designed taking typical screen sizes and input mechanisms into account. Thus, user interactions in conventional systems are presumed to be through keyboard and mouse type input devices and a minimum screen size that enables users to interact with the user interface at a particular precision.
Limited display real estate burdens many portable devices from providing full featured content management functionality. Furthermore, gestural commanding is not efficient using conventional menus including support for limited displays or just taking into account where the user's finger/mouse/pen is. Additionally, display devices such as projectors, monitors, and televisions may lack controls for providing content management functionality. Modern software solutions such as on screen keyboards may be awkward to type and encompass valuable display area. Lack of adequate software solutions for managing content on non-traditional devices largely limit device use to content consumption. Carrying multiple devices for content management and consumption defeats portability and unnecessarily takes away from an enriching singular source for content consumption and management.
One of the challenging functionality control areas is content attribute management such as font size/color/style for textual content, thickness and various styles for graphical content. For example, font sizes are provided in preset values listed in a drop-down or similar menu in conventional systems, which may not be a natural way for a user to interact using touch or gestures. Similarly, graphics such as lines may have various attributes (thickness, corner styles, color, dash style, etc.) that need to be presented to a user in an intuitive, user-friendly manner for the user to be able to interact through new input technologies.
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 exclusively identify key features or essential features of the claimed subject matter, nor is it intended as an aid in determining the scope of the claimed subject matter.
Embodiments are directed to adjusting content attributes through a context based menu. Context based menus may be deployed for variety of scenarios for content management. An application according to embodiments may present the context based menu upon selection of content or upon activation of a context based menu control. Content attributes such as font size, style, graphics line weight, style, and similar ones may be presented in an intuitive manner such that selection can be made easily through non-traditional input methods such as touch or gesture. Some attributes may be presented with visual examples. Through a hierarchical approach submenus may be activated for further detailed selection of available commands through the selection of items on a top level context based menu. Furthermore, selection of attribute values on a linear or otherwise spectrum may be enabled through a sliding action that allows continuous value selection as opposed to distinct values presented in traditional menus.
These and other features and advantages will be apparent from a reading of the following detailed description and a review of the associated drawings. It is to be understood that both the foregoing general description and the following detailed description are explanatory and do not restrict aspects as claimed.
As briefly described above, a user interface of an application executing on a device may present a context based menu in relation to displayed content. The context based menu may provide controls to adjust the font size of the content. The application may detect a user action associated with the context based menu. The application may execute a command to adjust the font size based on the detected user action, which may include touch, gesture, keyboard entry, mouse click, and/or pen input. Content attributes as used herein may be any aspect of content that can be represented along a scale either discretely or continuously. Continuous representation can be interacted with by moving a finger (or equivalent gesture or similar input) across a circle. Discrete options may be interacted with by selecting a range of points along a line, for example, by snapping one's finger to a range of points along the line. A non-exhaustive, illustrative set of examples for content attributes may include an amount of space between lines, a number of columns, a size of margins, an amount of indentation, a font kerning, a zoom action, and comparable ones.
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 spirit or scope of the present disclosure. The following detailed description is therefore not to be taken in the limiting sense, and the scope of the present invention is defined by the appended claims and their equivalents. While the embodiments will be described in the general context of program modules that execute in conjunction with an application program that runs on an operating system on a personal computer, those skilled in the art will recognize that aspects may also be implemented in combination with other program modules.
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 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 comparable computing devices. 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.
Embodiments may be implemented as a computer-implemented 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 medium readable by a computer system and encoding a computer program that comprises instructions for causing a computer or computing system to perform example process(es). The computer-readable storage medium is a computer-readable memory device. The computer-readable storage medium can for example be implemented via one or more of a volatile computer memory, a non-volatile memory, a hard drive, a flash drive, a floppy disk, or a compact disk, and comparable media.
According to embodiments, a user interface of a touch-enabled or gesture-enabled device may employ context based menus to adjust content attributes such as font size, font style, font boldness, graphics style, color, thickness, a line color, a line type, a corner shape, a shading attribute, a fill color, a spacing, a zoom action on displayed content, and a fill type, etc. A context based menu may make use of features specific to touch or gesture enabled computing devices, but may also work with a traditional mouse and keyboard. Context based menus, in general, may be used to provide quick access to commonly used commands while viewing or editing displayed content such as documents, emails, contact lists, other communications, or any content (e.g., audio, video, etc.). Context based menus may appear as part of a user interface's regular menu, in a separate viewing pane (e.g., a window) outside or inside the user interface, and so on. Typically, context based menus present a limited set of commands for easy user access, but additional submenus may be presented upon user selection. Commonly used context based menus may appear over the viewed document. A tap or swipe action as used herein may be provided by a user through a finger, a pen, a mouse, or similar device, as well as through predefined keyboard entry combinations or a voice command.
As mentioned above, smaller available display space, larger content, and different aspect ratios make conventional menus impractical. Existing touch-based devices such as tablet PCs and similar ones are typically directed to data consumption (i.e., viewing). On the other hand, commonly used applications such as word processing applications, spreadsheet applications, presentation applications, and comparable ones are directed to creation (generating and editing documents with textual, graphical, and other content). Currently available context based menus are either invisible most of the time or they block the content when they are visible. A context based menu according to some embodiments may be provided dynamically based on presented content and available space while providing ease of use without usurping much needed display area.
Referring to
Device 104 in
Device 112 in
According to some embodiments, a user interface of an application may display context based menu 202 with control item 218 to access a prior context based menu. The prior context based menu may be a higher level menu providing top level functionality such as copy and paste. Control item 218 may also be used to change the context based menu 202 to a collapsed state (i.e., visually minimized).
According to other embodiments, the context based menu 202 may have a font size control item 204 to access another context based menu such as menu 302 in
According to yet other embodiments, the context based menu 202 may provide a control item 210 to make the font of the selected content “bold.” Similarly, the context based menu 202 may enable a user to italicize the selected content using control item 212. Furthermore, the context based menu 202 may enable a user to adjust the font style using control item 214. The control item 214 may be assigned to a single style. Alternatively, the control item 214 may launch a context based submenu to adjust the style of the content such as the menu 516 in
Some or all of the above-discussed control items may be a one command control (i.e., the underlying command is executed upon selection of the control and the context based menu may be collapsed or hidden following the execution) or associated with one or more submenus. For example, selection of the control item 206 for underlining textual content may result in deployment of a submenu that presents options for underline style (e.g. dashed, straight), underline thickness, underline color, etc. The associated submenus may be launched through a selection of the particular control (e.g., tapping on the control or swiping from the center toward the control) or through an action (e.g., tap) on an activation area along the perimeter of the context based menu next to each control (the white arrows in diagram 200).
As previously stated, a user action may be a touch action, a gesture action, a keyboard input, a mouse input, pen input, or similar action selecting a particular control item on the context based menu. Alternatively, the user action may be a swipe over a portion of the context based menu 302. A user may swipe 304 a finger over a slider 308 to adjust the font size of the textual content in a continuous manner (i.e., even though each available font size is not listed on the menu, the swipe-based slider selection may enable the user to select unlisted font sizes easily).
According to some embodiments, the application may display the slider 308 centered on a center command button 318 of the context based menu 302. The application may position the slider 308 at a start position on a current font size value of the managed content. An example may include the font size of selected content that a user may wish to adjust. The application may move the slider clockwise subsequent to detecting the clockwise swipe action 304 (or alternatively through another clockwise swipe action 306) starting from a start position of the slider 308. Next, the application may increase the font size according to the clockwise swipe, up to a maximum font size. Maximum font size may be displayed on the context based menu 302 and may be determined according to a system setting or may be user adjustable according to application privileges. An example of a font size increase may include moving the slider 308 from a starting position at font size 10 to font size 20 in reaction to matching user action. Subsequent to the user action, the application may change the font size of the content from 10 to 20.
According to other embodiments, the application may move the slider 308 counterclockwise subsequent to detecting a counterclockwise swipe from the start position. The application may decrease the font size according to the counterclockwise swipe, to a minimum font size. An example may include moving the slider 308 from a starting position at font size 20 to font size 10 in reaction to a matching user action. Subsequent to the user action, the application may change the font size of the content from 20 to 10.
According to yet other embodiments, the application may display an indicator 310 on the context based menu 302 of a previous font size (e.g., font size 13). The indicator 310 may be presented as a bold, an italicized, an underlined, a highlighted, or an enclosed font size value or just as another number of the menu that does not appear at one of the displayed axes of the menu. The enclosed font size value may be a circled font size value, a font size value with a square around it, or any other shape to differentiate the previous font size value from others on the context based menu 302.
According to other embodiments, the application may integrate font styles into the context based menu for managing font sizes. The application may place a font style action 312 between displayed font size values. An example may include adjusting the content to a selected font style such as “heading 1” subsequent to detecting a user action 312 between displayed font size values on the menu 302.
According to other embodiments, the application may detect a user action moving clockwise past a maximum font size value and ending in a dead zone 314. The user action may end between the maximum font size value and the minimum font size value. In this scenario, the application may position the slider 308 on the maximum font size value subsequent to the user action ending in the dead zone 314.
According to other embodiments, the application may detect a user action moving counterclockwise past a minimum font size value and ending in the dead zone 314. The user action may end between the minimum font size value and the maximum font size value. In this scenario, the application may position the slider 308 on the minimum font size value subsequent to the user action ending in the dead zone 314. Another aspect of the dead zone is that it may allow a user to continue to move their finger clockwise or counterclockwise but not have their font change immediately from the largest to the smallest font. Instead it may create a buffer within which the font does not actually change until one reaches the other edge of the buffer zone. For example, if the user moves counterclockwise past the minimum size it may stay at the minimum through the dead zone but once the user passes the maximum size it may switch to the maximum size (and then start shrinking again, etc.).
According to other embodiments, the application may display font state 320 including present font colors, font type, and font shape on the font size values. Additionally, the application may detect a tap action 316 as the user action on a font size value. Subsequent to the user action on the font size value, the application may position the slider 308 on the font size value and adjust the font size of the content according to the font size value associated with tap action 316.
According to some embodiments, the application may display a tooltip 410 subsequent to a user action 404 such as increasing the font size. In addition, the application may show a tooltip 414 subsequent to user action 406 adjusting the font size. The user action 406 may provide more granularity compared to user action 404 due to larger arc available to a user to pick a font size according to distance of the user actions 404 and 406 from the center of the menu 402. Thus, the relative position of the user action with respect to a center of the menu may be taken into consideration enabling increased granularity especially in slider style menu actions.
According to other embodiments, the application may calculate the font size according to a polynomial equation to determine the font size for the user action ending in between font size values. An example may include a user moving the slider in between font size 36 and 72. The polynomial curve may help determine what font size to pick if the user is ⅓ of the way in between, halfway in between, etc., so that it feels like a natural increase. The application may determine the font size according to the polynomial calculation determining where the slider 408 stops in relation to both font size increments.
According to yet other embodiments, the application may select the font size value closest to an end position of the user action 412 subsequent to detecting the end position outside an action area of the font size values. An action area may be an oval area determined by system settings centered around a control such as a font size value. The application may adjust the length of the slider 408 to position the slider on the end position of the user action 412. Adjusting the slider 408 length may enable the user to more accurately view a selected font size value to the corresponding user action. Tooltips 410 and 414 may be helpful when the user selection is between presented font size values displaying to the user what the selected font looks like. In some example embodiments, a speed of the slider may be adjusted dynamically to provide more granularity in selecting the font size (or comparable attribute). An example may be a slower moving slider 408 to enable the user to pick a desired font size increment. In some examples, “snap points” may be used along the slider at each of the displayed font sizes. As the user moves by sliding/dragging closer to those snap points the line may be automatically moved to the next size, making it efficient to get those sizes. A back-off logic may also be employed. For example, if the user then goes in the reverse direction, the stickiness may be removed to that point and allow the user to select a point very close but not exactly on any of the axes (e.g., if the user's finger was very close to 72, they would still be able to select font 71).
According to some embodiments, a user interface of an application supporting context based menus may present a context based menu 502 to enable adjustment of a font type of textual content using a slider 506. A user may move a slider 506 with a swipe action 504 moving clockwise or counterclockwise on the context based menu 502 selecting among available font types. In some examples, the different font types may be displayed on the context based menu 502 (e.g., along the perimeter). In other examples, a list of available font types 510 may be presented adjacent to the context based menu 502. Alternatively, the list may be presented in the middle of the radial menu with a dial around the edge. As the user moves the slider 506 on the menu, font types that correspond to the slider's current position may be indicated on the list through a graphical, color, textual, shading, or similar scheme. For example, in the illustrated example of context based menu 502, the slider 506 may correspond to a position for “Arial” font. This may be emphasized on the list of available font types 510 through highlighting 512.
The available font types on the list may be displayed using the respective fonts to provide the user further visual assistance or in a single font (for example, in small display areas, where the size of the menu may make reading different font types relatively difficult).
According to other embodiments, the context based menu 502 may display an indicator 508 showing the current font type of the content. The indicator 508 may also show other state information of the content such as font size and style. Additionally, the context based menu 502 may provide a access button 514 to collapse the context based menu 502 and/or launch a prior context based menu such as top level menu to provide other functionality to manage the content.
Context based menu 516 may provide a user with similar functionality as discussed above in conjunction with context based menu 502 to adjust a font style of textual content. The menu 516 may display indicator 518 to show the current font style of the selected content. The list of available styles 520 and the highlighter 522 may be used to present the styles in an easily visible manner as the user may be moving their finger over the menu (thereby, moving the slider). In some embodiments, the user may be enabled to scroll through the list of available styles 520 through a swipe action, for example, and select a font style by tapping on it on the list. Context based menu may be a submenu under a top level menu for adjusting font attributes and it may include additional submenus depending on the number of styles, for example. Typically, a predefined number of styles may be presented to prevent overlapping problems. However, using a slider (and a separate list of available items) and by adjusting the speed of the slider, higher granularity and, thereby, larger number of available items may be presented for selection through a context based menu.
According to some embodiments, a user interface may display menu 602 to adjust an attribute of content such as line weights. The menu 602 may display line weight values 614 corresponding to line weights illustrated by list 604. In some examples, a line thickness (or the attribute in general) may also be displayed on the slider itself. For example, where the slider is at ¼ it may be a ¼ thickness and then the slider may become thicker as it goes around until it is at its thickest at 6. And alternatively, the thicknesses (or the attribute) may be relative and not exact. Thus, it could be just that the thickness increases but does not match exactly the numbers. A user action 612 may move a slider 610 through swipe and tap actions as described in context based menus selecting a line weight. The application may adjust the line weight of the graphical content (any shape that includes lines) according to the user action. Additionally, the menu 602 may display the selected line weight through a highlighter 606 similar to context based menus described above.
According to other embodiments, the application may detect a swipe action as the user action starting from a center control button 608 and moving away from the context based attribute menu 602. The application may determine an attribute value 614 intersecting the swipe action. Subsequently, the application may adjust the attribute according to the attribute value 614. Additionally, the application may display an attribute increase control at an end of the slider 610 to increase the attribute beyond the displayed end value. Furthermore, the application may display an attribute decrease control at the other end of the slider 610 to decrease the attribute beyond the displayed end value.
A context based attribute menu may be used to adjust any attribute of textual or graphical content. Examples may include line weights, corner styles, gradients used to pick a color, shading schemes for graphical objects, and comparable ones. The application may display incremental values, discrete attributes, or continuous selection of values on the attribute menu. Displayed values may be selected according to linear, logarithmic, or other scales. The displayed values may also be user selectable according to application privileges, user preferences, and/or customization.
The example commands, links, submenus, configurations, and context based font and attribute menus depicted in
As previously discussed, a context based menu may be used for adjusting an attribute (such as font size) of the content provided by the hosted service or application. For example, a browser application, a word processing application, a spreadsheet application, a calendar application, a note taking application, a graphics application, and comparable ones may make use of a context based menu according to embodiments. The context based menu may be activated through a variety of user actions such as selection of content, activation of a launcher indicator, detection of a predetermined touch or gesture action, etc.
Client devices 701-705 are used to access the functionality provided by the hosted service or application. One or more of the servers 706 or server 708 may be used to provide a variety of services as discussed above. Relevant data may be stored in one or more data stores (e.g. data store 714), which may be managed by any one of the servers 706 or by database server 712.
Network(s) 710 may comprise any topology of servers, clients, Internet service providers, and communication media. A system according to embodiments may have a static or dynamic topology. Network(s) 710 may include a secure network such as an enterprise network, an unsecure network such as a wireless open network, or the Internet. Network(s) 710 may also coordinate communication over other networks such as PSTN or cellular networks. Network(s) 710 provides communication between the nodes described herein. By way of example, and not limitation, network(s) 710 may include wireless media such as acoustic, RF, infrared and other wireless media.
Many other configurations of computing devices, applications, data sources, and data distribution systems may be employed to adjust attribute of content through a context based font/attribute menu. Furthermore, the networked environments discussed in
Context based attribute menu module 824 may operate in conjunction with the operating system 805 or application 822 and provide a context based font or attribute menu as discussed previously. Context based font attribute module 824 may also provide commands, links, and submenus to adjust attribute of displayed content. Detection module 826 may detect user actions and execute a command associated with the user action to adjust an attribute such as the font size. This basic configuration is illustrated in
Computing device 800 may have additional features or functionality. For example, the computing device 800 may 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 in
Computing device 800 may also contain communication connections 816 that allow the device to communicate with other devices 818, such as over a wireless network in a distributed computing environment, a satellite link, a cellular link, and comparable mechanisms. Other devices 818 may include computer device(s) that execute communication applications, other directory or policy servers, and comparable devices. Communication connection(s) 816 is one example of communication media. Communication media can include therein 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” means 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, RF, infrared and other wireless media.
Example embodiments also include methods. These methods can be implemented in any number of ways, including the structures described in this document. One such way is by machine operations, of devices of the type described in this document.
Another optional way is for one or more of the individual operations of the methods to be performed in conjunction with one or more human operators performing some. These human operators need not be collocated with each other, but each can be only with a machine that performs a portion of the program.
Process 900 begins with operation 910, where a context based menu may be presented by a user interface of an application displaying the context based menu on a device screen to manage content. The context based menu may be a context based attribute menu to adjust an incremental attribute of the content such as font characteristics, layout features, line weights, gradient based attributes, and similar ones. Subsequently, the user interface may detect a user action on the context based menu at operation 920. The user action may be a tap, a swipe, a press and hold, or similar user action including, but not limited to touch, gestures, keyboard entries, mouse clicks, pen inputs, optically captured gestures, voice commands, etc. At operation 930, the application may adjust a font attribute of the content according to the user action.
The operations included in process 900 are for illustration purposes. Adjusting content attributes through actions on context based menus according to embodiments may be implemented by similar processes with fewer or additional steps, as well as in different order of operations using the principles described herein.
The above specification, examples and data provide a complete description of the manufacture and use of the composition of the embodiments. Although the subject matter has been described in language specific to structural features and/or methodological acts, it is to be understood that the subject matter defined in the appended claims is not necessarily limited to the specific features or acts described above. Rather, the specific features and acts described above are disclosed as example forms of implementing the claims and embodiments.
This application claims the benefit of U.S. Provisional Patent Applications Serial No. 61/507,983 and 61/556,945 filed on Jul. 14, 2011 and Nov. 8, 2011, respectively. The disclosures of the provisional patent applications are hereby incorporated by reference for all purposes.
Number | Date | Country | |
---|---|---|---|
61507983 | Jul 2011 | US | |
61556945 | Nov 2011 | US |