• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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