X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/44aa865dfc8884ee42fc2d7033bb6ed443b59c57..a55d039a23c730975a8b5efedab6b4940fb4009b:/src/mac/carbon/textctrl.cpp diff --git a/src/mac/carbon/textctrl.cpp b/src/mac/carbon/textctrl.cpp index 13adf6556b..5e3e75e155 100644 --- a/src/mac/carbon/textctrl.cpp +++ b/src/mac/carbon/textctrl.cpp @@ -183,6 +183,7 @@ public : virtual void SetSelection( long from , long to ) = 0 ; virtual void GetSelection( long* from, long* to) const = 0 ; virtual void WriteText(const wxString& str) = 0 ; + virtual bool HasOwnContextMenu() const { return false ; } virtual void Clear() ; virtual bool CanUndo() const; @@ -236,6 +237,19 @@ public : virtual void SetSelection( long from , long to ) ; virtual void WriteText(const wxString& str) ; + virtual bool HasOwnContextMenu() const + { +#if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_4 + if ( UMAGetSystemVersion() >= 0x1040 ) + { + TXNCommandEventSupportOptions options ; + TXNGetCommandEventSupport( m_txn , & options ) ; + return options & kTXNSupportEditCommandProcessing ; + } +#endif + return false ; + } + virtual void Clear() ; virtual bool CanUndo() const ; @@ -385,7 +399,7 @@ BEGIN_EVENT_TABLE(wxTextCtrl, wxControl) END_EVENT_TABLE() // Text item -void wxTextCtrl::Init() +void wxTextCtrl::Init() { m_editable = true ; m_dirty = false; @@ -1060,6 +1074,12 @@ void wxTextCtrl::OnUpdateSelectAll(wxUpdateUIEvent& event) void wxTextCtrl::OnContextMenu(wxContextMenuEvent& event) { + if ( GetPeer()->HasOwnContextMenu() ) + { + event.Skip() ; + return ; + } + if (m_privateContextMenu == NULL) { m_privateContextMenu = new wxMenu; @@ -1643,6 +1663,21 @@ void wxMacMLTEControl::AdjustCreationAttributes( const wxColour &background, boo tback.bgType = kTXNBackgroundTypeRGB; tback.bg.color = MAC_WXCOLORREF( background.GetPixel() ); TXNSetBackground( m_txn , &tback); +#if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_4 + if ( UMAGetSystemVersion() >= 0x1040 ) + { + TXNCommandEventSupportOptions options ; + if ( TXNGetCommandEventSupport( m_txn, &options) == noErr ) + { + options |= kTXNSupportEditCommandProcessing ; + options |= kTXNSupportSpellCheckCommandProcessing ; + options |= kTXNSupportFontCommandProcessing ; + options |= kTXNSupportFontCommandUpdating ; + + TXNSetCommandEventSupport( m_txn , options ) ; + } + } +#endif } void wxMacMLTEControl::SetBackground( const wxBrush &brush ) @@ -2821,10 +2856,6 @@ bool wxMacMLTEHIViewControl::HasFocus() const return control == m_textView ; } -#if MAC_OS_X_VERSION_MAX_ALLOWED < MAC_OS_X_VERSION_10_4 -#define kCGColorSpaceGenericRGB CFSTR("kCGColorSpaceGenericRGB") -#endif - void wxMacMLTEHIViewControl::SetBackground( const wxBrush &brush ) { wxMacMLTEControl::SetBackground( brush ) ;