U.S. patent application number 13/542962 was filed with the patent office on 2013-01-17 for adjusting content attributes through actions on context based menu.
This patent application is currently assigned to Microsoft Corporation. The applicant listed for this patent is Erez Kikin Gil, Matthew Kotler, Vignesh Sachidanandam. Invention is credited to Erez Kikin Gil, Matthew Kotler, Vignesh Sachidanandam.
Application Number | 20130019204 13/542962 |
Document ID | / |
Family ID | 47519676 |
Filed Date | 2013-01-17 |
United States Patent
Application |
20130019204 |
Kind Code |
A1 |
Kotler; Matthew ; et
al. |
January 17, 2013 |
ADJUSTING CONTENT ATTRIBUTES THROUGH ACTIONS ON CONTEXT BASED
MENU
Abstract
Context based menus are employed for content attribute
adjustment through touch or gesture actions, keyboard entries,
mouse or pen actions, and similar input. Context based menus are
deployed to adjust displayed attributes of content. In some
examples, a slider enables the user to visually confirm selected
attribute such as a font size. Other content attributes may be
adjusted using context based attribute menus providing granular
adjustment for incremental attribute values. Attributes including
line weights and gradient based values are adjustable through
context based attribute menus.
Inventors: |
Kotler; Matthew; (Sammamish,
WA) ; Gil; Erez Kikin; (Redmond, WA) ;
Sachidanandam; Vignesh; (Mercer Island, WA) |
|
Applicant: |
Name |
City |
State |
Country |
Type |
Kotler; Matthew
Gil; Erez Kikin
Sachidanandam; Vignesh |
Sammamish
Redmond
Mercer Island |
WA
WA
WA |
US
US
US |
|
|
Assignee: |
Microsoft Corporation
Redmond
WA
|
Family ID: |
47519676 |
Appl. No.: |
13/542962 |
Filed: |
July 6, 2012 |
Related U.S. Patent Documents
|
|
|
|
|
|
Application
Number |
Filing Date |
Patent Number |
|
|
61507983 |
Jul 14, 2011 |
|
|
|
61556945 |
Nov 8, 2011 |
|
|
|
Current U.S.
Class: |
715/833 ;
715/810 |
Current CPC
Class: |
G06F 3/0482 20130101;
G06F 3/04886 20130101; G06F 3/04812 20130101; G06F 3/0488 20130101;
G06F 9/453 20180201; G06F 3/0481 20130101; G06F 3/04895
20130101 |
Class at
Publication: |
715/833 ;
715/810 |
International
Class: |
G06F 3/048 20060101
G06F003/048; G06F 3/033 20060101 G06F003/033 |
Claims
1. A method executed in a computing device for adjusting content
attributes through a context based menu, the method comprising: in
response to detecting one of a: a tap input, a swipe input, a mouse
input, a voice input, a visual input, and a keyboard input,
presenting a context based menu in relation to a displayed content
on a user interface for managing one or more attributes of the
content; and in response to detecting another one of a: a tap
input, a swipe input, a mouse input, a voice input, a visual input,
and a keyboard input adjusting an attribute of the content
according to the detected other input.
2. The method of claim 1, further comprising: displaying distinct
attributes of a common type on the context based menu; and enabling
selection of one of the displayed distinct attributes to be applied
to a selected portion of the content.
3. The method of claim 2, further comprising: displaying one from a
set of: a font type, a font style, a font boldness, a text style, a
text color, an amount of space between lines, a number of columns,
a size of margins, an amount of indentation, a font kerning, a zoom
action on displayed content, and a paragraph style as the distinct
attributes, wherein the selected portion of the content includes
text.
4. The method of claim 2, further comprising: displaying one from a
set of: 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 as the distinct attributes, wherein the
selected portion of the content includes graphics.
5. The method of claim 1, further comprising: displaying a slider
of the context based menu extending from a center action button in
a substantially circular shape to adjust a content attribute that
has one of a set of discrete values and a set of continuous
values.
6. The method of claim 5, further comprising: displaying values for
one from a set of: a line weight, a line color, a font size, and a
text color the content attribute, wherein the slider enables
selection of displayed attribute values and attribute values
between the displayed attribute values through a swipe action.
7. The method of claim 5, further comprising: displaying one or
more previously selected content attribute values along the
slider.
8. The method of claim 5, further comprising: moving the slider
clockwise in response to detecting a clockwise swipe starting from
an end position of the slider; and selecting the content attribute
value according to the clockwise swipe up to a maximum content
attribute value.
9. The method of claim 5, further comprising: moving the slider
counterclockwise in response to detecting a counterclockwise swipe
starting from an end position of the slider; and selecting the
content attribute value according to the clockwise swipe up to a
minimum content attribute value.
10. The method of claim 7, further comprising: detecting a user
action moving clockwise past a maximum content attribute value and
ending in a dead zone between the maximum content attribute value
and a minimum content attribute value; positioning the slider on
the maximum content attribute value; and applying the maximum
content attribute value to a selected portion of the content.
11. The method of claim 7, further comprising: detecting a user
action moving counterclockwise past a minimum content attribute
value and ending in a dead zone between the minimum content
attribute value and a maximum content attribute value; and
positioning the slider on the minimum content attribute value; and
applying the minimum content attribute value to a selected portion
of the content.
12. A computing device for adjusting content attributes through a
context based menu, the computing device comprising: an input
device configured to detect at least one of: a swipe action, a tap
action, a keyboard action, a mouse action, a voice input, and a
visual input; a memory; a processor coupled to the memory, the
processor executing an application and causing a user interface
associated with the application to be displayed on a screen,
wherein the processor is configured to: in response to detecting
one of a: a tap input, a swipe input, a mouse input, a voice input,
a visual input, and a keyboard input, present a context based menu
in relation to a displayed content on a user interface for managing
one or more attributes of the content; display a slider extending
from a center action button of the context based menu; detect
another one of a: a tap input, a swipe input, a mouse input, a
voice input, a visual input, and a keyboard input on the context
based menu; position the slider according to the detected other
input; and adjust an attribute of a selected portion of the content
according to the detected other input.
13. The computing device of claim 12, wherein the processor is
further configured to: display a tooltip showing the content
attribute subsequent to adjusting the content attribute.
14. The computing device of claim 12, wherein the processor is
further configured to: display a list of available content
attributes adjacent to the context based menu; indicate a current
selection of the content attribute employing one of: a highlighting
scheme, a shading scheme, a color scheme, and a textual scheme; and
enable further selection of the content attribute on the list of
available content attributes.
15. The computing device of claim 12, wherein the processor is
further configured to: compute a numeric content attribute value
according to a polynomial equation to determine the numeric content
attribute value corresponding to the other detected input ending in
between content attribute values displayed on the context based
menu.
16. The computing device of claim 12, wherein the processor is
further configured to: as a user input along the slider moves
closer to a content attribute value selection, snapping to the
content attribute value selection.
17. The computing device of claim 16, wherein the processor is
further configured to: as the user input moves farther away from a
center of the context based menu, providing increased granularity
for selection of content attribute values.
18. A computer-readable memory device with instructions stored
thereon for adjusting text attributes through a context based
attribute menu, the instructions comprising: in response to
detecting one of a: a tap input, a swipe input, a mouse input, a
voice input, a visual input, and a keyboard input, presenting a
context based menu in relation to a displayed content on a user
interface for managing one or more text attributes of a selected
portion of displayed content; displaying a slider of the context
based attribute menu extending from a center action button in a
substantially circular shape; detecting another one of a: a tap
input, a swipe input, a mouse input, a voice input, a visual input,
and a keyboard input on the context based attribute menu;
positioning the slider according to the detected other input; and
adjusting a text attribute of a selected portion of the displayed
content according to the detected other input.
19. The computer-readable memory device of claim 18, wherein the
instructions further comprise: detecting a swipe action along the
slider as the input; determining a text attribute intersecting the
swipe action; and adjusting the text attribute according to the
determined text attribute.
20. The computer-readable memory device of claim 18, wherein the
instructions further comprise: displaying an attribute increase
control at an end of the slider to increase a value of a text
attribute; and displaying an attribute decrease control at another
end of the slider to decrease a value of a font size.
Description
CROSS REFERENCE TO RELATED APPLICATIONS
[0001] 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.
BACKGROUND
[0002] 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.
[0003] 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.
[0004] 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.
SUMMARY
[0005] 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.
[0006] 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.
[0007] 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.
BRIEF DESCRIPTION OF DRAWINGS
[0008] FIGS. 1A and 1B illustrate some example devices, where
context based font or attribute menus may be employed;
[0009] FIG. 2 illustrates an example context based menu with
controls to adjust an attribute of content according to
embodiments;
[0010] FIG. 3 illustrates example scenarios for using context based
menu according to embodiments;
[0011] FIG. 4 illustrates other example scenarios for using context
based menu according to embodiments;
[0012] FIG. 5 illustrates examples of context based menus for
adjusting font types and styles according to embodiments;
[0013] FIG. 6 illustrates an example of a context based menu for
adjusting a line thickness attribute of graphical content according
to embodiments;
[0014] FIG. 7 is a networked environment, where a system according
to embodiments may be implemented;
[0015] FIG. 8 is a block diagram of an example computing operating
environment, where embodiments may be implemented; and
[0016] FIG. 9 illustrates a logic flow diagram for a process of
adjusting content attributes through a context based menu in touch
and gesture enabled devices according to embodiments.
DETAILED DESCRIPTION
[0017] 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.
[0018] 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.
[0019] 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.
[0020] 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.
[0021] 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.
[0022] FIGS. 1A and 1B illustrate some example devices, where a
context based menus may be employed. As touch and gesture based
technologies are proliferating and computing devices employing
those technologies are becoming common, user interface arrangement
becomes a challenge. Touch and/or gesture enabled devices,
specifically portable devices, tend to have smaller screen size,
which means less available space for user interfaces. For example,
in a user interface that enables editing of a document (text and/or
graphics), in addition to the presented portion of the document, a
virtual keyboard may have to be displayed further limiting the
available space ("real estate"). Thus, in such scenarios, providing
a full control menu may be impractical or impossible. Embodiments
are directed to a context based font or attribute menus to adjust
content attributes such as font size.
[0023] 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.
[0024] Referring to FIGS. 1A and 1B, some example devices are
illustrated, where a context based font or attribute menu may be
provided according to embodiments. A context based menu or a
context based attribute menu may be an embodiment of a context
based menu. Embodiments may be implemented in touch and/or gesture
enabled devices or others with keyboard/mouse/pen input, with
varying form factors and capabilities.
[0025] Device 104 in FIG. 1A is an example of a large size display
device, where a user interface may be provided on screen 106.
Functionality of various applications may be controlled through
hardware controls 108 and/or soft controls such as a context based
menu displayed on screen 106. A user may be enabled to interact
with the user interface through touch actions or gestures (detected
by a video capture device). A launcher indicator may be presented
at a fixed location or at a dynamically adjustable location for the
user to activate the context based menu. Examples of device 104 may
include public information display units, large size computer
monitors, and so on.
[0026] Device 112 in FIG. 1A is an example for use of a context
based menu to control functionality. A user interface may be
displayed on a screen or projected on a surface and actions of user
110 may be detected as gestures through video capture device 114.
The user's gestures may activate a context based menu to adjust an
attribute of a content displayed on the device 112.
[0027] FIG. 1B includes several example devices such as touch
enabled computer monitor 116, laptop computer 118, handheld
computer 124, smart phone 126, tablet computer (or slate) 128, and
mobile computing device 132, which may be used for computing,
communication, control, measurement, and a number of other
purposes. The example devices in FIG. 1B are shown with touch
activation 120. However, any of these and other example devices may
also employ gesture enabled activation of context based menus to
adjust an attribute of content such as font size. In addition,
tools such as pen 130 may be used to provide touch input. A context
based menu may be controlled also through conventional methods such
as a mouse input or input through a keyboard 122.
[0028] FIG. 2 illustrates an example context based menu with
controls to adjust an attribute of content. Diagram 200 displays a
context based menu 202 with control items to adjust content
attributes such as font size, style, color, type, etc.
[0029] 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).
[0030] 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 FIG. 3 to adjust the font size of
textual content. The control item(s) may display an indicator to
show the current font type, style, and size of selected textual
content. Alternatively, a contemplated but not yet applied font
size, style, type, etc. may also be displayed on the control items
(e.g., when a user hovers on a font size but does not click or
equivalent touch/gesture actions). Another control item 206 may
enable a user to underline the selected textual content.
Additionally, a control item 208 may enable the user to access a
context based menu to alter content color. Examples may include a
context based menu showing a color gradient to enable a user to
pick a color for the content.
[0031] 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 FIG. 5.
[0032] 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).
[0033] FIG. 3 illustrates example scenarios for using context based
menu according to embodiments. Diagram 300 displays example context
based menu 302 executing a variety of user actions.
[0034] 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).
[0035] 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.
[0036] 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.
[0037] 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.
[0038] 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.
[0039] 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.
[0040] 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.).
[0041] 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.
[0042] FIG. 4 illustrates other example scenarios for using a
context based menu to adjust font attributes according to
embodiments. Diagram 400 displays example context based menu 402
executing a variety of user actions.
[0043] 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.
[0044] 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 1/3 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.
[0045] 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).
[0046] FIG. 5 illustrates examples of context based menus for
adjusting font types and styles according to embodiments. Diagram
500 displays context based menu 502 for adjusting a font type and
context based menu 516 for adjusting a font style.
[0047] 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.
[0048] 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).
[0049] 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.
[0050] 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.
[0051] FIG. 6 illustrates an example of a context based attribute
menu adjusting an attribute of graphical content according to
embodiments. Diagram 600 displays context based attribute menu 602
to adjust line weights of a selected content such as a drawing.
[0052] 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 1/4 it may
be a 1/4 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.
[0053] 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.
[0054] 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.
[0055] The example commands, links, submenus, configurations, and
context based font and attribute menus depicted in FIGS. 1 through
6 are provided for illustration purposes only. Embodiments are not
limited to the shapes, forms, and content shown in the example
diagrams, and may be implemented using other textual, graphical,
and similar schemes employing the principles described herein.
[0056] FIG. 7 is a networked environment, where a system according
to embodiments may be implemented. In addition to locally installed
applications, such as application 822 discussed below, a context
based font/attribute menu for touch and/or gesture enabled devices
may be also be employed in conjunction with hosted applications and
services that may be implemented via software executed over one or
more servers 706 or individual server 708. A hosted service or
application may communicate with client applications on individual
computing devices such as a handheld computer 701, a desktop
computer 702, a laptop computer 703, a smart phone 704, a tablet
computer (or slate), 705 (`client devices`) through network(s) 710
and control a user interface presented to users.
[0057] 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.
[0058] 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.
[0059] 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.
[0060] 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 FIG. 7 are for illustration purposes only. Embodiments
are not limited to the example applications, modules, or
processes.
[0061] FIG. 8 and the associated discussion are intended to provide
a brief, general description of a suitable computing environment in
which embodiments may be implemented. With reference to FIG. 8, a
block diagram of an example computing operating environment
according to embodiments is illustrated, such as computing device
800. In a basic configuration, computing device 800 may be any
device in stationary, mobile, or other form such as the example
devices discussed in conjunction with FIGS. 1A, 1B, and 7, and
include at least one processing unit 802 and system memory 804.
Computing device 800 may also include a plurality of processing
units that cooperate in executing programs. Depending on the exact
configuration and type of computing device, the system memory 804
may be volatile (such as RAM), non-volatile (such as ROM, flash
memory, etc.) or some combination of the two. System memory 804
typically includes an operating system 805 suitable for controlling
the operation of the platform, such as the WINDOWS .RTM., WINDOWS
MOBILE.RTM., or WINDOWS PHONE.RTM. operating systems from MICROSOFT
CORPORATION of Redmond, Washington. The system memory 804 may also
include one or more software applications such as program modules
806, application 822, context based attribute menu module 824, and
detection module 826.
[0062] 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 FIG. 8 by those components within dashed line
808.
[0063] 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 FIG. 8 by
removable storage 809 and non-removable storage 810. Computer
readable 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 804, removable storage 809 and non-removable storage
810 are all examples of computer readable storage media. Computer
readable storage media includes, but is not limited to, RAM, ROM,
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 the desired
information and which can be accessed by computing device 800. Any
such computer readable storage media may be part of computing
device 800. Computing device 800 may also have input device(s) 812
such as keyboard, mouse, pen, voice input device, touch input
device, an optical capture device for detecting gestures, and
comparable input devices. Output device(s) 814 such as a display,
speakers, printer, and other types of output devices may also be
included. These devices are well known in the art and need not be
discussed at length here.
[0064] 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.
[0065] 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.
[0066] 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.
[0067] FIG. 9 illustrates a logic flow diagram for a process of
adjusting content attributes through actions on a context based
menu in touch and/or gesture enabled devices according to
embodiments. Process 900 may be implemented as part of an
application or an operating system of any computing device capable
of accepting touch, gesture, keyboard, mouse, pen, or similar
inputs.
[0068] 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.
[0069] 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.
[0070] 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.
* * * * *