Browse Source

* initial revision

Károly Balogh 20 years ago
parent
commit
af35ebb4e7
1 changed files with 92 additions and 0 deletions
  1. 92 0
      rtl/morphos/clipboard.pas

+ 92 - 0
rtl/morphos/clipboard.pas

@@ -0,0 +1,92 @@
+{
+    $Id$
+    This file is part of the Free Pascal run time library.
+    Copyright (c) 2004 Karoly Balogh for Genesi S.a.r.l. <www.genesi.lu>
+
+    clipboard.device interface unit for MorphOS/PowerPC
+
+    Based on work of Nils Sjoholm member of the Amiga RTL
+    development team.
+
+    MorphOS port was done on a free Pegasos II/G4 machine
+    provided by Genesi S.a.r.l. <www.genesi.lu>
+
+    See the file COPYING.FPC, included in this distribution,
+    for details about the copyright.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+
+ **********************************************************************}
+{$PACKRECORDS 2}
+
+unit clipboard;
+
+interface
+
+uses exec;
+
+const
+    CBD_POST            = CMD_NONSTD + 0;
+    CBD_CURRENTREADID   = CMD_NONSTD + 1;
+    CBD_CURRENTWRITEID  = CMD_NONSTD + 2;
+    CBD_CHANGEHOOK      = CMD_NONSTD + 3;
+
+    CBERR_OBSOLETEID    = 1;
+
+type
+
+    pClipboardUnitPartial = ^tClipboardUnitPartial;
+    tClipboardUnitPartial = record
+        cu_Node         : tNode;         { list of units }
+        cu_UnitNum      : DWord;      { unit number for this unit }
+    { the remaining unit data is private to the device }
+    end;
+
+
+    pIOClipReq = ^tIOClipReq;
+    tIOClipReq = record
+        io_Message      : tMessage;
+        io_Device       : pDevice;      { device node pointer   }
+        io_Unit         : pClipboardUnitPartial;      { unit (driver private) }
+        io_Command      : Word;        { device command        }
+        io_Flags        : Byte;         { including QUICK and SATISFY }
+        io_Error        : Shortint;     { error or warning num  }
+        io_Actual       : DWord;        { number of bytes transferred }
+        io_Length       : DWord;        { number of bytes requested }
+        io_Data         : PChar;        { either clip stream or post port }
+        io_Offset       : DWord;        { offset in clip stream }
+        io_ClipID       : Longint;      { ordinal clip identifier }
+    end;
+
+const
+    PRIMARY_CLIP        = 0;    { primary clip unit }
+
+type
+
+    pSatisfyMsg = ^tSatisfyMsg;
+    tSatisfyMsg = record
+        sm_Msg  : tMessage;      { the length will be 6 }
+        sm_Unit : Word;          { which clip unit this is }
+        sm_ClipID : Longint;     { the clip identifier of the post }
+    end;
+
+   pClipHookMsg = ^tClipHookMsg;
+   tClipHookMsg = record
+    chm_Type   : DWord;          { zero for this structure format }
+    chm_ChangeCmd,               { command that caused this hook invocation: }
+                                 { either CMD_UPDATE OR CBD_POST }
+    chm_ClipID : Longint;        { the clip identifier of the new data }
+   END;
+
+implementation
+
+end.
+
+{
+  $Log$
+  Revision 1.1  2004-12-08 02:28:22  karoly
+    * initial revision
+
+}