]> git.saurik.com Git - wxWidgets.git/blobdiff - src/mac/carbon/textctrl.cpp
Base for wxMessageDialog with common checks for style.
[wxWidgets.git] / src / mac / carbon / textctrl.cpp
index 90ff16053b6d4e33f5a99aef19fae9ef1466afe4..32fdac4cbe596af223248dddf520e5be1f8c519c 100644 (file)
@@ -196,6 +196,7 @@ public :
     virtual void ShowPosition( long WXUNUSED(pos) ) ;
     virtual int GetLineLength(long lineNo) const ;
     virtual wxString GetLineText(long lineNo) const ;
+    virtual bool SetupCursor( const wxPoint& pt ) { return false ; }
 
 #ifndef __WXMAC_OSX__
     virtual void            MacControlUserPaneDrawProc(wxInt16 part) = 0 ;
@@ -327,6 +328,8 @@ public :
     virtual wxInt16         MacControlUserPaneFocusProc(wxInt16 action) ;
     virtual void            MacControlUserPaneBackgroundProc(void* info) ;
 
+    virtual bool            SetupCursor( const wxPoint& WXUNUSED(pt) ) { MacControlUserPaneIdleProc() ; return true ;}
+
     virtual void            SetRect( Rect *r ) ;
 
 protected :
@@ -408,8 +411,6 @@ bool wxTextCtrl::Create(wxWindow *parent, wxWindowID id,
     if ( !wxTextCtrlBase::Create(parent, id, pos, size, style & ~(wxHSCROLL|wxVSCROLL), validator, name) )
         return false;
 
-    Rect bounds = wxMacGetBoundsForControl( this , pos , size ) ;
-
     if ( m_windowStyle & wxTE_MULTILINE )
     {
         wxASSERT_MSG( !(m_windowStyle & wxTE_PROCESS_ENTER),
@@ -444,6 +445,8 @@ bool wxTextCtrl::Create(wxWindow *parent, wxWindowID id,
     {
         SetEditable( false ) ;
     }
+    
+    SetCursor( wxCursor( wxCURSOR_IBEAM ) ) ;
 
     return true;
 }
@@ -1012,7 +1015,10 @@ void wxTextCtrl::OnUpdateRedo(wxUpdateUIEvent& event)
 
 bool wxTextCtrl::MacSetupCursor( const wxPoint& pt )
 {
-    return true ;
+    if ( !GetPeer()->SetupCursor(pt) )
+        return wxWindow::MacSetupCursor( pt ) ;
+    else
+        return true ;
 }
 #if !TARGET_API_MAC_OSX
 
@@ -2375,7 +2381,7 @@ wxMacMLTEClassicControl::wxMacMLTEClassicControl( wxTextCtrl *wxPeer,
     short featurSet;
 
     featurSet = kControlSupportsEmbedding | kControlSupportsFocus  | kControlWantsIdle
-            | kControlWantsActivate  | kControlHandlesTracking | kControlHasSpecialBackground
+            | kControlWantsActivate  | kControlHandlesTracking // | kControlHasSpecialBackground
             | kControlGetsFocusOnClick | kControlSupportsLiveFeedback;
 
     verify_noerr( ::CreateUserPaneControl( MAC_WXHWND(wxPeer->GetParent()->MacGetTopLevelWindowRef()), &bounds, featurSet, &m_controlRef ) );
@@ -2422,7 +2428,7 @@ ControlUserPaneFocusUPP gTPFocusProc = NULL;
 static pascal void wxMacControlUserPaneDrawProc(ControlRef control, SInt16 part)
 {
     wxTextCtrl *textCtrl =  wxDynamicCast( wxFindControlFromMacControl(control) , wxTextCtrl ) ;
-    wxMacMLTEClassicControl * win = textCtrl ? dynamic_cast<wxMacMLTEClassicControl*>(textCtrl->GetPeer()) : NULL ;
+    wxMacMLTEClassicControl * win = textCtrl ? (wxMacMLTEClassicControl*)(textCtrl->GetPeer()) : NULL ;
     if ( win )
         win->MacControlUserPaneDrawProc(part) ;
 }
@@ -2430,7 +2436,7 @@ static pascal void wxMacControlUserPaneDrawProc(ControlRef control, SInt16 part)
 static pascal ControlPartCode wxMacControlUserPaneHitTestProc(ControlRef control, Point where)
 {
     wxTextCtrl *textCtrl =  wxDynamicCast( wxFindControlFromMacControl(control) , wxTextCtrl ) ;
-    wxMacMLTEClassicControl * win = textCtrl ? dynamic_cast<wxMacMLTEClassicControl*>(textCtrl->GetPeer()) : NULL ;
+    wxMacMLTEClassicControl * win = textCtrl ? (wxMacMLTEClassicControl*)(textCtrl->GetPeer()) : NULL ;
     if ( win )
         return win->MacControlUserPaneHitTestProc(where.h , where.v) ;
     else
@@ -2440,7 +2446,7 @@ static pascal ControlPartCode wxMacControlUserPaneHitTestProc(ControlRef control
 static pascal ControlPartCode wxMacControlUserPaneTrackingProc(ControlRef control, Point startPt, ControlActionUPP actionProc)
 {
     wxTextCtrl *textCtrl =  wxDynamicCast( wxFindControlFromMacControl(control) , wxTextCtrl ) ;
-    wxMacMLTEClassicControl * win = textCtrl ? dynamic_cast<wxMacMLTEClassicControl*>(textCtrl->GetPeer()) : NULL ;
+    wxMacMLTEClassicControl * win = textCtrl ? (wxMacMLTEClassicControl*)(textCtrl->GetPeer()) : NULL ;
     if ( win )
         return win->MacControlUserPaneTrackingProc( startPt.h , startPt.v , (void*) actionProc) ;
     else
@@ -2450,7 +2456,7 @@ static pascal ControlPartCode wxMacControlUserPaneTrackingProc(ControlRef contro
 static pascal void wxMacControlUserPaneIdleProc(ControlRef control)
 {
     wxTextCtrl *textCtrl =  wxDynamicCast( wxFindControlFromMacControl(control) , wxTextCtrl ) ;
-    wxMacMLTEClassicControl * win = textCtrl ? dynamic_cast<wxMacMLTEClassicControl*>(textCtrl->GetPeer()) : NULL ;
+    wxMacMLTEClassicControl * win = textCtrl ? (wxMacMLTEClassicControl*)(textCtrl->GetPeer()) : NULL ;
     if ( win )
         win->MacControlUserPaneIdleProc() ;
 }
@@ -2458,7 +2464,7 @@ static pascal void wxMacControlUserPaneIdleProc(ControlRef control)
 static pascal ControlPartCode wxMacControlUserPaneKeyDownProc(ControlRef control, SInt16 keyCode, SInt16 charCode, SInt16 modifiers)
 {
     wxTextCtrl *textCtrl =  wxDynamicCast( wxFindControlFromMacControl(control) , wxTextCtrl ) ;
-    wxMacMLTEClassicControl * win = textCtrl ? dynamic_cast<wxMacMLTEClassicControl*>(textCtrl->GetPeer()) : NULL ;
+    wxMacMLTEClassicControl * win = textCtrl ? (wxMacMLTEClassicControl*)(textCtrl->GetPeer()) : NULL ;
     if ( win )
         return win->MacControlUserPaneKeyDownProc(keyCode,charCode,modifiers) ;
     else
@@ -2468,7 +2474,7 @@ static pascal ControlPartCode wxMacControlUserPaneKeyDownProc(ControlRef control
 static pascal void wxMacControlUserPaneActivateProc(ControlRef control, Boolean activating)
 {
     wxTextCtrl *textCtrl =  wxDynamicCast( wxFindControlFromMacControl(control) , wxTextCtrl ) ;
-    wxMacMLTEClassicControl * win = textCtrl ? dynamic_cast<wxMacMLTEClassicControl*>(textCtrl->GetPeer()) : NULL ;
+    wxMacMLTEClassicControl * win = textCtrl ? (wxMacMLTEClassicControl*)(textCtrl->GetPeer()) : NULL ;
     if ( win )
         win->MacControlUserPaneActivateProc(activating) ;
 }
@@ -2476,7 +2482,7 @@ static pascal void wxMacControlUserPaneActivateProc(ControlRef control, Boolean
 static pascal ControlPartCode wxMacControlUserPaneFocusProc(ControlRef control, ControlFocusPart action)
 {
     wxTextCtrl *textCtrl =  wxDynamicCast( wxFindControlFromMacControl(control) , wxTextCtrl ) ;
-    wxMacMLTEClassicControl * win = textCtrl ? dynamic_cast<wxMacMLTEClassicControl*>(textCtrl->GetPeer()) : NULL ;
+    wxMacMLTEClassicControl * win = textCtrl ? (wxMacMLTEClassicControl*)(textCtrl->GetPeer()) : NULL ;
     if ( win )
         return win->MacControlUserPaneFocusProc(action) ;
     else
@@ -2487,7 +2493,7 @@ static pascal ControlPartCode wxMacControlUserPaneFocusProc(ControlRef control,
 static pascal void wxMacControlUserPaneBackgroundProc(ControlRef control, ControlBackgroundPtr info)
 {
     wxTextCtrl *textCtrl =  wxDynamicCast( wxFindControlFromMacControl(control) , wxTextCtrl ) ;
-    wxMacMLTEClassicControl * win = textCtrl ? dynamic_cast<wxMacMLTEClassicControl*>(textCtrl->GetPeer()) : NULL ;
+    wxMacMLTEClassicControl * win = textCtrl ? (wxMacMLTEClassicControl*)(textCtrl->GetPeer()) : NULL ;
     if ( win )
         win->MacControlUserPaneBackgroundProc(info) ;
 }