NSView* m_textView;
} ;
-@interface wxNSSecureTextField : NSSecureTextField
-{
-}
-@end
-
@implementation wxNSSecureTextField
+ (void)initialize
}
@end
-@interface wxNSTextView : NSTextView
-{
- wxNSTextScrollView* scrollView;
-}
-
-- (void)setScrollView: (wxNSTextScrollView *) sv;
-- (wxNSTextScrollView*) scrollView;
-
-@end
-
@implementation wxNSTextScrollView
+ (void)initialize
}
}
-- (void)textDidChange:(NSNotification *)aNotification
+@end
+
+@implementation wxNSTextFieldEditor
+
+- (void) keyDown:(NSEvent*) event
{
- wxUnusedVar(aNotification);
- wxWidgetCocoaImpl* impl = (wxWidgetCocoaImpl* ) wxWidgetImpl::FindFromWXWidget( self );
- 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 );
- }
- }
+ wxWidgetCocoaImpl* impl = (wxWidgetCocoaImpl* ) wxWidgetImpl::FindFromWXWidget( [self delegate] );
+ lastKeyDownEvent = event;
+ if ( impl == NULL || !impl->DoHandleKeyEvent(event) )
+ [super keyDown:event];
+ lastKeyDownEvent = nil;
}
-- (BOOL)textView:(NSTextView *)aTextView doCommandBySelector:(SEL)commandSelector
+- (void) keyUp:(NSEvent*) event
{
- wxUnusedVar(aTextView);
- wxWidgetCocoaImpl* impl = (wxWidgetCocoaImpl* ) wxWidgetImpl::FindFromWXWidget( self );
- if ( impl )
- {
- wxWindow* wxpeer = (wxWindow*) impl->GetWXPeer();
- if (commandSelector == @selector(insertNewline:))
- {
- if ( wxpeer && wxpeer->GetWindowStyle() & wxTE_PROCESS_ENTER )
- {
- wxCommandEvent event(wxEVT_COMMAND_TEXT_ENTER, wxpeer->GetId());
- event.SetEventObject( wxpeer );
- event.SetString( static_cast<wxTextCtrl*>(wxpeer)->GetValue() );
- wxpeer->HandleWindowEvent( event );
- }
- }
- }
-
- return NO;
+ wxWidgetCocoaImpl* impl = (wxWidgetCocoaImpl* ) wxWidgetImpl::FindFromWXWidget( [self delegate] );
+ if ( impl == NULL || !impl->DoHandleKeyEvent(event) )
+ [super keyUp:event];
}
-- (void)textDidEndEditing:(NSNotification *)aNotification
+- (void) flagsChanged:(NSEvent*) event
{
- wxUnusedVar(aNotification);
- wxWidgetCocoaImpl* impl = (wxWidgetCocoaImpl* ) wxWidgetImpl::FindFromWXWidget( self );
- if ( impl )
- {
- impl->DoNotifyFocusEvent( false, NULL );
- }
+ wxWidgetCocoaImpl* impl = (wxWidgetCocoaImpl* ) wxWidgetImpl::FindFromWXWidget( [self delegate] );
+ if ( impl == NULL || !impl->DoHandleKeyEvent(event) )
+ [super flagsChanged:event];
}
-@end
-@implementation wxNSTextView
+- (BOOL) performKeyEquivalent:(NSEvent*) event
+{
+ BOOL retval = [super performKeyEquivalent:event];
+ return retval;
+}
-- (BOOL) becomeFirstResponder
+- (void) insertText:(id) str
{
- BOOL val = [super becomeFirstResponder];
-
- if ( val )
+ wxWidgetCocoaImpl* impl = (wxWidgetCocoaImpl* ) wxWidgetImpl::FindFromWXWidget( [self delegate] );
+ if ( impl == NULL || lastKeyDownEvent==nil || !impl->DoHandleCharEvent(lastKeyDownEvent, str) )
{
- wxWidgetCocoaImpl* impl = (wxWidgetCocoaImpl* ) wxWidgetImpl::FindFromWXWidget( scrollView );
- if (impl )
- impl->DoNotifyFocusEvent( true, NULL );
-
+ [super insertText:str];
}
- return val;
}
-- (void)setScrollView: (wxNSTextScrollView *) sv
-{
- scrollView = sv;
-}
+@end
-- (wxNSTextScrollView*) scrollView
+@implementation wxNSTextView
+
++ (void)initialize
{
- return scrollView;
+ static BOOL initialized = NO;
+ if (!initialized)
+ {
+ initialized = YES;
+ wxOSXCocoaClassAddWXMethods( self );
+ }
}
@end
}
}
+- (id) initWithFrame:(NSRect) frame
+{
+ self = [super initWithFrame:frame];
+ fieldEditor = nil;
+ return self;
+}
+
+- (void) dealloc
+{
+ [fieldEditor release];
+ [super dealloc];
+}
+
+- (void) setFieldEditor:(wxNSTextFieldEditor*) editor
+{
+ fieldEditor = editor;
+}
+
+- (wxNSTextFieldEditor*) fieldEditor
+{
+ return fieldEditor;
+}
+
+
- (void) setEnabled:(BOOL) flag
{
[super setEnabled: flag];
[m_scrollView setDocumentView: tv];
[tv setDelegate: w];
- [tv setScrollView:sv];
+
+ InstallEventHandler(tv);
}
wxNSTextViewControl::~wxNSTextViewControl()
if (m_textView)
[m_textView setString: wxCFStringRef( st , m_wxPeer->GetFont().GetEncoding() ).AsNSString()];
}
+
void wxNSTextViewControl::Copy()
{
if (m_textView)
m_textField = (NSTextField*) w;
[m_textField setDelegate: w];
m_selStart = m_selEnd = 0;
+ m_hasEditor = [w isKindOfClass:[NSTextField class]];
}
wxNSTextFieldControl::~wxNSTextFieldControl()