home *** CD-ROM | disk | FTP | other *** search
/ Power GUI Programming with VisualAge C++ / powergui.iso / powergui / cnr / treedet / partlist.hpp < prev    next >
Encoding:
C/C++ Source or Header  |  1996-10-29  |  2.7 KB  |  147 lines

  1. #ifndef _PARTLIST_
  2. #define _PARTLIST_
  3. //************************************************************
  4. // Container - Combined Tree and Details View
  5. //
  6. // Copyright (C) 1994, Law, Leong, Love, Olson, Tsuji.
  7. // Copyright (c) 1997 John Wiley & Sons, Inc. 
  8. // All Rights Reserved.
  9. //************************************************************
  10. #include <ivbase.hpp>
  11. #include <ihandler.hpp>
  12. #include <iframe.hpp>
  13.  
  14. class IContainerControl;
  15. class ISplitCanvas;
  16. class IMultiCellCanvas;
  17. class ISetCanvas;
  18. class DetailsTreeContainer;
  19. class DetailsTreeHandler;
  20. class ColorChangeHandler;
  21. class IStaticText;
  22. class IScrollBar;
  23.  
  24. class PartsList : protected IFrameWindow {
  25. public:
  26.  
  27.   PartsList ( );
  28.  ~PartsList ( );
  29.  
  30. PartsList
  31.  &open               ( );
  32.  
  33. ISplitCanvas
  34.  &splitCanvas        ( );
  35.  
  36. IMultiCellCanvas
  37.  &leftMultiCell      ( ),
  38.  &rightMultiCell     ( );
  39.  
  40. IStaticText
  41.  &treeScrollHide     ( );
  42.  
  43.  
  44. DetailsTreeContainer
  45.  &treeContainer      ( );
  46.  
  47. IContainerControl
  48.  &detailsContainer   ( ),
  49.  &otherContainer     ( const IContainerControl& opposite);
  50.  
  51. PartsList
  52.  &loadObjects        ( );
  53.  
  54. PartsList
  55.  &setColorChangeStarted ( Boolean changeStarted=true);
  56.  
  57. Boolean
  58.  colorChangeStarted    ( ) const;
  59.  
  60. private:
  61.  
  62. ISplitCanvas
  63.  *canvas;
  64. IMultiCellCanvas
  65.  *leftMCell,
  66.  *rightMCell;
  67. IStaticText
  68.  *treeScrollHideWin;
  69. IScrollBar
  70.  *treeScroll;
  71. DetailsTreeContainer
  72.  *treeCnr;
  73. IContainerControl
  74.  *detailsCnr;
  75. DetailsTreeHandler
  76.  *treeHandler;
  77. ColorChangeHandler
  78.  *colorHandler;
  79.  
  80. Boolean
  81.   colorChanged;
  82. PartsList ( const PartsList& );
  83. PartsList& operator= ( const PartsList& );
  84. };
  85.  
  86. class ColorChangeHandler : public IHandler
  87. {
  88. public:
  89.   ColorChangeHandler  (PartsList* partsList );
  90.  
  91. protected:
  92. virtual Boolean
  93.   dispatchHandlerEvent ( IEvent &evt );
  94.  
  95. virtual Boolean
  96.   backgroundColorChanged  ( IEvent&       event);
  97. private:
  98. PartsList
  99.  *partsList;
  100. };
  101.  
  102.  
  103.  
  104. inline ISplitCanvas& PartsList :: splitCanvas ( )
  105. {
  106.   return *canvas;
  107. }
  108.  
  109. inline DetailsTreeContainer& PartsList :: treeContainer ( )
  110. {
  111.   return *treeCnr;
  112. }
  113.  
  114. inline IContainerControl& PartsList :: detailsContainer ( )
  115. {
  116.   return *detailsCnr;
  117. }
  118.  
  119. inline IStaticText& PartsList :: treeScrollHide ( )
  120. {
  121.   return *treeScrollHideWin;
  122. }
  123.  
  124. inline IMultiCellCanvas& PartsList :: leftMultiCell ( )
  125. {
  126.   return *leftMCell;
  127. }
  128.  
  129. inline IMultiCellCanvas& PartsList :: rightMultiCell ( )
  130. {
  131.   return *rightMCell;
  132. }
  133.  
  134.  
  135. inline PartsList& PartsList :: setColorChangeStarted (Boolean colorChangeStarted)
  136. {
  137.   this->colorChanged = colorChangeStarted;
  138.   return *this;
  139. }
  140.  
  141. inline Boolean PartsList :: colorChangeStarted ( ) const
  142. {
  143.   return this->colorChanged;
  144. }
  145.  
  146. #endif // _PARTLIST_
  147.