bool Slider::mouseButtonEvent(const Vector2i &p, int /* button */, bool down, int /* modifiers */) { if (!mEnabled) return false; mValue = std::min(std::max((p.x() - mPos.x()) / (float) mSize.x(), (float) 0.0f), (float) 1.0f); if (mCallback) mCallback(mValue); if (mFinalCallback && !down) mFinalCallback(mValue); return true; }
bool Slider::mouseButtonEvent(const Vector2i &p, int /* button */, bool down, int /* modifiers */) { if (!mEnabled) return false; const float kr = (int) (mSize.y() * 0.4f), kshadow = 3; const float startX = kr + kshadow + mPos.x() - 1; const float widthX = mSize.x() - 2 * (kr + kshadow); float value = (p.x() - startX) / widthX; value = value * (mRange.second - mRange.first) + mRange.first; mValue = std::min(std::max(value, mRange.first), mRange.second); if (mCallback) mCallback(mValue); if (mFinalCallback && !down) mFinalCallback(mValue); return true; }