GUI
GUI (pronounced Gooey) stands for Graphical User Interface. It is the user interface most dominant in modern computer systems and is facilitated by a graphic positioning device to permit selecting items displayed on a screen.
[edit] Introduction
A GUI is currently the dominant interface on computer systems. It can be supplemented by the Menu interface when needed. It is in contrast to the Command line interface that was the standard form of communication with early computers.
It is possible to drive a GUI interface from the keyboard using key combinations but the normal interface uses a separate mechanism. This is usually a mouse but can also be a tablet, a touch screen, a trackball, or even a joystick. There is a visual method employed on the screen to indicate the location being selected by the input device. The positioning is then supplemented with a method to select the object. Once the object is selected the computer then decodes the selection and performs the task requested by the user. The objects displayed on the screen for selection are often icons representing the choices (with word supplements) but they can also be just words.
Communication with the user is normally accomplished with pop up windows that display messages on the screen. These messages are usually dismissed by using the GUI interface to select an icon that is part of the message.
[edit] Object oriented
Many GUIs are also object oriented. You simply click on a file in an window and the system figures out what command to use and starts appropriate command to process the file you clicked. In Windows this is done by using the file extension to determine the command to use. Commands themselves are files as well and in Windows they have a .EXE extension. Windows allows an association of command to extension that can be set up and modified by the user. Some other operating systems, notably MacOS X has a resource file associated with each file that keeps track of the program used to create the file. PalmOS does not use a file system at all but keeps the information as a database in RAM. A portion of the database hold the key field that identifies the appropriate command to use.
Another way to establish a object oriented interface is to be able to drag the file to the command the user wants to use. Often a set of short cuts to commands are set up on the screen to permit files to simply be dragged to the short cut to open them.
In the GUI the associated command is started and the filename is provided as an argument to the command. For this to succeed the command must be designed to accept a command line style argument. Some are not. If the command starts but the file is not loaded then it is likely that that command is not designed to support an object oriented interface.
[edit] Web based GUI
Today with the wide spread use of the Internet programs and systems can often use a web based GUI which means that a standard Web Browser can be used to provide access to the program. The top level is pure HTML or a specific URL. Add-ons are also available for many browsers. This is nowhere better shown that in the Chrome OS but can also be used in other tools.