-/* routines for using existing user pane controls.
-These routines are useful for cases where you would like to use an
-existing user pane control in, say, a dialog window as a scrolling
-text edit field.*/
-
-/* Utility Routines */
-
-/* kUserClickedToFocusPart is a part code we pass to the SetKeyboardFocus
-routine. In our focus switching routine this part code is understood
-as meaning 'the user has clicked in the control and we need to switch
-the current focus to ourselves before we can continue'. */
-#define kUserClickedToFocusPart 100
-
-/* STPTextPaneVars is a structure used for storing the the mUP Control's
-internal variables and state information. A handle to this record is
-stored in the pane control's reference value field using the
-SetControlReference routine. */
-
-class STPTextPaneVars {
-public :
- /* OS records referenced */
- TXNObject fTXNRec; /* the txn record */
- TXNFrameID fTXNFrame; /* the txn frame ID */
- ControlRef fUserPaneRec; /* handle to the user pane control */
- WindowPtr fOwner; /* window containing control */
- GrafPtr fDrawingEnvironment; /* grafport where control is drawn */
- /* flags */
- Boolean fInFocus; /* true while the focus rect is drawn around the control */
- Boolean fIsActive; /* true while the control is drawn in the active state */
- Boolean fTXNObjectActive; /* reflects the activation state of the text edit record */
- Boolean fFocusDrawState; /* true if focus is drawn (default: true) */
- /* calculated locations */
- Rect fRBounds; /* control bounds */
- Rect fRTextArea; /* area where the text is drawn */
- Rect fRFocusOutline; /* rectangle used to draw the focus box */
- Rect fRTextOutline; /* rectangle used to draw the border */
- RgnHandle fRTextOutlineRegion; /* background region for the text, erased before calling TEUpdate */
- /* our focus advance override routine */
- EventHandlerUPP handlerUPP;
- EventHandlerRef handlerRef;
- bool fNoBorders ;
- bool fMultiline ;
- bool fVisible ;
-} ;
-
-/* Univerals Procedure Pointer variables used by the
-mUP Control. These variables are set up
-the first time that mUPOpenControl is called. */
-ControlUserPaneDrawUPP gTPDrawProc = NULL;
-ControlUserPaneHitTestUPP gTPHitProc = NULL;
-ControlUserPaneTrackingUPP gTPTrackProc = NULL;
-ControlUserPaneIdleUPP gTPIdleProc = NULL;
-ControlUserPaneKeyDownUPP gTPKeyProc = NULL;
-ControlUserPaneActivateUPP gTPActivateProc = NULL;
-ControlUserPaneFocusUPP gTPFocusProc = NULL;
-
-// one place for calculating all
-static void TPCalculateBounds(STPTextPaneVars *varsp, const Rect& bounds)
-{
- SetRect(&varsp->fRBounds, bounds.left, bounds.top, bounds.right, bounds.bottom);
- SetRect(&varsp->fRFocusOutline, bounds.left, bounds.top, bounds.right, bounds.bottom);
- // eventually make TextOutline inset 1,1
- SetRect(&varsp->fRTextOutline, bounds.left, bounds.top, bounds.right, bounds.bottom);
- if ( !varsp->fNoBorders )
- {
- SetRect(&varsp->fRTextArea, bounds.left + 2 , bounds.top + (varsp->fMultiline ? 0 : 2) ,
- bounds.right - (varsp->fMultiline ? 0 : 2), bounds.bottom - (varsp->fMultiline ? 0 : 2));
- }
- else
- {
- SetRect(&varsp->fRTextArea, bounds.left , bounds.top ,
- bounds.right, bounds.bottom);
- }
-}
-
-OSStatus MLTESetObjectVisibility( STPTextPaneVars *varsp, Boolean vis , long wxStyle)
-{
- OSStatus err = noErr ;
- wxTextCtrl* textctrl = (wxTextCtrl*) GetControlReference(varsp->fUserPaneRec);
- if ( textctrl )