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

📄 basesite.cpp

📁 著名的 helix realplayer 基于手机 symbian 系统的 播放器全套源代码
💻 CPP
📖 第 1 页 / 共 5 页
字号:
    {
	m_ChildrenInZOrder.AddTail((void*)pUpdatedChildSite);
	pUpdatedChildSite->SetInternalZOrder(newZOrder++);
    }

    HX_ASSERT((newZOrder == m_ChildrenInZOrder.GetCount()) &&
		(m_ChildrenInZOrder.GetCount() == m_ChildrenMap.GetCount()));
}

/************************************************************************
 *  Method:
 *    IHXSite2::SetZOrder
 */
STDMETHODIMP CHXBaseSite::SetZOrder(INT32 lZOrder)
{
    if(!m_pParentSite)
    {
        return HXR_UNEXPECTED;
    }

    _TLSLock();

    if (lZOrder == -1)
    {
        lZOrder = m_pParentSite->GetNumberOfChildSites() - 1;
    }

    if (lZOrder >= (INT32) m_pParentSite->GetNumberOfChildSites())
    {
        lZOrder = m_pParentSite->GetNumberOfChildSites() - 1;
    }

    if (m_lZOrder != lZOrder)
    {
        m_pParentSite->UpdateZOrder(this, m_lZOrder, lZOrder);
        //Invalidate the rect....
        if( m_pTopLevelSite )
        {
            HXxRect pTmp = { m_topleft.x,
                             m_topleft.y,
                             m_topleft.x+m_size.cx,
                             m_topleft.y+m_size.cy};
            m_pTopLevelSite->_RecursiveDamageRect( &pTmp, TRUE );
        }
    }

    if( this == m_pTopLevelSite)
    {
        RecomputeClip();
    }
    else
    {
        if (m_pTopLevelSite)
            m_pTopLevelSite->ScheduleCallback(CLIP, 0);
    }

    _TLSUnlock();
    return HXR_OK;
}

/************************************************************************
 *  Method:
 *    IHXSite2::GetZOrder
 */
STDMETHODIMP CHXBaseSite::GetZOrder(REF(INT32) lZOrder)
{
    lZOrder = m_lZOrder;
    HX_ASSERT(m_lZOrder> -1 && m_lZOrder< 2000);
    return HXR_OK;
}

/************************************************************************
 *  Method:
 *    IHXSite2::MoveSiteToTop
 */
STDMETHODIMP CHXBaseSite::MoveSiteToTop()
{
    SetZOrder(-1); //-1 means the top.
    return HXR_OK;
}

//IHXSubRectSite::GetSubRectVideoSurface()
STDMETHODIMP CHXBaseSite::GetSubRectVideoSurface( REF(IHXSubRectVideoSurface*) pSurface )
{
    HX_RESULT res = HXR_FAIL;

    if (m_pVideoSurface)
    {
        res = m_pVideoSurface->QueryInterface(IID_IHXSubRectVideoSurface,
                                              (void**)&pSurface);
    }
    return res;
}

/************************************************************************
 *  Method:
 *    IHXSite2::GetVideoSurface
 */
STDMETHODIMP CHXBaseSite::GetVideoSurface(REF(IHXVideoSurface*) pSurface)
{
    HX_RESULT res = HXR_FAIL;

    if (m_pVideoSurface)
    {
        res = m_pVideoSurface->QueryInterface(IID_IHXVideoSurface,
                                              (void**)&pSurface);
    }

    return res;
}

/************************************************************************
 *  Method:
 *    IHXSite2::GetNumberOfChildSites
 */
STDMETHODIMP_(UINT32) CHXBaseSite::GetNumberOfChildSites()
{
    HX_ASSERT( m_ChildrenInZOrder.GetCount() == m_ChildrenMap.GetCount() );
    return (UINT32)m_ChildrenMap.GetCount();
}

/************************************************************************
 *  Method:
 *    IHXSite2::AddPassiveSiteWatcher
 */
STDMETHODIMP CHXBaseSite::AddPassiveSiteWatcher(IHXPassiveSiteWatcher* pWatcher)
{
    pWatcher->AddRef();
    m_PassiveSiteWatchers.AddTail(pWatcher);
    return HXR_OK;
}

/************************************************************************
 *  Method:
 *    IHXSite2::RemovePassiveSiteWatcher
 */
STDMETHODIMP CHXBaseSite::RemovePassiveSiteWatcher(IHXPassiveSiteWatcher* pWatcher)
{
    // iterate child site list
    IHXPassiveSiteWatcher* pThisWatcher = NULL;
    LISTPOSITION pPos = m_PassiveSiteWatchers.Find(pWatcher);
    HX_RESULT retVal = HXR_FAIL;

    if (pPos)
    {
        m_PassiveSiteWatchers.RemoveAt(pPos);
        HX_RELEASE(pWatcher);
        retVal = HXR_OK;
    }

    return retVal;
}

#if defined(_DEBUG) && !defined(_MACINTOSH) && !defined(_MAC_UNIX)
void _PrintKeyboardEventInfo(HXxEvent* pEvent )
{
    char szBuff[256]; /* Flawfinder: ignore */

    if( pEvent->event == HX_CHAR )
        _DumpString( "HX_CHAR     " );
    if( pEvent->event == HX_KEY_DOWN )
        _DumpString( "HX_KEY_DOWN " );
    if( pEvent->event == HX_KEY_UP )
        _DumpString( "HX_KEY_UP   " );

    if( ((UINT32)pEvent->param2)&HX_VIRTUAL_KEY_MASK )
    {
        _DumpString( " key: " );

        switch((UINT32)pEvent->param1 )
        {
           case HX_VK_LBUTTON       :
               _DumpString( "HX_VK_LBUTTON   ");
               break;
           case HX_VK_RBUTTON       :
               _DumpString( "HX_VK_RBUTTON   ");
               break;
           case HX_VK_CANCEL        :
               _DumpString( "HX_VK_CANCEL    ");
               break;
           case HX_VK_MBUTTON       :
               _DumpString( "HX_VK_MBUTTON   ");
               break;
           case HX_VK_BACK          :
               _DumpString( "HX_VK_BACK      ");
               break;
           case HX_VK_TAB           :
               _DumpString( "HX_VK_TAB       ");
               break;
           case HX_VK_CLEAR         :
               _DumpString( "HX_VK_CLEAR     ");
               break;
           case HX_VK_RETURN        :
               _DumpString( "HX_VK_RETURN    ");
               break;
           case HX_VK_SHIFT         :
               _DumpString( "HX_VK_SHIFT     ");
               break;
           case HX_VK_CONTROL       :
               _DumpString( "HX_VK_CONTROL   ");
               break;
           case HX_VK_MENU          :
               _DumpString( "HX_VK_MENU      ");
               break;
           case HX_VK_PAUSE         :
               _DumpString( "HX_VK_PAUSE     ");
               break;
           case HX_VK_CAPITAL       :
               _DumpString( "HX_VK_CAPITAL   ");
               break;
           case HX_VK_ESCAPE        :
               _DumpString( "HX_VK_ESCAPE    ");
               break;
           case HX_VK_SPACE         :
               _DumpString( "HX_VK_SPACE     ");
               break;
           case HX_VK_PRIOR         :
               _DumpString( "HX_VK_PRIOR     ");
               break;
           case HX_VK_NEXT          :
               _DumpString( "HX_VK_NEXT      ");
               break;
           case HX_VK_END           :
               _DumpString( "HX_VK_END       ");
               break;
           case HX_VK_HOME          :
               _DumpString( "HX_VK_HOME      ");
               break;
           case HX_VK_LEFT          :
               _DumpString( "HX_VK_LEFT      ");
               break;
           case HX_VK_UP            :
               _DumpString( "HX_VK_UP        ");
               break;
           case HX_VK_RIGHT         :
               _DumpString( "HX_VK_RIGHT     ");
               break;
           case HX_VK_DOWN          :
               _DumpString( "HX_VK_DOWN      ");
               break;
           case HX_VK_SELECT        :
               _DumpString( "HX_VK_SELECT    ");
               break;
           case HX_VK_EXECUTE       :
               _DumpString( "HX_VK_EXECUTE   ");
               break;
           case HX_VK_SNAPSHOT      :
               _DumpString( "HX_VK_SNAPSHOT  ");
               break;
           case HX_VK_INSERT        :
               _DumpString( "HX_VK_INSERT    ");
               break;
           case HX_VK_DELETE        :
               _DumpString( "HX_VK_DELETE    ");
               break;
           case HX_VK_HELP          :
               _DumpString( "HX_VK_HELP      ");
               break;
           case HX_VK_LWIN          :
               _DumpString( "HX_VK_LWIN      ");
               break;
           case HX_VK_RWIN          :
               _DumpString( "HX_VK_RWIN      ");
               break;
           case HX_VK_APPS          :
               _DumpString( "HX_VK_APPS      ");
               break;
           case HX_VK_NUMPAD0       :
               _DumpString( "HX_VK_NUMPAD0   ");
               break;
           case HX_VK_NUMPAD1       :
               _DumpString( "HX_VK_NUMPAD1   ");
               break;
           case HX_VK_NUMPAD2       :
               _DumpString( "HX_VK_NUMPAD2   ");
               break;
           case HX_VK_NUMPAD3       :
               _DumpString( "HX_VK_NUMPAD3   ");
               break;
           case HX_VK_NUMPAD4       :
               _DumpString( "HX_VK_NUMPAD4   ");
               break;
           case HX_VK_NUMPAD5       :
               _DumpString( "HX_VK_NUMPAD5   ");
               break;
           case HX_VK_NUMPAD6       :
               _DumpString( "HX_VK_NUMPAD6   ");
               break;
           case HX_VK_NUMPAD7       :
               _DumpString( "HX_VK_NUMPAD7   ");
               break;
           case HX_VK_NUMPAD8       :
               _DumpString( "HX_VK_NUMPAD8   ");
               break;
           case HX_VK_NUMPAD9       :
               _DumpString( "HX_VK_NUMPAD9   ");
               break;
           case HX_VK_MULTIPLY      :
               _DumpString( "HX_VK_MULTIPLY  ");
               break;
           case HX_VK_ADD           :
               _DumpString( "HX_VK_ADD       ");
               break;
           case HX_VK_SEPARATOR     :
               _DumpString( "HX_VK_SEPARATOR ");
               break;
           case HX_VK_SUBTRACT      :
               _DumpString( "HX_VK_SUBTRACT  ");
               break;
           case HX_VK_DECIMAL       :
               _DumpString( "HX_VK_DECIMAL   ");
               break;
           case HX_VK_DIVIDE        :
               _DumpString( "HX_VK_DIVIDE    ");
               break;
           case HX_VK_F1            :
               _DumpString( "HX_VK_F1        ");
               break;
           case HX_VK_F2            :
               _DumpString( "HX_VK_F2        ");
               break;
           case HX_VK_F3            :
               _DumpString( "HX_VK_F3        ");
               break;
           case HX_VK_F4            :
               _DumpString( "HX_VK_F4        ");
               break;
           case HX_VK_F5            :
               _DumpString( "HX_VK_F5        ");
               break;
           case HX_VK_F6            :
               _DumpString( "HX_VK_F6        ");
               break;
           case HX_VK_F7            :
               _DumpString( "HX_VK_F7        ");
               break;
           case HX_VK_F8            :
               _DumpString( "HX_VK_F8        ");
               break;
           case HX_VK_F9            :
               _DumpString( "HX_VK_F9        ");
               break;
           case HX_VK_F10           :
               _DumpString( "HX_VK_F10       ");
               break;
           case HX_VK_F11           :
               _DumpString( "HX_VK_F11       ");
               break;
           case HX_VK_F12           :
               _DumpString( "HX_VK_F12       ");
               break;
           case HX_VK_F13           :
               _DumpString( "HX_VK_F13       ");
               break;
           case HX_VK_F14           :
               _DumpString( "HX_VK_F14       ");
               break;
           case HX_VK_F15           :
               _DumpString( "HX_VK_F15       ");
               break;
           case HX_VK_F16           :
               _DumpString( "HX_VK_F16       ");
               break;
           case HX_VK_F17           :
               _DumpString( "HX_VK_F17       ");
               break;
           case HX_VK_F18           :
               _DumpString( "HX_VK_F18       ");
               break;
           case HX_VK_F19           :
               _DumpString( "HX_VK_F19       ");
               break;
           case HX_VK_F20           :
               _DumpString( "HX_VK_F20       ");
               break;
           case HX_VK_F21           :
               _DumpString( "HX_VK_F21       ");
               break;
           case HX_VK_F22           :
               _DumpString( "HX_VK_F22       ");
               break;
           case HX_VK_F23           :
               _DumpString( "HX_VK_F23       ");
               break;
           case HX_VK_F24           :
               _DumpString( "HX_VK_F24       ");
               break;
           case HX_VK_NUMLOCK       :
               _DumpString( "HX_VK_NUMLOCK   ");
               break;
           case HX_VK_SCROLL        :
               _DumpString( "HX_VK_SCROLL    ");
               break;
           default:
               _DumpString( " !! UNKOWN VIRTUAL !! " );
        }
    }
    else
    {
        sprintf( szBuff, " key: \"%c\" (%d) ", pEvent->param1, pEvent->param1 ); /* Flawfinder: ignore */
        _DumpString( szBuff );
    }
    sprintf( szBuff, "scancode: %d flags: ", ((UINT32)pEvent->param2)&0x000000ff ); /* Flawfinder: ignore */
    _DumpString( szBuff );

    if( (UINT32)pEvent->param2 & HX_VIRTUAL_KEY_MASK )
        _DumpString( "VirtualKey " );
    if( (UINT32)pEvent->param2 & HX_EXTENDED_KEY_MASK )
        _DumpString( "ExtendedKey " );
    if( (UINT32)pEvent->param2 & HX_SHIFT_MASK )
        _DumpString( "ShiftKey " );
    if( (UINT32)pEvent->param2 & HX_CTRL_MASK )
        _DumpString( "ControlKey " );
    if( (UINT32)pEvent->param2 & HX_ALT_MASK )
        _DumpString( "AltKey " );
    if( (UINT32)pEvent->param2 & HX_CAPS_LOCK_MASK )
        _DumpString( "CapsLock " );
    if( (UINT32)pEvent->param2 & HX_NUM_LOCK_MASK )
        _DumpString( "NumLock " );
    if( (UINT32)pEvent->param2 & HX_SCROLL_LOCK_MASK )
        _DumpString( "ScrollLock " );
    _DumpString( "\n" );
}
#endif


CHXBaseSite* CHXBaseSite::_GetSiteFromPixel(HXxPoint& point)
{
    CHXBaseSite* pRet = this;

    if( (  m_bSiteNeverBlts ||
           m_nEventSensitivity == SENSITIVITY_TRANSPARENT ||
           ( m_pVideoSurface &&
             m_pVideoSurface->IsPixelTransparent(point, m_nEventSensitivity)
             )
           ) &&
        !(m_nEventSensitivity == SENSITIVITY_OPAQUE )
        )
    {
        //Now go through all the al

⌨️ 快捷键说明

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