@@ -132,6 +132,8 @@ DataBrowserListViewColumnDesc_Convert(PyObject *v, DataBrowserListViewColumnDesc
132132static PyObject * tracker ;
133133static ControlActionUPP mytracker_upp ;
134134static ControlActionUPP myactionproc_upp ;
135+ static ControlUserPaneKeyDownUPP mykeydownproc_upp ;
136+ static ControlUserPaneFocusUPP myfocusproc_upp ;
135137static ControlUserPaneDrawUPP mydrawproc_upp ;
136138static ControlUserPaneIdleUPP myidleproc_upp ;
137139static ControlUserPaneHitTestUPP myhittestproc_upp ;
@@ -6513,6 +6515,10 @@ setcallback(PyObject *myself, OSType which, PyObject *callback, UniversalProcPtr
65136515
65146516 if ( which == kMyControlActionProcTag )
65156517 * uppp = (UniversalProcPtr )myactionproc_upp ;
6518+ else if ( which == kControlUserPaneKeyDownProcTag )
6519+ * uppp = (UniversalProcPtr )mykeydownproc_upp ;
6520+ else if ( which == kControlUserPaneFocusProcTag )
6521+ * uppp = (UniversalProcPtr )myfocusproc_upp ;
65166522 else if ( which == kControlUserPaneDrawProcTag )
65176523 * uppp = (UniversalProcPtr )mydrawproc_upp ;
65186524 else if ( which == kControlUserPaneIdleProcTag )
@@ -6570,6 +6576,42 @@ myactionproc(ControlHandle control, SInt16 part)
65706576 Py_XDECREF (rv );
65716577}
65726578
6579+ static pascal ControlPartCode
6580+ mykeydownproc (ControlHandle control , SInt16 keyCode , SInt16 charCode , SInt16 modifiers )
6581+ {
6582+ ControlObject * ctl_obj ;
6583+ PyObject * arglist , * rv ;
6584+ short c_rv = 0 ;
6585+
6586+ ctl_obj = (ControlObject * )CtlObj_WhichControl (control );
6587+ arglist = Py_BuildValue ("Ohhh" , ctl_obj , keyCode , charCode , modifiers );
6588+ rv = callcallback (ctl_obj , kControlUserPaneKeyDownProcTag , arglist );
6589+ Py_XDECREF (arglist );
6590+ if ( rv )
6591+ if (!PyArg_Parse (rv , "h" , & c_rv ))
6592+ PyErr_Clear ();
6593+ Py_XDECREF (rv );
6594+ return (ControlPartCode )c_rv ;
6595+ }
6596+
6597+ static pascal ControlPartCode
6598+ myfocusproc (ControlHandle control , ControlPartCode part )
6599+ {
6600+ ControlObject * ctl_obj ;
6601+ PyObject * arglist , * rv ;
6602+ short c_rv = kControlFocusNoPart ;
6603+
6604+ ctl_obj = (ControlObject * )CtlObj_WhichControl (control );
6605+ arglist = Py_BuildValue ("Oh" , ctl_obj , part );
6606+ rv = callcallback (ctl_obj , kControlUserPaneFocusProcTag , arglist );
6607+ Py_XDECREF (arglist );
6608+ if ( rv )
6609+ if (!PyArg_Parse (rv , "h" , & c_rv ))
6610+ PyErr_Clear ();
6611+ Py_XDECREF (rv );
6612+ return (ControlPartCode )c_rv ;
6613+ }
6614+
65736615static pascal void
65746616mydrawproc (ControlHandle control , SInt16 part )
65756617{
@@ -6609,7 +6651,8 @@ myhittestproc(ControlHandle control, Point where)
66096651 Py_XDECREF (arglist );
66106652 /* Ignore errors, nothing we can do about them */
66116653 if ( rv )
6612- PyArg_Parse (rv , "h" , & c_rv );
6654+ if (!PyArg_Parse (rv , "h" , & c_rv ))
6655+ PyErr_Clear ();
66136656 Py_XDECREF (rv );
66146657 return (ControlPartCode )c_rv ;
66156658}
@@ -6627,7 +6670,8 @@ mytrackingproc(ControlHandle control, Point startPt, ControlActionUPP actionProc
66276670 rv = callcallback (ctl_obj , kControlUserPaneTrackingProcTag , arglist );
66286671 Py_XDECREF (arglist );
66296672 if ( rv )
6630- PyArg_Parse (rv , "h" , & c_rv );
6673+ if (!PyArg_Parse (rv , "h" , & c_rv ))
6674+ PyErr_Clear ();
66316675 Py_XDECREF (rv );
66326676 return (ControlPartCode )c_rv ;
66336677}
@@ -6642,6 +6686,8 @@ void init_Ctl(void)
66426686
66436687 mytracker_upp = NewControlActionUPP (mytracker );
66446688 myactionproc_upp = NewControlActionUPP (myactionproc );
6689+ mykeydownproc_upp = NewControlUserPaneKeyDownUPP (mykeydownproc );
6690+ myfocusproc_upp = NewControlUserPaneFocusUPP (myfocusproc );
66456691 mydrawproc_upp = NewControlUserPaneDrawUPP (mydrawproc );
66466692 myidleproc_upp = NewControlUserPaneIdleUPP (myidleproc );
66476693 myhittestproc_upp = NewControlUserPaneHitTestUPP (myhittestproc );
0 commit comments