46 lines
		
	
	
		
			1004 B
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			46 lines
		
	
	
		
			1004 B
		
	
	
	
		
			C++
		
	
	
	
	
	
#include <nana/gui/detail/events_operation.hpp>
 | 
						|
 | 
						|
namespace nana
 | 
						|
{
 | 
						|
	namespace detail
 | 
						|
	{
 | 
						|
		//class events_operation
 | 
						|
			typedef std::lock_guard<std::recursive_mutex> lock_guard;
 | 
						|
 | 
						|
			void events_operation::make(window wd, const std::shared_ptr<general_events>& sp)
 | 
						|
			{
 | 
						|
				lock_guard lock(mutex_);
 | 
						|
				evt_table_[wd] = sp;
 | 
						|
			}
 | 
						|
 | 
						|
			void events_operation::umake(window wd)
 | 
						|
			{
 | 
						|
				lock_guard lock(mutex_);
 | 
						|
				evt_table_.erase(wd);
 | 
						|
			}
 | 
						|
 | 
						|
			void events_operation::register_evt(event_handle evt)
 | 
						|
			{
 | 
						|
				lock_guard lock(mutex_);
 | 
						|
				register_.insert(evt);
 | 
						|
			}
 | 
						|
 | 
						|
			void events_operation::cancel(event_handle evt)
 | 
						|
			{
 | 
						|
				lock_guard lock(mutex_);
 | 
						|
				register_.erase(evt);
 | 
						|
			}
 | 
						|
 | 
						|
			void events_operation::erase(event_handle evt)
 | 
						|
			{
 | 
						|
				lock_guard lock(mutex_);
 | 
						|
 | 
						|
				auto i = register_.find(evt);
 | 
						|
				if (i != register_.end())
 | 
						|
				{
 | 
						|
					reinterpret_cast<detail::docker_interface*>(evt)->get_event()->remove(evt);
 | 
						|
				}
 | 
						|
			}
 | 
						|
		//end namespace events_operation
 | 
						|
	}//end namespace detail
 | 
						|
}//end namespace nana
 |