/usr/share/SuperCollider/SCClassLibrary/QtCollider/QRangeSlider.sc is in supercollider-common 1:3.6.3~repack-5.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 | QRangeSlider : QAbstractStepValue {
*qtClass { ^'QcRangeSlider' }
*new { arg parent, bounds;
^super.new( parent, bounds ).initQRangeSlider( bounds );
}
initQRangeSlider { arg bounds;
var r;
if( bounds.notNil ) {
r = bounds.asRect;
if( r.width > r.height ) {
this.orientation_( \horizontal );
} {
this.orientation_( \vertical );
}
}
}
pixelStep {
// FIXME for now we are using step instead
^this.step;
}
orientation_ { arg aSymbol;
this.setProperty( \orientation, QOrientation(aSymbol) );
}
lo {
^this.getProperty( \loValue );
}
lo_ { arg aFloat;
this.setProperty( \loValue, aFloat );
}
activeLo_ { arg aFloat;
this.lo_(aFloat);
this.doAction;
}
hi {
^this.getProperty( \hiValue );
}
hi_ { arg aFloat;
this.setProperty( \hiValue, aFloat );
}
activeHi_ { arg aFloat;
this.hi_(aFloat);
this.doAction;
}
range {
^(this.hi - this.lo);
}
range_ { arg aFloat;
this.hi_( this.lo + aFloat; )
}
activeRange_ { arg aFloat;
this.range_(aFloat);
this.doAction;
}
setSpan { arg lo, hi;
this.lo_(lo);
this.hi_(hi);
}
setSpanActive { arg lo, hi;
this.setSpan(lo,hi);
this.doAction;
}
setDeviation { arg deviation, average;
this.lo_( average - deviation );
this.hi_( average + deviation );
}
knobColor { ^this.getProperty(\knobColor) }
knobColor_ { arg color; this.setProperty(\knobColor, color) }
background { ^this.getProperty(\grooveColor) }
background_ { arg color; this.setProperty(\grooveColor, color) }
defaultGetDrag { ^Point(this.lo,this.hi); }
defaultCanReceiveDrag { ^(QView.currentDrag.class === Point); }
defaultReceiveDrag {
var pt = QView.currentDrag;
this.setSpanActive( pt.x, pt.y );
}
}
|