Exemplo n.º 1
0
	//************************************
	// 函数名称: operator-=
	// 返回类型: void
	// 参数信息: const CDuiTimerBase * _DuiTimer
	// 函数说明: 
	//************************************
	void CTimerSource::operator-= (const CDuiTimerBase* _DuiTimer) 
	{
		if(!_DuiTimer)
			return;

		for( int i = 0; i < m_aDuiTimers.GetSize(); i++ ) {
			CDuiTimerBase* pDuiTimer = static_cast<CDuiTimerBase*>(m_aDuiTimers[i]);
			if( pDuiTimer && (pDuiTimer->Equals(*_DuiTimer) || pDuiTimer == _DuiTimer)) {
				delete pDuiTimer;
				m_aDuiTimers.Remove(i);
				break;
			}
		}
		delete _DuiTimer;
		_DuiTimer = NULL;
	}
Exemplo n.º 2
0
	void CTimerSource::operator+= (CDuiTimerBase* _DuiTimer)
	{ 
		if(!_DuiTimer)
			return;

		for( int i = 0; i < m_aDuiTimers.GetSize(); i++ ) {
			CDuiTimerBase* pDuiTimer = static_cast<CDuiTimerBase*>(m_aDuiTimers[i]);
			if(pDuiTimer == _DuiTimer)
				return;

			if( pDuiTimer && pDuiTimer->Equals(*_DuiTimer)){
				m_aDuiTimers.Remove(i);
				delete pDuiTimer;
			}
		}

		m_aDuiTimers.Add(_DuiTimer);
		if(_DuiTimer->GetAutoStart())
			_DuiTimer->SetDuiTimer();
	}
Exemplo n.º 3
0
	void CTimerSource::operator+= (const CDuiTimerBase& _DuiTimer)
	{ 
		for( int i = 0; i < m_aDuiTimers.GetSize(); i++ ) {
			CDuiTimerBase* pDuiTimer = static_cast<CDuiTimerBase*>(m_aDuiTimers[i]);
			if( pDuiTimer && pDuiTimer->Equals(_DuiTimer) )
				return;
		}

		CDuiTimerBase* pDuiTimer = _DuiTimer.Copy();
		m_aDuiTimers.Add(pDuiTimer);
		if(pDuiTimer->GetAutoStart())
			pDuiTimer->SetDuiTimer();
	}
Exemplo n.º 4
0
	bool CDuiTimerBase::Equals( const CDuiTimerBase& rhs ) const
	{
		if(m_pObject != rhs.GetObj())
			return false;
		else if(m_pFun != rhs.GetFun())
			return false;
		else if(m_pParam != rhs.GetParam())
			return false;
		else if(m_iInterval != rhs.GetInterval())
			return false;
		else if(m_iTotalTimer != rhs.GetTotalTimer())
			return false;
		else if(m_hWnd != rhs.GetHwnd())
			return false;
		else if(m_lParam != rhs.GetLParam())
			return false;
		else if(m_wParam != rhs.GetWParam())
			return false;

		return true;
	}
Exemplo n.º 5
0
	CDuiTimerBase::CDuiTimerBase( const CDuiTimerBase& rhs )
	{
		m_pObject		= rhs.GetObj();
		m_pFun			= rhs.GetFun();
		m_pParam		= rhs.GetParam();
		m_iCurTimer		= rhs.GetCurTimer();
		m_iInterval		= rhs.GetInterval();
		m_iTotalTimer	= rhs.GetTotalTimer();
		m_uTimerID		= rhs.GetTimerID();
		m_uTimerAccuracy= rhs.GetTimerAccuracy();
		m_hWnd			= rhs.GetHwnd();
		m_lParam		= rhs.GetLParam();
		m_wParam		= rhs.GetWParam();
		m_bAutoStart	= rhs.GetAutoStart();
		m_bLoop			= rhs.IsLoop();
		m_bReverse		= rhs.IsRevers();
		m_bInverted		= rhs.IsInverted();
	}
Exemplo n.º 6
0
	static void CALLBACK TimerProc(UINT uTimerID, UINT uMsg, DWORD_PTR dwUser, DWORD_PTR dw1, DWORD_PTR dw2)
	{
		CDuiTimerBase* pTimerUI = (CDuiTimerBase*)dwUser;

		if(!pTimerUI){
			timeKillEvent(uTimerID);
			timeEndPeriod(uMsg);
			return;
		}

		if(pTimerUI->GetObj() && pTimerUI->GetFun() && pTimerUI->GetParam() )
			pTimerUI->OnTimer(pTimerUI,pTimerUI->GetParam());
		else if(pTimerUI->GetHwnd() || pTimerUI->GetLParam())
			pTimerUI->OnTimer(pTimerUI,pTimerUI->GetHwnd(),pTimerUI->GetLParam(),pTimerUI->GetWParam());
		else
			pTimerUI->OnTimer(pTimerUI);

		pTimerUI->CalInterval();

		if(pTimerUI->FinshTimered()){
			pTimerUI->KillDuiTimer();
		}
	}
Exemplo n.º 7
0
	static void CALLBACK TimerWndProc(HWND hwnd,UINT uMsg,UINT_PTR idEvent,DWORD dwTimer)
	{
		CDuiTimerBase* pTimerUI = (CDuiTimerBase*)idEvent;

		if(!pTimerUI)
			return;

		if(pTimerUI->GetObj() && pTimerUI->GetFun() && pTimerUI->GetParam() )
			pTimerUI->OnTimer(pTimerUI,pTimerUI->GetParam());
		else if(pTimerUI->GetHwnd() || pTimerUI->GetLParam())
			pTimerUI->OnTimer(pTimerUI,pTimerUI->GetHwnd(),pTimerUI->GetLParam(),pTimerUI->GetWParam());
		else
			pTimerUI->OnTimer(pTimerUI);

		pTimerUI->CalInterval();

		if(pTimerUI->FinshTimered()){
			pTimerUI->KillDuiTimer();
		}
	}