Home | History | Annotate | Download | only in ctl
      1 # FindControlUnderMouse() returns an existing control, not a new one,
      2 # so create this one by hand.
      3 f = Function(ExistingControlHandle, 'FindControlUnderMouse',
      4     (Point, 'inWhere', InMode),
      5     (WindowRef, 'inWindow', InMode),
      6     (SInt16, 'outPart', OutMode),
      7 )
      8 functions.append(f)
      9 
     10 f = Function(ControlHandle, 'as_Control',
     11         (Handle, 'h', InMode))
     12 functions.append(f)
     13 
     14 f = Method(Handle, 'as_Resource', (ControlHandle, 'ctl', InMode))
     15 methods.append(f)
     16 
     17 f = Method(void, 'GetControlRect', (ControlHandle, 'ctl', InMode), (Rect, 'rect', OutMode))
     18 methods.append(f)
     19 
     20 DisposeControl_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 
     33 f = ManualGenerator("DisposeControl", DisposeControl_body)
     34 f.docstring = lambda : "() -> None"
     35 
     36 methods.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.
     41 for f in functions:
     42     if f.name.startswith("Create"):
     43         v = f.argumentList[-1]
     44         if v.type == ExistingControlHandle:
     45             v.type = ControlRef
     46