Esempio n. 1
0
bool MMenuItem::OnEvent(MEvent* pEvent, MListener* pListener)
{
	MRECT r = GetClientRect();
	switch(pEvent->nMessage){
	case MWM_MOUSEMOVE:
	case MWM_LBUTTONDOWN:
	case MWM_RBUTTONDOWN:
	case MWM_LBUTTONDBLCLK:
		if(r.InPoint(pEvent->Pos)==true){
			MPopupMenu* pPopupMenu = (MPopupMenu *)GetParent();
			pPopupMenu->Select(this);
			return true;
		}
		break;
	case MWM_LBUTTONUP:
		if(r.InPoint(pEvent->Pos)==true){
			MPopupMenu* pPopupMenu = (MPopupMenu *)GetParent();
			if(GetSubMenu()!=NULL) pPopupMenu->Select(this);
			else{
				if(pListener!=NULL) pListener->OnCommand(this, GetText());
			}
			return true;
		}
		break;
	case MWM_RBUTTONUP:
		break;
	}
	return false;
}