Exemplo n.º 1
0
void GUIButton::MouseUp(const Vec2f &MousePos, GUIController &Parent)
{
    if(_Pressed)
    {
        _Pressed = false;
        if(_Dimensions.ContainsPt(MousePos))
        {
            Parent.AddEvent(GUIEvent(this, GUIEventButtonPressed, _ButtonPressEventId));
        }
    }
}
void GUICheckBox::checkMouseEvents(MouseEvent &newEvent, int extraInfo, bool bits)
{
  GUIRectangle::checkMouseEvents(newEvent, extraInfo, true);
  GUIEventListener *eventsListener = getEventsListener();
  
  if (clicked)
  {
    setChecked(!checked);
    if (eventsListener)
      eventsListener->actionPerformed(GUIEvent(this));
  }
  released = false;
  clicked  = false;
}
Exemplo n.º 3
0
void GUIRectangle::checkMouseEvents(MouseEvent &newEvent, int extraInfo, bool bits)
{
  GUIEventListener *eventsListener = getEventsListener();
  bool              nRelease = pressed;

  mouseOver  = (newEvent.getY() >= windowBounds.y) &&
               (newEvent.getY() <= windowBounds.w) &&
               (newEvent.getX() >= windowBounds.x) &&
               (newEvent.getX() <= windowBounds.z);


  if(!mouseOver)
  {
    pressed = (extraInfo == RELEASED) ? false : pressed;
    if(extraInfo == PRESSED || extraInfo == RELEASED)  focused = false;
    return;
  }

  if(extraInfo == RELEASED && (lastAction == CLICKED || pressed))
  {
    clicked = true;
    pressed = false;
  }

  if(clicked) 
    focused = true;

  if(extraInfo == CLICKED)
    pressed = true;

  lastAction = extraInfo;
  released   = !pressed && nRelease;

  if(eventsListener && eventDetected()){
    GUIEvent event = GUIEvent(this);
    eventsListener->actionPerformed(event);
  }

  if(!bits)
  {
    released = false;
    clicked  = false;
  }
}