#ifndef __SFJP_MYU__AGH_EVENTS_H__
#define __SFJP_MYU__AGH_EVENTS_H__

#define _AGH_EVENT_ACCESS_MODIFIER public

//	Mouse Event
class CMouseEventBase{
_AGH_EVENT_ACCESS_MODIFIER:
	//	左クリック系 : Left Click Events
	virtual void OnLButtonClick(int x, int y){}
	virtual void OnLButtonDblClk(int x, int y){}
	virtual void OnLButtonDown(int x, int y){}
	virtual void OnLButtonUp(int x, int y){}
	virtual void OnLButtonDowning(int x, int y){}

	//	右クリック系 : Right Click Events
	virtual void OnRButtonClick(int x, int y){}
	virtual void OnRButtonDblClk(int x, int y){}
	virtual void OnRButtonDown(int x, int y){}
	virtual void OnRButtonUp(int x, int y){}
	virtual void OnRButtonDowning(int x, int y){}

	//	真中クリック系 : Center(Wheel) Click Events
	virtual void OnCButtonClick(int x, int y){}
	virtual void OnCButtonDblClk(int x, int y){}
	virtual void OnCButtonDown(int x, int y){}
	virtual void OnCButtonUp(int x, int y){}
	virtual void OnCButtonDowning(int x, int y){}
	/*virtual void OnMButtonClick(int x, int y){}
	virtual void OnMButtonDblClk(int x, int y){}
	virtual void OnMButtonDown(int x, int y){}
	virtual void OnMButtonUp(int x, int y){}*/

	//	マウス移動 : Move Mouse Events
	virtual void OnMouseMove(int nPosX, int nPosY, int nMoveX, int nMoveY){}

	//	ホイール : Wheel Events
	virtual void OnWheelUp(int count){}
	virtual void OnWheelDown(int count){}




	///////////////////////////////////////////////////////////
	
	//	多分Outer要らない気がする・・・

	///////////////////////////////////////////////////////////

	//	左クリック系 : Left Click Events
	virtual void OnLButtonClickOuter(int x, int y){}
	virtual void OnLButtonDblClkOuter(int x, int y){}
	virtual void OnLButtonDownOuter(int x, int y){}
	virtual void OnLButtonUpOuter(int x, int y){}

	//	右クリック系 : Right Click Events
	virtual void OnRButtonClickOuter(int x, int y){}
	virtual void OnRButtonDblClkOuter(int x, int y){}
	virtual void OnRButtonDownOuter(int x, int y){}
	virtual void OnRButtonUpOuter(int x, int y){}

	//	真中クリック系 : Center(Wheel) Click Events
	virtual void OnCButtonClickOuter(int x, int y){}
	virtual void OnCButtonDblClkOuter(int x, int y){}
	virtual void OnCButtonDownOuter(int x, int y){}
	virtual void OnCButtonUpOuter(int x, int y){}
	/*virtual void OnMButtonClickOuter(int x, int y){}
	virtual void OnMButtonDblClkOuter(int x, int y){}
	virtual void OnMButtonDownOuter(int x, int y){}
	virtual void OnMButtonUpOuter(int x, int y){}*/

	//	マウス移動 : Move Mouse Events
	virtual void OnMouseMoveOuter(int nPosX, int nPosY, int nMoveX, int nMoveY){}

	//	ホイール : Wheel Events
	virtual void OnWheelUpOuter(int count){}
	virtual void OnWheelDownOuter(int count){}
};
class COtherEventBase{
_AGH_EVENT_ACCESS_MODIFIER:
};
class COtherVisualEventBase{
_AGH_EVENT_ACCESS_MODIFIER:
	virtual void OnPaint(){}
};

#endif//__SFJP_MYU__AGH_EVENTS_H__
