supernova: fix boost.thread move semantics
[supercollider.git] / SCClassLibrary / QtCollider / QObject.sc
blobea0641a34690050f3ac139183eb3f638d3c5027e
1 QMetaObject {
2   var className;
4   *new { arg className;
5     ^super.newCopyArgs(className);
6   }
8   properties {
9     _QMetaObject_Properties
10     ^this.primitiveFailed
11   }
13   methods { arg plain = true, signals = false, slots = true;
14     _QMetaObject_Methods
15     ^this.primitiveFailed
16   }
19 QObject {
20   classvar
21     heap,
22     < closeEvent = 19,
23     < showEvent = 17,
24     < windowActivateEvent = 24,
25     < windowDeactivateEvent = 25,
26     < mouseDownEvent = 2,
27     < mouseUpEvent = 3,
28     < mouseDblClickEvent = 4,
29     < mouseMoveEvent = 5,
30     < mouseEnterEvent = 10,
31     < mouseLeaveEvent = 11,
32     < mouseWheelEvent = 31,
33     < keyDownEvent = 6,
34     < keyUpEvent = 7;
36   var qObject, finalizer;
37   var virtualSlots;
39   *qtClass { ^nil }
41   *meta { ^QMetaObject(this.qtClass) }
43   *new { arg argumentArray;
44     var className = this.qtClass;
45     if( className.isNil ) {
46       Error("Qt:" + this.name + "is an abstract class and can not be instantiated.").throw;
47     };
48     ^super.new.initQObject( className, argumentArray );
49   }
51   *heap { ^heap.copy }
53   initQObject{ arg className, argumentArray;
54     this.prConstruct( className, argumentArray );
55     heap = heap.add( this );
56   }
58   destroy {
59     _QObject_Destroy
60     ^this.primitiveFailed
61   }
63   isValid {
64     _QObject_IsValid
65     ^this.primitiveFailed
66   }
68   parent { arg class;
69     ^this.prGetParent( if( class.notNil ){class.name}{nil} );
70   }
72   children { arg class;
73     ^this.prGetChildren( if( class.notNil ){class.name}{nil} );
74   }
76   setParent { arg parent;
77     _QObject_SetParent
78     ^this.primitiveFailed
79   }
81   properties {
82     _QObject_GetProperties
83     ^this.primitiveFailed
84   }
86   methods { arg plain = true, signals = false, slots = true;
87     _QObject_GetMethods
88     ^this.primitiveFailed
89   }
91   getProperty { arg property;
92     _QObject_GetProperty
93     ^this.primitiveFailed
94   }
96   setProperty { arg property, value, direct=true;
97     _QObject_SetProperty
98     ^this.primitiveFailed
99   }
101   setEventHandler{ arg event, method, direct=false, enabled=true;
102     _QObject_SetEventHandler
103     ^this.primitiveFailed
104   }
106   setEventHandlerEnabled { arg event, enabled=true;
107     _QObject_SetEventHandlerEnabled
108     ^this.primitiveFailed
109   }
111   connectMethod { arg signal, handler, direct=false;
112     _QObject_ConnectMethod
113     ^this.primitiveFailed
114   }
116   disconnectMethod { arg signal, method;
117     _QObject_DisconnectMethod;
118     ^this.primitiveFailed
119   }
121   connectFunction { arg signal, object, synchronous = false;
122     virtualSlots = virtualSlots.add( object );
123     this.prConnectObject( signal, object, synchronous );
124   }
126   disconnectFunction { arg signal, object;
127     virtualSlots.remove( object );
128     this.prDisconnectObject( signal, object );
129   }
131   connectSlot { arg signal, receiver, slot;
132     _QObject_ConnectSlot;
133     ^this.primitiveFailed
134   }
136   invokeMethod { arg method, arguments, synchronous = true;
137     _QObject_InvokeMethod
138     ^this.primitiveFailed
139   }
141   ////////////////////// private //////////////////////////////////
143   prConstruct { arg className, argumentArray;
144     _QObject_New
145     ^this.primitiveFailed;
146   }
148   prConnectObject { arg signal, object, synchronous = false;
149     _QObject_ConnectObject;
150     ^this.primitiveFailed
151   }
153   prDisconnectObject { arg signal, object;
154     _QObject_DisconnectObject;
155     ^this.primitiveFailed
156   }
158   prGetChildren { arg className;
159     _QObject_GetChildren
160     ^this.primitiveFailed
161   }
163   prGetParent { arg className;
164     _QObject_GetParent
165     ^this.primitiveFailed
166   }
168   prRelease { heap.remove(this); }
170   doFunction { arg f ... args; f.performList(\value, this, args); }