;;;-*- Mode:text-*- GENERIC GULF COAST WINDOW APPLICATION The Generic Gulf Coast Window application can be used to create multiple system applications in overlapping windows on a single screen. You have the capability to mix the two most popular windowing techniques by creating new versions of system applications in either an "East coast" style constraint frame or a "West coast" style overlapping window frame. The application can be used to activate any number of windows. Each window can be a different application such as a Lisp Listener or Zmacs editor. The size of each window can be chosen by the user and can be re-shaped if desired. Any application window created over the shaded Gulf Coast background pane can be manipulated using the generic Gulf Coast window commands such as move, reshape, kill etc. Any number of applications can be created with overlapping windows on a single Gulf Coast background pane. Any application created from a non-Gulf Coast pane (it will not have the shaded background), is activated in the standard "East coast" style constraint frame. WHERE TO FIND THE GENERIC GULF COAST WINDOW APPLICATION The files needed to create the Generic Gulf Coast Window application are located in the SYS:PUBLIC.GULF-COAST; directory. This directory contains the source files and the files needed for making a Generic Gulf Coast Window Application system. First compile and load the file SYS:PUBLIC.GULF-COAST;GULF-COAST.LISP and then compile and load SYS:PUBLIC.GULF-COAST;GULF-COAST-PATCHES.LISP which modifies only a few system functions. HOW TO MAKE A GENERIC GULF COAST WINDOW APPLICATION --------------------------------------------------- Using The Generic Gulf Coast Window Application The Generic Gulf Coast Window application is invoked by depressing the SYSTEM #\SPACE key sequence. A shaded grey background should appear with a Lisp Listener active in the lower left corner. The Generic Gulf Coast Window application always gives you the Lisp Listener by default as your first windowed application. You can now use any of the commands defined within the Generic Gulf Coast application to manipulate the Lisp Listener window. To see what commands are available, depress the chorded keystroke HYPER-HELP. A mouseable menu will appear displaying areas where expanded help is available. Select the option, "Basic Gulf Coast Help" for more information on the Generic Gulf Coast Window application. A window will appear containing a brief description of the Generic Gulf Coast Window application and all the key-stroke commands available. Notice that most of the commands are bound to a chorded key sequence using the HYPER key and another key. The most frequently used commands are also contained in a mouseable menu which can be displayed by depressing HYPER-G. After reading the help file, depress the "END" key to return to the active window. Notice the shaded background around the Lisp Listener. Any application created over the shaded grey background will be created in a Gulf Coast window and can be manipulated by the commands described in the "Basic Gulf Coast Help" file. To create another application on the screen in another window, you can depress the key sequence SYSTEM CTRL-key where key is the key bound to the desired application. For example, if you would like a ZMACS editor window with the Lisp Listener which was created by default when you invoked the Generic Gulf Coast Window application, enter SYSTEM CTRL-E. An angle bracket will appear on the screen. Using the mouse, move the bracket to the position on the screen where you want the top left hand corner of the editor to be and click any mouse button. When you have selected the top left corner for the window, another angle bracket will appear. Using the mouse position this bracket to where you want the bottom right corner of the window to be and click any button. A new Zmacs editor will appear in the window which you just defined. You can create as many Gulf Coast Windows as you like, containing any applications bound to the "SYSTEM key" sequence. So on a single screen, multiple copies of the Lisp Listener, Zmacs editor, the Inspector and other system applications can be created in overlapping Gulf Coast Windows. Notice that when you create a new application in a window, that window becomes active (signaled by the blinking keyboard cursor). If you have multiple windows on the same screen, you can move from one application to the next by simply moving the mouse to the window with the desired application and clicking. The selected window will become active. If the window selected is defined completely or partially within another window, as will happen when multiple windows overlap, a temporary menu may appear, prompting you to specify which window to expose. When several windows partially overlap, having the mouse cursor in different locations when attempting to activate a window can produce different results, depending on whether parts of any other window are defined at the location of the mouse cursor. In other words, there may be no other windows under one portion of the window you are attempting to select while another portion of that same window has parts of multiple windows defined under it. If you move the mouse to the area with no other windows defined under it, there is no ambiguity and the window is activated. If you move the mouse to a portion of the window with other windows defined under it, ambiguity exists as to which window you really want, so the system prompts you for the specific window to expose. You can also use the "SYSTEM key" method to cycle through multiple versions of an application. Each time you create a new version of an application, either in a conventional constraint frame or in a Gulf Coast Window, the new version is added to a "chain" for that particular application. By depressing the "SYSTEM key" sequence repeatedly, the next version of the application is activated. For example if you have created three copies of the ZMACS editor, by depressing "SYSTEM E" repeatedly, you can cycle through the three copies. Note that this is the only method you can use to cycle through a mixture of constraint frame based copies and multiple Gulf Coast Window versions of a single application. POSSIBLE POINT OF CONFUSION: The key sequence "SYSTEM key" is used to cycle through or "visit" multiple versions of existing applications. The key sequence SYSTEM CTRL-key is used to create new versions of a given application. Any Gulf Coast Window containing any application can be manipulated using the commands in a mouseable command menu. This menu can be displayed by depressing the HYPER-G key chord. These commands can also be invoked using keystrokes. The associated keystrokes are defined in the "Basic Gulf Coast Help" message. You can move, reshape, clear, kill, refresh and bury any Gulf Coast Window on the screen. ********************************************************************** ********************************************************************** CREATING YOUR OWN GULF COAST WINDOW APPLICATION The Gulf-Coast-Application macro allows creation of user defined Gulf-Coast-Window applications. The application is bound to the "SYSTEM key" sequence chosen by the programmer. (gulf-coast-application application-name system-key command-tables &key mixins basic-help tutorial who-line closure-vars typeout-type typeout-size initialization) This macro builds everything to define an application in the GULF COAST pane management style. APPLICATION-NAME is used to create a flavor of type -GULF-COAST-BACKGROUND. SYSTEM-KEY allows creation or selection of this type of GULF-COAST application window by associating this application with the system-key specified. COMMAND-TABLES can be one or more UCL command tables which contain commands. Each command will be executed inside the environment built by MIXINS flavor variables and specials defined in CLOSURE-VARS. MIXINS are custom flavor mixins to be included in the application. BASIC-HELP and TUTORIAL are lisp expressions which can be evoked by typing HYPER-HELP when the GULF-COAST-HELP-MENU is included in command table. WHO-LINE is a string containing custom who-line mouse button descriptions for the application. CLOSURE-VARS can be either a list of variable names or alist of variables and their values. TYPEOUT-TYPE is defaulted to be a W:LISP-LISTENER. TYPEOUT-SIZE is a list containing the GULF-COAST size information, (width-percent height-percent Xoffset-percent Yoffset-percent) where percentages can range from 0 to 100. TYPEOUT-SIZE is defaulted to the initial size of`(80 35 0 65). INITIALIZATION is any other initialization code which needs to be run when new -GULF-COAST-BACKGROUND instance is created. Example: (gulf-coast-application GENERIC #\SPACE *GENERIC-gulf-coast-commands*) This example shows the macro call for creating the Generic Gulf Coast Window application. The application is bound to the "SYSTEM SPACE" key chord. *Generic-gulf-coast-commands* is the command table associated with this application. Example of building the command table for the Generic Gulf Coast Windows application: (BUILD-COMMAND-TABLE '*GENERIC-gulf-coast-commands* 'GENERIC-gulf-coast-background '(GULF-COAST-COMMAND GULF-COAST-REFRESH GULF-COAST-HELP-MENU pop-up-Gulf-Coast-operations-menu GC-MOVE-COM GC-RESHAPE-com GC-CLEAR-com GC-KILL-com GC-REFRESH-com GC-BURY-com gc-switch-configuration gc-edit-configuration gc-add-configuration) :INIT-OPTIONS '(:name "Gulf Coast Window application menu." :documentation "Gulf Coast Window command documentation string")) Each entry in the command table is either a UCL command or a menu of commands. The commands are created using the DEFCOMMAND macro and the menus of commands are created using the MAKE-COMMAND macro. Refer to the REL3-GULF-COAST source file for examples of creating commands for the command table. When creating your own application using Gulf Coast Windows, you should include the basic commands found in the Generic Gulf Coast Window application in your command table. This will provide a consistency of commands for manipulating the windows through out all Gulf Coast based applications.