VideoContainer.h
上传用户:xinrui0099
上传日期:2010-03-05
资源大小:48k
文件大小:5k
源码类别:

Symbian

开发平台:

C/C++

  1. /*
  2. * ============================================================================
  3. *  Name     : VideoContainer.h
  4. *  Part of  : Video
  5. *  Created  : 10/14/2003 by Forum Nokia
  6. *  Description:
  7. *     Declares container control for application.
  8. *  Version  :
  9. *  Copyright: Forum Corporation, 2003
  10. * ============================================================================
  11. */
  12. #ifndef VIDEOCONTAINER_H
  13. #define VIDEOCONTAINER_H
  14. #include <coecntrl.h>
  15. #include <coemain.h>
  16.    
  17. class CAknDoubleNumberStyleListBox;
  18. class CDesC16ArrayFlat;
  19. class CDesC16Array;
  20. class CFileListEngine;
  21. class CEikButtonGroupContainer;
  22. /**
  23.  *  CVideoContainer  
  24.  *  Container control class.
  25.  */
  26. class CVideoContainer : public CCoeControl, MCoeControlObserver
  27.     {
  28.     public: // Constructors and destructor
  29.         
  30.         /**
  31.          * Symbian default constructor.
  32.          * @param aRect Frame rectangle for container.
  33.          */
  34.         void ConstructL(const TRect& aRect);
  35.         /**
  36.          * Destructor.
  37.          */
  38.         ~CVideoContainer();
  39.     public: // New functions
  40.         /**
  41.          * Return Containers RWindow
  42.          */
  43.         inline RWindow& ClientWindow();
  44. /**
  45.          * Return TRect of the video area
  46.          */
  47.         inline TRect VideoRect() const;
  48.         /**
  49.          * Return Containers RWsSession
  50.          */
  51.         inline RWsSession& ClientWsSession();
  52.         /**
  53.          * Return Containers CWsScreenDevice
  54.          */
  55.         inline CWsScreenDevice& ScreenDevice();
  56. /**
  57.  * Get the total number of items in the list box
  58.  */
  59.     TInt GetNumOfItemsInListBox();
  60. /**
  61.  * Get the current video file name in the list box
  62.  *  @param aFileName output to hold the selected video file name
  63.  */
  64.     void GetCurrentVideoFileNameL(TDes &aFileName);
  65.     public: // Functions from base classes
  66.         /** 
  67.  * See CCoeControl::OfferKeyEventL() 
  68.  */
  69. TKeyResponse OfferKeyEventL(const TKeyEvent& aKeyEvent,TEventCode aType);
  70.     private: // Functions from base classes
  71.         /**
  72.          * From CoeControl,SizeChanged.
  73.          */
  74.         void SizeChanged();
  75.         /**
  76.          * From CoeControl,CountComponentControls.
  77.          */
  78.         TInt CountComponentControls() const;
  79.         /**
  80.          * From CCoeControl,ComponentControl.
  81.          */
  82.         CCoeControl* ComponentControl(TInt aIndex) const;
  83.         /**
  84.          * From CCoeControl,Draw.
  85.          */
  86.         void Draw(const TRect& aRect) const;
  87.        
  88. /**
  89.  * From MCoeControlObserver
  90.  * Acts upon changes in the hosted control's state. 
  91.  *
  92.  * @param aControl The control changing its state
  93.  * @param aEventType The type of control event 
  94.  */
  95.         void HandleControlEventL(CCoeControl* aControl,TCoeEvent aEventType);
  96.         
  97. private:
  98. /**
  99.  * Set the File list
  100.  */
  101. void SetFileList(TInt aDirectory, TInt aSizeDate);
  102.     private: //data
  103.         TRect iVideoRect;
  104.         CAknDoubleNumberStyleListBox* iListBox;
  105. CFileListEngine* iFileListEngine;
  106. CEikButtonGroupContainer* iCba;
  107.     };
  108. /*
  109. -----------------------------------------------------------------------------
  110.     inline RWindow& CVideoContainer::ClientWindow()
  111. Description: Returns client window handle
  112. Comments   :
  113.     Return values: Returns client window handle
  114. -----------------------------------------------------------------------------
  115. */
  116.     inline RWindow& CVideoContainer::ClientWindow()
  117.         {
  118.         return Window();
  119.         }
  120. /*
  121. -----------------------------------------------------------------------------
  122.     inline TRect CVideoContainer::VideoRect() const
  123. Description: Returns video area
  124. Comments   :
  125.     Return values: Returns video area
  126. -----------------------------------------------------------------------------
  127. */
  128.     inline TRect CVideoContainer::VideoRect() const
  129.         {
  130.         return iVideoRect;
  131.         }
  132. /*
  133. -----------------------------------------------------------------------------
  134.     inline RWsSession& CVideoContainer::ClientWsSession()
  135. Description: Returns client WsSession
  136. Comments   :
  137.     Return values: Returns client WsSession
  138. -----------------------------------------------------------------------------
  139. */
  140.     inline RWsSession& CVideoContainer::ClientWsSession()
  141.         {
  142.         return ControlEnv()->WsSession();
  143.         }
  144. /*
  145. -----------------------------------------------------------------------------
  146.     inline CWsScreenDevice& CVideoContainer::ScreenDevice()
  147. Description: Returns client ScreenDevice
  148. Comments   :
  149.     Return values: Returns client ScreenDevice
  150. -----------------------------------------------------------------------------
  151. */
  152.     inline CWsScreenDevice& CVideoContainer::ScreenDevice()
  153.         {
  154.         return *(ControlEnv()->ScreenDevice());
  155.         }
  156. #endif