throbber
United States Patent [19J
`Martinez et al.
`
`I 1111111111111111 11111 111111111111111 111111111111111 IIIII IIIIII Ill lllll llll
`US006137468A
`[11] Patent Number:
`[45] Date of Patent:
`
`6,137,468
`Oct. 24, 2000
`
`[54] METHOD AND APPARATUS FOR ALTERING
`A DISPLAY IN RESPONSE TO CHANGES IN
`ATTITUDE RELATIVE TO A PLANE
`
`[75]
`
`Inventors: Anthony Edward Martinez; Sarka
`Martinez, both of Austin, Tex.
`
`[73] Assignee: International Business Machines
`Corporation, Armonk, N.Y.
`
`[21] Appl. No.: 08/730,593
`
`[22] Filed:
`
`Oct. 15, 1996
`
`Int. Cl.7 ....................................................... G09G 5/34
`[51]
`[52] U.S. Cl. ............................................. 345/126; 345/121
`[58] Field of Search ..................................... 345/121, 158,
`345/126, 352, 348, 115, 905, 681, 145,
`51
`
`[56]
`
`References Cited
`
`U.S. PATENT DOCUMENTS
`
`4,267,555
`4,542,377
`5,134,390
`5,181,181
`5,189,404
`5,329,289
`5,661,632
`5,708,561
`5,732,228
`
`5/1981 Boyd et al. ............................. 345/126
`9/1985 Hagen et al. ........................... 345/126
`7/1992 Kishimoto et al. ..................... 345/126
`1/1993 Glynn ...................................... 364/566
`2/1993 Masimo et al. ......................... 345/121
`7/1994 Sakamoto et al. ...................... 345/126
`8/1997 Register .................................. 345/905
`1/1998 Huilogol et al. ........................ 361/681
`3/1998 Jaaskelainen ........................... 345/145
`
`5,742,331
`5,774,233
`5,784,045
`5,798,750
`
`4/1998 Uomori et al. ........................... 345/51
`6/1998 Sakamoto ................................ 345/126
`7/1998 Chine et al. ............................ 345/121
`8/1998 Ozaki ...................................... 345/126
`
`OTHER PUBLICATIONS
`
`Cowart, Robert, Mastering Windows 3.1 Special Edition;
`SYBEX; pp. 66-67, 1993.
`"Force-Accommodating Moves in Manipulators", IBM
`Technical Dislcosure Bulletin, vol. 20 No. 5, Oct. 1977.
`"Method for Enabling and Controlling Computer Input from
`Plurality of Pointing Devices", IBM Technical Disclosure
`Bulletin, vol. No. 03, Mar. 1995.
`
`Primary Examiner-Steven J. Saras
`Assistant Examiner-Alecia D. Nelson
`Attorney, Agent, or Firm-Leslie A. Van Leeuwen; Felsman,
`Bradley, Vaden, Gunter & Dillon, LLP
`
`[57]
`
`ABSTRACT
`
`The present invention provides a method and apparatus for
`altering the display of an object on a display device in a data
`processing system. Changes in the attitude of a device within
`the data processing system are detected relative to a refer(cid:173)
`ence plane. The device may be a display device or some
`other device within the data processing system. The display
`of the object is altered in response to detecting selected
`changes in the attitude of the device.
`
`15 Claims, 10 Drawing Sheets
`
`600
`
`EX-1007
`Microsoft Inc. v. LiTL LLC
`
`

`

`U.S. Patent
`
`Oct. 24, 2000
`
`Sheet 1 of 10
`
`6,137,468
`
`104
`
`Pig. ljl
`
`CJ
`
`_,1100
`
`102
`
`106
`
`1 5 2
`
`,,,,,__J 1 5 0
`
`Pig. 1(}3
`
`

`

`244
`
`Pi{j. 2
`
`228 □
`
`SLOTS
`EMPTY
`
`CONTROLLER
`PARALLEL
`
`CONTROLLER
`
`VIDEO
`VGA
`
`204
`
`CONTROLLER
`
`OMA
`
`CONTROLLER
`
`KEYBOARD
`
`MOUSE
`
`0
`0
`0
`N
`~,J;..
`N
`!""'"
`I")
`0
`
`~ = ......
`~ ......
`~
`•
`r:JJ.
`d •
`
`200
`
`242
`
`222
`
`220
`
`21 8
`
`21 6
`
`SYSTEM BUS
`
`CONTROLLER
`
`DISK
`
`CONTROLLER
`
`SERIAL
`
`CONTROLLER
`
`DISKETTE
`
`RAM
`CMOS
`
`ROM
`
`RAM
`
`214
`
`232
`
`0
`c:=J
`
`238
`
`210
`
`206
`
`208
`
`SYSTEM PLANAR
`
`224
`
`202
`
`PENTIUM
`
`CONTROLLER
`INTERRUPT
`
`CONTROLLER
`
`BUS
`
`CONTROLLER
`
`MEMORY
`212
`
`

`

`---------------10.,__-----------~ ..
`
`◄-
`
`!""'"
`I")
`0
`
`U.S. Patent
`
`Oct. 24, 2000
`
`Sheet 3 of 10
`
`300
`
`t
`
`I
`
`I
`
`--------~304
`
`6,137,468
`
`' ' ' ' ' • I
`• •
`', ... \ 9
`
`I
`I
`I
`
`' I
`
`I t
`
`I
`I
`
`

`

`U.S. Patent
`
`Oct. 24, 2000
`
`Sheet 4 of 10
`
`6,137,468
`
`SENSOR READOUT
`
`x=O
`y=O
`
`300
`
`Pig. 4)l
`
`X = + 45
`y=O
`
`X = -4 5
`y=O
`
`X=O
`y = - 9 0
`
`Pig. 4<B
`
`Pig. 4C
`
`Pig. 4(})
`
`

`

`P1fJ. 5C
`
`Pig. 5<.B
`
`00
`
`301
`
`504
`506
`
`00. •
`~ •
`
`U.S. Patent
`
`Oct. 24, 2000
`
`Sheet 5 of 10
`
`6,137,468
`
`Pig. 5)1_
`
`504
`
`502
`
`

`

`Pig. 6C
`
`0
`0
`0
`N
`~,J;..
`N
`!""'"
`I")
`0
`
`7 5°
`
`4 5°
`
`Pig. 6}l
`
`602
`
`301
`
`

`

`Pig. 7
`
`!""'"
`I")
`0
`
`706
`
`DISPLAY
`
`.
`
`-
`
`704
`
`ALTERATION
`
`DISPLAY
`
`
`
`--
`
`700
`
`-DETERMINATION
`
`Tl LT
`
`702
`
`SENSOR
`
`

`

`U.S. Patent
`
`Oct. 24, 2000
`
`Sheet 8 of 10
`
`6,137,468
`
`Begin
`
`End
`
`Wait until a
`selected amount
`of predefined
`movement is
`detected
`
`Query and save
`the tilt degree
`
`81 2
`
`The tilt degree
`is sent to the
`application
`
`Yes
`
`808
`
`81 0
`
`Update system
`coordinates
`table to reflect
`tilt degree
`
`All windows are
`redrawn using
`updated system
`coordinates table
`
`Pig.
`
`8
`
`

`

`U.S. Patent
`
`Oct. 24, 2000
`
`Sheet 9 of 10
`
`6,137,468
`
`Begin
`
`Pig. 9
`
`End
`
`Wait until a
`movement
`is detected
`
`Query tilt
`
`Save tilt
`
`908
`
`Arrange windows
`
`Arrange icons
`
`Wait for a
`defined amount
`of time or until
`a movement
`is detected
`
`

`

`U.S. Patent
`
`Oct. 24, 2000
`
`Sheet 10 of 10
`
`6,137,468
`
`Begin
`
`Wait until a
`movement
`is detected
`
`Query the tilt
`
`Save tilt degree
`and direction
`
`Is the
`degree within
`the defined
`trigger range ?
`
`Wait tor a defined
`amount ot time
`
`Save the new
`tilt degree
`
`Pig. 10
`
`End
`
`gree w1
`the defined
`rigger range .
`
`Determine the
`direction using
`the old and new
`tilt degree
`
`Yes
`
`Move windows
`to the maximum
`Y axis position
`
`Arrange windows
`
`

`

`1
`METHOD AND APPARATUS FOR ALTERING
`A DISPLAY IN RESPONSE TO CHANGES IN
`ATTITUDE RELATIVE TO A PLANE
`
`6,137,468
`
`BACKGROUND OF THE INVENTION
`1. Technical Field
`The present invention relates generally to an improved
`data processing system and in particular to an improved
`display within a data processing system. Still more
`particularly, the present invention relates to an improved 10
`method and apparatus for altering a display within a data
`processing system in response to a change in orientation in
`hardware associated with the data processing system.
`2. Description of the Related Art
`The manipulation of data in a data processing system is
`well known in the prior art. Data may be manipulated in
`many ways in a modern state-of-the-art data processing
`system including data accessing, data encoding, data
`communications, data compression, data conversion, data
`exchange, data linking, data locking, data mapping, data
`modeling, data sorting, data recording, and data transferring.
`The large amounts of data that are available to the user of a
`modern state-of-the-art data processing system often
`becomes overwhelming in magnitude and complexity.
`As a result of the increase in complexity of data process(cid:173)
`ing systems, attempts have been made to simplify the
`interface between a user and the large amounts of data
`present within a modern data processing system. One
`example of an attempt to simplify the interface between a 30
`user and a data processing system is the utilization of a
`graphic user interface (GUI) to provide an intuitive in
`graphical interphase between the user and the data process-
`ing system. A GUI is an interface system, including devices,
`by which a user interacts with a data processing system, 35
`system components, and/or system applications via win(cid:173)
`dows or via ports, icons, menus, pointing devices, etc.
`Another advancement in the computer art allows a user to
`simultaneously access, display, and manipulate data from a
`variety of related and/or unrelated computer application 40
`programs. This process is generally referred to as "multi(cid:173)
`tasking". In a true multi-tasking system, several application
`programs are simultaneously active. Displays from each of
`these applications may be provided within a two dimen(cid:173)
`sional display by presenting overlapping data collections 45
`and multiple layers in a simulated three-dimensional manner
`within the display of a data processing system. Each of these
`layers presents data associated with a particular data collec(cid:173)
`tion and these layers typically overlap and may partially or
`completely obscure each other and other data therein.
`Other advances in data processing systems include chang(cid:173)
`ing the presentation of data in response to changes in
`hardware. For example, display systems are presently avail(cid:173)
`able in which the monitor can be pivoted to either a
`landscape or a portrait mode. Additionally, the video driver 55
`associated with the display detects the change in display
`modes and switches a software to provide for the change.
`Such a system is restricted to detecting changes in one
`access, in one direction, for a 90° arc from 0° to 90°.
`Additionally, as pivoting occurs, the monitor goes blank 60
`until the end of the arc is reached. No intermediate positions
`or sampling is provided by such a system. Therefore, it
`would be advantageous to have a method and apparatus to
`detect various changes in orientation of hardware associated
`with a data processing system in which the display is altered
`in response to various changes in orientation of the hard-
`ware.
`
`5
`
`2
`SUMMARY OF THE INVENTION
`
`It is therefore on object of the present invention to provide
`an improved data processing system.
`
`It is another object of the present invention to provide an
`improved display within a data processing system.
`
`It is yet another object of the present invention to provide
`an improved method and apparatus for altering a display
`within a data processing system in response to a change in
`orientation and hardware associated with the data processing
`system.
`
`The present invention provides a method and apparatus
`for altering the display of an object on a display device in a
`15 data processing system. Changes in the attitude of a device
`within the data processing system are detected relative to a
`reference plane. The device may be a display device or some
`other device within the data processing system. The display
`of the object is altered in response to detecting selected
`20 changes in the attitude of the device.
`
`The display may be altered by maintaining the object
`level relative to the reference plane although the display
`device or some other device incurs changes in attitude.
`25 Alternatively, various objects, such as windows or icons
`displayed on the display device may be arranged or altered
`in response to the changes in attitude.
`
`The above as well as additional objects, features, and
`advantages of the present invention will become apparent
`with the following detailed description.
`
`BRIEF DESCRIPTION OF THE DRAWINGS
`
`FIG. lAis a pictorial representation of a computer system
`depicted in which the present invention may be implemented
`in accordance with a preferred embodiment of the present
`invention.
`FIG. lB is an illustration of a laptop computer in which
`the present invention may be implemented.
`FIG. 2 depicts a block diagram of selected components in
`personal computer 100 or laptop computer in which a
`preferred embodiment of the present invention may be
`implemented.
`
`FIG. 3 is an illustration of orientations of a laptop
`computer according to the present invention.
`
`FIGS. 4A-4D depicts data obtained from a sensor in
`response to different attitudes of laptop 300 according to the
`50 present invention.
`FIGS. 5A-5C are diagrams of different displays accord(cid:173)
`ing to the present invention.
`FIGS. 6A-6C depict illustrations of a process for main(cid:173)
`taining window objects level through changes in attitude
`according to the present invention.
`
`FIG. 7 is a block diagram of components used to alter the
`display of a data processing system in response to a change
`in attitude according to the present invention.
`
`FIG. 8 depicts a flowchart of a process for rotating
`windows according to the present invention.
`
`FIG. 9 is a flowchart of a process to open windows and
`arrange icons according to the present invention.
`
`FIG. 10 depicts a flowchart of a process for aligning
`windows according to the present invention.
`
`65
`
`

`

`3
`DETAILED DESCRIPTION OF IBE
`PREFERRED EMBODIMENT
`
`6,137,468
`
`With reference now to the figures and in particular with
`reference to FIG. lA, a pictorial representation of a com(cid:173)
`puter system is depicted in which a preferred embodiment of
`the present invention may be implemented in accordance
`with a preferred embodiment of the present invention. A
`personal computer 100 is depicted which includes a system
`unit 102, a video display terminal 104, a keyboard 106, and
`a mouse 108. Personal computer 100 may be implemented
`utilizing any suitable computer such as an IBM PS/2
`computer, a product of International Business Machines
`Corporation. "PS/2" is a registered trademark of Interna(cid:173)
`tional Business Machines Corporation. Although the
`depicted embodiment involves a personal computer, a pre(cid:173)
`ferred embodiment of the present invention may be imple(cid:173)
`mented in other types of data processing systems, such as for
`example, intelligent work stations or mini-computers. A
`sensor for detecting changes in position may be located
`within the data processing system or externalized with a 20
`peripheral device associated with the data processing
`system, such as a mouse or some other pointing device.
`Computer 100 may be implemented utilizing any suitable
`computer, such as an IBM PS/2 computer, a product of
`International Business Machines Corporation.
`In FIG. lB, a laptop computer 150 is depicted in which
`the present invention may be implemented. Laptop com(cid:173)
`puter 150 includes a display 152 and a system unit 154
`containing a keyboard 156. Laptop computer 150 may be 30
`implemented using any suitable computer, such as an IBM
`ThinkPad. "ThinkPad" is a trademark of International Busi(cid:173)
`ness Machines Corporation.
`With reference now to FIG. 2, a block diagram of selected
`components in personal computer 100 or laptop computer
`150 is depicted in which a preferred embodiment of the
`present invention may be implemented. System unit 102 or
`154 preferably includes a system bus 200 for interconnect-
`ing and establishing communication between various com(cid:173)
`ponents in system unit 102 or 154. Microprocessor 202 is 40
`connected to system bus 200. Direct Memory Access con(cid:173)
`troller 204 is also connected to system bus 200 and allows
`various devices to appropriate cycles from microprocessor
`202 during large 1/0 transfers.
`Read only memory ("ROM") 206 is mapped into the 45
`microprocessor 202 address space in the range from 640K to
`1 megabyte. Read Only Memory ("ROM") 206 and Random
`Access Memory ("RAM") 208 are also connected to system
`bus 200. ROM 206 contains the power-on self test ("POST")
`and the Basic Input/Output System ("BIOS"), which control 50
`hardware operations, such as those involving disk drives and
`the keyboard. Complementary Metal-Oxide-Semiconductor
`Random Access Memory (CMOS RAM) 210 is attached to
`system bus 200 and contains system configuration informa(cid:173)
`tion.
`Also connected to system bus 200 are memory controller
`212, bus controller 214, and interrupt controller 216, which
`serve to aid in the control of data flow through system bus
`200 between various peripherals, adapters, and devices.
`System unit 102 or 154 also contains various input/output 60
`("1/0") controllers such as: keyboard and mouse controller
`218, video controller 220, parallel controller 222, serial
`controller 232, and diskette controller 238. Keyboard and
`mouse controller 218 provide a hardware interface for
`keyboard 224 and mouse 226. Video controller 220 provides 65
`a hardware interface for video display device 228. Parallel
`controller 222 provides a hardware interface for devices
`
`25
`
`4
`such as printer 230. Serial controller 232 provides a hard(cid:173)
`ware interface for devices such as a modem 236. Diskette
`controller 234 provides a hardware interface for floppy disk
`unit 238. Expansion cards may also be added to system bus
`5 200, such as disk controller 240, which provides a hardware
`interface for hard disk unit 242. Empty slots 224 for receiv(cid:173)
`ing adapter cards or PC cards are provided so that other
`peripherals, adapters, and devices may be added.
`Those skilled in the art will appreciate that the hardware
`10 depicted in FIG. 2 may vary for specific applications. For
`example, other peripheral devices such as optical disk
`media, audio adapters, or chip programming devices such as
`a Programmable Logic Array (PLA) or Erasable,
`Electrically-Programmable Read Only Memory (EEPROM)
`15 programming device, and the like also may be utilized in
`addition to or in place of the hardware already depicted.
`Turning now to FIG. 3, an illustration of different orien-
`tations of a laptop computer is depicted according to the
`present invention. Orientation of laptop computer 300 is
`determined relative to plane 302 having an X axis and a Y
`axis. Rotating laptop 300 around the Y axis along arrow 304
`results in a change in orientation in the X value while
`rotating laptop 300 around the X axis along arrow 306
`results in a change in orientation also referred to as "atti(cid:173)
`tude" along the Y value. Changes in "attitude" are rotations
`relative to a fixed plane (i.e. plane 302).
`Turning to FIGS. 4A-4D, the data obtained from a sensor
`in response to different attitudes of laptop 300 is depicted
`according to the present invention. In FIG. 4A, the attitude
`of laptop 300 relative to a reference plane provides a sensor
`readout of X=0° and Y =0°. In FIG. 4B, laptop 300 is rotated
`around the Y axis resulting in a X value equal to +45° and
`a Y value equal to 0°. The X value equals -45° while Y =0°
`when laptop 300 is rotated in the opposite direction from that
`shown in FIG. 4B. In FIG. 4D, the rotation of laptop 300
`results in an X value of 0° and a Y value of -90°. Other
`changes in attitude of laptop 300 will result in other com-
`binations of X and Y values according to the present
`invention.
`The present invention can adjust visual components on a
`display device so that the components are level regardless of
`the position of the display device. In this manner, one can
`change the display from a "landscape" mode to a "portrait"
`mode by simply rotating the display 90° either way around
`one axis. Additionally, the present invention can be
`employed to adjust the content of the windows such that the
`content is level regardless of the attitude of the display
`device at any rotation granularity.
`Turning now to FIGS. 5A-5C, diagrams of different
`displays are illustrated according to the present invention.
`With reference to FIG. SA, laptop computer 300 contains
`windows 500 and 502 and icons 504-508. In FIG. SB, laptop
`300 has been rotated 90° and display 301 is now in a portrait
`55 mode. Laptop 300 has been rotated 90° in the other direction
`from the attitude in FIG. SA also resulting in display 301
`presenting windows 500 and 502 and icons 504--508 in a
`portrait mode.
`Turning now to FIGS. 6A-6C, illustrations of a process
`for maintaining window objects level through changes in
`attitude is depicted according to the present invention. In
`FIG. 6A, laptop 300 has a "level" attitude within display 301
`window 600 contains object 602, which includes the letters
`"X", "Y", and "Z" in a level attitude with respect to laptop
`computer 300's initial attitude. In FIG. 6B, laptop computer
`300 has been rotated 45°. As can be seen in FIG. 6B, object
`602 in window 600 remains level even though laptop
`
`35
`
`

`

`6,137,468
`
`5
`computer 300 has been rotated 45°. With a further rotation
`to 75° from the attitude in FIG. 6A, laptop computer 300 in
`FIG. 6C shows object 602 remaining level although display
`301 and window 600 have changed orientation. This process
`may be applied to other objects, such as window 600 or 5
`icons.
`Turning now to FIG. 7, a block diagram of components
`used to alter the display in a data processing system in
`response to a change in attitude is depicted according to the
`present invention. Tilt determination block 700 receives an 10
`input from sensor block 702. The input is in the form of data
`indicating the change in attitude of the hardware of interest.
`Specifically, the input may be in the form of various types
`of data, such as, for example, changes in X and/or Y axes
`and the direction of the change in attitude. Display alteration
`block 704 functions to determine the alteration to the display 15
`that is to occur in response to the change in attitude detected
`by sensor block 702. Display block 706 drives the display of
`the data on a display device within the data processing
`system. Display 706 is for example, a standard display
`driver with display alteration block 704 providing the 20
`needed changes to the data being displayed in response to
`changes in attitude determined by tilt determination block
`700.
`Sensor 702 is attached to the hardware of interest, such as
`the host computer or a peripheral (e.g., a display device or
`a mouse). Sensor 702 provides numeric values to a register.
`These values may represent data such as the tilt of the
`hardware relative to a reference plane. The register is
`available to the operating system or application executing on
`the data processing system. A low level routine, such as tilt 30
`determination block 700, samples the values of the sensor by
`reading the register. Components, such as display alteration
`block 704, designed to react to the tilt or change in attitude
`of the hardware can query the software routine for data. In
`the depicted example, the values output by the sensor are in 35
`degree increments. These degree increments range from
`-179 to + 179 in the X axis and -179 to + 179 in the Y axis.
`The value of X=0 and Y =0 correspond to a level sensor in
`the depicted example.
`With reference now to FIG. 8, a flowchart of a process for
`rotating windows is depicted according to the present inven(cid:173)
`tion. As the device is rotated clockwise or counterclockwise,
`the present invention maintains the windows level with
`respect to a preselected reference plane. Alternatively, the
`contents within the windows may be maintained level rela(cid:173)
`tive to the plane in response to rotation of the data process(cid:173)
`ing system. The process begins by determining whether the
`"rotate" feature has been turned on (step 800). If the rotate
`feature is on, the process then waits until a selected amount
`of predefined movement is detected (step 802). Next, a
`query is made to determine the amount of tilt or change in
`attitude with this data being saved (step 804). A determina(cid:173)
`tion is then made as to whether the windows are to be rotated
`(step 806). If the windows are to be rotated, the system
`coordinate table is updated with the results (step 808).
`System coordinate tables are normally used by most oper(cid:173)
`ating systems to define where pixel locations are on the
`physical screen. Thereafter, the windows are redrawn in
`response to the update of the system coordinates table (step
`810) with the process returning to step 800 thereafter.
`With reference again to step 806, if the windows are not
`to be rotated, the tilt degree is sent to the applications (step
`812) with the process then returning to step 800. With
`reference to step 800, if the rotated feature is off, the process
`then terminates.
`With reference now to FIG. 9, a flowchart of a process to
`open windows and arrange icons is depicted according to the
`
`6
`present invention. Under the shake feature, tilting the device
`to the left and to the right in rapid secession twice within a
`period of time results in the windows and icons being
`automatically arranged according to the present invention.
`The process begins by determining whether the "shake"
`feature for opening windows and arranging icons has been
`enabled (step 900). "Shake" means to shake the object
`containing the sensor to the left and right relative to the user.
`Thereafter, the process waits until movement is detected
`(step 902). Upon detecting movement, the amount of tilt
`detected by the sensor is obtained (step 904). Thereafter, the
`process determines whether this is the first time movement
`is detected (step 906). If this is the first time movement has
`been detected, the process saves the tilt (step 908) and then
`returns to step 902. Otherwise, a determination is made as to
`whether the direction is equal to the saved direction (step
`910). If the direction is equal to the saved direction, a
`determination is then made as to whether the tilt is greater
`than or equal to a default amount of tilt (step 912). The
`default tilt in the depicted example is 20°. This default tilt
`may be changed by the user or preset at some other amount
`in accordance with a preferred embodiment of the present
`invention. If the answer to this query is yes, the process then
`waits for a defined amount of time or until movement is
`detected (step 914). Upon reaching the defined amount of
`25 time or a detection of movement, the process then deter(cid:173)
`mines whether the movement is in the same direction or if
`a timeout has occurred (step 916). A timeout occurs if no
`movement occurs within the defined amount of time. If a
`timeout has occurred, the process returns to step 900. The
`process also returns to step 900 if the movement is in the
`same direction.
`Otherwise, the process then arranges the windows (step
`918). For example, the windows could be arranged in a tile
`or cascading fashion. Next, the icons are arranged (step
`920). The icons can be arranged in any preselected manner
`the user or programmer desires. Thereafter, the process
`returns to step 900.
`With reference now to FIG. 10, a flowchart of a process
`for aligning windows is depicted according to the present
`40 invention. Under this process, tilting the device to one side
`and holding it at that attitude for a short amount of time
`results in the windows aligning to the side that is held lower
`relative to the reference plane. The process begins by
`determining whether the "side to side" feature for aligning
`45 objects is enabled (step 1000). If the feature is enabled, the
`process waits until a movement of the device is detected
`(step 1002). The process then queries the tilt to determine the
`amount of tilt that has occurred (step 1004). The tilt in
`degrees and direction is then saved (step 1006). A determi-
`50 nation is then made as to whether the tilt is within a
`predefined trigger range (step 1008). The trigger range is a
`range of degrees defining how much one side must be lifted
`or tilted. This trigger range may vary depending on the user
`or data processing system. If the degree of tilt is within the
`55 predefined trigger range, the process then waits for a defined
`amount of time (step 1009). Thereafter, a determination is
`made as to whether a significant movement has occurred
`(step 1010). In the depicted example, a significant amount of
`movement is 45° to 90° starting from 0° (the device laying
`60 flat). If a significant amount of movement has occurred, the
`new tilt is stored (step 1012). A determination is then made
`as to whether the tilt is within the defined trigger range (step
`1016). If the answer to this determination is yes, the process
`then determines the direction using the old and new tilt (step
`65 1018).
`Next, a determination is made as to whether the direction
`is to the left or to the right relative to the device and the user
`
`

`

`6,137,468
`
`20
`
`7
`(step 1020). If the direction is to the left, the windows are
`moved to the minimum Y axis position (step 1022) with the
`process then returning to step 1000. If the direction is to the
`right, the process then moves the windows to the maximum
`Y axis position (step 1024) with the process then returning 5
`to step 1000. With reference again to step 1016, if the degree
`of tilt is not within the predefined trigger range, the process
`also returns to step 1000. Additionally, the process returns to
`step 1000 from step 1012 if a significant amount of move(cid:173)
`ment has not occurred, the process returns to step 1000 from 10
`step 1008 if the degree of tilt is not within the predefined
`trigger range. If the feature in step 1000 is not enabled, the
`process then terminates. In accordance with a preferred
`embodiment of the present invention, audio feedback in the
`form of a beep or some other sound may be provided when 15
`the tilt is within the predefined trigger range.
`The process in FIG. 10 also may be applied to other
`objects other than windows. For example, the alignment
`process may be employed for icons and other objects
`displayed within a data processing system.
`It is important to note that while the present invention has
`been described in the context of a data processing system,
`those skilled in the art will appreciated that the mechanisms
`of the present invention are capable of being distributed in 25
`the form of a computer readable medium of instructions in
`a variety of forms, and that the present invention applies
`equally regardless of the particular type of signal bearing
`media used to actually carry out the distribution of the
`instruction. Examples of computer readable media include:
`recordable type media such as floppy disks and CD-ROMs
`and transmission type media such as digital and analog
`communication links.
`Thus, the present invention provides an ideal mechanism
`for altering the display in data processing systems such as
`laptop computers and hand-held computers because the
`present invention provides for an easy mechanism to quickly
`change spacial attitude. Additionally, a sensor may be
`installed in a remote device, such as a mouse, for large
`desktop computers.
`While the invention has been particularly shown and
`described with reference to a preferred embodiment, it will
`be understood by those skilled in the art that various changes
`in form and detail may be made therein without departing
`from the spirit and scope of invention.
`What is claimed is:
`1. A method for altering a display of objects on a display
`device comprising:
`detecting changes in an attitude of a sensor relative to a
`plane;
`determining a magnitude of the change in the attitude of
`the sensor during a selected amount of time; and
`in response to detecting at least one change in the attitude
`of a threshold amount within the selected amount of 55
`time, altering the display of objects on the display
`device.
`2. The method of claim 1, wherein the at least one change
`in the attitude of a threshold amount within the selected
`amount of time is a shaking of the display device, wherein 60
`the display of objects are windows and icons, and wherein
`the step of altering the display of objects on the display
`device further comprises:
`rearranging the windows and icons.
`3. The method of claim 1, wherein the at least one change 65
`in the attitude of a threshold amount within the selected
`amount of time is a shaking of the display device, wherein
`
`8
`the display of objects are windows, and wherein the step of
`altering the display of objects on the display device further
`comprises:
`arranging icons within the display.
`4. The method of claim 2, wherein the step of arranging
`windows comprises arranging the windows in a tile fashion.
`5. The method of claim 2, wherein the step of arranging
`windows comprises arranging the windows in a cascading
`fashion.
`6. The method of claim 1, wherein the at least one change
`in the attitude of a threshold amount within the selected
`amount of time is a lowering of one side of the display below
`a selected plane for the selected amount of time and wherein
`the step of altering comprises aligning the windows along
`the side below the selected plane.
`7. A data processing system for altering a display of
`objects on a display device, comprising:
`means for detecting changes in an attitude of a sensor
`relative to a plane;
`determination means for determining a magnitude of the
`change in the attitude of the sensor during a selected
`amount of time; and
`altering means, responsive to detecting at least one
`change in the attitude of a threshold amount within the
`selected amount of time, for altering the display of
`objects on the display device.
`8. The data processing system of claim 7, wherein the at
`least one change in the attitude of a threshold amount within
`the selected amount of time is a shaking of the display
`device, wherein the display of objects are windows and
`30 icons, and wherein the altering means comprises means for
`rearranging the windows and icons.
`9. The data processing system of claim 7, wherein the at
`least one c

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket