46 lines
1.3 KiB
Python
46 lines
1.3 KiB
Python
# 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
|