# FindControlUnderMouse() returns an existing control, not a new one, # so create this one by hand. f = Function(ExistingControlHandle, 'FindControlUnderMouse', (Point, 'inWhere', InMode), (WindowRef, 'inWindow', InMode), (SInt16, 'outPart', OutMode), ) functions.append(f) f = Function(ControlHandle, 'as_Control', (Handle, 'h', InMode)) functions.append(f) f = Method(Handle, 'as_Resource', (ControlHandle, 'ctl', InMode)) methods.append(f) f = Method(void, 'GetControlRect', (ControlHandle, 'ctl', InMode), (Rect, 'rect', OutMode)) methods.append(f) DisposeControl_body = """ if (!PyArg_ParseTuple(_args, "")) return NULL; if ( _self->ob_itself ) { SetControlReference(_self->ob_itself, (long)0); /* Make it forget about us */ DisposeControl(_self->ob_itself); _self->ob_itself = NULL; } Py_INCREF(Py_None); _res = Py_None; return _res; """ f = ManualGenerator("DisposeControl", DisposeControl_body) f.docstring = lambda : "() -> None" methods.append(f) # All CreateXxxXxxControl() functions return a new object in an output # parameter; these should however be managed by us (we're creating them # after all), so set the type to ControlRef. for f in functions: if f.name.startswith("Create"): v = f.argumentList[-1] if v.type == ExistingControlHandle: v.type = ControlRef