clean up indentation and spacing
[supercollider.git] / HelpSource / Classes / Gradient.schelp
blob8af5d28a061bacfa0bcb735279251005772e3747
1 class:: Gradient
2 summary:: A linear color fade between two colors
3 categories:: GUI>Accessories
4 related:: Classes/Color, Classes/HiliteGradient
6 description::
8 note:: The use of Gradient is strong::not supported yet in Qt GUI::. When Gradient is used in place of Color, the average gradient color will be used instead. ::
10 classmethods::
12 method:: new
13 argument:: color1
14 An instance of link::Classes/Color::.
15 argument:: color2
16 An instance of link::Classes/Color::.
17 argument:: direction
18 code::\h:: or code::\v:: for horizontal and vertical respectively. Default value is code::\h::.
19 argument:: steps
20 The resolution of the gradient. Default value is 64.
22 instancemethods::
24 method:: at
25 Retrieve the colour at position code::pos::, typically a value between zero and one. code::at(0):: is code::color1::, and code::at(1):: is code::color2::.
26 argument:: pos
28 examples::
29 code::
30 // basic usage
32 w = Window.new.front;
33 w.view.background = Gradient(Color.yellow,Color.white);
36 // change direction and resolution
38 w = Window.new.front;
39 w.view.background = Gradient(Color.red,Color.white,\v, 5);
42 // almost unnoticeable variations can be pleasant
44 w = Window.new.front;
45 v = CompositeView(w, Rect(50,50,300,300));
46 c = Color.rand;
47 d = c.vary(0.15);
48 v.background = Gradient(c, d, \v);
49 [c, d].postln
53 var w, k, c, d, e, c1, c2, f, g;
54 w = Window.new.front;
55 k = Slider2D(w, Rect(50,50,300,300));
56 f = {
57         c = Color.rand;
58         d = c.vary(0.5);
59         e = d.vary(0.5);
61 g = {
62         c1 = d.hueBlend(e, k.y).round(0.01);
63         c2 = c.hueBlend(e, k.x).round(0.01);
64         k.background = Gradient(c1, c2, \v)
66 f.value; g.value;
67 k.action = g;
68 k.mouseUpAction = { [c1, c2].postln };
69 k.keyDownAction = f; // hit any key for new color
72 // an example using gradient indirectly to update window colour
74 w=Window.new.front;
75 g = Gradient(Color.red,Color.green);
76 Task{
77         (0, 0.01 .. 1).do{|pos|
78                 w.view.background = g.at(pos);
79                 0.01.wait;
80         };
81 }.play(AppClock)