Abstract:
A method by which a user may move windows from one location to another on a screen of a portable computing device is provided. In accordance with the method, when the device is in window manipulation mode, the user needs only tilt the device toward a destination location and the windows are moved toward that location Tilt detectors in the device sense an angle of tilt and provide the tilt angle as feedback to a processor. The processor, under proper software instructions, moves the windows toward the destination location on the screen based on the tilt angle. The greater the tilt angle, the faster the windows are moved toward the destination location.

Description:
BACKGROUND OF THE INVENTION 
       [0001]    1. Technical Field 
         [0002]    The present invention is generally directed to portable computing devices. More specifically, the present invention is directed toward a system, computer program product and method of manipulating windows on portable computing devices through motion. 
         [0003]    2. Description of Related Art 
         [0004]    A portable computing device is a small, portable computer that allows one to store, organize and access information. Portable computing devices include personal digital assistants (PDAs), tablet PCs (personal computers), cell phones etc. 
         [0005]    As is well known in the industry, a portable computing device may feature a scaled-down keyboard, a stylus (or pen), or both a keyboard and a pen. For example, a tablet PC is a fully-functional PC equipped with a sensitive screen designed to interact with a complementary pen. The pen is used to select, drag and open files as well as to handwrite notes. The Tablet PC includes software that translates the handwritten notes to computer readable data. 
         [0006]    Generally, a user uses both hands when interacting with a tablet PC. One hand may be used to hold the tablet PC while the other may be used to interact with the tablet PC. As with any other computer systems, the user may have more than one window opened on the tablet PC. In such cases, it can be rather cumbersome to move windows around on the screen. 
         [0007]    Thus, what is needed is a system, computer program product and method of moving windows from one location to another on a screen of a portable computing device using motion. 
       SUMMARY OF THE INVENTION 
       [0008]    The present invention provides a system, computer program product and method of manipulating windows on portable computing devices through motion. In accordance with the teachings of the invention, when windows are displayed on a screen of a computing device and the device is tilted, a determination is made as to which direction the device is tilted. In response to determining the direction to which the computing device is tilted, the displayed windows will be moved toward the determined direction. For the windows to be moved, however, the computing device must be in a window manipulation mode or WMM. Further, the greater the amount of tilt the faster the displayed windows are moved toward the direction of tilt. 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         [0009]    The novel features believed characteristic of the invention are set forth in the appended claims. The invention itself, however, as well as a preferred mode of use, further objectives and advantages thereof, will best be understood by reference to the following detailed description of an illustrative embodiment when read in conjunction with the accompanying drawings, wherein: 
           [0010]      FIG. 1   a  illustrates an exemplary tablet PC. 
           [0011]      FIG. 1   b  depicts an exemplary WMM button that may be used to put the tablet PC in WMM. 
           [0012]      FIG. 2  is a flowchart of a process that is used to implement the invention. 
           [0013]      FIG. 3  is an exemplary block diagram of a tablet PC. 
       
    
    
     DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT 
       [0014]    The invention will be explained using a tablet PC. However, it should be understood that the present invention is not restricted to only tablet PCs. Any portable computing device, including conventional computer systems such as laptops, falls within the realm of the invention. Thus, the use of a tablet PC in explaining the invention is only for illustrative purposes. 
         [0015]      FIG. 1   a  illustrates an exemplary tablet PC  100 . The tablet PC  100  comprises a display screen  112  on which a user may write using an appropriate stylus pen  110 . The tablet PC  100  may be used as a user&#39;s primary personal computer as well as a note-taking device. As mentioned before, the pen  110  may be applied directly on the screen just as one would a conventional computer mouse to select, drag and open files, as well as to handwrite notes. By enabling a user to interact directly with the screen, rather than with a mouse and keyboard, the tablet PC becomes more comfortable and easy to use. For example, the tablet PC can be used while standing up, which is ideal for professionals such as doctors, foremen, sales managers etc. 
         [0016]    When one or more windows are opened on the screen  112 , a user may want to move the opened windows to one location of the screen  112 . This may provide an uncluttered area on the screen where a new window may be opened for example. In such a case, the user may depress a button to put the tablet PC  100  in a “window-move-mode” (i.e., WMM). 
         [0017]      FIG. 1   b  depicts an exemplary WMM button  120  that may be used to put the tablet PC  100  in WMM. The WMM button  120  is conveniently placed on the back of the tablet PC  100 . All four sides of the tablet PC have a WMM button  120 . Thus, whether a user is right-handed or left-handed or holding the tablet PC  100  in landscape or portrait position, the user will have easy access to a WMM button  120 . 
         [0018]    Note that although the WMM button is placed on the back of the table PC  100 , it is not thus restricted. The WMM button  120  may be placed anywhere that is conveniently accessible to a user on a tablet PC  100  whether in front, back or sides of a tablet PC  100  or a combination thereof. Further, there can be anywhere from one to as many WMM buttons  120  as can be conveniently used to implement the invention. Thus, the four WMM buttons  120  on the back of the tablet PC  100  are used for illustrative purposes only. 
         [0019]    When a user wants to put the tablet PC  100  in WMM, the user needs only depress one of the buttons  120 . Alternatively, if WMM button  120  is designed to be toggled on and off, the user may put the tablet PC  100  in WMM by toggling the WMM button  120  on and turn off WMM by toggling the WMM button  120  off. 
         [0020]    When the tablet PC  100  is in WMM, motion sensors or tilt detectors in the tablet PC  100  will sense any tilting movement from the position at which the tablet PC  100  was at the time the tablet PC  100  was placed in WMM. The tilting movement will be reported to a processor in the form of displaced angles which the processor will use to move the windows. The greater the displaced angle, the greater the rate at which the processor will move the windows toward the tilt direction. 
         [0021]    A tablet PC  100  may be moved in any direction in three-dimensional space. Thus, the tablet PC  100  may include three tilt detectors. A first tilt detector may be used to sense displacement angles in a first plane (e.g., the plane represented by the x-axis). A second tilt detector may be used to sense displacement angles in a second plane (e.g., the plane represented by the y-axis) and a third tilt detector may be used to sense displacement angles in a third plane (e.g., the plane represented by the z-axis). 
         [0022]    Note that the tilt detectors may alternatively be designed to report the position of the tablet PC  100  at the moment the WMM button  120  is depressed. In this case, if the tablet PC  100  is not at the (0,0,0) plane, the processor may then move the windows accordingly. 
         [0023]    Tilt detectors are well known in the field. For example, tilt detectors are used in games such as Wii (a product of Nintendo Corporation). Further, the use of tilt detectors to provide commands to computing devices is explained in  A Passive - style Buttonless Mobile Terminal  by Youichi Horry et al., IEEE Transactions on Consumer Electronics, vol. 49, no. 3, August 2003. In addition, the design of a tilt detector is disclosed in  A Tilt Detector  by Hua Zhou, Circuit Cellar Motorola Flash Innovation 2003 Design Contest, Innovate with HC08 from Motorola, Jun. 30, 2003. A copy of the disclosure of  A Passive - style Buttonless Mobile Terminal  and a copy of an Abstract of  A Tilt Detector  are provided in an IDS filed concurrently with the present application. The disclosure of both references is herein incorporated by reference. 
         [0024]    In certain instances, a user may not want to move all the windows on a screen at the same time. In such cases, the user may indicate any window that is to be held in place by either using the pen  110  to select the window or by touching the screen over the window to select the window. Once selected and if the tablet PC  100  is in WMM and tilted or tilting, the window will be held in place while the other windows are moved from one location on the screen to another. Specifically, when the tablet PC  100  is in WMM and a window is selected by touching the screen  112  over the displayed window either with the pen  110  or by a finger (i.e., a thumb), for instance, the selected window will not move while other windows may be moving toward a destination location. Note that any number of windows may be selected at any time while the tablet PC is in WMM. Note further that a selected window may be deselected at any time by removing the thumb or pen on the screen over the window. 
         [0025]      FIG. 2  is a flowchart of an exemplary process that implements the invention. When a user depresses any one of the WMM buttons  120 , the tablet PC  100  (i.e., the system) enters in WMM at which time an interrupt occurs and the process begins (step  200 ). Note that if two or more buttons  120  are depressed, the first one to be depressed controls the process. If two or more WMM buttons  120  are depressed at the same time, the system may choose one of the buttons as the controlling one. Alternatively, if two or more buttons are depressed, the tablet PC  100  will remain in WMM until all the buttons  120  are released. 
         [0026]    In step  202 , the process waits for tilt indications. As mentioned above when the tablet PC  100  is in WMM, tilt detectors (see tilt detectors  324  in  FIG. 3 ) make the determination as to whether the system is tilted as well as in which direction it is tilted and provide displaced angles to a processor (i.e., processor  302  in  FIG. 3 ). Thus, as soon as the tablet PC is in WMM, an angle of displacement in each of the three planes (i.e., in relation to the position of the tablet PC in the x-axis, y-axis and z-axis) will be provided to the processor. Any reported displaced angle, other than (0,0,0), is a tilt indication. 
         [0027]    When the process gets the tilt indication, in step  204  it checks to see whether at least one window has been selected to be held in place. If so, in step  206 , the process holds all selected windows in place while moving all non-selected windows toward the direction of tilt (step  208 ). If the process finds that no windows were selected to be held in place, the process just moves all windows toward the direction of tilt by jumping straight to step  208  from step  204  bypassing step  206 . 
         [0028]    Again as mentioned above, the rate at which the windows are moved depends on the indicated angle of displacement. As an implementation, a table may be used in which degrees of displacement angles are cross-referenced to distances (e.g., number of pixels) at which to move windows on the screen. Thus, upon receiving an angle of displacement, the process can consult the table to obtain the distance at which to move each one of the windows on the screen and move each window accordingly. 
         [0029]    In step  210 , the process checks to see if the user has released the controlling WMM button  120  (i.e., is WMM off?). As mentioned above, in an alternative embodiment, the user may have to release all WMM buttons  120  in order to turn off WMM. If WMM is turned off, the process ends in step  212 . If the user has not turned off WMM, the process jumps back to step  202  where a determination is made as to whether the tablet PC  100  is still in a tilt position. If so, the steps above are repeated. If not, the process waits for further tilt indications. 
         [0030]    With reference now to  FIG. 3 , a block diagram illustrating a data processing system is depicted in which the present invention may be implemented. Data processing system  300  is an example of a tablet PC  100 . Data processing system  300  employs a peripheral component interconnect (PCI) local bus architecture. Although the depicted example employs a PCI bus, other bus architectures such as Accelerated Graphics Port (AGP) and Industry Standard Architecture (ISA) may be used. Processor  302  and main memory  304  are connected to PCI local bus  306  through PCI bridge  308 . PCI bridge  308  also may include an integrated memory controller and cache memory for processor  302 . Additional connections to PCI local bus  306  may be made through direct component interconnection or through add-in boards. In the depicted example, local area network (LAN) adapter  310 , Small computer system interface (SCSI) host bus adapter  312 , and expansion bus interface  314  are connected to PCI local bus  306  by direct component connection. In contrast, audio adapter  316 , graphics adapter  318 , and audio/video adapter  319  are connected to PCI local bus  306  by add-in boards inserted into expansion slots. Expansion bus interface  314  provides a connection for a tilt detector controller  320 , modem  322 , and tilt detectors  324 . As mentioned before, the tablet PC  100  includes three tilt detectors. Thus, tilt detectors  324  encompass all three tilt detectors. 
         [0031]    SCSI host bus adapter  312  provides a connection for hard disk drive  326 , DVD drive  328 , and CD-ROM drive  330 . Typical PCI local bus implementations will support three or four PCI expansion slots or add-in connectors. Note that some of the hardware may be through a docking station. For example, the DVD drive  328 , audio/video adapter  319  may be incorporated into the tablet PC  100  through the docking station. Further, USB 2.0, FireWire, and VGA ports may also be provided through the docking station. 
         [0032]    An operating system runs on processor  302  and is used to coordinate and provide control of various components within data processing system  300  in  FIG. 3 . The operating system may be a commercially available operating system, such as Windows XP® Tablet PC Edition operating system, which is available from Microsoft Corporation. An object oriented programming system such as Java may run in conjunction with the operating system and provide calls to the operating system from Java programs or applications executing on data processing system  300 . “Java” is a trademark of Sun Microsystems, Inc. Instructions for the operating system, the object-oriented operating system, and applications or programs are located on storage devices, such as hard disk drive  326 , and may be loaded into main memory  304  for execution by processor  302 . 
         [0033]    Those of ordinary skill in the art will appreciate that the hardware in  FIG. 3  may vary depending on the implementation. Other internal hardware or peripheral devices, such as flash ROM (or equivalent nonvolatile memory) or optical disk drives and the like, may be used in addition to or in place of the hardware depicted in  FIG. 3 . Also, the processes of the present invention may be applied to a multiprocessor data processing system. 
         [0034]    The depicted example in  FIG. 3  and above-described examples are not meant to imply architectural limitations. For example, data processing system  300  may also be a notebook computer or hand held computer as well as a PDA. 
         [0035]    The invention can take the form of a computer program product accessible from a computer-usable or computer-readable medium providing program code for use by or in connection with a computer or any other instruction execution system. For the purposes of this description, a computer-usable or computer readable medium can be any tangible apparatus that can contain, store, communicate, propagate, or transport the program for use by or in connection with the instruction execution system, apparatus, or device. 
         [0036]    The medium can be an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system (or apparatus or device) or a propagation medium. Examples of a computer-readable medium include a semiconductor or solid state memory, magnetic tape, a removable computer diskette, a random access memory (RAM), a read-only memory (ROM), a rigid magnetic disk and an optical disk. Current examples of optical disks include compact disk-read only memory (CD-ROM), compact disk-read/write (CD-R/W) and Digital Video/Versatile Disk (DVD). 
         [0037]    The description of the present invention has been presented for purposes of illustration and description, and is not intended to be exhaustive or limited to the invention in the form disclosed. Many modifications and variations will be apparent to those of ordinary skill in the art. The embodiment was chosen and described in order to best explain the principles of the invention, the practical application and to enable others of ordinary skill in the art to understand the invention for various embodiments with various modifications as are suited to the particular use contemplated.