PageRenderTime 21ms CodeModel.GetById 15ms app.highlight 4ms RepoModel.GetById 1ms app.codeStats 0ms

/Mac/Modules/ctl/ctledit.py

http://unladen-swallow.googlecode.com/
Python | 45 lines | 39 code | 4 blank | 2 comment | 0 complexity | 597db21ecf841757620a726ce3c3fbd3 MD5 | raw file
 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