X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/d2d50a41fc5c7f5be37e2daa0cfb8e506d7c31cf..2e622163d05d0813bd6fa4223c18e0ec2f6dc074:/docs/latex/wx/text.tex diff --git a/docs/latex/wx/text.tex b/docs/latex/wx/text.tex index 2e7e589b34..7e2751726a 100644 --- a/docs/latex/wx/text.tex +++ b/docs/latex/wx/text.tex @@ -2,9 +2,13 @@ \section{\class{wxTextAttr}}\label{wxtextattr} -wxTextAttr represents the attributes, or style, for a range of text in a\rtfsp +wxTextAttr represents the character and paragraph attributes, or style, for a range of text in a\rtfsp \helpref{wxTextCtrl}{wxtextctrl}. +When setting up a wxTextAttr object, pass a bitlist mask to SetFlags to indicate +which style elements should be changed. As a convenience, when you call a +setter such as SetFont, the relevant bit will be set. + \wxheading{Derived from} No base class @@ -13,60 +17,184 @@ No base class +\wxheading{Constants} + +The following values can be passed to SetAlignment to determine +paragraph alignment. + +{\small +\begin{verbatim} +enum wxTextAttrAlignment +{ + wxTEXT_ALIGNMENT_DEFAULT, + wxTEXT_ALIGNMENT_LEFT, + wxTEXT_ALIGNMENT_CENTRE, + wxTEXT_ALIGNMENT_CENTER = wxTEXT_ALIGNMENT_CENTRE, + wxTEXT_ALIGNMENT_RIGHT, + wxTEXT_ALIGNMENT_JUSTIFIED +}; +\end{verbatim} +} + +These values are passed in a bitlist to SetFlags to determine +what attributes will be considered when setting the attributes +for a text control. + +{\small +\begin{verbatim} +#define wxTEXT_ATTR_TEXT_COLOUR 0x0001 +#define wxTEXT_ATTR_BACKGROUND_COLOUR 0x0002 +#define wxTEXT_ATTR_FONT_FACE 0x0004 +#define wxTEXT_ATTR_FONT_SIZE 0x0008 +#define wxTEXT_ATTR_FONT_WEIGHT 0x0010 +#define wxTEXT_ATTR_FONT_ITALIC 0x0020 +#define wxTEXT_ATTR_FONT_UNDERLINE 0x0040 +#define wxTEXT_ATTR_FONT \ + wxTEXT_ATTR_FONT_FACE | wxTEXT_ATTR_FONT_SIZE | wxTEXT_ATTR_FONT_WEIGHT \ +| wxTEXT_ATTR_FONT_ITALIC | wxTEXT_ATTR_FONT_UNDERLINE +#define wxTEXT_ATTR_ALIGNMENT 0x0080 +#define wxTEXT_ATTR_LEFT_INDENT 0x0100 +#define wxTEXT_ATTR_RIGHT_INDENT 0x0200 +#define wxTEXT_ATTR_TABS 0x0400 +\end{verbatim} +} + \latexignore{\rtfignore{\wxheading{Members}}} \membersection{wxTextAttr::wxTextAttr}\label{wxtextattrctor} \func{}{wxTextAttr}{\void} -\func{}{wxTextAttr}{\param{const wxColour\& }{colText}, \param{const wxColour\& }{colBack = wxNullColour}, \param{const wxFont\& }{font = wxNullFont}} +\func{}{wxTextAttr}{\param{const wxColour\& }{colText}, \param{const wxColour\& }{colBack = wxNullColour}, + \param{const wxFont\& }{font = wxNullFont}, \param{wxTextAttrAlignment }{alignment = wxTEXT\_ALIGNMENT\_DEFAULT}} -The constructors initialize one or more of the text foreground and background -colours and font. The values not initialized in the constructor can be set +The constructors initialize one or more of the text foreground colour, background +colour, font, and alignment. The values not initialized in the constructor can be set later, otherwise \helpref{wxTextCtrl::SetStyle}{wxtextctrlsetstyle} will use the default values for them. -\membersection{wxTextAttr::GetBackgroundColour} +\membersection{wxTextAttr::GetAlignment}\label{wxtextattrgetalignment} + +\constfunc{wxTextAttrAlignment}{GetAlignment}{\void} + +Returns the paragraph alignment. + +\membersection{wxTextAttr::GetBackgroundColour}\label{wxtextattrgetbackgroundcolour} \constfunc{const wxColour\&}{GetBackgroundColour}{\void} Return the background colour specified by this attribute. -\membersection{wxTextAttr::GetFont} +\membersection{wxTextAttr::GetFont}\label{wxtextattrgetfont} \constfunc{const wxFont\&}{GetFont}{\void} Return the text font specified by this attribute. -\membersection{wxTextAttr::GetTextColour} +\membersection{wxTextAttr::GetLeftIndent}\label{wxtextattrgetleftindent} + +\constfunc{int}{GetLeftIndent}{\void} + +Returns the left indent in tenths of a millimetre. + +\membersection{wxTextAttr::GetRightIndent}\label{wxtextattrgetrightindent} + +\constfunc{int}{GetRightIndent}{\void} + +Returns the right indent in tenths of a millimetre. + +\membersection{wxTextAttr::GetTabs}\label{wxtextattrgettabs} + +\constfunc{const wxArrayInt\&}{GetTabs}{\void} + +Returns the array of integers representing the tab stops. Each +array element specifies the tab stop in tenths of a millimetre. + +\membersection{wxTextAttr::GetTextColour}\label{wxtextattrgettextcolour} \constfunc{const wxColour\&}{GetTextColour}{\void} Return the text colour specified by this attribute. -\membersection{wxTextAttr::HasBackgroundColour} +\membersection{wxTextAttr::HasBackgroundColour}\label{wxtextattrhasbackgroundcolour} \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} +\membersection{wxTextAttr::HasFont}\label{wxtextattrhasfont} \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} +\membersection{wxTextAttr::HasTextColour}\label{wxtextattrhastextcolour} \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::GetFlags}\label{wxtextattrgetflags} + +\func{long}{GetFlags}{\void} -\membersection{wxTextAttr::IsDefault} +Returns a bitlist indicating which attributes will be set. + +\membersection{wxTextAttr::IsDefault}\label{wxtextattrisdefault} \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. + +\membersection{wxTextAttr::SetAlignment}\label{wxtextattrsetalignment} + +\func{void}{SetAlignment}{\param{wxTextAttrAlignment}{ alignment}} + +Sets the paragraph alignment. + +\membersection{wxTextAttr::SetBackgroundColour}\label{wxtextattrsetbackgroundcolour} + +\func{void}{SetBackgroundColour}{\param{const wxColour\& }{colour}} + +Sets the background colour. + +\membersection{wxTextAttr::SetFlags}\label{wxtextattrsetflags} + +\func{void}{SetFlags}{\param{long}{ flags}} + +Pass a bitlist indicating which attributes will be set. + +\membersection{wxTextAttr::SetFont}\label{wxtextattrsetfont} + +\func{void}{SetFont}{\param{const wxFont\&}{ font}} + +Sets the text font. + +\membersection{wxTextAttr::SetLeftIndent}\label{wxtextattrsetleftindent} + +\func{void}{SetLeftIndent}{\param{int }{indent}} + +Sets the left indent in tenths of a millimetre. + +\membersection{wxTextAttr::SetRightIndent}\label{wxtextattrsetrightindent} + +\func{void}{SetRightIndent}{\param{int }{indent}} + +Sets the right indent in tenths of a millimetre. + +\membersection{wxTextAttr::SetTabs}\label{wxtextattrsettabs} + +\func{void}{SetTabs}{\param{const wxArrayInt\&}{ tabs}} + +Sets the array of integers representing the tab stops. Each +array element specifies the tab stop in tenths of a millimetre. + +\membersection{wxTextAttr::SetTextColour}\label{wxtextattrsettextcolour} + +\func{void}{SetTextColour}{\param{const wxColour\& }{colour}} + +Sets the text colour. + %%%%%%%%%%%%%%%%%%%%%%%%%%%% wxTextCtrl %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% @@ -92,10 +220,10 @@ streambuf\\ \twocolwidtha{5cm} \begin{twocollist}\itemsep=0pt \twocolitem{\windowstyle{wxTE\_PROCESS\_ENTER}}{The control will generate -the message wxEVENT\_TYPE\_TEXT\_ENTER\_COMMAND (otherwise pressing 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 receieve +\twocolitem{\windowstyle{wxTE\_PROCESS\_TAB}}{The control will receive EVT\_CHAR messages for TAB pressed - normally, TAB is used for passing to the next control in a dialog instead. For the control created with this style, you can still use Ctrl-Enter to pass to the next control from the keyboard.} @@ -113,15 +241,42 @@ under Win32 only and requires wxTE\_RICH.} \twocolitem{\windowstyle{wxTE\_NOHIDESEL}}{By default, the Windows text control 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{wxHSCROLL}}{A horizontal scrollbar will be created and +used, so that text won't be wrapped. 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 @@ -243,7 +398,8 @@ generated when the text changes. Notice that this event will always be sent 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 @@ -331,34 +487,34 @@ the programmer should use \helpref{GetInsertionPoint}{wxtextctrlgetinsertionpoin \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} @@ -367,6 +523,9 @@ can be undone. 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} @@ -404,9 +563,12 @@ inserted if the given key event had occured in the text control. The {\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} @@ -543,19 +705,36 @@ consisting of the from and to values.} Gets the text currently selected in the control. If there is no selection, the returned string is empty. +\membersection{wxTextCtrl::GetStyle}\label{wxtextctrlgetstyle} + +\func{bool}{GetStyle}{\param{long }{position}, \param{wxTextAttr\& }{style}} + +Returns the style at this position in the text control. Not all platforms +support this function. + +\wxheading{Return value} + +{\tt true} on success, {\tt false} if an error occured - it may also mean that +the styles are not supported under this platform. + +\wxheading{See also} + +\helpref{wxTextCtrl::SetStyle}{wxtextctrlsetstyle}, \helpref{wxTextAttr}{wxtextattr} + \membersection{wxTextCtrl::GetValue}\label{wxtextctrlgetvalue} \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}. @@ -564,9 +743,31 @@ read-only mode by a previous call to \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}} @@ -579,7 +780,7 @@ Loads and displays the named file, if it exists. \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 @@ -652,7 +853,7 @@ Converts given position to a zero-based column, line number pair. \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} @@ -713,7 +914,7 @@ Saves the contents of the control in a text file. \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} @@ -738,7 +939,7 @@ wouldn't change it at all). \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} @@ -753,7 +954,7 @@ Makes the text item editable or read-only, overriding the {\bf wxTE\_READONLY} f \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} @@ -784,7 +985,7 @@ This function sets the maximum number of characters the user can enter into the control. In other words, it allows to limit the text value length to {\it len} not counting the terminating {\tt NUL} character. -If {\it len} is $0$, the previously set max length limi, if any, is discarded +If {\it len} is $0$, the previously set max length limit, if any, is discarded and the user may enter as much text as the underlying native text control widget supports (typically at least 32Kb). @@ -804,7 +1005,9 @@ Only implemented in wxMSW/wxGTK starting with wxWindows 2.3.2. \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} @@ -816,31 +1019,37 @@ Selects the text starting at the first position up to (but not including) the ch \func{bool}{SetStyle}{\param{long }{start}, \param{long }{end}, \param{const wxTextAttr\& }{style}} -Changes the style of the selection. If either of the font, foreground, or -background colour is not set in {\it style}, the values of\rtfsp -\helpref{GetDefaultStyle()}{wxtextctrlgetdefaultstyle} are used. +Changes the style of the given range. If any attribute within {\it style} is +not set, the correspondign attribute from \helpref{GetDefaultStyle()}{wxtextctrlgetdefaultstyle} is used. \wxheading{Parameters} -\docparam{start}{The start of selection to change.} +\docparam{start}{The start of the range to change.} -\docparam{end}{The end of selection to change.} +\docparam{end}{The end of the range to change.} -\docparam{style}{The new style for the selection.} +\docparam{style}{The new style for the range.} \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 - it may also mean that the styles are not supported under this platform. +\wxheading{See also} + +\helpref{wxTextCtrl::GetStyle}{wxtextctrlgetstyle}, \helpref{wxTextAttr}{wxtextattr} + \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.}