home *** CD-ROM | disk | FTP | other *** search
/ Power GUI Programming with VisualAge C++ / powergui.iso / trialva / ibmcppw / include / iclipbrd.hpp < prev    next >
Encoding:
C/C++ Source or Header  |  1996-02-22  |  5.1 KB  |  163 lines

  1. #ifndef _ICLIPBRD_
  2. #define _ICLIPBRD_
  3. /*******************************************************************************
  4. * FILE NAME: iclipbrd.hpp                                                      *
  5. *                                                                              *
  6. * DESCRIPTION:                                                                 *
  7. *   Declaration of the classes:                                                *
  8. *     IClipboard                                                               *
  9. *                                                                              *
  10. * COPYRIGHT:                                                                   *
  11. *   IBM Open Class Library                                                     *
  12. *   (C) Copyright International Business Machines Corporation 1992, 1996       *
  13. *   Licensed Material - Program-Property of IBM - All Rights Reserved.         *
  14. *   US Government Users Restricted Rights - Use, duplication, or disclosure    *
  15. *   restricted by GSA ADP Schedule Contract with IBM Corp.                     *
  16. *                                                                              *
  17. *******************************************************************************/
  18. #include <ivbase.hpp>
  19. #include <ihandle.hpp>
  20.  
  21. class IString;
  22. class IClipboardData;
  23. class IClipboardCursorData;
  24.  
  25. #pragma pack(4)
  26.  
  27.  
  28. class IClipboard : public IVBase {
  29. typedef IVBase
  30.   Inherited;
  31. public:
  32. class Cursor;
  33. /*------------------------------- Constructors -------------------------------*/
  34.   IClipboard ( const IWindowHandle& clipboardWindow );
  35. virtual
  36.  ~IClipboard ( );
  37.  
  38. /*----------------------------- Clipboard Setup ------------------------------*/
  39. virtual IClipboard
  40.  &open                  ( ),
  41.  &close                 ( ),
  42.  &empty                 ( );
  43.  
  44. virtual Boolean
  45.   isOpen                ( ) const;
  46.  
  47. /*------------------------- Clipboard Data Transfer --------------------------*/
  48. virtual IClipboard
  49.  &setText               ( const char*          text ),
  50.  &setBitmap             ( const IBitmapHandle& bitmap ),
  51.  &setData               ( const char*          format,
  52.                           const void*          data,
  53.                           unsigned long        dataLength ),
  54.  &setHandle             ( const char*          format,
  55.                           unsigned long        handle );
  56. virtual Boolean
  57.   hasText               ( ) const,
  58.   hasBitmap             ( ) const,
  59.   hasData               ( const char*          format ) const;
  60.  
  61. virtual IString
  62.   text                  ( );
  63. virtual IBitmapHandle
  64.   bitmap                ( );
  65. virtual void*
  66.   data                  ( const char*          format );
  67.  
  68. /*---------------------------- Clipboard Formats -----------------------------*/
  69. typedef unsigned long
  70.   FormatHandle;
  71.  
  72. static IString
  73.   primaryFormat         ( ),
  74.   format                ( const Cursor&       cursor ),
  75.   format                ( const FormatHandle& handle );
  76.  
  77. static FormatHandle
  78.   registerFormat        ( const char*         privateFormat );
  79.  
  80. static FormatHandle
  81.   formatAsHandle        ( const char*         format );
  82.  
  83. unsigned long
  84.   formatCount           ( ) const;
  85.  
  86. /*----------------------- Clipboard Predefined Formats -----------------------*/
  87.  
  88. static const char
  89.  IC_IMPORTU * const textFormat,
  90.  IC_IMPORTU * const bitmapFormat,
  91.  IC_IMPORTU * const metafileFormat,
  92.  IC_IMPORTU * const displayTextFormat,
  93.  IC_IMPORTU * const displayBitmapFormat,
  94.  IC_IMPORTU * const displayMetafileFormat,
  95.  IC_IMPORTU * const paletteFormat;
  96.  
  97. class Cursor : public IVBase {
  98. typedef IVBase
  99.   Inherited;
  100. public:
  101. /*------------------------------- Constructors -------------------------------*/
  102.   Cursor ( IClipboard&   clipboard );
  103.  
  104. virtual
  105.  ~Cursor ( );
  106.  
  107. /*----------------------------- Cursor Movement ------------------------------*/
  108. virtual Boolean
  109.   setToFirst ( ),
  110.   setToNext  ( );
  111.  
  112. /*---------------------------- Cursor Validation -----------------------------*/
  113. virtual Boolean
  114.   isValid    ( ) const;
  115. virtual void
  116.   invalidate ( );
  117.  
  118. private:
  119. /*------------------------------ Hidden Members ------------------------------*/
  120.   Cursor     ( const Cursor& cursor );
  121. Cursor
  122.  &operator=  ( const Cursor& cursor );
  123.  
  124. /*--------------------------------- Private ----------------------------------*/
  125. friend class IClipboard;
  126.  
  127. unsigned long
  128.   formatHandle;
  129. IClipboard
  130.  &clipboard;
  131.  
  132. IClipboardCursorData
  133.  *fCursorData;
  134. };  // Cursor
  135.  
  136. /*--------------------------- Clipboard Ownership ----------------------------*/
  137. IWindowHandle
  138.   owner      ( ) const;
  139.  
  140. protected:
  141. /*--------------------------- Clipboard Ownership ----------------------------*/
  142.  
  143. private:
  144. /*------------------------------ Hidden Members ------------------------------*/
  145.   IClipboard( const IClipboard& clipboard );
  146. IClipboard
  147.  &operator= ( const IClipboard& clipboard );
  148.  
  149. /*--------------------------------- Private ----------------------------------*/
  150. IClipboard
  151.  &autoOpen ( );
  152.  
  153.   IClipboard ( );
  154.  
  155. IClipboardData
  156.  *fClipboardData;
  157. };  // IClipBoard
  158.  
  159.  
  160. #pragma pack()
  161.  
  162. #endif /* _ICLIPBRD_ */
  163.