wxTextCtrl: Implement alignment flags, editable (read only) status, and GetLastPosition.

Patch from Mark Oxenham. Copyright 2007 Software 2000 Ltd.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@48438 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
David Elliott
2007-08-28 21:47:45 +00:00
parent 2baf8467ce
commit da19c58b60

View File

@@ -2,7 +2,7 @@
// Name: src/cocoa/textctrl.mm
// Purpose: wxTextCtrl
// Author: David Elliott
// Modified by:
// Modified by: Mark Oxenham
// Created: 2003/03/16
// RCS-ID: $Id$
// Copyright: (c) 2003 David Elliott
@@ -62,7 +62,23 @@ bool wxTextCtrl::Create(wxWindow *parent, wxWindowID winid,
[(NSTextField*)m_cocoaNSView setTarget: sm_cocoaTarget];
[(NSTextField*)m_cocoaNSView setAction:@selector(wxNSControlAction:)];
// set the text alignment option
NSTextAlignment alignStyle;
if (style & wxTE_RIGHT)
alignStyle = NSRightTextAlignment;
else if (style & wxTE_CENTRE)
alignStyle = NSCenterTextAlignment;
else // default to wxTE_LEFT because it is 0 and can't be tested
alignStyle = NSLeftTextAlignment;
[GetNSControl() setAlignment:alignStyle];
// if Read-only then set as such, this flag is overwritable by wxTextCtrl::SetEditable(TRUE)
if (style & wxTE_READONLY)
{
SetEditable(FALSE);
}
return true;
}
@@ -92,8 +108,18 @@ void wxTextCtrl::AppendText(wxString const&)
{
}
void wxTextCtrl::SetEditable(bool)
void wxTextCtrl::SetEditable(bool editable)
{
// first ensure that the current value is stored (in case the user had not finished editing
// before SetEditable(FALSE) was called)
DoSetValue(GetValue(),1);
[GetNSTextField() setEditable: editable];
// forces the focus on the textctrl to be lost - while focus is still maintained
// after SetEditable(FALSE) the user may still edit the control
// (might not the best way to do this..)
[GetNSTextField() abortEditing];
}
void wxTextCtrl::MarkDirty()
@@ -167,7 +193,7 @@ void wxTextCtrl::WriteText(wxString const&)
bool wxTextCtrl::IsEditable() const
{
return true;
return [GetNSTextField() isEditable];
}
bool wxTextCtrl::IsModified() const
@@ -201,7 +227,8 @@ int wxTextCtrl::GetLineLength(long) const
wxTextPos wxTextCtrl::GetLastPosition() const
{
return 0;
// working - returns the size of the wxString
return (long)(GetValue().Len());
}
int wxTextCtrl::GetNumberOfLines() const