\constfunc{bool}{HasBackgroundColour}{\void}
-Returns {\tt TRUE} if this style specifies the background colour to use.
+Returns {\tt true} if this style specifies the background colour to use.
\membersection{wxTextAttr::HasFont}
\constfunc{bool}{HasFont}{\void}
-Returns {\tt TRUE} if this style specifies the font to use.
+Returns {\tt true} if this style specifies the font to use.
\membersection{wxTextAttr::HasTextColour}
\constfunc{bool}{HasTextColour}{\void}
-Returns {\tt TRUE} if this style specifies the foreground colour to use.
+Returns {\tt true} if this style specifies the foreground colour to use.
\membersection{wxTextAttr::IsDefault}
\constfunc{bool}{IsDefault}{\void}
-Returns {\tt TRUE} if this style specifies any non-default attributes.
+Returns {\tt true} if this style specifies any non-default attributes.
%%%%%%%%%%%%%%%%%%%%%%%%%%%% wxTextCtrl %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\twocolwidtha{5cm}
\begin{twocollist}\itemsep=0pt
\twocolitem{\windowstyle{wxTE\_PROCESS\_ENTER}}{The control will generate
-the message wxEVENT\_TYPE\_TEXT\_ENTER\_COMMAND (otherwise pressing <Enter> is
-either processed internally by the control or used for navigation between
+the message wxEVENT\_TYPE\_TEXT\_ENTER\_COMMAND (otherwise pressing Enter key
+is either processed internally by the control or used for navigation between
dialog controls).}
\twocolitem{\windowstyle{wxTE\_PROCESS\_TAB}}{The control will receive
EVT\_CHAR messages for TAB pressed - normally, TAB is used for passing to the
doesn't show the selection when it doesn't have focus - use this style to force
it to always show it. It doesn't do anything under other platforms.}
\twocolitem{\windowstyle{wxHSCROLL}}{A horizontal scrollbar will be created. No effect under GTK+.}
+\twocolitem{\windowstyle{wxTE\_LEFT}}{The text in the control will be left-justified (default).}
+\twocolitem{\windowstyle{wxTE\_CENTRE}}{The text in the control will be centered.}
+\twocolitem{\windowstyle{wxTE\_RIGHT}}{The text in the control will be right-justified.}
\twocolitem{\windowstyle{wxTE\_DONTWRAP}}{Same as {\tt wxHSCROLL} style.}
-\twocolitem{\windowstyle{wxTE\_LINEWRAP}}{Wrap the lines too long to be shown entirely at any position (wxUniv only currently)}
-\twocolitem{\windowstyle{wxTE\_WORDWRAP}}{Wrap the lines too long to be shown entirely at word boundaries only (wxUniv only currently)}
+\twocolitem{\windowstyle{wxTE\_LINEWRAP}}{Wrap the lines too long to be shown entirely at any position (wxUniv only currently).}
+\twocolitem{\windowstyle{wxTE\_WORDWRAP}}{Wrap the lines too long to be shown entirely at word boundaries only (wxUniv only currently).}
\end{twocollist}
See also \helpref{window styles overview}{windowstyles} and
\helpref{wxTextCtrl::wxTextCtrl}{wxtextctrlconstr}.
+\wxheading{wxTextCtrl text format}
+
+The multiline text controls always store the text as a sequence of lines
+separated by {\tt $\backslash$n} characters, i.e. in the Unix text format even
+on non-Unix platforms. This allows the user code to ignore the differences
+between the platforms but at a price: the indices in the control such as those
+returned by \helpref{GetInsertionPoint}{wxtextctrlgetinsertionpoint} or
+\helpref{GetSelection}{wxtextctrlgetselection} can {\bf not} be used as
+indices into the string returned by \helpref{GetValue}{wxtextctrlgetvalue} as
+they're going to be slightly off for platforms using
+{\tt $\backslash$r$\backslash$n} as separator (as Windows does), for example.
+
+Instead, if you need to obtain a substring between the $2$ indices obtained
+from the control with the help of the functions mentioned above, you should
+use \helpref{GetRange}{wxtextctrlgetrange}. And the indices themselves can
+only be passed to other methods, for example
+\helpref{SetInsertionPoint}{wxtextctrlsetinsertionpoint} or
+\helpref{SetSelection}{wxtextctrlsetselection}.
+
+To summarize: never use the indices returned by (multiline) wxTextCtrl as
+indices into the string it contains, but only as arguments to be passed back
+to the other wxTextCtrl methods.
+
\wxheading{wxTextCtrl styles}
Multi-line text controls support the styles, i.e. provide a possibility to set
when the text controls contents changes - whether this is due to user input or
comes from the program itself (for example, if SetValue() is called)}
\twocolitem{{\bf EVT\_TEXT\_ENTER(id, func)}}{Respond to a wxEVT\_COMMAND\_TEXT\_ENTER event,
-generated when enter is pressed in a single-line text control.}
+generated when enter is pressed in a text control (which must have
+wxTE\_PROCESS\_ENTER style for this event to be generated).}
\twocolitem{{\bf EVT\_TEXT\_URL(id, func)}}{A mouse event occured over an URL
in the text control (Win32 only)}
\twocolitem{{\bf EVT\_TEXT\_MAXLEN(id, func)}}{User tried to enter more text
\func{virtual bool}{CanCopy}{\void}
-Returns {\tt TRUE} if the selection can be copied to the clipboard.
+Returns {\tt true} if the selection can be copied to the clipboard.
\membersection{wxTextCtrl::CanCut}\label{wxtextctrlcancut}
\func{virtual bool}{CanCut}{\void}
-Returns {\tt TRUE} if the selection can be cut to the clipboard.
+Returns {\tt true} if the selection can be cut to the clipboard.
\membersection{wxTextCtrl::CanPaste}\label{wxtextctrlcanpaste}
\func{virtual bool}{CanPaste}{\void}
-Returns {\tt TRUE} if the contents of the clipboard can be pasted into the
+Returns {\tt true} if the contents of the clipboard can be pasted into the
text control. On some platforms (Motif, GTK) this is an approximation
-and returns {\tt TRUE} if the control is editable, {\tt FALSE} otherwise.
+and returns {\tt true} if the control is editable, {\tt false} otherwise.
\membersection{wxTextCtrl::CanRedo}\label{wxtextctrlcanredo}
\func{virtual bool}{CanRedo}{\void}
-Returns {\tt TRUE} if there is a redo facility available and the last operation
+Returns {\tt true} if there is a redo facility available and the last operation
can be redone.
\membersection{wxTextCtrl::CanUndo}\label{wxtextctrlcanundo}
\func{virtual bool}{CanUndo}{\void}
-Returns {\tt TRUE} if there is an undo facility available and the last operation
+Returns {\tt true} if there is an undo facility available and the last operation
can be undone.
\membersection{wxTextCtrl::Clear}\label{wxtextctrlclear}
Clears the text in the control.
+Note that this function will generate a {\tt wxEVT\_COMMAND\_TEXT\_UPDATED}
+event.
+
\membersection{wxTextCtrl::Copy}\label{wxtextctrlcopy}
\func{virtual void}{Copy}{\void}
{\it event} object should be the same as the one passed to {\tt EVT\_KEY\_DOWN}
handler previously by wxWindows.
+Please note that this function doesn't currently work correctly for all keys
+under any platform but MSW.
+
\wxheading{Return value}
-{\tt TRUE} if the event resulted in a change to the control, {\tt FALSE}
+{\tt true} if the event resulted in a change to the control, {\tt false}
otherwise.
\membersection{wxTextCtrl::GetDefaultStyle}\label{wxtextctrlgetdefaultstyle}
\constfunc{wxString}{GetValue}{\void}
Gets the contents of the control. Notice that for a multiline text control,
-the lines will be separated by (Unix-style) $\backslash$n characters, even under
-Windows where they are separated by a $\backslash$r$\backslash$n sequence in the native control.
+the lines will be separated by (Unix-style) $\backslash$n characters, even
+under Windows where they are separated by a $\backslash$r$\backslash$n
+sequence in the native control.
\membersection{wxTextCtrl::IsEditable}\label{wxtextctrliseditable}
\constfunc{bool}{IsEditable}{\void}
-Returns {\tt TRUE} if the controls contents may be edited by user (note that it
+Returns {\tt true} if the controls contents may be edited by user (note that it
always can be changed by the program), i.e. if the control hasn't been put in
read-only mode by a previous call to
\helpref{SetEditable}{wxtextctrlseteditable}.
\constfunc{bool}{IsModified}{\void}
-Returns {\tt TRUE} if the text has been modified by user. Note that calling
+Returns {\tt true} if the text has been modified by user. Note that calling
\helpref{SetValue}{wxtextctrlsetvalue} doesn't make the control modified.
+\membersection{wxTextCtrl::IsMultiLine}\label{wxtextctrlismultiline}
+
+\constfunc{bool}{IsMultiLine}{\void}
+
+Returns {\tt true} if this is a multi line edit control and {\tt false}
+otherwise.
+
+\wxheading{See also}
+
+\helpref{IsSingleLine}{wxtextctrlissingleline}
+
+\membersection{wxTextCtrl::IsSingleLine}\label{wxtextctrlissingleline}
+
+\constfunc{bool}{IsSingleLine}{\void}
+
+Returns {\tt true} if this is a single line edit control and {\tt false}
+otherwise.
+
+\wxheading{See also}
+
+\helpref{IsMultiLine}{wxtextctrlissingleline}
+
\membersection{wxTextCtrl::LoadFile}\label{wxtextctrlloadfile}
\func{bool}{LoadFile}{\param{const wxString\& }{ filename}}
\wxheading{Return value}
-{\tt TRUE} if successful, {\tt FALSE} otherwise.
+{\tt true} if successful, {\tt false} otherwise.
% VZ: commenting this out as: (a) the docs are wrong (you can't replace
% anything), (b) wxTextCtrl doesn't have any OnChar() anyhow
\wxheading{Return value}
-{\tt TRUE} on success, {\tt FALSE} on failure (most likely due to a too large position
+{\tt true} on success, {\tt false} on failure (most likely due to a too large position
parameter).
\wxheading{See also}
\wxheading{Return value}
-{\tt TRUE} if the operation was successful, {\tt FALSE} otherwise.
+{\tt true} if the operation was successful, {\tt false} otherwise.
\membersection{wxTextCtrl::SetDefaultStyle}\label{wxtextctrlsetdefaultstyle}
\wxheading{Return value}
-{\tt TRUE} on success, {\tt FALSE} if an error occured - may also mean that
+{\tt true} on success, {\tt false} if an error occured - may also mean that
the styles are not supported under this platform.
\wxheading{See also}
\wxheading{Parameters}
-\docparam{editable}{If {\tt TRUE}, the control is editable. If {\tt FALSE}, the control is read-only.}
+\docparam{editable}{If {\tt true}, the control is editable. If {\tt false}, the control is read-only.}
\wxheading{See also}
\func{virtual void}{SetSelection}{\param{long}{ from}, \param{long}{ to}}
-Selects the text starting at the first position up to (but not including) the character at the last position.
+Selects the text starting at the first position up to (but not including) the
+character at the last position. If both parameters are equal to $-1$ all text
+in the control is selected.
\wxheading{Parameters}
\wxheading{Return value}
-{\tt TRUE} on success, {\tt FALSE} if an error occured - may also mean that
+{\tt true} on success, {\tt false} if an error occured - may also mean that
the styles are not supported under this platform.
\membersection{wxTextCtrl::SetValue}\label{wxtextctrlsetvalue}
\func{virtual void}{SetValue}{\param{const wxString\& }{ value}}
Sets the text value and marks the control as not-modified (which means that
-\helpref{IsModified}{wxtextctrlismodified} would return {\tt FALSE} immediately
+\helpref{IsModified}{wxtextctrlismodified} would return {\tt false} immediately
after the call to SetValue).
+Note that this function will generate a {\tt wxEVT\_COMMAND\_TEXT\_UPDATED}
+event.
+
\wxheading{Parameters}
\docparam{value}{The new value to set. It may contain newline characters if the text control is multi-line.}