Example #1
0
//When an event (e.g Click) occurs this method calls functions, via function pointers, that are assigned
//as event handlers
void Control::Update() 
{
	bool oldMouseIn = this->mouseIn;
	bool oldMouseUp = this->mouseUp;
	bool oldPressed = this->pressed;
	SetMouseIn();
	SetMouseUp();
	SetPressed(oldMouseUp);
	SetClicked(oldPressed);
	
	//check for mouse enetering/leaving
	if(oldMouseIn !=this->mouseIn && !this->clicked)
	{
		if(this->mouseIn && MouseEnter)
		{
			MouseEnter();
		}
		else
		{
			if(MouseLeave)
			{
				MouseLeave();
			}
		}
	}
	//check for pressed
	if(this->pressed && Pressed)
	{
		inPress = true;
		Pressed();
	}
	//check for click
	if(this->clicked && Clicked)
	{
		Clicked();
	}
	if(this->mouseUp)
	{
		if(oldMouseUp != this->mouseUp)
		{
			if(MouseUp)
			{
				MouseUp();
			}
			if(inPress && OutOfPress)
			{
				OutOfPress();
				inPress=false;
			}
		}
	}
	
	//loop through all child controls and update
	list<Control*>::iterator i;
	for(i = this->controls.begin(); i != this->controls.end(); i++) 
	{
		(*i)->Update();
	}
}
Example #2
0
//**************************************************************************************************
void LTDrawToolBar::OnMouseLeave()
{
	// TODO: Add your message handler code here and/or call default
	MouseLeave();

	CClientDC dc(this);
	p_PenButton->OnMouseLeave(&dc);
	p_RectButton->OnMouseLeave(&dc);
	p_ArrowButton->OnMouseLeave(&dc);

	__super::OnMouseLeave();
}
Example #3
0
void DisplayPopup::MouseMove(Point p, dword flags)
{
	p += GetScreenView().TopLeft();
	if(!slim.Contains(p))
		MouseLeave();
}