1# FindControlUnderMouse() returns an existing control, not a new one, 2# so create this one by hand. 3f = Function(ExistingControlHandle, 'FindControlUnderMouse', 4 (Point, 'inWhere', InMode), 5 (WindowRef, 'inWindow', InMode), 6 (SInt16, 'outPart', OutMode), 7) 8functions.append(f) 9 10f = Function(ControlHandle, 'as_Control', 11 (Handle, 'h', InMode)) 12functions.append(f) 13 14f = Method(Handle, 'as_Resource', (ControlHandle, 'ctl', InMode)) 15methods.append(f) 16 17f = Method(void, 'GetControlRect', (ControlHandle, 'ctl', InMode), (Rect, 'rect', OutMode)) 18methods.append(f) 19 20DisposeControl_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 33f = ManualGenerator("DisposeControl", DisposeControl_body) 34f.docstring = lambda : "() -> None" 35 36methods.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. 41for f in functions: 42 if f.name.startswith("Create"): 43 v = f.argumentList[-1] 44 if v.type == ExistingControlHandle: 45 v.type = ControlRef 46