📄 basesite.cpp
字号:
{
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 + -