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

  1. /*******************************************************************************
  2. * FILE NAME: icombovw.c                                                        *
  3. *                                                                              *
  4. * DESCRIPTION:                                                                 *
  5. *   This file contains the implementation of classes/functions declared        *
  6. *   in icombovw.hpp                                                            *
  7. *                                                                              *
  8. * COPYRIGHT:                                                                   *
  9. *   IBM Open Class Library                                                     *
  10. *   (C) Copyright International Business Machines Corporation 1992, 1996       *
  11. *   Licensed Material - Program-Property of IBM - All Rights Reserved.         *
  12. *   US Government Users Restricted Rights - Use, duplication, or disclosure    *
  13. *   restricted by GSA ADP Schedule Contract with IBM Corp.                     *
  14. *                                                                              *
  15. *******************************************************************************/
  16. #define IC_USE_CB
  17.  
  18. #include  <icollvwi.hpp>
  19. #include  <icombovw.hpp>
  20. #include  <icolvwd.hpp>
  21. #include  <iseq.h>
  22. #include  <ipartccl.h>
  23.  
  24.  
  25. template <class Element, class Collection>
  26.   const unsigned long
  27.     ICollectionViewComboBox<Element, Collection>::noSelection = 0;
  28.  
  29.  
  30. template <class Element, class Collection>
  31.   class ICollectionViewComboBoxData : public IBase {
  32.  
  33. public:
  34.  
  35.   ICollectionViewComboBoxData( const IStringGenerator<Element>&
  36.                                   stringGenerator );
  37.  
  38.  ~ICollectionViewComboBoxData ( );
  39.  
  40. ICollectionViewData< Element,
  41.                      ICollectionViewComboBox< Element, Collection >,
  42.                      Collection >
  43.   *fCollectionViewData;
  44.  
  45. Boolean
  46.   saveSelectionState;
  47.  
  48. private:
  49. /*------------------------- Hidden Members -----------------------------------*/
  50.   ICollectionViewComboBoxData
  51.              ( const ICollectionViewComboBoxData< Element, Collection >& source );
  52. ICollectionViewComboBoxData<Element,Collection>
  53.  &operator=  ( const ICollectionViewComboBoxData< Element, Collection >& source );
  54.  
  55. };
  56.  
  57. template <class Element, class Collection>
  58.   ICollectionViewComboBoxData<Element, Collection>::
  59.     ICollectionViewComboBoxData( const IStringGenerator<Element>& stringGenerator )
  60.       : saveSelectionState( false )
  61. {
  62.   fCollectionViewData = new
  63.      ICollectionViewData< Element,
  64.                           ICollectionViewComboBox< Element, Collection >,
  65.                           Collection > ( stringGenerator);
  66. }
  67.  
  68. template <class Element, class Collection>
  69.   ICollectionViewComboBoxData<Element,Collection>::
  70.    ~ICollectionViewComboBoxData ( )
  71. {
  72.   delete fCollectionViewData;
  73. }
  74.  
  75. template <class Element, class Collection>
  76.   ICollectionViewComboBox<Element,Collection>::
  77.     ICollectionViewComboBox ( unsigned long                    identifier,
  78.                               IWindow*                         parent,
  79.                               IWindow*                         owner ,
  80.                               const IRectangle&                initial,
  81.                               const IBaseComboBox::Style&      style,
  82.                               const IStringGenerator<Element>& stringGenerator )
  83.     : IBaseComboBox( identifier, parent, owner, initial, style )
  84. {
  85.   fCollectionViewComboBoxData = new ICollectionViewComboBoxData<Element, Collection>( stringGenerator );
  86.   fCollectionViewComboBoxData->fCollectionViewData->fCollectionObserver.setViewer( this );
  87.   enableNotification();
  88. }
  89.  
  90.  
  91. template <class Element, class Collection>
  92.   ICollectionViewComboBox<Element,Collection>::
  93.     ICollectionViewComboBox( unsigned long                    identifier,
  94.                              IWindow*                         parent,
  95.                              const IStringGenerator<Element>& stringGenerator )
  96.     : IBaseComboBox( identifier, parent )
  97. {
  98.   fCollectionViewComboBoxData = new ICollectionViewComboBoxData<Element, Collection>( stringGenerator );
  99.   fCollectionViewComboBoxData->fCollectionViewData->fCollectionObserver.setViewer( this );
  100.   enableNotification();
  101. }
  102.  
  103. template <class Element, class Collection>
  104.   ICollectionViewComboBox<Element,Collection>::
  105.     ICollectionViewComboBox( const IWindowHandle&             handle,
  106.                              const IStringGenerator<Element>& stringGenerator )
  107.     : IBaseComboBox( handle )
  108. {
  109.   fCollectionViewComboBoxData =
  110.      new ICollectionViewComboBoxData<Element, Collection>( stringGenerator );
  111.   fCollectionViewComboBoxData->fCollectionViewData->fCollectionObserver.setViewer( this );
  112.   enableNotification();
  113. }
  114.  
  115. template <class Element, class Collection>
  116.   ICollectionViewComboBox<Element,Collection>::
  117.    ~ICollectionViewComboBox ( )
  118. {
  119.   disableNotification();
  120.  
  121.   delete fCollectionViewComboBoxData;
  122. }
  123.  
  124.  
  125. template <class Element, class Collection>
  126.   INotificationId const ICollectionViewComboBox<Element,Collection>::itemChangedId =
  127.     "ICollectionViewComboBox::itemChangedId";
  128. template <class Element, class Collection>
  129.   INotificationId const ICollectionViewComboBox<Element,Collection>::itemsId =
  130.     "ICollectionViewComboBox::itemsId";
  131.  
  132.  
  133. #include <ilistcv2.c>
  134.