41 lines
		
	
	
		
			725 B
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			41 lines
		
	
	
		
			725 B
		
	
	
	
		
			C++
		
	
	
	
	
	
#ifndef NANA_DETAIL_MSG_PACKET_HPP
 | 
						|
#define NANA_DETAIL_MSG_PACKET_HPP
 | 
						|
#include <X11/Xlib.h>
 | 
						|
#include <vector>
 | 
						|
#include <nana/deploy.hpp>
 | 
						|
#include <nana/filesystem/filesystem.hpp>
 | 
						|
 | 
						|
namespace nana
 | 
						|
{
 | 
						|
namespace detail
 | 
						|
{
 | 
						|
	enum class propagation_chain
 | 
						|
	{
 | 
						|
		exit,	//Exit the chain 
 | 
						|
		stop,	//Stop propagating
 | 
						|
		pass 	//propagate
 | 
						|
	};
 | 
						|
 | 
						|
	struct msg_packet_tag
 | 
						|
	{
 | 
						|
		enum class pkt_family{xevent, mouse_drop, cleanup};
 | 
						|
		pkt_family kind;
 | 
						|
		union
 | 
						|
		{
 | 
						|
			XEvent xevent;
 | 
						|
 | 
						|
			Window packet_window; //Avaiable if the packet is not kind_xevent
 | 
						|
			struct mouse_drop_tag
 | 
						|
			{
 | 
						|
				Window window;
 | 
						|
				int x;
 | 
						|
				int y;
 | 
						|
				std::vector<std::filesystem::path> * files;
 | 
						|
			}mouse_drop;
 | 
						|
		}u;
 | 
						|
	};
 | 
						|
}//end namespace detail
 | 
						|
}//end namespace nana
 | 
						|
#endif
 | 
						|
 |