/** * Sets the button as the pressed button if it's part of a group. * @param action Pointer to an action. * @param state State that the action handlers belong to. */ void TextButton::mousePress(Action *action, State *state) { if (action->getDetails()->button.button == SDL_BUTTON_LEFT && _group != 0) { TextButton *old = *_group; *_group = this; if (old != 0) old->draw(); draw(); } if (isButtonHandled(action->getDetails()->button.button)) { if (soundPress != 0 && _group == 0 && action->getDetails()->button.button != SDL_BUTTON_WHEELUP && action->getDetails()->button.button != SDL_BUTTON_WHEELDOWN) { soundPress->play(Mix_GroupAvailable(0)); } if (_comboBox) { _comboBox->toggle(); } draw(); //_redraw = true; } InteractiveSurface::mousePress(action, state); }
/* * Sets the button as the released button if it's part of a group. * @param action Pointer to an action. * @param state State that the action handlers belong to. */ void BattlescapeButton::mouseRelease(Action *action, State *state) { if (_inverted && isButtonHandled(action->getDetails()->button.button)) { _inverted = false; } InteractiveSurface::mouseRelease(action, state); }
/** * Sets the button as the released button. * @param action Pointer to an action. * @param state State that the action handlers belong to. */ void TextButton::mouseRelease(Action *action, State *state) { if (isButtonHandled(action->getDetails()->button.button)) { draw(); //_redraw = true; } InteractiveSurface::mouseRelease(action, state); }
/** * Sets the button as the pressed button if it's part of a group, * and inverts the colors when pressed. * @param action Pointer to an action. * @param state State that the action handlers belong to. */ void ImageButton::mousePress(Action *action, State *state) { if (_group != 0) { if (action->getDetails()->button.button == SDL_BUTTON_LEFT) { (*_group)->invert((*_group)->getColor() + 3); *_group = this; invert(_color + 3); } } else if (!_inverted && isButtonPressed() && isButtonHandled(action->getDetails()->button.button)) { _inverted = true; invert(_color + 3); } InteractiveSurface::mousePress(action, state); }
/** * Sets the button as the pressed button if it's part of a group, * and inverts the colors when pressed. * @param action Pointer to an action. * @param state State that the action handlers belong to. */ void BattlescapeButton::mousePress(Action *action, State *state) { if (_group != 0) { if (action->getDetails()->button.button == SDL_BUTTON_LEFT) { (*_group)->toggle(false); *_group = this; _inverted = true; } } else if ((_tftdMode || _toggleMode == INVERT_CLICK ) && !_inverted && isButtonPressed() && isButtonHandled(action->getDetails()->button.button)) { _inverted = true; } InteractiveSurface::mousePress(action, state); }