#include "wx/osx/private.h"
#include "wx/osx/cocoa/private/textimpl.h"
-@interface NSView(EditableView)
+@interface NSView(EditableView)
- (BOOL)isEditable;
- (void)setEditable:(BOOL)flag;
@end
NSView* m_textView;
} ;
-@implementation wxNSSecureTextField
+@implementation wxNSSecureTextField
+ (void)initialize
{
static BOOL initialized = NO;
- if (!initialized)
+ if (!initialized)
{
initialized = YES;
wxOSXCocoaClassAddWXMethods( self );
+ (void)initialize
{
static BOOL initialized = NO;
- if (!initialized)
- {
+ if (!initialized)
+ {
initialized = YES;
wxOSXCocoaClassAddWXMethods( self );
}
+ (void)initialize
{
static BOOL initialized = NO;
- if (!initialized)
+ if (!initialized)
{
initialized = YES;
wxOSXCocoaClassAddWXMethods( self );
+ (void)initialize
{
static BOOL initialized = NO;
- if (!initialized)
+ if (!initialized)
{
initialized = YES;
wxOSXCocoaClassAddWXMethods( self );
if ( impl )
{
wxWindow* wxpeer = (wxWindow*) impl->GetWXPeer();
- if ( wxpeer && wxpeer->GetWindowStyle() & wxTE_PROCESS_ENTER )
+ if ( wxpeer && wxpeer->GetWindowStyle() & wxTE_PROCESS_ENTER )
{
wxCommandEvent event(wxEVT_COMMAND_TEXT_ENTER, wxpeer->GetId());
event.SetEventObject( wxpeer );
}
}
}
-
+
return NO;
}
{
wxNSTextScrollView* sv = (wxNSTextScrollView*) w;
m_scrollView = sv;
-
+
[m_scrollView setHasVerticalScroller:YES];
[m_scrollView setHasHorizontalScroller:NO];
[m_scrollView setAutoresizingMask:NSViewWidthSizable | NSViewHeightSizable];
NSSize contentSize = [m_scrollView contentSize];
-
+
wxNSTextView* tv = [[wxNSTextView alloc] initWithFrame: NSMakeRect(0, 0,
contentSize.width, contentSize.height)];
m_textView = tv;
[tv setVerticallyResizable:YES];
[tv setHorizontallyResizable:NO];
[tv setAutoresizingMask:NSViewWidthSizable];
-
+
[m_scrollView setDocumentView: tv];
[tv setDelegate: w];
-
- InstallEventHandler(tv);
+
+ InstallEventHandler(tv);
}
wxNSTextViewControl::~wxNSTextViewControl()
[m_textView setDelegate: nil];
}
-wxString wxNSTextViewControl::GetStringValue() const
+wxString wxNSTextViewControl::GetStringValue() const
{
- if (m_textView)
+ if (m_textView)
{
- wxCFStringRef cf( (CFStringRef) [[m_textView string] retain] );
- wxString result = cf.AsString(m_wxPeer->GetFont().GetEncoding());
+ wxString result = wxCFStringRef::AsString([m_textView string], m_wxPeer->GetFont().GetEncoding());
wxMacConvertNewlines13To10( &result ) ;
return result;
}
return wxEmptyString;
}
-void wxNSTextViewControl::SetStringValue( const wxString &str)
+void wxNSTextViewControl::SetStringValue( const wxString &str)
{
wxString st = str;
wxMacConvertNewlines10To13( &st );
[m_textView setString: wxCFStringRef( st , m_wxPeer->GetFont().GetEncoding() ).AsNSString()];
}
-void wxNSTextViewControl::Copy()
+void wxNSTextViewControl::Copy()
{
if (m_textView)
[m_textView copy:nil];
}
-void wxNSTextViewControl::Cut()
+void wxNSTextViewControl::Cut()
{
if (m_textView)
[m_textView cut:nil];
}
-void wxNSTextViewControl::Paste()
+void wxNSTextViewControl::Paste()
{
if (m_textView)
[m_textView paste:nil];
}
-bool wxNSTextViewControl::CanPaste() const
-{
+bool wxNSTextViewControl::CanPaste() const
+{
return true;
}
-void wxNSTextViewControl::SetEditable(bool editable)
+void wxNSTextViewControl::SetEditable(bool editable)
{
if (m_textView)
[m_textView setEditable: editable];
}
-void wxNSTextViewControl::GetSelection( long* from, long* to) const
+void wxNSTextViewControl::GetSelection( long* from, long* to) const
{
if (m_textView)
{
[m_textView scrollRangeToVisible:selrange];
}
-void wxNSTextViewControl::WriteText(const wxString& str)
+void wxNSTextViewControl::WriteText(const wxString& str)
{
wxString st = str;
wxMacConvertNewlines10To13( &st );
wxMacEditHelper helper(m_textView);
-
+
[m_textView insertText:wxCFStringRef( st , m_wxPeer->GetFont().GetEncoding() ).AsNSString()];
}
[m_textField setDelegate: nil];
}
-wxString wxNSTextFieldControl::GetStringValue() const
+wxString wxNSTextFieldControl::GetStringValue() const
{
- wxCFStringRef cf( (CFStringRef) [[m_textField stringValue] retain] );
- return cf.AsString(m_wxPeer->GetFont().GetEncoding());
+ return wxCFStringRef::AsString([m_textField stringValue], m_wxPeer->GetFont().GetEncoding());
}
-void wxNSTextFieldControl::SetStringValue( const wxString &str)
+void wxNSTextFieldControl::SetStringValue( const wxString &str)
{
wxMacEditHelper helper(m_textField);
[m_textField setStringValue: wxCFStringRef( str , m_wxPeer->GetFont().GetEncoding() ).AsNSString()];
}
-void wxNSTextFieldControl::Copy()
+void wxNSTextFieldControl::Copy()
{
NSText* editor = [m_textField currentEditor];
if ( editor )
}
}
-void wxNSTextFieldControl::Cut()
+void wxNSTextFieldControl::Cut()
{
NSText* editor = [m_textField currentEditor];
if ( editor )
}
}
-void wxNSTextFieldControl::Paste()
+void wxNSTextFieldControl::Paste()
{
NSText* editor = [m_textField currentEditor];
if ( editor )
}
}
-bool wxNSTextFieldControl::CanPaste() const
-{
+bool wxNSTextFieldControl::CanPaste() const
+{
return true;
}
-void wxNSTextFieldControl::SetEditable(bool editable)
+void wxNSTextFieldControl::SetEditable(bool editable)
{
[m_textField setEditable:editable];
}
-void wxNSTextFieldControl::GetSelection( long* from, long* to) const
+void wxNSTextFieldControl::GetSelection( long* from, long* to) const
{
NSText* editor = [m_textField currentEditor];
if ( editor )
}
}
-void wxNSTextFieldControl::WriteText(const wxString& str)
+void wxNSTextFieldControl::WriteText(const wxString& str)
{
NSText* editor = [m_textField currentEditor];
if ( editor )
}
}
-void wxNSTextFieldControl::controlAction(WXWidget WXUNUSED(slf),
+void wxNSTextFieldControl::controlAction(WXWidget WXUNUSED(slf),
void* WXUNUSED(_cmd), void *WXUNUSED(sender))
{
wxWindow* wxpeer = (wxWindow*) GetWXPeer();
- if ( wxpeer && (wxpeer->GetWindowStyle() & wxTE_PROCESS_ENTER) )
+ if ( wxpeer && (wxpeer->GetWindowStyle() & wxTE_PROCESS_ENTER) )
{
wxCommandEvent event(wxEVT_COMMAND_TEXT_ENTER, wxpeer->GetId());
event.SetEventObject( wxpeer );
//
//
-wxWidgetImplType* wxWidgetImpl::CreateTextControl( wxTextCtrl* wxpeer,
- wxWindowMac* WXUNUSED(parent),
- wxWindowID WXUNUSED(id),
+wxWidgetImplType* wxWidgetImpl::CreateTextControl( wxTextCtrl* wxpeer,
+ wxWindowMac* WXUNUSED(parent),
+ wxWindowID WXUNUSED(id),
const wxString& str,
- const wxPoint& pos,
+ const wxPoint& pos,
const wxSize& size,
- long style,
+ long style,
long WXUNUSED(extraStyle))
{
NSRect r = wxOSXGetFrameForControl( wxpeer, pos , size ) ;
wxWidgetCocoaImpl* c = NULL;
-
+
if ( style & wxTE_MULTILINE || style & wxTE_RICH || style & wxTE_RICH2 )
{
wxNSTextScrollView* v = nil;
c = new wxNSTextViewControl( wxpeer, v );
static_cast<wxNSTextViewControl*>(c)->SetStringValue(str);
}
- else
+ else
{
NSTextField* v = nil;
if ( style & wxTE_PASSWORD )
v = [[wxNSSecureTextField alloc] initWithFrame:r];
else
v = [[wxNSTextField alloc] initWithFrame:r];
-
+
if ( style & wxNO_BORDER )
{
// FIXME: How can we remove the native control's border?
// setBordered is separate from the text ctrl's border.
}
-
+
[v setBezeled:NO];
[v setBordered:NO];
-
+
c = new wxNSTextFieldControl( wxpeer, v );
static_cast<wxNSTextFieldControl*>(c)->SetStringValue(str);
}
-
+
return c;
}