#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
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 ;
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
{
- bool formerEditable = IsEditable() ;
+ bool formerEditable = m_editable ;
if ( !formerEditable )
SetEditable(true) ;
#if wxUSE_UNICODE
{
if ( m_macUsesTXN )
{
- bool formerEditable = IsEditable() ;
+ bool formerEditable = m_editable ;
if ( !formerEditable )
SetEditable(true) ;
TXNTypeAttributes typeAttr[4] ;
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 )
}
else
{
- bool formerEditable = IsEditable() ;
+ bool formerEditable = m_editable ;
if ( !formerEditable )
SetEditable(true) ;
TXNSetSelection( ((TXNObject) m_macTXN) , from , to ) ;
}
else
{
- bool formerEditable = IsEditable() ;
+ bool formerEditable = m_editable ;
if ( !formerEditable )
SetEditable(true) ;
TXNSetSelection( ((TXNObject) m_macTXN) , from , to ) ;
}
else
{
- bool formerEditable = IsEditable() ;
+ bool formerEditable = m_editable ;
if ( !formerEditable )
SetEditable(true) ;
long start , end , dummy ;
{
if (CanUndo())
{
+ if ( m_macUsesTXN )
+ {
+ TXNUndo((TXNObject)m_macTXN);
+ }
}
}
{
if (CanRedo())
{
+ if ( m_macUsesTXN )
+ {
+ TXNRedo((TXNObject)m_macTXN);
+ }
}
}
bool wxTextCtrl::CanUndo() const
{
+ if ( !IsEditable() )
+ {
+ return false ;
+ }
+ if ( m_macUsesTXN )
+ {
+ return TXNCanUndo((TXNObject)m_macTXN,NULL);
+ }
return FALSE ;
}
bool wxTextCtrl::CanRedo() const
{
+ if ( !IsEditable() )
+ {
+ return false ;
+ }
+ if ( m_macUsesTXN )
+ {
+ return TXNCanRedo((TXNObject)m_macTXN,NULL);
+ }
return FALSE ;
}
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 ||