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:
@@ -2,7 +2,7 @@
|
|||||||
// Name: src/cocoa/textctrl.mm
|
// Name: src/cocoa/textctrl.mm
|
||||||
// Purpose: wxTextCtrl
|
// Purpose: wxTextCtrl
|
||||||
// Author: David Elliott
|
// Author: David Elliott
|
||||||
// Modified by:
|
// Modified by: Mark Oxenham
|
||||||
// Created: 2003/03/16
|
// Created: 2003/03/16
|
||||||
// RCS-ID: $Id$
|
// RCS-ID: $Id$
|
||||||
// Copyright: (c) 2003 David Elliott
|
// 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 setTarget: sm_cocoaTarget];
|
||||||
[(NSTextField*)m_cocoaNSView setAction:@selector(wxNSControlAction:)];
|
[(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;
|
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()
|
void wxTextCtrl::MarkDirty()
|
||||||
@@ -167,7 +193,7 @@ void wxTextCtrl::WriteText(wxString const&)
|
|||||||
|
|
||||||
bool wxTextCtrl::IsEditable() const
|
bool wxTextCtrl::IsEditable() const
|
||||||
{
|
{
|
||||||
return true;
|
return [GetNSTextField() isEditable];
|
||||||
}
|
}
|
||||||
|
|
||||||
bool wxTextCtrl::IsModified() const
|
bool wxTextCtrl::IsModified() const
|
||||||
@@ -201,7 +227,8 @@ int wxTextCtrl::GetLineLength(long) const
|
|||||||
|
|
||||||
wxTextPos wxTextCtrl::GetLastPosition() const
|
wxTextPos wxTextCtrl::GetLastPosition() const
|
||||||
{
|
{
|
||||||
return 0;
|
// working - returns the size of the wxString
|
||||||
|
return (long)(GetValue().Len());
|
||||||
}
|
}
|
||||||
|
|
||||||
int wxTextCtrl::GetNumberOfLines() const
|
int wxTextCtrl::GetNumberOfLines() const
|
||||||
|
Reference in New Issue
Block a user