📄 basesite.cpp
字号:
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 * and * IHXSiteTreeNavigation::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" );}#endifCHXBaseSite* 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 alphablend regions and see who this //pixel belongs to. CHXMapPtrToPtr::Iterator i = m_AlphaBlendSites.Begin(); for( ; i!=m_AlphaBlendSites.End() ; ++i) { CHXBaseSite* pSite = (CHXBaseSite*) i.get_key(); HXREGION* pRegion = (HXREGION*)*i; if( HXPointInRegion( pRegion, point.x, point.y ) ) { pRet=pSite->_GetSiteFromPixel(point); break; } } //If we are transparent here we MUST be blending with someone. HX_ASSERT( this!=pRet); } return pRet;}/************************************************************************ * Method: * IHXSiteWindowless::EventOccurred */STDMETHODIMP CHXBaseSite::EventOccurred(HXxEvent* /*IN*/ pEvent){ HX_RESULT hr = HXR_OK; CHXMapPtrToPtr::Iterator i; HXxEvent event; if( NULL == pEvent ) { return HXR_OK; } memcpy(&event, pEvent, sizeof(HXxEvent)); /* Flawfinder: ignore */ AddRef(); if(!_HandleOSEvents(pEvent) && !_ConvertToHXEvent(pEvent) ) { if( _ConvertToHXEvent(pEvent)) { Release();
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -