The present disclosure relates to managing documents, document workspaces, and application controls.
Applications for viewing and editing documents can have complex user interfaces. Typical user interfaces include windows that display documents, windows that display controls (e.g., panels), and windows that display documents and controls. The controls can provide access to operations that can be performed on documents. Various user interfaces have a single window that can operate as a document workspace and display multiple documents and controls.
Users spend time and energy organizing a workspace, including arranging windows, documents, and controls in a way that provides an efficient workflow. Applications that provide workspace management allow users to concentrate more on document content rather than managing windows.
In general, one or more aspects of the subject matter described in this specification can be embodied in one or more methods that include displaying one or more documents in a first document group in a source window. One or more documents are displayed in a second document group in a target window. An instruction is received to move the source window towards the target window. The source window is moved so that it overlaps the target window. An instruction is received to release the source window. The documents in the first document group are combined with the documents in the second document group to create a new document group. Other embodiments of this aspect include corresponding systems, apparatus, and computer program products.
These and other embodiments can optionally include one or more of the following features. One or more documents in the new document group are displayed in the target window. A visual affordance associated with the new document group is displayed, where the visual affordance is operable to select one of the documents in the new document group. The visual affordance can include a plurality of tabs where each tab displays a name of one of the documents in the new document group. Combining the documents in the first document group with the documents in the second document group can include: creating a new document group that comprises the documents in the first document group and the documents in the second document group; or creating a new document group with a first document subgroup and a second document subgroup, where the first document subgroup comprises the documents in the first document group and the second document subgroup comprises the documents in the second document group. Receiving an instruction to move the source window towards the target window can include receiving an instruction to drag a title bar associated with the source window towards the target window. Receiving an instruction to release the source window can include displaying a visual indicator that the documents in the first and second document groups will be combined when the source window is released.
In general, one or more aspects of the subject matter described in this specification can be embodied in one or more methods that include receiving input selecting a first document in a first window. Input is received to a first control displayed in a second window, where one or more overlapping windows overlap the second window. Without bringing the second window forward, an operation associated with the first document is performed, where the operation is based on the input to the first control. Other embodiments of this aspect include corresponding systems, apparatus, and computer program products.
These and other embodiments can optionally include one or more of the following features. The first control can comprise one of the following: a menu comprising a list of operations, a push-button, a sliding tool, a selectable color map, a list box, a checkbox, a toggle button, an edit field for typing, or a thumbnail image including a selectable image region. The operation can comprise one of the following: performing image processing on the first document, displaying a selected portion of the first document, saving the first document, changing properties on the document or on an object in the document, running an automated action on the document, or applying a color to a selected region of the first document. Receiving input selecting a first document in a first window can include bringing the first window forward. Input is received selecting a second document in the second window. The second window is brought forward.
Particular embodiments of the invention can be implemented to realize one or more of the following advantages. Combining document groups is more intuitive to users than previous methods of combining document groups, such as closing and re-opening documents. Users can quickly combine document groups. Users can perform operations on documents using controls in windows that are partially hidden without bringing those windows forward. Consequently, users spend less time managing their document workspaces. Users are encouraged and enabled to use workflows that require multiple documents to be viewed at once or used together, e.g., compositing or comparing images.
The details of one or more embodiments of the invention are set forth in the accompanying drawings and the description below. Other features, aspects, and advantages of the invention will become apparent from the description, the drawings, and the claims.
Like reference numbers and designations in the various drawings indicate like elements.
The source window 102 and the target window 104 have tabs 106, 108, and 110. The tabs display the names of documents in the document groups. A user can select (e.g., click with a mouse) a tab to display the document whose name is displayed on the tab. The source window 102 has a title bar 112, and the tabs 110 of the target window 104 act as a title bar for the target window 104. A title bar can display the name of the document that is displayed in its corresponding window or other information.
The target window 104 is associated with the new document group. The target window displays each of the subgroups within the new document group. The target window is subdivided, and one subdivision 120 displays one of the documents in the first document group and another subdivision 122 displays one of the documents in the second document group. Each subdivision has tabs 124, 126 and 128 that provide access to documents that are not currently displayed.
The system displays one or more documents in a first document group in a source window (step 202). The system displays one or more documents in a second document group in a target window (step 204). A window is a visual shape in a graphical user interface, typically rectangular, containing some kind of user interface. For example,
A document does not necessarily correspond to a file. A document can be stored in a portion of a file that holds other documents, in a single file dedicated to the document in question, or in multiple coordinated files. A document can also be stored in memory. Each of the documents can be of a different type. Alternatively, the documents can all be the same type. The documents can be images, movies, audio clips, word processing documents, spreadsheets, web pages, emails, combinations including documents embedded within documents, and the like. A document can also be a view on a composition or a subset of a larger composition.
A document group is one or more documents that are related. For example, in some cases, the documents are related because a user is working with all of them. Alternatively, the system can select certain documents and determine that they are related. For example, the system can determine that documents with the same file format are related, or that documents with the same file name extension are related.
In some implementations, the system displays a visual affordance for selecting documents in one or both of the target and source windows (step 206). A visual affordance is associated with a document group. A visual affordance is operable to select one of the documents in its associated document group. For example, the system can display a visual affordance in the source window if the document group being displayed in the source window has more than one document. The visual affordance can be, for example, a plurality of tabs where each tab displays a name (e.g., a text label by which the program identifies a document to a user) of one of the documents in an associated document group (for example, tabs 106, 108, and 110 in
The system receives an instruction to move the source window towards the target window (step 208). The system moves the source window so that it overlaps the target window (step 210). For example, in
The system receives an instruction to release the source window (step 212). An instruction to release the source window can be, for example, releasing a mouse button, pressing the “escape” key, double clicking a mouse button, and so on. The instruction to release the source window indicates that the source window has moved to a desired position.
The system combines the documents in the first document group with the documents in the second document group. For example, the system can add the documents in the first document group to the second document group, thus creating a new document group. In various implementations, the system prompts a user for confirmation that combining document groups is desired. For example, the system can display a dialog box allowing the user to cancel the combination.
In some implementations, the system combines the documents whenever the source window is released and it overlaps the target window. In other implementations, the system only combines the documents if the source window overlaps the target window in a particular way. For example, in various implementations, the system only combines the documents when a particular part of the source window (e.g., a title bar or a plurality of tabs, or the like) overlaps a particular part of the target window (e.g., a title bar or a plurality of tabs, or the like).
In some implementations, when the source window overlaps the target window (or when the source window overlaps the target window in a particular way), the system displays a visual indicator that the documents will be combined if the source window is released. For example, the system can display the source window as partially transparent (e.g., as illustrated in
In some implementations, the system determines whether to create subgroups (step 214). If the system decides to create subgroups, the system creates a new document group with a first document subgroup and a second document subgroup (step 218). The first document subgroup comprises the documents in the first document group and the second document subgroup comprises the documents in the second document group. If the system decides not to create subgroups, the system creates a new document group that comprises the document in first document group and the documents in the second document group (step 216).
The system can determine whether to create subgroups by receiving user preferences. In some implementations, the system receives fixed preferences from a user, for example, through a “settings” or “options” menu. In other implementations, the system receives user preferences dynamically. For example, a user can click a “control” or “alt” key when releasing the source window to instruct the system to create subgroups.
In some implementations, the system displays one or more documents in the new document group in the target window (step 220). Typically, the displayed documents can be edited, viewed, or otherwise manipulated by an application that controls the target window. For example, if one of the displayed documents is a spreadsheet, a user can insert new values into the spreadsheet. If the system created subgroups, the system can subdivide the target window and display one or more documents from each subgroup in each subdivision of the target window. For example,
In some implementations, the system displays a visual affordance (e.g., a plurality of tabs) associated with the new document group (step 222). The system can decide whether to display a visual affordance based on, for example, user preferences or the number of documents in the new document group. The visual affordance is operable to select one of the documents in the new document group.
In some implementations, after combining the document groups, the system no longer displays the source window. The system moves the documents from the source window into the target window and closes the source window. In other implementations, the system copies the document from the source window into the target window. The system continues to display the source window. In various implementations, the system decides whether to copy or move the documents based on user input. For example, the system can copy the documents when the user holds a key (e.g., the “control” key or the “alt” key) while releasing the source window, and the system can move the documents if the user does not hold the key.
Similarly,
The system displays a plurality of windows (step 402). One or more of the windows are displayed in front of one or more other windows.
The system receives input selecting a first document in a first window (step 404). In some implementations, the system brings the first window forward (step 406). Bringing a window forward comprises displaying the window in front of one or more other displayed document windows, or in some cases, in front of any other displayed document window. In various implementations, the system changes the display of the window to indicate that it has been selected.
The system receives input to a first control in a second window (step 408). One or more overlapping windows overlap the second window. For example, the first window can be one of the overlapping windows.
In some implementations, the first window and the second window are both controlled by the same application. In other implementations, the first window is controlled by one application and the second window is controlled by another. For example, the first window can be a window controlled by an operating system, and the second window can be a window controlled by an image processing application.
A control allows a user to specify operations for an application to perform. For example, a control can be a menu comprising a list of operations, a push-button, a sliding tool, a selectable color map, a list box, a checkbox or toggle button, an edit field for typing, a thumbnail image including a selectable image region, and so on. The input can be, for example, a mouse click to a button control, a menu selection from a menu, a color selection in a color map, a selection of an image region in an image thumbnail, and so on.
Without bringing the second window forward (e.g., in front of one or any of the overlapping windows), the system performs an operation associated with the selected document (step 410). In some implementations, the system brings the second window in front of one or more of the overlapping windows, but not all of them. For example, where the first window overlaps the second window, the system can bring the second window in front of all overlapping windows except the first window.
The operation is based on the input to the first control. The operation can be, for example, performing image processing on the first document, displaying a selected portion (e.g., from a thumbnail image) of the first document, saving the selected document, applying a color to a selected region of the first document, changing properties on the document or on an object in the document, running an automated action on the document, and so on.
In some implementations, the system determines whether to bring the second window forward by receiving input. For example, the system can partially activate the second window if a user holds the “control” or “alt” key while selecting the first control, but bring the second window forward if the user does not hold the appropriate key. In various implementations, the system decides whether or not to bring the second window forward based on what area of the second window (e.g., a document area or a control area) is selected.
In some implementations, the system receives input selecting a second document in the second window (step 412). The system brings the second window forward (step 414). For example,
The memory 520 is a computer readable medium such as volatile or non volatile memory that stores information within the system 500. The storage device 530 is capable of providing persistent storage for the system 500. The storage device 530 can be a floppy disk device, a hard disk device, an optical disk device, or a tape device, or other suitable persistent storage means. The input/output device 540 provides input/output operations for the system 500. In some implementations, the input/output device 540 includes a keyboard and a pointing device. In other implementations, the input/output device 540 includes a display unit for displaying graphical user interfaces.
Various implementations of the systems and techniques described here can be realized in digital electronic circuitry, integrated circuitry, specially designed ASICs (application specific integrated circuits), computer hardware, firmware, software, and/or combinations thereof. These various implementations can include implementation in one or more computer programs that are executable and/or interpretable on a programmable system including at least one programmable processor, which may be special or general purpose, coupled to receive data and instructions from, and to transmit data and instructions to, a storage system, at least one input device, and at least one output device.
These computer programs (also known as programs, software, software applications or code) include machine instructions for a programmable processor, and can be implemented in a high-level procedural and/or object-oriented programming language, and/or in assembly/machine language. As used herein, the terms “machine-readable medium” and “computer-readable medium” refer to any computer program product, apparatus and/or device (e.g., magnetic discs, optical disks, memory, Programmable Logic Devices (PLDs)) used to provide machine instructions and/or data to a programmable processor, including a machine-readable medium that receives machine instructions as a machine-readable signal. The term “machine-readable signal” refers to any signal used to provide machine instructions and/or data to a programmable processor.
To provide for interaction with a user, the systems and techniques described here can be implemented on a computer having a display device (e.g., a CRT (cathode ray tube) or LCD (liquid crystal display) monitor) for displaying information to the user and a keyboard and a pointing device (e.g., a mouse or a trackball) by which the user can provide input to the computer. Other kinds of devices can be used to provide for interaction with a user as well; for example, feedback provided to the user can be any form of sensory feedback (e.g., visual feedback, auditory feedback, or tactile feedback); and input from the user can be received in any form, including acoustic, speech, or tactile input.
The systems and techniques described here can be implemented in a computing system that includes a back-end component (e.g., as a data server), or that includes a middleware component (e.g., an application server), or that includes a front-end component (e.g., a client computer having a graphical user interface or a Web browser through which a user can interact with an implementation of the systems and techniques described here), or any combination of such back-end, middleware, or front-end components. The components of the system can be interconnected by any form or medium of digital data communication (e.g., a communication network). Examples of communication networks include a local area network (“LAN”), a wide area network (“WAN”), and the Internet.
While this specification contains many implementation details, these should not be construed as limitations on the scope of the invention or of what may be claimed, but rather as descriptions of features specific to particular implementations of the invention. Certain features that are described in this specification in the context of separate implementations can also be implemented in combination in a single implementation. Conversely, various features that are described in the context of a single implementation can also be implemented in multiple implementations separately or in any suitable subcombination. Moreover, although features may be described above as acting in certain combinations and even initially claimed as such, one or more features from a claimed combination can in some cases be excised from the combination, and the claimed combination may be directed to a subcombination or variation of a subcombination.
Similarly, while operations are depicted in the drawings in a particular order, this should not be understood as requiring that such operations be performed in the particular order shown or in sequential order, or that all illustrated operations be performed, to achieve desirable results. In certain circumstances, multitasking and parallel processing may be advantageous. Moreover, the separation of various system components in the implementations described above should not be understood as requiring such separation in all implementations, and it should be understood that the described program components and systems can generally be integrated together in a single software product or packaged into multiple software products.
Thus, particular implementations of the invention have been described. Other implementations are within the scope of the following claims. For example, the actions recited in the claims can be performed in a different order and still achieve desirable results.
This application claims priority to pending U.S. Provisional Application Ser. No. 61/049,729, filed May 1, 2008, the entire contents of which are hereby incorporated by reference.
Number | Date | Country | |
---|---|---|---|
61049729 | May 2008 | US |