From: Kevin Ollivier Date: Sun, 22 Feb 2009 18:13:49 +0000 (+0000) Subject: Add support for EVT_TEXT in OS X Cocoa. X-Git-Url: https://git.saurik.com/wxWidgets.git/commitdiff_plain/4d23a0d3a040f773c1211b5e69925a8cd203dfde?ds=inline Add support for EVT_TEXT in OS X Cocoa. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@59089 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- diff --git a/src/osx/cocoa/textctrl.mm b/src/osx/cocoa/textctrl.mm index b23dfd38a2..308f0b8e9c 100644 --- a/src/osx/cocoa/textctrl.mm +++ b/src/osx/cocoa/textctrl.mm @@ -50,7 +50,12 @@ #include "wx/osx/cocoa/private/textimpl.h" @interface wxNSSecureTextField : NSSecureTextField +{ + wxWidgetCocoaImpl* impl; +} +- (void) setImplementation:(wxWidgetCocoaImpl*) item; +- (wxWidgetCocoaImpl*) implementation; @end @implementation wxNSSecureTextField @@ -65,10 +70,39 @@ } } +- (wxWidgetCocoaImpl*) implementation +{ + return impl; +} + +- (void) setImplementation:(wxWidgetCocoaImpl*) item +{ + impl = item; +} + +- (void)controlTextDidChange:(NSNotification *)aNotification +{ + if ( impl ) + { + wxWindow* wxpeer = (wxWindow*) impl->GetWXPeer(); + if ( wxpeer ) { + wxCommandEvent event(wxEVT_COMMAND_TEXT_UPDATED, wxpeer->GetId()); + event.SetEventObject( wxpeer ); + event.SetString( static_cast(wxpeer)->GetValue() ); + wxpeer->HandleWindowEvent( event ); + } + } +} + @end @interface wxNSTextView : NSScrollView +{ + wxWidgetCocoaImpl* impl; +} +- (void) setImplementation:(wxWidgetCocoaImpl*) item; +- (wxWidgetCocoaImpl*) implementation; @end @implementation wxNSTextView @@ -83,6 +117,30 @@ } } +- (wxWidgetCocoaImpl*) implementation +{ + return impl; +} + +- (void) setImplementation:(wxWidgetCocoaImpl*) item +{ + impl = item; +} + + +- (void)controlTextDidChange:(NSNotification *)aNotification +{ + if ( impl ) + { + wxWindow* wxpeer = (wxWindow*) impl->GetWXPeer(); + if ( wxpeer ) { + wxCommandEvent event(wxEVT_COMMAND_TEXT_UPDATED, wxpeer->GetId()); + event.SetEventObject( wxpeer ); + event.SetString( static_cast(wxpeer)->GetValue() ); + wxpeer->HandleWindowEvent( event ); + } + } +} @end @implementation wxNSTextField @@ -97,7 +155,17 @@ } } -/* +- (wxWidgetCocoaImpl*) implementation +{ + return impl; +} + +- (void) setImplementation:(wxWidgetCocoaImpl*) item +{ + impl = item; +} + + - (void)controlTextDidChange:(NSNotification *)aNotification { if ( impl ) @@ -112,6 +180,7 @@ } } +/* - (void)controlTextDidEndEditing:(NSNotification *)aNotification { if ( impl ) @@ -133,6 +202,7 @@ wxNSTextViewControl::wxNSTextViewControl( wxTextCtrl *wxPeer, WXWidget w ) : wxWidgetCocoaImpl(wxPeer, w) { m_scrollView = (NSScrollView*) w; + [w setImplementation: this]; [m_scrollView setHasVerticalScroller:YES]; [m_scrollView setHasHorizontalScroller:NO]; @@ -361,6 +431,7 @@ wxWidgetImplType* wxWidgetImpl::CreateTextControl( wxTextCtrl* wxpeer, [v setBordered:NO]; c = new wxNSTextFieldControl( wxpeer, v ); + [v setImplementation: c]; static_cast(c)->SetStringValue(str); }