File: QSlider.sc

package info (click to toggle)
supercollider 1%3A3.13.0%2Brepack-1
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 80,292 kB
  • sloc: cpp: 476,363; lisp: 84,680; ansic: 77,685; sh: 25,509; python: 7,909; makefile: 3,440; perl: 1,964; javascript: 974; xml: 826; java: 677; yacc: 314; lex: 175; objc: 152; ruby: 136
file content (82 lines) | stat: -rw-r--r-- 1,963 bytes parent folder | download | duplicates (6)
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
Slider : QAbstractStepValue {
	//compatibility stuff:
	var <orientation;

	*qtClass { ^'QcSlider' }

	*new { arg parent, bounds;
		^super.new( parent, bounds ).initSlider( bounds );
	}

	value {
		^this.getProperty( \value );
	}

	value_ { arg argVal;
		this.setProperty( \value, argVal );
	}

	valueAction_ { arg val;
		this.value_(val);
		action.value(this);
	}

	step { ^this.getProperty(\step) }

	thumbSize { ^this.getProperty(\handleLength) }
	thumbSize_ { arg pixels; this.setProperty(\handleLength, pixels) }

	knobColor { ^this.getProperty(\knobColor) }
	knobColor_ { arg color; this.setProperty(\knobColor, color) }

	background { ^this.getProperty(\grooveColor) }
	background_ { arg color; this.setProperty(\grooveColor, color) }

	initSlider { arg bounds;
		var r;
		if( bounds.notNil ) {
			r = bounds.asRect;
			if( r.width > r.height ) {
				this.orientation_( \horizontal );
			} {
				this.orientation_( \vertical );
			}
		}
	}

	pixelStep { ^this.getProperty(\pixelStep) }

	orientation_ { arg aSymbol;
		orientation = aSymbol;
		this.setProperty( \orientation, QOrientation(aSymbol) );
	}

	defaultKeyDownAction {  arg char, modifiers, unicode, keycode, key;
		var scale = this.getScale( modifiers );
		switch( char,
			$r, { this.valueAction = 1.0.rand },
			$n, { this.valueAction = 0.0 },
			$x, { this.valueAction = 1.0 },
			$c, { this.valueAction = 0.5 },
			{
				switch( key,
					16r5d, { this.increment(scale) },
					16r1000013, { this.increment(scale) },
					16r1000014, { this.increment(scale) },
					16r5b, { this.decrement(scale) },
					16r1000015, { this.decrement(scale) },
					16r1000012, { this.decrement(scale) },
					{ ^this; } // if unhandled, let Qt process the event
				);
				this.doAction;
			}
		);
		^true; // accept the event and stop its processing
	}

	defaultGetDrag { ^this.value; }
	defaultCanReceiveDrag { ^View.currentDrag.isNumber; }
	defaultReceiveDrag {
		this.valueAction = View.currentDrag;
	}
}