X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/7d8268a1d64de58aab194e4d8ae800c755990aad..4948ebf3ffe886443ec61bbecd1d0d3b794dfee2:/docs/latex/wx/text.tex diff --git a/docs/latex/wx/text.tex b/docs/latex/wx/text.tex index 1aaf71ad3e..5992858843 100644 --- a/docs/latex/wx/text.tex +++ b/docs/latex/wx/text.tex @@ -1,261 +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} -} - -The values below are the possible return codes of the -\helpref{HitTest}{wxtextctrlhittest} method: -{\small -\begin{verbatim} -// the point asked is ... -enum wxTextCtrlHitTestResult -{ - wxTE_HT_UNKNOWN = -2, // this means HitTest() is simply not implemented - wxTE_HT_BEFORE, // either to the left or upper - wxTE_HT_ON_TEXT, // directly on - wxTE_HT_BELOW, // below [the last line] - wxTE_HT_BEYOND // after [the end of line] -}; -// ... the character returned -\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::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} @@ -296,8 +38,8 @@ style is ignored under other platforms.} \twocolitem{\windowstyle{wxTE\_RICH2}}{Use rich text control version 2.0 or 3.0 under Win32, this style is ignored under other platforms} \twocolitem{\windowstyle{wxTE\_AUTO\_URL}}{Highlight the URLs and generate the -wxTextUrlEvents when mouse events occur over them. This style is supported -under Win32 only and requires wxTE\_RICH.} +wxTextUrlEvents when mouse events occur over them. This style is only supported +for wxTE\_RICH Win32 and multi-line wxGTK2 text controls.} \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.} @@ -306,13 +48,14 @@ used, so that text won't be wrapped. No effect under wxGTK1.} \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).} -\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\_DONTWRAP}}{Same as {\tt wxHSCROLL} style: don't wrap at all, show horizontal scrollbar instead.} +\twocolitem{\windowstyle{wxTE\_CHARWRAP}}{Wrap the lines too long to be shown entirely at any position (wxUniv and wxGTK2 only).} +\twocolitem{\windowstyle{wxTE\_WORDWRAP}}{Wrap the lines too long to be shown entirely at word boundaries (wxUniv and wxGTK2 only).} +\twocolitem{\windowstyle{wxTE\_BESTWRAP}}{Wrap the lines at word boundaries or at any other character if there are words longer than the window width (this is the default).} +\twocolitem{\windowstyle{wxTE\_CAPITALIZE}}{On PocketPC and Smartphone, causes the first letter to be capitalized.} \end{twocollist} -See also \helpref{window styles overview}{windowstyles} and -\helpref{wxTextCtrl::wxTextCtrl}{wxtextctrlctor}. +See also \helpref{window styles overview}{windowstyles} and \helpref{wxTextCtrl::wxTextCtrl}{wxtextctrlctor}. \wxheading{wxTextCtrl text format} @@ -442,6 +185,27 @@ you may just do See \helpref{wxStreamToTextRedirector}{wxstreamtotextredirector} for more details. +\wxheading{Constants} + +The values below are the possible return codes of the +\helpref{HitTest}{wxtextctrlhittest} method: + +{\small +\begin{verbatim} +// the point asked is ... +enum wxTextCtrlHitTestResult +{ + wxTE_HT_UNKNOWN = -2, // this means HitTest() is simply not implemented + wxTE_HT_BEFORE, // either to the left or upper + wxTE_HT_ON_TEXT, // directly on + wxTE_HT_BELOW, // below [the last line] + wxTE_HT_BEYOND // after [the end of line] +}; +// ... the character returned +\end{verbatim} +} + + \wxheading{Event handling} The following commands are processed by default event handlers in wxTextCtrl: wxID\_CUT, wxID\_COPY, @@ -460,8 +224,8 @@ 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 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\_URL(id, func)}}{A mouse event occurred over an URL +in the text control (wxMSW and wxGTK2 only)} \twocolitem{{\bf EVT\_TEXT\_MAXLEN(id, func)}}{User tried to enter more text into the control than the limit set by \helpref{SetMaxLength}{wxtextctrlsetmaxlength}.} @@ -633,7 +397,7 @@ Resets the internal `modified' flag as if the current edits had been saved. \func{bool}{EmulateKeyPress}{\param{const wxKeyEvent\& }{event}} This functions inserts into the control the character which would have been -inserted if the given key event had occured in the text control. The +inserted if the given key event had occurred in the text control. The {\it event} object should be the same as the one passed to {\tt EVT\_KEY\_DOWN} handler previously by wxWidgets. @@ -730,19 +494,24 @@ Returns the number of lines in the text control buffer. \wxheading{Remarks} Note that even empty text controls have one line (where the insertion point -is), so GetNumberOfLines() never returns 0. +is), so GetNumberOfLines() never returns $0$. + +For wxGTK using GTK+ 1.2.x and earlier, the number of lines in a multi-line +text control is calculated by actually counting newline characters in the +buffer, i.e. this function returns the number of logical lines and doesn't +depend on whether any of them are wrapped. For all the other platforms, the +number of physical lines in the control is returned. -For gtk\_text (multi-line) controls, the number of lines is -calculated by actually counting newline characters in the buffer. You -may wish to avoid using functions that work with line numbers if you are -working with controls that contain large amounts of text. +Also note that you may wish to avoid using functions that work with line +numbers if you are working with controls that contain large amounts of text as +this function has $O(N)$ complexity for $N$ being the number of lines. \membersection{wxTextCtrl::GetRange}\label{wxtextctrlgetrange} \constfunc{virtual wxString}{GetRange}{\param{long}{ from}, \param{long}{ to}} -Returns the string containing the text staring in the positions {\it from} and +Returns the string containing the text starting in the positions {\it from} and up to {\it to} in the control. The positions must have been returned by another wxTextCtrl method. @@ -798,7 +567,7 @@ support this function. \wxheading{Return value} -{\tt true} on success, {\tt false} if an error occured - it may also mean that +{\tt true} on success, {\tt false} if an error occurred - it may also mean that the styles are not supported under this platform. \wxheading{See also} @@ -852,6 +621,10 @@ read-only mode by a previous call to Returns {\tt true} if the text has been modified by user. Note that calling \helpref{SetValue}{wxtextctrlsetvalue} doesn't make the control modified. +\wxheading{See also} + +\helpref{MarkDirty}{wxtextctrlmarkdirty} + \membersection{wxTextCtrl::IsMultiLine}\label{wxtextctrlismultiline} @@ -922,6 +695,17 @@ Loads and displays the named file, if it exists. %% \helpref{wxKeyEvent}{wxkeyevent} +\membersection{wxTextCtrl::MarkDirty}\label{wxtextctrlmarkdirty} + +\func{void}{MarkDirty}{\void} + +Mark text as modified (dirty). + +\wxheading{See also} + +\helpref{IsModified}{wxtextctrlismodified} + + \membersection{wxTextCtrl::OnDropFiles}\label{wxtextctrlondropfiles} \func{void}{OnDropFiles}{\param{wxDropFilesEvent\& }{event}} @@ -1056,7 +840,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 occurred - may also mean that the styles are not supported under this platform. \wxheading{See also} @@ -1123,6 +907,17 @@ Note that under GTK+, this function may only be used with single line text contr Only implemented in wxMSW/wxGTK starting with wxWidgets 2.3.2. +\membersection{wxTextCtrl::SetModified}\label{wxtextctrlsetmodified} + +\func{void}{SetModified}{\param{bool }{modified}} + +Marks the control as being modified by the user or not. + +\wxheading{See also} + +\helpref{MarkDirty}{wxtextctrlmarkdirty}, \helpref{DiscardEdits}{wxtextctrldiscardedits} + + \membersection{wxTextCtrl::SetSelection}\label{wxtextctrlsetselection} \func{virtual void}{SetSelection}{\param{long}{ from}, \param{long}{ to}} @@ -1155,7 +950,7 @@ not set, the corresponding attribute from \helpref{GetDefaultStyle()}{wxtextctrl \wxheading{Return value} -{\tt true} on success, {\tt false} if an error occured - it may also mean that +{\tt true} on success, {\tt false} if an error occurred - it may also mean that the styles are not supported under this platform. \wxheading{See also} @@ -1231,7 +1026,7 @@ Converts the given zero based column and line number to a position. \wxheading{Return value} -The position value. +The position value, or -1 if {\tt x} or {\tt y} was invalid. \membersection{wxTextCtrl::operator \cinsert}\label{wxtextctrlinsert}