| # 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 |