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

  1. #ifndef _IOUTLBOX_
  2.   #define _IOUTLBOX_
  3. /*******************************************************************************
  4. * FILE NAME: ioutlbox.hpp                                                      *
  5. *                                                                              *
  6. * DESCRIPTION:                                                                 *
  7. *   Declaration of the classes:                                                *
  8. *     IOutlineBox                                                              *
  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 <icontrol.hpp>
  19. #include <irect.hpp>
  20.  
  21. class ISize;
  22. class IWindowHandle;
  23. class IColor;
  24. class IPoint;
  25. class IOutlineBoxData;
  26.  
  27. #pragma pack(4)
  28.  
  29. class IOutlineBox : public IControl  {
  30. typedef IControl
  31.   Inherited;
  32. public:
  33. class Style;
  34. /*------------------------------ Constructors --------------------------------*/
  35.   IOutlineBox  ( unsigned long     id,
  36.                  IWindow*          parent,
  37.                  IWindow*          owner,
  38.                  const IRectangle& initial = IRectangle(),
  39.                  const Style&      style = defaultStyle() );
  40.  
  41.   IOutlineBox  ( unsigned long     id,
  42.                  IWindow*          parent );
  43.  
  44.   IOutlineBox  ( const IWindowHandle& handle);
  45.  
  46. virtual
  47.  ~IOutlineBox  ( );
  48.  
  49. /*---------------------------------- Styles ----------------------------------*/
  50. INESTEDBITFLAGCLASSDEF1(Style, IOutlineBox, IWindow);
  51.                                   // style class definition
  52. static const Style
  53.   IC_IMPORTU classDefaultStyle,
  54.   IC_IMPORTU backgroundFrame,
  55. #ifndef IC_MOTIFPM_FLAGNOP
  56.   IC_IMPORTU border3D,
  57. #endif
  58.   IC_IMPORTU foregroundFrame;
  59.  
  60. static const Style
  61.   IC_IMPORTU halftoneFrame;
  62.  
  63. static Style
  64.   defaultStyle      ( );
  65.  
  66. static void
  67.   setDefaultStyle   ( const Style&    style );
  68.  
  69. virtual unsigned long
  70.   convertToGUIStyle ( const IBitFlag& style,
  71.                       Boolean         extendedOnly = false ) const;
  72.  
  73. /*---------------------------- Outline Types ---------------------------------*/
  74. enum OutlineType {
  75.   foreground,
  76.   background,
  77.   halftone };
  78.  
  79. IOutlineBox
  80.  &setOutlineType(const OutlineType& type);
  81. OutlineType
  82.   outlineType() const;
  83.  
  84. /*----------------------------- Color Members --------------------------------*/
  85. #ifndef IC_WIN_FLAGNOP
  86. virtual IColor
  87.   foregroundColor     ( ) const;
  88. #endif //IC_WIN_FLAGNOP
  89.  
  90.  
  91.  
  92. /*------------------------------ Canvas Support ------------------------------*/
  93. virtual IRectangle
  94.   visibleRectangle   ( ) const;
  95.  
  96. private:
  97. /*----------------------------- Hidden Members -------------------------------*/
  98.   IOutlineBox  ( const IOutlineBox& outlineBox );
  99. IOutlineBox
  100.  &operator=    ( const IOutlineBox& outlineBox );
  101.  
  102. /*--------------------------------- Private ----------------------------------*/
  103. static Style
  104.   currentDefaultStyle;
  105.  
  106. IOutlineBoxData
  107.  *fOutlineBoxData;
  108.  
  109. };  // class IOutlineBox
  110.  
  111. INESTEDBITFLAGCLASSFUNCS(Style, IOutlineBox);
  112.                                   // global style functions
  113.  
  114. #pragma pack()
  115.  
  116. #endif  // _IOUTLBOX_
  117.