mirror of
https://github.com/gnustep/libs-gui.git
synced 2025-05-31 00:41:05 +00:00
tix tick marks in circular sliders
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gui/trunk@33429 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
parent
8a9f26ceff
commit
d4955c013e
2 changed files with 21 additions and 4 deletions
|
@ -662,13 +662,20 @@ float _floatValueForMousePoint (NSPoint point, NSRect knobRect,
|
|||
return _allowsTickMarkValuesOnly;
|
||||
}
|
||||
|
||||
/* verified on Cocoa that a circular slider with one tick has two values: 0, 50 */
|
||||
- (double) closestTickMarkValueToValue: (double)aValue
|
||||
{
|
||||
double d, f;
|
||||
int effectiveTicks;
|
||||
|
||||
if (_numberOfTickMarks == 0)
|
||||
return aValue;
|
||||
else if (_numberOfTickMarks == 1)
|
||||
|
||||
effectiveTicks = _numberOfTickMarks;
|
||||
if (_type == NSCircularSlider)
|
||||
effectiveTicks++;
|
||||
|
||||
if (effectiveTicks == 1)
|
||||
return (_maxValue + _minValue) / 2;
|
||||
|
||||
if (aValue < _minValue)
|
||||
|
@ -681,8 +688,8 @@ float _floatValueForMousePoint (NSPoint point, NSRect knobRect,
|
|||
}
|
||||
|
||||
d = _maxValue - _minValue;
|
||||
f = ((aValue - _minValue) * (_numberOfTickMarks - 1)) / d;
|
||||
f = ((rint(f) * d) / (_numberOfTickMarks - 1)) + _minValue;
|
||||
f = ((aValue - _minValue) * (effectiveTicks - 1)) / d;
|
||||
f = ((rint(f) * d) / (effectiveTicks - 1)) + _minValue;
|
||||
|
||||
return f;
|
||||
}
|
||||
|
@ -782,7 +789,12 @@ float _floatValueForMousePoint (NSPoint point, NSRect knobRect,
|
|||
if (index <= 0)
|
||||
return _minValue;
|
||||
|
||||
return _minValue + index * (_maxValue - _minValue) / (_numberOfTickMarks - 1);
|
||||
if (_type == NSCircularSlider)
|
||||
return _minValue + index * (_maxValue - _minValue) / _numberOfTickMarks;
|
||||
if (_type == NSLinearSlider)
|
||||
return _minValue + index * (_maxValue - _minValue) / (_numberOfTickMarks - 1);
|
||||
|
||||
return 0.0;
|
||||
}
|
||||
|
||||
- (BOOL) trackMouse: (NSEvent*)theEvent
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue