The Hierarchy of GINA Classes application (Page c36) - the superclass of all GINA applications document (Page c37) - the superclass of all documents view-object (Page c91) - the superclass of all objects shown in views direct-manipulation-object (Page c93) - a view-object with direct-manipulation capabilities movable-icon (Page c94) - A direct manipulation-object displaying a pixmap command (Page c96) - an object representing a single user action drag-command (Page c101) - a command class to implement drag and drop across windows mouse-down-command (Page c97) - a mouse command with feedback as long as the mouse is down object-mover (Page c98) - a mouse-down-command to move a direct-manipulation-object object-resizer (Page c99) - a mouse-down-command to resize a direct-manipulation-object object-selector (Page c100) - a mouse-down-command to select direct-manipulation-objects callback (Page c95) - a data object describing an action to do later widget (Page c38) - the abstract superclass of all CLOS-Objects encapsulating Motif widgets arrow-button (Page c56) - the Motif arrow button widget bulletin-board (Page c79) - the Motif bulletin board widget form (Page c80) - the Motif form widget dialog-box (Page c84) - a superclass for gina dialog boxes modal-dialog-box (Page c86) - a form with a shell around it for modal dialogs modeless-dialog-box (Page c85) - a form with a shell around it for modeless dialogs tool-dialog-box (Page c87) - a form with a shell around it for tool dialogs with a menu frame (Page c71) - the Motif frame widget labeled-frame (Page c74) - a frame with a label on top label (Page c51) - the Motif label widget cascade-button (Page c55) - the Motif cascade button widget drag-label (Page c52) - a picture label for drag and drop push-button (Page c54) - the Motif push button widget dialog-dismiss-button (Page c88) - a push-button to dismiss a dialog box toggle-button (Page c53) - the Motif toggle button widget main-window (Page c68) - the Motif main-window widget menu-bar (Page c65) - a special kind of row-column widget main-menu (Page c59) - a menu-bar plus its popup shells menu-pulldown (Page c67) - the Motif row-column widget operating as a menu pane option-menu (Page c66) - the Motif option menu widget paned-window (Page c72) - the Motif paned window widget row-column (Page c73) - the Motif row-column widget dialog-dismiss-button-row (Page c89) - a row of dialog-dismiss-buttons with the leftmost as default toggle-button-group (Page c75) - a group of toggle buttons with optional label and frame radio-button-group (Page c76) - a group of radio buttons with optional label and frame scale (Page c57) - the Motif scale widget scrollbar (Page c58) - the Motif scroll bar widget scroller (Page c69) - the Motif scrolled-window widget selection-list (Page c77) - the Motif List widget scrollable-selection-list (Page c78) - a selection-list inside a scroller separator (Page c70) - the Motif separator widget shell (Page c41) - the abstract superclass of all Motif-shells menu-shell (Page c47) - the Motif menu-shell widget modal-dialog-shell (Page c46) - the Motif dialog-shell widget used for modal dialogs toplevel-shell (Page c42) - the abstract superclass of all document-shells and modeless dialog boxes basic-document-shell (Page c48) - a toplevel-shell for a document without a menubar document-shell (Page c49) - a toplevel-shell with a main-menu, representing a document document-shell-with-scroller (Page c50) - a document-shell with a single scroller modeless-dialog-shell (Page c45) - the Motif dialog-shell widget used for modeless dialogs text (Page c81) - the Motif text widget labeled-text (Page c83) - a text widget with a label scrolled-text (Page c82) - a text widget inside a scroller view (Page c90) - a DrawingArea where document contents are shown ---------------------------------------------------------------------- Variable *bitmap-directories* - list of directories where bitmaps are searched Default: DEPENDS ON YOUR SITE You CAN modify this variable during the installation of GINA. ---------------------------------------------------------------------- Variable *default-toolkit-host* - name of host where toolkit server runs Default: automatically start server on local host You CAN modify this variable if the server runs on a remote host. ---------------------------------------------------------------------- Variable *default-display-host* - name of host where X server runs Default: the local host You CAN modify this variable if the server runs on a remote host. ---------------------------------------------------------------------- Variable *default-display-number* - number of display on host where X server runs Default: 0 You CAN modify this variable if the server runs on a display other than 0. ---------------------------------------------------------------------- Variable *default-screen-number* - number of screen on host where X server runs Default: 0 You CAN modify this variable if the server runs on a screen other than 0. ---------------------------------------------------------------------- Variable *application* - in each process a pointer to its application object Default: the own application object You CAN modify this variable inside the editor to focus on another application. The macro with-application-stopped sets the global copy of this variable ---------------------------------------------------------------------- Variable *display* - in each process a pointer to a CLX display structure Default: the own CLX display structure You CAN modify this variable inside the editor to focus on another application. The macro with-application-stopped sets the global copy of this variable ---------------------------------------------------------------------- Variable *running-applications* - the list of all running applications, maybe on different displays Default: none You CAN modify this variable using the function focus-application. ---------------------------------------------------------------------- Variable *inspect-click* - flag if inspect click is generally enabled Default: inspect click enabled You CAN modify this variable to turn off this debugging facility. ---------------------------------------------------------------------- Variable *debug-menu* - flag if debug menu is generally present Default: debug menu is present You CAN modify this variable to turn off this debugging facility. ---------------------------------------------------------------------- Variable *clx-synchronous* - flag if CLX is generally run in synchronous mode Default: not synchronous You CAN modify this variable to turn on this debugging facility. ---------------------------------------------------------------------- Variable *drag-n-drop-transfer-value* - value to be transferred between applications by drag-and-drop Default: none Normally, you do NOT modify this variable. ---------------------------------------------------------------------- Function make-object - call make-instance with a list of additional inits (defun make-object (class more-inits &rest init-plist) ...) The returned value is the newly created object. You CAN call this function in the constructor of a new class with no superclasses. It is called by GINA whenever any object is created. ---------------------------------------------------------------------- Variable *loaded-applications* - the list of all loaded and registered applications Default: none You CAN modify this variable by calling the function register-application. ---------------------------------------------------------------------- Function register-application - make application class known to the finder (defun register-application (signature application-class file-type) ...) signature: a short string application-class: a symbol denoting an application file-type: a short string You call this function in EACH application. It is never called by GINA. This Function is called once for each application class. Example: (register-application "bitedit" 'bitmap-editor "bitmap") Signature bitedit denotes application bitmap-editor ---------------------------------------------------------------------- Function start-file - start the given file which may be a document or an application (defun start-file (pathname &key (display-host (display-host *application*)) (display-number (display-number *application*)) (screen-number (screen-number *application*)) (toolkit-host (toolkit-host *application*)) (signature nil) (from-document (first (document-list *application*)))) ...) pathname: pathname-object or string display-host: X display to use. By default the same as the calling application display-number: X display number to use. By default the same as the calling application screen-number: X screen number to use. By default the same as the calling application toolkit-host: toolkit server to use. By default the same as the calling application signature: will be automatically determined if not supplied from-document: where to popup possible error messages You CAN call this function if a foreign document or application is to be started. It is sometimes called by GINA. Example: (with-application-stopped (start-file "/vol/gina/documents/hello.appl")) start an application (with-application-stopped (start-file "/vol/gina/documents/five-rects.gredit")) open a document (with-application-stopped (start-file nil :signature "browser")) start the browser ---------------------------------------------------------------------- Class application - the superclass of all GINA applications You MUST define a subclass of this class. GINA defines subclasses of this class: only in the demo applications. You create an instance of this class to run the empty application. Class variables: name name of application Default: "GINA" document-type class of application dependent documents Default: 'document signature internal identification of application Default: "GINA" file-type type field of pathnames for saved documents Default: "empty" Instance variables: display-host where the X-server runs display-number number of display on host where X-server runs screen-number number of screen on host where X-server runs toolkit-host where the toolkit-server runs debug flag for debugging-output document-list the document objects currently open Default: nil process the process running this application Default: nil mailbox a list of messages, sent by other applications Default: nil display the CLX-display used by this application Default: nil clx-synchronous flag if CLX is run in synchronous mode Default: *clx-synchronous* xtk-connection the Motif-connection used by this application Default: nil application-shell invisible shell, root of widget hierarchy toplevel-shells List of all toplevel shells Default: nil idle-timeout time interval in seconds between calls of method idle-action Default: nil timer-id id for xtk:change-timer and friends Default: nil timer-active-in-handler keyword parameter for xtk:create-timer Default: nil inspect-click flag whether inspect-click is enabled Default: *inspect-click* debug-menu flag whether debug menu is present Default: *debug-menu* just-print-errors flag whether errors are just printed or debugger is invoked Default: t feedback-animation flag for experimental mouse-feedback animation Default: nil Methods of class application: o cleanup-actions ((app application)) (Page m114) last actions after application has stopped to process events o handle-error ((app application) condition) (Page m116) handle conditions signalled by Lisp o idle-action ((app application)) (Page m117) react to timeout when no events come in (setf idle-timeout) :after (new-idle-timeout (app application)) (Page m115) change timer when slot is modified c image->image-z ((appl application) image) (Page m362) look up cached image in z-format or convert to it and cache it c image->pixmap ((appl application) image drawable) (Page m363) lookup cached pixmap for image or create pixmap and cache it initialize-instance :after ((app application) &rest initargs) (Page m110) initialize a just created instance c pathname->image ((appl application) pathname-or-image) (Page m361) look up cached image for pathname or read file and cache it o print-object ((app application) stream) (Page m111) specialized printed representation quit-app ((app application)) (Page m120) terminate the application c restart-timer ((app application)) (Page m118) begin a new full time interval before timeout occurs c send-message ((app application) message) (Page m119) send a message to another application o startup-actions ((app application)) (Page m113) initializations before application begins to process events ---------------------------------------------------------------------- Method initialize-instance - initialize a just created instance (defmethod initialize-instance :after ((app application) &rest initargs) ...) You RARELY override this method or add deamons. The default version is sufficient for most cases. Normally, you do NOT call this method. It is called by GINA when appropriate. It is NEVER overridden by GINA. This deamon is called immediately after instantiation. It initializes the slots of class application. You can add further :after methods to initialize your subclasses. Related methods: initialize-instance :after ((doc document) &rest initargs) ---------------------------------------------------------------------- Method print-object - specialized printed representation (defmethod print-object ((app application) stream) ...) You override this method to get a special printed representation. The default version prints name and host. Normally, you do NOT call this method. It is called by GINA to denote an application object. It is NEVER overridden by GINA. Related methods: o print-object ((cb callback) stream) o print-object ((doc document) stream) ---------------------------------------------------------------------- Function make-application - create and run an application object (defun make-application (&key (display-host *default-display-host*) (display-number *default-display-number*) (screen-number *default-screen-number*) (toolkit-host *default-toolkit-host*) (document-pathname nil) (extra-process t) (debug nil) (class 'application) (more-inits nil)) ...) display-host: X display to use. display-number: X display number to use. screen-number: X screen number to use. toolkit-host: toolkit server to use. document-pathname: pathname-object or string or nil extra-process: whether the application runs in an extra process class: class of the desired application more-inits: additional initializations for the application subclass This is the constructor function for class application. The returned value is a newly created object of class application. You CAN call this function in constructors for subclasses of application. It is called by GINA whenever an application is started. Example: (make-application) starts the empty application (make-application :class 'micky:micky-application) starts the micky mouse application ---------------------------------------------------------------------- Method startup-actions - initializations before application begins to process events (defmethod startup-actions ((app application)) ...) You override this method to initialize the application using *display* and xtk:*motif-connection*. The default version does not do anything. Normally, you do NOT call this method. It is called by GINA when connections to the servers have been opened. It is NEVER overridden by GINA. ---------------------------------------------------------------------- Method cleanup-actions - last actions after application has stopped to process events (defmethod cleanup-actions ((app application)) ...) You override this method to cleanup at the end of the application. The default version does not do anything. Normally, you do NOT call this method. It is called by GINA before an application is stopped. It is NEVER overridden by GINA. ---------------------------------------------------------------------- Method (setf idle-timeout) - change timer when slot is modified (defmethod (setf idle-timeout) :after (new-idle-timeout (app application)) ...) You RARELY override this method or add deamons. The default version is sufficient for most cases. Normally, you do NOT call this method. It is called by GINA when appropriate. It is NEVER overridden by GINA. ---------------------------------------------------------------------- Method handle-error - handle conditions signalled by Lisp (defmethod handle-error ((app application) condition) ...) condition: signalled condition You override this method to define special error handling. The default version prints the error or invokes the debugger. Normally, you do NOT call this method. It is called by GINA whenever an error is signalled. It is NEVER overridden by GINA. (throw 'xtk:proceed-from-error nil) resumes execution of main loop Just returning from this will enter the debugger ---------------------------------------------------------------------- Method idle-action - react to timeout when no events come in (defmethod idle-action ((app application)) ...) You override this method to react to timeouts. The default version does not do anything. Normally, you do NOT call this method. It is called by GINA whenever the specified timeout occurs. It is NEVER overridden by GINA. You have to set the slot idle-timeout of your application to get timeouts. ---------------------------------------------------------------------- Method restart-timer - begin a new full time interval before timeout occurs (defmethod restart-timer ((app application)) ...) You RARELY override this method or add deamons. The default version is sufficient for most cases. You CAN call this method. It is never called by GINA. It is NEVER overridden by GINA. ---------------------------------------------------------------------- Method send-message - send a message to another application (defmethod send-message ((app application) message) ...) message: a function or a callback to be executed by the recipient You RARELY override this method or add deamons. The default version is sufficient for most cases. You CAN call this method to communicate with other applications. It is called by GINA to tell an application to open a document. It is NEVER overridden by GINA. Example: (with-application-stopped (send-message *application* (make-callback #'xlib:bell *display*))) Tell *application* to beep ---------------------------------------------------------------------- Method quit-app - terminate the application (defmethod quit-app ((app application)) ...) You RARELY override this method or add deamons. The default version closes all documents. Normally, you do NOT call this method. It is called by GINA in reaction to the quit menu entry. It is NEVER overridden by GINA. ---------------------------------------------------------------------- Class document - the superclass of all documents You MUST define a subclass of this class. GINA defines subclasses of this class: only in the demo applications. You never create an instance of this class. Class variables: max-history maximum number of past commands stored or NIL for unlimited history Default: nil Instance variables: file-pathname where the document is stored wildcard directory where the document is stored number used for 'Untitled ' name the name part of the pathname modified flag if document was modified since last save Default: nil undo-commands list of undoable commands Default: nil redo-commands list of redoable commands Default: nil active-mouse-command pointer to the currently active mouse-command Default: nil toplevel-shells list of all toplevel shells Default: nil views all views showing the document contents main-view the application can store the most important view here Default: nil main-shell the toplevel-window of the document shell-width width of the shell for this document Default: :auto shell-height height of the shell for this document Default: :auto active-modal-dialogs stack of modal dialogs currently visible Default: nil undo-menu-entry dynamically changing menu entry for UNDO Default: nil redo-menu-entry dynamically changing menu entry for REDO Default: nil docs-menu-entry changing menu entry for DOCUMENTS Default: nil save-menu-entry sometimes insensitive menu entry for SAVE Default: nil revert-menu-entry sometimes insensitive menu entry for REVERT Default: nil background-processes list of all running background processes Default: nil drag-protocols a list of keywords of accepted drag-commands Default: nil Methods of class document: bitmap-print ((doc document)) (Page m155) hardcopy bitmap of the main view command-executed :after ((doc document)) (Page m140) adjust undo/redo menu entries o command-executed ((doc document)) (Page m139) inform document that a command has been executed create-checkpoint ((doc document)) (Page m152) create a string describing the document contents o create-drop-command ((doc document) shell x y protocol-id transfer-value received-from) (Page m158) create a duplicate drag-command O create-windows ((doc document)) (Page m124) create the windows belonging to this document o destroy-windows ((doc document)) (Page m126) destroy all windows belonging to this document o display-empty ((doc document)) (Page m151) init and display empty document display-history-scroller ((doc document)) (Page m156) pop-up history scroller, create if necessary do-close ((doc document)) (Page m138) close document; ask for save if modified do-open ((doc document)) (Page m132) let user select a document of this type and open it initialize-instance :after ((doc document) &rest initargs) (Page m121) initialize a just created instance c irreversible-change ((doc document)) (Page m142) clear the command history c kill-all-background-processes ((doc document)) (Page m293) kill all background processes and wait for them to die c kill-background-process ((doc document) process) (Page m292) kill process, but wait until he is out of critical sections minifinder ((doc document)) (Page m134) let user select any document or application and open it (setf modified) :before (new-value (doc document)) (Page m123) set sensitivity of SAVE and REVERT menu entries new ((doc document)) (Page m131) execute the NEW menu item postscript-print ((doc document)) (Page m154) hardcopy document on postscript printer o print-object ((doc document) stream) (Page m122) specialized printed representation read-from-file ((doc document) pathname &key (create-windows t)) (Page m146) read the document from the specified file O read-from-stream ((doc document) stream) (Page m150) read the document contents from the specified stream read-header-from-stream ((doc document) stream) (Page m148) read the window-size from the specified stream redo ((doc document) &key (update-history-scroller t)) (Page m143) redo the last command undone oc redraw-views ((doc document)) (Page m130) redraw all views, because the document contents have changed o rename ((doc document) new-pathname) (Page m128) react when user has changed the name of a document replay-history ((doc document)) (Page m144) undo all commands and then redo as an animation o resize-windows ((doc document)) (Page m129) resize windows, because the document contents have changed restore-checkpoint ((doc document) checkpoint) (Page m153) restore document from a checkpoint revert ((doc document)) (Page m137) read last saved version from file save ((doc document)) (Page m136) save document to file; ask for filename if not yet known save-as ((doc document)) (Page m135) let user select a new filename and save o select-new-file ((doc document)) (Page m127) ask user for a pathname of a new document o select-old-file ((doc document) file-type) (Page m133) ask user for a pathname of an existing document o standard-menu-items ((document document) (shell document-shell)) (Page m125) create the standard menu entries for this document o test-callback ((doc document)) (Page m157) do some testing within a callback undo ((doc document) &key (update-history-scroller t)) (Page m141) undo the last command executed write-header-to-stream ((doc document) stream) (Page m147) write the window-size to the specified stream write-to-file ((doc document) pathname) (Page m145) write the document to the specified file O write-to-stream ((doc document) stream) (Page m149) write the document contents to the specified stream ---------------------------------------------------------------------- Method initialize-instance - initialize a just created instance (defmethod initialize-instance :after ((doc document) &rest initargs) ...) You RARELY override this method or add deamons. The default version is sufficient for most cases. Normally, you do NOT call this method. It is called by GINA when appropriate. It is NEVER overridden by GINA. This deamon is called immediately after instantiation. It initializes the slots of class document. You can add further :after methods to initialize your subclasses. Related methods: initialize-instance :after ((app application) &rest initargs) ---------------------------------------------------------------------- Method print-object - specialized printed representation (defmethod print-object ((doc document) stream) ...) You override this method to get a special printed representation. The default version prints name of document. Normally, you do NOT call this method. It is called by GINA to denote a document object. It is NEVER overridden by GINA. Related methods: o print-object ((app application) stream) o print-object ((cb callback) stream) ---------------------------------------------------------------------- Method (setf modified) - set sensitivity of SAVE and REVERT menu entries (defmethod (setf modified) :before (new-value (doc document)) ...) You RARELY override this method or add deamons. The default version is sufficient for most cases. Normally, you do NOT call this method. It is called by GINA when appropriate. It is NEVER overridden by GINA. You should never access the slot modified directly. ---------------------------------------------------------------------- Method create-windows - create the windows belonging to this document (defmethod create-windows ((doc document)) ...) You MUST override this method. The default version creates a window with some randomly distributed buttons. Normally, you do NOT call this method. It is called by GINA whenever a new document is created. It is NEVER overridden by GINA. ---------------------------------------------------------------------- Method standard-menu-items - create the standard menu entries for this document (defmethod standard-menu-items ((document document) (shell document-shell)) ...) You override this method if you want completely different menu entries. The default version installs all the standard enries. Normally, you do NOT call this method. It is called by GINA when a document-shell is created. It is NEVER overridden by GINA. This method is inherited by class document-shell-with-scroller. ---------------------------------------------------------------------- Method destroy-windows - destroy all windows belonging to this document (defmethod destroy-windows ((doc document)) ...) You override this method if there are more windows than the toplevel shells. The default version deletes all toplevel-shells stored in the document. Normally, you do NOT call this method. It is called by GINA whenever a document is closed. It is NEVER overridden by GINA. ---------------------------------------------------------------------- Method select-new-file - ask user for a pathname of a new document (defmethod select-new-file ((doc document)) ...) The returned value is T if a new pathname was selected, NIL otherwise. You override this method only if standard dialog box is not sufficient. The default version pops up the standard save-dialog-box. Normally, you do NOT call this method. It is called by GINA when appropriate. It is NEVER overridden by GINA. ---------------------------------------------------------------------- Method rename - react when user has changed the name of a document (defmethod rename ((doc document) new-pathname) ...) You override this method if a renaming has further consequences. The default version changes the name, wildcard and title of the main window. Normally, you do NOT call this method. It is called by GINA when a document is renamed by the user. It is NEVER overridden by GINA. ---------------------------------------------------------------------- Method resize-windows - resize windows, because the document contents have changed (defmethod resize-windows ((doc document)) ...) You override this method if also the window contents depend on the size. The default version resizes the shell. Normally, you do NOT call this method. It is called by GINA when a document is reverted to an old version. It is NEVER overridden by GINA. ---------------------------------------------------------------------- Method redraw-views - redraw all views, because the document contents have changed (defmethod redraw-views ((doc document)) ...) You override this method to redisplay more parts of the display than the views. The default version redraws all views known to the doc. You CAN call this method to redisplay all content dependent information. It is called by GINA when a document is reverted to an old version. It is NEVER overridden by GINA. ---------------------------------------------------------------------- Method new - execute the NEW menu item (defmethod new ((doc document)) ...) You RARELY override this method or add deamons. The default version creates a new document. Normally, you do NOT call this method. It is called by GINA in reaction to the new menu entry. It is NEVER overridden by GINA. ---------------------------------------------------------------------- Method do-open - let user select a document of this type and open it (defmethod do-open ((doc document)) ...) You RARELY override this method or add deamons. The default version is sufficient for most cases. Normally, you do NOT call this method. It is called by GINA in reaction to the open menu entry. It is NEVER overridden by GINA. ---------------------------------------------------------------------- Method select-old-file - ask user for a pathname of an existing document (defmethod select-old-file ((doc document) file-type) ...) The returned value is T if a pathname was selected, NIL otherwise. You override this method only if the standard open-dialog-box is not sufficient. The default version pops up standard the open-dialog-box. Normally, you do NOT call this method. It is called by GINA when appropriate. It is NEVER overridden by GINA. ---------------------------------------------------------------------- Method minifinder - let user select any document or application and open it (defmethod minifinder ((doc document)) ...) You RARELY override this method or add deamons. The default version is sufficient for most cases. Normally, you do NOT call this method. It is called by GINA in reaction to the minifinder menu entry. It is NEVER overridden by GINA. ---------------------------------------------------------------------- Method save-as - let user select a new filename and save (defmethod save-as ((doc document)) ...) You RARELY override this method or add deamons. The default version is sufficient for most cases. Normally, you do NOT call this method. It is called by GINA in reaction to the save-as menu entry. It is NEVER overridden by GINA. ---------------------------------------------------------------------- Method save - save document to file; ask for filename if not yet known (defmethod save ((doc document)) ...) You RARELY override this method or add deamons. The default version is sufficient for most cases. Normally, you do NOT call this method. It is called by GINA in reaction to the save menu entry. It is NEVER overridden by GINA. ---------------------------------------------------------------------- Method revert - read last saved version from file (defmethod revert ((doc document)) ...) You RARELY override this method or add deamons. The default version is sufficient for most cases. Normally, you do NOT call this method. It is called by GINA in reaction to the revert menu entry. It is NEVER overridden by GINA. ---------------------------------------------------------------------- Method do-close - close document; ask for save if modified (defmethod do-close ((doc document)) ...) You RARELY override this method or add deamons. The default version is sufficient for most cases. Normally, you do NOT call this method. It is called by GINA in reaction to the close menu entry. It is NEVER overridden by GINA. ---------------------------------------------------------------------- Method command-executed - inform document that a command has been executed (defmethod command-executed ((doc document)) ...) You override this method to implement actions to be done after each command. The default version does not do anything. Normally, you do NOT call this method. It is called by GINA whenever a command is executed, undone, or redone. It is NEVER overridden by GINA. Related methods: command-executed :after ((doc document)) ---------------------------------------------------------------------- Method command-executed - adjust undo/redo menu entries (defmethod command-executed :after ((doc document)) ...) You RARELY override this method or add deamons. The default version is sufficient for most cases. Normally, you do NOT call this method. It is called by GINA when appropriate. It is NEVER overridden by GINA. Related methods: o command-executed ((doc document)) ---------------------------------------------------------------------- Method undo - undo the last command executed (defmethod undo ((doc document) &key (update-history-scroller t)) ...) You RARELY override this method or add deamons. The default version is sufficient for most cases. Normally, you do NOT call this method. It is called by GINA in reaction to the undo menu entry. It is NEVER overridden by GINA. ---------------------------------------------------------------------- Method irreversible-change - clear the command history (defmethod irreversible-change ((doc document)) ...) You RARELY override this method or add deamons. The default version is sufficient for most cases. You CAN call this method to indicate that no more undo/redo possible now. It is called by GINA if an undoable command is executed that causes a change. It is NEVER overridden by GINA. ---------------------------------------------------------------------- Method redo - redo the last command undone (defmethod redo ((doc document) &key (update-history-scroller t)) ...) You RARELY override this method or add deamons. The default version is sufficient for most cases. Normally, you do NOT call this method. It is called by GINA in reaction to the redo menu entry. It is NEVER overridden by GINA. ---------------------------------------------------------------------- Method replay-history - undo all commands and then redo as an animation (defmethod replay-history ((doc document)) ...) You RARELY override this method or add deamons. The default version is sufficient for most cases. Normally, you do NOT call this method. It is called by GINA in reaction to the replay-history menu entry. It is NEVER overridden by GINA. ---------------------------------------------------------------------- Method write-to-file - write the document to the specified file (defmethod write-to-file ((doc document) pathname) ...) You RARELY override this method or add deamons. The default version opens the the pathname and writes header and contents. Normally, you do NOT call this method. It is called by GINA when the document is saved. It is NEVER overridden by GINA. ---------------------------------------------------------------------- Method read-from-file - read the document from the specified file (defmethod read-from-file ((doc document) pathname &key (create-windows t)) ...) You RARELY override this method or add deamons. The default version opens the the pathname and reads header and contents. Normally, you do NOT call this method. It is called by GINA when the document is opened. It is NEVER overridden by GINA. ---------------------------------------------------------------------- Method write-header-to-stream - write the window-size to the specified stream (defmethod write-header-to-stream ((doc document) stream) ...) You RARELY override this method or add deamons. The default version writes out signature, width and height. Normally, you do NOT call this method. It is called by GINA when the document is saved. It is NEVER overridden by GINA. ---------------------------------------------------------------------- Method read-header-from-stream - read the window-size from the specified stream (defmethod read-header-from-stream ((doc document) stream) ...) You RARELY override this method or add deamons. The default version reads signature, width and height. Normally, you do NOT call this method. It is called by GINA when the document is opened. It is NEVER overridden by GINA. ---------------------------------------------------------------------- Method write-to-stream - write the document contents to the specified stream (defmethod write-to-stream ((doc document) stream) ...) You MUST override this method. The default version does not do anything. Normally, you do NOT call this method. It is called by GINA when the document is saved. It is NEVER overridden by GINA. ---------------------------------------------------------------------- Method read-from-stream - read the document contents from the specified stream (defmethod read-from-stream ((doc document) stream) ...) You MUST override this method. The default version does not do anything. Normally, you do NOT call this method. It is called by GINA when the document is opened. It is NEVER overridden by GINA. ---------------------------------------------------------------------- Method display-empty - init and display empty document (defmethod display-empty ((doc document)) ...) You override this method if even the empty document needs content-dependent widgets. The default version does not do anything. Normally, you do NOT call this method. It is called by GINA after a new empty document is created. It is NEVER overridden by GINA. ---------------------------------------------------------------------- Method create-checkpoint - create a string describing the document contents (defmethod create-checkpoint ((doc document)) ...) You RARELY override this method or add deamons. The default version just calls write-to-stream into a string. Normally, you do NOT call this method. It is called by GINA if an undoable command is implemented by a checkpoint. It is NEVER overridden by GINA. ---------------------------------------------------------------------- Method restore-checkpoint - restore document from a checkpoint (defmethod restore-checkpoint ((doc document) checkpoint) ...) You RARELY override this method or add deamons. The default version just calls read-from-stream with a string. Normally, you do NOT call this method. It is called by GINA if an undoable command is implemented by a checkpoint. It is NEVER overridden by GINA. ---------------------------------------------------------------------- Method postscript-print - hardcopy document on postscript printer (defmethod postscript-print ((doc document)) ...) You RARELY override this method or add deamons. The default version is sufficient for most cases. Normally, you do NOT call this method. It is called by GINA in reaction to the postscript-print menu entry. It is NEVER overridden by GINA. ---------------------------------------------------------------------- Method bitmap-print - hardcopy bitmap of the main view (defmethod bitmap-print ((doc document)) ...) You RARELY override this method or add deamons. The default version is sufficient for most cases. Normally, you do NOT call this method. It is called by GINA in reaction to the bitmap-print menu entry. It is NEVER overridden by GINA. ---------------------------------------------------------------------- Method display-history-scroller - pop-up history scroller, create if necessary (defmethod display-history-scroller ((doc document)) ...) You RARELY override this method or add deamons. The default version is sufficient for most cases. Normally, you do NOT call this method. It is called by GINA in reaction to the history scroller menu entry. It is NEVER overridden by GINA. ---------------------------------------------------------------------- Method test-callback - do some testing within a callback (defmethod test-callback ((doc document)) ...) You override this method do test some code inside a callback. The default version pops up a warning dialog box. Normally, you do NOT call this method. It is called by GINA in response to the Test-Callback menu entry. It is NEVER overridden by GINA. ---------------------------------------------------------------------- Method create-drop-command - create a duplicate drag-command (defmethod create-drop-command ((doc document) shell x y protocol-id transfer-value received-from) ...) shell: the shell that received the cmd x: x-pos relative to shell y: y-pos relative to shell protocol-id: symbol identifying the cmd transfer-value: transfer-value from cmd received-from: x-window to send response to You override this method to react to drop commands understood by this document. The default version does not do anything. Normally, you do NOT call this method. It is called by GINA when a drag command enters a shell of this doc. It is NEVER overridden by GINA. ---------------------------------------------------------------------- Class view - a DrawingArea where document contents are shown It is a subclass of widget. You MUST define a subclass of this class. GINA defines subclasses of this class: only in the demo applications. You create an instance of this class to make very simple tests. Class variables: view: double-click-interval maximum time interval for double clicks in milliseconds Default: 250 overlapping-objects flag whether view-objects can overlap. If not, some operations are more efficient. Default: t Instance variables: view: document the document shown in the view scroller the scroller containing the view, if any width width of the view in pixels height height of the view in pixels backing-store flag, whether backing-store is desired x-window CLX-structure denoting the underlying window Default: nil name-of-font name of default font for this view Default: "9x15" font default font for this view gcontext CLX graphics context used for drawing primitives Default: nil printing flag, whether drawing is currently done for printing Default: nil view-objects list of objects displayed in the view Default: nil propagate-button-press flag, whether button-press is propagated to the view-objects Default: t repeated-click Number of very recent clicks Default: 1 last-click-time Internal real-time of last button-press event Default: nil widget: widget-id integer returned by CLM create-widget call group-widget-id id used when the whole group is meant widget-id-for-sons may be different from widget-id in compound widgets parent the parent widget object in the hierarchy name name string for resource database lookup width total width in pixels height total height in pixels x-pos the x-coordinate relative to the parent y-pos the y-coordinate relative to the parent Methods of class view: o button-press ((view view) code repetition x y) (Page m302) a button was pressed inside the view button-press :around ((view view) code repetition x y) (Page m301) propagate button-press to hit view-object if any c clear-area ((view view) x y width height) (Page m307) turn area into background color o destroyed ((view view) ignore) (Page m299) the view has been destroyed o determine-window-id ((view view)) (Page m297) ask for the window id of the underlying X-window draw :around ((view view) count x y width height) (Page m309) draw all view-objects in the view after drawing directly in the view o draw ((view view) count x y width height) (Page m308) draw view contents from the internal representation c draw-arc ((view view) x y width height angle1 angle2 &optional (fill-p nil)) (Page m320) call CLX Function to draw into the view c draw-arcs ((view view) arcs &optional (fill-p nil)) (Page m321) call CLX Function to draw into the view c draw-glyph ((view view) x y elt &key translate width (size :default)) (Page m322) call CLX Function to draw into the view c draw-glyphs ((view view) x y sequence &key (start 0) end translate width (size :default)) (Page m323) call CLX Function to draw into the view c draw-line ((view view) x1 y1 x2 y2 &optional (relative-p nil)) (Page m315) call CLX Function to draw into the view c draw-lines ((view view) points &key relative-p fill-p (shape :complex)) (Page m316) call CLX Function to draw into the view c draw-point ((view view) x y) (Page m313) call CLX Function to draw into the view c draw-points ((view view) points &optional relative-p) (Page m314) call CLX Function to draw into the view c draw-rectangle ((view view) x y width height &optional (fill-p nil)) (Page m318) call CLX Function to draw into the view c draw-rectangles ((view view) rectangles &optional (fill-p nil)) (Page m319) call CLX Function to draw into the view c draw-segments ((view view) segments) (Page m317) call CLX Function to draw into the view c force-redraw ((view view)) (Page m305) clear and redraw the whole view o get-refresh-candidates ((view view) objects x y width height) (Page m310) compute list of objects which may lie within invalidated rectangle o handle-button-press ((view view) &rest event-data) (Page m300) low level event handler for button-press events c install ((view-object view-object) (view view) &optional (x 0) (y 0) &key (redraw t)) (Page m325) install a view-object in a view c invalidate-rectangle ((view view) x y width height) (Page m306) clear and redraw part of the view o key-press ((view view) char code modifiers x y) (Page m303) a key was pressed inside the view o key-release ((view view) char code modifiers x y) (Page m304) a key was released in the view o resized ((view view) ignore) (Page m312) the user has resized the view (setf view-objects) :after (new-list (view view)) (Page m311) clear cached reverse list of view-objects c xor-foreground ((view view) &optional (color-to-achieve (xlib:screen-black-pixel (screen *application*)))) (Page m298) determine color value usable as gcontext-foregound for xor drawing ---------------------------------------------------------------------- Function make-view - create a new view where X graphics primitives can be used (defun make-view (parent &key (width 1000) (height 1000) (document (first (document-list *application*))) (backing-store nil) (double-buffering nil) (resize-policy :none) (class 'view) (initargs nil) (managed t) (motif-widget-class :gina-view) (motif-resources nil)) ...) parent: the parent widget object width: the initial width of the view height: the initial height of the view document: the document shown in the view backing-store: flag, whether backing-store is desired double-buffering: flag, whether all output is buffered in a pixmap resize-policy: :any :grow or :none class: view or any subclass of it initargs: further initializations for view subclass motif-resources: further Motif resource settings This is the constructor function for class view. The returned value is a newly created object of class view. You CAN call this function. It is sometimes called by GINA. ---------------------------------------------------------------------- Method determine-window-id - ask for the window id of the underlying X-window (defmethod determine-window-id ((view view)) ...) You override this method adding an :after deamon to do initializations when the x-window is known. The default version opens a font and creates a graphic-context. Normally, you do NOT call this method. It is called by GINA as soon as the widget has been realized. It is NEVER overridden by GINA. ---------------------------------------------------------------------- Method xor-foreground - determine color value usable as gcontext-foregound for xor drawing (defmethod xor-foreground ((view view) &optional (color-to-achieve (xlib:screen-black-pixel (screen *application*)))) ...) color-to-achieve: a pixel value The returned value is a pixel value that xors the view background to color-to-achieve. You RARELY override this method or add deamons. The default version is sufficient for most cases. You CAN call this method to get feedback in a different color than black. It is called by GINA before draw-feedback to set gc foreground. It is NEVER overridden by GINA. ---------------------------------------------------------------------- Method destroyed - the view has been destroyed (defmethod destroyed ((view view) ignore) ...) You override this method to do the necessary cleanup. The default version frees the gcontext. Normally, you do NOT call this method. It is called by GINA when appropriate. It is NEVER overridden by GINA. ---------------------------------------------------------------------- Method handle-button-press - low level event handler for button-press events (defmethod handle-button-press ((view view) &rest event-data) ...) event-data: a list of event details You override this method if you are interested in special event details. The default version calls method button-press with the important parameters. Normally, you do NOT call this method. It is called by GINA in response to button-press events. It is NEVER overridden by GINA. Related methods: o handle-button-press ((shell shell) &rest event-data) ---------------------------------------------------------------------- Method button-press - propagate button-press to hit view-object if any (defmethod button-press :around ((view view) code repetition x y) ...) code: which mouse button repetition: 1,2,3,.. for single, double, triple click x: relative mouse position in the view y: relative mouse position in the view You RARELY override this method or add deamons. The default version is sufficient for most cases. Normally, you do NOT call this method. It is called by GINA when appropriate. It is NEVER overridden by GINA. This deamon determines whether button-press should be called at the view or if it is called at an object installed in the view. Related methods: o button-press ((view view) code repetition x y) o button-press ((obj view-object) code repetition x y) ---------------------------------------------------------------------- Method button-press - a button was pressed inside the view (defmethod button-press ((view view) code repetition x y) ...) code: which mouse button repetition: 1,2,3,.. for single, double, triple click x: relative mouse position in the view y: relative mouse position in the view You override this method to define the desired reaction to mouse clicks. The default version selects objects installed in the view. Normally, you do NOT call this method. It is called by GINA in response to button-press events. It is NEVER overridden by GINA. Code :select denotes the left mouse button. Code :extend denotes the middle mouse button (or Shift-left). Code :menu denotes the right mouse button (or Shift-Control-left). Code :toggle denotes ctrl-left Code :other denotes any other combination Related methods: button-press :around ((view view) code repetition x y) o button-press ((obj view-object) code repetition x y) ---------------------------------------------------------------------- Method key-press - a key was pressed inside the view (defmethod key-press ((view view) char code modifiers x y) ...) char: the key character as a string code: integer identifying key modifiers: indicator for shift, ... x: mouse positioin in view when key was pressed y: mouse positioin in view when key was pressed You override this method to define the desired reaction to key input. The default version does not do anything. Normally, you do NOT call this method. It is called by GINA in response to key-press events. It is NEVER overridden by GINA. ---------------------------------------------------------------------- Method key-release - a key was released in the view (defmethod key-release ((view view) char code modifiers x y) ...) char: the key character as a string code: integer identifying key modifiers: indicator for shift, ... x: mouse positioin in view when key was pressed y: mouse positioin in view when key was pressed You override this method to define the desired reaction to key input. The default version does not do anything. Normally, you do NOT call this method. It is called by GINA in response to key-release events. It is NEVER overridden by GINA. ---------------------------------------------------------------------- Method force-redraw - clear and redraw the whole view (defmethod force-redraw ((view view)) ...) You RARELY override this method or add deamons. The default version is sufficient for most cases. You CAN call this method to reflect changes of the internal representation in the display. It is called by GINA when appropriate. It is NEVER overridden by GINA. Related methods: c force-redraw ((view-object view-object)) ---------------------------------------------------------------------- Method invalidate-rectangle - clear and redraw part of the view (defmethod invalidate-rectangle ((view view) x y width height) ...) You RARELY override this method or add deamons. The default version is sufficient for most cases. You CAN call this method to reflect changes of the internal representation in the display. It is called by GINA when appropriate. It is NEVER overridden by GINA. Related methods: c invalidate-rectangle ((view-object view-object) x y width height) ---------------------------------------------------------------------- Method clear-area - turn area into background color (defmethod clear-area ((view view) x y width height) ...) You RARELY override this method or add deamons. The default version is sufficient for most cases. You CAN call this method. It is called by GINA when appropriate. It is NEVER overridden by GINA. Related methods: c clear-area ((view-object view-object) x y width height) ---------------------------------------------------------------------- Method draw - draw view contents from the internal representation (defmethod draw ((view view) count x y width height) ...) count: number of calls to draw method that will immediately follow x: upper left corner of rectangle which has to be drawn y: upper left corner of rectangle which has to be drawn width: size of rectangle which has to be drawn height: size of rectangle which has to be drawn You override this method to define the graphical representation of your document. The default version does not do anything. Normally, you do NOT call this method. It is called by GINA in response to expose events. It is NEVER overridden by GINA. You can simply draw the whole view when count is 0. Optimized versions just draw the necessary parts. Related methods: o draw ((view-object view-object) count x y width height) draw :around ((view view) count x y width height) draw ((icon movable-icon) count x y width height) ---------------------------------------------------------------------- Method draw - draw all view-objects in the view after drawing directly in the view (defmethod draw :around ((view view) count x y width height) ...) You RARELY override this method or add deamons. The default version is sufficient for most cases. Normally, you do NOT call this method. It is called by GINA when appropriate. It is NEVER overridden by GINA. Related methods: o draw ((view view) count x y width height) o draw ((view-object view-object) count x y width height) draw ((icon movable-icon) count x y width height) ---------------------------------------------------------------------- Method get-refresh-candidates - compute list of objects which may lie within invalidated rectangle (defmethod get-refresh-candidates ((view view) objects x y width height) ...) The returned value is superset of candidate objects and flag whether set is exact, as multiple values. You override this method to optimize redraw of view-objects using application-specific information. The default version simply returns all objects. Normally, you do NOT call this method. It is called by GINA to determine objects to redraw. It is NEVER overridden by GINA. ---------------------------------------------------------------------- Method (setf view-objects) - clear cached reverse list of view-objects (defmethod (setf view-objects) :after (new-list (view view)) ...) You RARELY override this method or add deamons. The default version is sufficient for most cases. Normally, you do NOT call this method. It is called by GINA when appropriate. It is NEVER overridden by GINA. ---------------------------------------------------------------------- Method resized - the user has resized the view (defmethod resized ((view view) ignore) ...) You override this method to react when the view is resized by the user. The default version stores the new size and redraws the view. Normally, you do NOT call this method. It is called by GINA when appropriate. It is NEVER overridden by GINA. ---------------------------------------------------------------------- Method draw-point - call CLX Function to draw into the view (defmethod draw-point ((view view) x y) ...) You RARELY override this method or add deamons. The default version is sufficient for most cases. You CAN call this method (typically within the draw method of a view). It is never called by GINA. It is NEVER overridden by GINA. This method directly corresponds to the CLX function with the same name. Example: (with-application-stopped (draw-point (main-view (first (document-list *application*))) 10 10)) Related methods: c draw-point ((view-object view-object) x y) ---------------------------------------------------------------------- Method draw-points - call CLX Function to draw into the view (defmethod draw-points ((view view) points &optional relative-p) ...) points: a flat list of alternating x and y values You RARELY override this method or add deamons. The default version is sufficient for most cases. You CAN call this method (typically within the draw method of a view). It is never called by GINA. It is NEVER overridden by GINA. This method directly corresponds to the CLX function with the same name. Example: (with-application-stopped (draw-points (main-view (first (document-list *application*))) '(10 10 20 20 30 30))) draws 3 points Related methods: c draw-points ((view-object view-object) points &optional relative-p) ---------------------------------------------------------------------- Method draw-line - call CLX Function to draw into the view (defmethod draw-line ((view view) x1 y1 x2 y2 &optional (relative-p nil)) ...) You RARELY override this method or add deamons. The default version is sufficient for most cases. You CAN call this method (typically within the draw method of a view). It is never called by GINA. It is NEVER overridden by GINA. This method directly corresponds to the CLX function with the same name. Example: (with-application-stopped (draw-line (main-view (first (document-list *application*))) 10 10 50 50)) Related methods: c draw-line ((view-object view-object) x1 y1 x2 y2 &optional (relative-p nil)) ---------------------------------------------------------------------- Method draw-lines - call CLX Function to draw into the view (defmethod draw-lines ((view view) points &key relative-p fill-p (shape :complex)) ...) points: a flat list of alternating x and y values You RARELY override this method or add deamons. The default version is sufficient for most cases. You CAN call this method (typically within the draw method of a view). It is never called by GINA. It is NEVER overridden by GINA. This method directly corresponds to the CLX function with the same name. Example: (with-application-stopped (draw-lines (main-view (first (document-list *application*))) '(10 10 50 50 40 30 70 60) :fill-p t)) Related methods: c draw-lines ((view-object view-object) points &key relative-p fill-p (shape :complex)) ---------------------------------------------------------------------- Method draw-segments - call CLX Function to draw into the view (defmethod draw-segments ((view view) segments) ...) You RARELY override this method or add deamons. The default version is sufficient for most cases. You CAN call this method (typically within the draw method of a view). It is never called by GINA. It is NEVER overridden by GINA. This method directly corresponds to the CLX function with the same name. Example: (with-application-stopped (draw-segments (main-view (first (document-list *application*))) '(10 10 50 50 40 30 70 60))) Related methods: c draw-segments ((view-object view-object) segments) ---------------------------------------------------------------------- Method draw-rectangle - call CLX Function to draw into the view (defmethod draw-rectangle ((view view) x y width height &optional (fill-p nil)) ...) You RARELY override this method or add deamons. The default version is sufficient for most cases. You CAN call this method (typically within the draw method of a view). It is never called by GINA. It is NEVER overridden by GINA. This method directly corresponds to the CLX function with the same name. Example: (with-application-stopped (draw-rectangle (main-view (first (document-list *application*))) 10 10 50 50 t)) Related methods: c draw-rectangle ((view-object view-object) x y width height &optional (fill-p nil)) ---------------------------------------------------------------------- Method draw-rectangles - call CLX Function to draw into the view (defmethod draw-rectangles ((view view) rectangles &optional (fill-p nil)) ...) You RARELY override this method or add deamons. The default version is sufficient for most cases. You CAN call this method (typically within the draw method of a view). It is never called by GINA. It is NEVER overridden by GINA. This method directly corresponds to the CLX function with the same name. Example: (with-application-stopped (draw-rectangles (main-view (first (document-list *application*))) '(10 10 50 50 40 30 70 60))) draws two rectangles Related methods: c draw-rectangles ((view-object view-object) rectangles &optional (fill-p nil)) ---------------------------------------------------------------------- Method draw-arc - call CLX Function to draw into the view (defmethod draw-arc ((view view) x y width height angle1 angle2 &optional (fill-p nil)) ...) You RARELY override this method or add deamons. The default version is sufficient for most cases. You CAN call this method (typically within the draw method of a view). It is never called by GINA. It is NEVER overridden by GINA. This method directly corresponds to the CLX function with the same name. Example: (with-application-stopped (draw-arc (main-view (first (document-list *application*))) 10 10 50 50 0 (* 2 pi) t)) draws a filled circle Related methods: c draw-arc ((view-object view-object) x y width height angle1 angle2 &optional (fill-p nil)) ---------------------------------------------------------------------- Method draw-arcs - call CLX Function to draw into the view (defmethod draw-arcs ((view view) arcs &optional (fill-p nil)) ...) You RARELY override this method or add deamons. The default version is sufficient for most cases. You CAN call this method (typically within the draw method of a view). It is never called by GINA. It is NEVER overridden by GINA. This method directly corresponds to the CLX function with the same name. Example: (with-application-stopped (draw-arcs (main-view (first (document-list *application*))) `(10 10 50 50 0 ,(* 2 pi) 70 70 50 50 0 ,pi) t)) draws one and a half filled circles Related methods: c draw-arcs ((view-object view-object) arcs &optional (fill-p nil)) ---------------------------------------------------------------------- Method draw-glyph - call CLX Function to draw into the view (defmethod draw-glyph ((view view) x y elt &key translate width (size :default)) ...) You RARELY override this method or add deamons. The default version is sufficient for most cases. You CAN call this method (typically within the draw method of a view). It is never called by GINA. It is NEVER overridden by GINA. This method directly corresponds to the CLX function with the same name. Example: (with-application-stopped (draw-glyph (main-view (first (document-list *application*))) 10 20 #\a)) writes out one character Related methods: c draw-glyph ((view-object view-object) x y elt &key translate width (size :default)) ---------------------------------------------------------------------- Method draw-glyphs - call CLX Function to draw into the view (defmethod draw-glyphs ((view view) x y sequence &key (start 0) end translate width (size :default)) ...) You RARELY override this method or add deamons. The default version is sufficient for most cases. You CAN call this method (typically within the draw method of a view). It is never called by GINA. It is NEVER overridden by GINA. This method directly corresponds to the CLX function with the same name. Example: (with-application-stopped (draw-glyphs (main-view (first (document-list *application*))) 10 20 "Hello World")) writes out a string Related methods: c draw-glyphs ((view-object view-object) x y sequence &key (start 0) end translate width (size :default)) ---------------------------------------------------------------------- Class view-object - the superclass of all objects shown in views You MUST define a subclass of this class. GINA defines subclasses of this class: objects which can be moved and resized with the mouse. You create an instance of this class for testing only. Class variables: facilities one-of nil, :selectable, :movable, :move-and-selectable, :resizable Default: nil outlines flag whether complete object is moved or just an outline Default: t handle-size size of little rectangles indicating selected state Default: 5 Instance variables: width extension of enclosing rectangle in pixels height extension of enclosing rectangle in pixels mouse-sensitive whether button-press is should be propagated to this object parent-view the view containing the object Default: nil x-pos the x-coordinate relative to the containing view Default: nil y-pos the y-coordinate relative to the containing view Default: nil selected flag whether object is currently selected Default: nil Methods of class view-object: o button-press ((obj view-object) code repetition x y) (Page m336) react to button-press event in the object c clear-area ((view-object view-object) x y width height) (Page m352) call same method of the view, but take position into account o constrain-position ((obj view-object) x y) (Page m341) modify x and y position of object during move o constrain-size ((obj view-object) width height) (Page m342) modify width and height of object during resize o create-handle-command ((obj view-object) code x y which-handle) (Page m345) creates a command to react to dragging a handle c deinstall ((view-object view-object) &key (redraw t)) (Page m326) remove view-object from the list of view-objects of its parent-view o double-clicked ((obj view-object) code repetition x y) (Page m337) a button was double clicked in the view-object o draw ((view-object view-object) count x y width height) (Page m335) draw view-object contents from the internal representation c draw-arc ((view-object view-object) x y width height angle1 angle2 &optional (fill-p nil)) (Page m355) call same method of the view, but take position into account c draw-arcs ((view-object view-object) arcs &optional (fill-p nil)) (Page m356) call same method of the view, but take position into account c draw-glyph ((view-object view-object) x y elt &key translate width (size :default)) (Page m357) call same method of the view, but take position into account c draw-glyphs ((view-object view-object) x y sequence &key (start 0) end translate width (size :default)) (Page m358) call same method of the view, but take position into account c draw-line ((view-object view-object) x1 y1 x2 y2 &optional (relative-p nil)) (Page m349) call same method of the view, but take position into account c draw-lines ((view-object view-object) points &key relative-p fill-p (shape :complex)) (Page m350) call same method of the view, but take position into account o draw-outline ((obj view-object) new-x new-y width height &key clear) (Page m340) draw outline of the object while being moved or resized c draw-point ((view-object view-object) x y) (Page m347) call same method of the view, but take position into account c draw-points ((view-object view-object) points &optional relative-p) (Page m348) call same method of the view, but take position into account c draw-rectangle ((view-object view-object) x y width height &optional (fill-p nil)) (Page m353) call same method of the view, but take position into account c draw-rectangles ((view-object view-object) rectangles &optional (fill-p nil)) (Page m354) call same method of the view, but take position into account c draw-segments ((view-object view-object) segments) (Page m351) call same method of the view, but take position into account o draw-selected ((obj view-object) count x y width height) (Page m339) draw something to indicate that the object is currently selected c force-redraw ((view-object view-object)) (Page m334) redraw the whole view-object oc handle-selection ((obj view-object) code) (Page m346) perform selection action depending on button code oc inside-rectangle ((view-object view-object) rect-x rect-y rect-width rect-height) (Page m328) check if object intersects with the rectangle c install ((view-object view-object) (view view) &optional (x 0) (y 0) &key (redraw t)) (Page m325) install a view-object in a view c invalidate-rectangle ((view-object view-object) x y width height) (Page m333) redraw part of the view-object c move ((view-object view-object) new-x new-y &key (redraw t) &allow-other-keys) (Page m330) change x and y coordinates oc point-inside ((view-object view-object) x y) (Page m327) check if given point in view coordinates is inside the object c reconfigure ((view-object view-object) new-x new-y new-width new-height &key (redraw t) &allow-other-keys) (Page m332) change position and size o reconfigured-by-user ((obj view-object) was-moved was-resized) (Page m344) to react to move and resize commands for an object c resize ((view-object view-object) new-width new-height &key (redraw t) &allow-other-keys) (Page m331) change width and height c (setf selected) (new-value (obj view-object)) (Page m338) set slot selected and force redraw o which-resize-handle ((obj view-object) x y) (Page m343) determine which resize handle is at point (x,y) if any ---------------------------------------------------------------------- Function make-view-object - create a graphical object within a view (defun make-view-object (width height &key (mouse-sensitive t) (class 'view-object) (initargs nil)) ...) width: extension of enclosing rectangle in pixels height: extension of enclosing rectangle in pixels mouse-sensitive: flag whether button-press is should be propagted to this object class: 'view-object or any subclass initargs: further initializations for view-object subclass This is the constructor function for class view-object. The returned value is a newly created object of class view-object. You CAN call this function. It is never called by GINA. View-objects can exist without being installed in any view. ---------------------------------------------------------------------- Method install - install a view-object in a view (defmethod install ((view-object view-object) (view view) &optional (x 0) (y 0) &key (redraw t)) ...) view-object: the object to install view: the view where it is installed x: position in the view where object is installed y: position in the view where object is installed redraw: flag whether effect is immediately shown on the screen You RARELY override this method or add deamons. The default version is sufficient for most cases. You CAN call this method. It is never called by GINA. It is NEVER overridden by GINA. Example: (with-application-stopped (install (make-view-object 100 100) (main-view (first (document-list *application*))) 10 20)) installs a view object into the view This method is inherited by class movable-icon and direct-manipulation-object. ---------------------------------------------------------------------- Method deinstall - remove view-object from the list of view-objects of its parent-view (defmethod deinstall ((view-object view-object) &key (redraw t)) ...) view-object: the object to deinstall redraw: flag whether effect is immediately shown on the screen You RARELY override this method or add deamons. The default version is sufficient for most cases. You CAN call this method. It is never called by GINA. It is NEVER overridden by GINA. Example: (with-application-stopped (deinstall (first (view-objects (main-view (first (document-list *application*))))))) This method is inherited by class movable-icon and direct-manipulation-object. ---------------------------------------------------------------------- Macro point-inside-rectangle - check if a given point lies within a certain rectangle (defmacro point-inside-rectangle (x y rect-x rect-y rect-width rect-height) ...) You CAN call this macro. It is sometimes called by GINA. ---------------------------------------------------------------------- Method point-inside - check if given point in view coordinates is inside the object (defmethod point-inside ((view-object view-object) x y) ...) You override this method for non-rectangular objects. The default version is sufficient for most cases. You CAN call this method. It is called by GINA when appropriate. It is NEVER overridden by GINA. This method is inherited by class movable-icon and direct-manipulation-object. Related methods: c point-inside ((widget widget) x y) point-inside ((icon movable-icon) x y) ---------------------------------------------------------------------- Method inside-rectangle - check if object intersects with the rectangle (defmethod inside-rectangle ((view-object view-object) rect-x rect-y rect-width rect-height) ...) You override this method for non-rectangular objects. The default version is sufficient for most cases. You CAN call this method. It is called by GINA when appropriate. It is NEVER overridden by GINA. This method is inherited by class movable-icon and direct-manipulation-object. ---------------------------------------------------------------------- Function rectangles-overlap - check if two given rectangles overlap (defun rectangles-overlap (x1 y1 width1 height1 x2 y2 width2 height2) ...) You CAN call this function. It is sometimes called by GINA. ---------------------------------------------------------------------- Method move - change x and y coordinates (defmethod move ((view-object view-object) new-x new-y &key (redraw t) &allow-other-keys) ...) new-x: desired position within the view new-y: desired position within the view redraw: flag whether effect is immediately shown on the screen You RARELY override this method or add deamons. The default version is sufficient for most cases. You CAN call this method. It is called by GINA when appropriate. It is NEVER overridden by GINA. This method is inherited by class movable-icon and direct-manipulation-object. Related methods: c move ((widget widget) new-x new-y &key &allow-other-keys) ---------------------------------------------------------------------- Method resize - change width and height (defmethod resize ((view-object view-object) new-width new-height &key (redraw t) &allow-other-keys) ...) new-width: desired size new-height: desired size redraw: flag whether effect is immediately shown on the screen You RARELY override this method or add deamons. The default version is sufficient for most cases. You CAN call this method. It is called by GINA when appropriate. It is NEVER overridden by GINA. This method is inherited by class movable-icon and direct-manipulation-object. Related methods: c resize ((widget widget) new-width new-height &key &allow-other-keys) ---------------------------------------------------------------------- Method reconfigure - change position and size (defmethod reconfigure ((view-object view-object) new-x new-y new-width new-height &key (redraw t) &allow-other-keys) ...) new-x: desired position within the view new-y: desired position within the view new-width: desired size new-height: desired size redraw: flag whether effect is immediately shown You RARELY override this method or add deamons. The default version is sufficient for most cases. You CAN call this method. It is called by GINA when appropriate. It is NEVER overridden by GINA. This method is inherited by class movable-icon and direct-manipulation-object. ---------------------------------------------------------------------- Method invalidate-rectangle - redraw part of the view-object (defmethod invalidate-rectangle ((view-object view-object) x y width height) ...) You RARELY override this method or add deamons. The default version is sufficient for most cases. You CAN call this method. It is called by GINA when appropriate. It is NEVER overridden by GINA. This method is inherited by class movable-icon and direct-manipulation-object. Related methods: c invalidate-rectangle ((view view) x y width height) ---------------------------------------------------------------------- Method force-redraw - redraw the whole view-object (defmethod force-redraw ((view-object view-object)) ...) You RARELY override this method or add deamons. The default version is sufficient for most cases. You CAN call this method. It is called by GINA when appropriate. It is NEVER overridden by GINA. This method is inherited by class movable-icon and direct-manipulation-object. Related methods: c force-redraw ((view view)) ---------------------------------------------------------------------- Method draw - draw view-object contents from the internal representation (defmethod draw ((view-object view-object) count x y width height) ...) count: number of calls to draw method that will immediately follow x: upper left corner of rectangle which has to be drawn y: upper left corner of rectangle which has to be drawn width: size of rectangle which has to be drawn height: size of rectangle which has to be drawn You override this method to define the graphical representation of your view-object. The default version draws a rectangle. Normally, you do NOT call this method. It is called by GINA in response to expose events. It is NEVER overridden by GINA. You can simply draw the whole view-object when count is 0. Optimized versions just draw the necessary parts. This method is inherited by class movable-icon and direct-manipulation-object. Related methods: o draw ((view view) count x y width height) draw :around ((view view) count x y width height) draw ((icon movable-icon) count x y width height) ---------------------------------------------------------------------- Method button-press - react to button-press event in the object (defmethod button-press ((obj view-object) code repetition x y) ...) code: which mouse button repetition: 1,2,3,.. for single, double, triple click x: relative mouse position in the view-object y: relative mouse position in the view-object You override this method to define the desired reaction to mouse clicks. The default version moves, selects or resizes the object. Normally, you do NOT call this method. It is called by GINA if a button is pressed inside the object. It is NEVER overridden by GINA. Code :select denotes the left mouse button. Code :extend denotes the middle mouse button (or Shift-left). Code :menu denotes the right mouse button (or Shift-Control-left). Code :toggle denotes ctrl-left Code :other denotes any other combination This method is inherited by class movable-icon and direct-manipulation-object. Related methods: button-press :around ((view view) code repetition x y) o button-press ((view view) code repetition x y) ---------------------------------------------------------------------- Method double-clicked - a button was double clicked in the view-object (defmethod double-clicked ((obj view-object) code repetition x y) ...) code: which mouse button repetition: 2,3,.. for double, triple click x: relative mouse position in the view-object y: relative mouse position in the view-object You override this method to define the desired reaction to double clicks. The default version does not do anything. Normally, you do NOT call this method. It is called by GINA in response to multiple button-press events. It is NEVER overridden by GINA. Code :select denotes the left mouse button. Code :extend denotes the middle mouse button (or Shift-left). Code :menu denotes the right mouse button (or Shift-Control-left). Code :toggle denotes ctrl-left Code :other denotes any other combination This method is inherited by class movable-icon and direct-manipulation-object. ---------------------------------------------------------------------- Method (setf selected) - set slot selected and force redraw (defmethod (setf selected) (new-value (obj view-object)) ...) You RARELY override this method or add deamons. The default version is sufficient for most cases. You CAN call this method to select an object from the program. It is called by GINA when appropriate. It is NEVER overridden by GINA. This method is inherited by class movable-icon and direct-manipulation-object. ---------------------------------------------------------------------- Method draw-selected - draw something to indicate that the object is currently selected (defmethod draw-selected ((obj view-object) count x y width height) ...) count: number of calls to draw method that will immediately follow x: upper left corner of rectangle which has to be drawn y: upper left corner of rectangle which has to be drawn width: size of rectangle which has to be drawn height: size of rectangle which has to be drawn You override this method indicate selected state in a different way. The default version draws 4 selection handles. Normally, you do NOT call this method. It is called by GINA in response to expose events if object is selected. It is overridden by GINA in class movable-icon. You can simply draw the whole object as selected when count is 0. Optimized versions just draw the necessary parts. This method is inherited by class movable-icon and direct-manipulation-object. Related methods: draw-selected ((icon movable-icon) count x y width height) ---------------------------------------------------------------------- Method draw-outline - draw outline of the object while being moved or resized (defmethod draw-outline ((obj view-object) new-x new-y width height &key clear) ...) new-x: current position new-y: current position width: current size height: current size clear: flag whether outline should be drawn or cleared You override this method if a different form of feedback is desired. The default version draws a dashed rectangle. Normally, you do NOT call this method. It is called by GINA during move and resize commands. It is NEVER overridden by GINA. :function boole-xor is set in gcontext before this method is called. This method is inherited by class movable-icon and direct-manipulation-object. Related methods: draw-outline ((icon movable-icon) new-x new-y width height &key clear) ---------------------------------------------------------------------- Method constrain-position - modify x and y position of object during move (defmethod constrain-position ((obj view-object) x y) ...) x: desired object position y: desired object position The returned value is x and y as multiple values. You override this method to constrain movement to certain locations in the view. The default version returns x and y unmodified. Normally, you do NOT call this method. It is called by GINA while object is moved. It is NEVER overridden by GINA. This method is inherited by class movable-icon and direct-manipulation-object. ---------------------------------------------------------------------- Method constrain-size - modify width and height of object during resize (defmethod constrain-size ((obj view-object) width height) ...) width: desired object width height: desired object height The returned value is width and height as multiple values. You override this method to constrain possible sizes. The default version returns width and height unmodified. Normally, you do NOT call this method. It is called by GINA while object is resized. It is NEVER overridden by GINA. This method is inherited by class movable-icon and direct-manipulation-object. ---------------------------------------------------------------------- Method which-resize-handle - determine which resize handle is at point (x,y) if any (defmethod which-resize-handle ((obj view-object) x y) ...) The returned value is 1 to 4 if handle hit (counterclock), else 0. You override this method if the handles do not sit at the corners of the enclosing rectangle. The default version assumes that the handles sit at the corners of the enclosing rectangle. Normally, you do NOT call this method. It is called by GINA when the mouse is clicked into an object. It is NEVER overridden by GINA. This method is inherited by class movable-icon and direct-manipulation-object. ---------------------------------------------------------------------- Method reconfigured-by-user - to react to move and resize commands for an object (defmethod reconfigured-by-user ((obj view-object) was-moved was-resized) ...) was-moved: if obj has been moved was-resized: if object has been resized You override this method if additional reaction is required. The default version does not do anything. Normally, you do NOT call this method. It is called by GINA during command execution. It is NEVER overridden by GINA. This method is inherited by class movable-icon and direct-manipulation-object. ---------------------------------------------------------------------- Method create-handle-command - creates a command to react to dragging a handle (defmethod create-handle-command ((obj view-object) code x y which-handle) ...) which-handle: the handle hit You override this method if other than rectangle-resize operation is desired. The default version calls make-object-resizer. Normally, you do NOT call this method. It is called by GINA on button press in a handle. It is NEVER overridden by GINA. This method is inherited by class movable-icon and direct-manipulation-object. ---------------------------------------------------------------------- Method handle-selection - perform selection action depending on button code (defmethod handle-selection ((obj view-object) code) ...) code: which mouse button You override this method for non-standard selection model. The default version is sufficient for most cases. You CAN call this method in app-specific button-press method. It is called by GINA in button-press method if selectable. It is NEVER overridden by GINA. This method is inherited by class movable-icon and direct-manipulation-object. ---------------------------------------------------------------------- Method draw-point - call same method of the view, but take position into account (defmethod draw-point ((view-object view-object) x y) ...) You RARELY override this method or add deamons. The default version is sufficient for most cases. You CAN call this method (typically within the draw method of a view-object). It is never called by GINA. It is NEVER overridden by GINA. This method directly corresponds to the CLX function with the same name. Example: (with-application-stopped (draw-point (first (view-objects (main-view (first (document-list *application*))))) 10 10)) This method is inherited by class movable-icon and direct-manipulation-object. Related methods: c draw-point ((view view) x y) ---------------------------------------------------------------------- Method draw-points - call same method of the view, but take position into account (defmethod draw-points ((view-object view-object) points &optional relative-p) ...) You RARELY override this method or add deamons. The default version is sufficient for most cases. You CAN call this method (typically within the draw method of a view-object). It is never called by GINA. It is NEVER overridden by GINA. This method directly corresponds to the CLX function with the same name. Example: (with-application-stopped (draw-points (first (view-objects (main-view (first (document-list *application*))))) '(10 10 20 20 30 30))) draws 3 points This method is inherited by class movable-icon and direct-manipulation-object. Related methods: c draw-points ((view view) points &optional relative-p) ---------------------------------------------------------------------- Method draw-line - call same method of the view, but take position into account (defmethod draw-line ((view-object view-object) x1 y1 x2 y2 &optional (relative-p nil)) ...) You RARELY override this method or add deamons. The default version is sufficient for most cases. You CAN call this method (typically within the draw method of a view-object). It is never called by GINA. It is NEVER overridden by GINA. This method directly corresponds to the CLX function with the same name. Example: (with-application-stopped (draw-line (first (view-objects (main-view (first (document-list *application*))))) 10 10 50 50)) This method is inherited by class movable-icon and direct-manipulation-object. Related methods: c draw-line ((view view) x1 y1 x2 y2 &optional (relative-p nil)) ---------------------------------------------------------------------- Method draw-lines - call same method of the view, but take position into account (defmethod draw-lines ((view-object view-object) points &key relative-p fill-p (shape :complex)) ...) You RARELY override this method or add deamons. The default version is sufficient for most cases. You CAN call this method (typically within the draw method of a view-object). It is never called by GINA. It is NEVER overridden by GINA. This method directly corresponds to the CLX function with the same name. Example: (with-application-stopped (draw-lines (first (view-objects (main-view (first (document-list *application*))))) '(10 10 50 50 40 30 70 60) :fill-p t)) This method is inherited by class movable-icon and direct-manipulation-object. Related methods: c draw-lines ((view view) points &key relative-p fill-p (shape :complex)) ---------------------------------------------------------------------- Method draw-segments - call same method of the view, but take position into account (defmethod draw-segments ((view-object view-object) segments) ...) You RARELY override this method or add deamons. The default version is sufficient for most cases. You CAN call this method (typically within the draw method of a view-object). It is never called by GINA. It is NEVER overridden by GINA. This method directly corresponds to the CLX function with the same name. Example: (with-application-stopped (draw-segments (first (view-objects (main-view (first (document-list *application*))))) '(10 10 50 50 40 30 70 60))) This method is inherited by class movable-icon and direct-manipulation-object. Related methods: c draw-segments ((view view) segments) ---------------------------------------------------------------------- Method clear-area - call same method of the view, but take position into account (defmethod clear-area ((view-object view-object) x y width height) ...) You RARELY override this method or add deamons. The default version is sufficient for most cases. You CAN call this method (typically within the draw method of a view-object). It is never called by GINA. It is NEVER overridden by GINA. This method directly corresponds to the CLX function with the same name. Example: (with-application-stopped (clear-area (first (view-objects (main-view (first (document-list *application*))))) 10 10 50 50)) This method is inherited by class movable-icon and direct-manipulation-object. Related methods: c clear-area ((view view) x y width height) ---------------------------------------------------------------------- Method draw-rectangle - call same method of the view, but take position into account (defmethod draw-rectangle ((view-object view-object) x y width height &optional (fill-p nil)) ...) You RARELY override this method or add deamons. The default version is sufficient for most cases. You CAN call this method (typically within the draw method of a view-object). It is never called by GINA. It is NEVER overridden by GINA. This method directly corresponds to the CLX function with the same name. Example: (with-application-stopped (draw-rectangle (first (view-objects (main-view (first (document-list *application*))))) 10 10 50 50 t)) This method is inherited by class movable-icon and direct-manipulation-object. Related methods: c draw-rectangle ((view view) x y width height &optional (fill-p nil)) ---------------------------------------------------------------------- Method draw-rectangles - call same method of the view, but take position into account (defmethod draw-rectangles ((view-object view-object) rectangles &optional (fill-p nil)) ...) You RARELY override this method or add deamons. The default version is sufficient for most cases. You CAN call this method (typically within the draw method of a view-object). It is never called by GINA. It is NEVER overridden by GINA. This method directly corresponds to the CLX function with the same name. Example: (with-application-stopped (draw-rectangles (first (view-objects (main-view (first (document-list *application*))))) '(10 10 50 50 40 30 70 60))) draws two rectangles This method is inherited by class movable-icon and direct-manipulation-object. Related methods: c draw-rectangles ((view view) rectangles &optional (fill-p nil)) ---------------------------------------------------------------------- Method draw-arc - call same method of the view, but take position into account (defmethod draw-arc ((view-object view-object) x y width height angle1 angle2 &optional (fill-p nil)) ...) You RARELY override this method or add deamons. The default version is sufficient for most cases. You CAN call this method (typically within the draw method of a view-object). It is never called by GINA. It is NEVER overridden by GINA. This method directly corresponds to the CLX function with the same name. Example: (with-application-stopped (draw-arc (first (view-objects (main-view (first (document-list *application*))))) 10 10 50 50 0 (* 2 pi) t)) draws a filled circle This method is inherited by class movable-icon and direct-manipulation-object. Related methods: c draw-arc ((view view) x y width height angle1 angle2 &optional (fill-p nil)) ---------------------------------------------------------------------- Method draw-arcs - call same method of the view, but take position into account (defmethod draw-arcs ((view-object view-object) arcs &optional (fill-p nil)) ...) You RARELY override this method or add deamons. The default version is sufficient for most cases. You CAN call this method (typically within the draw method of a view-object). It is never called by GINA. It is NEVER overridden by GINA. This method directly corresponds to the CLX function with the same name. Example: (with-application-stopped (draw-arcs (first (view-objects (main-view (first (document-list *application*))))) `(10 10 50 50 0 ,(* 2 pi) 70 70 50 50 0 ,pi) t)) draws one and a half filled circles This method is inherited by class movable-icon and direct-manipulation-object. Related methods: c draw-arcs ((view view) arcs &optional (fill-p nil)) ---------------------------------------------------------------------- Method draw-glyph - call same method of the view, but take position into account (defmethod draw-glyph ((view-object view-object) x y elt &key translate width (size :default)) ...) You RARELY override this method or add deamons. The default version is sufficient for most cases. You CAN call this method (typically within the draw method of a view-object). It is never called by GINA. It is NEVER overridden by GINA. This method directly corresponds to the CLX function with the same name. Example: (with-application-stopped (draw-glyph (first (view-objects (main-view (first (document-list *application*))))) 10 20 #\a)) writes out one character This method is inherited by class movable-icon and direct-manipulation-object. Related methods: c draw-glyph ((view view) x y elt &key translate width (size :default)) ---------------------------------------------------------------------- Method draw-glyphs - call same method of the view, but take position into account (defmethod draw-glyphs ((view-object view-object) x y sequence &key (start 0) end translate width (size :default)) ...) You RARELY override this method or add deamons. The default version is sufficient for most cases. You CAN call this method (typically within the draw method of a view-object). It is never called by GINA. It is NEVER overridden by GINA. This method directly corresponds to the CLX function with the same name. Example: (with-application-stopped (draw-glyphs (first (view-objects (main-view (first (document-list *application*))))) 10 20 "Hello World")) writes out a string This method is inherited by class movable-icon and direct-manipulation-object. Related methods: c draw-glyphs ((view view) x y sequence &key (start 0) end translate width (size :default)) ---------------------------------------------------------------------- Class direct-manipulation-object - a view-object with direct-manipulation capabilities It is a subclass of view-object. You MUST define a subclass of this class. GINA defines subclasses of this class: movable icons and in the demo applications. You create an instance of this class for testing only. Class variables: direct-manipulation-object: facilities one-of nil, :selectable, :movable, :move-and-selectable, :resizable Default: :resizable view-object: facilities one-of nil, :selectable, :movable, :move-and-selectable, :resizable Default: nil outlines flag whether complete object is moved or just an outline Default: t handle-size size of little rectangles indicating selected state Default: 5 Instance variables: view-object: width extension of enclosing rectangle in pixels height extension of enclosing rectangle in pixels mouse-sensitive whether button-press is should be propagated to this object parent-view the view containing the object Default: nil x-pos the x-coordinate relative to the containing view Default: nil y-pos the y-coordinate relative to the containing view Default: nil selected flag whether object is currently selected Default: nil Methods of class direct-manipulation-object: Methods of Superclasses: o button-press ((obj view-object) code repetition x y) (Page m336) react to button-press event in the object c clear-area ((view-object view-object) x y width height) (Page m352) call same method of the view, but take position into account o constrain-position ((obj view-object) x y) (Page m341) modify x and y position of object during move o constrain-size ((obj view-object) width height) (Page m342) modify width and height of object during resize o create-handle-command ((obj view-object) code x y which-handle) (Page m345) creates a command to react to dragging a handle c deinstall ((view-object view-object) &key (redraw t)) (Page m326) remove view-object from the list of view-objects of its parent-view o double-clicked ((obj view-object) code repetition x y) (Page m337) a button was double clicked in the view-object o draw ((view-object view-object) count x y width height) (Page m335) draw view-object contents from the internal representation c draw-arc ((view-object view-object) x y width height angle1 angle2 &optional (fill-p nil)) (Page m355) call same method of the view, but take position into account c draw-arcs ((view-object view-object) arcs &optional (fill-p nil)) (Page m356) call same method of the view, but take position into account c draw-glyph ((view-object view-object) x y elt &key translate width (size :default)) (Page m357) call same method of the view, but take position into account c draw-glyphs ((view-object view-object) x y sequence &key (start 0) end translate width (size :default)) (Page m358) call same method of the view, but take position into account c draw-line ((view-object view-object) x1 y1 x2 y2 &optional (relative-p nil)) (Page m349) call same method of the view, but take position into account c draw-lines ((view-object view-object) points &key relative-p fill-p (shape :complex)) (Page m350) call same method of the view, but take position into account o draw-outline ((obj view-object) new-x new-y width height &key clear) (Page m340) draw outline of the object while being moved or resized c draw-point ((view-object view-object) x y) (Page m347) call same method of the view, but take position into account c draw-points ((view-object view-object) points &optional relative-p) (Page m348) call same method of the view, but take position into account c draw-rectangle ((view-object view-object) x y width height &optional (fill-p nil)) (Page m353) call same method of the view, but take position into account c draw-rectangles ((view-object view-object) rectangles &optional (fill-p nil)) (Page m354) call same method of the view, but take position into account c draw-segments ((view-object view-object) segments) (Page m351) call same method of the view, but take position into account o draw-selected ((obj view-object) count x y width height) (Page m339) draw something to indicate that the object is currently selected c force-redraw ((view-object view-object)) (Page m334) redraw the whole view-object oc handle-selection ((obj view-object) code) (Page m346) perform selection action depending on button code oc inside-rectangle ((view-object view-object) rect-x rect-y rect-width rect-height) (Page m328) check if object intersects with the rectangle c install ((view-object view-object) (view view) &optional (x 0) (y 0) &key (redraw t)) (Page m325) install a view-object in a view c invalidate-rectangle ((view-object view-object) x y width height) (Page m333) redraw part of the view-object c move ((view-object view-object) new-x new-y &key (redraw t) &allow-other-keys) (Page m330) change x and y coordinates oc point-inside ((view-object view-object) x y) (Page m327) check if given point in view coordinates is inside the object c reconfigure ((view-object view-object) new-x new-y new-width new-height &key (redraw t) &allow-other-keys) (Page m332) change position and size o reconfigured-by-user ((obj view-object) was-moved was-resized) (Page m344) to react to move and resize commands for an object c resize ((view-object view-object) new-width new-height &key (redraw t) &allow-other-keys) (Page m331) change width and height c (setf selected) (new-value (obj view-object)) (Page m338) set slot selected and force redraw o which-resize-handle ((obj view-object) x y) (Page m343) determine which resize handle is at point (x,y) if any ---------------------------------------------------------------------- Function make-direct-manipulation-object - create a new direct manipulation object (defun make-direct-manipulation-object (width height &key (mouse-sensitive t) (class 'direct-manipulation-object) (initargs nil)) ...) width: extension of enclosing rectangle in pixels height: extension of enclosing rectangle in pixels mouse-sensitive: flag whether button-press is should be propagated to this object class: 'direct-manipulation-object or any subclass initargs: further initializations for subclass This is the constructor function for class direct-manipulation-object. The returned value is a newly created object of class direct-manipulation-object. You CAN call this function. It is never called by GINA. Direct-manipulation objects can exist without beeing installed in a view. Example: (with-application-stopped (install (make-direct-manipulation-object 100 100) (main-view (first (document-list *application*))) 100 100)) ---------------------------------------------------------------------- Class movable-icon - A direct manipulation-object displaying a pixmap It is a subclass of direct-manipulation-object and view-object. You CAN define a subclass of this class. GINA defines subclasses of this class: only in the chess demo application. You can create an instance of this class. Class variables: movable-icon: facilities one-of nil, :selectable, :movable, :move-and-selectable, :resizable Default: :move-and-selectable outlines flag whether complete (solid) icon is moved (default) or just xor the icon Default: nil direct-manipulation-object: facilities one-of nil, :selectable, :movable, :move-and-selectable, :resizable Default: :resizable view-object: facilities one-of nil, :selectable, :movable, :move-and-selectable, :resizable Default: nil outlines flag whether complete object is moved or just an outline Default: t handle-size size of little rectangles indicating selected state Default: 5 Instance variables: movable-icon: icon-pixmap Pixmap of icon on X-server side Default: nil mask-pixmap Pixmap of mask on X-server side Default: nil icon-image Image structure of icon as read from file mask-image Image structure of mask as read from file shadow-offset Offset of shadow (0 = no shadow) left-margin Free space on left of icon top-margin Free space on top of icon view-object: width extension of enclosing rectangle in pixels height extension of enclosing rectangle in pixels mouse-sensitive whether button-press is should be propagated to this object parent-view the view containing the object Default: nil x-pos the x-coordinate relative to the containing view Default: nil y-pos the y-coordinate relative to the containing view Default: nil selected flag whether object is currently selected Default: nil Methods of class movable-icon: draw ((icon movable-icon) count x y width height) (Page m364) Draw icon optionally with shadow from stored pixmap draw-outline ((icon movable-icon) new-x new-y width height &key clear) (Page m365) draw icon using xor while being moved draw-selected ((icon movable-icon) count x y width height) (Page m366) do nothing because already done in draw method point-inside ((icon movable-icon) x y) (Page m367) check if given point in view coordinates is inside the icon Methods of Superclasses: o button-press ((obj view-object) code repetition x y) (Page m336) react to button-press event in the object c clear-area ((view-object view-object) x y width height) (Page m352) call same method of the view, but take position into account o constrain-position ((obj view-object) x y) (Page m341) modify x and y position of object during move o constrain-size ((obj view-object) width height) (Page m342) modify width and height of object during resize o create-handle-command ((obj view-object) code x y which-handle) (Page m345) creates a command to react to dragging a handle c deinstall ((view-object view-object) &key (redraw t)) (Page m326) remove view-object from the list of view-objects of its parent-view o double-clicked ((obj view-object) code repetition x y) (Page m337) a button was double clicked in the view-object o draw ((view-object view-object) count x y width height) (Page m335) draw view-object contents from the internal representation c draw-arc ((view-object view-object) x y width height angle1 angle2 &optional (fill-p nil)) (Page m355) call same method of the view, but take position into account c draw-arcs ((view-object view-object) arcs &optional (fill-p nil)) (Page m356) call same method of the view, but take position into account c draw-glyph ((view-object view-object) x y elt &key translate width (size :default)) (Page m357) call same method of the view, but take position into account c draw-glyphs ((view-object view-object) x y sequence &key (start 0) end translate width (size :default)) (Page m358) call same method of the view, but take position into account c draw-line ((view-object view-object) x1 y1 x2 y2 &optional (relative-p nil)) (Page m349) call same method of the view, but take position into account c draw-lines ((view-object view-object) points &key relative-p fill-p (shape :complex)) (Page m350) call same method of the view, but take position into account o draw-outline ((obj view-object) new-x new-y width height &key clear) (Page m340) draw outline of the object while being moved or resized c draw-point ((view-object view-object) x y) (Page m347) call same method of the view, but take position into account c draw-points ((view-object view-object) points &optional relative-p) (Page m348) call same method of the view, but take position into account c draw-rectangle ((view-object view-object) x y width height &optional (fill-p nil)) (Page m353) call same method of the view, but take position into account c draw-rectangles ((view-object view-object) rectangles &optional (fill-p nil)) (Page m354) call same method of the view, but take position into account c draw-segments ((view-object view-object) segments) (Page m351) call same method of the view, but take position into account o draw-selected ((obj view-object) count x y width height) (Page m339) draw something to indicate that the object is currently selected c force-redraw ((view-object view-object)) (Page m334) redraw the whole view-object oc handle-selection ((obj view-object) code) (Page m346) perform selection action depending on button code oc inside-rectangle ((view-object view-object) rect-x rect-y rect-width rect-height) (Page m328) check if object intersects with the rectangle c install ((view-object view-object) (view view) &optional (x 0) (y 0) &key (redraw t)) (Page m325) install a view-object in a view c invalidate-rectangle ((view-object view-object) x y width height) (Page m333) redraw part of the view-object c move ((view-object view-object) new-x new-y &key (redraw t) &allow-other-keys) (Page m330) change x and y coordinates oc point-inside ((view-object view-object) x y) (Page m327) check if given point in view coordinates is inside the object c reconfigure ((view-object view-object) new-x new-y new-width new-height &key (redraw t) &allow-other-keys) (Page m332) change position and size o reconfigured-by-user ((obj view-object) was-moved was-resized) (Page m344) to react to move and resize commands for an object c resize ((view-object view-object) new-width new-height &key (redraw t) &allow-other-keys) (Page m331) change width and height c (setf selected) (new-value (obj view-object)) (Page m338) set slot selected and force redraw o which-resize-handle ((obj view-object) x y) (Page m343) determine which resize handle is at point (x,y) if any ---------------------------------------------------------------------- Function make-movable-icon - Create a new movable icon (defun make-movable-icon (icon-image-or-pathname &key (mask nil) (shadow-offset 0) (top-margin 0) (bottom-margin shadow-offset) (left-margin 0) (right-margin shadow-offset) (class 'movable-icon) (initargs nil)) ...) icon-image-or-pathname: image or name of bitmap file mask: image or name of bitmap file shadow-offset: offset of shadow; 0 = no shadow top-margin: space on top of icon bottom-margin: space (e.g. for shadow) on bottom of icon left-margin: space on left of icon right-margin: space (e.g. for shadow) on right of icon class: class movable-icon or any subclass of it initargs: further initializations for subclass This is the constructor function for class movable-icon. The returned value is a newly created object of class movable-icon. You CAN call this function. It is called by GINA only in the chess demo application. Example: (with-application-stopped (setq icon (make-movable-icon "/usr/include/X11/bitmaps/mailfull" :mask "/usr/include/X11/bitmaps/mailfullmsk" :shadow-offset 8)) (install icon (main-view (first (document-list *application*))))) ---------------------------------------------------------------------- Method pathname->image - look up cached image for pathname or read file and cache it (defmethod pathname->image ((appl application) pathname-or-image) ...) pathname-or-image: if an image is given, it is just returned You RARELY override this method or add deamons. The default version is sufficient for most cases. You CAN call this method for mapping pathnames to images. It is called by GINA in methods of class movable-icon. It is NEVER overridden by GINA. ---------------------------------------------------------------------- Method image->image-z - look up cached image in z-format or convert to it and cache it (defmethod image->image-z ((appl application) image) ...) image: image of any format (image-x -xy or -z) You RARELY override this method or add deamons. The default version is sufficient for most cases. You CAN call this method for mapping images to images of z-format. It is called by GINA in methods of class movable-icon. It is NEVER overridden by GINA. ---------------------------------------------------------------------- Method image->pixmap - lookup cached pixmap for image or create pixmap and cache it (defmethod image->pixmap ((appl application) image drawable) ...) image: an image (i.e. pixel data on lisp-side) drawable: a drawable which determines the screen where the pixmap will be used You RARELY override this method or add deamons. The default version is sufficient for most cases. You CAN call this method for mapping images to pixmaps. It is called by GINA in methods of class movable-icon. It is NEVER overridden by GINA. ---------------------------------------------------------------------- Method draw - Draw icon optionally with shadow from stored pixmap (defmethod draw ((icon movable-icon) count x y width height) ...) count: number of calls to draw method that will immediately follow x: upper left corner of rectangle which has to be drawn y: upper left corner of rectangle which has to be drawn width: size of rectangle which has to be drawn height: size of rectangle which has to be drawn You RARELY override this method or add deamons. The default version draws icon with or without shadow. Normally, you do NOT call this method. It is called by GINA in response to expose events. It is NEVER overridden by GINA. You can add a deamon to display more information e.g. a text. Related methods: o draw ((view view) count x y width height) o draw ((view-object view-object) count x y width height) draw :around ((view view) count x y width height) ---------------------------------------------------------------------- Method draw-outline - draw icon using xor while being moved (defmethod draw-outline ((icon movable-icon) new-x new-y width height &key clear) ...) new-x: current position new-y: current position width: current size height: current size clear: not used for movable-icon You RARELY override this method or add deamons. The default version draws the icon using xor. Normally, you do NOT call this method. It is called by GINA during move command. It is NEVER overridden by GINA. function boole-xor is set in gcontext before this method is called. Related methods: o draw-outline ((obj view-object) new-x new-y width height &key clear) ---------------------------------------------------------------------- Method draw-selected - do nothing because already done in draw method (defmethod draw-selected ((icon movable-icon) count x y width height) ...) You RARELY override this method or add deamons. The default version is sufficient for most cases. Normally, you do NOT call this method. It is called by GINA when appropriate. It is NEVER overridden by GINA. Related methods: o draw-selected ((obj view-object) count x y width height) ---------------------------------------------------------------------- Method point-inside - check if given point in view coordinates is inside the icon (defmethod point-inside ((icon movable-icon) x y) ...) You RARELY override this method or add deamons. The default version is sufficient for most cases. Normally, you do NOT call this method. It is called by GINA to test whether mouse click hits icon. It is NEVER overridden by GINA. Uses mask; calls point-inside of view-object when no mask given. Related methods: c point-inside ((widget widget) x y) oc point-inside ((view-object view-object) x y) ---------------------------------------------------------------------- Class callback - a data object describing an action to do later You RARELY define subclasses of this class. GINA does NOT define subclasses of this class. You can create an instance of this class. Instance variables: function-name the function to be called static-args a list of arguments which will always be passed to the function Methods of class callback: execute ((cb callback) dynamic-args) (Page m371) apply the stored function to the static- and dynamic args o print-object ((cb callback) stream) (Page m368) specialized printed representation ---------------------------------------------------------------------- Method print-object - specialized printed representation (defmethod print-object ((cb callback) stream) ...) You override this method to get a special printed representation. The default version prints name of the function. Normally, you do NOT call this method. It is called by GINA to denote a callback object. It is NEVER overridden by GINA. Related methods: o print-object ((app application) stream) o print-object ((doc document) stream) ---------------------------------------------------------------------- Function make-callback - create a new callback object (defun make-callback (function-name &rest static-args) ...) function-name: the function to be called static-args: a list of arguments which will always be passed to the function This is the constructor function for class callback. The returned value is a newly created object of class callback. You CAN call this function. It is sometimes called by GINA. Example: (execute (make-callback #'list 1 2 3 4) '(5 6 7)) ---------------------------------------------------------------------- Function print-parms - Just print the parameters supplied (defun print-parms (&rest parms) ...) Normally, you do NOT call this function. It is called by GINA when supplied as a callback function. You can use this function to find out the parameters of a callback. Example: (with-application-stopped (setq box (make-modeless-dialog-box "test")) (make-scrollbar box :value-changed-callback #'print-parms) (pop-up box)) Creates a dialog-box with a scrollbar. The new value is printed at each callback. ---------------------------------------------------------------------- Method execute - apply the stored function to the static- and dynamic args (defmethod execute ((cb callback) dynamic-args) ...) dynamic-args: additional arguments for the function stored in the callback object You RARELY override this method or add deamons. The default version is sufficient for most cases. Normally, you do NOT call this method. It is called by GINA when appropriate. It is NEVER overridden by GINA. Related methods: execute ((callback t) dynamic-args) ---------------------------------------------------------------------- Method execute - apply the stored function to the static- and dynamic args (defmethod execute ((callback t) dynamic-args) ...) dynamic-args: additional arguments for the function stored in the callback object You RARELY override this method or add deamons. The default version is sufficient for most cases. Normally, you do NOT call this method. It is called by GINA when appropriate. It is NEVER overridden by GINA. Lambda-expressions and compiled functions can be executed just like callback objects. Callbacks can also be lists of callbacks. Related methods: execute ((cb callback) dynamic-args) ---------------------------------------------------------------------- Class command - an object representing a single user action You MUST define a subclass of this class. GINA defines subclasses of this class: class mouse-down-command and special commands for direct-manipulation. You never create an instance of this class. Class variables: name identification shown in the history scroller Default: "Command" clock-cursor flag whether clock cursor is shown during doit Default: nil undoable flag whether an UNDO is possible Default: t causes-change flag whether the command modifies the document Default: t Instance variables: document the document changed by the command view the view which shows the effect of the command view-x-offset scroll position of the view when command was issued view-y-offset scroll position of the view when command was issued Methods of class command: o commit ((cmd command) undone) (Page m381) free resources used by the command o doit ((cmd command)) (Page m376) execute the effect of the command o executable ((cmd command)) (Page m375) check if the command is executable o redoit ((cmd command)) (Page m380) repeat effect of the command scroll-before-redo ((cmd command)) (Page m379) do the scrolling necessary so that the effect of REDO can be seen scroll-before-undo ((cmd command)) (Page m377) do the scrolling necessary so that the effect of UNDO can be seen c submit ((cmd command)) (Page m374) store command in the document and call doit o undoit ((cmd command)) (Page m378) undo effect of the command ---------------------------------------------------------------------- Function make-command - create a command object (defun make-command (document &key (view (main-view document)) (immediately-submit t) (create-checkpoint nil) (reverse-undo nil) (class 'command) (initargs nil)) ...) document: the document changed by the command view: the view which shows the effect of the command immediately-submit: flag whether command is immediately submitted when created class: 'command or any subclass of it initargs: further initializations for command subclass This is the constructor function for class command. The returned value is a newly created object of class command. You CAN call this function in the constructor of a command subclass. It is sometimes called by GINA. ---------------------------------------------------------------------- Method submit - store command in the document and call doit (defmethod submit ((cmd command)) ...) You RARELY override this method or add deamons. The default version is sufficient for most cases. You CAN call this method if a command is not immediately submitted when created. It is called by GINA in make-command. It is NEVER overridden by GINA. This method is inherited by class object-selector, object-resizer, object-mover, mouse-down-command and drag-command. ---------------------------------------------------------------------- Method executable - check if the command is executable (defmethod executable ((cmd command)) ...) You override this method to define conditions for the command to be executed. The default version returns t, because normal commands are always executable. Normally, you do NOT call this method. It is called by GINA before doit is called. It is NEVER overridden by GINA. Especially mouse commands may be executed only if something is hit. This method is inherited by class object-selector, object-resizer, object-mover, mouse-down-command and drag-command. ---------------------------------------------------------------------- Method doit - execute the effect of the command (defmethod doit ((cmd command)) ...) You override this method to define the special semantics of a command. The default version does not do anything. Normally, you do NOT call this method. It is called by GINA when the command is submitted. It is overridden by GINA in the predefined commands for direct manipulation. This method is inherited by class object-selector, object-resizer, object-mover, mouse-down-command and drag-command. Related methods: doit ((cmd object-mover)) doit ((cmd object-resizer)) doit ((cmd object-selector)) ---------------------------------------------------------------------- Method scroll-before-undo - do the scrolling necessary so that the effect of UNDO can be seen (defmethod scroll-before-undo ((cmd command)) ...) You RARELY override this method or add deamons. The default version scrolls the view to the position it originally had when the command was executed. Normally, you do NOT call this method. It is called by GINA before method undoit is called. It is NEVER overridden by GINA. This method is inherited by class object-selector, object-resizer, object-mover, mouse-down-command and drag-command. ---------------------------------------------------------------------- Method undoit - undo effect of the command (defmethod undoit ((cmd command)) ...) You override this method to define the inverse of a command. The default version tries to restore a checkpoint, if there is one. Normally, you do NOT call this method. It is called by GINA in response to the UNDO menu entry. It is overridden by GINA in the predefined commands for direct manipulation. This method is inherited by class object-selector, object-resizer, object-mover, mouse-down-command and drag-command. Related methods: undoit ((cmd object-mover)) undoit ((cmd object-resizer)) ---------------------------------------------------------------------- Method scroll-before-redo - do the scrolling necessary so that the effect of REDO can be seen (defmethod scroll-before-redo ((cmd command)) ...) You RARELY override this method or add deamons. The default version scrolls the view to the position it originally had when the command was executed. Normally, you do NOT call this method. It is called by GINA before method redoit is called. It is overridden by GINA for mouse-commands because of possible auto-scrolling. This method is inherited by class object-selector, object-resizer, object-mover, mouse-down-command and drag-command. Related methods: scroll-before-redo ((cmd mouse-down-command)) ---------------------------------------------------------------------- Method redoit - repeat effect of the command (defmethod redoit ((cmd command)) ...) You override this method if repeating the command is different from doing it for the first time. The default version calls the method doit. Normally, you do NOT call this method. It is called by GINA when the command is repeated by a REDO. It is overridden by GINA in the predefined commands for direct manipulation. This method is inherited by class object-selector, object-resizer, object-mover, mouse-down-command and drag-command. Related methods: redoit ((cmd object-mover)) redoit ((cmd object-resizer)) ---------------------------------------------------------------------- Method commit - free resources used by the command (defmethod commit ((cmd command) undone) ...) undone: flag whether the last action with this command was an UNDO You override this method if there are any resources which must be freed. The default version does not do anything. Normally, you do NOT call this method. It is called by GINA when no more undo/redo is possible. It is NEVER overridden by GINA. This method is inherited by class object-selector, object-resizer, object-mover, mouse-down-command and drag-command. ---------------------------------------------------------------------- Class mouse-down-command - a mouse command with feedback as long as the mouse is down It is a subclass of command. You MUST define a subclass of this class. GINA defines subclasses of this class: the special commands for direct-manipulation. You never create an instance of this class. Class variables: mouse-down-command: hysteresis minimum mouse movement before command is submitted Default: 0 auto-scrolling flag whether automatic scrolling is desired Default: t idle-timeout seconds before mouse-idle is called and auto-scrolling is done when mouse is not moved Default: 0.25 call-doit flag whether command should really be submitted Default: t name overrides slot of class command Default: "Mouse Command" command: name identification shown in the history scroller Default: "Command" clock-cursor flag whether clock cursor is shown during doit Default: nil undoable flag whether an UNDO is possible Default: t causes-change flag whether the command modifies the document Default: t Instance variables: mouse-down-command: start-x view coordinate where the mouse button went down start-y view coordinate where the mouse button went down timer-id id for xtk:change-timer and friends Default: nil mouse-already-moved flag if hysteresis has been reached Default: nil last-x view coordinate of last mouse position last-y view coordinate of last mouse position command: document the document changed by the command view the view which shows the effect of the command view-x-offset scroll position of the view when command was issued view-y-offset scroll position of the view when command was issued Methods of class mouse-down-command: o constrain-mouse ((cmd mouse-down-command) x y) (Page m383) modify x and y position of mouse pointer draw-feedback :around ((cmd mouse-down-command) x y &key clear) (Page m385) set xor-mode and foreground in the view's gcontext o draw-feedback ((cmd mouse-down-command) x y &key clear) (Page m384) draw mouse feedback during commands o mouse-idle ((cmd mouse-down-command) x y) (Page m387) react to timeout during mouse command c mouse-rectangle ((cmd mouse-down-command) x y) (Page m390) calculate the positive rectangle between start and x,y o not-submitted ((cmd mouse-down-command)) (Page m388) react to the fact that command was not submitted scroll-before-redo ((cmd mouse-down-command)) (Page m389) do the scrolling necessary so that the effect of REDO can be seen o track-mouse ((cmd mouse-down-command) x y &key (started nil) (finished nil)) (Page m386) process the possibly modified mouse coordinates Methods of Superclasses: o commit ((cmd command) undone) (Page m381) free resources used by the command o doit ((cmd command)) (Page m376) execute the effect of the command o executable ((cmd command)) (Page m375) check if the command is executable o redoit ((cmd command)) (Page m380) repeat effect of the command scroll-before-redo ((cmd command)) (Page m379) do the scrolling necessary so that the effect of REDO can be seen scroll-before-undo ((cmd command)) (Page m377) do the scrolling necessary so that the effect of UNDO can be seen c submit ((cmd command)) (Page m374) store command in the document and call doit o undoit ((cmd command)) (Page m378) undo effect of the command ---------------------------------------------------------------------- Function make-mouse-down-command - create a mouse-down-command object (defun make-mouse-down-command (document view start-x start-y &key (cursor :hand) (class 'mouse-down-command) (initargs nil)) ...) document: the document changed by the command view: the view where the mouse feedback is shown start-x: view coordinate where the mouse button went down start-y: view coordinate where the mouse button went down cursor: number or keyword class: 'mouse-down-command or any subclass of it initargs: further initializations for command subclass This is the constructor function for class mouse-down-command. The returned value is a newly created object of class mouse-down-command. You CAN call this function. It is sometimes called by GINA. Cursor can be the result of a call to xtk:create-font-cursor or xtk:create-pixmap-cursor or a keyword like :hand, :arrow ... (xtk:all-cursors) lists all available keywords. ---------------------------------------------------------------------- Method constrain-mouse - modify x and y position of mouse pointer (defmethod constrain-mouse ((cmd mouse-down-command) x y) ...) x: current mouse position y: current mouse position The returned value is x and y as multiple values. You override this method to constrain the mouse to certain locations in the view. The default version returns x and y unmodified. Normally, you do NOT call this method. It is called by GINA before mouse feedback is drawn. It is NEVER overridden by GINA. This method is inherited by class object-selector, object-resizer and object-mover. Related methods: constrain-mouse ((cmd object-mover) x y) constrain-mouse ((cmd object-resizer) x y) ---------------------------------------------------------------------- Method draw-feedback - draw mouse feedback during commands (defmethod draw-feedback ((cmd mouse-down-command) x y &key clear) ...) x: current mouse position y: current mouse position clear: flag whether feedback has to be drawn or cleared You override this method to define a special application dependent feedback. The default version draws a rubberband line from the start- to the current mouse position. Normally, you do NOT call this method. It is called by GINA each time the mouse has moved. It is overridden by GINA in the predefined commands for direct manipulation. :function boole-xor is set in gcontext before this method is called. This method is inherited by class object-selector, object-resizer and object-mover. Related methods: draw-feedback :around ((cmd mouse-down-command) x y &key clear) draw-feedback ((cmd object-selector) x y &key clear) draw-feedback ((cmd object-mover) x y &key clear) draw-feedback ((cmd object-resizer) x y &key clear) ---------------------------------------------------------------------- Method draw-feedback - set xor-mode and foreground in the view's gcontext (defmethod draw-feedback :around ((cmd mouse-down-command) x y &key clear) ...) x: current mouse position y: current mouse position clear: flag whether feedback has to be drawn or cleared You RARELY override this method or add deamons. The default version is sufficient for most cases. Normally, you do NOT call this method. It is called by GINA when appropriate. It is NEVER overridden by GINA. This method is inherited by class object-selector, object-resizer and object-mover. Related methods: o draw-feedback ((cmd mouse-down-command) x y &key clear) draw-feedback ((cmd object-selector) x y &key clear) draw-feedback ((cmd object-mover) x y &key clear) draw-feedback ((cmd object-resizer) x y &key clear) ---------------------------------------------------------------------- Method track-mouse - process the possibly modified mouse coordinates (defmethod track-mouse ((cmd mouse-down-command) x y &key (started nil) (finished nil)) ...) x: current mouse position y: current mouse position started: flag whether this is the first call of track-mouse finished: flag whether this is the last call of track-mouse You override this method if each intermediate coordinate is important (e.g. for freehand drawing). The default version does not do anything. Normally, you do NOT call this method. It is called by GINA each time the mouse has moved. It is overridden by GINA in the predefined commands for direct manipulation. This method is inherited by class object-selector, object-resizer and object-mover. Related methods: track-mouse ((cmd object-mover) x y &key (started nil) (finished nil)) track-mouse ((cmd object-resizer) x y &key (started nil) (finished nil)) ---------------------------------------------------------------------- Method mouse-idle - react to timeout during mouse command (defmethod mouse-idle ((cmd mouse-down-command) x y) ...) x: current mouse position y: current mouse position You override this method to define what happens when the mouse button is held down. The default version does not do anything. Normally, you do NOT call this method. It is called by GINA each time the mouse did not move for some time. It is NEVER overridden by GINA. This method is inherited by class object-selector, object-resizer and object-mover. ---------------------------------------------------------------------- Method not-submitted - react to the fact that command was not submitted (defmethod not-submitted ((cmd mouse-down-command)) ...) You override this method to define what happens instead of submitting the command. The default version does not do anything. Normally, you do NOT call this method. It is called by GINA if the command is not submitted when the button goes up, because call-doit is nil. It is NEVER overridden by GINA. This method is inherited by class object-selector, object-resizer and object-mover. Related methods: o not-submitted ((cmd drag-command)) not-submitted ((cmd object-selector)) ---------------------------------------------------------------------- Method scroll-before-redo - do the scrolling necessary so that the effect of REDO can be seen (defmethod scroll-before-redo ((cmd mouse-down-command)) ...) You RARELY override this method or add deamons. The default version moves the point where the mouse-button was released into the view. Normally, you do NOT call this method. It is called by GINA before method redoit is called. It is NEVER overridden by GINA. This method overrides the default behaviour inherited by class command This method is inherited by class object-selector, object-resizer and object-mover. Related methods: scroll-before-redo ((cmd command)) ---------------------------------------------------------------------- Method mouse-rectangle - calculate the positive rectangle between start and x,y (defmethod mouse-rectangle ((cmd mouse-down-command) x y) ...) The returned value is x, y, positive width, positive height as multiple values. You RARELY override this method or add deamons. The default version is sufficient for most cases. You CAN call this method when a mouse-command may flip over its start. It is called by GINA when appropriate. It is NEVER overridden by GINA. This method is inherited by class object-selector, object-resizer and object-mover. ---------------------------------------------------------------------- Class object-mover - a mouse-down-command to move a direct-manipulation-object It is a subclass of mouse-down-command and command. You CAN define a subclass of this class. GINA does NOT define subclasses of this class. You can create an instance of this class. Class variables: object-mover: name overrides default name of class mouse-down-command Default: "Move Object" hysteresis mouse must be moved at least 5 pixels to drag an object Default: 5 mouse-down-command: hysteresis minimum mouse movement before command is submitted Default: 0 auto-scrolling flag whether automatic scrolling is desired Default: t idle-timeout seconds before mouse-idle is called and auto-scrolling is done when mouse is not moved Default: 0.25 call-doit flag whether command should really be submitted Default: t name overrides slot of class command Default: "Mouse Command" command: name identification shown in the history scroller Default: "Command" clock-cursor flag whether clock cursor is shown during doit Default: nil undoable flag whether an UNDO is possible Default: t causes-change flag whether the command modifies the document Default: t Instance variables: object-mover: move-object the object being moved x-off point within object where mouse goes down y-off point within object where mouse goes down new-x view coordinates where object is moved to new-y view coordinates where object is moved to mouse-down-command: start-x view coordinate where the mouse button went down start-y view coordinate where the mouse button went down timer-id id for xtk:change-timer and friends Default: nil mouse-already-moved flag if hysteresis has been reached Default: nil last-x view coordinate of last mouse position last-y view coordinate of last mouse position command: document the document changed by the command view the view which shows the effect of the command view-x-offset scroll position of the view when command was issued view-y-offset scroll position of the view when command was issued Methods of class object-mover: constrain-mouse ((cmd object-mover) x y) (Page m392) use the result of constrain-position of the moved object doit ((cmd object-mover)) (Page m395) finally move the specified view-object draw-feedback ((cmd object-mover) x y &key clear) (Page m393) draw mouse feedback while object is moved redoit ((cmd object-mover)) (Page m397) move the view-object forward again track-mouse ((cmd object-mover) x y &key (started nil) (finished nil)) (Page m394) immediately move the object if desired undoit ((cmd object-mover)) (Page m396) move back the view-object Methods of Superclasses: o commit ((cmd command) undone) (Page m381) free resources used by the command o constrain-mouse ((cmd mouse-down-command) x y) (Page m383) modify x and y position of mouse pointer o doit ((cmd command)) (Page m376) execute the effect of the command draw-feedback :around ((cmd mouse-down-command) x y &key clear) (Page m385) set xor-mode and foreground in the view's gcontext o draw-feedback ((cmd mouse-down-command) x y &key clear) (Page m384) draw mouse feedback during commands o executable ((cmd command)) (Page m375) check if the command is executable o mouse-idle ((cmd mouse-down-command) x y) (Page m387) react to timeout during mouse command c mouse-rectangle ((cmd mouse-down-command) x y) (Page m390) calculate the positive rectangle between start and x,y o not-submitted ((cmd mouse-down-command)) (Page m388) react to the fact that command was not submitted o redoit ((cmd command)) (Page m380) repeat effect of the command scroll-before-redo ((cmd mouse-down-command)) (Page m389) do the scrolling necessary so that the effect of REDO can be seen scroll-before-redo ((cmd command)) (Page m379) do the scrolling necessary so that the effect of REDO can be seen scroll-before-undo ((cmd command)) (Page m377) do the scrolling necessary so that the effect of UNDO can be seen c submit ((cmd command)) (Page m374) store command in the document and call doit o track-mouse ((cmd mouse-down-command) x y &key (started nil) (finished nil)) (Page m386) process the possibly modified mouse coordinates o undoit ((cmd command)) (Page m378) undo effect of the command ---------------------------------------------------------------------- Function make-object-mover - create a new mouse-down-command object to move the specified object (defun make-object-mover (obj x y &key (class 'object-mover) (initargs nil)) ...) obj: the object being moved x: point within object where mouse goes down y: point within object where mouse goes down This is the constructor function for class object-mover. The returned value is a newly created object of class object-mover. You CAN call this function. It is sometimes called by GINA. ---------------------------------------------------------------------- Method constrain-mouse - use the result of constrain-position of the moved object (defmethod constrain-mouse ((cmd object-mover) x y) ...) You RARELY override this method or add deamons. The default version is sufficient for most cases. Normally, you do NOT call this method. It is called by GINA each time the mouse has moved. It is NEVER overridden by GINA. Related methods: constrain-mouse ((cmd object-resizer) x y) o constrain-mouse ((cmd mouse-down-command) x y) ---------------------------------------------------------------------- Method draw-feedback - draw mouse feedback while object is moved (defmethod draw-feedback ((cmd object-mover) x y &key clear) ...) x: current mouse position y: current mouse position clear: flag whether feedback has to be drawn or cleared You RARELY override this method or add deamons. The default version is sufficient for most cases. Normally, you do NOT call this method. It is called by GINA each time the mouse has moved. It is NEVER overridden by GINA. This methods overrides the default method inherited by class mouse-down-command. Related methods: o draw-feedback ((cmd mouse-down-command) x y &key clear) draw-feedback :around ((cmd mouse-down-command) x y &key clear) draw-feedback ((cmd object-selector) x y &key clear) draw-feedback ((cmd object-resizer) x y &key clear) ---------------------------------------------------------------------- Method track-mouse - immediately move the object if desired (defmethod track-mouse ((cmd object-mover) x y &key (started nil) (finished nil)) ...) You RARELY override this method or add deamons. The default version is sufficient for most cases. Normally, you do NOT call this method. It is called by GINA each time the mouse has moved. It is NEVER overridden by GINA. This methods overrides the default method inherited by class mouse-down-command. Related methods: o track-mouse ((cmd mouse-down-command) x y &key (started nil) (finished nil)) track-mouse ((cmd object-resizer) x y &key (started nil) (finished nil)) ---------------------------------------------------------------------- Method doit - finally move the specified view-object (defmethod doit ((cmd object-mover)) ...) You RARELY override this method or add deamons. The default version is sufficient for most cases. Normally, you do NOT call this method. It is called by GINA when appropriate. It is NEVER overridden by GINA. Related methods: doit ((cmd object-resizer)) o doit ((cmd command)) doit ((cmd object-selector)) ---------------------------------------------------------------------- Method undoit - move back the view-object (defmethod undoit ((cmd object-mover)) ...) You RARELY override this method or add deamons. The default version is sufficient for most cases. Normally, you do NOT call this method. It is called by GINA when appropriate. It is NEVER overridden by GINA. Related methods: undoit ((cmd object-resizer)) o undoit ((cmd command)) ---------------------------------------------------------------------- Method redoit - move the view-object forward again (defmethod redoit ((cmd object-mover)) ...) You RARELY override this method or add deamons. The default version is sufficient for most cases. Normally, you do NOT call this method. It is called by GINA when appropriate. It is NEVER overridden by GINA. Related methods: redoit ((cmd object-resizer)) o redoit ((cmd command)) ---------------------------------------------------------------------- Class object-resizer - a mouse-down-command to resize a direct-manipulation-object It is a subclass of mouse-down-command and command. You CAN define a subclass of this class. GINA does NOT define subclasses of this class. You can create an instance of this class. Class variables: object-resizer: name overrides default name of class mouse-down-command Default: "Resize Object" hysteresis mouse must be moved at least 2 pixels to drag an object Default: 2 mouse-down-command: hysteresis minimum mouse movement before command is submitted Default: 0 auto-scrolling flag whether automatic scrolling is desired Default: t idle-timeout seconds before mouse-idle is called and auto-scrolling is done when mouse is not moved Default: 0.25 call-doit flag whether command should really be submitted Default: t name overrides slot of class command Default: "Mouse Command" command: name identification shown in the history scroller Default: "Command" clock-cursor flag whether clock cursor is shown during doit Default: nil undoable flag whether an UNDO is possible Default: t causes-change flag whether the command modifies the document Default: t Instance variables: object-resizer: size-object the object being resized old-x original position of object being resized old-y original position of object being resized old-width original size of object being resized old-height original size of object being resized move-x flag whether x-coordinate of the objects position is changed move-y flag whether y-coordinate of the objects position is changed new-x new position of object being resized new-y new position of object being resized new-width new size of object being resized new-height new size of object being resized mouse-down-command: start-x view coordinate where the mouse button went down start-y view coordinate where the mouse button went down timer-id id for xtk:change-timer and friends Default: nil mouse-already-moved flag if hysteresis has been reached Default: nil last-x view coordinate of last mouse position last-y view coordinate of last mouse position command: document the document changed by the command view the view which shows the effect of the command view-x-offset scroll position of the view when command was issued view-y-offset scroll position of the view when command was issued Methods of class object-resizer: constrain-mouse ((cmd object-resizer) x y) (Page m399) call constrain-size of the object and ensure handle-size doit ((cmd object-resizer)) (Page m402) finally resize the specified object draw-feedback ((cmd object-resizer) x y &key clear) (Page m400) draw outline feedback while resizing if desired redoit ((cmd object-resizer)) (Page m404) resize the object again track-mouse ((cmd object-resizer) x y &key (started nil) (finished nil)) (Page m401) immediately resize the object if desired undoit ((cmd object-resizer)) (Page m403) give the object the original size again Methods of Superclasses: o commit ((cmd command) undone) (Page m381) free resources used by the command o constrain-mouse ((cmd mouse-down-command) x y) (Page m383) modify x and y position of mouse pointer o doit ((cmd command)) (Page m376) execute the effect of the command draw-feedback :around ((cmd mouse-down-command) x y &key clear) (Page m385) set xor-mode and foreground in the view's gcontext o draw-feedback ((cmd mouse-down-command) x y &key clear) (Page m384) draw mouse feedback during commands o executable ((cmd command)) (Page m375) check if the command is executable o mouse-idle ((cmd mouse-down-command) x y) (Page m387) react to timeout during mouse command c mouse-rectangle ((cmd mouse-down-command) x y) (Page m390) calculate the positive rectangle between start and x,y o not-submitted ((cmd mouse-down-command)) (Page m388) react to the fact that command was not submitted o redoit ((cmd command)) (Page m380) repeat effect of the command scroll-before-redo ((cmd mouse-down-command)) (Page m389) do the scrolling necessary so that the effect of REDO can be seen scroll-before-redo ((cmd command)) (Page m379) do the scrolling necessary so that the effect of REDO can be seen scroll-before-undo ((cmd command)) (Page m377) do the scrolling necessary so that the effect of UNDO can be seen c submit ((cmd command)) (Page m374) store command in the document and call doit o track-mouse ((cmd mouse-down-command) x y &key (started nil) (finished nil)) (Page m386) process the possibly modified mouse coordinates o undoit ((cmd command)) (Page m378) undo effect of the command ---------------------------------------------------------------------- Function make-object-resizer - create a new mouse-down command object to resize the specified object (defun make-object-resizer (obj x y handle &key (class 'object-resizer) (initargs nil)) ...) obj: the object being resized x: point within object where mouse went down y: point within object where mouse went down handle: 1, 2, 3, or 4 for the four corners This is the constructor function for class object-resizer. The returned value is a newly created object of class object-resizer. You CAN call this function. It is sometimes called by GINA. ---------------------------------------------------------------------- Method constrain-mouse - call constrain-size of the object and ensure handle-size (defmethod constrain-mouse ((cmd object-resizer) x y) ...) You RARELY override this method or add deamons. The default version is sufficient for most cases. Normally, you do NOT call this method. It is called by GINA when appropriate. It is NEVER overridden by GINA. Related methods: constrain-mouse ((cmd object-mover) x y) o constrain-mouse ((cmd mouse-down-command) x y) ---------------------------------------------------------------------- Method draw-feedback - draw outline feedback while resizing if desired (defmethod draw-feedback ((cmd object-resizer) x y &key clear) ...) You RARELY override this method or add deamons. The default version is sufficient for most cases. Normally, you do NOT call this method. It is called by GINA when appropriate. It is NEVER overridden by GINA. Related methods: o draw-feedback ((cmd mouse-down-command) x y &key clear) draw-feedback :around ((cmd mouse-down-command) x y &key clear) draw-feedback ((cmd object-selector) x y &key clear) draw-feedback ((cmd object-mover) x y &key clear) ---------------------------------------------------------------------- Method track-mouse - immediately resize the object if desired (defmethod track-mouse ((cmd object-resizer) x y &key (started nil) (finished nil)) ...) You RARELY override this method or add deamons. The default version is sufficient for most cases. Normally, you do NOT call this method. It is called by GINA when appropriate. It is NEVER overridden by GINA. Related methods: o track-mouse ((cmd mouse-down-command) x y &key (started nil) (finished nil)) track-mouse ((cmd object-mover) x y &key (started nil) (finished nil)) ---------------------------------------------------------------------- Method doit - finally resize the specified object (defmethod doit ((cmd object-resizer)) ...) You RARELY override this method or add deamons. The default version is sufficient for most cases. Normally, you do NOT call this method. It is called by GINA when appropriate. It is NEVER overridden by GINA. Related methods: doit ((cmd object-mover)) o doit ((cmd command)) doit ((cmd object-selector)) ---------------------------------------------------------------------- Method undoit - give the object the original size again (defmethod undoit ((cmd object-resizer)) ...) You RARELY override this method or add deamons. The default version is sufficient for most cases. Normally, you do NOT call this method. It is called by GINA when appropriate. It is NEVER overridden by GINA. Related methods: undoit ((cmd object-mover)) o undoit ((cmd command)) ---------------------------------------------------------------------- Method redoit - resize the object again (defmethod redoit ((cmd object-resizer)) ...) You RARELY override this method or add deamons. The default version is sufficient for most cases. Normally, you do NOT call this method. It is called by GINA when appropriate. It is NEVER overridden by GINA. Related methods: redoit ((cmd object-mover)) o redoit ((cmd command)) ---------------------------------------------------------------------- Class object-selector - a mouse-down-command to select direct-manipulation-objects It is a subclass of mouse-down-command and command. You CAN define a subclass of this class. GINA does NOT define subclasses of this class. You can create an instance of this class. Class variables: object-selector: name overrides default name of class mouse-down-command Default: "Select Objects" hysteresis mouse must be moved to select an object Default: 2 undoable no UNDO is possible (nor necessary) for this command Default: nil causes-change this command does not modify the document Default: nil mouse-down-command: hysteresis minimum mouse movement before command is submitted Default: 0 auto-scrolling flag whether automatic scrolling is desired Default: t idle-timeout seconds before mouse-idle is called and auto-scrolling is done when mouse is not moved Default: 0.25 call-doit flag whether command should really be submitted Default: t name overrides slot of class command Default: "Mouse Command" command: name identification shown in the history scroller Default: "Command" clock-cursor flag whether clock cursor is shown during doit Default: nil undoable flag whether an UNDO is possible Default: t causes-change flag whether the command modifies the document Default: t Instance variables: object-selector: extend button used (:select :extend :toggle) mouse-down-command: start-x view coordinate where the mouse button went down start-y view coordinate where the mouse button went down timer-id id for xtk:change-timer and friends Default: nil mouse-already-moved flag if hysteresis has been reached Default: nil last-x view coordinate of last mouse position last-y view coordinate of last mouse position command: document the document changed by the command view the view which shows the effect of the command view-x-offset scroll position of the view when command was issued view-y-offset scroll position of the view when command was issued Methods of class object-selector: doit ((cmd object-selector)) (Page m407) select all captured view objects draw-feedback ((cmd object-selector) x y &key clear) (Page m406) draw rectangular dashed feedback not-submitted ((cmd object-selector)) (Page m408) only a click, deselect all selected objects Methods of Superclasses: o commit ((cmd command) undone) (Page m381) free resources used by the command o constrain-mouse ((cmd mouse-down-command) x y) (Page m383) modify x and y position of mouse pointer o doit ((cmd command)) (Page m376) execute the effect of the command draw-feedback :around ((cmd mouse-down-command) x y &key clear) (Page m385) set xor-mode and foreground in the view's gcontext o draw-feedback ((cmd mouse-down-command) x y &key clear) (Page m384) draw mouse feedback during commands o executable ((cmd command)) (Page m375) check if the command is executable o mouse-idle ((cmd mouse-down-command) x y) (Page m387) react to timeout during mouse command c mouse-rectangle ((cmd mouse-down-command) x y) (Page m390) calculate the positive rectangle between start and x,y o not-submitted ((cmd mouse-down-command)) (Page m388) react to the fact that command was not submitted o redoit ((cmd command)) (Page m380) repeat effect of the command scroll-before-redo ((cmd mouse-down-command)) (Page m389) do the scrolling necessary so that the effect of REDO can be seen scroll-before-redo ((cmd command)) (Page m379) do the scrolling necessary so that the effect of REDO can be seen scroll-before-undo ((cmd command)) (Page m377) do the scrolling necessary so that the effect of UNDO can be seen c submit ((cmd command)) (Page m374) store command in the document and call doit o track-mouse ((cmd mouse-down-command) x y &key (started nil) (finished nil)) (Page m386) process the possibly modified mouse coordinates o undoit ((cmd command)) (Page m378) undo effect of the command ---------------------------------------------------------------------- Function make-object-selector - create a new mouse-down-command object to select objects (defun make-object-selector (view x y extend) ...) view: the view where the mouse went down x: mouse down position y: mouse down position extend: button used for selection This is the constructor function for class object-selector. The returned value is a newly created object of class object-selector. You CAN call this function. It is sometimes called by GINA. ---------------------------------------------------------------------- Method draw-feedback - draw rectangular dashed feedback (defmethod draw-feedback ((cmd object-selector) x y &key clear) ...) You RARELY override this method or add deamons. The default version is sufficient for most cases. Normally, you do NOT call this method. It is called by GINA when appropriate. It is NEVER overridden by GINA. Related methods: o draw-feedback ((cmd mouse-down-command) x y &key clear) draw-feedback :around ((cmd mouse-down-command) x y &key clear) draw-feedback ((cmd object-mover) x y &key clear) draw-feedback ((cmd object-resizer) x y &key clear) ---------------------------------------------------------------------- Method doit - select all captured view objects (defmethod doit ((cmd object-selector)) ...) You RARELY override this method or add deamons. The default version is sufficient for most cases. Normally, you do NOT call this method. It is called by GINA when appropriate. It is NEVER overridden by GINA. Related methods: doit ((cmd object-mover)) doit ((cmd object-resizer)) o doit ((cmd command)) ---------------------------------------------------------------------- Method not-submitted - only a click, deselect all selected objects (defmethod not-submitted ((cmd object-selector)) ...) You RARELY override this method or add deamons. The default version is sufficient for most cases. Normally, you do NOT call this method. It is called by GINA when appropriate. It is NEVER overridden by GINA. Related methods: o not-submitted ((cmd drag-command)) o not-submitted ((cmd mouse-down-command)) ---------------------------------------------------------------------- Class drag-command - a command class to implement drag and drop across windows It is a subclass of command. You MUST define a subclass of this class. GINA does NOT define subclasses of this class. You never create an instance of this class. Class variables: drag-command: protocol-id a unique id string for inter-app communication Default: :drag hysteresis minimum mouse movement before command is submitted Default: 0 do-tracking whether continuous tracking is performed Default: t lazy-tracking whether track-target is called only once per target Default: nil call-doit flag whether command should really be submitted Default: t command: name identification shown in the history scroller Default: "Command" clock-cursor flag whether clock cursor is shown during doit Default: nil undoable flag whether an UNDO is possible Default: t causes-change flag whether the command modifies the document Default: t Instance variables: drag-command: target-list a list of window-widget-value tripels of poss. targets shell-to-move an override shell to be moved as feedback received-from nil or an x-window from another document mouse-already-moved flag if hysteresis has been reached Default: nil source-x the starting x position relative to the source source-y the starting y position relative to the source target-x the current x position relative to the target target-y the current y position relative to the target current-target the current target, if any Default: nil current-value the current value, if any Default: nil transfer-value a value returned from the target application command: document the document changed by the command view the view which shows the effect of the command view-x-offset scroll position of the view when command was issued view-y-offset scroll position of the view when command was issued Methods of class drag-command: o draw-target-feedback ((cmd drag-command) widget rel-x rel-y value &key (clear nil)) (Page m410) draw feedback in the target o not-submitted ((cmd drag-command)) (Page m412) react to the fact that command was not submitted o track-target ((cmd drag-command) widget rel-x rel-y value) (Page m411) track mouse motion Methods of Superclasses: o commit ((cmd command) undone) (Page m381) free resources used by the command o doit ((cmd command)) (Page m376) execute the effect of the command o executable ((cmd command)) (Page m375) check if the command is executable o redoit ((cmd command)) (Page m380) repeat effect of the command scroll-before-redo ((cmd command)) (Page m379) do the scrolling necessary so that the effect of REDO can be seen scroll-before-undo ((cmd command)) (Page m377) do the scrolling necessary so that the effect of UNDO can be seen c submit ((cmd command)) (Page m374) store command in the document and call doit o undoit ((cmd command)) (Page m378) undo effect of the command ---------------------------------------------------------------------- Function make-drag-command - create a drag-command object (defun make-drag-command (document source rel-x rel-y target-list &key (x-off 0) (y-off 0) (received-from nil) (cursor :dotbox) (shell-to-move nil) (transfer-value nil) (class 'drag-command) (initargs nil)) ...) document: the document modified by the command source: a widget that receives motion events rel-x: the relative x position where the command starts rel-y: the relative y position where the command starts target-list: a list of widget-value pairs belonging to this doc x-off: x offset between shell and source y-off: y offset between shell and source transfer-value: the value to transfer to target This is the constructor function for class drag-command. The returned value is a newly created object of class drag-command. You CAN call this function. It is never called by GINA. ---------------------------------------------------------------------- Method draw-target-feedback - draw feedback in the target (defmethod draw-target-feedback ((cmd drag-command) widget rel-x rel-y value &key (clear nil)) ...) widget: one of the widgets from target-list rel-x: x position relative to widget rel-y: y position relative to widget value: corresponding value from target-list You override this method to define individual feedback drawing with xor. The default version does not do anything. Normally, you do NOT call this method. It is called by GINA on pointer motion when over target widget. It is NEVER overridden by GINA. ---------------------------------------------------------------------- Method track-target - track mouse motion (defmethod track-target ((cmd drag-command) widget rel-x rel-y value) ...) widget: one of the widgets from target-list, or nil if outside rel-x: x position relative to widget (or nil) rel-y: y position relative to widget (or nil) value: corresponding value from target-list You override this method to execute individual mouse tracking. The default version does not do anything. Normally, you do NOT call this method. It is called by GINA on pointer motion when over target widget, or when just left target. It is NEVER overridden by GINA. The positions are inaccurate if lazy-tracking is enabled. Outside a target it is called only once with nil parameters, until a new target is entered, regardless of lazy-tracking. ---------------------------------------------------------------------- Method not-submitted - react to the fact that command was not submitted (defmethod not-submitted ((cmd drag-command)) ...) You override this method to define what happens instead of submitting the command. The default version does not do anything. Normally, you do NOT call this method. It is called by GINA on button-release, if no target hit or call-doit is nil. It is NEVER overridden by GINA. Related methods: o not-submitted ((cmd mouse-down-command)) not-submitted ((cmd object-selector)) ---------------------------------------------------------------------- Class widget - the abstract superclass of all CLOS-Objects encapsulating Motif widgets You RARELY define subclasses of this class. GINA defines subclasses of this class: all Motif widgets are subclasses. You never create an instance of this class. Instance variables: widget-id integer returned by CLM create-widget call group-widget-id id used when the whole group is meant widget-id-for-sons may be different from widget-id in compound widgets parent the parent widget object in the hierarchy name name string for resource database lookup width total width in pixels height total height in pixels x-pos the x-coordinate relative to the parent y-pos the y-coordinate relative to the parent Resource slots: y-pos x-pos height width Methods of class widget: c add-event-handler ((w widget) mask function-or-callback) (Page m160) add an event handler for some basic X event c add-to-tab-group ((widget widget)) (Page m174) add widget to the tab-group of its shell c define-cursor ((widget widget) cursor-nr-or-keyword) (Page m179) permanently set the cursor for a widget c destroy ((w widget)) (Page m165) destroy the widget objects and all its sons c enclosing-shell ((widget widget)) (Page m178) walk up widget tree until shell get-clx-window ((w widget)) (Page m172) get the CLX window id of a widget c get-motif-resources ((w widget) &rest resources) (Page m163) get up-to-date motif-resources from toolkit inspect-clicked ((w widget) &rest parm-list) (Page m161) the widget is clicked, check for inspect click for debugging c manage ((w widget)) (Page m166) make widget managed c move ((widget widget) new-x new-y &key &allow-other-keys) (Page m169) change x and y coordinates c point-inside ((widget widget) x y) (Page m173) test whether point lies inside a widget c remove-from-tab-group ((widget widget)) (Page m175) remove widget from the tab-group of its shell c resize ((widget widget) new-width new-height &key &allow-other-keys) (Page m170) change width and height c root-coordinates ((w widget) &key (x 0) (y 0)) (Page m171) translate coordinates relative to root window c set-keyboard-focus ((widget widget)) (Page m176) try to set the keyboard focus to a widget c set-motif-resources ((w widget) &rest resource-pairs) (Page m164) set motif-resources later than at initialization c set-sensitivity ((widget widget) new-value) (Page m177) set the sensitivity, i.e. whether widget reacts to mouse clicks son-created ((w widget) son) (Page m162) parent is informed that a new son is created c unmanage ((w widget)) (Page m167) make widget unmanaged c update-slots ((w widget)) (Page m168) ask the toolkit server for current size and position values ---------------------------------------------------------------------- Function make-widget - create a new CLOS Object representing a widget (defun make-widget (parent &key (class 'widget) (initargs nil) (motif-widget-class :push-button) (managed t) (name class) (motif-resources nil)) ...) parent: the parent widget This is the constructor function for class widget. The returned value is a newly created object of class widget. You CAN call this function in the constructor of subclasses. It is called by GINA whenever any kind of widget is created. ---------------------------------------------------------------------- Method add-event-handler - add an event handler for some basic X event (defmethod add-event-handler ((w widget) mask function-or-callback) ...) mask: logical or of CLX event masks You RARELY override this method or add deamons. The default version is sufficient for most cases. You CAN call this method if more specific events are desired. It is called by GINA to install event handlers for the most important events. It is NEVER overridden by GINA. mask :no-event-mask registers all non-maskable events This method is inherited by class view, scrolled-text, labeled-text, text, modeless-dialog-shell, document-shell-with-scroller, document-shell, basic-document-shell, toplevel-shell, modal-dialog-shell, menu-shell, shell, separator, scrollable-selection-list, selection-list, scroller, scrollbar, scale, radio-button-group, toggle-button-group, dialog-dismiss-button-row, row-column, paned-window, option-menu, menu-pulldown, main-menu, menu-bar, main-window, toggle-button, dialog-dismiss-button, push-button, drag-label, cascade-button, label, labeled-frame, frame, tool-dialog-box, modeless-dialog-box, modal-dialog-box, dialog-box, form, bulletin-board and arrow-button. ---------------------------------------------------------------------- Method inspect-clicked - the widget is clicked, check for inspect click for debugging (defmethod inspect-clicked ((w widget) &rest parm-list) ...) You RARELY override this method or add deamons. The default version is sufficient for most cases. Normally, you do NOT call this method. It is called by GINA if inspect-click flag in application enabled. It is NEVER overridden by GINA. parm-list: type x y root-x root-y state button This method is inherited by class view, scrolled-text, labeled-text, text, modeless-dialog-shell, document-shell-with-scroller, document-shell, basic-document-shell, toplevel-shell, modal-dialog-shell, menu-shell, shell, separator, scrollable-selection-list, selection-list, scroller, scrollbar, scale, radio-button-group, toggle-button-group, dialog-dismiss-button-row, row-column, paned-window, option-menu, menu-pulldown, main-menu, menu-bar, main-window, toggle-button, dialog-dismiss-button, push-button, drag-label, cascade-button, label, labeled-frame, frame, tool-dialog-box, modeless-dialog-box, modal-dialog-box, dialog-box, form, bulletin-board and arrow-button. ---------------------------------------------------------------------- Method son-created - parent is informed that a new son is created (defmethod son-created ((w widget) son) ...) You RARELY override this method or add deamons. The default version does not do anything. Normally, you do NOT call this method. It is called by GINA whenever a son of this widget is created. It is NEVER overridden by GINA. This method is inherited by class view, scrolled-text, labeled-text, text, modeless-dialog-shell, document-shell-with-scroller, document-shell, basic-document-shell, toplevel-shell, modal-dialog-shell, menu-shell, shell, separator, scrollable-selection-list, selection-list, scroller, scrollbar, scale, radio-button-group, toggle-button-group, dialog-dismiss-button-row, row-column, paned-window, option-menu, menu-pulldown, main-menu, menu-bar, main-window, toggle-button, dialog-dismiss-button, push-button, drag-label, cascade-button, label, labeled-frame, frame, tool-dialog-box, modeless-dialog-box, modal-dialog-box, dialog-box, form, bulletin-board and arrow-button. Related methods: son-created ((scroller scroller) son) ---------------------------------------------------------------------- Method get-motif-resources - get up-to-date motif-resources from toolkit (defmethod get-motif-resources ((w widget) &rest resources) ...) The returned value is list of requested resource values. You RARELY override this method or add deamons. The default version is sufficient for most cases. You CAN call this method to find out unusual resource values. It is called by GINA rarely. It is NEVER overridden by GINA. Example: (get-motif-resources frame :shadow-thickness :shadow-type) returns (2 :etched-in) This method is inherited by class view, scrolled-text, labeled-text, text, modeless-dialog-shell, document-shell-with-scroller, document-shell, basic-document-shell, toplevel-shell, modal-dialog-shell, menu-shell, shell, separator, scrollable-selection-list, selection-list, scroller, scrollbar, scale, radio-button-group, toggle-button-group, dialog-dismiss-button-row, row-column, paned-window, option-menu, menu-pulldown, main-menu, menu-bar, main-window, toggle-button, dialog-dismiss-button, push-button, drag-label, cascade-button, label, labeled-frame, frame, tool-dialog-box, modeless-dialog-box, modal-dialog-box, dialog-box, form, bulletin-board and arrow-button. ---------------------------------------------------------------------- Method set-motif-resources - set motif-resources later than at initialization (defmethod set-motif-resources ((w widget) &rest resource-pairs) ...) You RARELY override this method or add deamons. The default version is sufficient for most cases. You CAN call this method to set non-slot resources in the Motif server. It is called by GINA rarely. It is NEVER overridden by GINA. Example: (set-motif-resources frame :shadow-thickness 4 :shadow-type :etched-out) This method is inherited by class view, scrolled-text, labeled-text, text, modeless-dialog-shell, document-shell-with-scroller, document-shell, basic-document-shell, toplevel-shell, modal-dialog-shell, menu-shell, shell, separator, scrollable-selection-list, selection-list, scroller, scrollbar, scale, radio-button-group, toggle-button-group, dialog-dismiss-button-row, row-column, paned-window, option-menu, menu-pulldown, main-menu, menu-bar, main-window, toggle-button, dialog-dismiss-button, push-button, drag-label, cascade-button, label, labeled-frame, frame, tool-dialog-box, modeless-dialog-box, modal-dialog-box, dialog-box, form, bulletin-board and arrow-button. ---------------------------------------------------------------------- Macro more-initargs - append more initarg-pairs to local variable initargs (defmacro more-initargs (&rest initarg-pairs) ...) You CAN call this macro in the constructor of a new subclass of a widget. It is called by GINA in constructor-functions of widgets. Example: (let ((initargs '(:a 3 :b 7))) (more-initargs :x 5 :y (+ 3 4))) returns (:a 3 :b 7 :x 5 :y 7) ---------------------------------------------------------------------- Macro more-motif-resources - prepend more resource-pairs to local variable motif-resources (defmacro more-motif-resources (&rest resource-pairs) ...) You CAN call this macro in the constructor of a new subclass of a widget. It is called by GINA in constructor-functions of widgets. Example: (let ((motif-resources '(:a 3 :b 7))) (more-motif-resources :x 5 :y (+ 3 4))) returns (:x 5 :y :7 a 3 :b 7) ---------------------------------------------------------------------- Method destroy - destroy the widget objects and all its sons (defmethod destroy ((w widget)) ...) You RARELY override this method or add deamons. The default version is sufficient for most cases. You CAN call this method to destroy widgets no longer needed. It is called by GINA when appropriate. It is NEVER overridden by GINA. This method is inherited by class view, scrolled-text, labeled-text, text, modeless-dialog-shell, document-shell-with-scroller, document-shell, basic-document-shell, toplevel-shell, modal-dialog-shell, menu-shell, shell, separator, scrollable-selection-list, selection-list, scroller, scrollbar, scale, radio-button-group, toggle-button-group, dialog-dismiss-button-row, row-column, paned-window, option-menu, menu-pulldown, main-menu, menu-bar, main-window, toggle-button, dialog-dismiss-button, push-button, drag-label, cascade-button, label, labeled-frame, frame, tool-dialog-box, modeless-dialog-box, modal-dialog-box, dialog-box, form, bulletin-board and arrow-button. Related methods: c destroy ((shell toplevel-shell)) destroy :before ((shell basic-document-shell)) ---------------------------------------------------------------------- Method manage - make widget managed (defmethod manage ((w widget)) ...) You RARELY override this method or add deamons. The default version is sufficient for most cases. You CAN call this method to make a widget visible. It is called by GINA when appropriate. It is NEVER overridden by GINA. This method is inherited by class view, scrolled-text, labeled-text, text, modeless-dialog-shell, document-shell-with-scroller, document-shell, basic-document-shell, toplevel-shell, modal-dialog-shell, menu-shell, shell, separator, scrollable-selection-list, selection-list, scroller, scrollbar, scale, radio-button-group, toggle-button-group, dialog-dismiss-button-row, row-column, paned-window, option-menu, menu-pulldown, main-menu, menu-bar, main-window, toggle-button, dialog-dismiss-button, push-button, drag-label, cascade-button, label, labeled-frame, frame, tool-dialog-box, modeless-dialog-box, modal-dialog-box, dialog-box, form, bulletin-board and arrow-button. ---------------------------------------------------------------------- Method unmanage - make widget unmanaged (defmethod unmanage ((w widget)) ...) You RARELY override this method or add deamons. The default version is sufficient for most cases. You CAN call this method to make a widget temporarily invisible. It is called by GINA when appropriate. It is NEVER overridden by GINA. This method is inherited by class view, scrolled-text, labeled-text, text, modeless-dialog-shell, document-shell-with-scroller, document-shell, basic-document-shell, toplevel-shell, modal-dialog-shell, menu-shell, shell, separator, scrollable-selection-list, selection-list, scroller, scrollbar, scale, radio-button-group, toggle-button-group, dialog-dismiss-button-row, row-column, paned-window, option-menu, menu-pulldown, main-menu, menu-bar, main-window, toggle-button, dialog-dismiss-button, push-button, drag-label, cascade-button, label, labeled-frame, frame, tool-dialog-box, modeless-dialog-box, modal-dialog-box, dialog-box, form, bulletin-board and arrow-button. ---------------------------------------------------------------------- Method update-slots - ask the toolkit server for current size and position values (defmethod update-slots ((w widget)) ...) You RARELY override this method or add deamons. The default version is sufficient for most cases. You CAN call this method to bring the cached slots up to date. It is called by GINA when appropriate. It is NEVER overridden by GINA. This method is inherited by class view, scrolled-text, labeled-text, text, modeless-dialog-shell, document-shell-with-scroller, document-shell, basic-document-shell, toplevel-shell, modal-dialog-shell, menu-shell, shell, separator, scrollable-selection-list, selection-list, scroller, scrollbar, scale, radio-button-group, toggle-button-group, dialog-dismiss-button-row, row-column, paned-window, option-menu, menu-pulldown, main-menu, menu-bar, main-window, toggle-button, dialog-dismiss-button, push-button, drag-label, cascade-button, label, labeled-frame, frame, tool-dialog-box, modeless-dialog-box, modal-dialog-box, dialog-box, form, bulletin-board and arrow-button. ---------------------------------------------------------------------- Method move - change x and y coordinates (defmethod move ((widget widget) new-x new-y &key &allow-other-keys) ...) You RARELY override this method or add deamons. The default version is sufficient for most cases. You CAN call this method to reposition a widget. It is called by GINA when appropriate. It is NEVER overridden by GINA. This method is inherited by class view, scrolled-text, labeled-text, text, modeless-dialog-shell, document-shell-with-scroller, document-shell, basic-document-shell, toplevel-shell, modal-dialog-shell, menu-shell, shell, separator, scrollable-selection-list, selection-list, scroller, scrollbar, scale, radio-button-group, toggle-button-group, dialog-dismiss-button-row, row-column, paned-window, option-menu, menu-pulldown, main-menu, menu-bar, main-window, toggle-button, dialog-dismiss-button, push-button, drag-label, cascade-button, label, labeled-frame, frame, tool-dialog-box, modeless-dialog-box, modal-dialog-box, dialog-box, form, bulletin-board and arrow-button. Related methods: c move ((view-object view-object) new-x new-y &key (redraw t) &allow-other-keys) ---------------------------------------------------------------------- Method resize - change width and height (defmethod resize ((widget widget) new-width new-height &key &allow-other-keys) ...) You RARELY override this method or add deamons. The default version is sufficient for most cases. You CAN call this method to resize a widget. It is called by GINA when appropriate. It is NEVER overridden by GINA. This method is inherited by class view, scrolled-text, labeled-text, text, modeless-dialog-shell, document-shell-with-scroller, document-shell, basic-document-shell, toplevel-shell, modal-dialog-shell, menu-shell, shell, separator, scrollable-selection-list, selection-list, scroller, scrollbar, scale, radio-button-group, toggle-button-group, dialog-dismiss-button-row, row-column, paned-window, option-menu, menu-pulldown, main-menu, menu-bar, main-window, toggle-button, dialog-dismiss-button, push-button, drag-label, cascade-button, label, labeled-frame, frame, tool-dialog-box, modeless-dialog-box, modal-dialog-box, dialog-box, form, bulletin-board and arrow-button. Related methods: c resize ((view-object view-object) new-width new-height &key (redraw t) &allow-other-keys) ---------------------------------------------------------------------- Method root-coordinates - translate coordinates relative to root window (defmethod root-coordinates ((w widget) &key (x 0) (y 0)) ...) The returned value is (values x y). You RARELY override this method or add deamons. The default version is sufficient for most cases. You CAN call this method to get the absolute position of a point in a widget. It is called by GINA when appropriate. It is NEVER overridden by GINA. This method is inherited by class view, scrolled-text, labeled-text, text, modeless-dialog-shell, document-shell-with-scroller, document-shell, basic-document-shell, toplevel-shell, modal-dialog-shell, menu-shell, shell, separator, scrollable-selection-list, selection-list, scroller, scrollbar, scale, radio-button-group, toggle-button-group, dialog-dismiss-button-row, row-column, paned-window, option-menu, menu-pulldown, main-menu, menu-bar, main-window, toggle-button, dialog-dismiss-button, push-button, drag-label, cascade-button, label, labeled-frame, frame, tool-dialog-box, modeless-dialog-box, modal-dialog-box, dialog-box, form, bulletin-board and arrow-button. ---------------------------------------------------------------------- Method get-clx-window - get the CLX window id of a widget (defmethod get-clx-window ((w widget)) ...) The returned value is a CLX window. You RARELY override this method or add deamons. The default version is sufficient for most cases. Normally, you do NOT call this method. It is called by GINA when appropriate. It is NEVER overridden by GINA. This method is inherited by class view, scrolled-text, labeled-text, text, modeless-dialog-shell, document-shell-with-scroller, document-shell, basic-document-shell, toplevel-shell, modal-dialog-shell, menu-shell, shell, separator, scrollable-selection-list, selection-list, scroller, scrollbar, scale, radio-button-group, toggle-button-group, dialog-dismiss-button-row, row-column, paned-window, option-menu, menu-pulldown, main-menu, menu-bar, main-window, toggle-button, dialog-dismiss-button, push-button, drag-label, cascade-button, label, labeled-frame, frame, tool-dialog-box, modeless-dialog-box, modal-dialog-box, dialog-box, form, bulletin-board and arrow-button. ---------------------------------------------------------------------- Method point-inside - test whether point lies inside a widget (defmethod point-inside ((widget widget) x y) ...) x: x-pos relative to parent widget y: y-pos relative to parent widget The returned value is flag whether inside. You RARELY override this method or add deamons. The default version is sufficient for most cases. You CAN call this method. It is called by GINA when appropriate. It is NEVER overridden by GINA. This method is inherited by class view, scrolled-text, labeled-text, text, modeless-dialog-shell, document-shell-with-scroller, document-shell, basic-document-shell, toplevel-shell, modal-dialog-shell, menu-shell, shell, separator, scrollable-selection-list, selection-list, scroller, scrollbar, scale, radio-button-group, toggle-button-group, dialog-dismiss-button-row, row-column, paned-window, option-menu, menu-pulldown, main-menu, menu-bar, main-window, toggle-button, dialog-dismiss-button, push-button, drag-label, cascade-button, label, labeled-frame, frame, tool-dialog-box, modeless-dialog-box, modal-dialog-box, dialog-box, form, bulletin-board and arrow-button. Related methods: oc point-inside ((view-object view-object) x y) point-inside ((icon movable-icon) x y) ---------------------------------------------------------------------- Method add-to-tab-group - add widget to the tab-group of its shell (defmethod add-to-tab-group ((widget widget)) ...) You RARELY override this method or add deamons. The default version is sufficient for most cases. You CAN call this method to add other widgets to the shells tab-group. It is called by GINA to add text-widgets to the shells tab-group. It is NEVER overridden by GINA. This method is inherited by class view, scrolled-text, labeled-text, text, modeless-dialog-shell, document-shell-with-scroller, document-shell, basic-document-shell, toplevel-shell, modal-dialog-shell, menu-shell, shell, separator, scrollable-selection-list, selection-list, scroller, scrollbar, scale, radio-button-group, toggle-button-group, dialog-dismiss-button-row, row-column, paned-window, option-menu, menu-pulldown, main-menu, menu-bar, main-window, toggle-button, dialog-dismiss-button, push-button, drag-label, cascade-button, label, labeled-frame, frame, tool-dialog-box, modeless-dialog-box, modal-dialog-box, dialog-box, form, bulletin-board and arrow-button. ---------------------------------------------------------------------- Method remove-from-tab-group - remove widget from the tab-group of its shell (defmethod remove-from-tab-group ((widget widget)) ...) You RARELY override this method or add deamons. The default version is sufficient for most cases. You CAN call this method to remove a widget from the tab-group. It is called by GINA when appropriate. It is NEVER overridden by GINA. This method is inherited by class view, scrolled-text, labeled-text, text, modeless-dialog-shell, document-shell-with-scroller, document-shell, basic-document-shell, toplevel-shell, modal-dialog-shell, menu-shell, shell, separator, scrollable-selection-list, selection-list, scroller, scrollbar, scale, radio-button-group, toggle-button-group, dialog-dismiss-button-row, row-column, paned-window, option-menu, menu-pulldown, main-menu, menu-bar, main-window, toggle-button, dialog-dismiss-button, push-button, drag-label, cascade-button, label, labeled-frame, frame, tool-dialog-box, modeless-dialog-box, modal-dialog-box, dialog-box, form, bulletin-board and arrow-button. ---------------------------------------------------------------------- Method set-keyboard-focus - try to set the keyboard focus to a widget (defmethod set-keyboard-focus ((widget widget)) ...) The returned value is T if focus could be transferred, else NIL. You RARELY override this method or add deamons. The default version is sufficient for most cases. You CAN call this method to enable keyboard input, e.g. in a view. It is called by GINA when appropriate. It is NEVER overridden by GINA. This method is inherited by class view, scrolled-text, labeled-text, text, modeless-dialog-shell, document-shell-with-scroller, document-shell, basic-document-shell, toplevel-shell, modal-dialog-shell, menu-shell, shell, separator, scrollable-selection-list, selection-list, scroller, scrollbar, scale, radio-button-group, toggle-button-group, dialog-dismiss-button-row, row-column, paned-window, option-menu, menu-pulldown, main-menu, menu-bar, main-window, toggle-button, dialog-dismiss-button, push-button, drag-label, cascade-button, label, labeled-frame, frame, tool-dialog-box, modeless-dialog-box, modal-dialog-box, dialog-box, form, bulletin-board and arrow-button. ---------------------------------------------------------------------- Method set-sensitivity - set the sensitivity, i.e. whether widget reacts to mouse clicks (defmethod set-sensitivity ((widget widget) new-value) ...) You RARELY override this method or add deamons. The default version is sufficient for most cases. You CAN call this method to mark temporarily inapplicable widgets or groups. It is called by GINA when appropriate. It is NEVER overridden by GINA. This method is inherited by class view, scrolled-text, labeled-text, text, modeless-dialog-shell, document-shell-with-scroller, document-shell, basic-document-shell, toplevel-shell, modal-dialog-shell, menu-shell, shell, separator, scrollable-selection-list, selection-list, scroller, scrollbar, scale, radio-button-group, toggle-button-group, dialog-dismiss-button-row, row-column, paned-window, option-menu, menu-pulldown, main-menu, menu-bar, main-window, toggle-button, dialog-dismiss-button, push-button, drag-label, cascade-button, label, labeled-frame, frame, tool-dialog-box, modeless-dialog-box, modal-dialog-box, dialog-box, form, bulletin-board and arrow-button. ---------------------------------------------------------------------- Method enclosing-shell - walk up widget tree until shell (defmethod enclosing-shell ((widget widget)) ...) You RARELY override this method or add deamons. The default version is sufficient for most cases. You CAN call this method to find out the shell in which this widgets lies. It is called by GINA when appropriate. It is overridden by GINA for shell-widgets, which just return themself. This method is inherited by class view, scrolled-text, labeled-text, text, modeless-dialog-shell, document-shell-with-scroller, document-shell, basic-document-shell, toplevel-shell, modal-dialog-shell, menu-shell, shell, separator, scrollable-selection-list, selection-list, scroller, scrollbar, scale, radio-button-group, toggle-button-group, dialog-dismiss-button-row, row-column, paned-window, option-menu, menu-pulldown, main-menu, menu-bar, main-window, toggle-button, dialog-dismiss-button, push-button, drag-label, cascade-button, label, labeled-frame, frame, tool-dialog-box, modeless-dialog-box, modal-dialog-box, dialog-box, form, bulletin-board and arrow-button. Related methods: enclosing-shell ((shell shell)) ---------------------------------------------------------------------- Method define-cursor - permanently set the cursor for a widget (defmethod define-cursor ((widget widget) cursor-nr-or-keyword) ...) cursor-nr-or-keyword: number or keyword for the cursor You RARELY override this method or add deamons. The default version is sufficient for most cases. You CAN call this method. It is called by GINA when appropriate. It is NEVER overridden by GINA. Cursor can be the result of a call to xtk:create-font-cursor or xtk:create-pixmap-cursor or a keyword like :hand, :arrow ... (print (xtk:all-cursors)) lists all available keywords. Example: (with-application-stopped (define-cursor (main-view (first (document-list *application*))) :hand)) (with-application-stopped (define-cursor (main-view (first (document-list *application*))) (xtk:create-pixmap-cursor "/home/spenke/pixmaps/term" "/home/spenke/pixmaps/term"))) This method is inherited by class view, scrolled-text, labeled-text, text, modeless-dialog-shell, document-shell-with-scroller, document-shell, basic-document-shell, toplevel-shell, modal-dialog-shell, menu-shell, shell, separator, scrollable-selection-list, selection-list, scroller, scrollbar, scale, radio-button-group, toggle-button-group, dialog-dismiss-button-row, row-column, paned-window, option-menu, menu-pulldown, main-menu, menu-bar, main-window, toggle-button, dialog-dismiss-button, push-button, drag-label, cascade-button, label, labeled-frame, frame, tool-dialog-box, modeless-dialog-box, modal-dialog-box, dialog-box, form, bulletin-board and arrow-button. ---------------------------------------------------------------------- Class shell - the abstract superclass of all Motif-shells It is a subclass of widget. You RARELY define subclasses of this class. GINA defines subclasses of this class. You never create an instance of this class. Callbacks: popup-callback () Instance variables: shell: title title string views all views within the shell Default: nil document the document belonging to the shell, or nil Default: nil drag-protocols a list of keywords of accepted drag-commands Default: nil widget: widget-id integer returned by CLM create-widget call group-widget-id id used when the whole group is meant widget-id-for-sons may be different from widget-id in compound widgets parent the parent widget object in the hierarchy name name string for resource database lookup width total width in pixels height total height in pixels x-pos the x-coordinate relative to the parent y-pos the y-coordinate relative to the parent Resource slots: title Methods of class shell: enclosing-shell ((shell shell)) (Page m184) override to return shell itself o handle-button-press ((shell shell) &rest event-data) (Page m181) low level event handler for button-press events c pop-down ((shell shell)) (Page m183) popdown the underlying widget c pop-up ((shell shell)) (Page m182) popup the underlying widget ---------------------------------------------------------------------- Function make-shell - create a new CLOS Object representing a shell (defun make-shell (parent title &key (class 'shell) (initargs nil) (motif-widget-class :shell) (name class) (motif-resources nil)) ...) parent: the parent widget title: the title string This is the constructor function for class shell. The returned value is a newly created object of class shell. You CAN call this function in constructors of app-defined subclasses. It is called by GINA in the constructors for subclasses. ---------------------------------------------------------------------- Method handle-button-press - low level event handler for button-press events (defmethod handle-button-press ((shell shell) &rest event-data) ...) event-data: a list of event details You override this method if you are interested in special event details. The default version propagates command creation to document. Normally, you do NOT call this method. It is called by GINA in response to foreign drop events. It is NEVER overridden by GINA. This method is inherited by class modeless-dialog-shell, document-shell-with-scroller, document-shell, basic-document-shell, toplevel-shell, modal-dialog-shell and menu-shell. Related methods: o handle-button-press ((view view) &rest event-data) ---------------------------------------------------------------------- Method pop-up - popup the underlying widget (defmethod pop-up ((shell shell)) ...) You RARELY override this method or add deamons. The default version is sufficient for most cases. You CAN call this method to make a secondary window visible. It is called by GINA when appropriate. It is overridden by GINA in some shell subclasses. This method is inherited by class modeless-dialog-shell, document-shell-with-scroller, document-shell, basic-document-shell, toplevel-shell, modal-dialog-shell and menu-shell. Related methods: c pop-up ((shell modeless-dialog-shell)) c pop-up ((box modal-dialog-box)) pop-up :after ((shell toplevel-shell)) c pop-up ((box modeless-dialog-box)) c pop-up ((box tool-dialog-box)) ---------------------------------------------------------------------- Method pop-down - popdown the underlying widget (defmethod pop-down ((shell shell)) ...) You RARELY override this method or add deamons. The default version is sufficient for most cases. You CAN call this method to make a secondary window disappear. It is called by GINA when appropriate. It is overridden by GINA in some shell subclasses. This method is inherited by class modeless-dialog-shell, document-shell-with-scroller, document-shell, basic-document-shell, toplevel-shell, modal-dialog-shell and menu-shell. Related methods: c pop-down ((box tool-dialog-box)) c pop-down ((box modeless-dialog-box)) c pop-down ((box modal-dialog-box)) c pop-down ((shell modeless-dialog-shell)) ---------------------------------------------------------------------- Method enclosing-shell - override to return shell itself (defmethod enclosing-shell ((shell shell)) ...) You RARELY override this method or add deamons. The default version is sufficient for most cases. Normally, you do NOT call this method. It is called by GINA when appropriate. It is NEVER overridden by GINA. This method is inherited by class modeless-dialog-shell, document-shell-with-scroller, document-shell, basic-document-shell, toplevel-shell, modal-dialog-shell and menu-shell. Related methods: c enclosing-shell ((widget widget)) ---------------------------------------------------------------------- Class toplevel-shell - the abstract superclass of all document-shells and modeless dialog boxes It is a subclass of shell and widget. You RARELY define subclasses of this class. GINA defines subclasses of this class. You never create an instance of this class. Callbacks: popup-callback () Instance variables: shell: title title string views all views within the shell Default: nil document the document belonging to the shell, or nil Default: nil drag-protocols a list of keywords of accepted drag-commands Default: nil widget: widget-id integer returned by CLM create-widget call group-widget-id id used when the whole group is meant widget-id-for-sons may be different from widget-id in compound widgets parent the parent widget object in the hierarchy name name string for resource database lookup width total width in pixels height total height in pixels x-pos the x-coordinate relative to the parent y-pos the y-coordinate relative to the parent Methods of class toplevel-shell: o closed-by-wm ((shell toplevel-shell)) (Page m190) shell is being closed by the window manager c destroy ((shell toplevel-shell)) (Page m189) destroy the shell and all its children c expose ((shell toplevel-shell)) (Page m188) bring window to front and set input focus pop-up :after ((shell toplevel-shell)) (Page m186) register shell at the application o resized-by-user ((shell toplevel-shell)) (Page m187) hook for reaction to user resizing the shell Methods of Superclasses: enclosing-shell ((shell shell)) (Page m184) override to return shell itself o handle-button-press ((shell shell) &rest event-data) (Page m181) low level event handler for button-press events c pop-down ((shell shell)) (Page m183) popdown the underlying widget c pop-up ((shell shell)) (Page m182) popup the underlying widget ---------------------------------------------------------------------- Function make-toplevel-shell - create a new CLOS Object representing a toplevel-shell (defun make-toplevel-shell (title &key (parent nil) (allow-shell-resize nil) (class 'toplevel-shell) (initargs nil) (motif-widget-class :toplevel-shell) (name class) (motif-resources nil)) ...) title: the title string parent: default: directly under invisible app-shell allow-shell-resize: whether resizable by changing children This is the constructor function for class toplevel-shell. The returned value is a newly created object of class toplevel-shell. You CAN call this function. It is called by GINA in the constructors for subclasses. ---------------------------------------------------------------------- Method pop-up - register shell at the application (defmethod pop-up :after ((shell toplevel-shell)) ...) You RARELY override this method or add deamons. The default version is sufficient for most cases. Normally, you do NOT call this method. It is called by GINA when appropriate. It is NEVER overridden by GINA. This method is inherited by class modeless-dialog-shell, document-shell-with-scroller, document-shell and basic-document-shell. Related methods: c pop-up ((shell modeless-dialog-shell)) c pop-up ((box modal-dialog-box)) c pop-up ((box modeless-dialog-box)) c pop-up ((box tool-dialog-box)) c pop-up ((shell shell)) ---------------------------------------------------------------------- Method resized-by-user - hook for reaction to user resizing the shell (defmethod resized-by-user ((shell toplevel-shell)) ...) You CAN override this method. The default version calls update-slots. Normally, you do NOT call this method. It is called by GINA when appropriate. It is NEVER overridden by GINA. May currently be called even if size unchanged This method is inherited by class modeless-dialog-shell, document-shell-with-scroller, document-shell and basic-document-shell. ---------------------------------------------------------------------- Method expose - bring window to front and set input focus (defmethod expose ((shell toplevel-shell)) ...) You RARELY override this method or add deamons. The default version is sufficient for most cases. You CAN call this method to focus attention on a secondary window. It is called by GINA when appropriate. It is NEVER overridden by GINA. Should be called only by the process owning the shell. This method is inherited by class modeless-dialog-shell, document-shell-with-scroller, document-shell and basic-document-shell. ---------------------------------------------------------------------- Method destroy - destroy the shell and all its children (defmethod destroy ((shell toplevel-shell)) ...) You RARELY override this method or add deamons. The default version is sufficient for most cases. You CAN call this method to destroy a secondary window. It is called by GINA when appropriate. It is NEVER overridden by GINA. This method is inherited by class modeless-dialog-shell, document-shell-with-scroller, document-shell and basic-document-shell. Related methods: c destroy ((w widget)) destroy :before ((shell basic-document-shell)) ---------------------------------------------------------------------- Method closed-by-wm - shell is being closed by the window manager (defmethod closed-by-wm ((shell toplevel-shell)) ...) You CAN override this method. The default version calls destroy. Normally, you do NOT call this method. It is called by GINA when appropriate. It is overridden by GINA in some subclasses. This method is inherited by class modeless-dialog-shell, document-shell-with-scroller, document-shell and basic-document-shell. Related methods: closed-by-wm ((shell modal-dialog-shell)) o closed-by-wm ((shell basic-document-shell)) o closed-by-wm ((box dialog-box)) ---------------------------------------------------------------------- Macro with-cursor - use cursor for the execution of body in all application windows (defmacro with-cursor ((cursor) &body body) ...) You CAN call this macro. It is sometimes called by GINA. Example: (with-cursor (:circle) (sleep 10)) ---------------------------------------------------------------------- Macro with-clock-cursor - use clock cursor for the execution of body in all application windows (defmacro with-clock-cursor (&body body) ...) You CAN call this macro to signal a time-consuming operation. It is sometimes called by GINA. Example: (with-clock-cursor (sleep 10)) ---------------------------------------------------------------------- Class modeless-dialog-shell - the Motif dialog-shell widget used for modeless dialogs It is a subclass of toplevel-shell, shell and widget. You RARELY define subclasses of this class. GINA does NOT define subclasses of this class. You can create an instance of this class. Callbacks: popup-callback () Instance variables: modeless-dialog-shell: dialog-box its child, must be set after creation shell: title title string views all views within the shell Default: nil document the document belonging to the shell, or nil Default: nil drag-protocols a list of keywords of accepted drag-commands Default: nil widget: widget-id integer returned by CLM create-widget call group-widget-id id used when the whole group is meant widget-id-for-sons may be different from widget-id in compound widgets parent the parent widget object in the hierarchy name name string for resource database lookup width total width in pixels height total height in pixels x-pos the x-coordinate relative to the parent y-pos the y-coordinate relative to the parent Methods of class modeless-dialog-shell: c pop-down ((shell modeless-dialog-shell)) (Page m193) popdown the underlying widget c pop-up ((shell modeless-dialog-shell)) (Page m192) popup the underlying widget Methods of Superclasses: o closed-by-wm ((shell toplevel-shell)) (Page m190) shell is being closed by the window manager c destroy ((shell toplevel-shell)) (Page m189) destroy the shell and all its children enclosing-shell ((shell shell)) (Page m184) override to return shell itself c expose ((shell toplevel-shell)) (Page m188) bring window to front and set input focus o handle-button-press ((shell shell) &rest event-data) (Page m181) low level event handler for button-press events c pop-down ((shell shell)) (Page m183) popdown the underlying widget pop-up :after ((shell toplevel-shell)) (Page m186) register shell at the application c pop-up ((shell shell)) (Page m182) popup the underlying widget o resized-by-user ((shell toplevel-shell)) (Page m187) hook for reaction to user resizing the shell ---------------------------------------------------------------------- Function make-modeless-dialog-shell - create CLOS Object for a dialog-shell for modeless dialogs (defun make-modeless-dialog-shell (title &key (parent-shell (main-shell (first (document-list *application*)))) (allow-shell-resize nil) (class 'modeless-dialog-shell) (initargs nil) (motif-widget-class :dialog-shell) (name class) (motif-resources nil)) ...) title: the title string parent-shell: default: main-shell of first document of application allow-shell-resize: whether resizable by changing children This is the constructor function for class modeless-dialog-shell. The returned value is a newly created object of class modeless-dialog-shell. You CAN call this function. It is sometimes called by GINA. ---------------------------------------------------------------------- Method pop-up - popup the underlying widget (defmethod pop-up ((shell modeless-dialog-shell)) ...) You RARELY override this method or add deamons. The default version is sufficient for most cases. You CAN call this method to make a secondary window visible. It is called by GINA when appropriate. It is overridden by GINA in some shell subclasses. Related methods: c pop-up ((box modal-dialog-box)) pop-up :after ((shell toplevel-shell)) c pop-up ((box modeless-dialog-box)) c pop-up ((box tool-dialog-box)) c pop-up ((shell shell)) ---------------------------------------------------------------------- Method pop-down - popdown the underlying widget (defmethod pop-down ((shell modeless-dialog-shell)) ...) You RARELY override this method or add deamons. The default version is sufficient for most cases. You CAN call this method to make a secondary window disappear. It is called by GINA when appropriate. It is overridden by GINA in some shell subclasses. Related methods: c pop-down ((shell shell)) c pop-down ((box tool-dialog-box)) c pop-down ((box modeless-dialog-box)) c pop-down ((box modal-dialog-box)) ---------------------------------------------------------------------- Class modal-dialog-shell - the Motif dialog-shell widget used for modal dialogs It is a subclass of shell and widget. You RARELY define subclasses of this class. GINA does NOT define subclasses of this class. You can create an instance of this class. Callbacks: popup-callback () Instance variables: shell: title title string views all views within the shell Default: nil document the document belonging to the shell, or nil Default: nil drag-protocols a list of keywords of accepted drag-commands Default: nil widget: widget-id integer returned by CLM create-widget call group-widget-id id used when the whole group is meant widget-id-for-sons may be different from widget-id in compound widgets parent the parent widget object in the hierarchy name name string for resource database lookup width total width in pixels height total height in pixels x-pos the x-coordinate relative to the parent y-pos the y-coordinate relative to the parent Methods of class modal-dialog-shell: closed-by-wm ((shell modal-dialog-shell)) (Page m195) modal-dialog-shells cannot be closed by the window manager Methods of Superclasses: enclosing-shell ((shell shell)) (Page m184) override to return shell itself o handle-button-press ((shell shell) &rest event-data) (Page m181) low level event handler for button-press events c pop-down ((shell shell)) (Page m183) popdown the underlying widget c pop-up ((shell shell)) (Page m182) popup the underlying widget ---------------------------------------------------------------------- Function make-modal-dialog-shell - create CLOS Object for a dialog-shell for modal dialogs (defun make-modal-dialog-shell (title &key (parent-shell (main-shell (first (document-list *application*)))) (allow-shell-resize nil) (class 'modal-dialog-shell) (initargs nil) (motif-widget-class :dialog-shell) (name class) (motif-resources nil)) ...) title: the title string parent-shell: default: main shell of first document of application allow-shell-resize: whether resizable by changing children This is the constructor function for class modal-dialog-shell. The returned value is a newly created object of class modal-dialog-shell. You CAN call this function. It is sometimes called by GINA. ---------------------------------------------------------------------- Method closed-by-wm - modal-dialog-shells cannot be closed by the window manager (defmethod closed-by-wm ((shell modal-dialog-shell)) ...) You RARELY override this method or add deamons. The default version just beeps. Normally, you do NOT call this method. It is called by GINA when appropriate. It is NEVER overridden by GINA. Related methods: o closed-by-wm ((shell toplevel-shell)) o closed-by-wm ((shell basic-document-shell)) o closed-by-wm ((box dialog-box)) ---------------------------------------------------------------------- Class menu-shell - the Motif menu-shell widget It is a subclass of shell and widget. You RARELY define subclasses of this class. GINA does NOT define subclasses of this class. You can create an instance of this class. Callbacks: popup-callback () Instance variables: shell: title title string views all views within the shell Default: nil document the document belonging to the shell, or nil Default: nil drag-protocols a list of keywords of accepted drag-commands Default: nil widget: widget-id integer returned by CLM create-widget call group-widget-id id used when the whole group is meant widget-id-for-sons may be different from widget-id in compound widgets parent the parent widget object in the hierarchy name name string for resource database lookup width total width in pixels height total height in pixels x-pos the x-coordinate relative to the parent y-pos the y-coordinate relative to the parent Methods of class menu-shell: Methods of Superclasses: enclosing-shell ((shell shell)) (Page m184) override to return shell itself o handle-button-press ((shell shell) &rest event-data) (Page m181) low level event handler for button-press events c pop-down ((shell shell)) (Page m183) popdown the underlying widget c pop-up ((shell shell)) (Page m182) popup the underlying widget ---------------------------------------------------------------------- Function make-menu-shell - create a new CLOS Object representing a menu-shell (defun make-menu-shell (menubar &key (class 'menu-shell) (initargs nil) (motif-widget-class :menu-shell) (name class) (motif-resources nil)) ...) menubar: the parent widget, a menu bar or menu shell This is the constructor function for class menu-shell. The returned value is a newly created object of class menu-shell. You CAN call this function. It is sometimes called by GINA. ---------------------------------------------------------------------- Class basic-document-shell - a toplevel-shell for a document without a menubar It is a subclass of toplevel-shell, shell and widget. You RARELY define subclasses of this class. GINA does NOT define subclasses of this class. You can create an instance of this class. Callbacks: popup-callback () Instance variables: basic-document-shell: document the document the shell belongs to x-window the window to send messages to Default: nil shell: title title string views all views within the shell Default: nil document the document belonging to the shell, or nil Default: nil drag-protocols a list of keywords of accepted drag-commands Default: nil widget: widget-id integer returned by CLM create-widget call group-widget-id id used when the whole group is meant widget-id-for-sons may be different from widget-id in compound widgets parent the parent widget object in the hierarchy name name string for resource database lookup width total width in pixels height total height in pixels x-pos the x-coordinate relative to the parent y-pos the y-coordinate relative to the parent Methods of class basic-document-shell: o closed-by-wm ((shell basic-document-shell)) (Page m199) closing a document shell means closing its document destroy :before ((shell basic-document-shell)) (Page m198) update list of toplevel-shells of the document Methods of Superclasses: o closed-by-wm ((shell toplevel-shell)) (Page m190) shell is being closed by the window manager c destroy ((shell toplevel-shell)) (Page m189) destroy the shell and all its children enclosing-shell ((shell shell)) (Page m184) override to return shell itself c expose ((shell toplevel-shell)) (Page m188) bring window to front and set input focus o handle-button-press ((shell shell) &rest event-data) (Page m181) low level event handler for button-press events c pop-down ((shell shell)) (Page m183) popdown the underlying widget pop-up :after ((shell toplevel-shell)) (Page m186) register shell at the application c pop-up ((shell shell)) (Page m182) popup the underlying widget o resized-by-user ((shell toplevel-shell)) (Page m187) hook for reaction to user resizing the shell ---------------------------------------------------------------------- Function make-basic-document-shell - create a new toplevel-shell for a document without a menubar (defun make-basic-document-shell (document &key (width :auto) (height :auto) (title (name *application*)) (allow-shell-resize nil) (drag-protocols (drag-protocols document)) (class 'basic-document-shell) (initargs nil) (motif-widget-class :toplevel-shell) (name class) (motif-resources nil)) ...) document: the document object width: :auto or fixed width height: :auto or fixed height title: title string allow-shell-resize: whether resizable by changing children drag-protocols: keyword list of accepted drag-commands This is the constructor function for class basic-document-shell. The returned value is a newly created object of class basic-document-shell. You CAN call this function. It is sometimes called by GINA. ---------------------------------------------------------------------- Method destroy - update list of toplevel-shells of the document (defmethod destroy :before ((shell basic-document-shell)) ...) You RARELY override this method or add deamons. The default version is sufficient for most cases. Normally, you do NOT call this method. It is called by GINA when appropriate. It is NEVER overridden by GINA. This method is inherited by class document-shell-with-scroller and document-shell. Related methods: c destroy ((shell toplevel-shell)) c destroy ((w widget)) ---------------------------------------------------------------------- Method closed-by-wm - closing a document shell means closing its document (defmethod closed-by-wm ((shell basic-document-shell)) ...) You CAN override this method. The default version closes the document. Normally, you do NOT call this method. It is called by GINA when appropriate. It is NEVER overridden by GINA. This method is inherited by class document-shell-with-scroller and document-shell. Related methods: closed-by-wm ((shell modal-dialog-shell)) o closed-by-wm ((shell toplevel-shell)) o closed-by-wm ((box dialog-box)) ---------------------------------------------------------------------- Class document-shell - a toplevel-shell with a main-menu, representing a document It is a subclass of basic-document-shell, toplevel-shell, shell and widget. You define a subclass of this class for application-specific main windows. GINA defines subclasses of this class. You can create an instance of this class. Callbacks: popup-callback () Instance variables: document-shell: main-window automatically created main window main-menu automatically created menu with default entries basic-document-shell: document the document the shell belongs to x-window the window to send messages to Default: nil shell: title title string views all views within the shell Default: nil document the document belonging to the shell, or nil Default: nil drag-protocols a list of keywords of accepted drag-commands Default: nil widget: widget-id integer returned by CLM create-widget call group-widget-id id used when the whole group is meant widget-id-for-sons may be different from widget-id in compound widgets parent the parent widget object in the hierarchy name name string for resource database lookup width total width in pixels height total height in pixels x-pos the x-coordinate relative to the parent y-pos the y-coordinate relative to the parent Methods of class document-shell: o standard-menu-items ((document document) (shell document-shell)) (Page m125) create the standard menu entries for this document Methods of Superclasses: o closed-by-wm ((shell basic-document-shell)) (Page m199) closing a document shell means closing its document o closed-by-wm ((shell toplevel-shell)) (Page m190) shell is being closed by the window manager destroy :before ((shell basic-document-shell)) (Page m198) update list of toplevel-shells of the document c destroy ((shell toplevel-shell)) (Page m189) destroy the shell and all its children enclosing-shell ((shell shell)) (Page m184) override to return shell itself c expose ((shell toplevel-shell)) (Page m188) bring window to front and set input focus o handle-button-press ((shell shell) &rest event-data) (Page m181) low level event handler for button-press events c pop-down ((shell shell)) (Page m183) popdown the underlying widget pop-up :after ((shell toplevel-shell)) (Page m186) register shell at the application c pop-up ((shell shell)) (Page m182) popup the underlying widget o resized-by-user ((shell toplevel-shell)) (Page m187) hook for reaction to user resizing the shell ---------------------------------------------------------------------- Function make-document-shell - create toplevel-shell with a menu-bar, representing a document (defun make-document-shell (document &key (width :auto) (height :auto) (is-main-shell t) (with-menu t) (allow-shell-resize nil) (drag-protocols (drag-protocols document)) (class 'document-shell) (initargs nil) (motif-widget-class :toplevel-shell) (name class) (motif-resources nil)) ...) document: the document object width: :auto or fixed width height: :auto or fixed height is-main-shell: whether register as main shell of document with-menu: whether create the standard menu bar allow-shell-resize: whether resizable by changing children drag-protocols: keyword list of accepted drag-commands This is the constructor function for class document-shell. The returned value is a newly created object of class document-shell. You CAN call this function. It is sometimes called by GINA. ---------------------------------------------------------------------- Class document-shell-with-scroller - a document-shell with a single scroller It is a subclass of document-shell, basic-document-shell, toplevel-shell, shell and widget. You RARELY define subclasses of this class. GINA does NOT define subclasses of this class. You can create an instance of this class. Callbacks: popup-callback () Instance variables: document-shell-with-scroller: scroller automatically created scroller as main window child document-shell: main-window automatically created main window main-menu automatically created menu with default entries basic-document-shell: document the document the shell belongs to x-window the window to send messages to Default: nil shell: title title string views all views within the shell Default: nil document the document belonging to the shell, or nil Default: nil drag-protocols a list of keywords of accepted drag-commands Default: nil widget: widget-id integer returned by CLM create-widget call group-widget-id id used when the whole group is meant widget-id-for-sons may be different from widget-id in compound widgets parent the parent widget object in the hierarchy name name string for resource database lookup width total width in pixels height total height in pixels x-pos the x-coordinate relative to the parent y-pos the y-coordinate relative to the parent Methods of class document-shell-with-scroller: Methods of Superclasses: o closed-by-wm ((shell basic-document-shell)) (Page m199) closing a document shell means closing its document o closed-by-wm ((shell toplevel-shell)) (Page m190) shell is being closed by the window manager destroy :before ((shell basic-document-shell)) (Page m198) update list of toplevel-shells of the document c destroy ((shell toplevel-shell)) (Page m189) destroy the shell and all its children enclosing-shell ((shell shell)) (Page m184) override to return shell itself c expose ((shell toplevel-shell)) (Page m188) bring window to front and set input focus o handle-button-press ((shell shell) &rest event-data) (Page m181) low level event handler for button-press events c pop-down ((shell shell)) (Page m183) popdown the underlying widget pop-up :after ((shell toplevel-shell)) (Page m186) register shell at the application c pop-up ((shell shell)) (Page m182) popup the underlying widget o resized-by-user ((shell toplevel-shell)) (Page m187) hook for reaction to user resizing the shell o standard-menu-items ((document document) (shell document-shell)) (Page m125) create the standard menu entries for this document ---------------------------------------------------------------------- Function make-document-shell-with-scroller - create a new document-shell with a single scroller (defun make-document-shell-with-scroller (document &key (width :auto) (height :auto) (allow-shell-resize nil) (drag-protocols (drag-protocols document)) (class 'document-shell-with-scroller) (initargs nil) (motif-widget-class :toplevel-shell) (name class) (motif-resources nil)) ...) document: the document object width: :auto or fixed width height: :auto or fixed height allow-shell-resize: whether resizable by changing children drag-protocols: keyword list of accepted drag-commands This is the constructor function for class document-shell-with-scroller. The returned value is a newly created object of class document-shell-with-scroller. You CAN call this function. It is sometimes called by GINA. ---------------------------------------------------------------------- Class label - the Motif label widget It is a subclass of widget. You RARELY define subclasses of this class. GINA defines subclasses of this class. You can create an instance of this class. Instance variables: label: label-string the string shown label-type either :string or :pixmap widget: widget-id integer returned by CLM create-widget call group-widget-id id used when the whole group is meant widget-id-for-sons may be different from widget-id in compound widgets parent the parent widget object in the hierarchy name name string for resource database lookup width total width in pixels height total height in pixels x-pos the x-coordinate relative to the parent y-pos the y-coordinate relative to the parent Resource slots: label-type label-string Methods of class label: ---------------------------------------------------------------------- Function make-label - create a new label widget (defun make-label (parent label-string &key (alignment :center) (recompute-size t) (label-type :string) (sensitive t) (class 'label) (initargs nil) (motif-widget-class :label) (name class) (managed t) (motif-resources nil)) ...) parent: the parent widget label-string: the label string alignment: :center :end :beginning recompute-size: whether request new size if label string changed label-type: if :pixmap, label-string is regarded as filename This is the constructor function for class label. The returned value is a newly created object of class label. You CAN call this function. It is sometimes called by GINA. ---------------------------------------------------------------------- Class drag-label - a picture label for drag and drop It is a subclass of label and widget. You RARELY define subclasses of this class. GINA does NOT define subclasses of this class. You can create an instance of this class. Callbacks: activate-callback (x y) Instance variables: drag-label: drag-shell a shell with duplicate image to move around cursor a cursor created from the label pixmap Default: :dotbox label: label-string the string shown label-type either :string or :pixmap widget: widget-id integer returned by CLM create-widget call group-widget-id id used when the whole group is meant widget-id-for-sons may be different from widget-id in compound widgets parent the parent widget object in the hierarchy name name string for resource database lookup width total width in pixels height total height in pixels x-pos the x-coordinate relative to the parent y-pos the y-coordinate relative to the parent Methods of class drag-label: ---------------------------------------------------------------------- Function make-drag-label - create a new drag label (defun make-drag-label (parent document pixmap &key (cursor-mask nil) (activate-callback nil) (sensitive t) (class 'drag-label) (initargs nil) (motif-widget-class :label) (name class) (managed t) (motif-resources nil) (shell-resources '(:border-width 1))) ...) document: the document to register commands with pixmap: name of a bitmap file cursor-mask: a bitmap file as cursor mask, or nil activate-callback: a callback that creates a drag-command This is the constructor function for class drag-label. The returned value is a newly created object of class drag-label. You CAN call this function. It is sometimes called by GINA. ---------------------------------------------------------------------- Class toggle-button - the Motif toggle button widget It is a subclass of label and widget. You RARELY define subclasses of this class. GINA does NOT define subclasses of this class. You can create an instance of this class. Callbacks: value-changed-callback (value) arm-callback (value) disarm-callback (value) Instance variables: toggle-button: value whether currently selected or not label: label-string the string shown label-type either :string or :pixmap widget: widget-id integer returned by CLM create-widget call group-widget-id id used when the whole group is meant widget-id-for-sons may be different from widget-id in compound widgets parent the parent widget object in the hierarchy name name string for resource database lookup width total width in pixels height total height in pixels x-pos the x-coordinate relative to the parent y-pos the y-coordinate relative to the parent Resource slots: value (corresponds to Motif-resource :set) Methods of class toggle-button: o execute-value-changed-callback ((button toggle-button) set &optional ignore1 ignore2) (Page m205) semantics of a users mouse click into the toggle-button ---------------------------------------------------------------------- Function make-toggle-button - make a new toggle-button widget (defun make-toggle-button (parent string &key (indicator-type :n-of-many) (label-type :string) (indicator-on (eq label-type :string)) (value nil) (value-changed-callback :call-method) (spacing 4) (recompute-size t) (sensitive t) (class 'toggle-button) (initargs nil) (motif-widget-class :toggle-button) (name class) (managed t) (motif-resources nil)) ...) parent: the parent widget string: the label-string indicator-type: :n-of-many or :one-of-many label-type: if :pixmap, label-string is regarded as filename indicator-on: if display toggle indicator value: initial value value-changed-callback: :call-method or a callback spacing: between toggle and label recompute-size: whether request new size if label-string changed This is the constructor function for class toggle-button. The returned value is a newly created object of class toggle-button. You CAN call this function. It is sometimes called by GINA. ---------------------------------------------------------------------- Method execute-value-changed-callback - semantics of a users mouse click into the toggle-button (defmethod execute-value-changed-callback ((button toggle-button) set &optional ignore1 ignore2) ...) set: state of toggle You override this method in application-specific subclasses. The default version does not do anything. Normally, you do NOT call this method. It is called by GINA when appropriate. It is NEVER overridden by GINA. This method is only called if :call-method is specified on creation. Related methods: o execute-value-changed-callback ((option-menu option-menu) new-value &optional old-value ignore) o execute-value-changed-callback ((scrollbar scrollbar) new-value &optional ignore1 ignore2) o execute-value-changed-callback ((scale scale) new-value &optional ignore1 ignore2) o execute-value-changed-callback ((group toggle-button-group) new-value &optional toggled-value set) ---------------------------------------------------------------------- Class push-button - the Motif push button widget It is a subclass of label and widget. You RARELY define subclasses of this class. GINA does NOT define subclasses of this class. You can create an instance of this class. Callbacks: activate-callback () arm-callback () disarm-callback () Instance variables: label: label-string the string shown label-type either :string or :pixmap widget: widget-id integer returned by CLM create-widget call group-widget-id id used when the whole group is meant widget-id-for-sons may be different from widget-id in compound widgets parent the parent widget object in the hierarchy name name string for resource database lookup width total width in pixels height total height in pixels x-pos the x-coordinate relative to the parent y-pos the y-coordinate relative to the parent Methods of class push-button: o execute-activate-callback ((pb push-button)) (Page m207) semantics of a users mouse click into the push-button ---------------------------------------------------------------------- Function make-push-button - make a new push-button widget (defun make-push-button (parent string &key (show-as-default 0) (label-type :string) (activate-callback :call-method) (alignment :center) (recompute-size t) (sensitive t) (class 'push-button) (initargs nil) (motif-widget-class :push-button) (name class) (managed t) (motif-resources nil)) ...) parent: the parent widget string: the label-string show-as-default: size of frame for default buttons label-type: if :pixmap, label-string is regarded as filename activate-callback: :call-method or a callback alignment: :center :end :beginning recompute-size: whether request new size if label-string changed This is the constructor function for class push-button. The returned value is a newly created object of class push-button. You CAN call this function. It is sometimes called by GINA. ---------------------------------------------------------------------- Method execute-activate-callback - semantics of a users mouse click into the push-button (defmethod execute-activate-callback ((pb push-button)) ...) You override this method in application-specific subclasses. The default version does not do anything. Normally, you do NOT call this method. It is called by GINA when appropriate. It is NEVER overridden by GINA. This method is only called if :call-method is specified on creation. This method is inherited by class dialog-dismiss-button. Related methods: o execute-activate-callback ((button dialog-dismiss-button)) o execute-activate-callback ((ab arrow-button)) ---------------------------------------------------------------------- Class cascade-button - the Motif cascade button widget It is a subclass of label and widget. You RARELY define subclasses of this class. GINA does NOT define subclasses of this class. You can create an instance of this class. Callbacks: activate-callback () cascading-callback () Instance variables: label: label-string the string shown label-type either :string or :pixmap widget: widget-id integer returned by CLM create-widget call group-widget-id id used when the whole group is meant widget-id-for-sons may be different from widget-id in compound widgets parent the parent widget object in the hierarchy name name string for resource database lookup width total width in pixels height total height in pixels x-pos the x-coordinate relative to the parent y-pos the y-coordinate relative to the parent Methods of class cascade-button: ---------------------------------------------------------------------- Function make-cascade-button - make a new cascade-button widget (defun make-cascade-button (parent string submenu &key (label-type :string) (sensitive t) (class 'cascade-button) (initargs nil) (motif-widget-class :cascade-button) (name class) (managed t) (motif-resources nil)) ...) parent: the parent widget string: the label string submenu: the pull-down submenu label-type: if :pixmap, label-string is regarded as filename This is the constructor function for class cascade-button. The returned value is a newly created object of class cascade-button. You CAN call this function. It is sometimes called by GINA. ---------------------------------------------------------------------- Class arrow-button - the Motif arrow button widget It is a subclass of widget. You RARELY define subclasses of this class. GINA does NOT define subclasses of this class. You can create an instance of this class. Callbacks: activate-callback () arm-callback () disarm-callback () Instance variables: widget: widget-id integer returned by CLM create-widget call group-widget-id id used when the whole group is meant widget-id-for-sons may be different from widget-id in compound widgets parent the parent widget object in the hierarchy name name string for resource database lookup width total width in pixels height total height in pixels x-pos the x-coordinate relative to the parent y-pos the y-coordinate relative to the parent Methods of class arrow-button: o execute-activate-callback ((ab arrow-button)) (Page m210) semantics of a users mouse click into the arrow-button ---------------------------------------------------------------------- Function make-arrow-button - make a new arrow-button widget (defun make-arrow-button (parent &key (arrow-direction :arrow-up) (activate-callback :call-method) (sensitive t) (class 'arrow-button) (initargs nil) (motif-widget-class :arrow-button) (name class) (managed t) (motif-resources nil)) ...) parent: the parent widget arrow-direction: :arrow-up, :arrow-down, :arrow-left, :arrow-right activate-callback: :call-method or a callback This is the constructor function for class arrow-button. The returned value is a newly created object of class arrow-button. You CAN call this function. It is sometimes called by GINA. ---------------------------------------------------------------------- Method execute-activate-callback - semantics of a users mouse click into the arrow-button (defmethod execute-activate-callback ((ab arrow-button)) ...) You override this method in application-specific subclasses. The default version does not do anything. Normally, you do NOT call this method. It is called by GINA when appropriate. It is NEVER overridden by GINA. This method is only called if :call-method is specified on creation. Related methods: o execute-activate-callback ((button dialog-dismiss-button)) o execute-activate-callback ((pb push-button)) ---------------------------------------------------------------------- Class scale - the Motif scale widget It is a subclass of widget. You RARELY define subclasses of this class. GINA does NOT define subclasses of this class. You can create an instance of this class. Callbacks: value-changed-callback (new-value) drag-callback (new-value) Instance variables: scale: value current value between min and max maximum maximum value minimum minimum value widget: widget-id integer returned by CLM create-widget call group-widget-id id used when the whole group is meant widget-id-for-sons may be different from widget-id in compound widgets parent the parent widget object in the hierarchy name name string for resource database lookup width total width in pixels height total height in pixels x-pos the x-coordinate relative to the parent y-pos the y-coordinate relative to the parent Resource slots: value Methods of class scale: o execute-value-changed-callback ((scale scale) new-value &optional ignore1 ignore2) (Page m212) semantics of a users modification of the current value ---------------------------------------------------------------------- Function make-scale - make a new scale widget (defun make-scale (parent &key (orientation :vertical) (processing-direction (if (eq orientation :vertical) :max-on-top :max-on-right)) (title-string "") (minimum 0) (maximum 100) (value 0) (value-changed-callback :call-method) (show-value t) (sensitive t) (class 'scale) (initargs nil) (motif-widget-class :scale) (name class) (managed t) (motif-resources nil)) ...) parent: the parent widget orientation: :vertical or :horizontal processing-direction: :max-on-top :max-on-right :max-on-top :max-on-bottom title-string: identifying label minimum: minimum value maximum: maximum value value: initial value value-changed-callback: :call-method or a callback show-value: whether current value is displayed as a number This is the constructor function for class scale. The returned value is a newly created object of class scale. You CAN call this function. It is sometimes called by GINA. ---------------------------------------------------------------------- Method execute-value-changed-callback - semantics of a users modification of the current value (defmethod execute-value-changed-callback ((scale scale) new-value &optional ignore1 ignore2) ...) You override this method in application-specific subclasses. The default version does not do anything. Normally, you do NOT call this method. It is called by GINA when appropriate. It is NEVER overridden by GINA. This method is only called if :call-method is specified on creation. Related methods: o execute-value-changed-callback ((option-menu option-menu) new-value &optional old-value ignore) o execute-value-changed-callback ((button toggle-button) set &optional ignore1 ignore2) o execute-value-changed-callback ((scrollbar scrollbar) new-value &optional ignore1 ignore2) o execute-value-changed-callback ((group toggle-button-group) new-value &optional toggled-value set) ---------------------------------------------------------------------- Class scrollbar - the Motif scroll bar widget It is a subclass of widget. You RARELY define subclasses of this class. GINA does NOT define subclasses of this class. You can create an instance of this class. Callbacks: value-changed-callback (new-value) drag-callback (new-value) decrement-callback (new-value) increment-callback (new-value) page-decrement-callback (new-value) page-increment-callback (new-value) to-bottom-callback (new-value button-press-pos) to-top-callback (new-value button-press-pos) Instance variables: scrollbar: value current value between min and max maximum maximum value in application-defined units minimum minimum value in application-defined units increment single-step increment in application-defined units page-increment page-step increment in application-defined units slider-size slider size in application-defined units widget: widget-id integer returned by CLM create-widget call group-widget-id id used when the whole group is meant widget-id-for-sons may be different from widget-id in compound widgets parent the parent widget object in the hierarchy name name string for resource database lookup width total width in pixels height total height in pixels x-pos the x-coordinate relative to the parent y-pos the y-coordinate relative to the parent Resource slots: slider-size page-increment increment minimum maximum value Methods of class scrollbar: o execute-value-changed-callback ((scrollbar scrollbar) new-value &optional ignore1 ignore2) (Page m214) semantics of a users modification of the current value ---------------------------------------------------------------------- Function make-scrollbar - make a new scrollbar widget (defun make-scrollbar (parent &key (orientation :vertical) (minimum 0) (maximum 100) (value 0) (increment 1) (page-increment 10) (slider-size 10) (value-changed-callback :call-method) (class 'scrollbar) (initargs nil) (motif-widget-class :scroll-bar) (name class) (managed t) (motif-resources nil)) ...) parent: the parent widget orientation: :vertical or :horizontal minimum: initial minimum maximum: initial maximum value: initial value increment: initial increment page-increment: initial page-increment slider-size: initial slider-size value-changed-callback: :call-method or a callback This is the constructor function for class scrollbar. The returned value is a newly created object of class scrollbar. You CAN call this function. It is sometimes called by GINA. ---------------------------------------------------------------------- Method execute-value-changed-callback - semantics of a users modification of the current value (defmethod execute-value-changed-callback ((scrollbar scrollbar) new-value &optional ignore1 ignore2) ...) You override this method in application-specific subclasses. The default version does not do anything. Normally, you do NOT call this method. It is called by GINA when appropriate. It is NEVER overridden by GINA. This method is only called if :call-method is specified on creation. Related methods: o execute-value-changed-callback ((option-menu option-menu) new-value &optional old-value ignore) o execute-value-changed-callback ((button toggle-button) set &optional ignore1 ignore2) o execute-value-changed-callback ((scale scale) new-value &optional ignore1 ignore2) o execute-value-changed-callback ((group toggle-button-group) new-value &optional toggled-value set) ---------------------------------------------------------------------- Class main-menu - a menu-bar plus its popup shells It is a subclass of menu-bar and widget. You RARELY define subclasses of this class. GINA does NOT define subclasses of this class. You can create an instance of this class. Instance variables: widget: widget-id integer returned by CLM create-widget call group-widget-id id used when the whole group is meant widget-id-for-sons may be different from widget-id in compound widgets parent the parent widget object in the hierarchy name name string for resource database lookup width total width in pixels height total height in pixels x-pos the x-coordinate relative to the parent y-pos the y-coordinate relative to the parent Methods of class main-menu: c add-menu-command ((menu main-menu) topic item-name callback &key (separator-before nil) (accelerator nil) (acc-modifier :alt)) (Page m219) add a button menu entry c find-menu-entry ((menu main-menu) topic-name item-name) (Page m218) find the entry corresponding to the named item c insert-menu-entry ((menu main-menu) topic-name item-name entry &key (before :end)) (Page m216) create a menu entry under the named topic c remove-menu-entry ((menu main-menu) topic-name item-name) (Page m217) remove the menu entry ---------------------------------------------------------------------- Function make-main-menu - create a new main-menu widget (defun make-main-menu (parent &key (class 'main-menu) (initargs nil) (motif-widget-class :row-column) (name class) (managed t) (motif-resources nil)) ...) parent: the parent widget This is the constructor function for class main-menu. The returned value is a newly created object of class main-menu. You CAN call this function. It is sometimes called by GINA. ---------------------------------------------------------------------- Method insert-menu-entry - create a menu entry under the named topic (defmethod insert-menu-entry ((menu main-menu) topic-name item-name entry &key (before :end)) ...) topic-name: identifying string and menu title item-name: identifying string for the entry entry: object of a subclass of entry before: :end or the name of another entry You RARELY override this method or add deamons. The default version is sufficient for most cases. You CAN call this method to add an entry to a menu. It is called by GINA when appropriate. It is NEVER overridden by GINA. Example: (with-application-stopped (insert-menu-entry (main-menu (main-shell (first (document-list *application*)))) "Edit" "Clear" (make-toggle-entry "Clear Nil" nil) :before "Undo")) inserts an entry in the Edit menu before the Undo entry the entry is a toggle button showing "Clear Nil" and an empty callback the entry can later be referenced by the two keys "Edit" and "Clear" ---------------------------------------------------------------------- Method remove-menu-entry - remove the menu entry (defmethod remove-menu-entry ((menu main-menu) topic-name item-name) ...) topic-name: string identifying topic item-name: string identifying entry The returned value is the removed entry object. You RARELY override this method or add deamons. The default version is sufficient for most cases. You CAN call this method to remove a standard menu entry. It is called by GINA when appropriate. It is NEVER overridden by GINA. ---------------------------------------------------------------------- Method find-menu-entry - find the entry corresponding to the named item (defmethod find-menu-entry ((menu main-menu) topic-name item-name) ...) topic-name: string identifying topic item-name: string identifying entry The returned value is the entry object identified by topic and item, or nil. You RARELY override this method or add deamons. The default version is sufficient for most cases. You CAN call this method to find the entry object. It is called by GINA when appropriate. It is NEVER overridden by GINA. ---------------------------------------------------------------------- Method add-menu-command - add a button menu entry (defmethod add-menu-command ((menu main-menu) topic item-name callback &key (separator-before nil) (accelerator nil) (acc-modifier :alt)) ...) topic: string identifying topic item-name: string identifying entry callback: the callback activated by the entry You RARELY override this method or add deamons. The default version is sufficient for most cases. You CAN call this method to add a simple menu entry. It is called by GINA when appropriate. It is NEVER overridden by GINA. This method is a convenience interface to insert a button entry ---------------------------------------------------------------------- Class menu-entry - the parent class for menu entries You RARELY define subclasses of this class. GINA defines subclasses of this class. You never create an instance of this class. Instance variables: sensitive the sensitivity flag Default: t separator-before whether create a separating line before this entry callback the callback associated with the entry Methods of class menu-entry: (setf sensitive) :after (new-value (entry menu-entry)) (Page m220) set sensitivity of entry if widget exists ---------------------------------------------------------------------- Method (setf sensitive) - set sensitivity of entry if widget exists (defmethod (setf sensitive) :after (new-value (entry menu-entry)) ...) You RARELY override this method or add deamons. The default version is sufficient for most cases. Normally, you do NOT call this method. It is called by GINA when appropriate. It is NEVER overridden by GINA. This method is inherited by class radio-group-entry, toggle-group-entry, toggle-entry and button-entry. ---------------------------------------------------------------------- Class button-entry - a button entry in menus It is a subclass of menu-entry. You RARELY define subclasses of this class. GINA defines subclasses of this class. You can create an instance of this class. Callbacks: callback () Instance variables: button-entry: label-string the label string shown accelerator a string denoting an accelerator key, e.g. "F5" acc-modifier modifier, one of :alt :shift :ctrl menu-entry: sensitive the sensitivity flag Default: t separator-before whether create a separating line before this entry callback the callback associated with the entry Methods of class button-entry: (setf acc-modifier) :after (new-value (entry button-entry)) (Page m224) propagate new modifier to widget (setf accelerator) :after (new-value (entry button-entry)) (Page m223) propagate new accelerator to widget (setf label-string) :after (new-value (entry button-entry)) (Page m222) propagate label string to widget Methods of Superclasses: (setf sensitive) :after (new-value (entry menu-entry)) (Page m220) set sensitivity of entry if widget exists ---------------------------------------------------------------------- Function make-button-entry - create a button entry instance (defun make-button-entry (string callback &key (separator-before nil) (accelerator nil) (acc-modifier :alt)) ...) string: initial label string callback: to be activated by the entry This is the constructor function for class button-entry. The returned value is a newly created object of class button-entry. You CAN call this function. It is sometimes called by GINA. ---------------------------------------------------------------------- Method (setf label-string) - propagate label string to widget (defmethod (setf label-string) :after (new-value (entry button-entry)) ...) You RARELY override this method or add deamons. The default version is sufficient for most cases. Normally, you do NOT call this method. It is called by GINA when appropriate. It is NEVER overridden by GINA. This method is inherited by class radio-group-entry, toggle-group-entry and toggle-entry. ---------------------------------------------------------------------- Method (setf accelerator) - propagate new accelerator to widget (defmethod (setf accelerator) :after (new-value (entry button-entry)) ...) You RARELY override this method or add deamons. The default version is sufficient for most cases. Normally, you do NOT call this method. It is called by GINA when appropriate. It is NEVER overridden by GINA. This method is inherited by class radio-group-entry, toggle-group-entry and toggle-entry. ---------------------------------------------------------------------- Method (setf acc-modifier) - propagate new modifier to widget (defmethod (setf acc-modifier) :after (new-value (entry button-entry)) ...) You RARELY override this method or add deamons. The default version is sufficient for most cases. Normally, you do NOT call this method. It is called by GINA when appropriate. It is NEVER overridden by GINA. This method is inherited by class radio-group-entry, toggle-group-entry and toggle-entry. ---------------------------------------------------------------------- Class toggle-entry - a toggle button entry in menus It is a subclass of button-entry and menu-entry. You RARELY define subclasses of this class. GINA does NOT define subclasses of this class. You can create an instance of this class. Callbacks: callback (value) callback () Instance variables: toggle-entry: value the current toggle value button-entry: label-string the label string shown accelerator a string denoting an accelerator key, e.g. "F5" acc-modifier modifier, one of :alt :shift :ctrl menu-entry: sensitive the sensitivity flag Default: t separator-before whether create a separating line before this entry callback the callback associated with the entry Methods of class toggle-entry: (setf value) :after (new-value (entry toggle-entry)) (Page m226) propagate value changes to the widget Methods of Superclasses: (setf acc-modifier) :after (new-value (entry button-entry)) (Page m224) propagate new modifier to widget (setf accelerator) :after (new-value (entry button-entry)) (Page m223) propagate new accelerator to widget (setf label-string) :after (new-value (entry button-entry)) (Page m222) propagate label string to widget (setf sensitive) :after (new-value (entry menu-entry)) (Page m220) set sensitivity of entry if widget exists ---------------------------------------------------------------------- Function make-toggle-entry - create a toggle button entry instance (defun make-toggle-entry (string callback &key (value nil) (separator-before nil) (accelerator nil) (acc-modifier :alt)) ...) string: initial label string callback: to be activated by the entry value: initial value This is the constructor function for class toggle-entry. The returned value is a newly created object of class toggle-entry. You CAN call this function. It is sometimes called by GINA. ---------------------------------------------------------------------- Method (setf value) - propagate value changes to the widget (defmethod (setf value) :after (new-value (entry toggle-entry)) ...) You RARELY override this method or add deamons. The default version is sufficient for most cases. Normally, you do NOT call this method. It is called by GINA when appropriate. It is NEVER overridden by GINA. Related methods: (setf value) (hyper::new-value (hyper::clock hyper::clock-element)) (setf value) (hyper::new-value (hyper::button hyper::button-element)) (setf value) (hyper::new-value (string hyper::string-element)) (setf value) :after (new-value (selection-list selection-list)) (setf value) (hyper::new-value (number hyper::number-element)) (setf value) (hyper::new-value (text hyper::text-element)) (setf value) (hyper::new-value (hyper::elem hyper::element)) (setf value) :after (new-value (option-menu option-menu)) (setf value) :before (new-value (group toggle-button-group)) (setf value) :before (new-value (group toggle-group-entry)) (setf value) (hyper::new-value (hyper::code hyper::code-element)) (setf value) (hyper::new-value (scale hyper::scale-element)) ---------------------------------------------------------------------- Class toggle-group-entry - a group of toggle buttons in a menu It is a subclass of button-entry and menu-entry. You RARELY define subclasses of this class. GINA defines subclasses of this class. You can create an instance of this class. Callbacks: callback (value toggled-value set) callback () Instance variables: toggle-group-entry: is-submenu whether use a submenu or expand in place item-list list of strings or (string value) pairs initial-value initial string or value button-resources motif-resources for buttons button-label-type label-type for buttons value a subset of value-list Default: nil value-list list of values extracted from item list button-entry: label-string the label string shown accelerator a string denoting an accelerator key, e.g. "F5" acc-modifier modifier, one of :alt :shift :ctrl menu-entry: sensitive the sensitivity flag Default: t separator-before whether create a separating line before this entry callback the callback associated with the entry Methods of class toggle-group-entry: c set-item-list ((group toggle-group-entry) new-item-list &key (selected-value nil)) (Page m229) the item-list has changed (setf value) :before (new-value (group toggle-group-entry)) (Page m228) the application has changed the selected values Methods of Superclasses: (setf acc-modifier) :after (new-value (entry button-entry)) (Page m224) propagate new modifier to widget (setf accelerator) :after (new-value (entry button-entry)) (Page m223) propagate new accelerator to widget (setf label-string) :after (new-value (entry button-entry)) (Page m222) propagate label string to widget (setf sensitive) :after (new-value (entry menu-entry)) (Page m220) set sensitivity of entry if widget exists ---------------------------------------------------------------------- Function make-toggle-group-entry - create a toggle group entry instance (defun make-toggle-group-entry (label-string item-list callback &key (separator-before nil) (is-submenu t) (initial-value nil) (button-label-type :string) (button-resources nil)) ...) label-string: label-string if submenu item-list: list of strings or (string value) pairs callback: a value-changed callback is-submenu: whether use submenu or expand in place initial-value: a subset of value-list button-label-type: :string or :pixmap button-resources: motif-resources for buttons This is the constructor function for class toggle-group-entry. The returned value is a newly created object of class toggle-group-entry. You CAN call this function. It is sometimes called by GINA. Example: (make-toggle-group-entry "Style" '(("Bold" :bold) ("Italic" :italic)) (make-callback '(lambda (value toggled-value set) nil)) :initial-value '(:bold)) ---------------------------------------------------------------------- Method (setf value) - the application has changed the selected values (defmethod (setf value) :before (new-value (group toggle-group-entry)) ...) You RARELY override this method or add deamons. The default version is sufficient for most cases. Normally, you do NOT call this method. It is called by GINA when appropriate. It is NEVER overridden by GINA. This method is inherited by class radio-group-entry. Related methods: (setf value) (hyper::new-value (hyper::clock hyper::clock-element)) (setf value) (hyper::new-value (hyper::button hyper::button-element)) (setf value) (hyper::new-value (string hyper::string-element)) (setf value) :after (new-value (entry toggle-entry)) (setf value) :after (new-value (selection-list selection-list)) (setf value) (hyper::new-value (number hyper::number-element)) (setf value) (hyper::new-value (text hyper::text-element)) (setf value) (hyper::new-value (hyper::elem hyper::element)) (setf value) :after (new-value (option-menu option-menu)) (setf value) :before (new-value (group toggle-button-group)) (setf value) (hyper::new-value (hyper::code hyper::code-element)) (setf value) (hyper::new-value (scale hyper::scale-element)) ---------------------------------------------------------------------- Method set-item-list - the item-list has changed (defmethod set-item-list ((group toggle-group-entry) new-item-list &key (selected-value nil)) ...) new-item-list: list of strings or (string value) pairs selected-value: a subset of the values in the item list You RARELY override this method or add deamons. The default version is sufficient for most cases. You CAN call this method to change the item list of the menu entry. It is called by GINA when appropriate. It is NEVER overridden by GINA. This method is inherited by class radio-group-entry. Related methods: c set-item-list ((group radio-group-entry) new-item-list &key (selected-value :use-first)) c set-item-list ((selection-list selection-list) new-item-list &key (selected-value :use-first)) c set-item-list ((option-menu option-menu) new-item-list &key (selected-value :use-first)) c set-item-list ((group toggle-button-group) new-item-list &key (selected-value nil) (managed t)) c set-item-list ((group radio-button-group) new-item-list &key (selected-value :use-first) (managed t)) ---------------------------------------------------------------------- Class radio-group-entry - a radio button group in a menu It is a subclass of toggle-group-entry, button-entry and menu-entry. You RARELY define subclasses of this class. GINA does NOT define subclasses of this class. You can create an instance of this class. Callbacks: callback (value old-value) callback (value toggled-value set) callback () Instance variables: toggle-group-entry: is-submenu whether use a submenu or expand in place item-list list of strings or (string value) pairs initial-value initial string or value button-resources motif-resources for buttons button-label-type label-type for buttons value a subset of value-list Default: nil value-list list of values extracted from item list button-entry: label-string the label string shown accelerator a string denoting an accelerator key, e.g. "F5" acc-modifier modifier, one of :alt :shift :ctrl menu-entry: sensitive the sensitivity flag Default: t separator-before whether create a separating line before this entry callback the callback associated with the entry Methods of class radio-group-entry: c set-item-list ((group radio-group-entry) new-item-list &key (selected-value :use-first)) (Page m231) the item-list has changed Methods of Superclasses: (setf acc-modifier) :after (new-value (entry button-entry)) (Page m224) propagate new modifier to widget (setf accelerator) :after (new-value (entry button-entry)) (Page m223) propagate new accelerator to widget (setf label-string) :after (new-value (entry button-entry)) (Page m222) propagate label string to widget (setf sensitive) :after (new-value (entry menu-entry)) (Page m220) set sensitivity of entry if widget exists c set-item-list ((group toggle-group-entry) new-item-list &key (selected-value nil)) (Page m229) the item-list has changed (setf value) :before (new-value (group toggle-group-entry)) (Page m228) the application has changed the selected values ---------------------------------------------------------------------- Function make-radio-group-entry - create a toggle group entry instance (defun make-radio-group-entry (label-string item-list callback &key (separator-before nil) (is-submenu t) (initial-value :use-first) (button-label-type :string) (button-resources nil)) ...) label-string: label-string if submenu item-list: list of strings or (string value) pairs callback: a value-changed callback is-submenu: whether use submenu or expand in place initial-value: a value from value-list or :use-first button-label-type: :string or :pixmap button-resources: motif-resources for buttons This is the constructor function for class radio-group-entry. The returned value is a newly created object of class radio-group-entry. You CAN call this function. It is sometimes called by GINA. Example: (make-radio-group-entry "Font" '(("Courier" :courier) ("Times" :times)) (make-callback '(lambda (new-value old-value) nil)) :initial-value :times) ---------------------------------------------------------------------- Method set-item-list - the item-list has changed (defmethod set-item-list ((group radio-group-entry) new-item-list &key (selected-value :use-first)) ...) new-item-list: list of strings or (string value) pairs selected-value: a value from value-list or :use-first You RARELY override this method or add deamons. The default version is sufficient for most cases. You CAN call this method to change the item list of the menu entry. It is called by GINA when appropriate. It is NEVER overridden by GINA. Related methods: c set-item-list ((selection-list selection-list) new-item-list &key (selected-value :use-first)) c set-item-list ((group toggle-group-entry) new-item-list &key (selected-value nil)) c set-item-list ((option-menu option-menu) new-item-list &key (selected-value :use-first)) c set-item-list ((group toggle-button-group) new-item-list &key (selected-value nil) (managed t)) c set-item-list ((group radio-button-group) new-item-list &key (selected-value :use-first) (managed t)) ---------------------------------------------------------------------- Class menu-bar - a special kind of row-column widget It is a subclass of widget. You RARELY define subclasses of this class. GINA does NOT define subclasses of this class. You can create an instance of this class. Instance variables: widget: widget-id integer returned by CLM create-widget call group-widget-id id used when the whole group is meant widget-id-for-sons may be different from widget-id in compound widgets parent the parent widget object in the hierarchy name name string for resource database lookup width total width in pixels height total height in pixels x-pos the x-coordinate relative to the parent y-pos the y-coordinate relative to the parent Methods of class menu-bar: ---------------------------------------------------------------------- Function make-menu-bar - make a new MenuBar widget (defun make-menu-bar (parent &key (class 'menu-bar) (initargs nil) (motif-widget-class :row-column) (name class) (managed t) (motif-resources nil)) ...) parent: the parent widget This is the constructor function for class menu-bar. The returned value is a newly created object of class menu-bar. You CAN call this function. It is sometimes called by GINA. ---------------------------------------------------------------------- Class option-menu - the Motif option menu widget It is a subclass of widget. You RARELY define subclasses of this class. GINA does NOT define subclasses of this class. You can create an instance of this class. Callbacks: value-changed-callback (value old-value) Instance variables: option-menu: value the current value from the value-list Default: nil value-list list of values extracted from the item list Default: nil option-shell the menu shell for the option menu pane button-box the option menu pane option-buttons the list of buttons in the pane Default: nil widget: widget-id integer returned by CLM create-widget call group-widget-id id used when the whole group is meant widget-id-for-sons may be different from widget-id in compound widgets parent the parent widget object in the hierarchy name name string for resource database lookup width total width in pixels height total height in pixels x-pos the x-coordinate relative to the parent y-pos the y-coordinate relative to the parent Methods of class option-menu: o execute-value-changed-callback ((option-menu option-menu) new-value &optional old-value ignore) (Page m235) reaction when a new option is selected by the user c set-item-list ((option-menu option-menu) new-item-list &key (selected-value :use-first)) (Page m234) the item-list has changed (setf value) :after (new-value (option-menu option-menu)) (Page m236) the value is changed by the application program, not the user ---------------------------------------------------------------------- Function make-option-menu - create a new option-menu (defun make-option-menu (parent item-list &key (label-string nil) (value-changed-callback :call-method) (initial-value :use-first) (class 'option-menu) (initargs nil) (motif-widget-class :row-column) (name class) (managed t) (motif-resources nil)) ...) parent: the parent widget item-list: a list of strings or (string value) pairs label-string: the label string on the left side value-changed-callback: :call-method or a callback initial-value: a value from the value-list or :use-first This is the constructor function for class option-menu. The returned value is a newly created object of class option-menu. You CAN call this function. It is sometimes called by GINA. ---------------------------------------------------------------------- Method set-item-list - the item-list has changed (defmethod set-item-list ((option-menu option-menu) new-item-list &key (selected-value :use-first)) ...) new-item-list: a list of strings or (string value) pairs selected-value: a value from the value-list or :use-first You RARELY override this method or add deamons. The default version is sufficient for most cases. You CAN call this method to change the list of options. It is called by GINA when appropriate. It is NEVER overridden by GINA. Related methods: c set-item-list ((group radio-group-entry) new-item-list &key (selected-value :use-first)) c set-item-list ((selection-list selection-list) new-item-list &key (selected-value :use-first)) c set-item-list ((group toggle-group-entry) new-item-list &key (selected-value nil)) c set-item-list ((group toggle-button-group) new-item-list &key (selected-value nil) (managed t)) c set-item-list ((group radio-button-group) new-item-list &key (selected-value :use-first) (managed t)) ---------------------------------------------------------------------- Method execute-value-changed-callback - reaction when a new option is selected by the user (defmethod execute-value-changed-callback ((option-menu option-menu) new-value &optional old-value ignore) ...) You override this method in application-specific subclasses. The default version does not do anything. Normally, you do NOT call this method. It is called by GINA when appropriate. It is NEVER overridden by GINA. Related methods: o execute-value-changed-callback ((button toggle-button) set &optional ignore1 ignore2) o execute-value-changed-callback ((scrollbar scrollbar) new-value &optional ignore1 ignore2) o execute-value-changed-callback ((scale scale) new-value &optional ignore1 ignore2) o execute-value-changed-callback ((group toggle-button-group) new-value &optional toggled-value set) ---------------------------------------------------------------------- Method (setf value) - the value is changed by the application program, not the user (defmethod (setf value) :after (new-value (option-menu option-menu)) ...) You RARELY override this method or add deamons. The default version is sufficient for most cases. Normally, you do NOT call this method. It is called by GINA when appropriate. It is NEVER overridden by GINA. Related methods: (setf value) (hyper::new-value (hyper::clock hyper::clock-element)) (setf value) (hyper::new-value (hyper::button hyper::button-element)) (setf value) (hyper::new-value (string hyper::string-element)) (setf value) :after (new-value (entry toggle-entry)) (setf value) :after (new-value (selection-list selection-list)) (setf value) (hyper::new-value (number hyper::number-element)) (setf value) (hyper::new-value (text hyper::text-element)) (setf value) (hyper::new-value (hyper::elem hyper::element)) (setf value) :before (new-value (group toggle-button-group)) (setf value) :before (new-value (group toggle-group-entry)) (setf value) (hyper::new-value (hyper::code hyper::code-element)) (setf value) (hyper::new-value (scale hyper::scale-element)) ---------------------------------------------------------------------- Class menu-pulldown - the Motif row-column widget operating as a menu pane It is a subclass of widget. You RARELY define subclasses of this class. GINA does NOT define subclasses of this class. You can create an instance of this class. Instance variables: widget: widget-id integer returned by CLM create-widget call group-widget-id id used when the whole group is meant widget-id-for-sons may be different from widget-id in compound widgets parent the parent widget object in the hierarchy name name string for resource database lookup width total width in pixels height total height in pixels x-pos the x-coordinate relative to the parent y-pos the y-coordinate relative to the parent Methods of class menu-pulldown: ---------------------------------------------------------------------- Function make-menu-pulldown - make a new pull-down menu widget (defun make-menu-pulldown (parent &key (class 'menu-pulldown) (initargs nil) (motif-widget-class :row-column) (name class) (motif-resources nil)) ...) parent: the parent widget This is the constructor function for class menu-pulldown. The returned value is a newly created object of class menu-pulldown. You CAN call this function. It is sometimes called by GINA. ---------------------------------------------------------------------- Class main-window - the Motif main-window widget It is a subclass of widget. You RARELY define subclasses of this class. GINA does NOT define subclasses of this class. You can create an instance of this class. Instance variables: widget: widget-id integer returned by CLM create-widget call group-widget-id id used when the whole group is meant widget-id-for-sons may be different from widget-id in compound widgets parent the parent widget object in the hierarchy name name string for resource database lookup width total width in pixels height total height in pixels x-pos the x-coordinate relative to the parent y-pos the y-coordinate relative to the parent Methods of class main-window: ---------------------------------------------------------------------- Function make-main-window - make a new main-window widget (defun make-main-window (parent &key (class 'main-window) (initargs nil) (motif-widget-class :main-window) (name class) (managed t) (motif-resources nil)) ...) parent: the parent widget This is the constructor function for class main-window. The returned value is a newly created object of class main-window. You CAN call this function. It is sometimes called by GINA. ---------------------------------------------------------------------- Class scroller - the Motif scrolled-window widget It is a subclass of widget. You RARELY define subclasses of this class. GINA does NOT define subclasses of this class. You can create an instance of this class. Instance variables: scroller: horizontal-scrollbar scroll bar object or nil (read-only) Default: nil vertical-scrollbar scroll bar object or nil (read-only) Default: nil work-area the work area child (read-only) Default: nil widget: widget-id integer returned by CLM create-widget call group-widget-id id used when the whole group is meant widget-id-for-sons may be different from widget-id in compound widgets parent the parent widget object in the hierarchy name name string for resource database lookup width total width in pixels height total height in pixels x-pos the x-coordinate relative to the parent y-pos the y-coordinate relative to the parent Methods of class scroller: point-visible ((scroller scroller) x y &key (ask-for-work-area-pos t) (ask-for-clipper-size t)) (Page m243) check whether the specified point is visible c scroll-to ((scroller scroller) x-offset y-offset &key (x-window-only nil)) (Page m241) initiate scrolling from the application side show-point ((scroller scroller) x y &key (ask-for-work-area-pos t) (ask-for-clipper-size t) (x-window-only nil) (force-scrolling nil)) (Page m242) do minimal scrolling to make the specified point visible son-created ((scroller scroller) son) (Page m240) in this case the scroller is informed that the work-area is created ---------------------------------------------------------------------- Function make-scroller - make a new scroller widget (defun make-scroller (parent &key (scrolling-policy :automatic) (class 'scroller) (initargs nil) (motif-widget-class :scrolled-window) (name class) (managed t) (motif-resources nil)) ...) parent: the parent widget scrolling-policy: :automatic or :application-defined This is the constructor function for class scroller. The returned value is a newly created object of class scroller. You CAN call this function. It is sometimes called by GINA. ---------------------------------------------------------------------- Method son-created - in this case the scroller is informed that the work-area is created (defmethod son-created ((scroller scroller) son) ...) You RARELY override this method or add deamons. The default version is sufficient for most cases. Normally, you do NOT call this method. It is called by GINA when appropriate. It is NEVER overridden by GINA. Related methods: son-created ((w widget) son) ---------------------------------------------------------------------- Method scroll-to - initiate scrolling from the application side (defmethod scroll-to ((scroller scroller) x-offset y-offset &key (x-window-only nil)) ...) You RARELY override this method or add deamons. The default version is sufficient for most cases. You CAN call this method to scroll to a new position. It is called by GINA when appropriate. It is NEVER overridden by GINA. ---------------------------------------------------------------------- Method show-point - do minimal scrolling to make the specified point visible (defmethod show-point ((scroller scroller) x y &key (ask-for-work-area-pos t) (ask-for-clipper-size t) (x-window-only nil) (force-scrolling nil)) ...) You RARELY override this method or add deamons. The default version is sufficient for most cases. Normally, you do NOT call this method. It is called by GINA when appropriate. It is NEVER overridden by GINA. ---------------------------------------------------------------------- Method point-visible - check whether the specified point is visible (defmethod point-visible ((scroller scroller) x y &key (ask-for-work-area-pos t) (ask-for-clipper-size t)) ...) You RARELY override this method or add deamons. The default version is sufficient for most cases. Normally, you do NOT call this method. It is called by GINA when appropriate. It is NEVER overridden by GINA. ---------------------------------------------------------------------- Class separator - the Motif separator widget It is a subclass of widget. You RARELY define subclasses of this class. GINA does NOT define subclasses of this class. You can create an instance of this class. Instance variables: widget: widget-id integer returned by CLM create-widget call group-widget-id id used when the whole group is meant widget-id-for-sons may be different from widget-id in compound widgets parent the parent widget object in the hierarchy name name string for resource database lookup width total width in pixels height total height in pixels x-pos the x-coordinate relative to the parent y-pos the y-coordinate relative to the parent Methods of class separator: ---------------------------------------------------------------------- Function make-separator - make a new separator widget (defun make-separator (parent &key (orientation :horizontal) (margin 0) (separator-type :shadow-etched-in) (class 'separator) (initargs nil) (motif-widget-class :separator) (name class) (managed t) (motif-resources nil)) ...) parent: the parent widget orientation: :horizontal or :vertical margin: between end of line and end of widget separator-type: type of line This is the constructor function for class separator. The returned value is a newly created object of class separator. You CAN call this function. It is sometimes called by GINA. separator-type may be one of: :no-line :single-line :double-line :single-dashed-line :double-dashed-line :shadow-etched-in :shadow-etched-out ---------------------------------------------------------------------- Class frame - the Motif frame widget It is a subclass of widget. You RARELY define subclasses of this class. GINA defines subclasses of this class. You can create an instance of this class. Instance variables: widget: widget-id integer returned by CLM create-widget call group-widget-id id used when the whole group is meant widget-id-for-sons may be different from widget-id in compound widgets parent the parent widget object in the hierarchy name name string for resource database lookup width total width in pixels height total height in pixels x-pos the x-coordinate relative to the parent y-pos the y-coordinate relative to the parent Methods of class frame: ---------------------------------------------------------------------- Function make-frame - make a new frame widget (defun make-frame (parent &key (margin-width 0) (margin-height 0) (shadow-type :in) (class 'frame) (initargs nil) (motif-widget-class :frame) (name class) (managed t) (motif-resources nil)) ...) shadow-type: :in :out :etched-in :etched-out This is the constructor function for class frame. The returned value is a newly created object of class frame. You CAN call this function. It is sometimes called by GINA. ---------------------------------------------------------------------- Class paned-window - the Motif paned window widget It is a subclass of widget. You RARELY define subclasses of this class. GINA does NOT define subclasses of this class. You can create an instance of this class. Instance variables: widget: widget-id integer returned by CLM create-widget call group-widget-id id used when the whole group is meant widget-id-for-sons may be different from widget-id in compound widgets parent the parent widget object in the hierarchy name name string for resource database lookup width total width in pixels height total height in pixels x-pos the x-coordinate relative to the parent y-pos the y-coordinate relative to the parent Methods of class paned-window: ---------------------------------------------------------------------- Function make-paned-window - make a new paned-window widget (defun make-paned-window (parent &key (spacing 8) (class 'paned-window) (initargs nil) (motif-widget-class :paned-window) (name class) (managed t) (motif-resources nil)) ...) parent: the parent widget spacing: between panes This is the constructor function for class paned-window. The returned value is a newly created object of class paned-window. You CAN call this function. It is sometimes called by GINA. ---------------------------------------------------------------------- Function define-pane-constraint - define constraint for child of a paned-window widget (defun define-pane-constraint (widget &key (minimum 1000 minimum-specified) (maximum 1000 maximum-specified) (allow-resize nil allow-resize-specified) (skip-adjust nil skip-adjust-specified)) ...) widget: a child of the pane minimum: the minimum size of this pane maximum: the maximum size of this pane You CAN call this function to set constraints for a paned-window child. It is sometimes called by GINA. ---------------------------------------------------------------------- Class row-column - the Motif row-column widget It is a subclass of widget. You RARELY define subclasses of this class. GINA defines subclasses of this class. You can create an instance of this class. Instance variables: widget: widget-id integer returned by CLM create-widget call group-widget-id id used when the whole group is meant widget-id-for-sons may be different from widget-id in compound widgets parent the parent widget object in the hierarchy name name string for resource database lookup width total width in pixels height total height in pixels x-pos the x-coordinate relative to the parent y-pos the y-coordinate relative to the parent Methods of class row-column: ---------------------------------------------------------------------- Function make-row-column - make a new row-column widget (defun make-row-column (parent &key (orientation :vertical) (num-columns 1) (packing nil) (entry-alignment :beginning) (spacing 1) (margin-width 2) (margin-height 2) (class 'row-column) (initargs nil) (motif-widget-class :row-column) (name class) (managed t) (motif-resources nil)) ...) parent: the parent widget orientation: :vertical or :horizontal num-columns: more than one implies column packing packing: nil=dynamic, :pack-column or :pack-tight entry-alignment: :none, :beginning, :center or :end spacing: between children This is the constructor function for class row-column. The returned value is a newly created object of class row-column. You CAN call this function. It is sometimes called by GINA. ---------------------------------------------------------------------- Class labeled-frame - a frame with a label on top It is a subclass of frame and widget. You RARELY define subclasses of this class. GINA does NOT define subclasses of this class. You can create an instance of this class. Instance variables: labeled-frame: column automatically created row-column label automatically created label-child widget: widget-id integer returned by CLM create-widget call group-widget-id id used when the whole group is meant widget-id-for-sons may be different from widget-id in compound widgets parent the parent widget object in the hierarchy name name string for resource database lookup width total width in pixels height total height in pixels x-pos the x-coordinate relative to the parent y-pos the y-coordinate relative to the parent Methods of class labeled-frame: ---------------------------------------------------------------------- Function make-labeled-frame - make a new labeled-frame widget (defun make-labeled-frame (parent label-string &key (shadow-type :etched-in) (class 'labeled-frame) (initargs nil) (motif-widget-class :frame) (name class) (managed t) (motif-resources nil) (label-resources nil) (column-resources nil)) ...) parent: the parent widget label-string: the label string shown shadow-type: :in :out :etched-in :etched-out label-resources: motif-resources for the label column-resources: motif-resources for the row-column This is the constructor function for class labeled-frame. The returned value is a newly created object of class labeled-frame. You CAN call this function. It is sometimes called by GINA. ---------------------------------------------------------------------- Class toggle-button-group - a group of toggle buttons with optional label and frame It is a subclass of row-column and widget. You RARELY define subclasses of this class. GINA defines subclasses of this class. You can create an instance of this class. Callbacks: value-changed-callback (value toggled-value set) Instance variables: toggle-button-group: button-resources motif-resources for buttons button-label-type label-type for buttons value a subset of value-list Default: nil value-list the list of values extracted from the item list main-column the enclosing row-column Default: nil label the title label widget Default: nil frame the frame widget Default: nil toggle-buttons the list of toggle buttons Default: nil separators the list of separators Default: nil widget: widget-id integer returned by CLM create-widget call group-widget-id id used when the whole group is meant widget-id-for-sons may be different from widget-id in compound widgets parent the parent widget object in the hierarchy name name string for resource database lookup width total width in pixels height total height in pixels x-pos the x-coordinate relative to the parent y-pos the y-coordinate relative to the parent Methods of class toggle-button-group: o execute-value-changed-callback ((group toggle-button-group) new-value &optional toggled-value set) (Page m253) reaction when a button is toggled by the user c set-item-list ((group toggle-button-group) new-item-list &key (selected-value nil) (managed t)) (Page m252) the item-list has changed (setf value) :before (new-value (group toggle-button-group)) (Page m251) the application has changed the selected values ---------------------------------------------------------------------- Function make-toggle-button-group - make new group of toggle buttons with optional label and frame (defun make-toggle-button-group (parent item-list &key (label-string nil) (value-changed-callback :call-method) (initial-value nil) (with-frame t) (shadow-type :etched-in) (spacing 1) (num-columns 1) (orientation :vertical) (button-label-type :string) (class 'toggle-button-group) (initargs nil) (name class) (managed t) (motif-resources nil) (button-resources nil)) ...) parent: the parent widget item-list: a list of strings or (string value) pairs label-string: as title value-changed-callback: :call-method or a callback initial-value: subset of values in item-list with-frame: whether enclosing frame visible shadow-type: :in :out :etched-in :etched-out spacing: between buttons num-columns: for row-column orientation: :vertical or :horizontal button-label-type: :string or :pixmap button-resources: motif-resources for buttons This is the constructor function for class toggle-button-group. The returned value is a newly created object of class toggle-button-group. You CAN call this function. It is sometimes called by GINA. ---------------------------------------------------------------------- Method (setf value) - the application has changed the selected values (defmethod (setf value) :before (new-value (group toggle-button-group)) ...) You RARELY override this method or add deamons. The default version is sufficient for most cases. Normally, you do NOT call this method. It is called by GINA when appropriate. It is NEVER overridden by GINA. This method is inherited by class radio-button-group. Related methods: (setf value) (hyper::new-value (hyper::clock hyper::clock-element)) (setf value) (hyper::new-value (hyper::button hyper::button-element)) (setf value) (hyper::new-value (string hyper::string-element)) (setf value) :after (new-value (entry toggle-entry)) (setf value) :after (new-value (selection-list selection-list)) (setf value) (hyper::new-value (number hyper::number-element)) (setf value) (hyper::new-value (text hyper::text-element)) (setf value) (hyper::new-value (hyper::elem hyper::element)) (setf value) :after (new-value (option-menu option-menu)) (setf value) :before (new-value (group toggle-group-entry)) (setf value) (hyper::new-value (hyper::code hyper::code-element)) (setf value) (hyper::new-value (scale hyper::scale-element)) ---------------------------------------------------------------------- Method set-item-list - the item-list has changed (defmethod set-item-list ((group toggle-button-group) new-item-list &key (selected-value nil) (managed t)) ...) new-item-list: a list of strings or (string value) pairs selected-value: a subset of the values in item-list You RARELY override this method or add deamons. The default version is sufficient for most cases. You CAN call this method to change the list of items. It is called by GINA when appropriate. It is NEVER overridden by GINA. Example: (set-item-list toggle-button-group '(("Bold" :bold) ("Italic" :italic) ("Underline" :under)) :selected-values '(:italic :under)) This method is inherited by class radio-button-group. Related methods: c set-item-list ((group radio-group-entry) new-item-list &key (selected-value :use-first)) c set-item-list ((selection-list selection-list) new-item-list &key (selected-value :use-first)) c set-item-list ((group toggle-group-entry) new-item-list &key (selected-value nil)) c set-item-list ((option-menu option-menu) new-item-list &key (selected-value :use-first)) c set-item-list ((group radio-button-group) new-item-list &key (selected-value :use-first) (managed t)) ---------------------------------------------------------------------- Method execute-value-changed-callback - reaction when a button is toggled by the user (defmethod execute-value-changed-callback ((group toggle-button-group) new-value &optional toggled-value set) ...) You CAN override this method. The default version does not do anything. Normally, you do NOT call this method. It is called by GINA when appropriate. It is NEVER overridden by GINA. This method is inherited by class radio-button-group. Related methods: o execute-value-changed-callback ((option-menu option-menu) new-value &optional old-value ignore) o execute-value-changed-callback ((button toggle-button) set &optional ignore1 ignore2) o execute-value-changed-callback ((scrollbar scrollbar) new-value &optional ignore1 ignore2) o execute-value-changed-callback ((scale scale) new-value &optional ignore1 ignore2) ---------------------------------------------------------------------- Class radio-button-group - a group of radio buttons with optional label and frame It is a subclass of toggle-button-group, row-column and widget. You RARELY define subclasses of this class. GINA does NOT define subclasses of this class. You can create an instance of this class. Callbacks: value-changed-callback (value old-value) value-changed-callback (value toggled-value set) Instance variables: toggle-button-group: button-resources motif-resources for buttons button-label-type label-type for buttons value a subset of value-list Default: nil value-list the list of values extracted from the item list main-column the enclosing row-column Default: nil label the title label widget Default: nil frame the frame widget Default: nil toggle-buttons the list of toggle buttons Default: nil separators the list of separators Default: nil widget: widget-id integer returned by CLM create-widget call group-widget-id id used when the whole group is meant widget-id-for-sons may be different from widget-id in compound widgets parent the parent widget object in the hierarchy name name string for resource database lookup width total width in pixels height total height in pixels x-pos the x-coordinate relative to the parent y-pos the y-coordinate relative to the parent Methods of class radio-button-group: c set-item-list ((group radio-button-group) new-item-list &key (selected-value :use-first) (managed t)) (Page m255) the item-list has changed Methods of Superclasses: o execute-value-changed-callback ((group toggle-button-group) new-value &optional toggled-value set) (Page m253) reaction when a button is toggled by the user c set-item-list ((group toggle-button-group) new-item-list &key (selected-value nil) (managed t)) (Page m252) the item-list has changed (setf value) :before (new-value (group toggle-button-group)) (Page m251) the application has changed the selected values ---------------------------------------------------------------------- Function make-radio-button-group - make new group of toggle buttons with optional label and frame (defun make-radio-button-group (parent item-list &key (label-string nil) (value-changed-callback :call-method) (initial-value :use-first) (with-frame t) (shadow-type :etched-in) (spacing 1) (num-columns 1) (orientation :vertical) (button-label-type :string) (class 'radio-button-group) (initargs nil) (name class) (managed t) (motif-resources nil) (button-resources nil)) ...) parent: the parent widget item-list: a list of strings or (string value) pairs label-string: as title value-changed-callback: :call-method or a callback initial-value: a value from the item-list or :use-first with-frame: whether enclosing frame visible shadow-type: :in :out :etched-in :etched-out spacing: between buttons num-columns: for row-column orientation: :vertical or :horizontal button-label-type: :string or :pixmap button-resources: motif-resources for buttons This is the constructor function for class radio-button-group. The returned value is a newly created object of class radio-button-group. You CAN call this function. It is sometimes called by GINA. ---------------------------------------------------------------------- Method set-item-list - the item-list has changed (defmethod set-item-list ((group radio-button-group) new-item-list &key (selected-value :use-first) (managed t)) ...) new-item-list: a list of strings or (string value) pairs selected-value: a value from the item list or :use-first You RARELY override this method or add deamons. The default version is sufficient for most cases. You CAN call this method to change the list of items. It is called by GINA when appropriate. It is NEVER overridden by GINA. Related methods: c set-item-list ((group radio-group-entry) new-item-list &key (selected-value :use-first)) c set-item-list ((selection-list selection-list) new-item-list &key (selected-value :use-first)) c set-item-list ((group toggle-group-entry) new-item-list &key (selected-value nil)) c set-item-list ((option-menu option-menu) new-item-list &key (selected-value :use-first)) c set-item-list ((group toggle-button-group) new-item-list &key (selected-value nil) (managed t)) ---------------------------------------------------------------------- Class selection-list - the Motif List widget It is a subclass of widget. You RARELY define subclasses of this class. GINA defines subclasses of this class. You can create an instance of this class. Callbacks: value-changed-callback (value old-value) Instance variables: selection-list: default-action-button button to activate on double-click selection-policy :single :multiple :browse :extended value a single value or a subset of value-list Default: nil value-list the list of values extracted from the item list string-list the list of strings extracted from the item list widget: widget-id integer returned by CLM create-widget call group-widget-id id used when the whole group is meant widget-id-for-sons may be different from widget-id in compound widgets parent the parent widget object in the hierarchy name name string for resource database lookup width total width in pixels height total height in pixels x-pos the x-coordinate relative to the parent y-pos the y-coordinate relative to the parent Methods of class selection-list: c set-item-list ((selection-list selection-list) new-item-list &key (selected-value :use-first)) (Page m258) the item-list has changed c show-item ((selection-list selection-list) value-to-show) (Page m259) scroll to show item at top (setf value) :after (new-value (selection-list selection-list)) (Page m257) the application has changed the selected value ---------------------------------------------------------------------- Function make-selection-list - make a new list widget (defun make-selection-list (parent item-list &key (default-action-button nil) (initial-value :use-first) (visible-item-count 10) (width 100) (selection-policy :browse) (class 'selection-list) (initargs nil) (motif-widget-class :list) (name class) (managed t) (motif-resources nil)) ...) parent: the parent widget item-list: list of strings or (string value) pairs default-action-button: button to activate on double-click initial-value: a value or subset from the value-list visible-item-count: determines the initial height width: initial width if allowed selection-policy: :single :multiple :browse :extended This is the constructor function for class selection-list. The returned value is a newly created object of class selection-list. You CAN call this function. It is sometimes called by GINA. ---------------------------------------------------------------------- Method (setf value) - the application has changed the selected value (defmethod (setf value) :after (new-value (selection-list selection-list)) ...) You RARELY override this method or add deamons. The default version is sufficient for most cases. Normally, you do NOT call this method. It is called by GINA when appropriate. It is NEVER overridden by GINA. This method is inherited by class scrollable-selection-list. Related methods: (setf value) (hyper::new-value (hyper::clock hyper::clock-element)) (setf value) (hyper::new-value (hyper::button hyper::button-element)) (setf value) (hyper::new-value (string hyper::string-element)) (setf value) :after (new-value (entry toggle-entry)) (setf value) (hyper::new-value (number hyper::number-element)) (setf value) (hyper::new-value (text hyper::text-element)) (setf value) (hyper::new-value (hyper::elem hyper::element)) (setf value) :after (new-value (option-menu option-menu)) (setf value) :before (new-value (group toggle-button-group)) (setf value) :before (new-value (group toggle-group-entry)) (setf value) (hyper::new-value (hyper::code hyper::code-element)) (setf value) (hyper::new-value (scale hyper::scale-element)) ---------------------------------------------------------------------- Method set-item-list - the item-list has changed (defmethod set-item-list ((selection-list selection-list) new-item-list &key (selected-value :use-first)) ...) new-item-list: list of strings or (string value) pairs selected-value: a value or subset from value-list You RARELY override this method or add deamons. The default version is sufficient for most cases. You CAN call this method to change the list of selectable values. It is called by GINA when appropriate. It is NEVER overridden by GINA. This method is inherited by class scrollable-selection-list. Related methods: c set-item-list ((group radio-group-entry) new-item-list &key (selected-value :use-first)) c set-item-list ((group toggle-group-entry) new-item-list &key (selected-value nil)) c set-item-list ((option-menu option-menu) new-item-list &key (selected-value :use-first)) c set-item-list ((group toggle-button-group) new-item-list &key (selected-value nil) (managed t)) c set-item-list ((group radio-button-group) new-item-list &key (selected-value :use-first) (managed t)) ---------------------------------------------------------------------- Method show-item - scroll to show item at top (defmethod show-item ((selection-list selection-list) value-to-show) ...) You RARELY override this method or add deamons. The default version is sufficient for most cases. You CAN call this method to show a certain item at the top. It is called by GINA when appropriate. It is NEVER overridden by GINA. This method is inherited by class scrollable-selection-list. ---------------------------------------------------------------------- Class scrollable-selection-list - a selection-list inside a scroller It is a subclass of selection-list and widget. You RARELY define subclasses of this class. GINA does NOT define subclasses of this class. You can create an instance of this class. Callbacks: value-changed-callback (value old-value) Instance variables: scrollable-selection-list: scroller surrounding the list selection-list: default-action-button button to activate on double-click selection-policy :single :multiple :browse :extended value a single value or a subset of value-list Default: nil value-list the list of values extracted from the item list string-list the list of strings extracted from the item list widget: widget-id integer returned by CLM create-widget call group-widget-id id used when the whole group is meant widget-id-for-sons may be different from widget-id in compound widgets parent the parent widget object in the hierarchy name name string for resource database lookup width total width in pixels height total height in pixels x-pos the x-coordinate relative to the parent y-pos the y-coordinate relative to the parent Methods of class scrollable-selection-list: Methods of Superclasses: c set-item-list ((selection-list selection-list) new-item-list &key (selected-value :use-first)) (Page m258) the item-list has changed c show-item ((selection-list selection-list) value-to-show) (Page m259) scroll to show item at top (setf value) :after (new-value (selection-list selection-list)) (Page m257) the application has changed the selected value ---------------------------------------------------------------------- Function make-scrollable-selection-list - make a new scroller containing a selection-list (defun make-scrollable-selection-list (parent item-list &key (default-action-button nil) (initial-value :use-first) (visible-item-count 10) (width 100) (selection-policy :browse) (class 'scrollable-selection-list) (initargs nil) (motif-widget-class :list) (name class) (managed t) (motif-resources nil)) ...) parent: the parent widget item-list: list of strings or (string value) pairs default-action-button: button to activate on double-click initial-value: a value or subset from the value-list visible-item-count: determines the initial height width: initial width if allowed selection-policy: :single :multiple :browse :extended This is the constructor function for class scrollable-selection-list. The returned value is a newly created object of class scrollable-selection-list. You CAN call this function. It is sometimes called by GINA. ---------------------------------------------------------------------- Class bulletin-board - the Motif bulletin board widget It is a subclass of widget. You RARELY define subclasses of this class. GINA defines subclasses of this class. You can create an instance of this class. Callbacks: map-callback () unmap-callback () Instance variables: widget: widget-id integer returned by CLM create-widget call group-widget-id id used when the whole group is meant widget-id-for-sons may be different from widget-id in compound widgets parent the parent widget object in the hierarchy name name string for resource database lookup width total width in pixels height total height in pixels x-pos the x-coordinate relative to the parent y-pos the y-coordinate relative to the parent Methods of class bulletin-board: ---------------------------------------------------------------------- Function make-bulletin-board - create a new CLOS Object representing a BulletinBoard (defun make-bulletin-board (parent &key (auto-unmanage nil) (class 'bulletin-board) (initargs nil) (motif-widget-class :bulletin-board) (name class) (managed nil) (motif-resources nil)) ...) parent: the parent widget auto-unmanage: if button activation removes dialog This is the constructor function for class bulletin-board. The returned value is a newly created object of class bulletin-board. You CAN call this function. It is sometimes called by GINA. ---------------------------------------------------------------------- Class form - the Motif form widget It is a subclass of bulletin-board and widget. You RARELY define subclasses of this class. GINA defines subclasses of this class. You can create an instance of this class. Callbacks: map-callback () unmap-callback () Instance variables: widget: widget-id integer returned by CLM create-widget call group-widget-id id used when the whole group is meant widget-id-for-sons may be different from widget-id in compound widgets parent the parent widget object in the hierarchy name name string for resource database lookup width total width in pixels height total height in pixels x-pos the x-coordinate relative to the parent y-pos the y-coordinate relative to the parent Methods of class form: ---------------------------------------------------------------------- Function make-form - make a new form widget (defun make-form (parent &key (auto-unmanage nil) (class 'form) (initargs nil) (motif-widget-class :form) (name class) (managed t) (motif-resources nil)) ...) parent: the parent widget auto-unmanage: if button activation removes dialog This is the constructor function for class form. The returned value is a newly created object of class form. You CAN call this function. It is sometimes called by GINA. ---------------------------------------------------------------------- Function define-form-constraint - define layout constraint for child of a form widget (defun define-form-constraint (widget &rest constraint-resources) ...) widget: a child of the form constraint-resources: list of motif constraint resources You CAN call this function to define attachments for form children. It is sometimes called by GINA. Every side of a widget can be individually attached in the following ways: :none :form :opposite-form :widget :opposite-widget :position :self 2-5 use the :(dir)-offset, :position uses :(dir)-position, 4-5 use the :(dir)-widget parameters in the list Example: (define-form-constraint child :top-attachment :form :top-offset 4 :left-attachment widget :left-widget another-child :right-attachment :position :right-position 50 :bottom-attachment :none) ---------------------------------------------------------------------- Class text - the Motif text widget It is a subclass of widget. You RARELY define subclasses of this class. GINA defines subclasses of this class. You can create an instance of this class. Callbacks: value-changed-callback () but (value) for single-line texts modify-verify-callback (current-insert new-insert start-pos end-pos text length) motion-verify-callback (current-insert new-insert) losing-focus-callback (current-insert new-insert start-pos end-pos) activate-callback () Instance variables: text: value the current string value widget: widget-id integer returned by CLM create-widget call group-widget-id id used when the whole group is meant widget-id-for-sons may be different from widget-id in compound widgets parent the parent widget object in the hierarchy name name string for resource database lookup width total width in pixels height total height in pixels x-pos the x-coordinate relative to the parent y-pos the y-coordinate relative to the parent Resource slots: value Methods of class text: ---------------------------------------------------------------------- Function make-text - make a new text widget (defun make-text (parent &key (value "") (editable t) (columns 20) (rows 1) (edit-mode :single-line-edit) (class 'text) (initargs nil) (motif-widget-class :text) (name class) (managed t) (motif-resources nil)) ...) parent: the parent widget value: initial value editable: if editable columns: determines initial width rows: determines initial height edit-mode: :single-line-edit or :multi-line-edit This is the constructor function for class text. The returned value is a newly created object of class text. You CAN call this function. It is sometimes called by GINA. ---------------------------------------------------------------------- Class scrolled-text - a text widget inside a scroller It is a subclass of text and widget. You RARELY define subclasses of this class. GINA does NOT define subclasses of this class. You can create an instance of this class. Callbacks: value-changed-callback () but (value) for single-line texts modify-verify-callback (current-insert new-insert start-pos end-pos text length) motion-verify-callback (current-insert new-insert) losing-focus-callback (current-insert new-insert start-pos end-pos) activate-callback () Instance variables: scrolled-text: scroller surrounding the list text: value the current string value widget: widget-id integer returned by CLM create-widget call group-widget-id id used when the whole group is meant widget-id-for-sons may be different from widget-id in compound widgets parent the parent widget object in the hierarchy name name string for resource database lookup width total width in pixels height total height in pixels x-pos the x-coordinate relative to the parent y-pos the y-coordinate relative to the parent Methods of class scrolled-text: ---------------------------------------------------------------------- Function make-scrolled-text - make a new scroller containing a text widget (defun make-scrolled-text (parent &key (value "") (editable t) (columns 20) (rows 10) (scroll-vertical t) (scroll-horizontal t) (class 'scrolled-text) (initargs nil) (motif-widget-class :text) (name class) (managed t) (motif-resources nil)) ...) parent: the parent widget value: initial value editable: if editable columns: determines initial width rows: determines initial height scroll-vertical: if vertical scrollbar scroll-horizontal: if horizontal scrollbar This is the constructor function for class text. The returned value is a newly created object of class text. You CAN call this function. It is sometimes called by GINA. ---------------------------------------------------------------------- Class labeled-text - a text widget with a label It is a subclass of text and widget. You RARELY define subclasses of this class. GINA does NOT define subclasses of this class. You can create an instance of this class. Callbacks: value-changed-callback () but (value) for single-line texts modify-verify-callback (current-insert new-insert start-pos end-pos text length) motion-verify-callback (current-insert new-insert) losing-focus-callback (current-insert new-insert start-pos end-pos) activate-callback () Instance variables: labeled-text: label the label widget row-column the enclosing row-column label-position :top or :left text: value the current string value widget: widget-id integer returned by CLM create-widget call group-widget-id id used when the whole group is meant widget-id-for-sons may be different from widget-id in compound widgets parent the parent widget object in the hierarchy name name string for resource database lookup width total width in pixels height total height in pixels x-pos the x-coordinate relative to the parent y-pos the y-coordinate relative to the parent Methods of class labeled-text: (setf label-position) :after (new-label-position (lt labeled-text)) (Page m267) modify orientation of row-column ---------------------------------------------------------------------- Function make-labeled-text - create a new labeled text (defun make-labeled-text (parent label-string &key (value "") (editable t) (columns 20) (edit-mode :single-line-edit) (label-position :left) (class 'labeled-text) (initargs nil) (motif-widget-class :text) (name class) (managed t) (motif-resources nil) (row-column-resources nil) (label-resources nil)) ...) parent: the parent widget label-string: the label shown value: initial value editable: if editable columns: determines initial width edit-mode: :single-line-edit or :multi-line-edit label-position: :top or :left row-column-resources: motif-resources for row-column label-resources: motif-resources for the label This is the constructor function for class labeled-text. The returned value is a newly created object of class labeled-text. You CAN call this function. It is sometimes called by GINA. ---------------------------------------------------------------------- Method (setf label-position) - modify orientation of row-column (defmethod (setf label-position) :after (new-label-position (lt labeled-text)) ...) You RARELY override this method or add deamons. The default version is sufficient for most cases. Normally, you do NOT call this method. It is called by GINA when appropriate. It is NEVER overridden by GINA. ---------------------------------------------------------------------- Class dialog-box - a superclass for gina dialog boxes It is a subclass of form, bulletin-board and widget. You CAN define a subclass of this class. GINA defines subclasses of this class. You never create an instance of this class. Callbacks: map-callback () unmap-callback () Instance variables: dialog-box: document the document associated with the dialog box dialog-shell the shell widget around the dialog relative-widget a widget used for relative popup positioning Default: nil relative-x one of :center :left :left-align :right-align :right Default: :center relative-y one of :center :top :top-align :bottom-align :bottom Default: :center result value returned from modal dialog Default: nil widget: widget-id integer returned by CLM create-widget call group-widget-id id used when the whole group is meant widget-id-for-sons may be different from widget-id in compound widgets parent the parent widget object in the hierarchy name name string for resource database lookup width total width in pixels height total height in pixels x-pos the x-coordinate relative to the parent y-pos the y-coordinate relative to the parent Methods of class dialog-box: o closed-by-wm ((box dialog-box)) (Page m268) dialog-box is being closed by the window manager ---------------------------------------------------------------------- Method closed-by-wm - dialog-box is being closed by the window manager (defmethod closed-by-wm ((box dialog-box)) ...) You CAN override this method. The default version calls pop-down. Normally, you do NOT call this method. It is called by GINA when appropriate. It is NEVER overridden by GINA. This method is inherited by class tool-dialog-box, modeless-dialog-box and modal-dialog-box. Related methods: closed-by-wm ((shell modal-dialog-shell)) o closed-by-wm ((shell toplevel-shell)) o closed-by-wm ((shell basic-document-shell)) ---------------------------------------------------------------------- Class modeless-dialog-box - a form with a shell around it for modeless dialogs It is a subclass of dialog-box, form, bulletin-board and widget. You define a subclass of this class for application-specific modeless dialogs. GINA does NOT define subclasses of this class. You can create an instance of this class. Callbacks: map-callback () unmap-callback () Instance variables: modeless-dialog-box: default-button the default button in the dialog, if any Default: nil dialog-box: document the document associated with the dialog box dialog-shell the shell widget around the dialog relative-widget a widget used for relative popup positioning Default: nil relative-x one of :center :left :left-align :right-align :right Default: :center relative-y one of :center :top :top-align :bottom-align :bottom Default: :center result value returned from modal dialog Default: nil widget: widget-id integer returned by CLM create-widget call group-widget-id id used when the whole group is meant widget-id-for-sons may be different from widget-id in compound widgets parent the parent widget object in the hierarchy name name string for resource database lookup width total width in pixels height total height in pixels x-pos the x-coordinate relative to the parent y-pos the y-coordinate relative to the parent Methods of class modeless-dialog-box: (setf default-button) :after (new-default-button (box modeless-dialog-box)) (Page m270) set default-button resource in the toolkit c pop-down ((box modeless-dialog-box)) (Page m272) hide the modeless dialog box c pop-up ((box modeless-dialog-box)) (Page m271) show the modeless dialog box Methods of Superclasses: o closed-by-wm ((box dialog-box)) (Page m268) dialog-box is being closed by the window manager ---------------------------------------------------------------------- Function make-modeless-dialog-box - make a form with a shell around it for modeless dialogs (defun make-modeless-dialog-box (title &key (document (first (document-list *application*))) (resize nil) (allow-shell-resize nil) (return-is-accelerator t) (drag-protocols nil) (class 'modeless-dialog-box) (initargs nil) (motif-widget-class :form) (name class) (motif-resources nil) (dialog-shell-resources nil)) ...) title: the title string document: default: first document of application resize: whether include resize handles allow-shell-resize: whether resizeable by changing children return-is-accelerator: whether return activates default button drag-protocols: keyword list of accepted drag-commands dialog-shell-resources: motif-resources for dialog-shell This is the constructor function for class modeless-dialog-box. The returned value is a newly created object of class modeless-dialog-box. You CAN call this function. It is sometimes called by GINA. ---------------------------------------------------------------------- Method (setf default-button) - set default-button resource in the toolkit (defmethod (setf default-button) :after (new-default-button (box modeless-dialog-box)) ...) You RARELY override this method or add deamons. The default version is sufficient for most cases. Normally, you do NOT call this method. It is called by GINA when appropriate. It is NEVER overridden by GINA. Related methods: (setf default-button) :after (new-default-button (box modal-dialog-box)) ---------------------------------------------------------------------- Method pop-up - show the modeless dialog box (defmethod pop-up ((box modeless-dialog-box)) ...) You RARELY override this method or add deamons. The default version is sufficient for most cases. You CAN call this method to make a dialog appear. It is called by GINA when appropriate. It is NEVER overridden by GINA. Related methods: c pop-up ((shell modeless-dialog-shell)) c pop-up ((box modal-dialog-box)) pop-up :after ((shell toplevel-shell)) c pop-up ((box tool-dialog-box)) c pop-up ((shell shell)) ---------------------------------------------------------------------- Method pop-down - hide the modeless dialog box (defmethod pop-down ((box modeless-dialog-box)) ...) You RARELY override this method or add deamons. The default version is sufficient for most cases. You CAN call this method to make a dialog disappear. It is called by GINA when appropriate. It is NEVER overridden by GINA. Related methods: c pop-down ((shell shell)) c pop-down ((box tool-dialog-box)) c pop-down ((box modal-dialog-box)) c pop-down ((shell modeless-dialog-shell)) ---------------------------------------------------------------------- Class modal-dialog-box - a form with a shell around it for modal dialogs It is a subclass of dialog-box, form, bulletin-board and widget. You define a subclass of this class for application-specific modal dialogs. GINA does NOT define subclasses of this class. You can create an instance of this class. Callbacks: map-callback () unmap-callback () Instance variables: modal-dialog-box: default-button the default button in the dialog, if any Default: nil dialog-box: document the document associated with the dialog box dialog-shell the shell widget around the dialog relative-widget a widget used for relative popup positioning Default: nil relative-x one of :center :left :left-align :right-align :right Default: :center relative-y one of :center :top :top-align :bottom-align :bottom Default: :center result value returned from modal dialog Default: nil widget: widget-id integer returned by CLM create-widget call group-widget-id id used when the whole group is meant widget-id-for-sons may be different from widget-id in compound widgets parent the parent widget object in the hierarchy name name string for resource database lookup width total width in pixels height total height in pixels x-pos the x-coordinate relative to the parent y-pos the y-coordinate relative to the parent Methods of class modal-dialog-box: (setf default-button) :after (new-default-button (box modal-dialog-box)) (Page m274) set default button resource in the toolkit c pop-down ((box modal-dialog-box)) (Page m276) end the modal dialog c pop-up ((box modal-dialog-box)) (Page m275) bring up the modal dialog Methods of Superclasses: o closed-by-wm ((box dialog-box)) (Page m268) dialog-box is being closed by the window manager ---------------------------------------------------------------------- Function make-modal-dialog-box - make a form with a shell around it for modal dialogs (defun make-modal-dialog-box (title &key (document (first (document-list *application*))) (resize nil) (allow-shell-resize nil) (return-is-accelerator t) (drag-protocols nil) (class 'modal-dialog-box) (initargs nil) (motif-widget-class :form) (name class) (motif-resources nil) (dialog-shell-resources nil)) ...) title: the title string document: default: the first document of application resize: whether include resize handles allow-shell-resize: whether resized by changing children return-is-accelerator: whether return activates default button drag-protocols: keyword list of accepted drag-commands dialog-shell-resources: motif-resources for dialog-shell This is the constructor function for class modal-dialog-box. The returned value is a newly created object of class modal-dialog-box. You CAN call this function. It is sometimes called by GINA. ---------------------------------------------------------------------- Method (setf default-button) - set default button resource in the toolkit (defmethod (setf default-button) :after (new-default-button (box modal-dialog-box)) ...) You RARELY override this method or add deamons. The default version is sufficient for most cases. Normally, you do NOT call this method. It is called by GINA when appropriate. It is NEVER overridden by GINA. Related methods: (setf default-button) :after (new-default-button (box modeless-dialog-box)) ---------------------------------------------------------------------- Method pop-up - bring up the modal dialog (defmethod pop-up ((box modal-dialog-box)) ...) The returned value is the result slot. You RARELY override this method or add deamons. The default version is sufficient for most cases. You CAN call this method to show a modal dialog and wait for the result. It is called by GINA when appropriate. It is NEVER overridden by GINA. Related methods: c pop-up ((shell modeless-dialog-shell)) pop-up :after ((shell toplevel-shell)) c pop-up ((box modeless-dialog-box)) c pop-up ((box tool-dialog-box)) c pop-up ((shell shell)) ---------------------------------------------------------------------- Method pop-down - end the modal dialog (defmethod pop-down ((box modal-dialog-box)) ...) You RARELY override this method or add deamons. The default version is sufficient for most cases. You CAN call this method to end the modal dialog. It is called by GINA when appropriate. It is NEVER overridden by GINA. Related methods: c pop-down ((shell shell)) c pop-down ((box tool-dialog-box)) c pop-down ((box modeless-dialog-box)) c pop-down ((shell modeless-dialog-shell)) ---------------------------------------------------------------------- Class tool-dialog-box - a form with a shell around it for tool dialogs with a menu It is a subclass of dialog-box, form, bulletin-board and widget. You RARELY define subclasses of this class. GINA does NOT define subclasses of this class. You can create an instance of this class. Callbacks: map-callback () unmap-callback () Instance variables: tool-dialog-box: main-menu the automatically created menu bar dialog-box: document the document associated with the dialog box dialog-shell the shell widget around the dialog relative-widget a widget used for relative popup positioning Default: nil relative-x one of :center :left :left-align :right-align :right Default: :center relative-y one of :center :top :top-align :bottom-align :bottom Default: :center result value returned from modal dialog Default: nil widget: widget-id integer returned by CLM create-widget call group-widget-id id used when the whole group is meant widget-id-for-sons may be different from widget-id in compound widgets parent the parent widget object in the hierarchy name name string for resource database lookup width total width in pixels height total height in pixels x-pos the x-coordinate relative to the parent y-pos the y-coordinate relative to the parent Methods of class tool-dialog-box: c pop-down ((box tool-dialog-box)) (Page m279) hide the tool dialog box c pop-up ((box tool-dialog-box)) (Page m278) show the tool dialog box Methods of Superclasses: o closed-by-wm ((box dialog-box)) (Page m268) dialog-box is being closed by the window manager ---------------------------------------------------------------------- Function make-tool-dialog-box - make a form with a shell an a menu bar for tool dialogs (defun make-tool-dialog-box (title &key (document (first (document-list *application*))) (allow-shell-resize nil) (drag-protocols nil) (class 'tool-dialog-box) (initargs nil) (motif-widget-class :form) (name class) (motif-resources nil) (dialog-shell-resources nil)) ...) title: the title string document: default: first document of application allow-shell-resize: whether resized by changing children drag-protocols: keyword list of accepted drag-commands dialog-shell-resources: motif-resources for dialog shell This is the constructor function for class tool-dialog-box. The returned value is a newly created object of class tool-dialog-box. You CAN call this function. It is sometimes called by GINA. ---------------------------------------------------------------------- Method pop-up - show the tool dialog box (defmethod pop-up ((box tool-dialog-box)) ...) You RARELY override this method or add deamons. The default version is sufficient for most cases. You CAN call this method to make a tool dialog appear. It is called by GINA when appropriate. It is NEVER overridden by GINA. Related methods: c pop-up ((shell modeless-dialog-shell)) c pop-up ((box modal-dialog-box)) pop-up :after ((shell toplevel-shell)) c pop-up ((box modeless-dialog-box)) c pop-up ((shell shell)) ---------------------------------------------------------------------- Method pop-down - hide the tool dialog box (defmethod pop-down ((box tool-dialog-box)) ...) You RARELY override this method or add deamons. The default version is sufficient for most cases. You CAN call this method to make a tool dialog disappear. It is called by GINA when appropriate. It is NEVER overridden by GINA. Related methods: c pop-down ((shell shell)) c pop-down ((box modeless-dialog-box)) c pop-down ((box modal-dialog-box)) c pop-down ((shell modeless-dialog-shell)) ---------------------------------------------------------------------- Class dialog-dismiss-button - a push-button to dismiss a dialog box It is a subclass of push-button, label and widget. You RARELY define subclasses of this class. GINA does NOT define subclasses of this class. You can create an instance of this class. Callbacks: activate-callback () arm-callback () disarm-callback () Instance variables: dialog-dismiss-button: dialog-box modal dialog box containing the button result assigned to result-variable when button clicked label: label-string the string shown label-type either :string or :pixmap widget: widget-id integer returned by CLM create-widget call group-widget-id id used when the whole group is meant widget-id-for-sons may be different from widget-id in compound widgets parent the parent widget object in the hierarchy name name string for resource database lookup width total width in pixels height total height in pixels x-pos the x-coordinate relative to the parent y-pos the y-coordinate relative to the parent Methods of class dialog-dismiss-button: o execute-activate-callback ((button dialog-dismiss-button)) (Page m281) store result in dialog box Methods of Superclasses: o execute-activate-callback ((pb push-button)) (Page m207) semantics of a users mouse click into the push-button ---------------------------------------------------------------------- Function make-dialog-dismiss-button - make a new dialog-dismiss-button widget (defun make-dialog-dismiss-button (parent string &key (dialog-box parent) (default-button nil) (result string) (class 'dialog-dismiss-button) (initargs nil) (motif-widget-class :push-button) (name class) (managed t) (motif-resources nil)) ...) parent: the parent widget string: the label string dialog-box: the dialog box to be notified default-button: whether it is the default button result: the result value to assign This is the constructor function for class dialog-dismiss-button. The returned value is a newly created object of class dialog-dismiss-button. You CAN call this function. It is sometimes called by GINA. ---------------------------------------------------------------------- Method execute-activate-callback - store result in dialog box (defmethod execute-activate-callback ((button dialog-dismiss-button)) ...) You CAN override this method. The default version assigns result and removes the dialog. Normally, you do NOT call this method. It is called by GINA when appropriate. It is NEVER overridden by GINA. Related methods: o execute-activate-callback ((pb push-button)) o execute-activate-callback ((ab arrow-button)) ---------------------------------------------------------------------- Class dialog-dismiss-button-row - a row of dialog-dismiss-buttons with the leftmost as default It is a subclass of row-column and widget. You RARELY define subclasses of this class. GINA does NOT define subclasses of this class. You can create an instance of this class. Instance variables: dialog-dismiss-button-row: buttons the list of buttons widget: widget-id integer returned by CLM create-widget call group-widget-id id used when the whole group is meant widget-id-for-sons may be different from widget-id in compound widgets parent the parent widget object in the hierarchy name name string for resource database lookup width total width in pixels height total height in pixels x-pos the x-coordinate relative to the parent y-pos the y-coordinate relative to the parent Methods of class dialog-dismiss-button-row: ---------------------------------------------------------------------- Function make-dialog-dismiss-button-row - make row of dialog-dismiss-buttons with the leftmost as default (defun make-dialog-dismiss-button-row (parent &key (item-list '((" Yes " :yes) (" No " :no) ("Cancel" :cancel))) (dialog-box parent) (spacing 30) (class 'dialog-dismiss-button-row) (initargs nil) (motif-widget-class :row-column) (name class) (managed t) (motif-resources nil)) ...) parent: the parent widget item-list: a list of strings or (string value) pairs dialog-box: the dialog box to be notified spacing: between buttons This is the constructor function for class dialog-dismiss-button-row. The returned value is a newly created object of class dialog-dismiss-button-row. You CAN call this function. It is sometimes called by GINA. ---------------------------------------------------------------------- Function warning-dialog - pop a a warning message as a modal dialog (defun warning-dialog (message &key (document (first (document-list *application*))) (modal t) (dialog-title "Warning") (icon-pixmap "default_xm_error")) ...) icon-pixmap: icon used (error warning information question working) You CAN call this function. It is sometimes called by GINA. Example: (with-application-stopped (warning-dialog "Error: CPU not found!")) (with-application-stopped (warning-dialog "Be very very careful !!" :modal nil :icon-pixmap "default_xm_information")) ---------------------------------------------------------------------- Function question-dialog - request an input string from the user (defun question-dialog (prompt &key (document (first (document-list *application*))) (dialog-title "Question") (default "") (icon-pixmap "default_xm_question")) ...) icon-pixmap: icon used (error warning information question working) The returned value is the string entered by the user or NIL if cancelled. You CAN call this function. It is sometimes called by GINA. Example: (with-application-stopped (question-dialog "Filename:" :default "Untitled")) ---------------------------------------------------------------------- Function confirm-dialog - ask the user to confirm or reject (defun confirm-dialog (prompt &key (document (first (document-list *application*))) (dialog-title "Confirm") (icon-pixmap "default_xm_question")) ...) icon-pixmap: icon used (error warning information question working) The returned value is T or NIL. You CAN call this function. It is sometimes called by GINA. Example: (with-application-stopped (confirm-dialog "Reformat disk?")) ---------------------------------------------------------------------- Function alternative-dialog - ask the user yes , no or cancel (defun alternative-dialog (prompt &key (document (first (document-list *application*))) (dialog-title "Alternative") (icon-pixmap "default_xm_question")) ...) icon-pixmap: icon used (error warning information question working) The returned value is one of :yes :no and :cancel. You CAN call this function. It is sometimes called by GINA. Example: (with-application-stopped (alternative-dialog "Save Document ?")) ---------------------------------------------------------------------- Function select-dialog - let the user select from a list of strings (defun select-dialog (prompt item-list &key (document (first (document-list *application*))) (dialog-title "Select")) ...) The returned value is the selected value or NIL if cancelled. You CAN call this function. It is sometimes called by GINA. Example: (with-application-stopped (select-dialog "Open which file?" '("File 1" "Brief" "Untitled" "Ordner" "Ordner1" "Ordner2" "Ordner3" "Ordner4" "Ordner5" "Ordner6" "Ordner7" "Ordner8"))) ---------------------------------------------------------------------- Function make-open-dialog-box - create a modal dialog box to select an existing file (defun make-open-dialog-box (wildcard &key (file-type :wild) (document (first (document-list *application*))) (class 'open-dialog-box)) ...) You CAN call this function. It is sometimes called by GINA. Example: (with-application-stopped (pop-up (make-open-dialog-box "W1:>GINA>documents>*.*.newest"))) ---------------------------------------------------------------------- Function make-save-dialog-box - create a modal dialog box to select a new file (defun make-save-dialog-box (wildcard default-name &key (file-type :wild) (document (first (document-list *application*))) (class 'save-dialog-box)) ...) You CAN call this function. It is sometimes called by GINA. Example: (with-application-stopped (pop-up (make-save-dialog-box "W1:>GINA>documents>*.*.newest" "Untitled"))) ---------------------------------------------------------------------- Variable *inspected-object* - the last object inspected Default: nil Normally, you do NOT modify this variable. It is modified each time any object is inspected. ---------------------------------------------------------------------- Function inspect-dialog - create a dialog box displaying the object's slots (defun inspect-dialog (object &key (document (first (document-list *application*))) (last-box nil)) ...) You CAN call this function. It is sometimes called by GINA. Example: (with-application-stopped (inspect-dialog *application*)) inspect the current application object (with-application-stopped (inspect-dialog '(1 2 3 4 5 6))) inspect a any lisp object ---------------------------------------------------------------------- Macro in-background-process - execute body in a background process (defmacro in-background-process ((document &key (terminate-on-error t)) &body body) ...) You CAN call this macro. It is never called by GINA. It returns the background process created. See also method kill-background-process of class document Example: (with-application-stopped (in-background-process ((first (document-list *application*))) (replay-history (first (document-list *application*))))) ---------------------------------------------------------------------- Method kill-background-process - kill process, but wait until he is out of critical sections (defmethod kill-background-process ((doc document) process) ...) You RARELY override this method or add deamons. The default version is sufficient for most cases. You CAN call this method. It is never called by GINA. It is NEVER overridden by GINA. ---------------------------------------------------------------------- Method kill-all-background-processes - kill all background processes and wait for them to die (defmethod kill-all-background-processes ((doc document)) ...) You RARELY override this method or add deamons. The default version is sufficient for most cases. You CAN call this method. It is called by GINA when the document is closed. It is NEVER overridden by GINA. ---------------------------------------------------------------------- Macro with-application - execute body with exclusive access to the application (defmacro with-application (&body body) ...) You CAN call this macro. It is sometimes called by GINA. Example: (with-application (print (eval (semaphor *application*)))) ---------------------------------------------------------------------- Macro with-document - execute body with exclusive access to the document (defmacro with-document ((document) &body body) ...) You CAN call this macro. It is sometimes called by GINA. Example: (with-document ((first (document-list *application*))) (print "Hallo")) ---------------------------------------------------------------------- Macro with-clm-connection - prevent clm calls by other processes for body (defmacro with-clm-connection (&body body) ...) You CAN call this macro. It is sometimes called by GINA. ---------------------------------------------------------------------- Macro with-progress-bar - execute body while displaying a progress bar (defmacro with-progress-bar ((document &key (modal t) (title "Progress Bar") (message "Performing your request ...") (abortable t) (kill-on-abort nil) (centered t) (with-scale t)) &body body) ...) You CAN call this macro. It is never called by GINA. modal: whether all other input is blocked title: title string of the dialog box message: message displayed in the box abortable: whether user can abort the action kill-on-abort: whether process is killed or abort flag is set only centered: whether dialog box is centered over the document with-scale: whether a scale indicating progress is displayed Example: (with-application-stopped (with-progress-bar ((first (document-list *application*)) :kill-on-abort t :centered nil) (loop for i from 1 to 100 do (sleep 0.1) (indicate-progress i :new-message (format nil "~d more steps to go ..." (- 100 i)))))) (with-application-stopped (with-progress-bar ((first (document-list *application*)) :kill-on-abort nil) (loop for i from 1 to 10 until (progress-bar-aborted) do (sleep 1) (indicate-progress (* 10 i))))) ---------------------------------------------------------------------- Function progress-bar-aborted - test whether progress bar has already been aborted (defun progress-bar-aborted nil ...) The returned value is whether ABORT has been pressed. You CAN call this function inside a WITH-PROGRESS-BAR macro. It is never called by GINA. ---------------------------------------------------------------------- Function indicate-progress - set scale to indicate the current progress (defun indicate-progress (percent &key (new-message nil)) ...) percent: percent of action alredy performed new-message: new label string displayed in dialog box The returned value is whether ABORT has been pressed. You CAN call this function inside a WITH-PROGRESS-BAR macro. It is never called by GINA. ---------------------------------------------------------------------- Function name-and-type - extract name and type components of a pathname (defun name-and-type (pathname) ...) pathname: pathname object or string The returned value is a string. You CAN call this function. It is called by GINA in open/save dialogs. Example: (name-and-type "w1:>gina>documents>four-rects.hello.3") returns "FOUR-RECTS.HELLO" (name-and-type "xpssun:/home/spenke") returns "SPENKE" ---------------------------------------------------------------------- Function current-directory-wildcard - return wildcard for the current directory or a sensible alternative (defun current-directory-wildcard (&key (alternative :root)) ...) alternative: :root or :homedir The returned value is a pathname object. You CAN call this function. It is called by GINA sometimes. ---------------------------------------------------------------------- Function directory-wildcard - build a wildcard for the directory where the file is located (defun directory-wildcard (file-pathname &optional (file-type :wild)) ...) file-pathname: pathname object or string The returned value is a pathname object. You CAN call this function. It is called by GINA in open/save dialogs. Example: (directory-wildcard "w1:>gina>documents>four-rects.hello.3" "xxx") returns #P"W1:>gina>documents>*.XXX.newest" (directory-wildcard "w1:>gina>documents>four-rects.hello.3") returns #P"W1:>gina>documents>*.*.newest" (directory-wildcard "xpssun:/home/spenke/four-rects.hello") returns #P"XPSSUN:/home/spenke/*" ---------------------------------------------------------------------- Function subdirectory-wildcard - build a wildcard for the directory this file denotes (defun subdirectory-wildcard (pathname &optional (file-type :wild)) ...) pathname: pathname object or string The returned value is a pathname object. You CAN call this function. It is called by GINA in open/save dialogs. Example: (subdirectory-wildcard "w1:>gina>documents.directory.1") returns #P"W1:>gina>documents>*.*.newest" (parent-directory-wildcard "xpssun:/GINA/documents/*.lisp") returns #P"XPSSUN:/GINA/*.lisp" (subdirectory-wildcard "w1:>gina>documents" "hello") returns #P"W1:>gina>documents>*.HELLO.newest" ---------------------------------------------------------------------- Function parent-directory-wildcard - build a similar wildcard for the parent directory of this wildcard (defun parent-directory-wildcard (wildcard) ...) wildcard: pathname object or string The returned value is a pathname object. You CAN call this function. It is called by GINA in open/save dialogs. Example: (parent-directory-wildcard "w1:>gina>documents>*.*.newest") returns #P"W1:>gina>*.*.newest" ---------------------------------------------------------------------- Function parent-directory-wildcards - build a list of wildcards for the parent directories (defun parent-directory-wildcards (pathname) ...) pathname: pathname object or string The returned value is a list of pathname objects. You CAN call this function. It is called by GINA in open/save dialogs. Example: (parent-directory-wildcards "w1:>gina>*.*.newest") returns (#P"W1:>gina>*.*.newest" #P"W1:>*.*.newest") ---------------------------------------------------------------------- Function parent-directory - build a pathname for the parent directory (defun parent-directory (pathname) ...) pathname: pathname object or string The returned value is a pathname object. You CAN call this function. It is called by GINA in open/save dialogs. Example: (parent-directory "w1:>gina>documents>*.*.newest") returns #P"W1:>gina>documents.DIRECTORY" ---------------------------------------------------------------------- Function parent-directories - build a list of pathnames for the parent directories (defun parent-directories (pathname) ...) pathname: pathname object or string The returned value is a list of pathname objects. You CAN call this function. It is called by GINA in open/save dialogs. Example: (parent-directories "w1:>gina>documents>*.gredit.newest") returns (#P"W1:>gina>documents.DIRECTORY" #P"W1:>gina.DIRECTORY") (parent-directories "w1:>*.gredit.newest") returns nil ---------------------------------------------------------------------- Function root-directory-p - check if directory component denotes the root directory (defun root-directory-p (pathname) ...) pathname: pathname object or string The returned value is T or NIL. You CAN call this function. It is called by GINA in open/save dialogs. ---------------------------------------------------------------------- Function root-directory-wildcard - build a wildcard for the root directory (defun root-directory-wildcard nil ...) The returned value is a pathname object. You CAN call this function. It is called by GINA in open/save dialogs. ---------------------------------------------------------------------- Function directoryp - check if pathname denotes a directory (defun directoryp (pathname) ...) pathname: pathname object or string The returned value is T or NIL. You CAN call this function. It is called by GINA in open/save dialogs. Example: (directoryp "w1:>mike.directory") returns t (directoryp "w1:>documents>four-rects.gredit.newest") returns nil (directoryp "tom:/home/spenke") returns t ---------------------------------------------------------------------- Function pathname-equal - determine equality of two pathnames (defun pathname-equal (pathname1 pathname2) ...) The returned value is T or NIL. You CAN call this function. It is called by GINA in open/save dialogs. Example: (pathname-equal "w1:>documents>four-rects.gredit.newest" "w1:>documents>four-rects.gredit.2") returns t (pathname-equal "W1:>DOCUMENTS>four-rects.GREDIT" "w1:>documents>four-rects.gredit.2") returns t (pathname-equal "W1:>DOCUMENTS>four-rects.GREDIT" nil) returns nil ---------------------------------------------------------------------- Function pathname-name< - determine lexicographical order of the name component (defun pathname-name< (pathname1 pathname2) ...) You CAN call this function. It is called by GINA in open/save dialogs. Example: (pathname-name< "/home/spenke/aaa.hello" "/home/spenke/bbb.hello") (print (sort (directory "/home/spenke/") #'pathname-name<)) ---------------------------------------------------------------------- Function file-exists - check if pathname denotes an existing file (defun file-exists (pathname) ...) The returned value is T or NIL. You CAN call this function. It is called by GINA in open/save dialogs. Example: (file-exists "fdhgdfgfdg") returns nil ---------------------------------------------------------------------- Function replace-returns - replace return for use in text widgets (defun replace-returns (string) ...) You CAN call this function. It is sometimes called by GINA. ---------------------------------------------------------------------- Function unreplace-returns - unreplace return for use in text widgets (defun unreplace-returns (string) ...) You CAN call this function. It is sometimes called by GINA. ---------------------------------------------------------------------- Function find-bitmap - search for a bitmap in gina:*bitmap-directories* (defun find-bitmap (bitmap-name &key (for-clm nil)) ...) for-clm: T if result is passed to CLM The returned value is the absolute pathname as a string or bitmap-name when not found. You CAN call this function. It is called by GINA when setting label bitmaps. The second value (T or NIL) indicates whether found. ---------------------------------------------------------------------- Function shell-command - execute a string as a UNIX command (defun shell-command (command-string) ...) You CAN call this function. It is sometimes called by GINA. ---------------------------------------------------------------------- Function rotate-applications - bring the next application to front of *running-applications* (defun rotate-applications nil ...) You CAN call this function to use another application by with-application-stopped. It is never called by GINA. ---------------------------------------------------------------------- Function focus-application - bring another application to front of *running-applications* (defun focus-application (&optional (number 1)) ...) You CAN call this function to set *application* or use another application by with-application-stopped. It is never called by GINA. Example: (focus-application 3) focusses on the third running application