1 # FindControlUnderMouse() returns an existing control, not a new one, 2 # so create this one by hand. 3 f = Function(ExistingControlHandle, 'FindControlUnderMouse', 4 (Point, 'inWhere', InMode), 5 (WindowRef, 'inWindow', InMode), 6 (SInt16, 'outPart', OutMode), 7 ) 8 functions.append(f) 9 10 f = Function(ControlHandle, 'as_Control', 11 (Handle, 'h', InMode)) 12 functions.append(f) 13 14 f = Method(Handle, 'as_Resource', (ControlHandle, 'ctl', InMode)) 15 methods.append(f) 16 17 f = Method(void, 'GetControlRect', (ControlHandle, 'ctl', InMode), (Rect, 'rect', OutMode)) 18 methods.append(f) 19 20 DisposeControl_body = """ 21 if (!PyArg_ParseTuple(_args, "")) 22 return NULL; 23 if ( _self->ob_itself ) { 24 SetControlReference(_self->ob_itself, (long)0); /* Make it forget about us */ 25 DisposeControl(_self->ob_itself); 26 _self->ob_itself = NULL; 27 } 28 Py_INCREF(Py_None); 29 _res = Py_None; 30 return _res; 31 """ 32 33 f = ManualGenerator("DisposeControl", DisposeControl_body) 34 f.docstring = lambda : "() -> None" 35 36 methods.append(f) 37 38 # All CreateXxxXxxControl() functions return a new object in an output 39 # parameter; these should however be managed by us (we're creating them 40 # after all), so set the type to ControlRef. 41 for f in functions: 42 if f.name.startswith("Create"): 43 v = f.argumentList[-1] 44 if v.type == ExistingControlHandle: 45 v.type = ControlRef 46