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
This commit is contained in:
Kevin Ollivier
2009-02-22 18:13:49 +00:00
parent 518fafd54b
commit 4d23a0d3a0

View File

@@ -50,7 +50,12 @@
#include "wx/osx/cocoa/private/textimpl.h" #include "wx/osx/cocoa/private/textimpl.h"
@interface wxNSSecureTextField : NSSecureTextField @interface wxNSSecureTextField : NSSecureTextField
{
wxWidgetCocoaImpl* impl;
}
- (void) setImplementation:(wxWidgetCocoaImpl*) item;
- (wxWidgetCocoaImpl*) implementation;
@end @end
@implementation wxNSSecureTextField @implementation wxNSSecureTextField
@@ -65,39 +70,16 @@
} }
} }
@end - (wxWidgetCocoaImpl*) implementation
@interface wxNSTextView : NSScrollView
@end
@implementation wxNSTextView
+ (void)initialize
{ {
static BOOL initialized = NO; return impl;
if (!initialized)
{
initialized = YES;
wxOSXCocoaClassAddWXMethods( self );
}
} }
@end - (void) setImplementation:(wxWidgetCocoaImpl*) item
@implementation wxNSTextField
+ (void)initialize
{ {
static BOOL initialized = NO; impl = item;
if (!initialized)
{
initialized = YES;
wxOSXCocoaClassAddWXMethods( self );
}
} }
/*
- (void)controlTextDidChange:(NSNotification *)aNotification - (void)controlTextDidChange:(NSNotification *)aNotification
{ {
if ( impl ) if ( impl )
@@ -112,6 +94,93 @@
} }
} }
@end
@interface wxNSTextView : NSScrollView
{
wxWidgetCocoaImpl* impl;
}
- (void) setImplementation:(wxWidgetCocoaImpl*) item;
- (wxWidgetCocoaImpl*) implementation;
@end
@implementation wxNSTextView
+ (void)initialize
{
static BOOL initialized = NO;
if (!initialized)
{
initialized = YES;
wxOSXCocoaClassAddWXMethods( self );
}
}
- (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<wxTextCtrl*>(wxpeer)->GetValue() );
wxpeer->HandleWindowEvent( event );
}
}
}
@end
@implementation wxNSTextField
+ (void)initialize
{
static BOOL initialized = NO;
if (!initialized)
{
initialized = YES;
wxOSXCocoaClassAddWXMethods( self );
}
}
- (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<wxTextCtrl*>(wxpeer)->GetValue() );
wxpeer->HandleWindowEvent( event );
}
}
}
/*
- (void)controlTextDidEndEditing:(NSNotification *)aNotification - (void)controlTextDidEndEditing:(NSNotification *)aNotification
{ {
if ( impl ) if ( impl )
@@ -133,6 +202,7 @@
wxNSTextViewControl::wxNSTextViewControl( wxTextCtrl *wxPeer, WXWidget w ) : wxWidgetCocoaImpl(wxPeer, w) wxNSTextViewControl::wxNSTextViewControl( wxTextCtrl *wxPeer, WXWidget w ) : wxWidgetCocoaImpl(wxPeer, w)
{ {
m_scrollView = (NSScrollView*) w; m_scrollView = (NSScrollView*) w;
[w setImplementation: this];
[m_scrollView setHasVerticalScroller:YES]; [m_scrollView setHasVerticalScroller:YES];
[m_scrollView setHasHorizontalScroller:NO]; [m_scrollView setHasHorizontalScroller:NO];
@@ -361,6 +431,7 @@ wxWidgetImplType* wxWidgetImpl::CreateTextControl( wxTextCtrl* wxpeer,
[v setBordered:NO]; [v setBordered:NO];
c = new wxNSTextFieldControl( wxpeer, v ); c = new wxNSTextFieldControl( wxpeer, v );
[v setImplementation: c];
static_cast<wxNSTextFieldControl*>(c)->SetStringValue(str); static_cast<wxNSTextFieldControl*>(c)->SetStringValue(str);
} }