⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 basesite.h

📁 著名的 helix realplayer 基于手机 symbian 系统的 播放器全套源代码
💻 H
📖 第 1 页 / 共 3 页
字号:
     *  Purpose:
     *      Instruct the window to update itself
     */
    virtual void        _SendOSUpdateMessage() = 0;

    /************************************************************************
     *  Method:
     *      _ShowSite
     *  Purpose:
     *      Show/hide the site
     */
    virtual void        _ShowSite(BOOL bShow) = 0;

    /************************************************************************
     *  Method:
     *      _AtSystemTime
     *  Purpose:
     *      Determines if this call is on the main app thread
     */
    virtual BOOL        _AtSystemTime() = 0;

    /************************************************************************
     *  Method:
     *      _EventOccurred
     *  Purpose:
     *      Process the current event
     */
    virtual HX_RESULT   _EventOccurred(HXxEvent* /*IN*/ pEvent) = 0;

    /************************************************************************
     *  Method:
     *      _GetDeviceCaps
     *  Purpose:
     *      Query the current display mode for bit depth, width and height
     */
    virtual void        _GetDeviceCaps( void* hdc,
                                        UINT16& uBitesPerPixel,
                                        UINT16& uHorzRes,
                                        UINT16& uVertRes) = 0;

    /************************************************************************
     *  Method:
     *      _GetWindowRect
     *  Purpose:
     *      Get the screen coordinates of the window
     */
    virtual void        _GetWindowRect(HXxRect* destRect) = 0;

    /************************************************************************
     *  Method:
     *      _DestroySliders
     *  Purpose:
     *      Destroys the x/y scroll bars
     */
    virtual void        _DestroySliders() = 0;

    /************************************************************************
     *  Method:
     *      _HandleOSEvents
     *  Purpose:
     *      Handle this event
     */
    virtual BOOL        _HandleOSEvents(HXxEvent* /*IN*/ pEvent) = 0;

    /************************************************************************
     *  Method:
     *      _ConvertToHXEvent
     *  Purpose:
     *      Convert an OS event to a Helix event
     */
    virtual BOOL        _ConvertToHXEvent( HXxEvent* pEvent ) = 0;

    /************************************************************************
     *  Method:
     *      _GenerateOSEvent
     *  Purpose:
     *      Generate an OS event from a Helix event
     */
    virtual void        _GenerateOSEvent(HXxEvent* pEvent, HXxEvent* pEvent2) = 0;

    /************************************************************************
     *  Method:
     *      _GenerateSetCursorEvent
     *  Purpose:
     *      Generate as OS set cursor event
     */
    virtual void        _GenerateSetCursorEvent() = 0;

    /************************************************************************
     *  Method:
     *      _EnterFullScreen
     *  Purpose:
     *      Enter into full screen display mode
     */
    virtual HX_RESULT   _EnterFullScreen() = 0;

    /************************************************************************
     *  Method:
     *      _ExitFullScreen
     *  Purpose:
     *      Leave full screen display mode
     */
    virtual HX_RESULT   _ExitFullScreen() = 0;

    /************************************************************************
     *  Method:
     *      _TestFullScreen
     *  Purpose:
     *      Test full screen performance
     */
    virtual HX_RESULT   _TestFullScreen( void* hTestBitmap,
                                         const char* pszStatusText) = 0;

    /************************************************************************
     *  Method:
     *      _TryCreateXSlider
     *  Purpose:
     *      Create a horizontal scroll bar
     */
    virtual void _TryCreateXSlider() = 0;

    /************************************************************************
     *  Method:
     *      _SetXSliderValues
     *  Purpose:
     *      Set the range and step size of the horizontal scroll bar
     */
    virtual void _SetXSliderValues(INT32 range, INT32 pageSize) = 0;

    /************************************************************************
     *  Method:
     *      _TryCreateYSlider
     *  Purpose:
     *      Create a vertical scroll bar
     */
    virtual void _TryCreateYSlider() = 0;

    /************************************************************************
     *  Method:
     *      _SetYSliderValues
     *  Purpose:
     *      Set the range and step size of the vertical scroll bar
     */
    virtual void _SetYSliderValues(INT32 range, INT32 pageSize) = 0;

    /************************************************************************
     *  Method:
     *      _GetSystemSizeOfSliders
     *  Purpose:
     *      Get the pixel size of a scroll bar
     */
    virtual void _GetSystemSizeOfSliders(INT32* pWidth, INT32* pHeight) = 0;

    /************************************************************************
     *  Method:
     *      _IsWindowVisible
     *  Purpose:
     *      Is this site's window visible
     */
    virtual BOOL _IsWindowVisible() = 0;

    /************************************************************************
     *  Method:
     *      _ShowXSlider
     *  Purpose:
     *      Show/hide the horizontal scroll bar
     */
    virtual void _ShowXSlider(BOOL bShow) = 0;

    /************************************************************************
     *  Method:
     *      _MoveXSlider
     *  Purpose:
     *      Set the size and position of the horizontal scroll bar
     */
    virtual void _MoveXSlider(INT32 left, INT32 top,
                              INT32 right, INT32 bottom,
                              BOOL bRedraw) = 0;
    /************************************************************************
     *  Method:
     *      _ShowXSlider
     *  Purpose:
     *      Show/hide the vertical scroll bar
     */
    virtual void _ShowYSlider(BOOL bShow) = 0;

    /************************************************************************
     *  Method:
     *      _MoveYSlider
     *  Purpose:
     *      Set the size and position of the vertical scroll bar
     */
    virtual void _MoveYSlider(INT32 left, INT32 top,
                              INT32 right, INT32 bottom,
                              BOOL bRedraw) = 0;
    
    /************************************************************************
     *  Method:
     *      _DoesXSliderExist
     *  Purpose:
     *      Have we created a horizontal slider
     */
    virtual BOOL _DoesXSliderExist() = 0;

    /************************************************************************
     *  Method:
     *      _GetContainingWindow
     *  Purpose:
     *      Get the window that contains the full screen window
     */
    virtual void*_GetContainingWindow() = 0; // XXXAH void*? Not HXxWindow??

    /************************************************************************
     *  Method:
     *      _GetCursorPos
     *  Purpose:
     *      Get the position of the cursor in screen coordinates
     */
    virtual void _GetCursorPos(HXxPoint* pPoint) = 0;

    /************************************************************************
     *  Method:
     *      _MapPointToOSWindow
     *  Purpose:
     *      Find which window contains this point
     */
    virtual void _MapPointToOSWindow(HXxPoint* pPt, void** pWindowHandle) = 0;
   
    /************************************************************************
     *  Method:
     *      _GetWindowWithCursor
     *  Purpose:
     *      This returns the OS specific window handle, as void*, that the
     *      pointer is currently in.
     */
    virtual void* _GetWindowWithCursor() = 0;

    /************************************************************************
     *  Method:
     *      _ReInitPrimarySurface
     *  Purpose:
     *      Restore the primary surface, if necessary, after a mode/resolution
     *      change.
     */
    virtual void  _ReInitPrimarySurface() = 0; // XXXAH may want to move this to root.
                 
    /************************************************************************
     *  Method:
     *      _MoveWindow
     *  Purpose:
     *      Change the size and position of the window.  For the top level
     *      site, these are screen coordinates, for children sites, they
     *      are relative.
     */
    virtual BOOL  _MoveWindow( void* ,
                               INT32 X, INT32 Y,
                               INT32 nWidth, INT32 nHeight,
                               BOOL bRepaint) = 0;

    /************************************************************************
     *  Method:
     *      _UpdateWindow
     *  Purpose:
     *      Sends an OS message to the window to updat the client area
     */
    virtual BOOL  _UpdateWindow(void* hWnd) = 0;

    /************************************************************************
     *  Method:
     *      _ShowWindow
     *  Purpose:
     *      Show/hide the window
     */
    virtual BOOL  _ShowWindow(void* hWnd, INT32 nCmdShow) = 0;

    /************************************************************************
     *  Method:
     *      _SetWindowPos
     *  Purpose:
     *      Sets the size, position, and z-order of the window
     */
    virtual BOOL  _SetWindowPos(void* hWnd,
                                void* hWndInsertAfter,
                                INT32 X, INT32 Y,
                                INT32 cx, INT32 cy,
                                INT32 uFlags) = 0;

    virtual void  _DrawFocusRect(UCHAR* pImage,
                                 HXBitmapInfoHeader* pImageInfo,
                                 HXxRect* pImageSize,
                                 void* pOsSpecificData=NULL);

    BOOL           HasFocusRect() {return m_rcFocusRect.bRectActive;}
    
    void ManageExposeEvents( HXxRect* dirtyRect );
    void _RecursiveDamageRect( HXxRect* dirtyRect, BOOL bForce=FALSE );
    void DamageRectWindowRel(HXxRect rect);

    // this is going to be a nice one.
    virtual BOOL _SetWindowRgn(void* hWnd, HXREGION* hRgn, BOOL bRedraw) = 0;
    // XXXAH it would be nice to get the return value here
    virtual void _SetFocus(void* pWindow) = 0;
    BOOL         _TakesPartInAlphaChain();
    HXREGION*      Transition(INT32 left, INT32 top, INT32 right, INT32 bottom, tranLines* lines = NULL);

    //XXXgfw just some hacks to help us get trylocks with the top
    //level site mutexes.
    void _TLSLock();
    void _TLSUnlock();
    BOOL _TLSIsLocked();
    inline BOOL SiteScaleingInfoAvailable(){
        return m_bSiteScalingInfo;
    }
    

  protected:
    void         _HandleMouseEvent(HXxEvent* pEvent);
    CHXBaseSite* _GetSiteFromPixel(HXxPoint& point);

    virtual void CreateColorAccess(IUnknown* pUnk) {zm_pColorAcc = new ColorFuncAccess(pUnk);}
    
    INT32      m_nTLSMutexLockCount;
    UINT32     m_ulTLSMutexOwningThread;
    HXThread* m_pDummyThread;
    BOOL       m_bMoving;
    BOOL       m_bUserWantsSubRects;
    BOOL       m_bSiteScalingInfo;

};


class BaseSiteCallback : public IHXCallback
{
  public:
    CHXBaseSite*  m_pSite;
    CBaseSurface* m_pSurf;
   
    BaseSiteCallback(CHXBaseSite* pSite);
    ~BaseSiteCallback();
    /*
     *  IUnknown methods
     */
    STDMETHOD(QueryInterface) (THIS_ REFIID riid, void** ppvObj);
    STDMETHOD_(ULONG32,AddRef) (THIS);
    STDMETHOD_(ULONG32,Release) (THIS);

    /*
     *  IHXCallback methods
     */
    STDMETHOD(Func) (THIS);

  protected:

    LONG32 m_lRefCount;
};

class ScrollSiteCallback : public IHXCallback
{
public:
    ScrollSiteCallback(CHXBaseSite* pSite);
    ~ScrollSiteCallback();

    /*
     *  IUnknown methods
     */
    STDMETHOD(QueryInterface) (THIS_ REFIID riid, void** ppvObj);
    STDMETHOD_(ULONG32,AddRef) (THIS);
    STDMETHOD_(ULONG32,Release) (THIS);

    /*
     *  IHXCallback methods
     */
    STDMETHOD(Func) (THIS);
protected:
    LONG32       m_lRefCount;
    CHXBaseSite* m_pSite;
};


#endif /* _BASESITE_H_ */




⌨️ 快捷键说明

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