]> git.saurik.com Git - wxWidgets.git/blob - docs/latex/wx/text.tex
c7f58237a3607bd22535b07b776403335cc73297
[wxWidgets.git] / docs / latex / wx / text.tex
1 %%%%%%%%%%%%%%%%%%%%%%%%%%%% wxTextAttr %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2
3 \section{\class{wxTextAttr}}\label{wxtextattr}
4
5 wxTextAttr represents the attributes, or style, for a range of text in a\rtfsp
6 \helpref{wxTextCtrl}{wxtextctrl}.
7
8 \wxheading{Derived from}
9
10 No base class
11
12 \wxheading{Include files}
13
14 <wx/textctrl.h>
15
16 \latexignore{\rtfignore{\wxheading{Members}}}
17
18 \membersection{wxTextAttr::wxTextAttr}\label{wxtextattrctor}
19
20 \func{}{wxTextAttr}{\void}
21
22 \func{}{wxTextAttr}{\param{const wxColour\& }{colText}, \param{const wxColour\& }{colBack = wxNullColour}, \param{const wxFont\& }{font = wxNullFont}}
23
24 The constructors initialize one or more of the text foreground and background
25 colours and font. The values not initialized in the constructor can be set
26 later, otherwise \helpref{wxTextCtrl::SetStyle}{wxtextctrlsetstyle} will use
27 the default values for them.
28
29 \membersection{wxTextAttr::GetBackgroundColour}
30
31 \constfunc{const wxColour\&}{GetBackgroundColour}{\void}
32
33 Return the background colour specified by this attribute.
34
35 \membersection{wxTextAttr::GetFont}
36
37 \constfunc{const wxFont\&}{GetFont}{\void}
38
39 Return the text font specified by this attribute.
40
41 \membersection{wxTextAttr::GetTextColour}
42
43 \constfunc{const wxColour\&}{GetTextColour}{\void}
44
45 Return the text colour specified by this attribute.
46
47 \membersection{wxTextAttr::HasBackgroundColour}
48
49 \constfunc{bool}{HasBackgroundColour}{\void}
50
51 Returns {\tt TRUE} if this style specifies the background colour to use.
52
53 \membersection{wxTextAttr::HasFont}
54
55 \constfunc{bool}{HasFont}{\void}
56
57 Returns {\tt TRUE} if this style specifies the font to use.
58
59 \membersection{wxTextAttr::HasTextColour}
60
61 \constfunc{bool}{HasTextColour}{\void}
62
63 Returns {\tt TRUE} if this style specifies the foreground colour to use.
64
65 \membersection{wxTextAttr::IsDefault}
66
67 \constfunc{bool}{IsDefault}{\void}
68
69 Returns {\tt TRUE} if this style specifies any non-default attributes.
70
71 %%%%%%%%%%%%%%%%%%%%%%%%%%%% wxTextCtrl %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
72
73 \section{\class{wxTextCtrl}}\label{wxtextctrl}
74
75 A text control allows text to be displayed and edited. It may be
76 single line or multi-line.
77
78 \wxheading{Derived from}
79
80 streambuf\\
81 \helpref{wxControl}{wxcontrol}\\
82 \helpref{wxWindow}{wxwindow}\\
83 \helpref{wxEvtHandler}{wxevthandler}\\
84 \helpref{wxObject}{wxobject}
85
86 \wxheading{Include files}
87
88 <wx/textctrl.h>
89
90 \wxheading{Window styles}
91
92 \twocolwidtha{5cm}
93 \begin{twocollist}\itemsep=0pt
94 \twocolitem{\windowstyle{wxTE\_PROCESS\_ENTER}}{The control will generate
95 the message wxEVENT\_TYPE\_TEXT\_ENTER\_COMMAND (otherwise pressing <Enter> is
96 either processed internally by the control or used for navigation between
97 dialog controls).}
98 \twocolitem{\windowstyle{wxTE\_PROCESS\_TAB}}{The control will receive
99 EVT\_CHAR messages for TAB pressed - normally, TAB is used for passing to the
100 next control in a dialog instead. For the control created with this style,
101 you can still use Ctrl-Enter to pass to the next control from the keyboard.}
102 \twocolitem{\windowstyle{wxTE\_MULTILINE}}{The text control allows multiple lines.}
103 \twocolitem{\windowstyle{wxTE\_PASSWORD}}{The text will be echoed as asterisks.}
104 \twocolitem{\windowstyle{wxTE\_READONLY}}{The text will not be user-editable.}
105 \twocolitem{\windowstyle{wxTE\_RICH}}{Use rich text control under Win32, this
106 allows to have more than 64Kb of text in the control even under Win9x. This
107 style is ignored under other platforms.}
108 \twocolitem{\windowstyle{wxTE\_RICH2}}{Use rich text control version 2.0 or 3.0
109 under Win32, this style is ignored under other platforms}
110 \twocolitem{\windowstyle{wxTE\_AUTO\_URL}}{Highlight the URLs and generate the
111 wxTextUrlEvents when mouse events occur over them. This style is supported
112 under Win32 only and requires wxTE\_RICH.}
113 \twocolitem{\windowstyle{wxTE\_NOHIDESEL}}{By default, the Windows text control
114 doesn't show the selection when it doesn't have focus - use this style to force
115 it to always show it. It doesn't do anything under other platforms.}
116 \twocolitem{\windowstyle{wxHSCROLL}}{A horizontal scrollbar will be created. No effect under GTK+.}
117 \twocolitem{\windowstyle{wxTE\_LEFT}}{The text control will be left-justified (default).}
118 \twocolitem{\windowstyle{wxTE\_CENTRE}}{The text control will be centre-justified.}
119 \twocolitem{\windowstyle{wxTE\_RIGHT}}{The text control will be right-justified.}
120 \twocolitem{\windowstyle{wxTE\_DONTWRAP}}{Same as {\tt wxHSCROLL} style.}
121 \twocolitem{\windowstyle{wxTE\_LINEWRAP}}{Wrap the lines too long to be shown entirely at any position (wxUniv only currently).}
122 \twocolitem{\windowstyle{wxTE\_WORDWRAP}}{Wrap the lines too long to be shown entirely at word boundaries only (wxUniv only currently).}
123 \end{twocollist}
124
125 See also \helpref{window styles overview}{windowstyles} and
126 \helpref{wxTextCtrl::wxTextCtrl}{wxtextctrlconstr}.
127
128 \wxheading{wxTextCtrl styles}
129
130 Multi-line text controls support the styles, i.e. provide a possibility to set
131 colours and font for individual characters in it (note that under Windows {\tt
132 wxTE\_RICH} style is required for style support). To use the styles you can
133 either call \helpref{SetDefaultStyle}{wxtextctrlsetdefaultstyle} before
134 inserting the text or call \helpref{SetStyle}{wxtextctrlsetstyle} later to
135 change the style of the text already in the control (the first solution is
136 much more efficient).
137
138 In either case, if the style doesn't specify some of the attributes (for
139 example you only want to set the text colour but without changing the font nor
140 the text background), the values of the default style will be used for them.
141 If there is no default style, the attributes of the text control itself are
142 used.
143
144 So the following code correctly describes what it does: the second call
145 to \helpref{SetDefaultStyle}{wxtextctrlsetdefaultstyle} doesn't change the
146 text foreground colour (which stays red) while the last one doesn't change the
147 background colour (which stays grey):
148
149 {\small%
150 \begin{verbatim}
151 text->SetDefaultStyle(wxTextAttr(*wxRED));
152 text->AppendText("Red text\n");
153 text->SetDefaultStyle(wxTextAttr(wxNullColour, *wxLIGHT_GREY));
154 text->AppendText("Red on grey text\n");
155 text->SetDefaultStyle(wxTextAttr(*wxBLUE);
156 text->AppendText("Blue on grey text\n");
157 \end{verbatim}
158 }%
159
160 \wxheading{wxTextCtrl and C++ streams}
161
162 This class multiply-inherits from {\bf streambuf} where compilers allow,
163 allowing code such as the following:
164
165 {\small%
166 \begin{verbatim}
167 wxTextCtrl *control = new wxTextCtrl(...);
168
169 ostream stream(control)
170
171 stream << 123.456 << " some text\n";
172 stream.flush();
173 \end{verbatim}
174 }%
175
176 If your compiler does not support derivation from {\bf streambuf} and gives a
177 compile error, define the symbol {\bf NO\_TEXT\_WINDOW\_STREAM} in the
178 wxTextCtrl header file.
179
180 Note that independently of this setting you can always use wxTextCtrl itself
181 in a stream-like manner:
182
183 {\small%
184 \begin{verbatim}
185 wxTextCtrl *control = new wxTextCtrl(...);
186
187 *control << 123.456 << " some text\n";
188 \end{verbatim}
189 }%
190
191 always works. However the possibility to create an ostream associated with
192 wxTextCtrl may be useful if you need to redirect the output of a function
193 taking an ostream as parameter to a text control.
194
195 Another commonly requested need is to redirect {\bf std::cout} to the text
196 control. This could be done in the following way:
197
198 {\small%
199 \begin{verbatim}
200 #include <iostream>
201
202 wxTextCtrl *control = new wxTextCtrl(...);
203
204 std::streambuf *sbOld = std::cout.rdbuf();
205 std::cout.rdbuf(*control);
206
207 // use cout as usual, the output appears in the text control
208 ...
209
210 std::cout.rdbuf(sbOld);
211 \end{verbatim}
212 }%
213
214 But wxWindows provides a convenient class to make it even simpler so instead
215 you may just do
216
217 {\small%
218 \begin{verbatim}
219 #include <iostream>
220
221 wxTextCtrl *control = new wxTextCtrl(...);
222
223 wxStreamToTextRedirector redirect(control);
224
225 // all output to cout goes into the text control until the exit from current
226 // scope
227 \end{verbatim}
228 }%
229
230 See \helpref{wxStreamToTextRedirector}{wxstreamtotextredirector} for more
231 details.
232
233 \wxheading{Event handling}
234
235 The following commands are processed by default event handlers in wxTextCtrl: wxID\_CUT, wxID\_COPY,
236 wxID\_PASTE, wxID\_UNDO, wxID\_REDO. The associated UI update events are also processed
237 automatically, when the control has the focus.
238
239 To process input from a text control, use these event handler macros to direct input to member
240 functions that take a \helpref{wxCommandEvent}{wxcommandevent} argument.
241
242 \twocolwidtha{7cm}%
243 \begin{twocollist}\itemsep=0pt
244 \twocolitem{{\bf EVT\_TEXT(id, func)}}{Respond to a wxEVT\_COMMAND\_TEXT\_UPDATED event,
245 generated when the text changes. Notice that this event will always be sent
246 when the text controls contents changes - whether this is due to user input or
247 comes from the program itself (for example, if SetValue() is called)}
248 \twocolitem{{\bf EVT\_TEXT\_ENTER(id, func)}}{Respond to a wxEVT\_COMMAND\_TEXT\_ENTER event,
249 generated when enter is pressed in a single-line text control.}
250 \twocolitem{{\bf EVT\_TEXT\_URL(id, func)}}{A mouse event occured over an URL
251 in the text control (Win32 only)}
252 \twocolitem{{\bf EVT\_TEXT\_MAXLEN(id, func)}}{User tried to enter more text
253 into the control than the limit set by
254 \helpref{SetMaxLength}{wxtextctrlsetmaxlength}.}
255 \end{twocollist}%
256
257 \latexignore{\rtfignore{\wxheading{Members}}}
258
259 \membersection{wxTextCtrl::wxTextCtrl}\label{wxtextctrlconstr}
260
261 \func{}{wxTextCtrl}{\void}
262
263 Default constructor.
264
265 \func{}{wxTextCtrl}{\param{wxWindow* }{parent}, \param{wxWindowID}{ id},\rtfsp
266 \param{const wxString\& }{value = ``"}, \param{const wxPoint\& }{pos = wxDefaultPosition}, \param{const wxSize\& }{size = wxDefaultSize},\rtfsp
267 \param{long}{ style = 0}, \param{const wxValidator\& }{validator = wxDefaultValidator}, \param{const wxString\& }{name = wxTextCtrlNameStr}}
268
269 Constructor, creating and showing a text control.
270
271 \wxheading{Parameters}
272
273 \docparam{parent}{Parent window. Should not be NULL.}
274
275 \docparam{id}{Control identifier. A value of -1 denotes a default value.}
276
277 \docparam{value}{Default text value.}
278
279 \docparam{pos}{Text control position.}
280
281 \docparam{size}{Text control size.}
282
283 \docparam{style}{Window style. See \helpref{wxTextCtrl}{wxtextctrl}.}
284
285 \docparam{validator}{Window validator.}
286
287 \docparam{name}{Window name.}
288
289 \wxheading{Remarks}
290
291 The horizontal scrollbar ({\bf wxHSCROLL} style flag) will only be created
292 for multi-line text controls.
293 Without a horizontal scrollbar, text lines that don't fit in the control's
294 size will be wrapped (but no newline character is inserted). Single line
295 controls don't have a horizontal scrollbar, the text is automatically scrolled
296 so that the \helpref{insertion point}{wxtextctrlgetinsertionpoint} is always
297 visible.
298
299 % VZ: this is no longer true
300 %Under Windows, if the {\bf wxTE\_MULTILINE} style is used, the window is implemented
301 %as a Windows rich text control with unlimited capacity. Otherwise, normal edit control limits
302 %apply.
303
304 \wxheading{See also}
305
306 \helpref{wxTextCtrl::Create}{wxtextctrlcreate}, \helpref{wxValidator}{wxvalidator}
307
308 \membersection{wxTextCtrl::\destruct{wxTextCtrl}}
309
310 \func{}{\destruct{wxTextCtrl}}{\void}
311
312 Destructor, destroying the text control.
313
314 \membersection{wxTextCtrl::AppendText}\label{wxtextctrlappendtext}
315
316 \func{void}{AppendText}{\param{const wxString\& }{ text}}
317
318 Appends the text to the end of the text control.
319
320 \wxheading{Parameters}
321
322 \docparam{text}{Text to write to the text control.}
323
324 \wxheading{Remarks}
325
326 After the text is appended, the insertion point will be at the end of the text control. If this behaviour is not desired,
327 the programmer should use \helpref{GetInsertionPoint}{wxtextctrlgetinsertionpoint} and \helpref{SetInsertionPoint}{wxtextctrlsetinsertionpoint}.
328
329 \wxheading{See also}
330
331 \helpref{wxTextCtrl::WriteText}{wxtextctrlwritetext}
332
333 \membersection{wxTextCtrl::CanCopy}\label{wxtextctrlcancopy}
334
335 \func{virtual bool}{CanCopy}{\void}
336
337 Returns {\tt TRUE} if the selection can be copied to the clipboard.
338
339 \membersection{wxTextCtrl::CanCut}\label{wxtextctrlcancut}
340
341 \func{virtual bool}{CanCut}{\void}
342
343 Returns {\tt TRUE} if the selection can be cut to the clipboard.
344
345 \membersection{wxTextCtrl::CanPaste}\label{wxtextctrlcanpaste}
346
347 \func{virtual bool}{CanPaste}{\void}
348
349 Returns {\tt TRUE} if the contents of the clipboard can be pasted into the
350 text control. On some platforms (Motif, GTK) this is an approximation
351 and returns {\tt TRUE} if the control is editable, {\tt FALSE} otherwise.
352
353 \membersection{wxTextCtrl::CanRedo}\label{wxtextctrlcanredo}
354
355 \func{virtual bool}{CanRedo}{\void}
356
357 Returns {\tt TRUE} if there is a redo facility available and the last operation
358 can be redone.
359
360 \membersection{wxTextCtrl::CanUndo}\label{wxtextctrlcanundo}
361
362 \func{virtual bool}{CanUndo}{\void}
363
364 Returns {\tt TRUE} if there is an undo facility available and the last operation
365 can be undone.
366
367 \membersection{wxTextCtrl::Clear}\label{wxtextctrlclear}
368
369 \func{virtual void}{Clear}{\void}
370
371 Clears the text in the control.
372
373 Note that this function will generate a {\tt wxEVT\_COMMAND\_TEXT\_UPDATED}
374 event.
375
376 \membersection{wxTextCtrl::Copy}\label{wxtextctrlcopy}
377
378 \func{virtual void}{Copy}{\void}
379
380 Copies the selected text to the clipboard under Motif and MS Windows.
381
382 \membersection{wxTextCtrl::Create}\label{wxtextctrlcreate}
383
384 \func{bool}{Create}{\param{wxWindow* }{parent}, \param{wxWindowID}{ id},\rtfsp
385 \param{const wxString\& }{value = ``"}, \param{const wxPoint\& }{pos = wxDefaultPosition}, \param{const wxSize\& }{size = wxDefaultSize},\rtfsp
386 \param{long}{ style = 0}, \param{const wxValidator\& }{validator = wxDefaultValidator}, \param{const wxString\& }{name = wxTextCtrlNameStr}}
387
388 Creates the text control for two-step construction. Derived classes
389 should call or replace this function. See \helpref{wxTextCtrl::wxTextCtrl}{wxtextctrlconstr}\rtfsp
390 for further details.
391
392 \membersection{wxTextCtrl::Cut}\label{wxtextctrlcut}
393
394 \func{virtual void}{Cut}{\void}
395
396 Copies the selected text to the clipboard and removes the selection.
397
398 \membersection{wxTextCtrl::DiscardEdits}
399
400 \func{void}{DiscardEdits}{\void}
401
402 Resets the internal `modified' flag as if the current edits had been saved.
403
404 \membersection{wxTextCtrl::EmulateKeyPress}
405
406 \func{bool}{EmulateKeyPress}{\param{const wxKeyEvent\& }{event}}
407
408 This functions inserts into the control the character which would have been
409 inserted if the given key event had occured in the text control. The
410 {\it event} object should be the same as the one passed to {\tt EVT\_KEY\_DOWN}
411 handler previously by wxWindows.
412
413 \wxheading{Return value}
414
415 {\tt TRUE} if the event resulted in a change to the control, {\tt FALSE}
416 otherwise.
417
418 \membersection{wxTextCtrl::GetDefaultStyle}\label{wxtextctrlgetdefaultstyle}
419
420 \constfunc{const wxTextAttr\& }{GetDefaultStyle}{\void}
421
422 Returns the style currently used for the new text.
423
424 \wxheading{See also}
425
426 \helpref{SetDefaultStyle}{wxtextctrlsetdefaultstyle}
427
428 \membersection{wxTextCtrl::GetInsertionPoint}\label{wxtextctrlgetinsertionpoint}
429
430 \constfunc{virtual long}{GetInsertionPoint}{\void}
431
432 Returns the insertion point. This is defined as the zero based index of the
433 character position to the right of the insertion point. For example, if
434 the insertion point is at the end of the text control, it is equal to
435 both \helpref{GetValue()}{wxtextctrlgetvalue}.Length() and
436 \helpref{GetLastPosition()}{wxtextctrlgetlastposition}.
437
438 The following code snippet safely returns the character at the insertion
439 point or the zero character if the point is at the end of the control.
440
441 {\small%
442 \begin{verbatim}
443 char GetCurrentChar(wxTextCtrl *tc) {
444 if (tc->GetInsertionPoint() == tc->GetLastPosition())
445 return '\0';
446 return tc->GetValue[tc->GetInsertionPoint()];
447 }
448 \end{verbatim}
449 }%
450
451 \membersection{wxTextCtrl::GetLastPosition}\label{wxtextctrlgetlastposition}
452
453 \constfunc{virtual long}{GetLastPosition}{\void}
454
455 Returns the zero based index of the last position in the text control,
456 which is equal to the number of characters in the control.
457
458 \membersection{wxTextCtrl::GetLineLength}\label{wxtextctrlgetlinelength}
459
460 \constfunc{int}{GetLineLength}{\param{long}{ lineNo}}
461
462 Gets the length of the specified line, not including any trailing newline
463 character(s).
464
465 \wxheading{Parameters}
466
467 \docparam{lineNo}{Line number (starting from zero).}
468
469 \wxheading{Return value}
470
471 The length of the line, or -1 if {\it lineNo} was invalid.
472
473 \membersection{wxTextCtrl::GetLineText}\label{wxtextctrlgetlinetext}
474
475 \constfunc{wxString}{GetLineText}{\param{long}{ lineNo}}
476
477 Returns the contents of a given line in the text control, not including
478 any trailing newline character(s).
479
480 \wxheading{Parameters}
481
482 \docparam{lineNo}{The line number, starting from zero.}
483
484 \wxheading{Return value}
485
486 The contents of the line.
487
488 \membersection{wxTextCtrl::GetNumberOfLines}\label{wxtextctrlgetnumberoflines}
489
490 \constfunc{int}{GetNumberOfLines}{\void}
491
492 Returns the number of lines in the text control buffer.
493
494 \wxheading{Remarks}
495
496 Note that even empty text controls have one line (where the insertion point
497 is), so GetNumberOfLines() never returns 0.
498
499 For gtk\_text (multi-line) controls, the number of lines is
500 calculated by actually counting newline characters in the buffer. You
501 may wish to avoid using functions that work with line numbers if you are
502 working with controls that contain large amounts of text.
503
504 \membersection{wxTextCtrl::GetRange}\label{wxtextctrlgetrange}
505
506 \constfunc{virtual wxString}{GetRange}{\param{long}{ from}, \param{long}{ to}}
507
508 Returns the string containing the text staring in the positions {\it from} and
509 up to {\it to} in the control. The positions must have been returned by another
510 wxTextCtrl method.
511
512 Please note that the positions in a multiline wxTextCtrl do {\bf not}
513 correspond to the indices in the string returned by
514 \helpref{GetValue}{wxtextctrlgetvalue} because of the different new line
515 representations ({\tt CR} or {\tt CR LF}) and so this method should be used to
516 obtain the correct results instead of extracting parts of the entire value. It
517 may also be more efficient, especially if the control contains a lot of data.
518
519 \membersection{wxTextCtrl::GetSelection}\label{wxtextctrlgetselection}
520
521 \constfunc{virtual void}{GetSelection}{\param{long*}{ from}, \param{long*}{ to}}
522
523 Gets the current selection span. If the returned values are equal, there was
524 no selection.
525
526 Please note that the indices returned may be used with the other wxTextctrl
527 methods but don't necessarily represent the correct indices into the string
528 returned by \helpref{GetValue()}{wxtextctrlgetvalue} for multiline controls
529 under Windows (at least,) you should use
530 \helpref{GetStringSelection()}{wxtextctrlgetstringselection} to get the selected
531 text.
532
533 \wxheading{Parameters}
534
535 \docparam{from}{The returned first position.}
536
537 \docparam{to}{The returned last position.}
538
539 \pythonnote{The wxPython version of this method returns a tuple
540 consisting of the from and to values.}
541
542 \perlnote{In wxPerl this method takes no parameter and returns a
543 2-element list {\tt ( from, to )}.}
544
545 \membersection{wxTextCtrl::GetStringSelection}\label{wxtextctrlgetstringselection}
546
547 \func{virtual wxString}{GetStringSelection}{\void}
548
549 Gets the text currently selected in the control. If there is no selection, the
550 returned string is empty.
551
552 \membersection{wxTextCtrl::GetValue}\label{wxtextctrlgetvalue}
553
554 \constfunc{wxString}{GetValue}{\void}
555
556 Gets the contents of the control. Notice that for a multiline text control,
557 the lines will be separated by (Unix-style) $\backslash$n characters, even under
558 Windows where they are separated by a $\backslash$r$\backslash$n sequence in the native control.
559
560 \membersection{wxTextCtrl::IsEditable}\label{wxtextctrliseditable}
561
562 \constfunc{bool}{IsEditable}{\void}
563
564 Returns {\tt TRUE} if the controls contents may be edited by user (note that it
565 always can be changed by the program), i.e. if the control hasn't been put in
566 read-only mode by a previous call to
567 \helpref{SetEditable}{wxtextctrlseteditable}.
568
569 \membersection{wxTextCtrl::IsModified}\label{wxtextctrlismodified}
570
571 \constfunc{bool}{IsModified}{\void}
572
573 Returns {\tt TRUE} if the text has been modified by user. Note that calling
574 \helpref{SetValue}{wxtextctrlsetvalue} doesn't make the control modified.
575
576 \membersection{wxTextCtrl::IsMultiLine}\label{wxtextctrlismultiline}
577
578 \constfunc{bool}{IsMultiLine}{\void}
579
580 Returns {\tt TRUE} if this is a multi line edit control and {\tt FALSE}
581 otherwise.
582
583 \wxheading{See also}
584
585 \helpref{IsSingleLine}{wxtextctrlissingleline}
586
587 \membersection{wxTextCtrl::IsSingleLine}\label{wxtextctrlissingleline}
588
589 \constfunc{bool}{IsSingleLine}{\void}
590
591 Returns {\tt TRUE} if this is a single line edit control and {\tt FALSE}
592 otherwise.
593
594 \wxheading{See also}
595
596 \helpref{IsMultiLine}{wxtextctrlissingleline}
597
598 \membersection{wxTextCtrl::LoadFile}\label{wxtextctrlloadfile}
599
600 \func{bool}{LoadFile}{\param{const wxString\& }{ filename}}
601
602 Loads and displays the named file, if it exists.
603
604 \wxheading{Parameters}
605
606 \docparam{filename}{The filename of the file to load.}
607
608 \wxheading{Return value}
609
610 {\tt TRUE} if successful, {\tt FALSE} otherwise.
611
612 % VZ: commenting this out as: (a) the docs are wrong (you can't replace
613 % anything), (b) wxTextCtrl doesn't have any OnChar() anyhow
614 %% \membersection{wxTextCtrl::OnChar}\label{wxtextctrlonchar}
615 %%
616 %% \func{void}{OnChar}{\param{wxKeyEvent\& }{event}}
617 %%
618 %% Default handler for character input.
619 %%
620 %% \wxheading{Remarks}
621 %%
622 %% It is possible to intercept character
623 %% input by overriding this member. Call this function
624 %% to let the default behaviour take place; not calling
625 %% it results in the character being ignored. You can
626 %% replace the {\it keyCode} member of {\it event} to
627 %% translate keystrokes.
628 %%
629 %% Note that Windows and Motif have different ways
630 %% of implementing the default behaviour. In Windows,
631 %% calling wxTextCtrl::OnChar immediately
632 %% processes the character. In Motif,
633 %% calling this function simply sets a flag
634 %% to let default processing happen. This might affect
635 %% the way in which you write your OnChar function
636 %% on different platforms.
637 %%
638 %% \wxheading{See also}
639 %%
640 %% \helpref{wxKeyEvent}{wxkeyevent}
641
642 \membersection{wxTextCtrl::OnDropFiles}\label{wxtextctrlondropfiles}
643
644 \func{void}{OnDropFiles}{\param{wxDropFilesEvent\& }{event}}
645
646 This event handler function implements default drag and drop behaviour, which
647 is to load the first dropped file into the control.
648
649 \wxheading{Parameters}
650
651 \docparam{event}{The drop files event.}
652
653 \wxheading{Remarks}
654
655 This is not implemented on non-Windows platforms.
656
657 \wxheading{See also}
658
659 \helpref{wxDropFilesEvent}{wxdropfilesevent}
660
661 \membersection{wxTextCtrl::Paste}\label{wxtextctrlpaste}
662
663 \func{virtual void}{Paste}{\void}
664
665 Pastes text from the clipboard to the text item.
666
667 \membersection{wxTextCtrl::PositionToXY}\label{wxtextctrlpositiontoxy}
668
669 \constfunc{bool}{PositionToXY}{\param{long }{pos}, \param{long *}{x}, \param{long *}{y}}
670
671 Converts given position to a zero-based column, line number pair.
672
673 \wxheading{Parameters}
674
675 \docparam{pos}{Position.}
676
677 \docparam{x}{Receives zero based column number.}
678
679 \docparam{y}{Receives zero based line number.}
680
681 \wxheading{Return value}
682
683 {\tt TRUE} on success, {\tt FALSE} on failure (most likely due to a too large position
684 parameter).
685
686 \wxheading{See also}
687
688 \helpref{wxTextCtrl::XYToPosition}{wxtextctrlxytoposition}
689
690 \pythonnote{In Python, PositionToXY() returns a tuple containing the x and
691 y values, so (x,y) = PositionToXY() is equivalent to the call described
692 above.}
693
694 \perlnote{In wxPerl this method only takes the {\tt pos} parameter, and
695 returns a 2-element list {\tt ( x, y )}.}
696
697 \membersection{wxTextCtrl::Redo}\label{wxtextctrlredo}
698
699 \func{virtual void}{Redo}{\void}
700
701 If there is a redo facility and the last operation can be redone, redoes the last operation. Does nothing
702 if there is no redo facility.
703
704 \membersection{wxTextCtrl::Remove}\label{wxtextctrlremove}
705
706 \func{virtual void}{Remove}{\param{long}{ from}, \param{long}{ to}}
707
708 Removes the text starting at the first given position up to (but not including)
709 the character at the last position.
710
711 \wxheading{Parameters}
712
713 \docparam{from}{The first position.}
714
715 \docparam{to}{The last position.}
716
717 \membersection{wxTextCtrl::Replace}\label{wxtextctrlreplace}
718
719 \func{virtual void}{Replace}{\param{long}{ from}, \param{long}{ to}, \param{const wxString\& }{value}}
720
721 Replaces the text starting at the first position up to (but not including)
722 the character at the last position with the given text.
723
724 \wxheading{Parameters}
725
726 \docparam{from}{The first position.}
727
728 \docparam{to}{The last position.}
729
730 \docparam{value}{The value to replace the existing text with.}
731
732 \membersection{wxTextCtrl::SaveFile}\label{wxtextctrlsavefile}
733
734 \func{bool}{SaveFile}{\param{const wxString\& }{ filename}}
735
736 Saves the contents of the control in a text file.
737
738 \wxheading{Parameters}
739
740 \docparam{filename}{The name of the file in which to save the text.}
741
742 \wxheading{Return value}
743
744 {\tt TRUE} if the operation was successful, {\tt FALSE} otherwise.
745
746 \membersection{wxTextCtrl::SetDefaultStyle}\label{wxtextctrlsetdefaultstyle}
747
748 \func{bool}{SetDefaultStyle}{\param{const wxTextAttr\& }{style}}
749
750 Changes the default style to use for the new text which is going to be added
751 to the control using \helpref{WriteText}{wxtextctrlwritetext} or\rtfsp
752 \helpref{AppendText}{wxtextctrlappendtext}.
753
754 If either of the font, foreground, or background colour is not set in\rtfsp
755 {\it style}, the values of the previous default style are used for them. If
756 the previous default style didn't set them neither, the global font or colours
757 of the text control itself are used as fall back.
758
759 However if the {\it style} parameter is the default wxTextAttr, then the
760 default style is just reset (instead of being combined with the new style which
761 wouldn't change it at all).
762
763 \wxheading{Parameters}
764
765 \docparam{style}{The style for the new text.}
766
767 \wxheading{Return value}
768
769 {\tt TRUE} on success, {\tt FALSE} if an error occured - may also mean that
770 the styles are not supported under this platform.
771
772 \wxheading{See also}
773
774 \helpref{GetDefaultStyle}{wxtextctrlgetdefaultstyle}
775
776 \membersection{wxTextCtrl::SetEditable}\label{wxtextctrlseteditable}
777
778 \func{virtual void}{SetEditable}{\param{const bool}{ editable}}
779
780 Makes the text item editable or read-only, overriding the {\bf wxTE\_READONLY} flag.
781
782 \wxheading{Parameters}
783
784 \docparam{editable}{If {\tt TRUE}, the control is editable. If {\tt FALSE}, the control is read-only.}
785
786 \wxheading{See also}
787
788 \helpref{IsEditable}{wxtextctrliseditable}
789
790 \membersection{wxTextCtrl::SetInsertionPoint}\label{wxtextctrlsetinsertionpoint}
791
792 \func{virtual void}{SetInsertionPoint}{\param{long}{ pos}}
793
794 Sets the insertion point at the given position.
795
796 \wxheading{Parameters}
797
798 \docparam{pos}{Position to set.}
799
800 \membersection{wxTextCtrl::SetInsertionPointEnd}\label{wxtextctrlsetinsertionpointend}
801
802 \func{virtual void}{SetInsertionPointEnd}{\void}
803
804 Sets the insertion point at the end of the text control. This is equivalent
805 to \helpref{SetInsertionPoint}{wxtextctrlsetinsertionpoint}(\helpref{GetLastPosition}{wxtextctrlgetlastposition}()).
806
807 \membersection{wxTextCtrl::SetMaxLength}\label{wxtextctrlsetmaxlength}
808
809 \func{virtual void}{SetMaxLength}{\param{unsigned long }{len}}
810
811 This function sets the maximum number of characters the user can enter into the
812 control. In other words, it allows to limit the text value length to {\it len}
813 not counting the terminating {\tt NUL} character.
814
815 If {\it len} is $0$, the previously set max length limit, if any, is discarded
816 and the user may enter as much text as the underlying native text control
817 widget supports (typically at least 32Kb).
818
819 If the user tries to enter more characters into the text control when it
820 already is filled up to the maximal length, a
821 {\tt wxEVT\_COMMAND\_TEXT\_MAXLEN} event is sent to notify the program about it
822 (giving it the possibility to show an explanatory message, for example) and the
823 extra input is discarded.
824
825 Note that this function may only be used with single line text controls.
826
827 \wxheading{Compatibility}
828
829 Only implemented in wxMSW/wxGTK starting with wxWindows 2.3.2.
830
831 \membersection{wxTextCtrl::SetSelection}\label{wxtextctrlsetselection}
832
833 \func{virtual void}{SetSelection}{\param{long}{ from}, \param{long}{ to}}
834
835 Selects the text starting at the first position up to (but not including) the
836 character at the last position. If both parameters are equal to $-1$ all text
837 in the control is selected.
838
839 \wxheading{Parameters}
840
841 \docparam{from}{The first position.}
842
843 \docparam{to}{The last position.}
844
845 \membersection{wxTextCtrl::SetStyle}\label{wxtextctrlsetstyle}
846
847 \func{bool}{SetStyle}{\param{long }{start}, \param{long }{end}, \param{const wxTextAttr\& }{style}}
848
849 Changes the style of the selection. If either of the font, foreground, or
850 background colour is not set in {\it style}, the values of\rtfsp
851 \helpref{GetDefaultStyle()}{wxtextctrlgetdefaultstyle} are used.
852
853 \wxheading{Parameters}
854
855 \docparam{start}{The start of selection to change.}
856
857 \docparam{end}{The end of selection to change.}
858
859 \docparam{style}{The new style for the selection.}
860
861 \wxheading{Return value}
862
863 {\tt TRUE} on success, {\tt FALSE} if an error occured - may also mean that
864 the styles are not supported under this platform.
865
866 \membersection{wxTextCtrl::SetValue}\label{wxtextctrlsetvalue}
867
868 \func{virtual void}{SetValue}{\param{const wxString\& }{ value}}
869
870 Sets the text value and marks the control as not-modified (which means that
871 \helpref{IsModified}{wxtextctrlismodified} would return {\tt FALSE} immediately
872 after the call to SetValue).
873
874 Note that this function will generate a {\tt wxEVT\_COMMAND\_TEXT\_UPDATED}
875 event.
876
877 \wxheading{Parameters}
878
879 \docparam{value}{The new value to set. It may contain newline characters if the text control is multi-line.}
880
881 \membersection{wxTextCtrl::ShowPosition}\label{wxtextctrlshowposition}
882
883 \func{void}{ShowPosition}{\param{long}{ pos}}
884
885 Makes the line containing the given position visible.
886
887 \wxheading{Parameters}
888
889 \docparam{pos}{The position that should be visible.}
890
891 \membersection{wxTextCtrl::Undo}\label{wxtextctrlundo}
892
893 \func{virtual void}{Undo}{\void}
894
895 If there is an undo facility and the last operation can be undone, undoes the last operation. Does nothing
896 if there is no undo facility.
897
898 \membersection{wxTextCtrl::WriteText}\label{wxtextctrlwritetext}
899
900 \func{void}{WriteText}{\param{const wxString\& }{ text}}
901
902 Writes the text into the text control at the current insertion position.
903
904 \wxheading{Parameters}
905
906 \docparam{text}{Text to write to the text control.}
907
908 \wxheading{Remarks}
909
910 Newlines in the text string
911 are the only control characters allowed, and they will cause appropriate
912 line breaks. See \helpref{wxTextCtrl::\cinsert}{wxtextctrlinsert} and \helpref{wxTextCtrl::AppendText}{wxtextctrlappendtext} for more convenient ways of writing to the window.
913
914 After the write operation, the insertion point will be at the end of the inserted text, so subsequent write operations will be appended. To append text after the user may have interacted with the control, call \helpref{wxTextCtrl::SetInsertionPointEnd}{wxtextctrlsetinsertionpointend} before writing.
915
916 \membersection{wxTextCtrl::XYToPosition}\label{wxtextctrlxytoposition}
917
918 \func{long}{XYToPosition}{\param{long}{ x}, \param{long}{ y}}
919
920 Converts the given zero based column and line number to a position.
921
922 \wxheading{Parameters}
923
924 \docparam{x}{The column number.}
925
926 \docparam{y}{The line number.}
927
928 \wxheading{Return value}
929
930 The position value.
931
932 \membersection{wxTextCtrl::operator \cinsert}\label{wxtextctrlinsert}
933
934 \func{wxTextCtrl\&}{operator \cinsert}{\param{const wxString\& }{s}}
935
936 \func{wxTextCtrl\&}{operator \cinsert}{\param{int}{ i}}
937
938 \func{wxTextCtrl\&}{operator \cinsert}{\param{long}{ i}}
939
940 \func{wxTextCtrl\&}{operator \cinsert}{\param{float}{ f}}
941
942 \func{wxTextCtrl\&}{operator \cinsert}{\param{double}{ d}}
943
944 \func{wxTextCtrl\&}{operator \cinsert}{\param{char}{ c}}
945
946 Operator definitions for appending to a text control, for example:
947
948 \begin{verbatim}
949 wxTextCtrl *wnd = new wxTextCtrl(my_frame);
950
951 (*wnd) << "Welcome to text control number " << 1 << ".\n";
952 \end{verbatim}
953