class library: DUGen - the server now handles audio-rate inputs correctly
[supercollider.git] / SCClassLibrary / Platform / iphone / iPhoneGUI.sc
blob0365121032757ce855877cfd7d99fcb219254ca7
1 /**
2  *      This is the Cocoa framework GUI implementation
3  *      for Mac OS X. It can be accessed from the GUI
4  *      class using GUI.cocoa, GUI.fromID( \cocoa ) or GUI.get( \cocoa ).
5  *
6  *      @version        0.14, 17-Jan-08
7  */
8 IPhoneGUI {
9         classvar extraClasses;
11         *initClass {
12                 Class.initClassTree( Event );
13                 extraClasses = Event.new;
14                 Class.initClassTree( GUI );
15                 GUI.add( this );
16         }
18         *id { ^\iphone }
20         *put { arg key, object;
21                 extraClasses.put( key, object );
22         }
24         *doesNotUnderstand { arg selector ... args;
25                 ^extraClasses.perform( selector, *args );
26         }
28         ///////////////// Common -> GUI /////////////////
30         *freqScope { ^SCFreqScopeWindow }
31         *freqScopeView { ^SCFreqScope }
32         *scopeView { ^SCScope }
33         *stethoscope { ^SCStethoscope }
35         ///////////////// Common -> GUI -> Base /////////////////
37         *view { ^SCView }
38         *compositeView { ^SCCompositeView }
39         *hLayoutView { ^SCHLayoutView }
40         *vLayoutView { ^SCVLayoutView }
41         *window { ^SCWindow }
42         *slider { ^SCSlider }
43         *button { ^SCButton }
44         *staticText { ^SCStaticText }
45         *numberBox { ^SCNumberBox }
46         *scrollView { ^SCScrollView }
47         *font { ^SCFont }
49         *rangeSlider { ^SCRangeSlider }
50         *slider2D { ^SC2DSlider }
51         *tabletSlider2D { ^SC2DTabletSlider }
52         *popUpMenu { ^SCPopUpMenu }
53         *listView { ^SCListView }
54         *dragSource { ^SCDragSource }
55         *dragSink { ^SCDragSink }
56         *dragBoth { ^SCDragBoth }
57         *textField { ^SCTextField }
58         *userView { ^SCUserView }
59         *multiSliderView { ^SCMultiSliderView }
60         *envelopeView { ^SCEnvelopeView }
61         *tabletView { ^SCTabletView }
62         *soundFileView { ^SCSoundFileView }
63         *movieView { ^SCMovieView }
64         *textView { ^SCTextView }
65         *quartzComposerView { ^SCQuartzComposerView }
66         *ezScroller { ^EZScroller }
67         *ezSlider { ^EZSlider }
68         *ezListView { ^EZListView }
69         *ezPopUpMenu { ^EZPopUpMenu}
70         *ezNumber { ^EZNumber}
71         *ezRanger { ^EZRanger }
72         *menuItem { ^CocoaMenuItem }
74         *knob { ^SCKnob }
76         *pen { ^SCPen }
78         ///////////////// Common -> Audio /////////////////
81         *mouseX { ^MouseX }
82         *mouseY { ^MouseY }
83         *mouseButton { ^MouseButton }
84         *keyState { ^KeyState }
86         ///////////////// Common -> OSX /////////////////
89         *dialog { ^CocoaDialog }
90         *speech { ^Speech }
92         ///////////////// extras /////////////////
94 //      checkBox: SCCheckBox,
95 //      tabbedPane: SCTabbedPane
97         ///////////////// crucial /////////////////
98         // no longer needed b/c SwingOSC can add the StartRow class directly
99         // as of at least 0.56
100 //      *startRow { ^StartRow }
102         ///////////////// support methods with different GUI scheme implementations /////////////////
103         *stringBounds { |string, font|
104                 ^string.prBounds(Rect.new, font)
105         }