SCDoc: Use proper static string constants instead of comparing string literals.
[supercollider.git] / SCClassLibrary / QtCollider / QSlider.sc
blob9cc4735a424233cd1845730d3fedad7c28259707
1 QSlider : QAbstractStepValue {
2   //compatibility stuff:
3   var <orientation;
5   *qtClass { ^'QcSlider' }
7   *new { arg parent, bounds;
8     ^super.new( parent, bounds ).initQSlider( bounds );
9   }
11   value {
12     ^this.getProperty( \value );
13   }
15   value_ { arg argVal;
16     this.setProperty( \value, argVal );
17   }
19   valueAction_ { arg val;
20     this.value_(val);
21     action.value(this);
22   }
24   step { ^this.getProperty(\step) }
26   thumbSize { ^this.getProperty(\handleLength) }
27   thumbSize_ { arg pixels; this.setProperty(\handleLength, pixels) }
29   knobColor { ^this.getProperty(\knobColor) }
30   knobColor_ { arg color; this.setProperty(\knobColor, color) }
32   background { ^this.getProperty(\grooveColor) }
33   background_ { arg color; this.setProperty(\grooveColor, color) }
35   initQSlider { arg bounds;
36     var r;
37     if( bounds.notNil ) {
38       r = bounds.asRect;
39       if( r.width > r.height ) {
40         this.orientation_( \horizontal );
41       } {
42         this.orientation_( \vertical );
43       }
44     }
45   }
47   pixelStep { ^this.getProperty(\pixelStep) }
49   orientation_ { arg aSymbol;
50     orientation = aSymbol;
51     this.setProperty( \orientation, QOrientation(aSymbol) );
52   }
54   defaultKeyDownAction {  arg char, modifiers, unicode, keycode, key;
55     var scale = this.getScale( modifiers );
56     switch( char,
57       $r, { this.valueAction = 1.0.rand },
58       $n, { this.valueAction = 0.0 },
59       $x, { this.valueAction = 1.0 },
60       $c, { this.valueAction = 0.5 },
61       {
62         switch( key,
63           16r5d, { this.increment(scale) },
64           16r1000013, { this.increment(scale) },
65           16r1000014, { this.increment(scale) },
66           16r5b, { this.decrement(scale) },
67           16r1000015, { this.decrement(scale) },
68           16r1000012, { this.decrement(scale) },
69           { ^this; } // if unhandled, let Qt process the event
70         );
71         this.doAction;
72       }
73     );
74     ^true; // accept the event and stop its processing
75   }
77   defaultGetDrag { ^this.value; }
78   defaultCanReceiveDrag { ^QView.currentDrag.isNumber; }
79   defaultReceiveDrag {
80     this.valueAction = QView.currentDrag;
81   }