CA2431518C - Resolving document object collisions - Google Patents
Resolving document object collisions Download PDFInfo
- Publication number
- CA2431518C CA2431518C CA2431518A CA2431518A CA2431518C CA 2431518 C CA2431518 C CA 2431518C CA 2431518 A CA2431518 A CA 2431518A CA 2431518 A CA2431518 A CA 2431518A CA 2431518 C CA2431518 C CA 2431518C
- Authority
- CA
- Canada
- Prior art keywords
- document object
- document
- collision
- distance
- page
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/103—Formatting, i.e. changing of presentation of documents
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/103—Formatting, i.e. changing of presentation of documents
- G06F40/106—Display of layout of documents; Previewing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/166—Editing, e.g. inserting or deleting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T11/00—2D [Two Dimensional] image generation
- G06T11/60—Editing figures and text; Combining figures or text
Abstract
Collisions between document objects on a document page are resolved. A
collision is identified and a two-dimension resolution of the collision is provided by moving the object the shortest distance from a pre-collision location that would avoid the collision. The process calculates the shortest distance to move the object.
The invention also may establish logic that designates some objects as "not able to collide"
and the process will not move those objects to resolve a collision.
collision is identified and a two-dimension resolution of the collision is provided by moving the object the shortest distance from a pre-collision location that would avoid the collision. The process calculates the shortest distance to move the object.
The invention also may establish logic that designates some objects as "not able to collide"
and the process will not move those objects to resolve a collision.
Description
RESOLVING DOCUMENT OBJECT COLLISIONS
FIELD OF THE INVENTION
The present invention relates to editing electronic documents and more specifically relates to a method for resolving document object collisions resulting from document editing.
BACKGROUND OF THE INVENTION
Electronic document editors are widely used in homes and businesses today.
Familiar examples of these editors include word processing applications that operate on.
personal computers (PCs) and note-taking applications that operate on personal data assistants (PDAs). These applications strive to replace paper as the simplest means to record and communicate information. However, to replace and enhance paper's utility, the electronic document editor must allow the user to place document objects on a page and to edit, move, resize, and add objects, while ensuring that the user can clearly view.
the individual objects.
Note-taking using a free-form document editor can be enhanced by using certain hardware devices. For example, an electronic tablet can be used to record handwriting and input the handwriting to a conventional computer. Such electronic tablets typically comprise a screen and a handheld device that is similar to a pen (also referred to as. a stylus). A user can use the pen to write on the electronic tablet in a manner similar to using traditional. pen and paper. The electronic tablet can "read" the strokes of the user's handwriting with the handheld device and render the handwriting in electronic form on the tablet's screen or the computer's display as "electronic- ink."
Additionally, the user can create a drawing or text onto blank areas on the page using the stylus and electronic tablet or using a keyboard, pointing. device, or other input device. These areas of text or images are called document objects.
Some document constraints can reduce a user's ability to take notes efficiently and effectively using a conventional document editor. A free-form document editor operates to eliminate some document constraints by enabling free-foam note taking.
Accordingly, the free-form document editor has a different document behavior than a word processor document editor.
By eliminating some document constraints, a free-form document editor may trigger a need for object management in free-form document editors. By adding new objects to a page, or editing, moving, or resizing existing objects, one object may collide with another object on the screen. This collision could either cause one object to cover another, obscuring information in that covered object, or, as traditional electronic document editors do, merely bump the lower object vertically down the page (a one-dimensional solution). Neither of these approaches would allow the free-form document editor to maximize its two-dimensional character. Additionally, in some cases, a user may want the objects to overlap. As such, the system uses a method that resolves collisions two-dimensionally while allowing user flexibility.
SUMMARY OF THE INVENTION
Collisions between document objects on a document page are resolved. A
collision is identified and a two-dimension resolution of the collision is provided by moving the object the shortest distance from a pre-collision location that would resolve the collision. The method calculates the shortest distance to move the object.
The invention also may establish logic that designates some objects as "not able to collide"
and the method will not move those objects to resolve.a collision.
In one aspect of an exemplary embodiment of the invention, an existing page in an electronic document is modified. By adding a new document object or editing,
FIELD OF THE INVENTION
The present invention relates to editing electronic documents and more specifically relates to a method for resolving document object collisions resulting from document editing.
BACKGROUND OF THE INVENTION
Electronic document editors are widely used in homes and businesses today.
Familiar examples of these editors include word processing applications that operate on.
personal computers (PCs) and note-taking applications that operate on personal data assistants (PDAs). These applications strive to replace paper as the simplest means to record and communicate information. However, to replace and enhance paper's utility, the electronic document editor must allow the user to place document objects on a page and to edit, move, resize, and add objects, while ensuring that the user can clearly view.
the individual objects.
Note-taking using a free-form document editor can be enhanced by using certain hardware devices. For example, an electronic tablet can be used to record handwriting and input the handwriting to a conventional computer. Such electronic tablets typically comprise a screen and a handheld device that is similar to a pen (also referred to as. a stylus). A user can use the pen to write on the electronic tablet in a manner similar to using traditional. pen and paper. The electronic tablet can "read" the strokes of the user's handwriting with the handheld device and render the handwriting in electronic form on the tablet's screen or the computer's display as "electronic- ink."
Additionally, the user can create a drawing or text onto blank areas on the page using the stylus and electronic tablet or using a keyboard, pointing. device, or other input device. These areas of text or images are called document objects.
Some document constraints can reduce a user's ability to take notes efficiently and effectively using a conventional document editor. A free-form document editor operates to eliminate some document constraints by enabling free-foam note taking.
Accordingly, the free-form document editor has a different document behavior than a word processor document editor.
By eliminating some document constraints, a free-form document editor may trigger a need for object management in free-form document editors. By adding new objects to a page, or editing, moving, or resizing existing objects, one object may collide with another object on the screen. This collision could either cause one object to cover another, obscuring information in that covered object, or, as traditional electronic document editors do, merely bump the lower object vertically down the page (a one-dimensional solution). Neither of these approaches would allow the free-form document editor to maximize its two-dimensional character. Additionally, in some cases, a user may want the objects to overlap. As such, the system uses a method that resolves collisions two-dimensionally while allowing user flexibility.
SUMMARY OF THE INVENTION
Collisions between document objects on a document page are resolved. A
collision is identified and a two-dimension resolution of the collision is provided by moving the object the shortest distance from a pre-collision location that would resolve the collision. The method calculates the shortest distance to move the object.
The invention also may establish logic that designates some objects as "not able to collide"
and the method will not move those objects to resolve.a collision.
In one aspect of an exemplary embodiment of the invention, an existing page in an electronic document is modified. By adding a new document object or editing,
2 resizing, or moving an existing object, the boundary of one document object intersects with the boundary of another document object. When the collision occurs, the method determines the shortest distance required to move the object to resolve the collision, either straight down or straight to the right or left, and moves the object in the direction of the shortest distance. If, by moving the second object, another collision occurs, the program resolves the new collision in the same manner.
In a second aspect of an exemplary embodiment of the invention, an existing page in an electronic document is modified. By adding a new object or editing, resizing, or moving an existing object, the boundary of one object intersects with the boundary of another object that the user does not want to move. When the collision occurs, the program does not move the second object. Instead, the objects overlap until the user reconfigures the objects such that the object is then able to move.
In a third aspect of an exemplary embodiment of the invention, there is provided a computer-implemented method for resolving collisions between document objects on an electronic document page, the method comprising:
identifying the occurrence of a collision of a first document object and a second document object; identifying, in response to the identified collision occurrence, a collision region comprising an overlapping area between the first document object and the second document object, the collision region having a first distance comprising a maximum length of the collision region in a side-to-side direction relative to the electronic document page and the collision region having a second distance comprising a maximum length of the collision region in a top-to-bottom
In a second aspect of an exemplary embodiment of the invention, an existing page in an electronic document is modified. By adding a new object or editing, resizing, or moving an existing object, the boundary of one object intersects with the boundary of another object that the user does not want to move. When the collision occurs, the program does not move the second object. Instead, the objects overlap until the user reconfigures the objects such that the object is then able to move.
In a third aspect of an exemplary embodiment of the invention, there is provided a computer-implemented method for resolving collisions between document objects on an electronic document page, the method comprising:
identifying the occurrence of a collision of a first document object and a second document object; identifying, in response to the identified collision occurrence, a collision region comprising an overlapping area between the first document object and the second document object, the collision region having a first distance comprising a maximum length of the collision region in a side-to-side direction relative to the electronic document page and the collision region having a second distance comprising a maximum length of the collision region in a top-to-bottom
3 direction relative to the electronic document page;
determining the shortest distance to move the second document object to resolve the collision wherein determining the shortest distance comprises; determining the value of the first distance between the first document object and the second document object in the side-to-side direction relative to the electronic document page, determining the value of the second distance between the first document object and the second document object in the top-to-bottom direction relative to the electronic document page, setting a direction of the shortest distance to side-to-side if the first distance is less than the second distance, and setting the direction of the shortest distance to top-to-bottom if the first distance is greater than or equal to the second distance; moving the second document object in the direction of the shortest distance; recording the original location of the document object to be moved; and returning the document object to its original location if the document layout is further modified to allow the document object to return to its original location without resulting in a collision.
In a fourth aspect of an exemplary embodiment of the invention, there is provided a system for resolving collisions between document objects on an electronic document page, the system comprising: a memory storage; and a processing unit coupled to the memory storage, wherein the processing unit is operative to: identify the occurrence of a collision of a first document object and a second document object; determine that the second document object has not been designated as not able to collide; determine, in response to determining that the second document object has been designated as able to collide, the shortest distance to move the second document object to resolve the collision wherein the processing unit being operative to determine the
determining the shortest distance to move the second document object to resolve the collision wherein determining the shortest distance comprises; determining the value of the first distance between the first document object and the second document object in the side-to-side direction relative to the electronic document page, determining the value of the second distance between the first document object and the second document object in the top-to-bottom direction relative to the electronic document page, setting a direction of the shortest distance to side-to-side if the first distance is less than the second distance, and setting the direction of the shortest distance to top-to-bottom if the first distance is greater than or equal to the second distance; moving the second document object in the direction of the shortest distance; recording the original location of the document object to be moved; and returning the document object to its original location if the document layout is further modified to allow the document object to return to its original location without resulting in a collision.
In a fourth aspect of an exemplary embodiment of the invention, there is provided a system for resolving collisions between document objects on an electronic document page, the system comprising: a memory storage; and a processing unit coupled to the memory storage, wherein the processing unit is operative to: identify the occurrence of a collision of a first document object and a second document object; determine that the second document object has not been designated as not able to collide; determine, in response to determining that the second document object has been designated as able to collide, the shortest distance to move the second document object to resolve the collision wherein the processing unit being operative to determine the
4 shortest distance comprises the processing unit being operative to; determine a first distance between the first document object and the second document object in a side-to-side direction relative to the electronic document page, determine a second distance between the first document object and the second document object in a top-to-bottom direction relative to the electronic document page, set a direction of the shortest distance to side-to-side if the first distance is less than the second distance, and set the direction of the shortest distance to top-to-bottom if the first distance is greater than or equal to the second distance; move, in response to determining that the second document object has been designated as able to collide, the second document object in the direction of the shortest distance; record the original location of the document object to be moved; and return the document object to its original location if the document layout is further modified to allow the document object to return to its original location without resulting in a collision.
In a fifth aspect of an exemplary embodiment of the invention, there is provided a computer-readable medium which stores a set of instructions which when executed performs a method for resolving collisions between document objects on an electronic document page, the method executed by the set of instructions comprising: identifying the occurrence of a collision of a first document object and a second document object; determining that the second document object has been designated as able to collide; identifying, in response to the identified collision occurrence and in response to determining that the second document object has been designated as able to collide, a collision region comprising an overlapping area between the first document object and the second document object, the collision region 4a having a first distance comprising a maximum length of the collision region in a side-to-side direction relative to the electronic document page and the collision region having a second distance comprising a maximum length of the collision region in a top-to-bottom direction relative to the electronic document page; determining, in response to determining that the second document object has been designated as able to collide, the shortest distance to move the second document object to resolve the collision wherein determining the shortest distance comprises; determining the value of the first distance between the first document object and the second document object in the side-to-side direction relative to the electronic document page, determining the value of the second distance between the first document object and the second document object in the top-to-bottom direction relative to the electronic document page, setting a direction of the shortest distance to side-to-side if the first distance is less than the second distance, and setting the direction of the shortest distance to top-to-bottom if the first distance is greater than or equal to the second distance; moving, in response to determining that the second document object has been designated as able to collide, the second document object in the direction of the shortest distance; recording the original location of the document object to be moved; and returning the document object to its original location if the document layout is further modified to allow the document object to return to its original location without resulting in a collision.
The aspects of the present invention may be more clearly understood and appreciated from a review of the following detailed description of the disclosed embodiments and by reference to the drawings and claims.
4b BRIEF DESCRIPTION OF THE DRAWINGS
Figure 1 is a block diagram illustrating an exemplary operating environment for implementating embodiments of the present invention.
Figure 2 is a block diagram depicting the primary functional components of an exemplary free-form document editor and related input devices.
Figure 3 is a block diagram depicting an exemplary electronic document screen containing document objects.
Figure 4 is a block diagram depicting an exemplary screen. containing document objects and illustrating a collision.
Figure 5 is a block diagram depicting an exemplary screen containing document objects and illustrating resolving a collision with associated secondary collision.
4c Figure 6 is a block diagram depicting an exemplary screen containing document objects and illustrating resolving the secondary collision.
Figure 7 is a block diagram depicting an exemplary screen containing document objects and illustrating a different collision.
Figure 8 is a block diagram depicting an exemplary screen containing document objects and illustrating resolving a collision by moving object to the side.
Figure 9 is a block diagram depicting an exemplary screen containing document objects and illustrating an object moved as a result of resolving a collision returning to its original position.
Figure 10 is a flow chart illustrating the steps taken in one exemplary embodiment of the invention to identify and resolve collisions on an electronic document screen.
Figure I 1 is a block diagram depicting a screen containing document objects for an alternative exemplary embodiment of the present invention.
Figure 12 is a block diagram depicting an exemplary screen containing document objects and illustrating moving an object on top of an outline object.
Figure 13 is a block diagram depicting an exemplary screen containing document objects and illustrating a collision with an object characterized as "not able to collide,"
Figure 14 is a flow chart illustrating the steps taken to identify and resolve collisions on an electronic document screen using an alternative exemplary embodiment of the present invention.
DETAILED DESCRIPTION OF THE EXEMPLARY EMBODIMENTS
Exemplary embodiments of the present invention provide a method for maintaining the layout of a free-form electronic document, by moving objects after collisions so that the user can clearly see the individual objects while working with the electronic document.
Figure I illustrates an exemplary operating environment for implementating the present invention. The exemplary operating environment includes a general-purpose
In a fifth aspect of an exemplary embodiment of the invention, there is provided a computer-readable medium which stores a set of instructions which when executed performs a method for resolving collisions between document objects on an electronic document page, the method executed by the set of instructions comprising: identifying the occurrence of a collision of a first document object and a second document object; determining that the second document object has been designated as able to collide; identifying, in response to the identified collision occurrence and in response to determining that the second document object has been designated as able to collide, a collision region comprising an overlapping area between the first document object and the second document object, the collision region 4a having a first distance comprising a maximum length of the collision region in a side-to-side direction relative to the electronic document page and the collision region having a second distance comprising a maximum length of the collision region in a top-to-bottom direction relative to the electronic document page; determining, in response to determining that the second document object has been designated as able to collide, the shortest distance to move the second document object to resolve the collision wherein determining the shortest distance comprises; determining the value of the first distance between the first document object and the second document object in the side-to-side direction relative to the electronic document page, determining the value of the second distance between the first document object and the second document object in the top-to-bottom direction relative to the electronic document page, setting a direction of the shortest distance to side-to-side if the first distance is less than the second distance, and setting the direction of the shortest distance to top-to-bottom if the first distance is greater than or equal to the second distance; moving, in response to determining that the second document object has been designated as able to collide, the second document object in the direction of the shortest distance; recording the original location of the document object to be moved; and returning the document object to its original location if the document layout is further modified to allow the document object to return to its original location without resulting in a collision.
The aspects of the present invention may be more clearly understood and appreciated from a review of the following detailed description of the disclosed embodiments and by reference to the drawings and claims.
4b BRIEF DESCRIPTION OF THE DRAWINGS
Figure 1 is a block diagram illustrating an exemplary operating environment for implementating embodiments of the present invention.
Figure 2 is a block diagram depicting the primary functional components of an exemplary free-form document editor and related input devices.
Figure 3 is a block diagram depicting an exemplary electronic document screen containing document objects.
Figure 4 is a block diagram depicting an exemplary screen. containing document objects and illustrating a collision.
Figure 5 is a block diagram depicting an exemplary screen containing document objects and illustrating resolving a collision with associated secondary collision.
4c Figure 6 is a block diagram depicting an exemplary screen containing document objects and illustrating resolving the secondary collision.
Figure 7 is a block diagram depicting an exemplary screen containing document objects and illustrating a different collision.
Figure 8 is a block diagram depicting an exemplary screen containing document objects and illustrating resolving a collision by moving object to the side.
Figure 9 is a block diagram depicting an exemplary screen containing document objects and illustrating an object moved as a result of resolving a collision returning to its original position.
Figure 10 is a flow chart illustrating the steps taken in one exemplary embodiment of the invention to identify and resolve collisions on an electronic document screen.
Figure I 1 is a block diagram depicting a screen containing document objects for an alternative exemplary embodiment of the present invention.
Figure 12 is a block diagram depicting an exemplary screen containing document objects and illustrating moving an object on top of an outline object.
Figure 13 is a block diagram depicting an exemplary screen containing document objects and illustrating a collision with an object characterized as "not able to collide,"
Figure 14 is a flow chart illustrating the steps taken to identify and resolve collisions on an electronic document screen using an alternative exemplary embodiment of the present invention.
DETAILED DESCRIPTION OF THE EXEMPLARY EMBODIMENTS
Exemplary embodiments of the present invention provide a method for maintaining the layout of a free-form electronic document, by moving objects after collisions so that the user can clearly see the individual objects while working with the electronic document.
Figure I illustrates an exemplary operating environment for implementating the present invention. The exemplary operating environment includes a general-purpose
5 computing device in the form of a conventional personal computer 120.
Generally, the personal computer 120 includes a processing unit 121, a system memory 122, and a system bus 123 that couples system components including the system memory 122 to the processing unit 121. The system bus 123 may be any of several types of bus structures including a memory bus or memory controller, a peripheral bus, and a local bus using any bus architecture. The system memory includes a read-only memory (ROM) 124 and a random access memory (RAM) 125. A basic input/output system (BIOS) 126, containing the basic routines that help to transfer information between elements within personal computer 120, such as during start-up, is stored in ROM 124.
Personal computer 120 further includes a hard disk drive 127 for reading from and writing to a hard disk, not shown, a magnetic disk drive 128 for reading from or writing to a removable magnetic disk 129, and an optical disk drive 130 for reading from or writing to a removable optical disk 131 such as a CD-ROM or other optical media.
Hard disk drive 127, magnetic disk drive 128, and optical disk drive 130 are connected to system bus 123 by a hard disk drive interface 132, a magnetic disk drive interface 133, and an optical disk drive interface 134, respectively. Although the exemplary environment described herein employs hard disk 127, removable magnetic disk 129, and removable optical disk 131, it should be appreciated by those skilled in the art that other types of computer readable media that can store data that is accessible by a computer, such as magnetic cassettes, flash memory cards, digital video disks, Bernoulli cartridges, RAMs, ROMs, and the like, may also be used in the exemplary operating environment.
The drives and their associated computer-readable media provide nonvolatile storage of computer-executable instructions, data structures, program modules, and other data for personal computer 120.
A number of program modules may be stored on hard disk 127, magnetic disk 129, optical disk 131, ROM 124, or RAM 125, including an operating system 135, a document editor 136, a collision resolution module 138, and an electronic document 139.
Program modules include routines, sub-routines, programs, objects, components, data structures, etc., that perform particular tasks or implement particular abstract data types.
Generally, the personal computer 120 includes a processing unit 121, a system memory 122, and a system bus 123 that couples system components including the system memory 122 to the processing unit 121. The system bus 123 may be any of several types of bus structures including a memory bus or memory controller, a peripheral bus, and a local bus using any bus architecture. The system memory includes a read-only memory (ROM) 124 and a random access memory (RAM) 125. A basic input/output system (BIOS) 126, containing the basic routines that help to transfer information between elements within personal computer 120, such as during start-up, is stored in ROM 124.
Personal computer 120 further includes a hard disk drive 127 for reading from and writing to a hard disk, not shown, a magnetic disk drive 128 for reading from or writing to a removable magnetic disk 129, and an optical disk drive 130 for reading from or writing to a removable optical disk 131 such as a CD-ROM or other optical media.
Hard disk drive 127, magnetic disk drive 128, and optical disk drive 130 are connected to system bus 123 by a hard disk drive interface 132, a magnetic disk drive interface 133, and an optical disk drive interface 134, respectively. Although the exemplary environment described herein employs hard disk 127, removable magnetic disk 129, and removable optical disk 131, it should be appreciated by those skilled in the art that other types of computer readable media that can store data that is accessible by a computer, such as magnetic cassettes, flash memory cards, digital video disks, Bernoulli cartridges, RAMs, ROMs, and the like, may also be used in the exemplary operating environment.
The drives and their associated computer-readable media provide nonvolatile storage of computer-executable instructions, data structures, program modules, and other data for personal computer 120.
A number of program modules may be stored on hard disk 127, magnetic disk 129, optical disk 131, ROM 124, or RAM 125, including an operating system 135, a document editor 136, a collision resolution module 138, and an electronic document 139.
Program modules include routines, sub-routines, programs, objects, components, data structures, etc., that perform particular tasks or implement particular abstract data types.
6 Aspects of the present invention may be implemented in the form of a document editor 136 that can operate in concert with the collision resolution module 138 to edit the electronic document 139. The document editor 136 generally comprises computer-executable instructions for creating and editing electronic documents. The collision resolution module 138 is generally accessible to the document editor 136, but also can be implemented as an integral part of the document editor.
A user may enter commands and information into personal computer 120 through input devices, such as a keyboard 140 and a pointing device 142. Pointing devices may include a mouse, a trackball, and an electronic pen that can be used in conjunction with an electronic tablet. Other input devices (not shown) may include a microphone, joystick, game pad, satellite dish, scanner, or the like. These and other input devices are often connected to processing unit 122 through a serial port interface 146 that is coupled to the system bus 123, but may be connected by other interfaces, such as a parallel port, game port, a universal serial bus (USB), or the like. A display device 147 may also be connected to system bus 123 via an interface, such as a video adapter 148. In addition to the monitor, personal computers typically include other peripheral output devices (not shown), such as speakers and printers.
The personal computer 120 may operate in a networked environment using logical connections to one or more remote computers 149. Remote computer 149 may be another personal computer, a server, a client, a router, a network PC, a peer device, or other common network node. While a remote computer 149 typically includes many or all of the elements described above relative to the personal computer 120, only a memory storage device 150 has been illustrated in Figure 1. The logical connections depicted in Figure 1 include a local area network (LAN) 151 and a wide area network (WAN) 152.
Such networking environments are commonplace in offices, enterprise-wide computer networks, intranets, and the Internet.
When used in a LAN networking environment, the personal computer 120 is often connected to the local area network 151 through a network interface or adapter 153.
When used in a WAN networking environment, the personal computer 120 typically
A user may enter commands and information into personal computer 120 through input devices, such as a keyboard 140 and a pointing device 142. Pointing devices may include a mouse, a trackball, and an electronic pen that can be used in conjunction with an electronic tablet. Other input devices (not shown) may include a microphone, joystick, game pad, satellite dish, scanner, or the like. These and other input devices are often connected to processing unit 122 through a serial port interface 146 that is coupled to the system bus 123, but may be connected by other interfaces, such as a parallel port, game port, a universal serial bus (USB), or the like. A display device 147 may also be connected to system bus 123 via an interface, such as a video adapter 148. In addition to the monitor, personal computers typically include other peripheral output devices (not shown), such as speakers and printers.
The personal computer 120 may operate in a networked environment using logical connections to one or more remote computers 149. Remote computer 149 may be another personal computer, a server, a client, a router, a network PC, a peer device, or other common network node. While a remote computer 149 typically includes many or all of the elements described above relative to the personal computer 120, only a memory storage device 150 has been illustrated in Figure 1. The logical connections depicted in Figure 1 include a local area network (LAN) 151 and a wide area network (WAN) 152.
Such networking environments are commonplace in offices, enterprise-wide computer networks, intranets, and the Internet.
When used in a LAN networking environment, the personal computer 120 is often connected to the local area network 151 through a network interface or adapter 153.
When used in a WAN networking environment, the personal computer 120 typically
7 includes a modem 154 or other means for establishing communications over WAN
152, such as the Internet. Modem 154, which may be internal or external, is connected to system bus 123 via serial port interface 146. In a networked environment, program modules depicted relative to personal computer 120, or portions thereof, may be stored in the remote memory storage device 150. It will be appreciated that the network connections shown are exemplary and other means of establishing a communications link between the computers may be used.
Moreover, those skilled in the art will appreciate that the present invention may be implemented in other computer system configurations, including hand-held devices (PDAs), multiprocessor systems, microprocessor based or programmable consumer electronics, network person computers, minicomputers, mainframe computers, and the like. The invention may also be practiced in distributed computing environments, where tasks are performed by remote processing devices that are linked through a communications network. In a distributed computing environment, program modules may be located in both local and remote memory storage devices.
Figure 2 is a block diagram depicting the primary functional components of an exemplary free-form document editor and related input devices. Specifically, Figure 2 depicts typical hardware and software components used in operating an exemplary embodiment of the invention in the context of a free-form document editor.
Conventional input devices are represented by the keyboard 260 and the pointing device 265 (e.g., mouse, pen and tablet). A user can enter commands and information into the computer 20 using the pointer device or another input devices. Other input devices (not shown) may include a microphone, joystick, game pad, satellite dish, and scanner. A
conventional output device, such as monitor 270, is used to display information from the computer 20. Other output devices (not shown) can include a printer or speaker. Other hardware components shown in Figure 2 include an electronic tablet 250 and an accompanying stylus 255. The tablet 250 and stylus 255 are used to input handwriting strokes that can be converted to data, referred to as electronic ink. The electronic ink may be incorporated into an electronic document 220 and may be displayed on either the
152, such as the Internet. Modem 154, which may be internal or external, is connected to system bus 123 via serial port interface 146. In a networked environment, program modules depicted relative to personal computer 120, or portions thereof, may be stored in the remote memory storage device 150. It will be appreciated that the network connections shown are exemplary and other means of establishing a communications link between the computers may be used.
Moreover, those skilled in the art will appreciate that the present invention may be implemented in other computer system configurations, including hand-held devices (PDAs), multiprocessor systems, microprocessor based or programmable consumer electronics, network person computers, minicomputers, mainframe computers, and the like. The invention may also be practiced in distributed computing environments, where tasks are performed by remote processing devices that are linked through a communications network. In a distributed computing environment, program modules may be located in both local and remote memory storage devices.
Figure 2 is a block diagram depicting the primary functional components of an exemplary free-form document editor and related input devices. Specifically, Figure 2 depicts typical hardware and software components used in operating an exemplary embodiment of the invention in the context of a free-form document editor.
Conventional input devices are represented by the keyboard 260 and the pointing device 265 (e.g., mouse, pen and tablet). A user can enter commands and information into the computer 20 using the pointer device or another input devices. Other input devices (not shown) may include a microphone, joystick, game pad, satellite dish, and scanner. A
conventional output device, such as monitor 270, is used to display information from the computer 20. Other output devices (not shown) can include a printer or speaker. Other hardware components shown in Figure 2 include an electronic tablet 250 and an accompanying stylus 255. The tablet 250 and stylus 255 are used to input handwriting strokes that can be converted to data, referred to as electronic ink. The electronic ink may be incorporated into an electronic document 220 and may be displayed on either the
8 electronic tablet 250, the monitor 270, or both. Although the electronic tablet 250 and the monitor 270 are illustrated as being distinct, in an exemplary embodiment of the present invention, they can be integrated into a single component. The joint tablet/monitor component has the ability to display information and receive input from the stylus 255.
In the representative architecture 200 all of the hardware components are coupled to an ink processing software module 225. The ink-processing module 225 is operable to receive data from the electronic tablet 250 and to render that data as electronic ink. In one embodiment of the present invention, the ink-processing module 225 can be a collection of software modules that perform different tasks for rendering handwriting strokes as electronic ink. For example, the stylus and ink module 228 can receive data describing the positions and angles of the stylus for a series of handwriting strokes. The stylus and ink module 228 can interpret the data for rendering electronic ink.
Other software modules, such as a gesture recognizer 230 and word recognizer 235 can be designed to identify certain handwriting strokes and assign them a particular significance.
For example, certain gestures such as a cross-out may be recognized and associated with other editing processes. The ink-processing module 225 can also include an erasing functions module 240 for removing electronic ink that has been previously rendered.
Although ink processing modules are known in the art and necessary for an electronic tablet to function, a novel document editing module has been developed by the Microsoft Corporation of Redmond, Washington that capitalizes on the benefits of handwriting processing technology. The module (i.e., document editor) is a free-form document editor that leverages the functionality of electronic handwriting technology to enable more effective and efficient note taking. Specifically, document editing module 205 facilitates manipulating electronic ink so that a user can create and modify an electronic document 220 with greater ease and sophistication. The document editing module 205 typically comprises a collection of software modules for controlling and manipulating electronic ink rendered on the monitor 270. For example, a parsing module 210 can be used to identify handwriting strokes that are selected by the user for editing.
Selected strokes may by highlighted or shaded to assist the user in identifying which
In the representative architecture 200 all of the hardware components are coupled to an ink processing software module 225. The ink-processing module 225 is operable to receive data from the electronic tablet 250 and to render that data as electronic ink. In one embodiment of the present invention, the ink-processing module 225 can be a collection of software modules that perform different tasks for rendering handwriting strokes as electronic ink. For example, the stylus and ink module 228 can receive data describing the positions and angles of the stylus for a series of handwriting strokes. The stylus and ink module 228 can interpret the data for rendering electronic ink.
Other software modules, such as a gesture recognizer 230 and word recognizer 235 can be designed to identify certain handwriting strokes and assign them a particular significance.
For example, certain gestures such as a cross-out may be recognized and associated with other editing processes. The ink-processing module 225 can also include an erasing functions module 240 for removing electronic ink that has been previously rendered.
Although ink processing modules are known in the art and necessary for an electronic tablet to function, a novel document editing module has been developed by the Microsoft Corporation of Redmond, Washington that capitalizes on the benefits of handwriting processing technology. The module (i.e., document editor) is a free-form document editor that leverages the functionality of electronic handwriting technology to enable more effective and efficient note taking. Specifically, document editing module 205 facilitates manipulating electronic ink so that a user can create and modify an electronic document 220 with greater ease and sophistication. The document editing module 205 typically comprises a collection of software modules for controlling and manipulating electronic ink rendered on the monitor 270. For example, a parsing module 210 can be used to identify handwriting strokes that are selected by the user for editing.
Selected strokes may by highlighted or shaded to assist the user in identifying which
9 strokes are to be edited. A classifier module 215 can identify certain handwriting strokes as being part of a word or drawing and may designate document objects accordingly.
Software modules such as the layout module 216 and the collision resolution module 217 can be designed to control how objects move about a page.
Exemplary embodiments of the present invention relate most directly to managing the layout in an electronic document by resolving object collisions. The functionality of embodiments may be performed by a collision resolution module 217 or may be fully integrated into the operation of the document editing module 205. Figures 1 and 2 provide a general overview of the environments in which the inventors contemplate exemplary embodiments of the present invention will be used.
Figure 3 presents an exemplary embodiment of a free-form electronic document screen 300 with document objects. A document object 302 is an outline object and includes an outline heading 310 and outline text 312. Below the outline object is a drawing object 306 and beneath that object is a text object 308 containing a heading 314 and a list of items 316. To the right of the outline object 302 is a handwriting object 304.
The handwriting object 304 illustrates an object that may have been added to the document using a stylus and electronic tablet. Each of these four objects can be moved about the page, resized, or edited, or a new object may be added to the page.
Figure 3 depicts document objects with rectangular boundaries. One skilled in the art would appreciate that object boundaries may also be defined as co-extensive with the object contents.
Figure 4 presents an exemplary free-form electronic document screen 400 with an outline object 402, a handwriting object 404, a drawing object 406, and a text object 408.
This screen is similar to the screen depicted in Figure 3. However, Figure 4 shows that the outline object 402 has been modified; text has been added to the outline object, for example, by using a keyboard- When text was added to the outline, the outline object 402 grew and overlapped the drawing object 406. This overlap is depicted by the cross-hatched region 410. This overlap is the result of a document collision. One skilled in the art would appreciate that collision rules other than overlapping can be used, e.g., when one object comes within a small distance of another.
In an exemplary embodiment of the present invention a determination is made every time a document page is modified as to whether a document object collision has occurred. Modifications include editing an object (illustrated in Figure 4), resizing an object, moving an object, or adding an object. If a document object collision is determined, then the resolution process is triggered.
The cross-hatched region 410 representing a document object overlap in Figure has a width "X" 414 and a height "Y" 412. In an exemplary embodiment of the present invention the shortest distance needed to move the drawing object 406 to resolve the collision is determined. In an embodiment of the present invention, the collision is resolved in real time and the object hit by the edited, moved, resized, or added object is moved the shortest distance. In the collision illustrated in Figure 4, the height 412 of the collision region 410 is less than the width 414 of the region, so the shortest distance the drawing object 406 can move to resolve the collision is the distance represented by Y.
Accordingly, in an exemplary embodiment of the present invention, the object is moved straight down. The example in Figure 4 depicts a collision between objects whose boundaries are represented by rectangular boxes. One skilled in the art would realize that in another embodiment, an object's boundaries could be defined by the boundaries of the object content. In that case, a collision rule could define a collision as when content of one object overlaps content of another object.
Figure 5 depicts an exemplary free-form document screen 500 as it may look after the collision illustrated in Figure 4 is resolved by an exemplary embodiment of the present invention. The outline object 502, which collided with a drawing object 506 when text was added to the outline object 502, may remain in the same position as when the collision occurs. The drawing object 506 moves straight down the page from its pre-collision location on the page, depicted by the gray shaded box 508, to its new location, depicted by the dash-lined box 506. When the initial collision depicted in Figure 4 is resolved in this example, the resulting movement caused a secondary collision between II
the drawing object 506 and the text object 510. The collision is illustrated by the overlap region 512, shown cross-hatched in Figure 5. An exemplary embodiment of the present invention, after resolving the initial collision, will determine if the resolution resulted in additional collisions. If additional collisions are identified, the additional collisions are resolved. This process of determining and resolving collisions ends when no more collisions exist.
Figure 6 depicts an exemplary free-form document screen 600 as it may look after the secondary collision illustrated in Figure 5 is resolved by an exemplary embodiment of the present invention. The drawing object 606, which collided with a text object 608 after the initial collision is resolved, may remain in the same position as when the secondary collision occurs. The text object 608 may be moved straight down the page from a pre-collision location on the page, depicted by the gray shaded box 610, to a new location, depicted by the dash-lined box 608. The outline object 602 and the handwriting object 604 may not be affected by the collision resolution.
Figure 7 presents an exemplary free-form electronic document screen 700 with an outline object 702, a handwriting object 704, a drawing object 706, and a text object 708.
Figure 7 depicts the free-form screen after a collision between drawing object 706 and text object 708. This collision could have occurred, for example, by increasing the size of the drawing object 706. Following a page modification, including resizing an object, the present invention makes a layout pass to identify any collisions. In the example in Figure 7, the overlap region 710 represents the results of a collision. An exemplary embodiment of the present invention compares the width of the overlap region X
with the height of the overlap region Y 714. In the illustration in Figure 7, X is less than Y, meaning that the shorter distance for resolving the collision is to the side, i.e., moving the text object 708 to the right moves the object the shortest distance while resolving the collision between the drawing object 706 and the test object 708. Figure 7 depicts document objects with rectangular boundaries. One skilled in the art would appreciate that object boundaries may also be defined as co-extensive with the object contents and a collision rule could define a collision as when content of one object overlaps content of another object.
Figure 8 depicts an exemplary free-form electronic screen 800 as it may look after the collision illustrated in Figure 7 is resolved. The text object 808 is moved straight to the right from its pre-collision location on the page, depicted by the gray shaded box 810, to its new location, depicted by the dash-lined box 808. The outline object 802 and the handwriting object 804 may not be affected by the collision resolution. The exemplary resolution depicted in Figure 8 shows the resulting location of text object 808 is fully within the electronic screen 800. In an exemplary embodiment of the present invention, if only a section of an object moved to the side following a collision resolution with a width less than one inch remains on the screen, then the object may not be moved to the side. Instead, the object may be moved straight down from its original location. One skilled in the art would appreciate that a variety of rules can be established for managing objects that move partly or completely outside the screen boundaries.
An exemplary embodiment of the present invention may maintain information on objects' original positions. If a collision resolution operation moves an object, and later editing, moving, or resizing objects opens up the original position of the moved object, i.e., space on the document page originally occupied by the document object is free of any other document object, that object can be returned to its original location. Figure 9 presents an exemplary free-form electronic document screen 900 illustrating the return of an object to its original position, using the collision resolution depicted in Figure 8.
Figure 9 shows the screen layout after the drawing object 806 that caused the collision in Figure 8 is moved or deleted. In this case, the text object 906 returns to its pre-collision location, illustrated by the gray shaded box in Figure 9.
Figure 10 is a flow chart depicting an exemplary method for resolving document object collisions. The method begins at start block 1000 and proceeds to decision block 1002, where the method determines if a layout change is detected, caused by resizing, editing or moving an existing object or adding a new document object. If a layout change is detected, then a layout pass is performed in step 1004 by the document editor.
Otherwise, the method branches to end block 1024 and terminates. In decision block 1006, a determination is made as to whether any collision resulted from the layout change. If no collision occurred, the method branches to end block 1024 and terminates.
If a collision did result from the layout change, the method moves to step 1008.
In step 1008, the original location of the object is recorded. Also in step 1008, the distance in the side-to-side direction of the page and the distance in the top-to-bottom direction of the page necessary to move the second object (the object hit as a result of the layout change) to resolve the collision is measured. If the decision step 1010 determines that the side-to-side distance is greater than or equal to the top-to-bottom distance, the object is moved straight down, step 1012. If not, the object is moved straight to the side, step 1014. At decision block 1016, this exemplary embodiment of the present invention determines if, by moving the object to the side, the object has been moved off the screen, e.g., a minimum of one inch in width of the object must be within the screen limits to be considered on the screen. If the resolution of the collision moves the object off the screen, the object is instead moved straight down from its pre-collision location, step 1018. If the object remains on the screen, the method moves to step 1020, and the object remains moved to the side. After the object has been moved as part of resolving a collision, the method, in step 1022 determines if any other collisions exist, including secondary collisions resulting from moving the object to resolve an initial collision. If additional collisions exist, the process repeats, beginning at step 1008.
Otherwise, the method branches to end block 1024 and terminates. In one embodiment, the invention would return a moved object to its original location if the page is subsequently modified and the modification allows the object to return to its original location without causing a new collision.
In an alternative embodiment of the present invention, the moving an object to resolve a collision may not be desired. This alternative embodiment can best be described by reference to figures. Figure 11 depicts an exemplary free-form electronic document screen 1100 with four objects, a drawing object 1102, a handwriting object 1104, an outline object 1106, and a text object 1108. These objects can be edited, resized, moved, deleted, or a new object can be added to the page. In this alternative embodiment of the present invention, document objects that are moved on top of outline objects, added to an outline object's void space, or objects manually designated as "not able to collide" are not moved when a collision occurs. In these three cases, the alternative embodiment of the present invention encodes these objects with a designation that the method recognizes as meaning not to move the object if a collision needs to be resolved. One skilled in the art will appreciate that a variety of collision rules can be established for determining whether to move an object following a collision, i.e., designating a document object as "not able to collide." An outline object 1106 is characterized by a title 1110, multi-level text structure 1112, and void space 1114.
Figure 12 depicts the same free-form electronic document screen as depicted in Figure 11. However, the handwriting object is moved 1204 over on top of the outline object 1206. The handwriting object's original location is represented by the gray shaded.
area 1210. Once the handwriting object 1204 is moved on top of the outline object 1206, the characteristic of the handwriting object 1204 becomes designated by the alternative embodiment of the present invention as "not able to collide." If an object is edited, resized, moved, or added and it overlaps the handwriting object 1204, the collision will not be resolved.
Figure 13 -illustrates a collision that this alternative embodiment of the present invention may not resolve. During document editing, the drawing object 1302 is resized and overlaps the handwriting object 1304, but not the outline object 1306. The overlap region is depicted in the cross-hatched area 1310. Since the handwriting object 1304 had been moved over the outline object 1306 and became designated as "not able to collide,"
the alternative embodiment of the present invention will. not move the object.
However, if the resizing caused the drawing object 1302 to overlap with the outline object 1306, then the collision would be resolved and the outline object 1306 and handwriting object 1304 would move as one object.
Figure 14 is a flow chart depicting an exemplary method for resolving document object collisions. The method begins at start block 1400 and proceeds to decision block 1402, where the method determines if a layout change is detected, caused by resizing, editing or moving an existing object or adding a new document object. If a layout change is detected, then a layout pass is performed in step 1404 by the document editor.
Otherwise, the method branches to end block 1426 and terminates. In decision block 1406, a determination is made as to whether any collision resulted from the layout change. If no collision occurred, the method branches to end block 1426 and terminates.
If a collision did result from the layout change, the method moves to decision block 1408.
At decision block 1408, the method determines whether the document object has been designated as not able to collide. If the object has been designated as not able to collide, the method branches to end block 1426 and terminates. Otherwise, the method branches to step 1410.
In step 1410, the original location of the object is recorded. Also in step 1410, the distance in the side-to-side direction of the page and the distance in the top-to-bottom direction of the page necessary to move the second object (the object hit as a result of the layout change) to resolve the collision is measured. If the decision step 1412 determines that the side-to-side distance is greater than or equal to the top-to-bottom distance, the object is moved straight down, step 1414. If not, the object is moved straight to the side, step 1416. At decision block 1418, this alternative embodiment of the present invention determines if, by moving the object to the side, the object has been moved off the screen, e.g., a minimum of one inch in width of the object must be within the screen limits to be considered on the screen. If the resolution of the collision moves the object off the screen, the object is instead moved straight down from its pre-collision location, step 1420. If the object remains on the screen, the method moves to step 1422, and the object remains moved to the side. After the object has been moved as part of resolving a collision, the method, in step 1424 determines if any other collisions exist, including secondary collisions resulting from moving the object to resolve an initial collision. If additional collisions exist, the process repeats, beginning at step 1408.
Otherwise, the method branches to end block 1426 and terminates. In one embodiment, the invention would return a moved object to its original location if the page is subsequently modified and the modification allows the object to return to its original location without causing a new collision.
Software modules such as the layout module 216 and the collision resolution module 217 can be designed to control how objects move about a page.
Exemplary embodiments of the present invention relate most directly to managing the layout in an electronic document by resolving object collisions. The functionality of embodiments may be performed by a collision resolution module 217 or may be fully integrated into the operation of the document editing module 205. Figures 1 and 2 provide a general overview of the environments in which the inventors contemplate exemplary embodiments of the present invention will be used.
Figure 3 presents an exemplary embodiment of a free-form electronic document screen 300 with document objects. A document object 302 is an outline object and includes an outline heading 310 and outline text 312. Below the outline object is a drawing object 306 and beneath that object is a text object 308 containing a heading 314 and a list of items 316. To the right of the outline object 302 is a handwriting object 304.
The handwriting object 304 illustrates an object that may have been added to the document using a stylus and electronic tablet. Each of these four objects can be moved about the page, resized, or edited, or a new object may be added to the page.
Figure 3 depicts document objects with rectangular boundaries. One skilled in the art would appreciate that object boundaries may also be defined as co-extensive with the object contents.
Figure 4 presents an exemplary free-form electronic document screen 400 with an outline object 402, a handwriting object 404, a drawing object 406, and a text object 408.
This screen is similar to the screen depicted in Figure 3. However, Figure 4 shows that the outline object 402 has been modified; text has been added to the outline object, for example, by using a keyboard- When text was added to the outline, the outline object 402 grew and overlapped the drawing object 406. This overlap is depicted by the cross-hatched region 410. This overlap is the result of a document collision. One skilled in the art would appreciate that collision rules other than overlapping can be used, e.g., when one object comes within a small distance of another.
In an exemplary embodiment of the present invention a determination is made every time a document page is modified as to whether a document object collision has occurred. Modifications include editing an object (illustrated in Figure 4), resizing an object, moving an object, or adding an object. If a document object collision is determined, then the resolution process is triggered.
The cross-hatched region 410 representing a document object overlap in Figure has a width "X" 414 and a height "Y" 412. In an exemplary embodiment of the present invention the shortest distance needed to move the drawing object 406 to resolve the collision is determined. In an embodiment of the present invention, the collision is resolved in real time and the object hit by the edited, moved, resized, or added object is moved the shortest distance. In the collision illustrated in Figure 4, the height 412 of the collision region 410 is less than the width 414 of the region, so the shortest distance the drawing object 406 can move to resolve the collision is the distance represented by Y.
Accordingly, in an exemplary embodiment of the present invention, the object is moved straight down. The example in Figure 4 depicts a collision between objects whose boundaries are represented by rectangular boxes. One skilled in the art would realize that in another embodiment, an object's boundaries could be defined by the boundaries of the object content. In that case, a collision rule could define a collision as when content of one object overlaps content of another object.
Figure 5 depicts an exemplary free-form document screen 500 as it may look after the collision illustrated in Figure 4 is resolved by an exemplary embodiment of the present invention. The outline object 502, which collided with a drawing object 506 when text was added to the outline object 502, may remain in the same position as when the collision occurs. The drawing object 506 moves straight down the page from its pre-collision location on the page, depicted by the gray shaded box 508, to its new location, depicted by the dash-lined box 506. When the initial collision depicted in Figure 4 is resolved in this example, the resulting movement caused a secondary collision between II
the drawing object 506 and the text object 510. The collision is illustrated by the overlap region 512, shown cross-hatched in Figure 5. An exemplary embodiment of the present invention, after resolving the initial collision, will determine if the resolution resulted in additional collisions. If additional collisions are identified, the additional collisions are resolved. This process of determining and resolving collisions ends when no more collisions exist.
Figure 6 depicts an exemplary free-form document screen 600 as it may look after the secondary collision illustrated in Figure 5 is resolved by an exemplary embodiment of the present invention. The drawing object 606, which collided with a text object 608 after the initial collision is resolved, may remain in the same position as when the secondary collision occurs. The text object 608 may be moved straight down the page from a pre-collision location on the page, depicted by the gray shaded box 610, to a new location, depicted by the dash-lined box 608. The outline object 602 and the handwriting object 604 may not be affected by the collision resolution.
Figure 7 presents an exemplary free-form electronic document screen 700 with an outline object 702, a handwriting object 704, a drawing object 706, and a text object 708.
Figure 7 depicts the free-form screen after a collision between drawing object 706 and text object 708. This collision could have occurred, for example, by increasing the size of the drawing object 706. Following a page modification, including resizing an object, the present invention makes a layout pass to identify any collisions. In the example in Figure 7, the overlap region 710 represents the results of a collision. An exemplary embodiment of the present invention compares the width of the overlap region X
with the height of the overlap region Y 714. In the illustration in Figure 7, X is less than Y, meaning that the shorter distance for resolving the collision is to the side, i.e., moving the text object 708 to the right moves the object the shortest distance while resolving the collision between the drawing object 706 and the test object 708. Figure 7 depicts document objects with rectangular boundaries. One skilled in the art would appreciate that object boundaries may also be defined as co-extensive with the object contents and a collision rule could define a collision as when content of one object overlaps content of another object.
Figure 8 depicts an exemplary free-form electronic screen 800 as it may look after the collision illustrated in Figure 7 is resolved. The text object 808 is moved straight to the right from its pre-collision location on the page, depicted by the gray shaded box 810, to its new location, depicted by the dash-lined box 808. The outline object 802 and the handwriting object 804 may not be affected by the collision resolution. The exemplary resolution depicted in Figure 8 shows the resulting location of text object 808 is fully within the electronic screen 800. In an exemplary embodiment of the present invention, if only a section of an object moved to the side following a collision resolution with a width less than one inch remains on the screen, then the object may not be moved to the side. Instead, the object may be moved straight down from its original location. One skilled in the art would appreciate that a variety of rules can be established for managing objects that move partly or completely outside the screen boundaries.
An exemplary embodiment of the present invention may maintain information on objects' original positions. If a collision resolution operation moves an object, and later editing, moving, or resizing objects opens up the original position of the moved object, i.e., space on the document page originally occupied by the document object is free of any other document object, that object can be returned to its original location. Figure 9 presents an exemplary free-form electronic document screen 900 illustrating the return of an object to its original position, using the collision resolution depicted in Figure 8.
Figure 9 shows the screen layout after the drawing object 806 that caused the collision in Figure 8 is moved or deleted. In this case, the text object 906 returns to its pre-collision location, illustrated by the gray shaded box in Figure 9.
Figure 10 is a flow chart depicting an exemplary method for resolving document object collisions. The method begins at start block 1000 and proceeds to decision block 1002, where the method determines if a layout change is detected, caused by resizing, editing or moving an existing object or adding a new document object. If a layout change is detected, then a layout pass is performed in step 1004 by the document editor.
Otherwise, the method branches to end block 1024 and terminates. In decision block 1006, a determination is made as to whether any collision resulted from the layout change. If no collision occurred, the method branches to end block 1024 and terminates.
If a collision did result from the layout change, the method moves to step 1008.
In step 1008, the original location of the object is recorded. Also in step 1008, the distance in the side-to-side direction of the page and the distance in the top-to-bottom direction of the page necessary to move the second object (the object hit as a result of the layout change) to resolve the collision is measured. If the decision step 1010 determines that the side-to-side distance is greater than or equal to the top-to-bottom distance, the object is moved straight down, step 1012. If not, the object is moved straight to the side, step 1014. At decision block 1016, this exemplary embodiment of the present invention determines if, by moving the object to the side, the object has been moved off the screen, e.g., a minimum of one inch in width of the object must be within the screen limits to be considered on the screen. If the resolution of the collision moves the object off the screen, the object is instead moved straight down from its pre-collision location, step 1018. If the object remains on the screen, the method moves to step 1020, and the object remains moved to the side. After the object has been moved as part of resolving a collision, the method, in step 1022 determines if any other collisions exist, including secondary collisions resulting from moving the object to resolve an initial collision. If additional collisions exist, the process repeats, beginning at step 1008.
Otherwise, the method branches to end block 1024 and terminates. In one embodiment, the invention would return a moved object to its original location if the page is subsequently modified and the modification allows the object to return to its original location without causing a new collision.
In an alternative embodiment of the present invention, the moving an object to resolve a collision may not be desired. This alternative embodiment can best be described by reference to figures. Figure 11 depicts an exemplary free-form electronic document screen 1100 with four objects, a drawing object 1102, a handwriting object 1104, an outline object 1106, and a text object 1108. These objects can be edited, resized, moved, deleted, or a new object can be added to the page. In this alternative embodiment of the present invention, document objects that are moved on top of outline objects, added to an outline object's void space, or objects manually designated as "not able to collide" are not moved when a collision occurs. In these three cases, the alternative embodiment of the present invention encodes these objects with a designation that the method recognizes as meaning not to move the object if a collision needs to be resolved. One skilled in the art will appreciate that a variety of collision rules can be established for determining whether to move an object following a collision, i.e., designating a document object as "not able to collide." An outline object 1106 is characterized by a title 1110, multi-level text structure 1112, and void space 1114.
Figure 12 depicts the same free-form electronic document screen as depicted in Figure 11. However, the handwriting object is moved 1204 over on top of the outline object 1206. The handwriting object's original location is represented by the gray shaded.
area 1210. Once the handwriting object 1204 is moved on top of the outline object 1206, the characteristic of the handwriting object 1204 becomes designated by the alternative embodiment of the present invention as "not able to collide." If an object is edited, resized, moved, or added and it overlaps the handwriting object 1204, the collision will not be resolved.
Figure 13 -illustrates a collision that this alternative embodiment of the present invention may not resolve. During document editing, the drawing object 1302 is resized and overlaps the handwriting object 1304, but not the outline object 1306. The overlap region is depicted in the cross-hatched area 1310. Since the handwriting object 1304 had been moved over the outline object 1306 and became designated as "not able to collide,"
the alternative embodiment of the present invention will. not move the object.
However, if the resizing caused the drawing object 1302 to overlap with the outline object 1306, then the collision would be resolved and the outline object 1306 and handwriting object 1304 would move as one object.
Figure 14 is a flow chart depicting an exemplary method for resolving document object collisions. The method begins at start block 1400 and proceeds to decision block 1402, where the method determines if a layout change is detected, caused by resizing, editing or moving an existing object or adding a new document object. If a layout change is detected, then a layout pass is performed in step 1404 by the document editor.
Otherwise, the method branches to end block 1426 and terminates. In decision block 1406, a determination is made as to whether any collision resulted from the layout change. If no collision occurred, the method branches to end block 1426 and terminates.
If a collision did result from the layout change, the method moves to decision block 1408.
At decision block 1408, the method determines whether the document object has been designated as not able to collide. If the object has been designated as not able to collide, the method branches to end block 1426 and terminates. Otherwise, the method branches to step 1410.
In step 1410, the original location of the object is recorded. Also in step 1410, the distance in the side-to-side direction of the page and the distance in the top-to-bottom direction of the page necessary to move the second object (the object hit as a result of the layout change) to resolve the collision is measured. If the decision step 1412 determines that the side-to-side distance is greater than or equal to the top-to-bottom distance, the object is moved straight down, step 1414. If not, the object is moved straight to the side, step 1416. At decision block 1418, this alternative embodiment of the present invention determines if, by moving the object to the side, the object has been moved off the screen, e.g., a minimum of one inch in width of the object must be within the screen limits to be considered on the screen. If the resolution of the collision moves the object off the screen, the object is instead moved straight down from its pre-collision location, step 1420. If the object remains on the screen, the method moves to step 1422, and the object remains moved to the side. After the object has been moved as part of resolving a collision, the method, in step 1424 determines if any other collisions exist, including secondary collisions resulting from moving the object to resolve an initial collision. If additional collisions exist, the process repeats, beginning at step 1408.
Otherwise, the method branches to end block 1426 and terminates. In one embodiment, the invention would return a moved object to its original location if the page is subsequently modified and the modification allows the object to return to its original location without causing a new collision.
Claims (20)
1. A computer-implemented method for resolving collisions between document objects on an electronic document page, the method comprising:
identifying the occurrence of a collision of a first document object and a second document object;
identifying, in response to the identified collision occurrence, a collision region comprising an overlapping area between the first document object and the second document object, the collision region having a first distance comprising a maximum length of the collision region in a side-to-side direction relative to the electronic document page and the collision region having a second distance comprising a maximum length of the collision region in a top-to-bottom direction relative to the electronic document page;
determining the shortest distance to move the second document object to resolve the collision wherein determining the shortest distance comprises;
determining the value of the first distance between the first document object and the second document object in the side-to-side direction relative to the electronic document page, determining the value of the second distance between the first document object and the second document object in the top-to-bottom direction relative to the electronic document page, setting a direction of the shortest distance to side-to-side if the first distance is less than the second distance, and setting the direction of the shortest distance to top-to-bottom if the first distance is greater than or equal to the second distance;
moving the second document object in the direction of the shortest distance;
recording the original location of the document object to be moved; and returning the document object to its original location if the document layout is further modified to allow the document object to return to its original location without resulting in a collision.
identifying the occurrence of a collision of a first document object and a second document object;
identifying, in response to the identified collision occurrence, a collision region comprising an overlapping area between the first document object and the second document object, the collision region having a first distance comprising a maximum length of the collision region in a side-to-side direction relative to the electronic document page and the collision region having a second distance comprising a maximum length of the collision region in a top-to-bottom direction relative to the electronic document page;
determining the shortest distance to move the second document object to resolve the collision wherein determining the shortest distance comprises;
determining the value of the first distance between the first document object and the second document object in the side-to-side direction relative to the electronic document page, determining the value of the second distance between the first document object and the second document object in the top-to-bottom direction relative to the electronic document page, setting a direction of the shortest distance to side-to-side if the first distance is less than the second distance, and setting the direction of the shortest distance to top-to-bottom if the first distance is greater than or equal to the second distance;
moving the second document object in the direction of the shortest distance;
recording the original location of the document object to be moved; and returning the document object to its original location if the document layout is further modified to allow the document object to return to its original location without resulting in a collision.
2. The method of claim 1, wherein identifying the occurrence of a collision of a first document object and a second document object is initiated by a page modification.
3. The method of claim 1, wherein identifying the occurrence of a collision of a first document object and a second document object is based on space occupied by the rectangular boundaries of at least one of the first document object or the second document object.
4. The method of claim 1, wherein identifying the occurrence of a collision of a first document object and a second document object is based on the space occupied by the content of at least one of the first document object or the second document object.
5. The method of claim 1, wherein identifying the occurrence of a collision of a first document object and a second document object is based on the document objects overlapping.
6. The method of claim 1, wherein identifying the occurrence of a collision of a first document object and a second document object is based on the document objects coming within a set distance of each other.
7. The method of claim 1, wherein moving the second document object comprises moving the second document object in a direction comprising one of the following: straight down and straight to one side.
8. The method of claim 1, further comprising:
recording the original location of the document object to be moved;
determining if a document object moved to the side to resolve a collision has been moved off the page; and moving a document object that was moved to the side to resolve a collision and as a result has been moved off the page straight down from its original location.
recording the original location of the document object to be moved;
determining if a document object moved to the side to resolve a collision has been moved off the page; and moving a document object that was moved to the side to resolve a collision and as a result has been moved off the page straight down from its original location.
9. The method of claim 1, further comprising repeating the stages in claim 1 until all collisions are resolved.
10. The method of claim 9, wherein identifying the occurrence of a collision of a first document object and a second document object is initiated by a page modification.
11. The method of claim 9, wherein identifying the occurrence of a collision of a first document object and a second document object is based on space occupied by the rectangular boundaries of at least one of the first document object or the second document object.
12. The method of claim 9, wherein identifying the occurrence of a collision of a first document object and a second document object is based on the space occupied by the content of at least one of the first document object or the second document object.
13. The method of claim 9, wherein identifying the occurrence of a collision of a first document object and a second document object is based on the document objects overlapping.
14. The method of claim 9, wherein identifying the occurrence of a collision of a first document object and a second document object is based on the document objects coming within a set distance of each other.
15. The method of claim 9, wherein moving the second document object comprises moving the second document object in a direction comprising one of the following: straight down and straight to one side.
16. The method of claim 9, further comprising:
recording the original location of the document object to be moved;
determining if a document object moved to the side to resolve a collision has been moved off the page; and moving a document object that was moved to the side to resolve a collision and as a result has been moved off the page straight down from its original location.
recording the original location of the document object to be moved;
determining if a document object moved to the side to resolve a collision has been moved off the page; and moving a document object that was moved to the side to resolve a collision and as a result has been moved off the page straight down from its original location.
17. The method of claim 1, further comprising:
determining if a document object is not able to move to resolve a collision; and skipping process steps related to resolving a collision for document objects not able to be moved to resolve a collision.
determining if a document object is not able to move to resolve a collision; and skipping process steps related to resolving a collision for document objects not able to be moved to resolve a collision.
18. A system for resolving collisions between document objects on an electronic document page, the system comprising:
a memory storage; and a processing unit coupled to the memory storage, wherein the processing unit is operative to:
identify the occurrence of a collision of a first document object and a second document object;
determine that the second document object has not been designated as not able to collide;
determine, in response to determining that the second document object has been designated as able to collide, the shortest distance to move the second document object to resolve the collision wherein the processing unit being operative to determine the shortest distance comprises the processing unit being operative to;
determine a first distance between the first document object and the second document object in a side-to-side direction relative to the electronic document page, determine a second distance between the first document object and the second document object in a top-to-bottom direction relative to the electronic document page, set a direction of the shortest distance to side-to-side if the first distance is less than the second distance, and set the direction of the shortest distance to top-to-bottom if the first distance is greater than or equal to the second distance;
move, in response to determining that the second document object has been designated as able to collide, the second document object in the direction of the shortest distance;
record the original location of the document object to be moved; and return the document object to its original location if the document layout is further modified to allow the document object to return to its original location without resulting in a collision.
a memory storage; and a processing unit coupled to the memory storage, wherein the processing unit is operative to:
identify the occurrence of a collision of a first document object and a second document object;
determine that the second document object has not been designated as not able to collide;
determine, in response to determining that the second document object has been designated as able to collide, the shortest distance to move the second document object to resolve the collision wherein the processing unit being operative to determine the shortest distance comprises the processing unit being operative to;
determine a first distance between the first document object and the second document object in a side-to-side direction relative to the electronic document page, determine a second distance between the first document object and the second document object in a top-to-bottom direction relative to the electronic document page, set a direction of the shortest distance to side-to-side if the first distance is less than the second distance, and set the direction of the shortest distance to top-to-bottom if the first distance is greater than or equal to the second distance;
move, in response to determining that the second document object has been designated as able to collide, the second document object in the direction of the shortest distance;
record the original location of the document object to be moved; and return the document object to its original location if the document layout is further modified to allow the document object to return to its original location without resulting in a collision.
19. The system of claim 18, wherein the processing unit is further operative to determine that the second document object has not been designated as not able to collide based upon a determination that no user input has been received designating that the second document object is not to be moved when a collision occurs.
20. A computer-readable medium which stores a set of instructions which when executed performs a method for resolving collisions between document objects on an electronic document page, the method executed by the set of instructions comprising:
identifying the occurrence of a collision of a first document object and a second document object;
determining that the second document object has been designated as able to collide;
identifying, in response to the identified collision occurrence and in response to determining that the second document object has been designated as able to collide, a collision region comprising an overlapping area between the first document object and the second document object, the collision region having a first distance comprising a maximum length of the collision region in a side-to-side direction relative to the electronic document page and the collision region having a second distance comprising a maximum length of the collision region in a top-to-bottom direction relative to the electronic document page;
determining, in response to determining that the second document object has been designated as able to collide, the shortest distance to move the second document object to resolve the collision wherein determining the shortest distance comprises;
determining the value of the first distance between the first document object and the second document object in the side-to-side direction relative to the electronic document page, determining the value of the second distance between the first document object and the second document object in the top-to-bottom direction relative to the electronic document page, setting a direction of the shortest distance to side-to-side if the first distance is less than the second distance, and setting the direction of the shortest distance to top-to-bottom if the first distance is greater than or equal to the second distance;
moving, in response to determining that the second document object has been designated as able to collide, the second document object in the direction of the shortest distance;
recording the original location of the document object to be moved; and returning the document object to its original location if the document layout is further modified to allow the document object to return to its original location without resulting in a collision.
identifying the occurrence of a collision of a first document object and a second document object;
determining that the second document object has been designated as able to collide;
identifying, in response to the identified collision occurrence and in response to determining that the second document object has been designated as able to collide, a collision region comprising an overlapping area between the first document object and the second document object, the collision region having a first distance comprising a maximum length of the collision region in a side-to-side direction relative to the electronic document page and the collision region having a second distance comprising a maximum length of the collision region in a top-to-bottom direction relative to the electronic document page;
determining, in response to determining that the second document object has been designated as able to collide, the shortest distance to move the second document object to resolve the collision wherein determining the shortest distance comprises;
determining the value of the first distance between the first document object and the second document object in the side-to-side direction relative to the electronic document page, determining the value of the second distance between the first document object and the second document object in the top-to-bottom direction relative to the electronic document page, setting a direction of the shortest distance to side-to-side if the first distance is less than the second distance, and setting the direction of the shortest distance to top-to-bottom if the first distance is greater than or equal to the second distance;
moving, in response to determining that the second document object has been designated as able to collide, the second document object in the direction of the shortest distance;
recording the original location of the document object to be moved; and returning the document object to its original location if the document layout is further modified to allow the document object to return to its original location without resulting in a collision.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/186,812 | 2002-06-28 | ||
US10/186,812 US7188309B2 (en) | 2002-06-28 | 2002-06-28 | Resolving document object collisions |
Publications (2)
Publication Number | Publication Date |
---|---|
CA2431518A1 CA2431518A1 (en) | 2003-12-28 |
CA2431518C true CA2431518C (en) | 2011-03-22 |
Family
ID=29718029
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CA2431518A Expired - Fee Related CA2431518C (en) | 2002-06-28 | 2003-06-09 | Resolving document object collisions |
Country Status (4)
Country | Link |
---|---|
US (1) | US7188309B2 (en) |
EP (1) | EP1376384A3 (en) |
JP (1) | JP4271512B2 (en) |
CA (1) | CA2431518C (en) |
Families Citing this family (57)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6337698B1 (en) * | 1998-11-20 | 2002-01-08 | Microsoft Corporation | Pen-based interface for a notepad computer |
US7185278B1 (en) * | 2002-06-28 | 2007-02-27 | Microsoft Corporation | Separating and moving document objects using the movement of a wiper bar |
US7079713B2 (en) | 2002-06-28 | 2006-07-18 | Microsoft Corporation | Method and system for displaying and linking ink objects with recognized text and objects |
US7174042B1 (en) | 2002-06-28 | 2007-02-06 | Microsoft Corporation | System and method for automatically recognizing electronic handwriting in an electronic document and converting to text |
US7751623B1 (en) | 2002-06-28 | 2010-07-06 | Microsoft Corporation | Writing guide for a free-form document editor |
US7259752B1 (en) | 2002-06-28 | 2007-08-21 | Microsoft Corporation | Method and system for editing electronic ink |
US7188309B2 (en) | 2002-06-28 | 2007-03-06 | Microsoft Corporation | Resolving document object collisions |
JP4241325B2 (en) * | 2002-12-25 | 2009-03-18 | セイコーエプソン株式会社 | Layout system |
JP4145805B2 (en) * | 2003-03-17 | 2008-09-03 | セイコーエプソン株式会社 | Template generation system, layout system, template generation program, layout program, template generation method, and layout method |
US7945855B2 (en) * | 2003-03-24 | 2011-05-17 | Microsoft Corporation | Smart space insertion |
JP2005032098A (en) * | 2003-07-09 | 2005-02-03 | Canon Inc | Method, program, and device for preparing slip |
US7360157B1 (en) | 2003-09-19 | 2008-04-15 | Microsoft Corporation | Aligning content in an electronic document |
US7358965B2 (en) * | 2004-02-18 | 2008-04-15 | Microsoft Corporation | Tapping to create writing |
US7721226B2 (en) * | 2004-02-18 | 2010-05-18 | Microsoft Corporation | Glom widget |
US20050179647A1 (en) * | 2004-02-18 | 2005-08-18 | Microsoft Corporation | Automatic detection and switching between input modes |
US7659890B2 (en) * | 2004-03-19 | 2010-02-09 | Microsoft Corporation | Automatic height adjustment for electronic highlighter pens and mousing devices |
JP4047326B2 (en) * | 2004-11-25 | 2008-02-13 | キヤノン株式会社 | Layout device, layout method, and program |
JP4663308B2 (en) * | 2004-12-17 | 2011-04-06 | 株式会社リコー | Information masking device |
JP4144806B2 (en) * | 2005-08-30 | 2008-09-03 | 株式会社プロフィールド | Information editing apparatus, information editing system, information editing method, and program |
US7779362B1 (en) * | 2005-09-02 | 2010-08-17 | Adobe Systems Inc. | Methods and apparatus for selecting objects by state |
US7526737B2 (en) * | 2005-11-14 | 2009-04-28 | Microsoft Corporation | Free form wiper |
JP4345737B2 (en) * | 2005-11-14 | 2009-10-14 | セイコーエプソン株式会社 | Digital content creation system, digital content creation method and program |
US7734995B1 (en) * | 2005-12-01 | 2010-06-08 | Adobe Systems Incorporated | Systems and methods for assembling form fragments and templates into a form package |
US20070162848A1 (en) * | 2006-01-09 | 2007-07-12 | Apple Computer, Inc. | Predictive styling |
US20070162844A1 (en) * | 2006-01-12 | 2007-07-12 | Microsoft Corporation | Automatic layout of objects |
US8250486B2 (en) * | 2006-01-19 | 2012-08-21 | International Business Machines Corporation | Computer controlled user interactive display interface for accessing graphic tools with a minimum of display pointer movement |
US7477263B2 (en) * | 2006-03-10 | 2009-01-13 | International Business Machines Corporation | Relayout of all or part of a graph in association with a change in state of a graph element |
KR100765781B1 (en) * | 2006-04-13 | 2007-10-12 | 삼성전자주식회사 | Method and apparatus for generating xhtml data |
US8212805B1 (en) | 2007-01-05 | 2012-07-03 | Kenneth Banschick | System and method for parametric display of modular aesthetic designs |
US20080215967A1 (en) * | 2007-02-23 | 2008-09-04 | Tabblo, Inc. | Method and system for online transformation using an image URL application programming interface (API) |
US20080215965A1 (en) * | 2007-02-23 | 2008-09-04 | Tabblo, Inc. | Method for modifying an initial layout of story elements in a user-generated online story |
US8358320B2 (en) * | 2007-11-02 | 2013-01-22 | National University Of Singapore | Interactive transcription system and method |
US8359549B1 (en) * | 2008-09-10 | 2013-01-22 | Adobe Systems Incorporated | Multiple-function user interactive tool for manipulating three-dimensional objects in a graphical user interface environment |
US8924888B2 (en) * | 2008-11-13 | 2014-12-30 | SAP France S.A. | Dynamic data object insertion |
JP5371560B2 (en) * | 2009-06-09 | 2013-12-18 | キヤノン株式会社 | Layout editing apparatus, layout editing method and program |
US9092755B2 (en) * | 2011-05-31 | 2015-07-28 | Adobe Systems Incorporated | System and method for adding items in a structured document |
US20120311423A1 (en) * | 2011-06-06 | 2012-12-06 | Microsoft Corporation | Dynamically Controlling Collisions of Form Controls in an Electronic Document |
US9223761B2 (en) * | 2011-11-04 | 2015-12-29 | Microsoft Technology Licensing, Llc | Real time visual feedback during move, resize and/or rotate actions in an electronic document |
JP5875897B2 (en) * | 2012-03-05 | 2016-03-02 | アズビル株式会社 | Graphic screen creation device, graphic screen creation method, and graphic screen creation program |
US9548042B2 (en) * | 2012-06-28 | 2017-01-17 | Adobe Systems Incorporated | Responsive document breakpoints systems and methods |
KR101278082B1 (en) * | 2012-12-11 | 2013-06-24 | 주식회사 한글과컴퓨터 | Object collision recognition based electronic document editing apparatus and method |
US9199643B1 (en) * | 2014-09-25 | 2015-12-01 | GM Global Technology Operations LLC | Sensor odometry and application in crash avoidance vehicle |
US10275142B2 (en) * | 2014-10-29 | 2019-04-30 | International Business Machines Corporation | Managing content displayed on a touch screen enabled device |
KR20160062565A (en) | 2014-11-25 | 2016-06-02 | 삼성전자주식회사 | Device and method for providing handwritten content |
KR102476103B1 (en) * | 2015-11-13 | 2022-12-12 | 삼성전자주식회사 | Operating Method for Sharing Content and electronic device supporting the same |
US10489495B2 (en) * | 2016-06-28 | 2019-11-26 | Hancom Inc. | Document collaboration apparatus for supporting simultaneous editing of styles for objects and operating method thereof |
US10802664B2 (en) * | 2017-03-01 | 2020-10-13 | Adobe Inc. | Dynamic layout design |
KR101965563B1 (en) * | 2017-03-17 | 2019-04-04 | 주식회사 인프라웨어 | Method and apparatus editing electronic documents |
KR101880507B1 (en) * | 2017-04-21 | 2018-07-20 | 주식회사 한글과컴퓨터 | Client terminal device that supports resizing of a figure embedded in a web document and operating method thereof |
KR101809457B1 (en) * | 2017-04-21 | 2017-12-15 | 주식회사 한글과컴퓨터 | Client terminal device supporting editing of a web document and operating method thereof |
KR101880508B1 (en) * | 2017-04-27 | 2018-07-20 | 주식회사 한글과컴퓨터 | Web document editing support apparatus and method for supporting list generation in web documents |
KR101809459B1 (en) * | 2017-05-10 | 2017-12-15 | 주식회사 한글과컴퓨터 | Web document conversion support apparatus that can maintain decorating effect applied to original image and operating method thereof |
KR101774257B1 (en) | 2017-05-15 | 2017-09-04 | 주식회사 한글과컴퓨터 | Document editing apparatus for maintaining style of object and operating method thereof |
KR101809460B1 (en) * | 2017-05-15 | 2017-12-15 | 주식회사 한글과컴퓨터 | Client terminal device capable of pasting external content to a web document according to a style attribute supported by the web document editing tool and operating method thereof |
US11036914B2 (en) * | 2017-06-29 | 2021-06-15 | Salesforce.Com, Inc. | Automatic layout engine |
KR101999322B1 (en) * | 2017-12-05 | 2019-07-11 | 주식회사 한글과컴퓨터 | Collaboration method and apparatus |
KR101991297B1 (en) * | 2018-04-16 | 2019-06-20 | 주식회사 한글과컴퓨터 | Web-based document editing support apparatus for customizing document editing interface and operating method thereof |
Family Cites Families (71)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US2354332A (en) | 1942-05-22 | 1944-07-25 | Wladimir J Polydoroff | Loop antenna |
GB8919283D0 (en) | 1989-08-24 | 1989-10-04 | Phase Track Limited | Active loop antenna |
JPH03270403A (en) | 1990-03-20 | 1991-12-02 | Seiko Epson Corp | Antenna circuit and compact portable radio equipment |
US5339391A (en) | 1990-05-14 | 1994-08-16 | Microelectronics And Computer Technology Corporation | Computer display unit with attribute enhanced scroll bar |
US5347295A (en) | 1990-10-31 | 1994-09-13 | Go Corporation | Control of a computer through a position-sensed stylus |
US5491495A (en) | 1990-11-13 | 1996-02-13 | Wang Laboratories, Inc. | User interface having simulated devices |
US5442742A (en) | 1990-12-21 | 1995-08-15 | Apple Computer, Inc. | Method and apparatus for the manipulation of text on a computer display screen |
US5220649A (en) | 1991-03-20 | 1993-06-15 | Forcier Mitchell D | Script/binary-encoded-character processing method and system with moving space insertion mode |
US5953735A (en) | 1991-03-20 | 1999-09-14 | Forcier; Mitchell D. | Script character processing method and system with bit-mapped document editing |
US5327342A (en) | 1991-03-31 | 1994-07-05 | Roy Prannoy L | Method and apparatus for generating personalized handwriting |
US5946406A (en) | 1991-06-17 | 1999-08-31 | Microsoft Corporation | Method and system for data entry of handwritten symbols |
US5539427A (en) * | 1992-02-10 | 1996-07-23 | Compaq Computer Corporation | Graphic indexing system |
US5583542A (en) | 1992-05-26 | 1996-12-10 | Apple Computer, Incorporated | Method for deleting objects on a computer display |
US5321768A (en) * | 1992-09-22 | 1994-06-14 | The Research Foundation, State University Of New York At Buffalo | System for recognizing handwritten character strings containing overlapping and/or broken characters |
US5428805A (en) | 1992-12-22 | 1995-06-27 | Morgan; Michael W. | Method and apparatus for recognizing and performing handwritten calculations |
JPH0773190A (en) | 1993-04-29 | 1995-03-17 | Matsushita Electric Ind Co Ltd | Pictograph naming for pen base computer system |
US5559942A (en) | 1993-05-10 | 1996-09-24 | Apple Computer, Inc. | Method and apparatus for providing a note for an application program |
US5613019A (en) | 1993-05-20 | 1997-03-18 | Microsoft Corporation | System and methods for spacing, storing and recognizing electronic representations of handwriting, printing and drawings |
US5517578A (en) | 1993-05-20 | 1996-05-14 | Aha! Software Corporation | Method and apparatus for grouping and manipulating electronic representations of handwriting, printing and drawings |
US6535897B1 (en) * | 1993-05-20 | 2003-03-18 | Microsoft Corporation | System and methods for spacing, storing and recognizing electronic representations of handwriting printing and drawings |
US5500937A (en) | 1993-09-08 | 1996-03-19 | Apple Computer, Inc. | Method and apparatus for editing an inked object while simultaneously displaying its recognized object |
JP2521035B2 (en) * | 1993-12-03 | 1996-07-31 | インターナショナル・ビジネス・マシーンズ・コーポレイション | Placing annotations on the display |
JPH07200155A (en) | 1993-12-10 | 1995-08-04 | Microsoft Corp | Detection of nonobjective result of pen-type computer system |
US6154758A (en) | 1994-05-13 | 2000-11-28 | Apple Computer, Inc. | Text conversion method for computer systems |
US5760773A (en) | 1995-01-06 | 1998-06-02 | Microsoft Corporation | Methods and apparatus for interacting with data objects using action handles |
US6295372B1 (en) | 1995-03-03 | 2001-09-25 | Palm, Inc. | Method and apparatus for handwriting input on a pen based palmtop computing device |
US5801702A (en) | 1995-03-09 | 1998-09-01 | Terrabyte Technology | System and method for adding network links in a displayed hierarchy |
US5649133A (en) * | 1995-06-13 | 1997-07-15 | Apple Computer, Inc. | Method for collision avoidance for user interface for object with multiple handles |
US5838819A (en) | 1995-11-14 | 1998-11-17 | Lucent Technologies Inc. | System and method for processing and managing electronic copies of handwritten notes |
US6081829A (en) | 1996-01-31 | 2000-06-27 | Silicon Graphics, Inc. | General purpose web annotations without modifying browser |
US5864635A (en) | 1996-06-14 | 1999-01-26 | International Business Machines Corporation | Distinguishing gestures from handwriting in a pen based computer by stroke analysis |
JP3829366B2 (en) | 1996-07-16 | 2006-10-04 | カシオ計算機株式会社 | Input device and input method |
US5838326A (en) * | 1996-09-26 | 1998-11-17 | Xerox Corporation | System for moving document objects in a 3-D workspace |
US6304272B1 (en) * | 1996-12-10 | 2001-10-16 | Micrografx, Inc. | Graphics system and method having objects conformed to a template |
US6069626A (en) | 1997-02-27 | 2000-05-30 | International Business Machines Corporation | Method and apparatus for improved scrolling functionality in a graphical user interface utilizing a transparent scroll bar icon |
US5874957A (en) | 1997-02-28 | 1999-02-23 | International Business Machines Corporation | Method and apparatus for improved scrolling functionality in a graphical user interface utilizing a software tether |
US5970455A (en) | 1997-03-20 | 1999-10-19 | Xerox Corporation | System for capturing and retrieving audio data and corresponding hand-written notes |
US6128633A (en) | 1997-03-25 | 2000-10-03 | Microsoft Corporation | Method and system for manipulating page-breaks in an electronic document |
US6061472A (en) | 1997-06-06 | 2000-05-09 | Microsoft Corporation | Method and mechanism to reduce handwriting recognizer errors using multiple decision trees |
US6279014B1 (en) | 1997-09-15 | 2001-08-21 | Xerox Corporation | Method and system for organizing documents based upon annotations in context |
US6223145B1 (en) | 1997-11-26 | 2001-04-24 | Zerox Corporation | Interactive interface for specifying searches |
US6154219A (en) * | 1997-12-01 | 2000-11-28 | Microsoft Corporation | System and method for optimally placing labels on a map |
US6091395A (en) | 1997-12-15 | 2000-07-18 | International Business Machines Corporation | Computer system and method of manipulating a graphical user interface component on a computer display through collision with a pointer |
US6112216A (en) | 1997-12-19 | 2000-08-29 | Microsoft Corporation | Method and system for editing a table in a document |
WO1999056198A2 (en) | 1998-04-24 | 1999-11-04 | Natural Input Solutions Inc. | Pen based edit correction interface method and apparatus |
US6219028B1 (en) * | 1998-08-19 | 2001-04-17 | Adobe Systems Incorporated | Removing a cursor from over new content |
US6188405B1 (en) | 1998-09-14 | 2001-02-13 | Microsoft Corporation | Methods, apparatus and data structures for providing a user interface, which exploits spatial memory, to objects |
US6345389B1 (en) | 1998-10-21 | 2002-02-05 | Opentv, Inc. | Interactive television system and method for converting non-textual information to textual information by a remote server |
US6337698B1 (en) | 1998-11-20 | 2002-01-08 | Microsoft Corporation | Pen-based interface for a notepad computer |
US6529215B2 (en) | 1998-12-31 | 2003-03-04 | Fuji Xerox Co., Ltd. | Method and apparatus for annotating widgets |
US6487569B1 (en) | 1999-01-05 | 2002-11-26 | Microsoft Corporation | Method and apparatus for organizing notes on a limited resource computing device |
US6552719B2 (en) | 1999-01-07 | 2003-04-22 | Microsoft Corporation | System and method for automatically switching between writing and text input modes |
US6565611B1 (en) | 1999-02-26 | 2003-05-20 | Xerox Corporation | Automatic index creation for handwritten digital ink notes |
US6333994B1 (en) * | 1999-03-31 | 2001-12-25 | International Business Machines Corporation | Spatial sorting and formatting for handwriting recognition |
AU5299700A (en) | 1999-05-27 | 2000-12-18 | America Online, Inc. | Keyboard system with automatic correction |
EP1269357A4 (en) * | 2000-02-22 | 2005-10-12 | Metacarta Inc | Spatially coding and displaying information |
US20020126153A1 (en) | 2000-03-13 | 2002-09-12 | Withers James G. | Apparatus and method for navigating electronic files using an array display |
US6355889B1 (en) | 2000-06-28 | 2002-03-12 | International Business Machines Corporation | Method and apparatus for linking electronic ink to electronic personal information systems |
US6836759B1 (en) | 2000-08-22 | 2004-12-28 | Microsoft Corporation | Method and system of handling the selection of alternates for recognized words |
US6891551B2 (en) | 2000-11-10 | 2005-05-10 | Microsoft Corporation | Selection handles in editing electronic documents |
US6741749B2 (en) | 2001-01-24 | 2004-05-25 | Advanced Digital Systems, Inc. | System, device, computer program product, and method for representing a plurality of electronic ink data points |
US6690364B1 (en) | 2001-05-31 | 2004-02-10 | Palm Source, Inc. | Method and system for on screen text correction via pen interface |
US7039234B2 (en) | 2001-07-19 | 2006-05-02 | Microsoft Corporation | Electronic ink as a software object |
US6661409B2 (en) | 2001-08-22 | 2003-12-09 | Motorola, Inc. | Automatically scrolling handwritten input user interface for personal digital assistants and the like |
US7096432B2 (en) | 2002-05-14 | 2006-08-22 | Microsoft Corporation | Write anywhere tool |
US20030214531A1 (en) | 2002-05-14 | 2003-11-20 | Microsoft Corporation | Ink input mechanisms |
US7925987B2 (en) | 2002-05-14 | 2011-04-12 | Microsoft Corporation | Entry and editing of electronic ink |
US7079713B2 (en) | 2002-06-28 | 2006-07-18 | Microsoft Corporation | Method and system for displaying and linking ink objects with recognized text and objects |
US7188309B2 (en) | 2002-06-28 | 2007-03-06 | Microsoft Corporation | Resolving document object collisions |
US7002560B2 (en) | 2002-10-04 | 2006-02-21 | Human Interface Technologies Inc. | Method of combining data entry of handwritten symbols with displayed character data |
US6989822B2 (en) | 2003-11-10 | 2006-01-24 | Microsoft Corporation | Ink correction pad |
-
2002
- 2002-06-28 US US10/186,812 patent/US7188309B2/en not_active Expired - Lifetime
-
2003
- 2003-05-21 EP EP03011548A patent/EP1376384A3/en not_active Withdrawn
- 2003-06-09 CA CA2431518A patent/CA2431518C/en not_active Expired - Fee Related
- 2003-06-27 JP JP2003185954A patent/JP4271512B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
EP1376384A3 (en) | 2007-03-14 |
CA2431518A1 (en) | 2003-12-28 |
EP1376384A2 (en) | 2004-01-02 |
JP4271512B2 (en) | 2009-06-03 |
US20040003350A1 (en) | 2004-01-01 |
JP2004046858A (en) | 2004-02-12 |
US7188309B2 (en) | 2007-03-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CA2431518C (en) | Resolving document object collisions | |
US7062090B2 (en) | Writing guide for a free-form document editor | |
US7770129B2 (en) | Viewable document section | |
CA2430802C (en) | Method and system for displaying and linking ink objects with recognized text and objects | |
US7167165B2 (en) | Temporary lines for writing | |
US7174042B1 (en) | System and method for automatically recognizing electronic handwriting in an electronic document and converting to text | |
EP1363231B1 (en) | Overlaying electronic ink | |
US9128919B2 (en) | Smart space insertion | |
US6938222B2 (en) | Ink gestures | |
US8181103B2 (en) | Annotation detection and anchoring on ink notes | |
EP1703364A2 (en) | Word or character boudary-based scratch-out gesture recognition | |
KR20100135281A (en) | Method and tool for recognizing a hand-drawn table | |
US7751623B1 (en) | Writing guide for a free-form document editor | |
US7149967B2 (en) | Method and system for creating a table version of a document | |
US9122654B2 (en) | Method and system for deriving and matching local formatting in an electronic document | |
US7370288B1 (en) | Method and system for selecting objects on a display device | |
US7185278B1 (en) | Separating and moving document objects using the movement of a wiper bar | |
US20040194030A1 (en) | Smart content insertion | |
US7423659B1 (en) | Method and system for utilizing void regions in computer-generated areas of text | |
US7296240B1 (en) | Document object membranes | |
JP2006072513A (en) | Document processor and program |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
EEER | Examination request | ||
MKLA | Lapsed |
Effective date: 20160609 |