X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/562b006812ef1fd7b0a4169a0b303975dfc06fd7..78cb09ec439962b53ba75fef814b9a3871412287:/docs/latex/wx/text.tex diff --git a/docs/latex/wx/text.tex b/docs/latex/wx/text.tex index 7808739ee7..9f2d342360 100644 --- a/docs/latex/wx/text.tex +++ b/docs/latex/wx/text.tex @@ -1,257 +1,3 @@ -%%%%%%%%%%%%%%%%%%%%%%%%%%%% wxTextAttr %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\section{\class{wxTextAttr}}\label{wxtextattr} - -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 - -\wxheading{Include files} - - - -\wxheading{Typedefs} - -\texttt{wxTextPos} is the type containing the index of a position in a text -control. \texttt{wxTextCoord} contains the index of a column or a row in the -control. - -Note that although both of these types should probably have been unsigned, due -to backwards compatibility reasons, are defined as \texttt{long} currently. -Their use (instead of plain \texttt{long}) is still encouraged as it makes the -code more readable. - -\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}, \param{wxTextAttrAlignment }{alignment = wxTEXT\_ALIGNMENT\_DEFAULT}} - -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::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}\label{wxtextattrgetfont} - -\constfunc{const wxFont\&}{GetFont}{\void} - -Return the text font specified by this attribute. - - -\membersection{wxTextAttr::GetLeftIndent}\label{wxtextattrgetleftindent} - -\constfunc{int}{GetLeftIndent}{\void} - -Returns the left indent in tenths of a millimetre. - - -\membersection{wxTextAttr::GetLeftSubIndent}\label{wxtextattrgetleftsubindent} - -\constfunc{int}{GetLeftSubIndent}{\void} - -Returns the left sub indent for all lines but the first line in a paragraph 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}\label{wxtextattrhasbackgroundcolour} - -\constfunc{bool}{HasBackgroundColour}{\void} - -Returns {\tt true} if this style specifies the background colour to use. - - -\membersection{wxTextAttr::HasFont}\label{wxtextattrhasfont} - -\constfunc{bool}{HasFont}{\void} - -Returns {\tt true} if this style specifies the font to use. - - -\membersection{wxTextAttr::HasTextColour}\label{wxtextattrhastextcolour} - -\constfunc{bool}{HasTextColour}{\void} - -Returns {\tt true} if this style specifies the foreground colour to use. - - -\membersection{wxTextAttr::GetFlags}\label{wxtextattrgetflags} - -\func{long}{GetFlags}{\void} - -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. - - -\membersection{wxTextAttr::Merge}\label{wxtextattrmerge} - -\func{void}{Merge}{\param{const wxTextAttr\&}{ overlay}} - -Copies all defined/valid properties from \arg{overlay} to current object. - -\func{static wxTextAttr}{Merge}{\param{const wxTextAttr\&}{ base}, \param{const wxTextAttr\&}{ overlay}} - -Creates a new {\tt wxTextAttr} which is a merge of \arg{base} and -\arg{overlay}. Properties defined in \arg{overlay} take precedence over those -in \arg{base}. Properties undefined/invalid in both are undefined in the -result. - - -\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}, \param{int }{subIndent = 0}} - -Sets the left indent in tenths of a millimetre. -subIndent sets the indent for all lines but the first line in a paragraph -relative to the first line. - - -\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 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \section{\class{wxTextCtrl}}\label{wxtextctrl} @@ -271,6 +17,10 @@ streambuf\\ +\wxheading{Library} + +\helpref{wxCore}{librarieslist} + \wxheading{Window styles} \twocolwidtha{5cm} @@ -299,6 +49,10 @@ 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 and used, so that text won't be wrapped. No effect under wxGTK1.} +\twocolitem{\windowstyle{wxTE\_NO\_VSCROLL}}{For multiline controls only: +vertical scrollbar will never be created. This limits the amount of text which +can be entered into the control to what can be displayed in it under MSW but +not under GTK2. Currently not implemented for the other platforms.} \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 (currently wxMSW and wxGTK2 only).} \twocolitem{\windowstyle{wxTE\_RIGHT}}{The text in the control will be right-justified (currently wxMSW and wxGTK2 only).} @@ -311,6 +65,14 @@ used, so that text won't be wrapped. No effect under wxGTK1.} See also \helpref{window styles overview}{windowstyles} and \helpref{wxTextCtrl::wxTextCtrl}{wxtextctrlctor}. +Note that alignment styles (\windowstyle{wxTE\_LEFT}, +\windowstyle{wxTE\_CENTRE} and \windowstyle{wxTE\_RIGHT}) can be changed +dynamically after control creation on wxMSW and wxGTK. +\windowstyle{wxTE\_READONLY}, \windowstyle{wxTE\_PASSWORD} and wrapping styles +can be dynamically changed under wxGTK but not wxMSW. The other styles can be +only set during control creation. + + \wxheading{wxTextCtrl text format} The multiline text controls always store the text as a sequence of lines @@ -472,9 +234,10 @@ functions that take a \helpref{wxCommandEvent}{wxcommandevent} argument. \twocolwidtha{7cm}% \begin{twocollist}\itemsep=0pt \twocolitem{{\bf EVT\_TEXT(id, func)}}{Respond to a wxEVT\_COMMAND\_TEXT\_UPDATED event, -generated when the text changes. Notice that this event will always be sent +generated when the text changes. Notice that this event will 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)} +comes from the program itself (for example, if SetValue() is called); see ChangeValue() for +a function which does not send this event.} \twocolitem{{\bf EVT\_TEXT\_ENTER(id, func)}}{Respond to a wxEVT\_COMMAND\_TEXT\_ENTER event, generated when enter is pressed in a text control (which must have wxTE\_PROCESS\_ENTER style for this event to be generated).} @@ -565,6 +328,50 @@ the programmer should use \helpref{GetInsertionPoint}{wxtextctrlgetinsertionpoin \helpref{wxTextCtrl::WriteText}{wxtextctrlwritetext} +\membersection{wxTextCtrl::AutoComplete}\label{wxtextctrlautocomplete} + +\func{bool}{AutoComplete}{\param{const wxArrayString\& }{choices}} + +Call this function to enable auto-completion of the text typed in a single-line +text control using the given \arg{choices}. + +Notice that currently this function is only implemented in wxGTK2 and wxMSW +ports and does nothing under the other platforms. + +\newsince{2.9.0} + +\wxheading{Return value} + +\true if the auto-completion was enabled or \false if the operation failed, +typically because auto-completion is not supported by the current platform. + +\wxheading{See also} + +\helpref{AutoCompleteFileNames}{wxtextctrlautocompletefilenames} + + +\membersection{wxTextCtrl::AutoCompleteFileNames}\label{wxtextctrlautocompletefilenames} + +\func{bool}{AutoCompleteFileNames}{\void} + +Call this function to enable auto-completion of the text typed in a single-line +text control using all valid file system paths. + +Notice that currently this function is only implemented in wxGTK2 port and does +nothing under the other platforms. + +\newsince{2.9.0} + +\wxheading{Return value} + +\true if the auto-completion was enabled or \false if the operation failed, +typically because auto-completion is not supported by the current platform. + +\wxheading{See also} + +\helpref{AutoComplete}{wxtextctrlautocomplete} + + \membersection{wxTextCtrl::CanCopy}\label{wxtextctrlcancopy} \func{virtual bool}{CanCopy}{\void} @@ -858,6 +665,7 @@ wxMSW and wxGTK2 ports. \perlnote{In wxPerl this function takes only the position argument and returns a 3-element list \texttt{(result, col, row)}}. + \membersection{wxTextCtrl::IsEditable}\label{wxtextctrliseditable} \constfunc{bool}{IsEditable}{\void} @@ -868,6 +676,17 @@ read-only mode by a previous call to \helpref{SetEditable}{wxtextctrlseteditable}. +\membersection{wxTextCtrl::IsEmpty}\label{wxtextctrlisempty} + +\constfunc{bool}{IsEmpty}{\void} + +Returns \true if the control is currently empty. This is the same as +\texttt{GetValue().empty()} but can be much more efficient for the multiline +controls containing big amounts of text. + +\newsince{2.7.1} + + \membersection{wxTextCtrl::IsModified}\label{wxtextctrlismodified} \constfunc{bool}{IsModified}{\void} @@ -906,7 +725,7 @@ otherwise. \membersection{wxTextCtrl::LoadFile}\label{wxtextctrlloadfile} -\func{bool}{LoadFile}{\param{const wxString\& }{ filename}} +\func{bool}{LoadFile}{\param{const wxString\& }{ filename}, \param{int }{fileType = wxTEXT\_TYPE\_ANY}} Loads and displays the named file, if it exists. @@ -914,6 +733,8 @@ Loads and displays the named file, if it exists. \docparam{filename}{The filename of the file to load.} +\docparam{fileType}{The type of file to load. This is currently ignored in wxTextCtrl.} + \wxheading{Return value} {\tt true} if successful, {\tt false} otherwise. @@ -1058,7 +879,7 @@ the character at the last position with the given text. \membersection{wxTextCtrl::SaveFile}\label{wxtextctrlsavefile} -\func{bool}{SaveFile}{\param{const wxString\& }{ filename}} +\func{bool}{SaveFile}{\param{const wxString\& }{ filename}, \param{int }{fileType = wxTEXT\_TYPE\_ANY}} Saves the contents of the control in a text file. @@ -1066,6 +887,8 @@ Saves the contents of the control in a text file. \docparam{filename}{The name of the file in which to save the text.} +\docparam{fileType}{The type of file to save. This is currently ignored in wxTextCtrl.} + \wxheading{Return value} {\tt true} if the operation was successful, {\tt false} otherwise. @@ -1223,6 +1046,29 @@ after the call to SetValue). Note that this function will generate a {\tt wxEVT\_COMMAND\_TEXT\_UPDATED} event. +This function is deprecated and should not be used in new code. Please use the +\helpref{ChangeValue}{wxtextctrlchangevalue} function instead. + +\wxheading{Parameters} + +\docparam{value}{The new value to set. It may contain newline characters if the text control is multi-line.} + + +\membersection{wxTextCtrl::ChangeValue}\label{wxtextctrlchangevalue} + +\func{virtual void}{ChangeValue}{\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 +after the call to SetValue). + +Note that this function will \emph{not} generate the {\tt wxEVT\_COMMAND\_TEXT\_UPDATED} +event. +This is the only difference with \helpref{SetValue}{wxtextctrlsetvalue}. +See \helpref{this topic}{progevent} for more information. + +\newsince{2.7.1} + \wxheading{Parameters} \docparam{value}{The new value to set. It may contain newline characters if the text control is multi-line.}