예제 #1
0
void EventSystem::Update()
{
	for (int i = 0; i < delay_event_list_.size(); ++i)
	{
		HandleOneEvent(delay_event_list_[i].key, delay_event_list_[i].param);
	}

	if (delay_event_list_.size())
	{
		delay_event_list_.clear();
	}
}
예제 #2
0
void EventSystem::SendEvent( char *key, bool immediately /*= true*/ )
{
	EventMap::iterator it = all_events_handle_.find(key);
	if (it != all_events_handle_.end())
	{
		if (immediately)
		{
			HandleOneEvent(std::string(key), nullptr);
		}
		else
		{
			delay_event ev;
			ev.key = key;
			delay_event_list_.push_back(ev);
		}
	}
}
예제 #3
0
void EventSystem::SendEvent( std::string key, ParamBase* param, bool immediately /*= true*/ )
{
	EventMap::iterator it = all_events_handle_.find(key);
	if (it != all_events_handle_.end())
	{
		if (immediately)
		{
			HandleOneEvent(key, param);
		}
		else
		{
			delay_event ev;
			ev.key = key;
			ev.param = param;
			delay_event_list_.push_back(ev);
		}
	}
}
예제 #4
0
void
JXApplication::Run()
{
	while (1)
		{
		HandleOneEvent();

		if (itsRequestQuitFlag || !HasSubdirectors())
			{
			itsRequestQuitFlag = kJTrue;
			if (Close())
				{
				break;		// we have been deleted
				}
			else
				{
				itsRequestQuitFlag = kJFalse;
				}
			}
		}
}