chxavnavipanecontrol.h

来自「symbian 下的helix player源代码」· C头文件 代码 · 共 126 行

H
126
字号
/************************************************************************
 * chxavnavipanecontrol.h
 * ----------------------
 *
 * Synopsis:
 * Contains the declaration of the navi pane control.  This control
 * diplays all the bells and whistles of the play view.
 *
 * Target:
 * Symbian OS
 *
 *
 * (c) 1995-2003 RealNetworks, Inc. Patents pending. All rights reserved.
 *
 ************************************************************************/

#ifndef _chxavnavipanecontrol_h_
#define _chxavnavipanecontrol_h_


#include "chxavrefptr.h"
#include "chxavtextcontrol.h"
#include "chxavplayer.h"
#include "chxavcallback.h"
#include "comptr.h"


// class CHXAvNaviPaneControl...
class CHXAvNaviPaneControl 
: public CCoeControl
, public IHXSymPlayerStateObserver
{
public:
    CHXAvNaviPaneControl();
    virtual ~CHXAvNaviPaneControl();

public:

   static CHXAvNaviPaneControl*  NewL(CHXAvPlayer* pPlayer, const CCoeControl& parent);
   void ConstructL(CHXAvPlayer* pPlayer, const CCoeControl& parent);

    void SetRefreshCommandL(const CHXAvCommand& cmd);

    // IHXSymPlayerStateObserver
    void OnPlayInitiate(const char* url);
    void OnNetConnect();
    void OnLoadSession(IHXRequest* request);
    void OnResume();
    void OnStop();
    void OnPause();
    void OnBeginBuffering(bool bIsBegin);
    void OnBuffering(UINT16 percent);
    void OnBeginSeek();
    void OnMute(bool bMute);
    void OnNewPos (ULONG32 msNewTime);
    void OnAdvancePlaylist();


    void UpdateEverythingL();

private:
    virtual void Draw(const TRect& rect) const;
    virtual TInt CountComponentControls() const;
    virtual CCoeControl* ComponentControl(TInt aIndex) const;
    virtual void SizeChanged();

    void GetTimerTextL(TUint msNow, TDes& timerTextOut) const;
    void ToggleStatusBlinkAndDraw();
    void ShowPauseIndication(bool bShow);
    void UpdateTimerTextL();
    void UpdateTimerTextVisibility();
    void UpdateStatusAreaL();
    void DoStaticLayout();
    void GetTimerTextMaxArea(TRect& rc);
    void SizeAndSetTimerAreaText(refptr<CHXAvTextControl>& pControl, const TDesC& text);
    void UpdateLiveStateIndicator();

    void DoTimerTextUpdateAndDraw();
    void DoUpdateEverythingAndDraw();
    void UpdateVisibilityHelper(CCoeControl* pControl, bool bShow);
    void UpdateTextHelper(CHXAvTextControl* pControl, const TDesC& text);
    void UpdateRectHelper(CCoeControl* pControl, const TRect& rc);

    void OnAnimateEllipseTick();
    void ToggleEllipseAnimation(bool bOn);
private:

    // controls
    refptr<CHXAvTextControl>	m_spTimerText;
    refptr<CHXAvTextControl>	m_spStatusText;
    refptr<CHXAvTextControl>    m_spEllipseText;
    
    refptr<CEikImage>	m_spPlayStateImage;
    refptr<CEikImage>	m_spVolStateImage;
    refptr<CEikImage>   m_spLiveStateOnImage;
    refptr<CEikImage>   m_spLiveStateOffImage;

    CHXAvCommandPtr	m_spRefreshCmd;
    
    bool		m_bBlinkIsVisible;
    CHXAvCallback	m_cbBlink;
    CHXAvCallback       m_cbAnimateEllipse;
    bool                m_bNeedRefresh;
    

    comptr<CHXAvPlayer> m_spPlayer;

    TRect               m_rcMaxTextArea;
    bool                m_bHideTimerForStatusText;

    TRect               m_rcParent;

    TUint               m_ellipseCount;

};

inline
void CHXAvNaviPaneControl::SetRefreshCommandL(const CHXAvCommand& cmd)
{
    m_spRefreshCmd = cmd.CloneL();
}


#endif // _chxavnavipanecontrol_h_

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?