]> git.saurik.com Git - wxWidgets.git/blobdiff - src/mac/textctrl.cpp
commented out annoying wxLogDebug
[wxWidgets.git] / src / mac / textctrl.cpp
index 5f71de9973b194c461a2d6b70e41bc646372401a..b79f2fc5d377c050a9007b55084167f8aee4b619 100644 (file)
@@ -60,7 +60,6 @@
 
 #define TE_UNLIMITED_LENGTH 0xFFFFFFFFUL
 
 
 #define TE_UNLIMITED_LENGTH 0xFFFFFFFFUL
 
-extern wxApp *wxTheApp ;
 extern wxControl *wxFindControlFromMacControl(ControlHandle inControl ) ;
 
 // CS:TODO we still have a problem getting properly at the text events of a control because under Carbon
 extern wxControl *wxFindControlFromMacControl(ControlHandle inControl ) ;
 
 // CS:TODO we still have a problem getting properly at the text events of a control because under Carbon
@@ -576,6 +575,13 @@ OSStatus mUPOpenControl(ControlHandle theControl, long wxStyle )
         kTXNSystemDefaultEncoding,
         &varsp->fTXNRec, &varsp->fTXNFrame, (TXNObjectRefcon) tpvars);
 
         kTXNSystemDefaultEncoding,
         &varsp->fTXNRec, &varsp->fTXNFrame, (TXNObjectRefcon) tpvars);
 
+    if ( (wxStyle & wxTE_MULTILINE) && (wxStyle & wxTE_DONTWRAP) )
+    {
+        TXNControlTag tag = kTXNWordWrapStateTag ;
+        TXNControlData dat ;
+        dat.uValue = kTXNNoAutoWrap ;
+        TXNSetTXNObjectControls( varsp->fTXNRec , false , 1 , &tag , &dat ) ;
+    }
         Str255 fontName ;
         SInt16 fontSize ;
         Style fontStyle ;
         Str255 fontName ;
         SInt16 fontSize ;
         Style fontStyle ;
@@ -722,7 +728,7 @@ bool wxTextCtrl::Create(wxWindow *parent, wxWindowID id,
         m_macControl = ::NewControl( MAC_WXHWND(parent->MacGetRootWindow()) , &bounds , "\p" , true , 0 , 0 , 1,
             (style & wxTE_PASSWORD) ? kControlEditTextPasswordProc : kControlEditTextProc , (long) this ) ;
         long size ;
         m_macControl = ::NewControl( MAC_WXHWND(parent->MacGetRootWindow()) , &bounds , "\p" , true , 0 , 0 , 1,
             (style & wxTE_PASSWORD) ? kControlEditTextPasswordProc : kControlEditTextProc , (long) this ) ;
         long size ;
-        ::GetControlData((ControlHandle)  m_macControl , 0, kControlEditTextTEHandleTag , sizeof( TEHandle ) , (char*) &((TEHandle) m_macTE) , &size ) ;
+        ::GetControlData((ControlHandle)  m_macControl , 0, kControlEditTextTEHandleTag , sizeof( TEHandle ) , (char*)((TEHandle *)&m_macTE) , &size ) ;
 
     }
     else
 
     }
     else
@@ -859,7 +865,7 @@ void wxTextCtrl::SetValue(const wxString& st)
     }
     else
     {
     }
     else
     {
-        bool formerEditable = IsEditable() ;
+        bool formerEditable = m_editable ;
         if ( !formerEditable )
             SetEditable(true) ;
 #if wxUSE_UNICODE
         if ( !formerEditable )
             SetEditable(true) ;
 #if wxUSE_UNICODE
@@ -887,7 +893,7 @@ bool wxTextCtrl::SetStyle(long start, long end, const wxTextAttr& style)
 {
     if ( m_macUsesTXN )
     {
 {
     if ( m_macUsesTXN )
     {
-        bool formerEditable = IsEditable() ;
+        bool formerEditable = m_editable ;
         if ( !formerEditable )
             SetEditable(true) ;
         TXNTypeAttributes typeAttr[4] ;
         if ( !formerEditable )
             SetEditable(true) ;
         TXNTypeAttributes typeAttr[4] ;
@@ -931,8 +937,10 @@ bool wxTextCtrl::SetStyle(long start, long end, const wxTextAttr& style)
 
         if ( attrCounter > 0 )
         {
 
         if ( attrCounter > 0 )
         {
-            OSStatus status = TXNSetTypeAttributes ((TXNObject)m_macTXN, attrCounter , typeAttr,
-                start,end);
+#ifdef __WXDEBUG__
+            OSStatus status =
+#endif // __WXDEBUG__
+                TXNSetTypeAttributes ((TXNObject)m_macTXN, attrCounter , typeAttr, start,end);
             wxASSERT_MSG( status == noErr , wxT("Couldn't set text attributes") ) ;
         }
         if ( !formerEditable )
             wxASSERT_MSG( status == noErr , wxT("Couldn't set text attributes") ) ;
         }
         if ( !formerEditable )
@@ -1150,7 +1158,7 @@ void wxTextCtrl::Replace(long from, long to, const wxString& value)
     }
     else
     {
     }
     else
     {
-        bool formerEditable = IsEditable() ;
+        bool formerEditable = m_editable ;
         if ( !formerEditable )
             SetEditable(true) ;
         TXNSetSelection( ((TXNObject) m_macTXN) , from , to ) ;
         if ( !formerEditable )
             SetEditable(true) ;
         TXNSetSelection( ((TXNObject) m_macTXN) , from , to ) ;
@@ -1181,7 +1189,7 @@ void wxTextCtrl::Remove(long from, long to)
     }
     else
     {
     }
     else
     {
-        bool formerEditable = IsEditable() ;
+        bool formerEditable = m_editable ;
         if ( !formerEditable )
             SetEditable(true) ;
         TXNSetSelection( ((TXNObject) m_macTXN) , from , to ) ;
         if ( !formerEditable )
             SetEditable(true) ;
         TXNSetSelection( ((TXNObject) m_macTXN) , from , to ) ;
@@ -1242,7 +1250,7 @@ void wxTextCtrl::WriteText(const wxString& st)
     }
     else
     {
     }
     else
     {
-        bool formerEditable = IsEditable() ;
+        bool formerEditable = m_editable ;
         if ( !formerEditable )
             SetEditable(true) ;
         long start , end , dummy ;
         if ( !formerEditable )
             SetEditable(true) ;
         long start , end , dummy ;
@@ -1344,6 +1352,10 @@ void wxTextCtrl::Undo()
 {
     if (CanUndo())
     {
 {
     if (CanUndo())
     {
+        if ( m_macUsesTXN ) 
+        {
+            TXNUndo((TXNObject)m_macTXN); 
+        }
     }
 }
 
     }
 }
 
@@ -1351,16 +1363,36 @@ void wxTextCtrl::Redo()
 {
     if (CanRedo())
     {
 {
     if (CanRedo())
     {
+        if ( m_macUsesTXN ) 
+        {
+            TXNRedo((TXNObject)m_macTXN); 
+        }
     }
 }
 
 bool wxTextCtrl::CanUndo() const
 {
     }
 }
 
 bool wxTextCtrl::CanUndo() const
 {
+    if ( !IsEditable() ) 
+    {
+        return false ; 
+    }
+    if ( m_macUsesTXN ) 
+    {
+        return TXNCanUndo((TXNObject)m_macTXN,NULL); 
+    }
     return FALSE ;
 }
 
 bool wxTextCtrl::CanRedo() const
 {
     return FALSE ;
 }
 
 bool wxTextCtrl::CanRedo() const
 {
+    if ( !IsEditable() ) 
+    {
+        return false ; 
+    }
+    if ( m_macUsesTXN ) 
+    {
+        return TXNCanRedo((TXNObject)m_macTXN,NULL); 
+    }
     return FALSE ;
 }
 
     return FALSE ;
 }
 
@@ -1566,8 +1598,25 @@ void wxTextCtrl::OnChar(wxKeyEvent& event)
 
     if (!eat_key)
     {
 
     if (!eat_key)
     {
-        // default handling
-        event.Skip() ;
+        // perform keystroke handling
+#if TARGET_CARBON
+        if ( m_macUsesTXN && wxTheApp->MacGetCurrentEvent() != NULL && wxTheApp->MacGetCurrentEventHandlerCallRef() != NULL )
+            CallNextEventHandler((EventHandlerCallRef)wxTheApp->MacGetCurrentEventHandlerCallRef() , (EventRef) wxTheApp->MacGetCurrentEvent() ) ;
+        else 
+#endif
+        {
+            EventRecord rec ;
+            if ( wxMacConvertEventToRecord(  (EventRef) wxTheApp->MacGetCurrentEvent() , &rec ) )
+            {
+                EventRecord *ev = &rec ;
+                short keycode ;
+                short keychar ;
+                keychar = short(ev->message & charCodeMask);
+                keycode = short(ev->message & keyCodeMask) >> 8 ;
+
+                ::HandleControlKey( (ControlHandle) m_macControl , keycode , keychar , ev->modifiers ) ;
+            }
+        }
     }
     if ( ( key >= 0x20 && key < WXK_START ) ||
          key == WXK_RETURN ||
     }
     if ( ( key >= 0x20 && key < WXK_START ) ||
          key == WXK_RETURN ||