ETHZ_Logo RAMSES_Logo_Right   RAMSES   RAMSES_Logo_Left Systems Ecology  
Start    search button      Modules:   A-Z   Function   Layer        QuickRefs:   DM   AuxLib   AuxLibE   SciLib   EasyMW   MW   ISIS   RMSLib

DEFINITION MODULE DMClipboard;

  (*******************************************************************

    Module  DMClipboard     ('Dialog Machine' DM_V3.0)

      Copyright (c) 1987-2006 by Olivier Roth, Andreas Fischlin and
      ETH Zurich.

    Purpose   Use of the clipboard together with the standard
              Edit menu by a 'Dialog Machine' program, plus support
              of the transfer of picture or text objects from
              or to the clipboard into a 'Dialog Machine' program.

    Remarks   See also modules DMWTextIO and DMWPictIO.

              Uses DMMenus, DMWindows, internal 'Dialog Machine'
              modules, and the Toolbox.

              This module belongs to the 'Dialog Machine'.


    Programming

      o Design
        Olivier Roth              09/04/1987
        Andreas Fischlin          14/03/1989

      o Implementation
        Olivier Roth              09/04/1987
        Andreas Fischlin          14/03/1989


    ETH Zurich
    Systems Ecology
    CHN E 35.1
    Universitaetstrasse 16
    8092 Zurich
    SWITZERLAND

    URLs:
        <mailto:RAMSES@env.ethz.ch>
        <http://www.sysecol.ethz.ch>
        <http://www.sysecol.ethz.ch/SimSoftware/RAMSES>


    Last revision of definition:  23/10/1990  AF

  *******************************************************************)


  FROM SYSTEM IMPORT ADDRESS;

  FROM DMWindows IMPORT RectArea;



  TYPE
    EditCommands = ( undo, cut, copy, paste, clear );
    (*
      When a Desk Accessory-Window is on top the DA has to
      interprete the Edit-Commands, but when there is no DA-Window
      the front-most window, your application has to perform an
      adaequate action. With the following procedures you can
      install procedures for that case.
    *)


  VAR
    ClipboardDone: BOOLEAN;
    (*
      Read only variable, which returns whether any of the
      following procedures has been successful.  E.g. if the
      clipboard does currently contain no picture and the Dialog
      Machine program calls GetPictureFromClipboard the value
      becomes FALSE.
    *)


  PROCEDURE InstallEditMenu ( UndoProc,
                              CutProc, CopyProc, PasteProc,
                              ClearProc: PROC );
  PROCEDURE RemoveEditMenu;
  PROCEDURE UseEditMenu;
  (*
    The above three procedures either install, remove, or use the
    usual Edit-Menu with the Undo-, Cut-, Copy-, Paste-,and
    Clear-Commands with all their usual shortcuts.  The meaning of
    install, remove, and use are the same as the corresponding
    procedures from module DMMenus.
  *)

  PROCEDURE EnableEditMenu;
  PROCEDURE DisableEditMenu;
  (*
    Enables or Disables the complete EditMenu ( but will not redraw
    the Menubar with "Edit" in grey ).
  *)

  PROCEDURE EnableEditCommand( whichone : EditCommands);
  PROCEDURE DisableEditCommand( whichone : EditCommands);
  (*
    Enables or Disables the specified Command from the
    EditMenu
  *)



  PROCEDURE PutPictureIntoClipboard;
  (*
    Copies the currently saved picture associated with the current
    Dialog Machine window to the Clipboard.
  *)

  PROCEDURE GetPictureFromClipboard (simultaneousDisplay: BOOLEAN; destRect: RectArea);
  (*
    Allows to transfer the current pictorial content of the
    clipboard to the current Dialog Machine window. If
    simultaneousDisplay is true the picture will be simultaneously
    displayed in the current output window in the rectangle
    destRect. If the width or height of the destRect is <0 then the
    picture will be displayed in its original size, if the lower
    left corner is =MIN(INTEGER) then the picture's original lower
    left corner will be respected, otherwise it will be resized to
    fit exactly into the given rectangle (exception: if all of
    destRect are =0 then the picture is fitted entirely into the
    destination window; for more explanations see DMWPictIO.DEF).
    In case there is currently a text or picture object open (see
    also module DMWTextIO), the picture will be appended to the
    already existing picture but NOT to the eventually already
    existing text.  This mechanisms allows to transfer a picture
    into a picture but not into a text object (different from
    GetTextFromClipboard).
*)



  PROCEDURE PutTextIntoClipboard;
  (*
    Copies the currently saved text associated with the current
    Dialog Machine window to the Clipboard.
  *)

  PROCEDURE GetTextFromClipboard (simultaneousDisplay: BOOLEAN;
                                  destRect: RectArea; fromLine: LONGINT);
  (*
    Allows to transfer the current textual content of the clipboard
    to the current Dialog Machine window. If simultaneousDisplay is
    true the text will be simultaneously displayed in the current
    output window in the rectangle destRect starting with line
    fromLine at the top left corner of the rectangle destRect. If
    the text contains long lines exceeding the width of the
    destRect, their display will be clipped (no auto-wrap). In case
    there is currently a text or picture object open (see also
    module DMWTextIO), the picture will be appended to the already
    existing picture or text of the current output window.  This
    mechanisms allows to transfer a text into a picture and/or into
    a text object (different from GetPictureFromClipboard). The
    resulting text object will be always terminated by 0C.
  *)



END DMClipboard.

  Contact RAMSES@env.ethz.ch Last updated: 25-Jul-2011 [Top of page]