U.S. patent application number 13/274828 was filed with the patent office on 2013-04-18 for pinning a callout animation.
This patent application is currently assigned to Microsoft Corporation. The applicant listed for this patent is Christopher D. Edwards, Galen M. Elias, Jaclyn E. Konzelmann, Terry J. Mahaffey. Invention is credited to Christopher D. Edwards, Galen M. Elias, Jaclyn E. Konzelmann, Terry J. Mahaffey.
Application Number | 20130093793 13/274828 |
Document ID | / |
Family ID | 48085703 |
Filed Date | 2013-04-18 |
United States Patent
Application |
20130093793 |
Kind Code |
A1 |
Edwards; Christopher D. ; et
al. |
April 18, 2013 |
Pinning a Callout Animation
Abstract
Animation for the attachment of content items to a location on a
content surface in a user interface is provided. A user interface
showing a content surface may be displayed on a computer. The
content surface may include a content item at an initial position
above the content surface. The content surface may display content
formatted for display over an area comprising a totality of the
content surface. The computer may then receive in the user
interface a request to attach the content item to a final position
on the content surface. The computer may then display an animation
of the content item moving, from the initial position, across the
content surface until the final position has been reached. The
computer may then attach the content item to the content surface at
the final position.
Inventors: |
Edwards; Christopher D.;
(Seattle, WA) ; Konzelmann; Jaclyn E.; (Seattle,
WA) ; Elias; Galen M.; (Bellevue, WA) ;
Mahaffey; Terry J.; (Kenmore, WA) |
|
Applicant: |
Name |
City |
State |
Country |
Type |
Edwards; Christopher D.
Konzelmann; Jaclyn E.
Elias; Galen M.
Mahaffey; Terry J. |
Seattle
Seattle
Bellevue
Kenmore |
WA
WA
WA
WA |
US
US
US
US |
|
|
Assignee: |
Microsoft Corporation
Redmond
WA
|
Family ID: |
48085703 |
Appl. No.: |
13/274828 |
Filed: |
October 17, 2011 |
Current U.S.
Class: |
345/660 ;
345/473 |
Current CPC
Class: |
G06F 3/0482 20130101;
G06T 13/00 20130101; G06F 3/04817 20130101; G06F 3/04842 20130101;
G06T 13/80 20130101; G06F 3/04847 20130101; G06T 2200/24 20130101;
G06F 40/166 20200101; G06F 3/04845 20130101 |
Class at
Publication: |
345/660 ;
345/473 |
International
Class: |
G06T 13/00 20110101
G06T013/00; G06T 3/40 20060101 G06T003/40 |
Claims
1. A computer-implemented method for animating the attachment of
content items to a location on a content surface in a user
interface, comprising: displaying in the user interface, by a
computer, a content item at an initial position above the content
surface in the user interface; receiving in the user interface, by
the computer, a request to attach the content item to a final
position on the content surface; displaying in the user interface,
by the computer, an animation of the content item moving, from the
initial position, across the content surface until the final
position has been reached; and attaching in the user interface, by
the computer, the content item to the content surface at the final
position.
2. The method of claim 1, wherein displaying in the user interface,
by the computer, an animation of the content item moving, from the
initial position, across the content surface until the final
position has been reached comprises resizing content in the content
surface to make space for the content item at the final
position.
3. The method of claim 2, wherein resizing the content in the
content surface to make space for the content item once the content
item arrives at the final position comprises resizing the content
as the content item moves across the content surface towards the
final position.
4. The method of claim 2, wherein resizing the content in the
content surface to make space for the content item once the content
item arrives at the final position comprises resizing the content
upon the content item reaching the final position.
5. The method of claim 1, wherein attaching in the user interface,
by the computer, the content item to the content surface at the
final position comprises displaying a cross-fade animation showing
a transition of the content item from a position above the content
surface at the final position to a docked state within the content
surface at the final position.
6. The method of claim 5, further comprising: receiving in the user
interface, a request to attach at least one new content item to the
final position on the content surface; displaying in the user
interface, an animation of the at least one new content item moving
across the content surface until the final position has been
reached; and attaching in the user interface, the at least one new
content item to the content surface at the final position.
7. The method of claim 6, wherein attaching in the user interface,
the at least one new content item to the content surface at the
final position comprises resizing the docked content item to make
space for the at least one new content item at the final
position.
8. The method of claim 1, wherein displaying in the user interface,
by a computer, a content item at an initial position above the
content surface in the user interface comprises displaying a
content item selected from a group comprising at least a tasks
list, a contacts list and a calendar.
9. The method of claim 1, wherein displaying in the user interface,
by a computer, a content item at an initial position above the
content surface in the user interface comprises displaying the
content item as floating above the content surface at the initial
position.
10. A computer system for animating the pinning of callouts to a
location on a content surface in a user interface, comprising: a
memory for storing executable program code; and a processor,
functionally coupled to the memory, the processor being responsive
to computer-executable instructions contained in the program code
and operative to: receive in the user interface, a selection of a
callout from the content surface; display in the user interface,
the callout at an initial position above the content surface in the
user interface; receive in the user interface, a request to pin the
callout to a final position on the content surface; display in the
user interface, an animation of the callout moving, from the
initial position, across the content surface until the final
position has been reached; and pin in the user interface, the
callout to the content surface at the final position.
11. The system of claim of claim 10, wherein the processor, in
displaying the animation of the callout moving, from the initial
position, across the content surface until the final position has
been reached, is operative to resize content in the content surface
to make space for the callout at the final position.
12. The system of claim 11, wherein the processor, in resizing the
content in the content surface to make space for the callout once
the callout arrives at the final position, is operative to resize
the content as the callout item moves across the content surface
towards the final position.
13. The system of claim 11, wherein the processor, in resizing the
content in the content surface to make space for the callout once
the callout arrives at the final position, is operative to resize
the content upon the callout reaching the final position.
14. The system of claim 10, wherein the processor, in pinning the
callout to the content surface at the final position is operative
to display a cross-fade animation showing a transition of the
callout from a position above the content surface at the final
position to a docked state within the content surface at the final
position.
15. The system of claim 14, wherein the processor is further to:
receive in the user interface, a request to pin at least one
additional callout to the final position on the content surface;
display in the user interface, an animation of the at least one
additional callout moving across the content surface until the
final position has been reached; and pin in the user interface, the
at least one additional callout to the content surface at the final
position.
16. The system of claim 15, wherein the processor, in pining in the
user interface, the at least one additional callout to the content
surface at the final position, is operative to resize the docked
callout to make space for the at least one additional callout at
the final position.
17. The system of claim 15, wherein the callout and the at least
one additional callout comprise items of content selected from a
group comprising at least a tasks list, a contacts list and a
calendar.
18. A computer-readable storage medium comprising computer
executable instructions which, when executed by a computer, will
cause the computer to perform a method for animating the pinning of
callouts to a location on a content surface in a user interface,
comprising: receiving in the user interface, a selection of a first
callout from the content surface; displaying in the user interface,
the first callout floating above an initial position on the content
surface in the user interface; receiving in the user interface, a
request to pin the first callout to a final position on the content
surface; displaying in the user interface, an animation of the
first callout, moving from the initial position across the content
surface until the final position has been reached, the animation of
the first callout comprising resizing the content in the content
surface to make space for the first callout at the final position;
pinning in the user interface, the first callout to the content
surface at the final position by displaying a cross-fade animation
showing a transition of the callout floating above the final
position on the content surface to a docked state within the
content surface at the final position; receiving in the user
interface, a request to pin another callout to the final position
on the content surface; displaying in the user interface, an
animation of the another callout moving across the content surface
until the final position has been reached; and pinning in the user
interface, the another callout to the content surface at the final
position by resizing the docked callout to make space for the
another callout at the final position.
19. The computer-readable storage medium of claim 18, wherein the
first callout and the another callout comprise task panes in the
user interface after being pinned to the content surface at the
final position.
20. The computer-readable storage medium system of claim 18,
wherein the first callout and the another callout comprise items of
content selected from a group comprising at least a tasks list, a
contacts list and a calendar.
Description
COPYRIGHT NOTICE
[0001] A portion of the disclosure of this patent document contains
material which is subject to copyright protection. The copyright
owner has no objection to the facsimile reproduction by anyone of
the patent document or the patent disclosure, as it appears in the
Patent and Trademark Office patent file or records, but otherwise
reserves all copyright rights whatsoever.
BACKGROUND
[0002] Computer productivity applications include functionality for
attaching or "pinning" various user interface ("UI") elements to
displayed content. For example, a productivity application may
include functionality allowing a user to initiate the display of a
calendar UI element within an e-mail application and subsequently
pin the calendar as a task pane at another location within the
e-mail application. A drawback associated with the aforementioned
functionality is that the pinning of content elements is displayed
to the user in an instantaneous manner. That is, users are not
provided with a sense of how a particular UI element transitions
from its initial position in the display prior to being pinned.
This lack of transitioning behavior may be confusing and jarring to
many users. It is with respect to these considerations and others
that the various embodiments described herein have been made.
SUMMARY
[0003] 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 as an aid in determining the scope of the
claimed subject matter.
[0004] Embodiments are provided for animating the attachment of
content items to a location on a content surface in a user
interface. A user interface showing a content surface may be
displayed on a computer. The content surface may include a content
item at an initial position above the content surface. The content
surface may display content formatted for display over an area
comprising a totality of the content surface. The computer may then
receive in the user interface a request to attach the content item
to a final position on the content surface. The computer may then
display an animation of the content item moving, from the initial
position, across the content surface until the final position has
been reached. The computer may then attach the content item to the
content surface at the final position.
[0005] 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 illustrative only and are not restrictive of the
invention as claimed.
[0006] 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 as an aid in determining the scope of the
claimed subject matter.
BRIEF DESCRIPTION OF THE DRAWINGS
[0007] FIG. 1 is a computer screen display of a user interface
showing a content item prior to being attached to a content
surface, in accordance with an embodiment;
[0008] FIG. 2 is a computer screen display of a user interface
showing an animation stage of a content item moving towards a final
position on a content surface, in accordance with an
embodiment;
[0009] FIG. 3 is a computer screen display of a user interface
showing another animation stage of a content item at a final
position on a content surface, in accordance with an
embodiment;
[0010] FIG. 4 is a computer screen display of a user interface
showing a content item attached to a final position on a content
surface, in accordance with an embodiment;
[0011] FIG. 5 is a computer screen display of a user interface
showing another content item prior to being attached to a content
surface, in accordance with an embodiment;
[0012] FIG. 6 is a computer screen display of a user interface
showing another content item at a final position on a content
surface, in accordance with an embodiment;
[0013] FIG. 7 is a computer screen display of a user interface
showing another content item attached to a final position on a
content surface, in accordance with an embodiment;
[0014] FIG. 8 is a computer screen display of a user interface
showing yet another content item prior to being attached to a
content surface, in accordance with an embodiment;
[0015] FIG. 9 is a computer screen display of a user interface
showing yet another content item at a final position on a content
surface, in accordance with an embodiment;
[0016] FIG. 10 is a computer screen display of a user interface
showing yet another content item attached to a final position on a
content surface, in accordance with an embodiment;
[0017] FIG. 11 is a flow diagram illustrating a routine for
animating the attachment of content items to a location on a
content surface in a user interface, in accordance with an
embodiment;
[0018] FIG. 12 is a simplified block diagram of a computing device
with which various embodiments may be practiced;
[0019] FIG. 13A is a simplified block diagram of a mobile computing
device with which various embodiments may be practiced;
[0020] FIG. 13B is a simplified block diagram of a mobile computing
device with which various embodiments may be practiced; and
[0021] FIG. 14 is a simplified block diagram of a distributed
computing system in which various embodiments may be practiced.
DETAILED DESCRIPTION
[0022] Embodiments are provided for animating the attachment of
content items to a location on a content surface in a user
interface. A user interface showing a content surface may be
displayed on a computer. The content surface may include a content
item at an initial position above the content surface. The content
surface may display content formatted for display over an area
comprising a totality of the content surface. The computer may then
receive in the user interface a request to attach the content item
to a final position on the content surface. The computer may then
display an animation of the content item moving, from the initial
position, across the content surface until the final position has
been reached. The computer may then attach the content item to the
content surface at the final position.
[0023] FIG. 1 of a user interface 100 showing a content item prior
to being attached to a content surface 115, in accordance with an
embodiment. The user interface 100 may be generated by a
productivity application executed by a computer. In accordance with
an embodiment, the productivity application may include a personal
information management software application such as the OUTLOOK
personal information management software from MICROSOFT CORPORATION
of Redmond Wash. It should be understood, however, that other
personal information software applications from other manufacturers
also may be utilized in accordance with the various embodiments
described herein. It should be appreciated by those skilled in the
art that other productivity applications may also be utilized in
accordance with the various embodiments described herein. The other
productivity applications may include, but are not limited to, word
processing software, presentation graphics software, spreadsheet
software, diagramming software, project management software,
publishing software and note-taking software. It should be
appreciated that the aforementioned productivity applications may
comprise individual application programs or alternatively, may be
incorporated into a suite of productivity applications such as the
OFFICE application program suite from MICROSOFT CORPORATION. The
content surface 115 in the user interface 100 displays electronic
mail ("e-mail") content associated with a user. In accordance with
an embodiment, the content displayed on the content surface 115 may
be organized according to various content task panes 120, 125 and
130. For example, the content task pane 120 comprises a list of
mailboxes associated with a user, the content task pane 125
comprises a list view of e-mail messages in a user's Inbox and the
content task pane 130 comprises the content of an e-mail message
associated with a currently selected e-mail message (i.e., the
first message in the list view of e-mail messages). The content
surface 115 also includes various text labels including Mail text
label 140, Calendar text label 145, People text label 150 and Tasks
text label 155 which identify various types of personal information
management content (i.e., e-mail, a calendar, a contacts list and a
tasks list). In accordance with an embodiment, the text labels 144,
150 and 155 may be selected to display a content item or "callout"
associated with the personal information management content
identified by each text label. For example, the selection of the
Tasks text label 155 generates the display of content item 105
(alternatively referred to herein as the "callout 105") showing
various task items over the content surface 115. As defined herein,
a callout may comprise a floating piece of user interface content
which sits above the content surface of the user interface 100
generated by the productivity application. The callout 105 may also
include an icon 110 in the upper right corner which may be selected
(e.g., by clicking on an input device or via a touch gesture) to
animate the callout 105 across the content surface 115 and to
attach or "pin" the callout 105 to the content surface 115. The
animation of callouts will be described in greater detail
below.
[0024] FIG. 2 is a computer screen display of the user interface
100 showing an animation stage of the content item 105 moving
towards a final position 235 on the content surface 115, in
accordance with an embodiment. As discussed above with respect to
FIG. 1, the content surface 115 displays various content associated
with e-mail in the task panes 120, 125 and 130 and further displays
the Mail text label 140, the Calendar text label 145, the People
text label 150 and the Tasks text label 155 which identify various
types of personal information management content (i.e., e-mail, a
calendar, a contacts list and a tasks list). In FIG. 2, the
animation of the callout 105 is shown at a stage in which the
callout 105 is moving toward but has not yet reached the final
position 235 on the content surface 115. It should be understood
that the final position 235 may comprise a predefined area on the
content surface 115 determined by the productivity application and
which is utilized by the productivity application for attaching or
"pinning" callouts. In accordance with an embodiment, the
productivity application may make space on the content surface 115
for pinning callouts by automatically resizing the content in the
task panes 120, 125 and 130 (and therefore the task panes
themselves). For example, the productivity application may resize
the content in the task panes 120, 125 and 130 as the callout 105
moves across the screen towards the final position 235 located near
the right edge of the content surface. Alternatively, the
productivity application may delay resizing the content in the task
panes 120, 125 and 130 until after the callout has reached the
final position 235.
[0025] FIG. 3 is a computer screen display of the user interface
100 showing another animation stage of the content item 105 at the
final position 235 on the content surface 115, in accordance with
an embodiment. As discussed above with respect to FIG. 1, the
content surface 115 displays various content associated with e-mail
in the task panes 120, 125 and 130 and further displays the Mail
text label 140, the Calendar text label 145, the People text label
150 and the Tasks text label 155 which identify various types of
personal information management content (i.e., e-mail, a calendar,
a contacts list and a tasks list). In FIG. 3, the animation of the
callout 105 is shown at a stage in which the callout 105 has
reached the final position 235 on the content surface 115. As will
be described in greater detail below, once the animated callout 105
has reached the final position 235, the movement of the callout 105
is stopped and the callout 105 then makes a cross fade transition
into a final docked state as a task pane in the content surface
115. For example, as shown in FIG. 3, portion 305 of the callout
105 is in the process of cross fading from a position above the
content surface 115 to a position within the content surface
115.
[0026] FIG. 4 is a computer screen display of the user interface
100 showing the content item 105 attached (i.e., pinned) to the
final position 235 on the content surface 115, in accordance with
an embodiment. As discussed above with respect to FIG. 1, the
content surface 115 displays various content associated with e-mail
in the task panes 120, 125 and 130 and further displays the Mail
text label 140, the Calendar text label 145, the People text label
150 and the Tasks text label 155 which identify various types of
personal information management content (i.e., e-mail, a calendar,
a contacts list and a tasks list). In FIG. 4, the callout 105 is
shown as integrated into the content surface 115 as a task pane. As
will be discussed in greater detail below, once the callout 105
reaches the final position 235 and completes the cross fade
transition into a final docked state, the callout 105 becomes a
task pane that is on the same surface as the content surface.
[0027] FIG. 5 is a computer screen display of a user interface 100
showing another content item prior to being attached to the content
surface 115, in accordance with an embodiment. As discussed above
with respect to FIG. 1, the content surface 115 displays various
content associated with e-mail in the task panes 120, 125 and 130
and further displays the Mail text label 140, the Calendar text
label 145, the People text label 150 and the Tasks text label 155
which identify various types of personal information management
content (i.e., e-mail, a calendar, a contacts list and a tasks
list). In FIG. 5, the content surface 115 also displays the docked
callout 105. Further in FIG. 5, a new or additional content item
(i.e., callout 505) is displayed over the content surface 115 as a
result of a selection of the People text label 150, which shows a
contacts list. The callout 505 may also include an icon 510 in the
upper right corner which may be selected (e.g., by clicking on an
input device or via a touch gesture) to animate the callout 505
across the content surface 115 and to attach or "pin" the callout
505 to the content surface 115, as will be described in greater
detail below.
[0028] FIG. 6 is a computer screen display of the user interface
100 showing the content item 505 at the final position 235 on a
content surface 115, in accordance with an embodiment. As discussed
above with respect to FIG. 1, the content surface 115 displays
various content associated with e-mail in the task panes 120, 125
and 130 and further displays the Mail text label 140, the Calendar
text label 145, the People text label 150 and the Tasks text label
155 which identify various types of personal information management
content (i.e., e-mail, a calendar, a contacts list and a tasks
list). In FIG. 6, the animation of the callout 505 is shown at a
stage in which the callout 505 has reached the final position 235
on the content surface 115 after moving across the content surface
115 in a similar fashion as that described above with respect to
the movement of the callout 105 in FIG. 2. In accordance with an
embodiment, the callout 505 may be displayed as hovering over a
lower portion of the callout 105 on the content surface 115.
[0029] FIG. 7 is a computer screen display of the user interface
100 showing the content item 505 attached (i.e., pinned) to the
final position 235 on the content surface 115, in accordance with
an embodiment. As discussed above with respect to FIG. 1, the
content surface 115 displays various content associated with e-mail
in the task panes 120, 125 and 130 and further displays the Mail
text label 140, the Calendar text label 145, the People text label
150 and the Tasks text label 155 which identify various types of
personal information management content (i.e., e-mail, a calendar,
a contacts list and a tasks list). In FIG. 7, the callout 505 is
shown as integrated into or "docked" to the content surface 115
below the callout 105. It should be understood that the callout 105
has been resized by the productivity application to provide space
for displaying the callout 505 at the final position 235 on the
content surface 115. It should further be understood, that the
callout 505 may undergo a similar cross fade transition as
described above with respect to the callout 105. That is, the
callout 505 may undergo a cross fade transition from a position
above the content surface 115 to a task pane that is on the same
surface as the content surface 115.
[0030] FIG. 8 is a computer screen display of a user interface 100
showing yet another content item prior to being attached to the
content surface 115, in accordance with an embodiment. As discussed
above with respect to FIG. 1, the content surface 115 displays
various content associated with e-mail in the task panes 120, 125
and 130 and further displays the Mail text label 140, the Calendar
text label 145, the People text label 150 and the Tasks text label
155 which identify various types of personal information management
content (i.e., e-mail, a calendar, a contacts list and a tasks
list). In FIG. 8, the content surface 115 also displays the docked
callouts 105 and 505. Further in FIG. 8, a new or additional
content item (i.e., callout 805) is displayed over the content
surface 115 as a result of a selection of the Calendar text label
150, which shows a calendar. The callout 805 may also include an
icon 810 in the upper right corner which may be selected (e.g., by
clicking on an input device or via a touch gesture) to animate the
callout 805 across the content surface 115 and to attach or "pin"
the callout 805 to the content surface 115, as will be described in
greater detail below.
[0031] FIG. 9 is a computer screen display of the user interface
100 showing the content item 505 at the final position 235 on a
content surface 115, in accordance with an embodiment. As discussed
above with respect to FIG. 1, the content surface 115 displays
various content associated with e-mail in the task panes 120, 125
and 130 and further displays the Mail text label 140, the Calendar
text label 145, the People text label 150 and the Tasks text label
155 which identify various types of personal information management
content (i.e., e-mail, a calendar, a contacts list and a tasks
list). In FIG. 9, the animation of the callout 805 is shown at a
stage in which the callout 805 has reached the final position 235
on the content surface 115 after moving across the content surface
115 in a similar fashion as that described above with respect to
the movement of the callout 105 in FIG. 2. In accordance with an
embodiment, the callout 805 may be displayed as hovering over a
lower portion of the callout 505 on the content surface 115.
[0032] FIG. 10 is a computer screen display of the user interface
100 showing the content item 805 attached (i.e., pinned) to the
final position 235 on the content surface 115, in accordance with
an embodiment. As discussed above with respect to FIG. 1, the
content surface 115 displays various content associated with e-mail
in the task panes 120, 125 and 130 and further displays the Mail
text label 140, the Calendar text label 145, the People text label
150 and the Tasks text label 155 which identify various types of
personal information management content (i.e., e-mail, a calendar,
a contacts list and a tasks list). In FIG. 10, the callout 805 is
shown as integrated into or "docked" to the content surface 115
below the docked callouts 105 and 505. It should be understood that
the callouts 105 and 505 have been resized by the productivity
application to provide space for displaying the callout 805 at the
final position 235 on the content surface 115. It should further be
understood, that the callout 805 may undergo a similar cross fade
transition as described above with respect to the callout 105. That
is, the callout 805 may undergo a cross fade transition from a
position above the content surface 115 to a task pane that is on
the same surface as the content surface 115.
[0033] FIG. 11 is a flow diagram illustrating a routine 1100 for
animating the attachment of content items to a location on a
content surface (i.e., animating the pinning of callouts) in a user
interface, in accordance with an embodiment. When reading the
discussion of the routine presented herein, it should be
appreciated that the logical operations of various embodiments are
implemented (1) as a sequence of computer implemented acts or
program modules running on a computing system and/or (2) as
interconnected machine logical circuits or circuit modules within
the computing system. The implementation is a matter of choice
dependent on the performance requirements of the computing system
implementing the various embodiments. Accordingly, the logical
operations illustrated in FIG. 11 and making up the various
embodiments described herein are referred to variously as
operations, structural devices, acts or modules. It will be
recognized by one skilled in the art that these operations,
structural devices, acts and modules may be implemented in
software, in firmware, in special purpose digital logical, and any
combination thereof without deviating from the spirit and scope of
the various embodiments as recited within the claims set forth
herein.
[0034] The routine 1100 begins at operation 1105, where a computing
device may be utilized to execute a productivity application for
displaying in a user interface, a content item or callout at an
initial position above a content surface. In accordance with an
embodiment, the initial position of the content item may be
displayed as floating above the content surface in the user
interface. It should be understood that, prior to displaying the
content item, the productivity application may receive a selection
of the content item or callout from the content surface. For
example, as discussed above with respect to FIG. 1, a callout may
be selected from a displayed text label on the content surface of a
user interface. In accordance with an embodiment, the content item
may comprise a callout selected from a group including at least a
tasks list, a contacts list and a calendar in a personal
information management application. It should be understood that
other content items in other productivity applications (including
productivity application suites comprising multiple applications)
may also be utilized in accordance with various embodiments. For
example, content items from word processing applications,
presentation graphics applications, spreadsheet applications,
diagramming applications, project management applications,
publishing applications and note-taking applications may be
utilized without departing from the spirit and scope of the
embodiments described herein.
[0035] From operation 1105, the routine 1100 continues to operation
1110, where the productivity application executing on the computing
device may receive in the user interface, request to attach the
content item to a final position on the content surface. For
example, the productivity application may receive a user request to
pin a callout to a predetermined position on the content surface
for displaying callouts. In particular, as discussed above with
respect to FIG. 1, a displayed callout may include an icon which
may be selected by a (e.g., by clicking on an input device or via a
touch gesture) to animate the callout across the content surface
and to attach or pin the callout to the content surface.
[0036] From operation 1110, the routine 1100 continues to operation
1115, where the productivity application executing on the computing
device may display in the user interface, an animation of the
content item moving, from the initial position, across the content
surface until the final position has been reached. It should be
understood that, in accordance with embodiments, the productivity
application in animating the movement of the content item across
the content surface may resize content in the content surface to
make space for the content item at the final position. In
particular, the productivity application may be configured to
either resize content in the content surface to make space for the
content item as the content item moves across the content surface
towards the final position or resize content in the content surface
to make space for the content item upon the content item reaching
the final position.
[0037] From operation 1115, the routine 1100 continues to operation
1120, where the productivity application executing on the computing
device may attach in the user interface, the content item to the
content surface at the final position. In particular, the
productivity application may be configured to display a cross-fade
animation showing a transition of the content item from a position
above the content surface at the final position to a docked state
within the content surface at the final position. It should be
understood that, while in the docked state at the final position,
the content item may comprise a task pane in the user interface. p
From operation 1120, the routine 1100 continues to operation 1125,
where the productivity application executing on the computing
device may receive in the user interface, a request to attach one
or more new content items to the final position on the content
surface.
[0038] From operation 1125, the routine 1100 continues to operation
1130, where the productivity application executing on the computing
device may display in the user interface, an animation of each new
content item moving across the content surface until the final
position has been reached.
[0039] From operation 1130, the routine 1100 continues to operation
1135, where the productivity application executing on the computing
device may attach in the user interface, the new content items to
the content surface at the final position. It should be understood
that the productivity application, in attaching the new content
items, may be configured to resize previously docked content items
to make space for the new content items at the final position. It
should be understood that, while attached to the content surface
(i.e., in a docked state) at the final position, the new content
items may comprise task panes in the user interface. From operation
1135, the routine 1100 then ends.
[0040] FIG. 12 is a block diagram illustrating example physical
components of a computing device 1200 with which various
embodiments may be practiced. The computing device components
described below may be suitable for the computing device described
above with respect to FIGS. 11. In a basic configuration, the
computing device 1200 may include at least one processing unit 1202
and a system memory 1204. Depending on the configuration and type
of computing device, system memory 1504 may comprise, but is not
limited to, volatile (e.g. random access memory (RAM)),
non-volatile (e.g. read-only memory (ROM)), flash memory, or any
combination. System memory 1204 may include an operating system
1205 and productivity application 1201. Operating system 1205, for
example, may be suitable for controlling computing device 1200's
operation and, in accordance with an embodiment, may comprise the
WINDOWS operating systems from MICROSOFT CORPORATION of Redmond,
Wash. It should be understood that the embodiments described herein
may also be practiced in conjunction with other operating systems
and application programs and further, is not limited to any
particular application or system.
[0041] The computing device 1200 may have additional features or
functionality. For example, the computing device 1200 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. 12 by a
removable storage 1209 and a non-removable storage 1210.
[0042] While executing on the processing unit 1202 of the computing
device 1200, the productivity application 1201 may perform a
routine for animating the attachment of content items to a location
on a content surface in a user interface including, for example,
one or more of the operations in the routine 1100 described above.
The aforementioned routine is illustrative, and the processing unit
1202 may perform other routines. Generally, consistent with various
embodiments, program modules may be provided which include
routines, programs, components, data structures, and other types of
structures that may perform particular tasks or that may implement
particular abstract data types. Moreover, various embodiments may
be practiced with other computer system configurations, including
hand-held devices, multiprocessor systems, microprocessor-based or
programmable consumer electronics, minicomputers, mainframe
computers, and the like. Various 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.
[0043] Furthermore, various embodiments 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, various
embodiments may be practiced via a system-on-a-chip ("SOC") where
each or many of the components illustrated in FIG. 12 may be
integrated onto a single integrated circuit. Such an SOC device may
include one or more processing units, graphics units,
communications units, system virtualization units and various
application functionality all of which are integrated (or "burned")
onto the chip substrate as a single integrated circuit. When
operating via an SOC, the functionality, described herein, with
respect to the productivity application 1201 may operate via
application-specific logic integrated with other components of the
computing device/system 1200 on the single integrated circuit
(chip). Embodiments may also be practiced using other technologies
capable of performing logical operations such as, for example, AND,
OR, and NOT, including but not limited to mechanical, optical,
fluidic, and quantum technologies. In addition, embodiments may be
practiced within a general purpose computer or in any other
circuits or systems.
[0044] Various embodiments, for example, may be implemented as a
computer process (method), a computing system, or as an article of
manufacture, such as a computer program product or computer
readable media. The computer program product may be a computer
storage media readable by a computer system and encoding a computer
program of instructions for executing a computer process.
[0045] The term computer readable media as used herein may include
computer storage media. Computer storage media may include volatile
and nonvolatile, removable and non-removable media implemented in
any method or technology for storage of information, such as
computer readable instructions, data structures, program modules,
or other data. The system memory 1204, removable storage 1209, and
non-removable storage 1210 are all computer storage media examples
(i.e., memory storage.) Computer storage media may include, but is
not limited to, RAM, ROM, electrically erasable read-only memory
(EEPROM), flash memory or other memory technology, CD-ROM, digital
versatile disks (DVD) or other optical storage, magnetic cassettes,
magnetic tape, magnetic disk storage or other magnetic storage
devices, or any other medium which can be used to store information
and which can be accessed by the computing device 1200. Any such
computer storage media may be part of the computing device 1200.
The computing device 1200 may also have input device(s) 1212 such
as a keyboard, a mouse, a pen, a sound input device, a touch input
device, etc. 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.
[0046] The term computer readable media as used herein may also
include communication media. Communication media may be embodied by
computer readable instructions, data structures, program modules,
or other data in a modulated data signal, such as a carrier wave or
other transport mechanism, and includes any information delivery
media. The term "modulated data signal" may describe a signal that
has one or more 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.
[0047] FIGS. 13A and 13B illustrate a suitable mobile computing
environment, for example, a mobile computing device 1350, a
smartphone, a tablet personal computer, a laptop computer, and the
like, with which various embodiments may be practiced. With
reference to FIG. 13A, an example mobile computing device 1350 for
implementing the embodiments is illustrated. In a basic
configuration, mobile computing device 1350 is a handheld computer
having both input elements and output elements. Input elements may
include touch screen display 1325 and input buttons 1310 that allow
the user to enter information into mobile computing device 1350.
Mobile computing device 1350 may also incorporate an optional side
input element 1320 allowing further user input. Optional side input
element 1320 may be a rotary switch, a button, or any other type of
manual input element. In alternative embodiments, mobile computing
device 1350 may incorporate more or less input elements. For
example, display 1325 may not be a touch screen in some
embodiments. In yet another alternative embodiment, the mobile
computing device is a portable phone system, such as a cellular
phone having display 1325 and input buttons 1310. Mobile computing
device 1350 may also include an optional keypad 1305. Optional
keypad 1305 may be a physical keypad or a "soft" keypad generated
on the touch screen display.
[0048] Mobile computing device 1350 incorporates output elements,
such as display 1325, which can display a graphical user interface
(GUI). Other output elements include speaker 1330 and LED light
1326. Additionally, mobile computing device 1350 may incorporate a
vibration module (not shown), which causes mobile computing device
1350 to vibrate to notify the user of an event. In yet another
embodiment, mobile computing device 1350 may incorporate a
headphone jack (not shown) for providing another means of providing
output signals.
[0049] Although described herein in combination with mobile
computing device 1350, in alternative embodiments may be used in
combination with any number of computer systems, such as in desktop
environments, laptop or notebook computer systems, multiprocessor
systems, micro-processor based or programmable consumer
electronics, network PCs, mini computers, main frame computers and
the like. Various 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; programs may be located in
both local and remote memory storage devices. To summarize, any
computer system having a plurality of environment sensors, a
plurality of output elements to provide notifications to a user and
a plurality of notification event types may incorporate the various
embodiments described herein.
[0050] FIG. 13B is a block diagram illustrating components of a
mobile computing device used in one embodiment, such as the mobile
computing device shown in FIG. 13A. That is, mobile computing
device 1350 can incorporate a system 1302 to implement some
embodiments. For example, system 1302 can be used in implementing a
"smart phone" that can run one or more applications similar to
those of a desktop or notebook computer such as, for example, the
productivity application discussed above with respect to FIGS. 1-12
as well as other applications. In some embodiments, the system 1302
is integrated as a computing device, such as an integrated personal
digital assistant (PDA) and wireless phone.
[0051] A productivity application 1367 may be loaded into memory
1362 and run on or in association with an operating system 1364.
The spreadsheet application 1367 may be perform a routine for
animating the attachment of content items to a location on a
content surface in a user interface including, for example, one or
more of the operations in routine 1100 described above. The system
1302 also includes non-volatile storage 1368 within memory the
1362. Non-volatile storage 1368 may be used to store persistent
information that should not be lost if system 1302 is powered down.
The productivity application 1367 may use and store information in
the non-volatile storage 1368. A synchronization application (not
shown) also resides on 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
1368 synchronized with corresponding information stored at the host
computer. As should be appreciated, other applications may also be
loaded into the memory 1362 and run on the device 1350.
[0052] 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.
[0053] 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 OS 1364. In
other words, communications received by the radio 1372 may be
disseminated to the productivity application 1367 via OS 1364, and
vice versa.
[0054] The radio 1372 allows the system 1302 to communicate with
other computing devices, such as over a network. The radio 1372 is
one example of communication media. The embodiment of the system
1302 is shown with two types of notification output devices: an LED
1380 that can be used to provide visual notifications and an audio
interface 1374 that can be used with speaker 1330 to provide audio
notifications. 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 processor 1360
and other components might shut down for conserving battery power.
The LED 1380 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 speaker 1330, the audio interface 1374 may also be
coupled to a microphone (not shown) to receive audible input, such
as to facilitate a telephone conversation. In accordance with
embodiments, the microphone may also serve as an audio sensor to
facilitate control of notifications. The system 1302 may further
include a video interface 1376 that enables an operation of
on-board camera 1330 to record still images, video stream, and the
like.
[0055] A mobile computing device implementing the system 1302 may
have additional features or functionality. For example, the device
may also include additional data storage devices (removable and/or
non-removable) such as, magnetic disks, optical disks, or tape.
Such additional storage is illustrated in FIG. 13B by storage
1368.
[0056] Data/information generated or captured by the device 1350
and stored via the system 1302 may be stored locally on the device
1350, 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 device 1350 and a
separate computing device associated with the device 1350, 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 device 1350 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.
[0057] FIG. 14 is a simplified block diagram of a distributed
computing system in which various embodiments may be practiced. The
distributed computing system may include number of client devices
such as a computing device 1405, a tablet computing device 1403 and
a mobile computing device 1410. The client devices 1405, 1403 and
1410 may be in communication with a distributed computing network
1415 (e.g., the Internet). A server 1420 is in communication with
the client devices 1405, 1403 and 1410 over the network 1415. The
server 1420 may store productivity application 1400 which may be
utilized to perform a routine for animating the attachment of
content items to a location on a content surface in a user
interface including, for example, one or more of the operations in
routine 1100 described above. The productivity application 1400 on
the server 1420 may be utilized by the client devices 1405, 1403
and 1410 (over the network 1415) to generate electronic documents
and for storing same in a store 1416.
[0058] Various embodiments are described above with reference to
block diagrams and/or operational illustrations of methods,
systems, and computer program products. The functions/acts noted in
the blocks may occur out of the order as shown in any flow diagram.
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.
[0059] While certain embodiments have been described, other
embodiments may exist. Furthermore, although various embodiments
have been described as being associated with data stored in memory
and other storage mediums, data can also be stored on or read from
other types of computer-readable media, such as secondary storage
devices (i.e., hard disks, floppy disks, or a CD-ROM), a carrier
wave from the Internet, or other forms of RAM or ROM. Further, the
disclosed routines' operations may be modified in any manner,
including by reordering operations and/or inserting or operations,
without departing from the embodiments described herein.
[0060] It will be apparent to those skilled in the art that various
modifications or variations may be made without departing from the
scope or spirit of the embodiments described herein. Other
embodiments will be apparent to those skilled in the art from
consideration of the specification and practice of the embodiments
described herein.
* * * * *