@implementation wxNSTextField
-- (void)setImplementation: (wxWidgetImpl *) theImplementation
++ (void)initialize
{
- impl = theImplementation;
-}
-
-- (wxWidgetImpl*) implementation
-{
- return impl;
+ static BOOL initialized = NO;
+ if (!initialized)
+ {
+ initialized = YES;
+ wxOSXCocoaClassAddWXMethods( self );
+ }
}
-- (BOOL) isFlipped
+- (id)initWithFrame:(NSRect)frame
{
- return YES;
+ [super initWithFrame:frame];
+ [self setDelegate: self];
+ [self setTarget: self];
+// [self setAction: @selector(enterAction:)];
+ return self;
}
// use our common calls
{
[self setStringValue: title];
}
+/*
+- (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
+{
+ if ( impl )
+ {
+ wxWindow* wxpeer = (wxWindow*) impl->GetWXPeer();
+ if ( wxpeer ) {
+ wxFocusEvent event(wxEVT_KILL_FOCUS, wxpeer->GetId());
+ event.SetEventObject( wxpeer );
+ event.SetWindow( wxpeer );
+ wxpeer->HandleWindowEvent( event );
+ }
+ }
+}
+
+- (void) enterAction: (id) sender
+{
+ if ( impl )
+ {
+ wxWindow* wxpeer = (wxWindow*) impl->GetWXPeer();
+ 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 );
+ }
+ }
+}
+*/
@end
wxNSTextFieldControl::wxNSTextFieldControl( wxTextCtrl *wxPeer, WXWidget w ) : wxWidgetCocoaImpl(wxPeer, w)
void wxNSTextFieldControl::SetEditable(bool editable)
{
+ [(wxNSTextField*) m_osxView setEditable:editable];
}
void wxNSTextFieldControl::GetSelection( long* from, long* to) const
long style,
long extraStyle)
{
- NSView* sv = (wxpeer->GetParent()->GetHandle() );
-
NSRect r = wxOSXGetFrameForControl( wxpeer, pos , size ) ;
wxNSTextField* v = [[wxNSTextField alloc] initWithFrame:r];
- [sv addSubview:v];
if ( style & wxNO_BORDER )
{
//[v setDrawsBackground:NO];
wxWidgetCocoaImpl* c = new wxNSTextFieldControl( wxpeer, v );
- [v setImplementation:c];
return c;
}