Embodiments according to the present invention relate to organizing information on a computer monitor(s) and more particularly to window alignment grids.
Many prior art computer systems exist that utilize a graphical user interface incorporating a desktop and windows metaphor and that include a single monitor. Although prevalent, these systems lack flexibility in how a user can automatically place and shape various windows. These single monitor systems also have a limited display area.
Some prior art systems include multi-monitor systems. These systems can often provide more display area for the placement of windows.
An example of a multi-monitor system is a two-monitor system. A prior art two-monitor system can be thought of as a two-by-one grid on a two screen-wide surface with each screen representing its own grid area. In operation, when a user maximizes a window (i.e., causes it to be enlarged to some predetermined size that is typically the maximum display area), the window automatically maximizes to the left or the right half of the combined display surface (i.e., the left or right screen) and not to the entire combined display surface. This is a default behavior that can be contemplated by the user when the user seeks to maximize a window.
Such default behaviors enhance user operation and productivity. Accordingly, it would be desirable to improve the ability to organize and shape windows automatically on a single- or multi-monitor system.
Various embodiments according to the present invention include systems and methods of organizing at least one window on at least one computer monitor. In one embodiment, a method comprises creating boundaries on the at least one computer monitor. The boundaries form at least one window area therebetween. At least one window area is associated with a window.
A system for organizing at least one window comprises a processor. At least one computer monitor is coupled to the processor. A user interface is coupled to the processor. The user interface is configured to receive input from a user and facilitate creating boundaries on the at least one computer monitor, the boundaries forming at least one window area therebetween. The user interface is further configured to facilitate associating the at least one window area with a window.
A computer-based display system comprises a user input element for enabling a user to define window areas on a display. The computer-based display system also comprises a processing element for causing at least one window to be displayed on the display. Window shape and window placement are dependent on the user-defined window area in which the window is positioned.
Accompanying drawing(s) show exemplary embodiment(s) in accordance with one or more aspects of the present invention; however, the accompanying drawing(s) should not be taken to limit the present invention to the embodiment(s) shown, but are for explanation and understanding only.
In the following description, numerous specific details are set forth to provide a more thorough understanding of the present invention. However, it will be apparent to one of skill in the art that the present invention may be practiced without one or more of these specific details. In other instances, well-known features have not been described in order to avoid obscuring the present invention.
First Computer Monitor Screen 112 includes Window Areas 116 and a Minimized Window Area 118, discussed herein. The Window Areas 116 are defined by Boundaries 120. A user draws or otherwise creates Boundaries 120 via a UI. For example, the user uses a mouse to draw Boundaries 120. In another example, different boundary layout templates might be available from which the user can select using a mouse or keys. A user can either create and save boundary layout templates or choose from a list of predefined boundary layout templates. In
Similarly, Second Computer Monitor Screen 114 includes Window Areas 116 and a Minimized Window Area 118. The Window Areas 116 are again defined by Boundaries 120 that the user has defined.
In this embodiment, Boundaries 120 define three Window Areas 210 of the same size and shape. A Window Area 212 is slightly larger than a Window Area 210. A Window Area 214, in Second Computer Monitor Screen 114, is larger than and of a different shape than Window Areas 210 and 212. A Window Area 216 is the largest of the window areas in
In this illustrative example, Window 310 consumes a relatively small portion of Window Area 214. Window 310 has snapped to a corner of Window Area 214. Function keys on a computer keyboard or UI allow, in one embodiment, Window 310 to snap to an area of Window Area 214. Likewise, Window 310 can be snapped to Boundary 120, or any other desired boundary. This snapping can occur when the user activates a function key, when the user maximizes Window 310 from Minimized Window Area 118, when a user moves Window 310 proximate Boundary 120, or the like.
Likewise, a Window 312 has snapped to Window Area 216. In this case, the user has instructed, via a function key or the like, Window 312 to maximize and consume almost the entire area of Window Area 216. In another embodiment, the user instructs Window 312 to maximize to the entire area of Window Area 216. It is also noteworthy that when a user resizes a window, such as Window 312 for example, the window can also snap to one or more boundaries. The user can also activate a function key to instruct a window to snap to the closest intersection of two boundaries.
In this illustrative example, two window areas are shown. Window Area 410 is running a web browsing application. Web browsing applications often require a four-by-three aspect ratio of width to length for browsing most content. However, when a user is using a web browser to browse primarily text, the user might prefer a one-by-two aspect ratio to improve ease of reading. Therefore, the user can activate a function key and instruct the application to snap to Window Area 412 with such an aspect ratio. It is also envisioned that window areas can be created within window areas. Additionally, in one embodiment window areas overlap other window areas or windows.
In step 512, the user (if desired) moves the boundaries using the UI and mouse, for example. The user can thus adjust the size and shape of the window areas. After the user is satisfied with the window area layout defined by the boundaries, the user can save the layout.
In step 514, the user associates the window areas with various applications or the like. For example, the user associates the window areas with word processors, web browsers, spreadsheets and the like. The user can assign home window areas to windows so that the windows maximize to the same home window area all the time. The user can then save the association data if desired.
In step 516, the user performs an action, such as activating a function key or the like, causing a function call to place a selected window in a window area.
In step 518, the user again performs an action, such as activating a function key or the like, causing a function call to size the selected window in the window area. As discussed herein, the window may consume a portion or the whole of a given window area.
Subsystems within Computer System 606 are directly interfaced to an Internal Bus 610. The subsystems include an Input/Output (I/O) Controller 612, a System Random Access Memory (RAM) 614, a Central Processing Unit (CPU) 616, a Display Adapter 618, a Serial Port 620, a Fixed Disc 622 and a Network Interface Adapter 624. The use of Bus 610 allows each of the subsystems to transfer data among the subsystems and, most importantly, with CPU 616. External devices can communicate with CPU 616 or other subsystems via Bus 610 by interfacing with a subsystem on Bus 610.
One embodiment according to the present invention is related to the use of an apparatus, such as Computer System 606, for implementing a system according to embodiments of the present invention. CPU 616 can execute one or more sequences of one or more instructions contained in System RAM 614. Such instructions may be read into System RAM 614 from a computer-readable medium, such as Fixed Disc 622. Execution of the sequences of instructions contained in System RAM 614 causes CPU 616 to perform process steps, such as the process steps described herein. One or more processors in a multi-processing arrangement may also be employed to execute the sequences of instructions contained in the memory. In alternative embodiments, hard-wired circuitry may be used in place of or in combination with software instructions to implement the invention. Thus, embodiments of the invention are not limited to any specific combination of hardware circuitry and software.
The terms “computer-readable medium” and “computer-readable media” as used herein refer to any medium or media that participate in providing instructions to CPU 616 for execution. Such media can take many forms, including, but not limited to, non-volatile media, volatile media and transmission media. Non-volatile media include, for example, optical or magnetic discs, such as Fixed Disc 622. Volatile media include dynamic memory, such as System RAM 614. Transmission media include coaxial cables, copper wire and fiber optics, among others, including the wires that comprise one embodiment of Bus 610. Transmission media can also take the form of acoustic or light waves, such as those generated during radio frequency (RF) and infrared (IR) data communications. Common forms of computer-readable media include, for example, a floppy disc, a flexible disc, a hard disc, magnetic tape, any other magnetic medium, a CD-ROM disc, digital video disc (DVD), any other optical medium, punch cards, paper tape, any other physical medium with patterns of marks or holes, a RAM, a PROM, an EPROM, a FLASHEPROM, any other memory chip or cartridge, a carrier wave, or any other medium from which a computer can read.
Various forms of computer-readable media may be involved in carrying one or more sequences of one or more instructions to CPU 616 for execution. Bus 610 carries the data to System RAM 614, from which CPU 616 retrieves and executes the instructions. The instructions received by System RAM 614 can optionally be stored on Fixed Disc 622 either before or after execution by CPU 616.
Therefore, methods and systems for organizing information on a single or multi-monitor system have been shown and described. Methods and systems described herein allow for window alignment boundaries (e.g., window alignment grids or the like) of various shapes and sizes to be created and associated with various applications.
While the foregoing is directed to embodiments in accordance with one or more aspects of the present invention, other and further embodiments of the present invention may be devised without departing from the scope thereof, which is determined by the claims that follow. For example, it is noteworthy that although embodiments according to the present invention have been described within the context of rectangular windows and window areas, they are not limited to rectangular shapes. Claims listing steps do not imply any order of the steps unless such order is expressly indicated.