Beispiel #1
0
void MessagePane::OnActionButton2(wxCommandEvent& event)
{
    MessageDetails msg = m_messages.CurrentMessage();
    SavePreferenceIfNeeded(msg, 2);
    DoPostEvent(msg.btn3);
    DoShowNextMessage();
}
Beispiel #2
0
void IEventQueue::PostEvent(std::shared_ptr<IEvent>&& event)
{
    if (!event)
    {
        std::cerr << "IEventQueue::PostEvent with null event" << std::endl;
        throw EventQueueException("IEventQueue::PostEvent with null event");
    }
    DoPostEvent(event);
}
Beispiel #3
0
void SubscibeCenter::PostEvent( wmp::base::ui16 event_id, char* pData, wmp::base::ui32 len, wmp::base::ui32 delay_times )
{
	if (!delay_times)
	{
		DoPostEvent(event_id, pData, len);
	}
	else
	{
		wmp::base::ui64 tick_count = ::GetTickCount() + delay_times;
		tvecevent& rvecevent = m_delay_event[tick_count];
		rvecevent.push_back(tdelay_event(event_id,pData,len));
	}
}
Beispiel #4
0
void SubscibeCenter::OnTimer( wmp::base::ui32 timer_id, wmp::base::ttime now )
{
	wmp::base::ui64 tick_count = ::GetTickCount();
	
	std::list<wmp::base::ui64> lstremove;
	for(tmap_tickcount2event::iterator it = m_delay_event.begin(); it != m_delay_event.end(); ++it)
	{
		if ( it->first < tick_count )
		{
			break;
		}
		tvecevent& rvecenent = it->second;
		for(tvecevent::iterator itevt = rvecenent.begin(); itevt != rvecenent.end(); ++itevt)
		{
			DoPostEvent((*itevt).event_id, (*itevt).pData, (*itevt).len);
		}
		lstremove.push_back(it->first);
	}
	for(std::list<wmp::base::ui64>::iterator it = lstremove.begin(); it != lstremove.end(); ++it)
	{
		m_delay_event.erase(*it);
	}
}