<html> <head> <link rel="stylesheet" href="page.css" type="text/css"> <title>fox-toolkit.org - Documentation</title> </head> <body bgcolor=#ffffff link=#990033 vlink=#990033 alink=#990033 text=#000000> <font face='verdana,sans-serif' size=2 > <!---- TOPIC TITLE WITH LOGO---> <table border=0 cellpadding= cellspacing=2 width=100% ><tr><td><a href='http://www.fox-toolkit.org/doc.html'><img src='../art/foxlogo_small.jpg' border=0></a></td><td width=100% valign=bottom><font face='verdana,sans-serif' size=2 ><b> <a class="qindex" href="index.html">Main Page</a> <a class="qindex" href="hierarchy.html">Class Hierarchy</a> <a class="qindex" href="classes.html">Alphabetical List</a> <a class="qindex" href="annotated.html">Compound List</a> <a class="qindex" href="files.html">File List</a> <a class="qindex" href="functions.html">Compound Members</a> <br><img src='../art/line.gif' width=100% height=1></b></font></td></tr></table> <p> <!--- TOPIC TITLE WITH LOGO ---> <!-- Generated by Doxygen 1.3.3 --> <h1>FXText.h</h1><div class="fragment"><pre>00001 <span class="comment">/********************************************************************************</span> 00002 <span class="comment">* *</span> 00003 <span class="comment">* M u l t i - L i ne T e x t W i d g e t *</span> 00004 <span class="comment">* *</span> 00005 <span class="comment">*********************************************************************************</span> 00006 <span class="comment">* Copyright (C) 1998,2004 by Jeroen van der Zijp. All Rights Reserved. *</span> 00007 <span class="comment">*********************************************************************************</span> 00008 <span class="comment">* This library is free software; you can redistribute it and/or *</span> 00009 <span class="comment">* modify it under the terms of the GNU Lesser General Public *</span> 00010 <span class="comment">* License as published by the Free Software Foundation; either *</span> 00011 <span class="comment">* version 2.1 of the License, or (at your option) any later version. *</span> 00012 <span class="comment">* *</span> 00013 <span class="comment">* This library is distributed in the hope that it will be useful, *</span> 00014 <span class="comment">* but WITHOUT ANY WARRANTY; without even the implied warranty of *</span> 00015 <span class="comment">* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *</span> 00016 <span class="comment">* Lesser General Public License for more details. *</span> 00017 <span class="comment">* *</span> 00018 <span class="comment">* You should have received a copy of the GNU Lesser General Public *</span> 00019 <span class="comment">* License along with this library; if not, write to the Free Software *</span> 00020 <span class="comment">* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. *</span> 00021 <span class="comment">*********************************************************************************</span> 00022 <span class="comment">* $Id: FXText.h,v 1.142 2004/02/08 17:17:34 fox Exp $ *</span> 00023 <span class="comment">********************************************************************************/</span> 00024 <span class="preprocessor">#ifndef FXTEXT_H</span> 00025 <span class="preprocessor"></span><span class="preprocessor">#define FXTEXT_H</span> 00026 <span class="preprocessor"></span> 00027 <span class="preprocessor">#ifndef FXSCROLLAREA_H</span> 00028 <span class="preprocessor"></span><span class="preprocessor">#include "FXScrollArea.h"</span> 00029 <span class="preprocessor">#endif</span> 00030 <span class="preprocessor"></span> 00031 <span class="keyword">namespace </span>FX { 00032 00033 <span class="comment"></span> 00034 <span class="comment">/// Text widget options</span> 00035 <span class="comment"></span><span class="keyword">enum</span> { 00036 <a class="code" href="group__FXText__0.html#a0a2054">TEXT_READONLY</a> = 0x00100000, <span class="comment">/// Text is NOT editable</span> 00037 <span class="comment"></span> <a class="code" href="group__FXText__0.html#a0a2055">TEXT_WORDWRAP</a> = 0x00200000, <span class="comment">/// Wrap at word breaks</span> 00038 <span class="comment"></span> <a class="code" href="group__FXText__0.html#a0a2056">TEXT_OVERSTRIKE</a> = 0x00400000, <span class="comment">/// Overstrike mode</span> 00039 <span class="comment"></span> <a class="code" href="group__FXText__0.html#a0a2057">TEXT_FIXEDWRAP</a> = 0x00800000, <span class="comment">/// Fixed wrap columns</span> 00040 <span class="comment"></span> <a class="code" href="group__FXText__0.html#a0a2058">TEXT_NO_TABS</a> = 0x01000000, <span class="comment">/// Insert spaces for tabs</span> 00041 <span class="comment"></span> <a class="code" href="group__FXText__0.html#a0a2059">TEXT_AUTOINDENT</a> = 0x02000000, <span class="comment">/// Autoindent</span> 00042 <span class="comment"></span> <a class="code" href="group__FXText__0.html#a0a2060">TEXT_SHOWACTIVE</a> = 0x04000000 <span class="comment">/// Show active line</span> 00043 <span class="comment"></span> }; 00044 00045 <span class="comment"></span> 00046 <span class="comment">/// Selection modes</span> 00047 <span class="comment"></span><span class="keyword">enum</span> <a class="code" href="group__FXText__1.html#a0">FXTextSelectionMode</a> { 00048 SELECT_CHARS, 00049 SELECT_WORDS, 00050 SELECT_LINES 00051 }; 00052 00053 <span class="comment"></span> <a name="l00054"></a><a class="code" href="group__FXText__1.html#a0">00054</a> <span class="comment">/// Highlight style entry</span> 00055 <span class="comment"></span><span class="keyword">struct </span>FXHiliteStyle { 00056 FXColor normalForeColor; <span class="comment">/// Normal text foreground color</span> 00057 <span class="comment"></span> FXColor <a class="code" href="structFX_1_1FXHiliteStyle.html#o1">normalBackColor</a>; <span class="comment">/// Normal text background color</span> 00058 <span class="comment"></span> FXColor <a class="code" href="structFX_1_1FXHiliteStyle.html#o2">selectForeColor</a>; <span class="comment">/// Selected text foreground color</span> 00059 <span class="comment"></span> FXColor <a class="code" href="structFX_1_1FXHiliteStyle.html#o3">selectBackColor</a>; <span class="comment">/// Selected text background color</span> 00060 <span class="comment"></span> FXColor <a class="code" href="structFX_1_1FXHiliteStyle.html#o4">hiliteForeColor</a>; <span class="comment">/// Highlight text foreground color</span> 00061 <span class="comment"></span> FXColor <a class="code" href="structFX_1_1FXHiliteStyle.html#o5">hiliteBackColor</a>; <span class="comment">/// Highlight text background color</span> 00062 <span class="comment"></span> FXColor <a class="code" href="structFX_1_1FXHiliteStyle.html#o6">activeBackColor</a>; <span class="comment">/// Active text background color</span> <a name="l00063"></a><a class="code" href="structFX_1_1FXHiliteStyle.html">00063</a> <span class="comment"></span> FXuint <a class="code" href="structFX_1_1FXHiliteStyle.html#o7">style</a>; <span class="comment">/// Highlight text style</span> 00064 <span class="comment"></span> }; <a name="l00065"></a><a class="code" href="structFX_1_1FXHiliteStyle.html#o1">00065</a> <a name="l00066"></a><a class="code" href="structFX_1_1FXHiliteStyle.html#o2">00066</a> <span class="comment"></span> <a name="l00067"></a><a class="code" href="structFX_1_1FXHiliteStyle.html#o3">00067</a> <span class="comment">/// Multiline text widget</span> <a name="l00068"></a><a class="code" href="structFX_1_1FXHiliteStyle.html#o4">00068</a> <span class="comment"></span><span class="keyword">class </span>FXAPI FXText : <span class="keyword">public</span> <a class="code" href="classFX_1_1FXScrollArea.html">FXScrollArea</a> { <a name="l00069"></a><a class="code" href="structFX_1_1FXHiliteStyle.html#o5">00069</a> FXDECLARE(FXText) <a name="l00070"></a><a class="code" href="structFX_1_1FXHiliteStyle.html#o6">00070</a> <span class="keyword">protected</span>: <a name="l00071"></a><a class="code" href="structFX_1_1FXHiliteStyle.html#o7">00071</a> FXchar *buffer; <span class="comment">// Text buffer being edited</span> 00072 FXchar *sbuffer; <span class="comment">// Text style buffer</span> 00073 FXint *visrows; <span class="comment">// Starts of rows in buffer</span> 00074 FXint length; <span class="comment">// Length of the actual text in the buffer</span> 00075 FXint nvisrows; <span class="comment">// Number of visible rows</span> 00076 FXint nrows; <span class="comment">// Total number of rows</span> 00077 FXint gapstart; <span class="comment">// Start of the insertion point (the gap)</span> 00078 FXint gapend; <span class="comment">// End of the insertion point+1</span> 00079 FXint toppos; <span class="comment">// Start position of first visible row</span> 00080 FXint keeppos; <span class="comment">// Position to keep on top visible row</span> <a name="l00081"></a><a class="code" href="classFX_1_1FXText.html">00081</a> FXint toprow; <span class="comment">// Row number of first visible row</span> 00082 FXint selstartpos; <span class="comment">// Start of selection</span> 00083 FXint selendpos; <span class="comment">// End of selection</span> 00084 FXint hilitestartpos; <span class="comment">// Hightlight start position</span> 00085 FXint hiliteendpos; <span class="comment">// Hightlight end position</span> 00086 FXint anchorpos; <span class="comment">// Anchor position</span> 00087 FXint cursorpos; <span class="comment">// Cursor position</span> 00088 FXint revertpos; <span class="comment">// Position of cursor prior to dragging</span> 00089 FXint cursorstart; <span class="comment">// Cursor row start pos</span> 00090 FXint cursorend; <span class="comment">// Cursor row end pos</span> 00091 FXint cursorrow; <span class="comment">// Cursor row</span> 00092 FXint cursorcol; <span class="comment">// Cursor column indent (not character offset!)</span> 00093 FXint prefcol; <span class="comment">// Preferred cursor column</span> 00094 FXint margintop; <span class="comment">// Margins top</span> 00095 FXint marginbottom; <span class="comment">// Margin bottom</span> 00096 FXint marginleft; <span class="comment">// Margin left</span> 00097 FXint marginright; <span class="comment">// Margin right</span> 00098 FXint wrapwidth; <span class="comment">// Wrap width in pixels</span> 00099 FXint wrapcolumns; <span class="comment">// Wrap columns</span> 00100 FXint tabwidth; <span class="comment">// Tab width in pixels</span> 00101 FXint tabcolumns; <span class="comment">// Tab columns</span> 00102 FXint barwidth; <span class="comment">// Line number width</span> 00103 FXint barcolumns; <span class="comment">// Line number columns</span> 00104 <a class="code" href="classFX_1_1FXFont.html">FXFont</a> *font; <span class="comment">// Text font</span> 00105 FXColor textColor; <span class="comment">// Normal text color</span> 00106 FXColor selbackColor; <span class="comment">// Select background color</span> 00107 FXColor seltextColor; <span class="comment">// Select text color</span> 00108 FXColor hilitebackColor; <span class="comment">// Highlight background color</span> 00109 FXColor hilitetextColor; <span class="comment">// Highlight text color</span> 00110 FXColor activebackColor; <span class="comment">// Background color for active line</span> 00111 FXColor numberColor; <span class="comment">// Line number color</span> 00112 FXColor cursorColor; <span class="comment">// Cursor color</span> 00113 FXColor barColor; <span class="comment">// Bar background color</span> 00114 FXint textWidth; <span class="comment">// Total width of all text</span> 00115 FXint textHeight; <span class="comment">// Total height of all text</span> 00116 <a class="code" href="classFX_1_1FXString.html">FXString</a> searchstring; <span class="comment">// String of last search</span> 00117 FXuint searchflags; <span class="comment">// Flags of last search</span> 00118 <span class="keyword">const</span> FXchar *delimiters; <span class="comment">// Delimiters</span> 00119 FXchar *clipbuffer; <span class="comment">// Clipped text</span> 00120 FXint cliplength; <span class="comment">// Length of clipped text</span> 00121 FXint vrows; <span class="comment">// Default visible rows</span> 00122 FXint vcols; <span class="comment">// Default visible columns</span> 00123 <a class="code" href="classFX_1_1FXString.html">FXString</a> help; <span class="comment">// Status line help</span> 00124 <a class="code" href="classFX_1_1FXString.html">FXString</a> tip; <span class="comment">// Tooltip</span> 00125 <span class="keyword">const</span> <a class="code" href="structFX_1_1FXHiliteStyle.html">FXHiliteStyle</a> *hilitestyles; <span class="comment">// Style definitions</span> 00126 FXuint matchtime; <span class="comment">// Match time (ms)</span> 00127 FXbool modified; <span class="comment">// User has modified text</span> 00128 FXuchar mode; <span class="comment">// Mode widget is in</span> 00129 FXint grabx; <span class="comment">// Grab point x</span> 00130 FXint graby; <span class="comment">// Grab point y</span> 00131 <span class="keyword">protected</span>: 00132 FXText(); 00133 <span class="keywordtype">void</span> calcVisRows(FXint s,FXint e); 00134 <span class="keywordtype">void</span> showCursor(FXuint state); 00135 <span class="keyword">virtual</span> <span class="keywordtype">void</span> eraseCursorOverhang(); 00136 <span class="keyword">virtual</span> <span class="keywordtype">void</span> drawCursor(FXuint state); 00137 <span class="keyword">virtual</span> FXuint style(FXint row,FXint beg,FXint end,FXint pos) <span class="keyword">const</span>; 00138 <span class="keyword">virtual</span> <span class="keywordtype">void</span> drawBufferText(<a class="code" href="classFX_1_1FXDCWindow.html">FXDCWindow</a>& dc,FXint x,FXint y,FXint w,FXint h,FXint pos,FXint n,FXuint style) <span class="keyword">const</span>; 00139 <span class="keyword">virtual</span> <span class="keywordtype">void</span> fillBufferRect(<a class="code" href="classFX_1_1FXDCWindow.html">FXDCWindow</a>& dc,FXint x,FXint y,FXint w,FXint h,FXuint style) <span class="keyword">const</span>; 00140 <span class="keyword">virtual</span> <span class="keywordtype">void</span> drawTextRow(<a class="code" href="classFX_1_1FXDCWindow.html">FXDCWindow</a>& dc,FXint line,FXint left,FXint right) <span class="keyword">const</span>; 00141 <span class="keyword">virtual</span> <span class="keywordtype">void</span> drawContents(<a class="code" href="classFX_1_1FXDCWindow.html">FXDCWindow</a>& dc,FXint x,FXint y,FXint w,FXint h) <span class="keyword">const</span>; 00142 <span class="keyword">virtual</span> <span class="keywordtype">void</span> drawNumbers(<a class="code" href="classFX_1_1FXDCWindow.html">FXDCWindow</a>& dc,FXint x,FXint y,FXint w,FXint h) <span class="keyword">const</span>; 00143 FXint posToLine(FXint pos,FXint ln) <span class="keyword">const</span>; 00144 FXbool posVisible(FXint pos) <span class="keyword">const</span>; 00145 <span class="keywordtype">void</span> updateRange(FXint beg,FXint end) <span class="keyword">const</span>; 00146 <span class="keywordtype">void</span> movegap(FXint pos); 00147 <span class="keywordtype">void</span> sizegap(FXint sz); 00148 <span class="keywordtype">void</span> squeezegap(); 00149 FXint charWidth(FXchar ch,FXint indent) <span class="keyword">const</span>; 00150 FXint wrap(FXint start) <span class="keyword">const</span>; 00151 FXint countRows(FXint start,FXint end) <span class="keyword">const</span>; 00152 FXint countCols(FXint start,FXint end) <span class="keyword">const</span>; 00153 FXint countLines(FXint start,FXint end) <span class="keyword">const</span>; 00154 FXint measureText(FXint start,FXint end,FXint& wmax,FXint& hmax) <span class="keyword">const</span>; 00155 FXint lineWidth(FXint pos,FXint n) <span class="keyword">const</span>; 00156 FXint getYOfPos(FXint pos) <span class="keyword">const</span>; 00157 FXint getXOfPos(FXint pos) <span class="keyword">const</span>; 00158 FXint changeBeg(FXint pos) <span class="keyword">const</span>; 00159 FXint changeEnd(FXint pos) <span class="keyword">const</span>; 00160 FXint indentFromPos(FXint start,FXint pos) <span class="keyword">const</span>; 00161 FXint posFromIndent(FXint start,FXint indent) <span class="keyword">const</span>; 00162 <span class="keywordtype">void</span> mutation(FXint pos,FXint ncins,FXint ncdel,FXint nrins,FXint nrdel); 00163 <span class="keyword">virtual</span> <span class="keywordtype">void</span> replace(FXint pos,FXint m,<span class="keyword">const</span> FXchar *text,FXint n,FXint style); 00164 <span class="keywordtype">void</span> recompute(); 00165 FXint matchForward(FXint pos,FXint end,FXchar l,FXchar r,FXint level) <span class="keyword">const</span>; 00166 FXint matchBackward(FXint pos,FXint beg,FXchar l,FXchar r,FXint level) <span class="keyword">const</span>; 00167 FXint findMatching(FXint pos,FXint beg,FXint end,FXchar ch,FXint level) <span class="keyword">const</span>; 00168 <span class="keywordtype">void</span> flashMatching(); 00169 <span class="keywordtype">void</span> moveContents(FXint x,FXint y); 00170 <span class="keyword">protected</span>: 00171 <span class="keyword">enum</span> { 00172 STYLE_MASK = 0x00FF, <span class="comment">// Mask color table</span> 00173 STYLE_TEXT = 0x0100, <span class="comment">// Draw some content</span> 00174 STYLE_SELECTED = 0x0200, <span class="comment">// Selected</span> 00175 STYLE_CONTROL = 0x0400, <span class="comment">// Control character</span> 00176 STYLE_HILITE = 0x0800, <span class="comment">// Highlighted</span> 00177 STYLE_ACTIVE = 0x1000 <span class="comment">// Active</span> 00178 }; 00179 <span class="keyword">enum</span> { 00180 MOUSE_NONE, <span class="comment">// No mouse operation</span> 00181 MOUSE_CHARS, <span class="comment">// Selecting characters</span> 00182 MOUSE_WORDS, <span class="comment">// Selecting words</span> 00183 MOUSE_LINES, <span class="comment">// Selecting lines</span> 00184 MOUSE_SCROLL, <span class="comment">// Scrolling</span> 00185 MOUSE_DRAG, <span class="comment">// Dragging text</span> 00186 MOUSE_TRYDRAG <span class="comment">// Tentative drag</span> 00187 }; 00188 <span class="keyword">public</span>: 00189 <span class="keyword">enum</span> { 00190 STYLE_UNDERLINE = 0x0001, <span class="comment">/// Underline text</span> 00191 <span class="comment"></span> STYLE_STRIKEOUT = 0x0002, <span class="comment">/// Strike out text</span> 00192 <span class="comment"></span> STYLE_BOLD = 0x0004 <span class="comment">/// Bold text</span> 00193 <span class="comment"></span> }; 00194 <span class="keyword">private</span>: 00195 FXText(<span class="keyword">const</span> FXText&); 00196 FXText& operator=(<span class="keyword">const</span> FXText&); 00197 <span class="keyword">public</span>: 00198 <span class="keywordtype">long</span> onPaint(FXObject*,FXSelector,<span class="keywordtype">void</span>*); 00199 <span class="keywordtype">long</span> onUpdate(FXObject*,FXSelector,<span class="keywordtype">void</span>*); 00200 <span class="keywordtype">long</span> onFocusIn(FXObject*,FXSelector,<span class="keywordtype">void</span>*); 00201 <span class="keywordtype">long</span> onFocusOut(FXObject*,FXSelector,<span class="keywordtype">void</span>*); 00202 <span class="keywordtype">long</span> onLeftBtnPress(FXObject*,FXSelector,<span class="keywordtype">void</span>*); 00203 <span class="keywordtype">long</span> onLeftBtnRelease(FXObject*,FXSelector,<span class="keywordtype">void</span>*); 00204 <span class="keywordtype">long</span> onMiddleBtnPress(FXObject*,FXSelector,<span class="keywordtype">void</span>*); 00205 <span class="keywordtype">long</span> onMiddleBtnRelease(FXObject*,FXSelector,<span class="keywordtype">void</span>*); 00206 <span class="keywordtype">long</span> onRightBtnPress(FXObject*,FXSelector,<span class="keywordtype">void</span>*); 00207 <span class="keywordtype">long</span> onRightBtnRelease(FXObject*,FXSelector,<span class="keywordtype">void</span>*); 00208 <span class="keywordtype">long</span> onUngrabbed(FXObject*,FXSelector,<span class="keywordtype">void</span>*); 00209 <span class="keywordtype">long</span> onMotion(FXObject*,FXSelector,<span class="keywordtype">void</span>*); 00210 <span class="keywordtype">long</span> onBeginDrag(FXObject*,FXSelector,<span class="keywordtype">void</span>*); 00211 <span class="keywordtype">long</span> onEndDrag(FXObject*,FXSelector,<span class="keywordtype">void</span>*); 00212 <span class="keywordtype">long</span> onDragged(FXObject*,FXSelector,<span class="keywordtype">void</span>*); 00213 <span class="keywordtype">long</span> onDNDEnter(FXObject*,FXSelector,<span class="keywordtype">void</span>*); 00214 <span class="keywordtype">long</span> onDNDLeave(FXObject*,FXSelector,<span class="keywordtype">void</span>*); 00215 <span class="keywordtype">long</span> onDNDMotion(FXObject*,FXSelector,<span class="keywordtype">void</span>*); 00216 <span class="keywordtype">long</span> onDNDDrop(FXObject*,FXSelector,<span class="keywordtype">void</span>*); 00217 <span class="keywordtype">long</span> onDNDRequest(FXObject*,FXSelector,<span class="keywordtype">void</span>*); 00218 <span class="keywordtype">long</span> onSelectionLost(FXObject*,FXSelector,<span class="keywordtype">void</span>*); 00219 <span class="keywordtype">long</span> onSelectionGained(FXObject*,FXSelector,<span class="keywordtype">void</span>*); 00220 <span class="keywordtype">long</span> onSelectionRequest(FXObject*,FXSelector,<span class="keywordtype">void</span>* ptr); 00221 <span class="keywordtype">long</span> onClipboardLost(FXObject*,FXSelector,<span class="keywordtype">void</span>*); 00222 <span class="keywordtype">long</span> onClipboardGained(FXObject*,FXSelector,<span class="keywordtype">void</span>*); 00223 <span class="keywordtype">long</span> onClipboardRequest(FXObject*,FXSelector,<span class="keywordtype">void</span>*); 00224 <span class="keywordtype">long</span> onKeyPress(FXObject*,FXSelector,<span class="keywordtype">void</span>*); 00225 <span class="keywordtype">long</span> onKeyRelease(FXObject*,FXSelector,<span class="keywordtype">void</span>*); 00226 <span class="keywordtype">long</span> onBlink(FXObject*,FXSelector,<span class="keywordtype">void</span>*); 00227 <span class="keywordtype">long</span> onFlash(FXObject*,FXSelector,<span class="keywordtype">void</span>*); 00228 <span class="keywordtype">long</span> onAutoScroll(FXObject*,FXSelector,<span class="keywordtype">void</span>*); 00229 <span class="keywordtype">long</span> onQueryHelp(FXObject*,FXSelector,<span class="keywordtype">void</span>*); 00230 <span class="keywordtype">long</span> onQueryTip(FXObject*,FXSelector,<span class="keywordtype">void</span>*); 00231 00232 <span class="comment">// Control commands</span> 00233 <span class="keywordtype">long</span> onCmdToggleEditable(FXObject*,FXSelector,<span class="keywordtype">void</span>*); 00234 <span class="keywordtype">long</span> onUpdToggleEditable(FXObject*,FXSelector,<span class="keywordtype">void</span>*); 00235 <span class="keywordtype">long</span> onCmdToggleOverstrike(FXObject*,FXSelector,<span class="keywordtype">void</span>*); 00236 <span class="keywordtype">long</span> onUpdToggleOverstrike(FXObject*,FXSelector,<span class="keywordtype">void</span>*); 00237 <span class="keywordtype">long</span> onCmdCursorRow(FXObject*,FXSelector,<span class="keywordtype">void</span>*); 00238 <span class="keywordtype">long</span> onUpdCursorRow(FXObject*,FXSelector,<span class="keywordtype">void</span>*); 00239 <span class="keywordtype">long</span> onCmdCursorColumn(FXObject*,FXSelector,<span class="keywordtype">void</span>*); 00240 <span class="keywordtype">long</span> onUpdCursorColumn(FXObject*,FXSelector,<span class="keywordtype">void</span>*); 00241 <span class="keywordtype">long</span> onUpdHaveSelection(FXObject*,FXSelector,<span class="keywordtype">void</span>*); 00242 <span class="keywordtype">long</span> onUpdSelectAll(FXObject*,FXSelector,<span class="keywordtype">void</span>*); 00243 <span class="keywordtype">long</span> onCmdSetStringValue(FXObject*,FXSelector,<span class="keywordtype">void</span>*); 00244 <span class="keywordtype">long</span> onCmdGetStringValue(FXObject*,FXSelector,<span class="keywordtype">void</span>*); 00245 <span class="keywordtype">long</span> onCmdSearch(FXObject*,FXSelector,<span class="keywordtype">void</span>*); 00246 <span class="keywordtype">long</span> onCmdReplace(FXObject*,FXSelector,<span class="keywordtype">void</span>*); 00247 <span class="keywordtype">long</span> onCmdSearchNext(FXObject*,FXSelector,<span class="keywordtype">void</span>*); 00248 <span class="keywordtype">long</span> onCmdSearchSel(FXObject*,FXSelector,<span class="keywordtype">void</span>*); 00249 00250 <span class="comment">// Cursor movement</span> 00251 <span class="keywordtype">long</span> onCmdCursorTop(FXObject*,FXSelector,<span class="keywordtype">void</span>*); 00252 <span class="keywordtype">long</span> onCmdCursorBottom(FXObject*,FXSelector,<span class="keywordtype">void</span>*); 00253 <span class="keywordtype">long</span> onCmdCursorHome(FXObject*,FXSelector,<span class="keywordtype">void</span>*); 00254 <span class="keywordtype">long</span> onCmdCursorEnd(FXObject*,FXSelector,<span class="keywordtype">void</span>*); 00255 <span class="keywordtype">long</span> onCmdCursorRight(FXObject*,FXSelector,<span class="keywordtype">void</span>*); 00256 <span class="keywordtype">long</span> onCmdCursorLeft(FXObject*,FXSelector,<span class="keywordtype">void</span>*); 00257 <span class="keywordtype">long</span> onCmdCursorUp(FXObject*,FXSelector,<span class="keywordtype">void</span>*); 00258 <span class="keywordtype">long</span> onCmdCursorDown(FXObject*,FXSelector,<span class="keywordtype">void</span>*); 00259 <span class="keywordtype">long</span> onCmdCursorWordLeft(FXObject*,FXSelector,<span class="keywordtype">void</span>*); 00260 <span class="keywordtype">long</span> onCmdCursorWordRight(FXObject*,FXSelector,<span class="keywordtype">void</span>*); 00261 <span class="keywordtype">long</span> onCmdCursorWordStart(FXObject*,FXSelector,<span class="keywordtype">void</span>*); 00262 <span class="keywordtype">long</span> onCmdCursorWordEnd(FXObject*,FXSelector,<span class="keywordtype">void</span>*); 00263 <span class="keywordtype">long</span> onCmdCursorPageDown(FXObject*,FXSelector,<span class="keywordtype">void</span>*); 00264 <span class="keywordtype">long</span> onCmdCursorPageUp(FXObject*,FXSelector,<span class="keywordtype">void</span>*); 00265 <span class="keywordtype">long</span> onCmdCursorScreenTop(FXObject*,FXSelector,<span class="keywordtype">void</span>*); 00266 <span class="keywordtype">long</span> onCmdCursorScreenBottom(FXObject*,FXSelector,<span class="keywordtype">void</span>*); 00267 <span class="keywordtype">long</span> onCmdCursorScreenCenter(FXObject*,FXSelector,<span class="keywordtype">void</span>*); <a name="l00268"></a><a class="code" href="classFX_1_1FXText.html#a17">00268</a> <span class="keywordtype">long</span> onCmdCursorParHome(<a class="code" href="classFX_1_1FXObject.html">FXObject</a>*,FXSelector,<span class="keywordtype">void</span>*); 00269 <span class="keywordtype">long</span> onCmdCursorParEnd(<a class="code" href="classFX_1_1FXObject.html">FXObject</a>*,FXSelector,<span class="keywordtype">void</span>*); 00270 <span class="keywordtype">long</span> onCmdBlockBeg(<a class="code" href="classFX_1_1FXObject.html">FXObject</a>*,FXSelector,<span class="keywordtype">void</span>*); 00271 <span class="keywordtype">long</span> onCmdBlockEnd(<a class="code" href="classFX_1_1FXObject.html">FXObject</a>*,FXSelector,<span class="keywordtype">void</span>*); 00272 <span class="keywordtype">long</span> onCmdGotoMatching(<a class="code" href="classFX_1_1FXObject.html">FXObject</a>*,FXSelector,<span class="keywordtype">void</span>*); 00273 <span class="keywordtype">long</span> onCmdGotoSelected(<a class="code" href="classFX_1_1FXObject.html">FXObject</a>*,FXSelector,<span class="keywordtype">void</span>*); <a name="l00274"></a><a class="code" href="classFX_1_1FXText.html#a19">00274</a> <span class="keywordtype">long</span> onCmdGotoLine(<a class="code" href="classFX_1_1FXObject.html">FXObject</a>*,FXSelector,<span class="keywordtype">void</span>*); 00275 <span class="keywordtype">long</span> onCmdScrollUp(<a class="code" href="classFX_1_1FXObject.html">FXObject</a>*,FXSelector,<span class="keywordtype">void</span>*); 00276 <span class="keywordtype">long</span> onCmdScrollDown(<a class="code" href="classFX_1_1FXObject.html">FXObject</a>*,FXSelector,<span class="keywordtype">void</span>*); 00277 00278 <span class="comment">// Mark and extend</span> 00279 <span class="keywordtype">long</span> onCmdMark(<a class="code" href="classFX_1_1FXObject.html">FXObject</a>*,FXSelector,<span class="keywordtype">void</span>*); <a name="l00280"></a><a class="code" href="classFX_1_1FXText.html#a21">00280</a> <span class="keywordtype">long</span> onCmdExtend(<a class="code" href="classFX_1_1FXObject.html">FXObject</a>*,FXSelector,<span class="keywordtype">void</span>*); 00281 00282 <span class="comment">// Inserting</span> 00283 <span class="keywordtype">long</span> onCmdOverstString(<a class="code" href="classFX_1_1FXObject.html">FXObject</a>*,FXSelector,<span class="keywordtype">void</span>*); 00284 <span class="keywordtype">long</span> onCmdInsertString(<a class="code" href="classFX_1_1FXObject.html">FXObject</a>*,FXSelector,<span class="keywordtype">void</span>*); 00285 <span class="keywordtype">long</span> onCmdInsertNewline(<a class="code" href="classFX_1_1FXObject.html">FXObject</a>*,FXSelector,<span class="keywordtype">void</span>*); <a name="l00286"></a><a class="code" href="classFX_1_1FXText.html#a23">00286</a> <span class="keywordtype">long</span> onCmdInsertTab(<a class="code" href="classFX_1_1FXObject.html">FXObject</a>*,FXSelector,<span class="keywordtype">void</span>*); 00287 00288 <span class="comment">// Manipulation Selection</span> <a name="l00289"></a><a class="code" href="classFX_1_1FXText.html#a24">00289</a> <span class="keywordtype">long</span> onCmdCutSel(<a class="code" href="classFX_1_1FXObject.html">FXObject</a>*,FXSelector,<span class="keywordtype">void</span>*); 00290 <span class="keywordtype">long</span> onCmdCopySel(<a class="code" href="classFX_1_1FXObject.html">FXObject</a>*,FXSelector,<span class="keywordtype">void</span>*); 00291 <span class="keywordtype">long</span> onCmdPasteSel(<a class="code" href="classFX_1_1FXObject.html">FXObject</a>*,FXSelector,<span class="keywordtype">void</span>*); 00292 <span class="keywordtype">long</span> onCmdDeleteSel(<a class="code" href="classFX_1_1FXObject.html">FXObject</a>*,FXSelector,<span class="keywordtype">void</span>*); 00293 <span class="keywordtype">long</span> onCmdChangeCase(<a class="code" href="classFX_1_1FXObject.html">FXObject</a>*,FXSelector,<span class="keywordtype">void</span>*); 00294 <span class="keywordtype">long</span> onCmdShiftText(<a class="code" href="classFX_1_1FXObject.html">FXObject</a>*,FXSelector,<span class="keywordtype">void</span>*); <a name="l00295"></a><a class="code" href="classFX_1_1FXText.html#a26">00295</a> <span class="keywordtype">long</span> onCmdPasteMiddle(<a class="code" href="classFX_1_1FXObject.html">FXObject</a>*,FXSelector,<span class="keywordtype">void</span>*); 00296 00297 <span class="comment">// Changing Selection</span> 00298 <span class="keywordtype">long</span> onCmdSelectChar(<a class="code" href="classFX_1_1FXObject.html">FXObject</a>*,FXSelector,<span class="keywordtype">void</span>*); 00299 <span class="keywordtype">long</span> onCmdSelectWord(<a class="code" href="classFX_1_1FXObject.html">FXObject</a>*,FXSelector,<span class="keywordtype">void</span>*); 00300 <span class="keywordtype">long</span> onCmdSelectLine(<a class="code" href="classFX_1_1FXObject.html">FXObject</a>*,FXSelector,<span class="keywordtype">void</span>*); <a name="l00301"></a><a class="code" href="classFX_1_1FXText.html#a28">00301</a> <span class="keywordtype">long</span> onCmdSelectAll(<a class="code" href="classFX_1_1FXObject.html">FXObject</a>*,FXSelector,<span class="keywordtype">void</span>*); 00302 <span class="keywordtype">long</span> onCmdSelectMatching(<a class="code" href="classFX_1_1FXObject.html">FXObject</a>*,FXSelector,<span class="keywordtype">void</span>*); 00303 <span class="keywordtype">long</span> onCmdSelectBlock(<a class="code" href="classFX_1_1FXObject.html">FXObject</a>*,FXSelector,<span class="keywordtype">void</span>*); 00304 <span class="keywordtype">long</span> onCmdDeselectAll(<a class="code" href="classFX_1_1FXObject.html">FXObject</a>*,FXSelector,<span class="keywordtype">void</span>*); 00305 00306 <span class="comment">// Deletion</span> <a name="l00307"></a><a class="code" href="classFX_1_1FXText.html#a30">00307</a> <span class="keywordtype">long</span> onCmdBackspace(<a class="code" href="classFX_1_1FXObject.html">FXObject</a>*,FXSelector,<span class="keywordtype">void</span>*); 00308 <span class="keywordtype">long</span> onCmdBackspaceWord(<a class="code" href="classFX_1_1FXObject.html">FXObject</a>*,FXSelector,<span class="keywordtype">void</span>*); 00309 <span class="keywordtype">long</span> onCmdBackspaceBol(<a class="code" href="classFX_1_1FXObject.html">FXObject</a>*,FXSelector,<span class="keywordtype">void</span>*); <a name="l00310"></a><a class="code" href="classFX_1_1FXText.html#a31">00310</a> <span class="keywordtype">long</span> onCmdDelete(<a class="code" href="classFX_1_1FXObject.html">FXObject</a>*,FXSelector,<span class="keywordtype">void</span>*); 00311 <span class="keywordtype">long</span> onCmdDeleteWord(<a class="code" href="classFX_1_1FXObject.html">FXObject</a>*,FXSelector,<span class="keywordtype">void</span>*); 00312 <span class="keywordtype">long</span> onCmdDeleteEol(<a class="code" href="classFX_1_1FXObject.html">FXObject</a>*,FXSelector,<span class="keywordtype">void</span>*); 00313 <span class="keywordtype">long</span> onCmdDeleteAll(<a class="code" href="classFX_1_1FXObject.html">FXObject</a>*,FXSelector,<span class="keywordtype">void</span>*); 00314 <span class="keywordtype">long</span> onCmdDeleteLine(<a class="code" href="classFX_1_1FXObject.html">FXObject</a>*,FXSelector,<span class="keywordtype">void</span>*); 00315 00316 <span class="keyword">public</span>: 00317 <span class="keyword">static</span> <span class="keyword">const</span> FXchar textDelimiters[]; 00318 00319 <span class="keyword">public</span>: 00320 00321 <span class="keyword">enum</span> { <a name="l00322"></a><a class="code" href="classFX_1_1FXText.html#a35">00322</a> ID_CURSOR_TOP=FXScrollArea::ID_LAST, 00323 ID_CURSOR_BOTTOM, 00324 ID_CURSOR_HOME, <a name="l00325"></a><a class="code" href="classFX_1_1FXText.html#a36">00325</a> ID_CURSOR_END, 00326 ID_CURSOR_RIGHT, 00327 ID_CURSOR_LEFT, <a name="l00328"></a><a class="code" href="classFX_1_1FXText.html#a37">00328</a> ID_CURSOR_UP, 00329 ID_CURSOR_DOWN, 00330 ID_CURSOR_WORD_LEFT, 00331 ID_CURSOR_WORD_RIGHT, 00332 ID_CURSOR_WORD_START, 00333 ID_CURSOR_WORD_END, <a name="l00334"></a><a class="code" href="classFX_1_1FXText.html#a39">00334</a> ID_CURSOR_PAGEDOWN, 00335 ID_CURSOR_PAGEUP, 00336 ID_CURSOR_SCRNTOP, 00337 ID_CURSOR_SCRNBTM, 00338 ID_CURSOR_SCRNCTR, 00339 ID_CURSOR_PAR_HOME, <a name="l00340"></a><a class="code" href="classFX_1_1FXText.html#a41">00340</a> ID_CURSOR_PAR_END, 00341 ID_SCROLL_UP, 00342 ID_SCROLL_DOWN, 00343 ID_MARK, 00344 ID_EXTEND, 00345 ID_OVERST_STRING, <a name="l00346"></a><a class="code" href="classFX_1_1FXText.html#a43">00346</a> ID_INSERT_STRING, 00347 ID_INSERT_NEWLINE, 00348 ID_INSERT_TAB, 00349 ID_CUT_SEL, 00350 ID_COPY_SEL, 00351 ID_DELETE_SEL, <a name="l00352"></a><a class="code" href="classFX_1_1FXText.html#a45">00352</a> ID_PASTE_SEL, 00353 ID_PASTE_MIDDLE, 00354 ID_SELECT_CHAR, 00355 ID_SELECT_WORD, 00356 ID_SELECT_LINE, 00357 ID_SELECT_ALL, <a name="l00358"></a><a class="code" href="classFX_1_1FXText.html#a47">00358</a> ID_SELECT_MATCHING, 00359 ID_SELECT_BRACE, 00360 ID_SELECT_BRACK, 00361 ID_SELECT_PAREN, 00362 ID_SELECT_ANG, 00363 ID_DESELECT_ALL, <a name="l00364"></a><a class="code" href="classFX_1_1FXText.html#a49">00364</a> ID_BACKSPACE, 00365 ID_BACKSPACE_WORD, 00366 ID_BACKSPACE_BOL, 00367 ID_DELETE, 00368 ID_DELETE_WORD, 00369 ID_DELETE_EOL, <a name="l00370"></a><a class="code" href="classFX_1_1FXText.html#a51">00370</a> ID_DELETE_ALL, 00371 ID_DELETE_LINE, 00372 ID_TOGGLE_EDITABLE, 00373 ID_TOGGLE_OVERSTRIKE, 00374 ID_CURSOR_ROW, 00375 ID_CURSOR_COLUMN, <a name="l00376"></a><a class="code" href="classFX_1_1FXText.html#a53">00376</a> ID_CLEAN_INDENT, 00377 ID_SHIFT_LEFT, 00378 ID_SHIFT_RIGHT, 00379 ID_SHIFT_TABLEFT, 00380 ID_SHIFT_TABRIGHT, 00381 ID_UPPER_CASE, <a name="l00382"></a><a class="code" href="classFX_1_1FXText.html#a55">00382</a> ID_LOWER_CASE, 00383 ID_GOTO_MATCHING, 00384 ID_GOTO_SELECTED, 00385 ID_GOTO_LINE, 00386 ID_SEARCH_FORW_SEL, 00387 ID_SEARCH_BACK_SEL, <a name="l00388"></a><a class="code" href="classFX_1_1FXText.html#a57">00388</a> ID_SEARCH_FORW, 00389 ID_SEARCH_BACK, 00390 ID_SEARCH, <a name="l00391"></a><a class="code" href="classFX_1_1FXText.html#a58">00391</a> ID_REPLACE, 00392 ID_LEFT_BRACE, 00393 ID_LEFT_BRACK, <a name="l00394"></a><a class="code" href="classFX_1_1FXText.html#a59">00394</a> ID_LEFT_PAREN, 00395 ID_LEFT_ANG, 00396 ID_RIGHT_BRACE, <a name="l00397"></a><a class="code" href="classFX_1_1FXText.html#a60">00397</a> ID_RIGHT_BRACK, 00398 ID_RIGHT_PAREN, 00399 ID_RIGHT_ANG, <a name="l00400"></a><a class="code" href="classFX_1_1FXText.html#a61">00400</a> ID_BLINK, 00401 ID_FLASH, 00402 ID_LAST 00403 }; 00404 00405 <span class="keyword">public</span>: 00406 <span class="comment"></span> 00407 <span class="comment"> /// Construct multi-line text widget</span> 00408 <span class="comment"></span> FXText(FXComposite *p,FXObject* tgt=NULL,FXSelector sel=0,FXuint opts=0,FXint x=0,FXint y=0,FXint w=0,FXint h=0); 00409 <span class="comment"></span> 00410 <span class="comment"> /// Create server-side resources</span> 00411 <span class="comment"></span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> create(); 00412 <span class="comment"></span> 00413 <span class="comment"> /// Detach server-side resources</span> 00414 <span class="comment"></span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> detach(); 00415 <span class="comment"></span> 00416 <span class="comment"> /// Perform layout</span> 00417 <span class="comment"></span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> layout(); 00418 <span class="comment"></span> 00419 <span class="comment"> /// Return default width</span> 00420 <span class="comment"></span> <span class="keyword">virtual</span> FXint getDefaultWidth(); 00421 <span class="comment"></span> 00422 <span class="comment"> /// Return default height</span> 00423 <span class="comment"></span> <span class="keyword">virtual</span> FXint getDefaultHeight(); 00424 <span class="comment"></span> 00425 <span class="comment"> /// Enable the text widget</span> 00426 <span class="comment"></span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> enable(); 00427 <span class="comment"></span> 00428 <span class="comment"> /// Disable the text widget</span> 00429 <span class="comment"></span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> disable(); 00430 <span class="comment"></span> 00431 <span class="comment"> /// Need to recalculate size</span> 00432 <span class="comment"></span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> recalc(); 00433 <span class="comment"></span> 00434 <span class="comment"> /// Resize this window to the specified width and height</span> 00435 <span class="comment"></span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> resize(FXint w,FXint h); 00436 <span class="comment"></span> 00437 <span class="comment"> /// Move and resize this window in the parent's coordinates</span> 00438 <span class="comment"></span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> position(FXint x,FXint y,FXint w,FXint h); 00439 <span class="comment"></span> 00440 <span class="comment"> /// Get default width</span> 00441 <span class="comment"></span> <span class="keyword">virtual</span> FXint getContentWidth(); 00442 <span class="comment"></span> 00443 <span class="comment"> /// Get default height</span> 00444 <span class="comment"></span> <span class="keyword">virtual</span> FXint getContentHeight(); 00445 <span class="comment"></span> 00446 <span class="comment"> /// Returns true because a text widget can receive focus</span> 00447 <span class="comment"></span> <span class="keyword">virtual</span> FXbool canFocus() <span class="keyword">const</span>; 00448 <span class="comment"></span> 00449 <span class="comment"> /// Move the focus to this window</span> 00450 <span class="comment"></span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> setFocus(); 00451 <span class="comment"></span> 00452 <span class="comment"> /// Remove the focus from this window</span> 00453 <span class="comment"></span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> killFocus(); 00454 <span class="comment"></span> 00455 <span class="comment"> /// Change top margin</span> 00456 <span class="comment"></span> <span class="keywordtype">void</span> setMarginTop(FXint pt); 00457 <span class="comment"></span> 00458 <span class="comment"> /// Return top margin</span> 00459 <span class="comment"></span> FXint getMarginTop()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> margintop; } <a name="l00460"></a><a class="code" href="classFX_1_1FXText.html#a81">00460</a> <span class="comment"></span> 00461 <span class="comment"> /// Change bottom margin</span> 00462 <span class="comment"></span> <span class="keywordtype">void</span> setMarginBottom(FXint pb); 00463 <span class="comment"></span> 00464 <span class="comment"> /// Return bottom margin</span> 00465 <span class="comment"></span> FXint getMarginBottom()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> marginbottom; } 00466 <span class="comment"></span> 00467 <span class="comment"> /// Change left margin</span> 00468 <span class="comment"></span> <span class="keywordtype">void</span> setMarginLeft(FXint pl); 00469 <span class="comment"></span> 00470 <span class="comment"> /// Return left margin</span> 00471 <span class="comment"></span> FXint getMarginLeft()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> marginleft; } 00472 <span class="comment"></span> 00473 <span class="comment"> /// Change right margin</span> 00474 <span class="comment"></span> <span class="keywordtype">void</span> setMarginRight(FXint pr); 00475 <span class="comment"></span> 00476 <span class="comment"> /// Return right margin</span> 00477 <span class="comment"></span> FXint getMarginRight()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> marginright; } 00478 <span class="comment"></span> 00479 <span class="comment"> /// Return wrap columns</span> 00480 <span class="comment"></span> FXint getWrapColumns()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> wrapcolumns; } 00481 <span class="comment"></span> 00482 <span class="comment"> /// Set wrap columns</span> 00483 <span class="comment"></span> <span class="keywordtype">void</span> setWrapColumns(FXint cols); 00484 <span class="comment"></span> 00485 <span class="comment"> /// Return tab columns</span> 00486 <span class="comment"></span> FXint getTabColumns()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> tabcolumns; } 00487 <span class="comment"></span> 00488 <span class="comment"> /// Change tab columns</span> 00489 <span class="comment"></span> <span class="keywordtype">void</span> setTabColumns(FXint cols); 00490 <span class="comment"></span> 00491 <span class="comment"> /// Return number of columns used for line numbers</span> 00492 <span class="comment"></span> FXint getBarColumns()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> barcolumns; } 00493 <span class="comment"></span> 00494 <span class="comment"> /// Change number of columns used for line numbers</span> 00495 <span class="comment"></span> <span class="keywordtype">void</span> setBarColumns(FXint cols); 00496 <span class="comment"></span> 00497 <span class="comment"> /// Return TRUE if text was modified</span> 00498 <span class="comment"></span> FXbool isModified()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> modified; } 00499 <span class="comment"></span> 00500 <span class="comment"> /// Set modified flag</span> 00501 <span class="comment"></span> <span class="keywordtype">void</span> setModified(FXbool mod=TRUE){ modified=mod; } 00502 <span class="comment"></span> 00503 <span class="comment"> /// Return TRUE if text is editable</span> 00504 <span class="comment"></span> FXbool isEditable() <span class="keyword">const</span>; 00505 <span class="comment"></span> 00506 <span class="comment"> /// Set editable flag</span> 00507 <span class="comment"></span> <span class="keywordtype">void</span> setEditable(FXbool edit=TRUE); 00508 <span class="comment"></span> 00509 <span class="comment"> /// Set styled text mode</span> 00510 <span class="comment"></span> <span class="keywordtype">void</span> setStyled(FXbool styled=TRUE); 00511 <span class="comment"></span> 00512 <span class="comment"> /// Return TRUE if style buffer</span> 00513 <span class="comment"></span> FXbool isStyled()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> (sbuffer!=NULL); } 00514 <span class="comment"></span> 00515 <span class="comment"> /// Change delimiters of words</span> 00516 <span class="comment"></span> <span class="keywordtype">void</span> setDelimiters(<span class="keyword">const</span> FXchar* delims=textDelimiters){ delimiters=delims; } 00517 <span class="comment"></span> 00518 <span class="comment"> /// Return word delimiters</span> 00519 <span class="comment"></span> <span class="keyword">const</span> FXchar* getDelimiters()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> delimiters; } 00520 <span class="comment"></span> 00521 <span class="comment"> /// Change text font</span> 00522 <span class="comment"></span> <span class="keywordtype">void</span> setFont(FXFont* fnt); 00523 <span class="comment"></span> 00524 <span class="comment"> /// Return text font</span> 00525 <span class="comment"></span> FXFont* getFont()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> font; } 00526 <span class="comment"></span> 00527 <span class="comment"> /// Change text color</span> 00528 <span class="comment"></span> <span class="keywordtype">void</span> setTextColor(FXColor clr); 00529 <span class="comment"></span> 00530 <span class="comment"> /// Return text color</span> 00531 <span class="comment"></span> FXColor getTextColor()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> textColor; } 00532 <span class="comment"></span> 00533 <span class="comment"> /// Change selected background color</span> 00534 <span class="comment"></span> <span class="keywordtype">void</span> setSelBackColor(FXColor clr); 00535 <span class="comment"></span> 00536 <span class="comment"> /// Return selected background color</span> 00537 <span class="comment"></span> FXColor getSelBackColor()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> selbackColor; } 00538 <span class="comment"></span> 00539 <span class="comment"> /// Change selected text color</span> 00540 <span class="comment"></span> <span class="keywordtype">void</span> setSelTextColor(FXColor clr); 00541 <span class="comment"></span> 00542 <span class="comment"> /// Return selected text color</span> 00543 <span class="comment"></span> FXColor getSelTextColor()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> seltextColor; } 00544 <span class="comment"></span> 00545 <span class="comment"> /// Change highlighted text color</span> 00546 <span class="comment"></span> <span class="keywordtype">void</span> setHiliteTextColor(FXColor clr); 00547 <span class="comment"></span> <a name="l00548"></a><a class="code" href="classFX_1_1FXText.html#a106">00548</a> <span class="comment"> /// Return highlighted text color</span> 00549 <span class="comment"></span> FXColor getHiliteTextColor()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> hilitetextColor; } 00550 <span class="comment"></span> 00551 <span class="comment"> /// Change highlighted background color</span> 00552 <span class="comment"></span> <span class="keywordtype">void</span> setHiliteBackColor(FXColor clr); 00553 <span class="comment"></span> 00554 <span class="comment"> /// Return highlighted background color</span> 00555 <span class="comment"></span> FXColor getHiliteBackColor()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> hilitebackColor; } 00556 <span class="comment"></span> <a name="l00557"></a><a class="code" href="classFX_1_1FXText.html#a109">00557</a> <span class="comment"> /// Change active background color</span> 00558 <span class="comment"></span> <span class="keywordtype">void</span> setActiveBackColor(FXColor clr); 00559 <span class="comment"></span> 00560 <span class="comment"> /// Return active background color</span> 00561 <span class="comment"></span> FXColor getActiveBackColor()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> activebackColor; } 00562 <span class="comment"></span> <a name="l00563"></a><a class="code" href="classFX_1_1FXText.html#a111">00563</a> <span class="comment"> /// Change cursor color</span> 00564 <span class="comment"></span> <span class="keywordtype">void</span> setCursorColor(FXColor clr); 00565 <span class="comment"></span> <a name="l00566"></a><a class="code" href="classFX_1_1FXText.html#a112">00566</a> <span class="comment"> /// Return cursor color</span> 00567 <span class="comment"></span> FXColor getCursorColor()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> cursorColor; } 00568 <span class="comment"></span> <a name="l00569"></a><a class="code" href="classFX_1_1FXText.html#a113">00569</a> <span class="comment"> /// Change line number color</span> 00570 <span class="comment"></span> <span class="keywordtype">void</span> setNumberColor(FXColor clr); 00571 <span class="comment"></span> <a name="l00572"></a><a class="code" href="classFX_1_1FXText.html#a114">00572</a> <span class="comment"> /// Return line number color</span> 00573 <span class="comment"></span> FXColor getNumberColor()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> numberColor; } 00574 <span class="comment"></span> 00575 <span class="comment"> /// Change bar color</span> 00576 <span class="comment"></span> <span class="keywordtype">void</span> setBarColor(FXColor clr); 00577 <span class="comment"></span> 00578 <span class="comment"> /// Return bar color</span> 00579 <span class="comment"></span> FXColor getBarColor()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> barColor; } 00580 <span class="comment"></span> 00581 <span class="comment"> /// Set help text</span> 00582 <span class="comment"></span> <span class="keywordtype">void</span> setHelpText(<span class="keyword">const</span> FXString& text){ help=text; } 00583 <span class="comment"></span> 00584 <span class="comment"> /// Return help text</span> 00585 <span class="comment"></span> FXString getHelpText()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> help; } 00586 <span class="comment"></span> 00587 <span class="comment"> /// Set the tool tip message for this text widget</span> 00588 <span class="comment"></span> <span class="keywordtype">void</span> setTipText(<span class="keyword">const</span> FXString& text){ tip=text; } 00589 <span class="comment"></span> 00590 <span class="comment"> /// Get the tool tip message for this text widget</span> 00591 <span class="comment"></span> FXString getTipText()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> tip; } 00592 <span class="comment"></span> 00593 <span class="comment"> /// Get character at position in text buffer</span> 00594 <span class="comment"></span> FXint getChar(FXint pos) <span class="keyword">const</span>; 00595 <span class="comment"></span> 00596 <span class="comment"> /// Get style at position in style buffer</span> 00597 <span class="comment"></span> FXint getStyle(FXint pos) <span class="keyword">const</span>; 00598 <span class="comment"></span> 00599 <span class="comment"> /// Extract n characters of text from position pos</span> 00600 <span class="comment"></span> <span class="keywordtype">void</span> extractText(FXchar *text,FXint pos,FXint n) <span class="keyword">const</span>; 00601 <span class="comment"></span> 00602 <span class="comment"> /// Extract n characters of style info from position pos</span> 00603 <span class="comment"></span> <span class="keywordtype">void</span> extractStyle(FXchar *style,FXint pos,FXint n) <span class="keyword">const</span>; 00604 <span class="comment"></span> <a name="l00605"></a><a class="code" href="classFX_1_1FXText.html#a125">00605</a> <span class="comment"> /// Replace m characters at pos by n characters</span> 00606 <span class="comment"></span> <span class="keywordtype">void</span> replaceText(FXint pos,FXint m,<span class="keyword">const</span> FXchar *text,FXint n,FXbool notify=FALSE); 00607 <span class="comment"></span> 00608 <span class="comment"> /// Replace m characters at pos by n characters</span> 00609 <span class="comment"></span> <span class="keywordtype">void</span> replaceStyledText(FXint pos,FXint m,<span class="keyword">const</span> FXchar *text,FXint n,FXint style=0,FXbool notify=FALSE); 00610 <span class="comment"></span> <a name="l00611"></a><a class="code" href="classFX_1_1FXText.html#a127">00611</a> <span class="comment"> /// Append n characters of text at the end of the buffer</span> 00612 <span class="comment"></span> <span class="keywordtype">void</span> appendText(<span class="keyword">const</span> FXchar *text,FXint n,FXbool notify=FALSE); 00613 <span class="comment"></span> 00614 <span class="comment"> /// Append n characters of text at the end of the buffer</span> 00615 <span class="comment"></span> <span class="keywordtype">void</span> appendStyledText(<span class="keyword">const</span> FXchar *text,FXint n,FXint style=0,FXbool notify=FALSE); 00616 <span class="comment"></span> <a name="l00617"></a><a class="code" href="classFX_1_1FXText.html#a128">00617</a> <span class="comment"> /// Insert n characters of text at position pos into the buffer</span> 00618 <span class="comment"></span> <span class="keywordtype">void</span> insertText(FXint pos,<span class="keyword">const</span> FXchar *text,FXint n,FXbool notify=FALSE); 00619 <span class="comment"></span> 00620 <span class="comment"> /// Insert n characters of text at position pos into the buffer</span> 00621 <span class="comment"></span> <span class="keywordtype">void</span> insertStyledText(FXint pos,<span class="keyword">const</span> FXchar *text,FXint n,FXint style=0,FXbool notify=FALSE); <a name="l00622"></a><a class="code" href="classFX_1_1FXText.html#a129">00622</a> <span class="comment"></span> 00623 <span class="comment"> /// Remove n characters of text at position pos from the buffer</span> 00624 <span class="comment"></span> <span class="keywordtype">void</span> removeText(FXint pos,FXint n,FXbool notify=FALSE); 00625 <span class="comment"></span> 00626 <span class="comment"> /// Change style of text range</span> 00627 <span class="comment"></span> <span class="keywordtype">void</span> changeStyle(FXint pos,FXint n,FXint style); <a name="l00628"></a><a class="code" href="classFX_1_1FXText.html#a131">00628</a> <span class="comment"></span> 00629 <span class="comment"> /// Change style of text range from style-array</span> 00630 <span class="comment"></span> <span class="keywordtype">void</span> changeStyle(FXint pos,FXint n,<span class="keyword">const</span> FXchar* style); 00631 <span class="comment"></span> 00632 <span class="comment"> /// Change the text in the buffer to new text</span> 00633 <span class="comment"></span> <span class="keywordtype">void</span> setText(<span class="keyword">const</span> FXchar* text,FXint n,FXbool notify=FALSE); 00634 <span class="comment"></span> 00635 <span class="comment"> /// Change the text in the buffer to new text</span> 00636 <span class="comment"></span> <span class="keywordtype">void</span> setStyledText(<span class="keyword">const</span> FXchar* text,FXint n,FXint style=0,FXbool notify=FALSE); 00637 <span class="comment"></span> 00638 <span class="comment"> /// Retrieve text into buffer</span> 00639 <span class="comment"></span> <span class="keywordtype">void</span> getText(FXchar* text,FXint n) <span class="keyword">const</span>; 00640 <span class="comment"></span> 00641 <span class="comment"> /// Change the text</span> 00642 <span class="comment"></span> <span class="keywordtype">void</span> setText(<span class="keyword">const</span> <a class="code" href="classFX_1_1FXString.html">FXString</a>& text,FXbool notify=FALSE); 00643 <span class="comment"></span> 00644 <span class="comment"> /// Change the text</span> 00645 <span class="comment"></span> <span class="keywordtype">void</span> setStyledText(<span class="keyword">const</span> <a class="code" href="classFX_1_1FXString.html">FXString</a>& text,FXint style=0,FXbool notify=FALSE); 00646 <span class="comment"></span> 00647 <span class="comment"> /// Return text in the widget</span> 00648 <span class="comment"></span> <a class="code" href="classFX_1_1FXString.html">FXString</a> getText() <span class="keyword">const</span>; 00649 <span class="comment"></span> 00650 <span class="comment"> /// Return length of buffer</span> 00651 <span class="comment"></span> FXint getLength()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> length; } 00652 <span class="comment"></span> 00653 <span class="comment"> /// Shift block of lines from position start up to end by given amount</span> 00654 <span class="comment"></span> FXint shiftText(FXint start,FXint end,FXint amount,FXbool notify=FALSE); 00655 <span class="comment"></span> 00656 <span class="comment"> /**</span> 00657 <span class="comment"> * Search for string in text buffer, returning the extent of</span> 00658 <span class="comment"> * the string in beg and end. The search starts from the given</span> 00659 <span class="comment"> * starting position, scans forward (SEARCH_FORWARD) or backward</span> 00660 <span class="comment"> * (SEARCH_BACKWARD), and wraps around if SEARCH_WRAP has been</span> 00661 <span class="comment"> * specified. The search type is either a plain search (SEARCH_EXACT),</span> 00662 <span class="comment"> * case insensitive search (SEARCH_IGNORECASE), or regular expression</span> 00663 <span class="comment"> * search (SEARCH_REGEX).</span> 00664 <span class="comment"> * For regular expression searches, capturing parentheses are used if</span> 00665 <span class="comment"> * npar is greater than 1; in this case, the number of entries in the</span> 00666 <span class="comment"> * beg[], end[] arrays must be npar also. If either beg or end or</span> 00667 <span class="comment"> * both are NULL, internal arrays are used.</span> 00668 <span class="comment"> * [This API is still subject to change!!]</span> 00669 <span class="comment"> */</span> 00670 FXbool findText(<span class="keyword">const</span> FXString& string,FXint* beg=NULL,FXint* end=NULL,FXint start=0,FXuint flags=SEARCH_FORWARD|SEARCH_WRAP|SEARCH_EXACT,FXint npar=1); 00671 <span class="comment"></span> 00672 <span class="comment"> /// Return TRUE if position pos is selected</span> 00673 <span class="comment"></span> FXbool isPosSelected(FXint pos) <span class="keyword">const</span>; 00674 <span class="comment"></span> 00675 <span class="comment"> /// Return TRUE if position is fully visible</span> 00676 <span class="comment"></span> FXbool isPosVisible(FXint pos) <span class="keyword">const</span>; 00677 <span class="comment"></span> 00678 <span class="comment"> /// Return text position at given visible x,y coordinate</span> 00679 <span class="comment"></span> FXint getPosAt(FXint x,FXint y) <span class="keyword">const</span>; 00680 <span class="comment"></span> 00681 <span class="comment"> /// Return position of begin of line containing position pos</span> 00682 <span class="comment"></span> FXint lineStart(FXint pos) <span class="keyword">const</span>; 00683 <span class="comment"></span> 00684 <span class="comment"> /// Return position of end of line containing position pos</span> 00685 <span class="comment"></span> FXint lineEnd(FXint pos) <span class="keyword">const</span>; 00686 <span class="comment"></span> 00687 <span class="comment"> /// Return start of next line</span> 00688 <span class="comment"></span> FXint nextLine(FXint pos,FXint nl=1) <span class="keyword">const</span>; 00689 <span class="comment"></span> 00690 <span class="comment"> /// Return start of previous line</span> 00691 <span class="comment"></span> FXint prevLine(FXint pos,FXint nl=1) <span class="keyword">const</span>; 00692 <span class="comment"></span> 00693 <span class="comment"> /// Return row start</span> 00694 <span class="comment"></span> FXint rowStart(FXint pos) <span class="keyword">const</span>; 00695 <span class="comment"></span> 00696 <span class="comment"> /// Return row end</span> 00697 <span class="comment"></span> FXint rowEnd(FXint pos) <span class="keyword">const</span>; 00698 <span class="comment"></span> 00699 <span class="comment"> /// Return start of next row</span> 00700 <span class="comment"></span> FXint nextRow(FXint pos,FXint nr=1) <span class="keyword">const</span>; 00701 <span class="comment"></span> 00702 <span class="comment"> /// Return start of previous row</span> 00703 <span class="comment"></span> FXint prevRow(FXint pos,FXint nr=1) <span class="keyword">const</span>; 00704 <span class="comment"></span> 00705 <span class="comment"> /// Return end of previous word</span> 00706 <span class="comment"></span> FXint leftWord(FXint pos) <span class="keyword">const</span>; 00707 <span class="comment"></span> 00708 <span class="comment"> /// Return begin of next word</span> 00709 <span class="comment"></span> FXint rightWord(FXint pos) <span class="keyword">const</span>; 00710 <span class="comment"></span> 00711 <span class="comment"> /// Return begin of word</span> 00712 <span class="comment"></span> FXint wordStart(FXint pos) <span class="keyword">const</span>; 00713 <span class="comment"></span> 00714 <span class="comment"> /// Return end of word</span> 00715 <span class="comment"></span> FXint wordEnd(FXint pos) <span class="keyword">const</span>; 00716 <span class="comment"></span> 00717 <span class="comment"> /// Return validated position</span> 00718 <span class="comment"></span> FXint validPos(FXint pos) <span class="keyword">const</span>; 00719 <span class="comment"></span> 00720 <span class="comment"> /// Make line containing pos the top line</span> 00721 <span class="comment"></span> <span class="keywordtype">void</span> setTopLine(FXint pos); 00722 <span class="comment"></span> 00723 <span class="comment"> /// Return position of top line</span> 00724 <span class="comment"></span> FXint getTopLine() <span class="keyword">const</span>; 00725 <span class="comment"></span> 00726 <span class="comment"> /// Make line containing pos the bottom line</span> 00727 <span class="comment"></span> <span class="keywordtype">void</span> setBottomLine(FXint pos); 00728 <span class="comment"></span> 00729 <span class="comment"> /// Return the position of the bottom line</span> 00730 <span class="comment"></span> FXint getBottomLine() <span class="keyword">const</span>; 00731 <span class="comment"></span> 00732 <span class="comment"> /// Make line containing pos the center line</span> 00733 <span class="comment"></span> <span class="keywordtype">void</span> setCenterLine(FXint pos); 00734 <span class="comment"></span> 00735 <span class="comment"> /// Set the anchor position</span> 00736 <span class="comment"></span> <span class="keywordtype">void</span> setAnchorPos(FXint pos); 00737 <span class="comment"></span> 00738 <span class="comment"> /// Return the anchor position</span> 00739 <span class="comment"></span> FXint getAnchorPos()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> anchorpos; } 00740 <span class="comment"></span> 00741 <span class="comment"> /// Set the cursor position</span> 00742 <span class="comment"></span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> setCursorPos(FXint pos,FXbool notify=FALSE); 00743 <span class="comment"></span> 00744 <span class="comment"> /// Set cursor row</span> 00745 <span class="comment"></span> <span class="keywordtype">void</span> setCursorRow(FXint row,FXbool notify=FALSE); 00746 <span class="comment"></span> 00747 <span class="comment"> /// Return cursor row</span> 00748 <span class="comment"></span> FXint getCursorRow()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> cursorrow; } 00749 <span class="comment"></span> 00750 <span class="comment"> /// Set cursor column</span> 00751 <span class="comment"></span> <span class="keywordtype">void</span> setCursorColumn(FXint col,FXbool notify=FALSE); 00752 <span class="comment"></span> 00753 <span class="comment"> /// Return cursor row, i.e. indent position</span> 00754 <span class="comment"></span> FXint getCursorColumn()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> cursorcol; } 00755 <span class="comment"></span> 00756 <span class="comment"> /// Return the cursor position</span> 00757 <span class="comment"></span> FXint getCursorPos()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> cursorpos; } 00758 <span class="comment"></span> 00759 <span class="comment"> /// Return selstartpos</span> 00760 <span class="comment"></span> FXint getSelStartPos()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> selstartpos; } 00761 <span class="comment"></span> 00762 <span class="comment"> /// Return selendpos</span> 00763 <span class="comment"></span> FXint getSelEndPos()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> selendpos; } 00764 <span class="comment"></span> 00765 <span class="comment"> /// Select all text</span> 00766 <span class="comment"></span> FXbool selectAll(FXbool notify=FALSE); 00767 <span class="comment"></span> 00768 <span class="comment"> /// Extend the selection from the anchor to the given position</span> 00769 <span class="comment"></span> <span class="keyword">virtual</span> FXbool extendSelection(FXint pos,FXTextSelectionMode select=SELECT_CHARS,FXbool notify=FALSE); 00770 <span class="comment"></span> 00771 <span class="comment"> /// Select len characters starting at given position pos</span> 00772 <span class="comment"></span> FXbool setSelection(FXint pos,FXint len,FXbool notify=FALSE); 00773 <span class="comment"></span> 00774 <span class="comment"> /// Unselect the text</span> 00775 <span class="comment"></span> <span class="keyword">virtual</span> FXbool killSelection(FXbool notify=FALSE); 00776 <span class="comment"></span> 00777 <span class="comment"> /// Highlight len characters starting at given position pos</span> 00778 <span class="comment"></span> FXbool setHighlight(FXint start,FXint len); 00779 <span class="comment"></span> 00780 <span class="comment"> /// Unhighlight the text</span> 00781 <span class="comment"></span> FXbool killHighlight(); 00782 <span class="comment"></span> 00783 <span class="comment"> /// Scroll text to make the given position visible</span> 00784 <span class="comment"></span> <span class="keywordtype">void</span> makePositionVisible(FXint pos); 00785 <span class="comment"></span> 00786 <span class="comment"> /// Change text widget style</span> 00787 <span class="comment"></span> <span class="keywordtype">void</span> setTextStyle(FXuint style); 00788 <span class="comment"></span> 00789 <span class="comment"> /// Return text widget style</span> 00790 <span class="comment"></span> FXuint getTextStyle() <span class="keyword">const</span>; 00791 <span class="comment"></span> 00792 <span class="comment"> /// Change number of visible rows</span> 00793 <span class="comment"></span> <span class="keywordtype">void</span> setVisibleRows(FXint rows); 00794 <span class="comment"></span> 00795 <span class="comment"> /// Return number of visible rows</span> 00796 <span class="comment"></span> FXint getVisibleRows()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> vrows; } 00797 <span class="comment"></span> 00798 <span class="comment"> /// Change number of visible columns</span> 00799 <span class="comment"></span> <span class="keywordtype">void</span> setVisibleColumns(FXint cols); 00800 <span class="comment"></span> 00801 <span class="comment"> /// Return number of visible columns</span> 00802 <span class="comment"></span> FXint getVisibleColumns()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> vcols; } 00803 <span class="comment"></span> 00804 <span class="comment"> /**</span> 00805 <span class="comment"> * Change brace and parenthesis match highlighting time, in ms.</span> 00806 <span class="comment"> * A match highlight time of 0 disables brace matching.</span> 00807 <span class="comment"> */</span> 00808 <span class="keywordtype">void</span> setHiliteMatchTime(FXuint t){ matchtime=t; } 00809 <span class="comment"></span> 00810 <span class="comment"> /**</span> 00811 <span class="comment"> * Return brace and parenthesis match highlighting time, in ms.</span> 00812 <span class="comment"> */</span> 00813 FXuint getHiliteMatchTime()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> matchtime; } 00814 <span class="comment"></span> 00815 <span class="comment"> /// Set highlight styles</span> 00816 <span class="comment"></span> <span class="keywordtype">void</span> setHiliteStyles(<span class="keyword">const</span> FXHiliteStyle* styles); 00817 <span class="comment"></span> 00818 <span class="comment"> /// Get highlight styles</span> 00819 <span class="comment"></span> <span class="keyword">const</span> FXHiliteStyle* getHiliteStyles()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> hilitestyles; } 00820 <span class="comment"></span> 00821 <span class="comment"> /// Save to a stream</span> 00822 <span class="comment"></span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> save(FXStream& store) <span class="keyword">const</span>; 00823 <span class="comment"></span> 00824 <span class="comment"> /// Load from a stream</span> 00825 <span class="comment"></span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> load(FXStream& store); 00826 <span class="comment"></span> 00827 <span class="comment"> /// Destructor</span> 00828 <span class="comment"></span> <span class="keyword">virtual</span> ~FXText(); 00829 }; 00830 00831 } 00832 00833 <span class="preprocessor">#endif</span> </pre></div></font> <!--- COPYRIGHT --> <p> <table width=100% cellpadding=0 cellspacing=0><tr><td width=100% valign=top id=HEADLINE align=right> <img src='../art/line.gif' width=100% height=1><font size=-1> Copyright © 1997-2004 Jeroen van der Zijp</font> </td></tr></table> </p> <!--- COPYRIGHT --> </body> </html>