home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / warphead.zip / H / DRAGPRIV.H < prev    next >
C/C++ Source or Header  |  1997-02-28  |  5KB  |  175 lines

  1. /* @(#)Z 1.6 com/src/storage/DragPriv.h, oddataxfer, od96os2, odos29646d 96/11/15 15:25:50 (96/10/29 09:31:11) */
  2. /*====START_GENERATED_PROLOG======================================
  3.  */
  4. /*
  5.  *   COMPONENT_NAME: oddataxfer
  6.  *
  7.  *   CLASSES:   ODDragItem
  8.  *        ODDragLink
  9.  *        ODDragRMF
  10.  *        ODFileDragItem
  11.  *        ODMemDragItem
  12.  *
  13.  *   ORIGINS: 82,27
  14.  *
  15.  *
  16.  *   (C) COPYRIGHT International Business Machines Corp. 1995,1996
  17.  *   All Rights Reserved
  18.  *   Licensed Materials - Property of IBM
  19.  *   US Government Users Restricted Rights - Use, duplication or
  20.  *   disclosure restricted by GSA ADP Schedule Contract with IBM Corp.
  21.  *       
  22.  *   IBM DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
  23.  *   ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
  24.  *   PURPOSE. IN NO EVENT SHALL IBM BE LIABLE FOR ANY SPECIAL, INDIRECT OR
  25.  *   CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF
  26.  *   USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
  27.  *   OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE
  28.  *   OR PERFORMANCE OF THIS SOFTWARE.
  29.  */
  30. /*====END_GENERATED_PROLOG========================================
  31.  */
  32.  
  33. /*
  34.     File:        DragPriv.cpp
  35.  
  36.     Contains:    Definition of Private classes for ODDragAndDrop.
  37.  
  38.     Owned by:    Vincent Lo
  39.  
  40.     Copyright:    ⌐ 1994 - 1995 by Apple Computer, Inc., all rights reserved.
  41.  
  42.     Change History (most recent first):
  43.  
  44.          <7>      9/6/95    VL        1274572: Added GetFinderInfo and
  45.                                     GetIconFamilyFromFile.
  46.          <6>     5/25/95    jpa        List.h --> LinkList.h [1253324]
  47.          <5>    12/13/94    VL        1203627,1200603,1203451,1198037,1194537,119
  48.                                     4755,1186815: Bug fixes.
  49.          <4>     9/29/94    RA        1189812: Mods for 68K build.
  50.          <3>     9/23/94    VL        1184272: ContainerID is now a sequence of
  51.                                     octets.
  52.          <2>     7/26/94    VL        Got rid of dependency on Bento Container
  53.                                     Suite.
  54.          <1>     7/21/94    VL        first checked in
  55.  
  56.     To Do:
  57.     In Progress:
  58. */
  59.  
  60. #ifndef _DRAGPRIV_
  61. #define _DRAGPRIV_
  62.  
  63. #ifndef _ODTYPES_
  64. #include <ODTypes.h>
  65. #endif
  66.  
  67. #ifndef _ODMEMORY_
  68. #include <ODMemory.h>
  69. #endif
  70.  
  71. #ifndef _PLFMDEF_
  72. #include <PlfmDef.h>
  73. #endif
  74.  
  75. #ifndef _LINKLIST_
  76. #include <LinkList.h>
  77. #endif
  78.  
  79. //==============================================================================
  80. // Forward declaration
  81. //==============================================================================
  82.  
  83. class    ODStorageSystem;
  84. class    ODContainer;
  85. class    ODDocument;
  86. class    ODDraft;
  87. class    PlatformFile;
  88. class    ODStorageUnit;
  89.  
  90. //==============================================================================
  91. // Function prototype
  92. //==============================================================================
  93. void GetFinderInfo(Environment* ev, ODStorageUnit* su, PlatformFile* file);
  94. void GetIconFamilyFromFile(Environment* ev, ODStorageUnit* su, PlatformFile* file);
  95.  
  96. //==============================================================================
  97. // ODDragItem
  98. //==============================================================================
  99. class ODDragItem
  100. {
  101. public:
  102.  
  103.     ODDragItem(ODStorageSystem *storage, ODBoolean IsForeignDataSU);
  104.     ODVMethod    ~ODDragItem() {}
  105.     ODNVMethod    void Initialize(Environment* ev) {}
  106.     ODVMethod    void Open(Environment* ev);
  107.     ODVMethod    void Close(Environment* ev);
  108.     
  109.     ODStorageUnit*    fSU;
  110.  
  111. protected:
  112.  
  113.     ODStorageSystem*        fStorageSystem;
  114.     ODContainer*            fContainer;
  115.     ODDocument*                fDocument;
  116.     ODDraft*                fDraft;
  117. };
  118.  
  119. class ODMemDragItem : public ODDragItem
  120. {
  121. public:
  122.  
  123.     ODMemDragItem(ODStorageSystem *storage, ODBoolean IsForeignDataSU)
  124.         : ODDragItem(storage, IsForeignDataSU) {};
  125.     ~ODMemDragItem();
  126.         void Initialize(Environment* ev);
  127.         void Open(Environment* ev);
  128.         void Close(Environment* ev);
  129. #ifdef _PLATFORM_AIX_
  130.         void Restore(Environment* ev, void* containerData, int containerSize);
  131. #endif
  132.  
  133.     ODHandle                  fContainerHandle;
  134. };
  135.  
  136. class ODFileDragItem : public ODDragItem
  137. {
  138. public:
  139.  
  140.         ODFileDragItem(ODStorageSystem *storage, ODBoolean IsForeignDataSU)
  141.             : ODDragItem(storage, IsForeignDataSU) {};
  142.            ~ODFileDragItem();
  143.         void Initialize(Environment* ev, ODContainerID* file);
  144. };
  145.  
  146.  
  147. //==============================================================================
  148. // ODDragLink
  149. //==============================================================================
  150. class ODDragLink : public Link
  151. {
  152.     public:
  153.         ODDragLink(ODDragItem *theItem, ODBoolean cleanup);
  154.         ~ODDragLink();
  155.        
  156.         ODDragItem *fItem;
  157.         ODBoolean   fCleanup;
  158. };
  159.  
  160. #ifdef _PLATFORM_OS2_
  161. //==============================================================================
  162. // ODDragRMF
  163. //==============================================================================
  164. class ODDragRMF : public Link
  165. {
  166.    public:
  167.     ODDragRMF(PSZ pszRMF);
  168.     ~ODDragRMF();
  169.  
  170.     PSZ fRMF;
  171. };
  172. #endif // _PLATFORM_OS2_
  173.  
  174. #endif    // _DRAGPRIV_
  175.