87 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			C++
		
	
	
	
		
		
			
		
	
	
			87 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			C++
		
	
	
	
|  | #include "..\etools.h"
 | ||
|  | #include "..\Win\winbase.h"
 | ||
|  | #include <vector>
 | ||
|  | 
 | ||
|  | static POINT p; | ||
|  | static e2d::EMouseMsg mouseMsg; | ||
|  | 
 | ||
|  | std::vector<e2d::EMouseListener*> m_vMouseListeners; | ||
|  | 
 | ||
|  | void e2d::EMsgManager::setMouseMsg(UINT message) | ||
|  | { | ||
|  | 	mouseMsg.m_nMsg = message; | ||
|  | 
 | ||
|  | 	switch (message) | ||
|  | 	{ | ||
|  | 	case WM_LBUTTONUP: | ||
|  | 		mouseMsg.m_bLButtonDown = false; | ||
|  | 		break; | ||
|  | 
 | ||
|  | 	case WM_LBUTTONDOWN: | ||
|  | 		mouseMsg.m_bLButtonDown = true; | ||
|  | 		break; | ||
|  | 
 | ||
|  | 	case WM_LBUTTONDBLCLK: | ||
|  | 		mouseMsg.m_bLButtonDown = true; | ||
|  | 		break; | ||
|  | 
 | ||
|  | 	case WM_MBUTTONUP: | ||
|  | 		mouseMsg.m_bMButtonDown = false; | ||
|  | 		break; | ||
|  | 
 | ||
|  | 	case WM_MBUTTONDOWN: | ||
|  | 		mouseMsg.m_bMButtonDown = true; | ||
|  | 		break; | ||
|  | 
 | ||
|  | 	case WM_MBUTTONDBLCLK: | ||
|  | 		mouseMsg.m_bMButtonDown = true; | ||
|  | 		break; | ||
|  | 
 | ||
|  | 	case WM_RBUTTONUP: | ||
|  | 		mouseMsg.m_bRButtonDown = false; | ||
|  | 		break; | ||
|  | 
 | ||
|  | 	case WM_RBUTTONDOWN: | ||
|  | 		mouseMsg.m_bRButtonDown = true; | ||
|  | 		break; | ||
|  | 
 | ||
|  | 	case WM_RBUTTONDBLCLK: | ||
|  | 		mouseMsg.m_bRButtonDown = true; | ||
|  | 		break; | ||
|  | 
 | ||
|  | 	case WM_MOUSEMOVE: | ||
|  | 	{ | ||
|  | 		GetCursorPos(&p); | ||
|  | 		ScreenToClient(GetHWnd(), &p); | ||
|  | 		mouseMsg.m_Pos = p; | ||
|  | 		break; | ||
|  | 	} | ||
|  | 	 | ||
|  | 	case WM_MOUSEWHEEL: | ||
|  | 		break; | ||
|  | 	} | ||
|  | 
 | ||
|  | 	for (auto mlistener : m_vMouseListeners) | ||
|  | 	{ | ||
|  | 		//mlistener->
 | ||
|  | 	} | ||
|  | } | ||
|  | 
 | ||
|  | e2d::EMouseMsg::MESSAGE e2d::EMsgManager::getMouseMsg() | ||
|  | { | ||
|  | 	return e2d::EMouseMsg::MESSAGE(mouseMsg.m_nMsg); | ||
|  | } | ||
|  | 
 | ||
|  | void e2d::EMsgManager::addListener(e2d::EMouseListener * listener) | ||
|  | { | ||
|  | 	if (listener) | ||
|  | 	{ | ||
|  | 		listener->retain(); | ||
|  | 		m_vMouseListeners.push_back(listener); | ||
|  | 	} | ||
|  | } | ||
|  | 
 | ||
|  | void e2d::EMsgManager::__exec() | ||
|  | { | ||
|  | } |