QtCollider: separate QRangeSlider into its own file
[supercollider.git] / SCClassLibrary / QtCollider / QViewSubclasses.sc
blobf6ea3587d7b4f8f5c462f85b9bdc092bcc6320a6
1 QAbstractScroll : QView {
2   var <hasHorizontalScroller = true, <hasVerticalScroller = true;
3   var <autohidesScrollers = true;
5   autohidesScrollers_ { arg aBool;
6     if( aBool ) {
7       if( hasHorizontalScroller ) {
8         this.setProperty( \horizontalScrollBarPolicy, 0 );
9       };
10       if( hasVerticalScroller ) {
11         this.setProperty( \verticalScrollBarPolicy, 0 );
12       };
13     } {
14       if( hasHorizontalScroller ) {
15         this.setProperty( \horizontalScrollBarPolicy, 2 )
16       };
17       if( hasVerticalScroller ) {
18         this.setProperty( \verticalScrollBarPolicy, 2 );
19       };
20     };
21     autohidesScrollers = aBool;
22   }
24   hasHorizontalScroller_ { arg aBool;
25     var policy;
26     if( aBool ) {
27       if( autohidesScrollers ) { policy = 0 } { policy = 2 };
28       this.setProperty( \horizontalScrollBarPolicy, policy );
29     } {
30       this.setProperty( \horizontalScrollBarPolicy, 1 );
31     };
32     hasHorizontalScroller = aBool;
33   }
35   hasVerticalScroller_ { arg aBool;
36     var policy;
37     if( aBool ) {
38       if( autohidesScrollers ) { policy = 0 } { policy = 2 };
39       this.setProperty( \verticalScrollBarPolicy, policy );
40     } {
41       this.setProperty( \verticalScrollBarPolicy, 1 );
42     };
43     hasVerticalScroller = aBool;
44   }
47 /////////////////////// CONTAINERS ////////////////////////////////
49 QHLayoutView : QView {
50   *qtClass { ^"QcHLayoutWidget" }
53 QVLayoutView : QView {
54   *qtClass { ^"QcVLayoutWidget" }
57 QScrollView : QAbstractScroll {
58   var <background, <hasBorder=true;
60   *qtClass { ^"QcScrollArea" }
62   background_ { arg aColor;
63     background = aColor;
64     this.setProperty( \background, aColor, true );
65   }
67   hasBorder_ { arg aBool;
68     hasBorder = aBool;
69     this.setProperty( \hasBorder, aBool );
70   }
72   innerBounds {
73     ^this.getProperty( \innerBounds, Rect.new );
74   }
76   visibleOrigin {
77     ^this.getProperty( \visibleOrigin, Point.new );
78   }
80   visibleOrigin_ { arg point;
81     this.setProperty( \visibleOrigin, point );
82   }
85 /////////////////////////// WIDGETS ///////////////////////////////
87 QTextViewBase : QView {
88   var <align;
90   align_ { arg aSymbol;
91     align = aSymbol;
92     this.setProperty( \alignment, QAlignment(aSymbol) );
93   }
96 QStaticText : QTextViewBase {
97   var <string;
99   *qtClass { ^"QLabel" }
101   *new { arg aParent, aBounds;
102     var obj = super.new( aParent, aBounds );
103     obj.setProperty(\wordWrap, true);
104     ^obj;
105   }
107   background_ { arg aColor;
108     if( this.background.isNil ) {
109       this.setProperty( \autoFillBackground, true);
110     };
111     super.background_( aColor );
112   }
114   string_ { arg text;
115     string = text;
116     this.setProperty( \text, text );
117   }
119   stringColor {
120     ^this.palette.windowTextColor;
121   }
123   stringColor_ { arg color;
124     this.setProperty( \palette, this.palette.windowTextColor_(color) );
125   }
128 QTextField : QTextViewBase {
129   *qtClass { ^"QcTextField" }
131   string {
132     ^this.getProperty( \text );
133   }
135   string_ { arg text;
136     this.setProperty( \text, text );
137   }
139   stringColor {
140     ^this.palette.baseTextColor;
141   }
143   stringColor_ { arg color;
144     this.setProperty( \palette, this.palette.baseTextColor_(color) );
145   }
147   background {
148     ^this.palette.baseColor;
149   }
151   background_ { arg color;
152     this.setProperty( \palette, this.palette.baseColor_(color) )
153   }
155   value {
156     ^this.string;
157   }
159   value_ { arg val;
160     this.string_( val.asString );
161   }
163   valueAction_ { arg val;
164     this.string_( val.asString );
165     this.doAction;
166   }
169 QButton : QView {
170   var <states;
172   *qtClass { ^"QcButton" }
174   *properties {
175     ^[\string, \states];
176   }
178   value {
179     ^this.getProperty( \value );
180   }
182   value_ { arg argVal;
183     this.setProperty( \value, argVal );
184   }
186   valueAction_ { arg anInt;
187     this.value_( anInt );
188     action.value(this);
189   }
191   states_ { arg stateArray;
192     states = stateArray;
193     super.setProperty( \states, stateArray );
194   }
197 QCheckBox : QView {
199   *qtClass { ^"QcCheckBox" }
201         *new{ |parent,bounds,text|
202                 ^super.new(parent,bounds).init(text)
203         }
205         init{ |text|
206                 this.string_(text)
207         }
209         value{
210                 ^this.getProperty(\value)
211         }
213         value_{ |val|
214                 this.setProperty(\value,val)
215         }
217         string_{ |string|
218                 this.setProperty(\text,string)
219         }
221         string{
222                 ^this.getProperty(\text)
223         }
226 QAbstractStepValue : QView {
227   var <step, <shift_scale, <ctrl_scale, <alt_scale;
229   step_ { arg aFloat;
230     step = aFloat;
231     this.setProperty( \step, aFloat );
232   }
234   value {
235     ^this.getProperty( \value );
236   }
238   value_ { arg argVal;
239     this.setProperty( \value, argVal );
240   }
242   valueAction_ { arg val;
243     this.value_(val);
244     action.value(this);
245   }
247   shift_scale_ { arg aFloat;
248     shift_scale = aFloat;
249     this.setProperty( \shiftScale, aFloat );
250   }
252   ctrl_scale_ { arg aFloat;
253     ctrl_scale = aFloat;
254     this.setProperty( \ctrlScale, aFloat );
255   }
257   alt_scale_ { arg aFloat;
258     alt_scale = aFloat;
259     this.setProperty( \altScale, aFloat );
260   }
262   increment {
263     this.nonimpl( \increment );
264   }
266   decrement {
267     this.nonimpl( \decrement );
268   }
271 QSlider : QAbstractStepValue {
272   //compatibility stuff:
273   var <orientation;
274   var <> thumbSize;
276   *qtClass { ^"QcSlider" }
278   *new { arg parent, bounds;
279     ^super.new( parent, bounds ).initQSlider( bounds );
280   }
282   knobColor {
283     ^this.palette.buttonColor;
284   }
286   knobColor_ { arg color;
287     this.setProperty( \palette, this.palette.buttonColor_(color) );
288   }
290   initQSlider { arg bounds;
291     var r;
292     if( bounds.notNil ) {
293       r = bounds.asRect;
294       if( r.width > r.height ) {
295         this.orientation_( \horizontal );
296       } {
297         this.orientation_( \vertical );
298       }
299     }
300   }
302   pixelStep {
303     ^0;
304   }
306   orientation_ { arg aSymbol;
307     orientation = aSymbol;
308     this.setProperty( \orientation, QOrientation(aSymbol) );
309   }
312 QNumberBox : QAbstractStepValue {
313   var <clipLo, <clipHi, <scroll, <scroll_step, <decimals;
314   var <align, <buttonsVisible = false;
315   var <normalColor, <typingColor;
317   *qtClass { ^"QcNumberBox" }
319   *new { arg aParent, aBounds;
320     var obj = super.new( aParent, aBounds );
321     obj.initQNumberBox;
322     ^obj;
323   }
325   initQNumberBox {
326     clipLo = inf;
327     clipHi = inf;
328     scroll = true;
329     scroll_step = 1;
330     normalColor = Color.black;
331     typingColor = Color.red;
332   }
334   clipLo_ { arg aFloat;
335     clipLo = aFloat;
336     this.setProperty( \minimum, aFloat; );
337   }
339   clipHi_ { arg aFloat;
340     clipHi = aFloat;
341     this.setProperty( \maximum, aFloat; );
342   }
344   scroll_ { arg aBool;
345     scroll = aBool;
346     this.setProperty( \scroll, aBool );
347   }
349   scroll_step_ { arg aFloat;
350     scroll_step = aFloat;
351     this.setProperty( \scrollStep, aFloat );
352   }
354   decimals_ {  arg anInt;
355     decimals = anInt;
356     this.setProperty( \decimals, anInt );
357   }
359   align_ { arg alignment;
360     align = alignment;
361     this.setProperty( \alignment, QAlignment(alignment));
362   }
364   stringColor {
365     ^this.palette.baseTextColor;
366   }
368   stringColor_ { arg color;
369     this.setProperty( \palette, this.palette.baseTextColor_(color) );
370   }
372   normalColor_ { arg aColor;
373     normalColor = aColor;
374     this.setProperty( \normalColor, aColor );
375   }
377   typingColor_ { arg aColor;
378     typingColor = aColor;
379     this.setProperty( \editingColor, aColor );
380   }
382   background {
383     ^this.palette.baseColor;
384   }
386   background_ { arg color;
387     this.setProperty( \palette, this.palette.baseColor_(color) )
388   }
390   buttonsVisible_ { arg aBool;
391     buttonsVisible = aBool;
392     this.setProperty( \buttonsVisible, aBool );
393   }
396 QItemViewBase : QView
398   var <items;
400   items_ { arg stringArray;
401     items = stringArray;
402     this.setProperty( \items, stringArray);
403   }
405   item {
406     ^items.at( this.value );
407   }
409   valueAction_ { arg val;
410     this.value_(val);
411     action.value(this);
412   }
415 QPopUpMenu : QItemViewBase {
417   *qtClass { ^"QcPopUpMenu" }
419   value {
420     var v = this.getProperty( \currentIndex );
421     if( v < 0 ) { ^nil } { ^v };
422   }
424   value_ { arg val;
425     this.setProperty( \currentIndex, val ? -1 );
426   }
428   stringColor {
429     ^this.palette.buttonTextColor;
430   }
432   stringColor_ { arg color;
433     this.setProperty( \palette, this.palette.buttonTextColor_(color) );
434   }
437 QScopeView : QView {
438   var <bufnum, <style=0, <xZoom=1.0, <yZoom=1.0, <x=0.0, <y=0.0;
439   var <waveColors;
441   *qtClass { ^"QcScope" }
443   bufnum_ { arg anInt;
444     bufnum = anInt;
445     this.setProperty( \bufferNumber, anInt );
446   }
448   style_ { arg anInt;
449     style = anInt;
450     this.setProperty( \style, anInt );
451   }
453   xZoom_ { arg aFloat;
454     xZoom = aFloat;
455     this.setProperty( \xZoom, aFloat );
456   }
458   yZoom_ { arg aFloat;
459     yZoom = aFloat;
460     this.setProperty( \yZoom, aFloat );
461   }
463   x_ { arg aFloat;
464     x = aFloat;
465     this.setProperty( \xOffset, aFloat );
466   }
468   y_ { arg aFloat;
469     y = aFloat;
470     this.setProperty( \yOffset, aFloat );
471   }
473   waveColors_ { arg aColorArray;
474     waveColors = aColorArray;
475     this.setProperty( \waveColors, aColorArray );
476   }
478   background { ^this.getProperty( \background, Color.new ); }
480   background_ { arg color; this.setProperty( \background, color, true ); }