Generic Function | Package: cg | ToC | DocOverview | CGDoc | RelNotes | FAQ | Index | PermutedIndex
| Allegro CL version 10.1 Unrevised from 10.0 to 10.1. 10.0 version

## paste-command

Arguments: window-or-widget

Retrieves an object from the clipboard and pastes it into the specified window or widget. Returns the object that was pasted and its clipboard format.

This is largely a convenience function that combines other exported functionality as it is typically used. An application menu command could call this function directly.

window-or-widget should an instance of the `basic-pane`, `dialog-item` or `screen` class or one of their subclasses.

The default paste-command and insert-command methods are shown below, in case you need to use some variation of this typical behavior. These methods first pass the action down to the bottommost selected-window of the window that was passed in, and call default-clipboard-format to find what type of object is typically pasted into this type of window. They then call top-clipboard-value-of-type to retrieve a value of that type from the clipboard, and finally call paste-selection or insert-selection to paste that object into the specified window or widget.

    (defmethod paste-command ((stream cg-stream))
      (let* ((child (selected-window stream)))
        (if* child
           then (paste-command child)
           else (paste-or-insert-command stream nil))))

    (defmethod insert-command ((stream cg-stream))
      (let* ((child (selected-window stream)))
        (if* child
           then (insert-command child)
           else (paste-or-insert-command stream t))))

    (defun paste-or-insert-command (stream insert?)
      (setq stream (or (dialog-item stream) stream))
      (let* ((format (default-clipboard-format stream))
             (object (with-object-locale (stream)
                       (top-clipboard-value-of-type format))))
        (and object
             (if insert?
                 (insert-selection stream object)
               (paste-selection stream object)))))

There are also methods on `dialog-item` that simply pass the action to the widget's window when the widget is on a parent window.

See copy-command for discussion of the calls to dialog-item and with-object-locale in this code.

See cg-clipboard.htm.

Copyright (c) 1998-2022, Franz Inc. Lafayette, CA., USA. All rights reserved.
This page was not revised from the 10.0 page.
Created 2019.8.20.

|  | ToC | DocOverview | CGDoc | RelNotes | FAQ | Index | PermutedIndex
| Allegro CL version 10.1 Unrevised from 10.0 to 10.1. 10.0 version