File: extValueActionIfChanged.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 (31 lines) | stat: -rw-r--r-- 905 bytes parent folder | download | duplicates (5)
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
/*
// views and EZGuis may trigger actions more often that desired:
// when the spec quantizes the range of the slider, the action can fire
// without the value having changed. valueActionIfChanged_ handles this case.
(
g = EZSlider(label:" test ", controlSpec:[0, 5, \lin, 1].asSpec);
g.action_({ |ez| "ezsl.value: % sliderpos: %\n".postf(ez.value, ez.sliderView.value); });
)
(
g = EZNumber(label:" test ", controlSpec:[0, 5, \lin, 1].asSpec);
g.action_({ |ez| "ezsl.value: % sliderpos: %\n".postf(ez.value, ez.numberView.value); });
);
g = EZText(label:" test ", action: { |ez| "new value: %\n".postf(ez.value); });

*/

+ View {
	valueActionIfChanged_ { arg val;
		var hasChanged = this.value != val;
		this.value_(val);
		if (hasChanged) { this.doAction }
	}
}

+ EZGui {
	valueActionIfChanged_ { arg val;
		var hasChanged = value != val;
		this.value_(val);
		if (hasChanged) { this.doAction }
	}
}