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

  1. #ifndef _ISETCV_
  2.   #define _ISETCV_
  3. /*******************************************************************************
  4. * FILE NAME: isetcv.hpp                                                        *
  5. *                                                                              *
  6. * DESCRIPTION:                                                                 *
  7. *   Declaration of the classes:                                                *
  8. *     ISetCanvas                                                               *
  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 <icanvas.hpp>
  19. #include <ipoint.hpp>
  20. #include <irect.hpp>
  21.  
  22. class IColor;
  23. class IResourceId;
  24. class IString;
  25. class ISetCanvasObject;
  26. class ISetCanvasData;
  27. class ISetCanvasResizeHandler;
  28.  
  29. #pragma pack(4)
  30.  
  31. class ISetCanvas : public ICanvas {
  32. typedef ICanvas
  33.   Inherited;
  34. public:
  35. class Style;
  36. /*------------------------------- Constructors -------------------------------*/
  37.   ISetCanvas  ( unsigned long     windowIdentifier,
  38.                 IWindow*          parent,
  39.                 IWindow*          owner,
  40.                 const IRectangle& initial = IRectangle(),
  41.                 const Style&      style = defaultStyle() );
  42. virtual
  43.  ~ISetCanvas  ( );
  44.  
  45. /*---------------------------------- Styles ----------------------------------*/
  46. INESTEDBITFLAGCLASSDEF2(Style, ISetCanvas, ICanvas, IWindow);
  47. static const Style
  48.   IC_IMPORTU classDefaultStyle,
  49.   IC_IMPORTU horizontalDecks,
  50.   IC_IMPORTU verticalDecks,
  51.   IC_IMPORTU packTight,
  52.   IC_IMPORTU packEven,
  53.   IC_IMPORTU packExpanded,
  54.   IC_IMPORTU leftAlign,
  55.   IC_IMPORTU rightAlign,
  56.   IC_IMPORTU centerAlign,
  57.   IC_IMPORTU topAlign,
  58.   IC_IMPORTU bottomAlign,
  59.   IC_IMPORTU centerVerticalAlign,
  60.   IC_IMPORTU decksByGroup;
  61. static Style
  62.   defaultStyle      ( );
  63. static void
  64.   setDefaultStyle   ( const Style&    style );
  65.  
  66. virtual unsigned long
  67.   convertToGUIStyle ( const IBitFlag& style,
  68.                       Boolean         extendedOnly = false ) const;
  69.  
  70. /*------------------------- Spacing of Child Windows -------------------------*/
  71. enum Alignment {
  72.   topLeft,
  73.   topCenter,
  74.   topRight,
  75.   centerLeft,
  76.   centerCenter,
  77.   centerRight,
  78.   bottomLeft,
  79.   bottomCenter,
  80.   bottomRight
  81.   };
  82. enum PackType {
  83.   tight,
  84.   even,
  85.   expanded
  86.   };
  87.  
  88. Alignment
  89.   alignment    ( ) const;
  90. virtual ISetCanvas
  91.  &setAlignment ( Alignment     value );
  92. PackType
  93.   packType     ( ) const;
  94. virtual ISetCanvas
  95.  &setPackType  ( PackType      value );
  96. ISize
  97.   margin       ( ) const,
  98.   pad          ( ) const;
  99. unsigned long
  100.   groupPad     ( ) const;
  101. virtual ISetCanvas
  102.  &setMargin    ( const ISize&  margin ),
  103.  &setPad       ( const ISize&  pad ),
  104.  &setGroupPad  ( unsigned long groupPad );
  105.  
  106. /*---------------------------------- Decks -----------------------------------*/
  107. enum DeckOrientation {
  108.   horizontal,
  109.   vertical
  110.   };
  111. DeckOrientation
  112.   deckOrientation    ( ) const;
  113. unsigned long
  114.   deckCount          ( ) const;
  115. virtual ISetCanvas
  116.  &setDeckOrientation ( DeckOrientation value ),
  117.  &setDeckCount       ( unsigned long decks );
  118.  
  119. /*----------------------------------- Text -----------------------------------*/
  120. virtual ISetCanvas
  121.  &setText ( const char*        text ),
  122.  &setText ( const IResourceId& text );
  123. virtual IString
  124.   text    ( ) const;
  125.  
  126. /*---------------------------------- Layout Members --------------------------*/
  127. virtual ISetCanvas
  128.  &setLayoutDistorted ( unsigned long layoutAttributesOn,
  129.                        unsigned long layoutAttributesOff );
  130.  
  131. /*--------------------------- Notification Members ---------------------------*/
  132. static INotificationId const
  133.   IC_IMPORTU textId,
  134.   IC_IMPORTU deckOrientationId;
  135.  
  136.  
  137.  
  138. protected:
  139. /*---------------------------------- Layout ----------------------------------*/
  140. virtual ISetCanvas
  141.  &layout ( );
  142.  
  143. /*----------------------------------- Text -----------------------------------*/
  144. virtual ISetCanvas
  145.  &expandForText ( );
  146.  
  147. private:
  148. /*----------------------------- Hidden Members -------------------------------*/
  149.   ISetCanvas ( const ISetCanvas& canvas );
  150. ISetCanvas
  151.  &operator=  ( const ISetCanvas& canvas );
  152.  
  153. /*--------------------------------- Private ----------------------------------*/
  154. friend ISetCanvasResizeHandler;
  155.  
  156. static Style
  157.   currentDefaultStyle;
  158.  
  159. unsigned long
  160.   ulClNumDecks,
  161.   ulClGroupPad;
  162. ISize
  163.   sizClMargin,
  164.   sizClPad;
  165. ISetCanvasResizeHandler
  166.  *sizeHandler;
  167.  
  168. ISetCanvasData
  169.  *fSetCanvasData;
  170.  
  171. }; // ISetCanvas
  172.  
  173. INESTEDBITFLAGCLASSFUNCS(Style, ISetCanvas);
  174.  
  175. #pragma pack()
  176.  
  177. /*----------------------------- Inline Functions -----------------------------*/
  178.   #include <isetcv.inl>
  179.  
  180. #endif /* _ISETCV_ */
  181.