Beispiel #1
0
void CNotifyPump::NotifyPump(TNotifyUI& msg)
{
	///±éÀúÐéÄâ´°¿Ú
	if( !msg.sVirtualWnd.empty() )
	{
		foreach (auto it, m_VirtualWndMap) 
		{
			std::wstring const& key = it.first;
			if(key == msg.sVirtualWnd)
			{
				CNotifyPump* pObject = it.second;
				if (pObject && pObject->LoopDispatch(msg))
					return;
			}
		}
	IMPL_LUA_FUNC(LuaCNotifyPump, LoopDispatch)
	{
		try
		{
			CNotifyPump* self;
			self = static_cast<CNotifyPump*>(LuaStatic::CheckUserData(l, 1));
			TNotifyUI* pMsg = static_cast<TNotifyUI*>(LuaStatic::CheckUserData(l, 2));
			lua_pushboolean(l, self->LoopDispatch(*pMsg) ? 1 : 0);
			return 1;
		}
		catch(...)
		{
			DuiException(_T("LuaCNotifyPump::LoopDispatch"));
			return 0;
		}
	}
	IMPL_LUA_FUNC(LuaCNotifyPump, NotifyPump)
	{
		try
		{
			CNotifyPump* self;
			self = static_cast<CNotifyPump*>(LuaStatic::CheckUserData(l, 1));
			TNotifyUI* pMsg = static_cast<TNotifyUI*>(LuaStatic::CheckUserData(l, 2));
			self->NotifyPump(*pMsg);
			return 0;
		}
		catch(...)
		{
			DuiException(_T("LuaCNotifyPump::NotifyPump"));
			return 0;
		}
	}
	IMPL_LUA_FUNC(LuaCNotifyPump, RemoveVirtualWnd)
	{
		try
		{
			CNotifyPump* self;
			self = static_cast<CNotifyPump*>(LuaStatic::CheckUserData(l, 1));
			CDuiString pstrText;
			lua_op_t<CDuiString>::lua_to_value(l, 2, pstrText);
			lua_pushboolean(l, self->RemoveVirtualWnd(pstrText) ? 1 : 0);
			return 1;
		}
		catch(...)
		{
			DuiException(_T("LuaCNotifyPump::RemoveVirtualWnd"));
			return 0;
		}
	}
Beispiel #5
0
void CNotifyPump::NotifyPump(TNotifyUI& msg)
{
	///遍历虚拟窗口
	if( !msg.sVirtualWnd.IsEmpty() ){
		for( int i = 0; i< m_VirtualWndMap.GetSize(); i++ ) {
			if( LPCTSTR key = m_VirtualWndMap.GetAt(i) ) {
				if( _tcsicmp(key, msg.sVirtualWnd.GetData()) == 0 ){
					CNotifyPump* pObject = static_cast<CNotifyPump*>(m_VirtualWndMap.Find(key, false));
					if( pObject && pObject->LoopDispatch(msg) )
						return;
				}
			}
		}
	}

	///
	//遍历主窗口
	LoopDispatch( msg );
}
Beispiel #6
0
void CNotifyPump::NotifyPump(TNotifyUI& msg)
{
	///±éÀúÐéÄâ´°¿Ú
	if( !msg.sVirtualWnd.empty() )
    {
        map<string,void*>::iterator it = m_VirtualWndMap.begin();

        for(;it != m_VirtualWndMap.end(); it++)
        {
            if (it->first == msg.sVirtualWnd)
            {
                CNotifyPump* pObject = static_cast<CNotifyPump*>(it->second);
                if( pObject && pObject->LoopDispatch(msg) )
                            return;
            }
        }
	}

	///
	//±éÀúÖ÷´°¿Ú
	LoopDispatch( msg );
}