#include "wx/thread.h"
#include "wx/osx/private.h"
-#include "wx/osx/carbon/private/mactext.h"
-
+#include "wx/osx/cocoa/private/textimpl.h"
@implementation wxNSTextField
-- (void)setImplementation: (wxWidgetImpl *) theImplementation
-{
- impl = theImplementation;
-}
-
-- (wxWidgetImpl*) implementation
-{
- return impl;
-}
+WXCOCOAIMPL_COMMON_IMPLEMENTATION
-- (BOOL) isFlipped
+- (id)initWithFrame:(NSRect)frame
{
- return YES;
+ [super initWithFrame:frame];
+ impl = NULL;
+ [self setDelegate: self];
+ [self setTarget: self];
+// [self setAction: @selector(enterAction:)];
+ return self;
}
// use our common calls
{
[self setStringValue: title];
}
-
-@end
-
-class wxNSTextFieldControl : public wxMacTextControl
+/*
+- (void)controlTextDidChange:(NSNotification *)aNotification
{
-public :
- wxNSTextFieldControl( wxTextCtrl *wxPeer, WXWidget w ) : wxMacTextControl(wxPeer, w)
- {
- }
- virtual ~wxNSTextFieldControl()
+ 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 );
+ }
}
+}
- virtual void VisibilityChanged(bool shown){}
- virtual wxString GetStringValue() const
- {
- wxCFStringRef cf( (CFStringRef) [[(wxNSTextField*) m_osxView stringValue] retain] );
- return cf.AsString(m_wxPeer->GetFont().GetEncoding());
- }
- virtual void SetStringValue( const wxString &str)
+- (void)controlTextDidEndEditing:(NSNotification *)aNotification
+{
+ if ( impl )
{
- [(wxNSTextField*) m_osxView setStringValue: wxCFStringRef( str , m_wxPeer->GetFont().GetEncoding() ).AsNSString()];
+ wxWindow* wxpeer = (wxWindow*) impl->GetWXPeer();
+ if ( wxpeer ) {
+ wxFocusEvent event(wxEVT_KILL_FOCUS, wxpeer->GetId());
+ event.SetEventObject( wxpeer );
+ event.SetWindow( wxpeer );
+ wxpeer->HandleWindowEvent( event );
+ }
}
- virtual void Copy() {}
- virtual void Cut() {}
- virtual void Paste() {}
- virtual bool CanPaste() const { return false;}
- virtual void SetEditable(bool editable) {}
- virtual void GetSelection( long* from, long* to) const {}
- virtual void SetSelection( long from , long to ){}
- virtual void WriteText(const wxString& str)
+}
+
+- (void) enterAction: (id) sender
+{
+ if ( impl )
{
- // temp hack to get logging working early
- wxString former = GetStringValue();
- SetStringValue( former + str );
+ 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)
+{
+}
+
+wxNSTextFieldControl::~wxNSTextFieldControl()
+{
+}
+
+wxString wxNSTextFieldControl::GetStringValue() const
+{
+ wxCFStringRef cf( (CFStringRef) [[(wxNSTextField*) m_osxView stringValue] retain] );
+ return cf.AsString(m_wxPeer->GetFont().GetEncoding());
+}
+void wxNSTextFieldControl::SetStringValue( const wxString &str)
+{
+ [(wxNSTextField*) m_osxView setStringValue: wxCFStringRef( str , m_wxPeer->GetFont().GetEncoding() ).AsNSString()];
+}
+void wxNSTextFieldControl::Copy()
+{
+}
+
+void wxNSTextFieldControl::Cut()
+{
+}
+
+void wxNSTextFieldControl::Paste()
+{
+}
+
+bool wxNSTextFieldControl::CanPaste() const
+{
+ return false;
+}
+
+void wxNSTextFieldControl::SetEditable(bool editable)
+{
+ [(wxNSTextField*) m_osxView setEditable:editable];
+}
+
+void wxNSTextFieldControl::GetSelection( long* from, long* to) const
+{
+}
+
+void wxNSTextFieldControl::SetSelection( long from , long to )
+{
+}
+
+void wxNSTextFieldControl::WriteText(const wxString& str)
+{
+ // temp hack to get logging working early
+ wxString former = GetStringValue();
+ SetStringValue( former + str );
+}
wxWidgetImplType* wxWidgetImpl::CreateTextControl( wxTextCtrl* wxpeer,
wxWindowMac* parent,
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 setBezeled:NO];
+ [v setBordered:NO];
+ }
//[v setBezeled:NO];
//[v setEditable:NO];