00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
#ifndef FXTEXT_H
00025
#define FXTEXT_H
00026
00027
#ifndef FXSCROLLAREA_H
00028
#include "FXScrollArea.h"
00029
#endif
00030
00031
namespace FX {
00032
00033
00034
00035
enum {
00036
TEXT_READONLY = 0x00100000,
00037
TEXT_WORDWRAP = 0x00200000,
00038
TEXT_OVERSTRIKE = 0x00400000,
00039
TEXT_FIXEDWRAP = 0x00800000,
00040
TEXT_NO_TABS = 0x01000000,
00041
TEXT_AUTOINDENT = 0x02000000,
00042
TEXT_SHOWACTIVE = 0x04000000
00043 };
00044
00045
00046
00047
enum FXTextSelectionMode {
00048 SELECT_CHARS,
00049 SELECT_WORDS,
00050 SELECT_LINES
00051 };
00052
00053
00054
00055
struct FXHiliteStyle {
00056 FXColor normalForeColor;
00057 FXColor normalBackColor;
00058 FXColor selectForeColor;
00059 FXColor selectBackColor;
00060 FXColor hiliteForeColor;
00061 FXColor hiliteBackColor;
00062 FXColor activeBackColor;
00063 FXuint
style;
00064 };
00065
00066
00067
00068
00069
00070
00071
00072
00073
struct FXTextChange {
00074 FXint pos;
00075 FXint ndel;
00076 FXint nins;
00077 FXchar *ins;
00078 FXchar *del;
00079 };
00080
00081
00082
00083 class FXAPI FXText :
public FXScrollArea {
00084 FXDECLARE(FXText)
00085 protected:
00086 FXchar *buffer;
00087 FXchar *sbuffer;
00088 FXint *visrows;
00089 FXint length;
00090 FXint nvisrows;
00091 FXint nrows;
00092 FXint gapstart;
00093 FXint gapend;
00094 FXint toppos;
00095 FXint keeppos;
00096 FXint toprow;
00097 FXint selstartpos;
00098 FXint selendpos;
00099 FXint hilitestartpos;
00100 FXint hiliteendpos;
00101 FXint anchorpos;
00102 FXint cursorpos;
00103 FXint revertpos;
00104 FXint cursorstart;
00105 FXint cursorend;
00106 FXint cursorrow;
00107 FXint cursorcol;
00108 FXint prefcol;
00109 FXint margintop;
00110 FXint marginbottom;
00111 FXint marginleft;
00112 FXint marginright;
00113 FXint wrapwidth;
00114 FXint wrapcolumns;
00115 FXint tabwidth;
00116 FXint tabcolumns;
00117 FXint barwidth;
00118 FXint barcolumns;
00119
FXFont *font;
00120 FXColor textColor;
00121 FXColor selbackColor;
00122 FXColor seltextColor;
00123 FXColor hilitebackColor;
00124 FXColor hilitetextColor;
00125 FXColor activebackColor;
00126 FXColor numberColor;
00127 FXColor cursorColor;
00128 FXColor barColor;
00129 FXint textWidth;
00130 FXint textHeight;
00131
FXString searchstring;
00132 FXuint searchflags;
00133 const FXchar *delimiters;
00134 FXchar *clipbuffer;
00135 FXint cliplength;
00136 FXint vrows;
00137 FXint vcols;
00138
FXString help;
00139
FXString tip;
00140 const
FXHiliteStyle *hilitestyles;
00141 FXuint matchtime;
00142 FXbool modified;
00143 FXuchar mode;
00144 FXint grabx;
00145 FXint graby;
00146 protected:
00147 FXText();
00148
void calcVisRows(FXint s,FXint e);
00149 virtual
void eraseCursorOverhang();
00150 virtual
void drawCursor(FXuint state);
00151 virtual FXuint style(FXint row,FXint beg,FXint end,FXint pos) const;
00152 virtual
void drawBufferText(
FXDCWindow& dc,FXint x,FXint y,FXint w,FXint h,FXint pos,FXint n,FXuint style) const;
00153 virtual
void fillBufferRect(
FXDCWindow& dc,FXint x,FXint y,FXint w,FXint h,FXuint style) const;
00154 virtual
void drawTextRow(
FXDCWindow& dc,FXint line,FXint left,FXint right) const;
00155 virtual
void drawContents(
FXDCWindow& dc,FXint x,FXint y,FXint w,FXint h) const;
00156 virtual
void drawNumbers(
FXDCWindow& dc,FXint x,FXint y,FXint w,FXint h) const;
00157 FXint posToLine(FXint pos,FXint ln) const;
00158 FXbool posVisible(FXint pos) const;
00159
void updateRange(FXint beg,FXint end) const;
00160
void movegap(FXint pos);
00161
void sizegap(FXint sz);
00162
void squeezegap();
00163 FXint charWidth(FXchar ch,FXint indent) const;
00164 FXint wrap(FXint start) const;
00165 FXint countRows(FXint start,FXint end) const;
00166 FXint countCols(FXint start,FXint end) const;
00167 FXint countLines(FXint start,FXint end) const;
00168 FXint measureText(FXint start,FXint end,FXint& wmax,FXint& hmax) const;
00169 FXint lineWidth(FXint pos,FXint n) const;
00170 FXint getYOfPos(FXint pos) const;
00171 FXint getXOfPos(FXint pos) const;
00172 FXint changeBeg(FXint pos) const;
00173 FXint changeEnd(FXint pos) const;
00174 FXint indentFromPos(FXint start,FXint pos) const;
00175 FXint posFromIndent(FXint start,FXint indent) const;
00176
void mutation(FXint pos,FXint ncins,FXint ncdel,FXint nrins,FXint nrdel);
00177 virtual
void replace(FXint pos,FXint m,const FXchar *text,FXint n,FXint style);
00178
void recompute();
00179 FXint matchForward(FXint pos,FXint end,FXchar l,FXchar r,FXint level) const;
00180 FXint matchBackward(FXint pos,FXint beg,FXchar l,FXchar r,FXint level) const;
00181 FXint findMatching(FXint pos,FXint beg,FXint end,FXchar ch,FXint level) const;
00182
void flashMatching();
00183
void moveContents(FXint x,FXint y);
00184 protected:
00185 enum {
00186 STYLE_MASK = 0x00FF,
00187 STYLE_TEXT = 0x0100,
00188 STYLE_SELECTED = 0x0200,
00189 STYLE_CONTROL = 0x0400,
00190 STYLE_HILITE = 0x0800,
00191 STYLE_ACTIVE = 0x1000
00192 };
00193
enum {
00194 MOUSE_NONE,
00195 MOUSE_CHARS,
00196 MOUSE_WORDS,
00197 MOUSE_LINES,
00198 MOUSE_SCROLL,
00199 MOUSE_DRAG,
00200 MOUSE_TRYDRAG
00201 };
00202
public:
00203
enum {
00204 STYLE_UNDERLINE = 0x0001,
00205 STYLE_STRIKEOUT = 0x0002,
00206 STYLE_BOLD = 0x0004
00207 };
00208
private:
00209 FXText(
const FXText&);
00210 FXText& operator=(
const FXText&);
00211
public:
00212
long onPaint(FXObject*,FXSelector,
void*);
00213
long onUpdate(FXObject*,FXSelector,
void*);
00214
long onFocusIn(FXObject*,FXSelector,
void*);
00215
long onFocusOut(FXObject*,FXSelector,
void*);
00216
long onLeftBtnPress(FXObject*,FXSelector,
void*);
00217
long onLeftBtnRelease(FXObject*,FXSelector,
void*);
00218
long onMiddleBtnPress(FXObject*,FXSelector,
void*);
00219
long onMiddleBtnRelease(FXObject*,FXSelector,
void*);
00220
long onRightBtnPress(FXObject*,FXSelector,
void*);
00221
long onRightBtnRelease(FXObject*,FXSelector,
void*);
00222
long onUngrabbed(FXObject*,FXSelector,
void*);
00223
long onMotion(FXObject*,FXSelector,
void*);
00224
long onBeginDrag(FXObject*,FXSelector,
void*);
00225
long onEndDrag(FXObject*,FXSelector,
void*);
00226
long onDragged(FXObject*,FXSelector,
void*);
00227
long onDNDEnter(FXObject*,FXSelector,
void*);
00228
long onDNDLeave(FXObject*,FXSelector,
void*);
00229
long onDNDMotion(FXObject*,FXSelector,
void*);
00230
long onDNDDrop(FXObject*,FXSelector,
void*);
00231
long onDNDRequest(FXObject*,FXSelector,
void*);
00232
long onSelectionLost(FXObject*,FXSelector,
void*);
00233
long onSelectionGained(FXObject*,FXSelector,
void*);
00234
long onSelectionRequest(FXObject*,FXSelector,
void* ptr);
00235
long onClipboardLost(FXObject*,FXSelector,
void*);
00236
long onClipboardGained(FXObject*,FXSelector,
void*);
00237
long onClipboardRequest(FXObject*,FXSelector,
void*);
00238
long onKeyPress(FXObject*,FXSelector,
void*);
00239
long onKeyRelease(FXObject*,FXSelector,
void*);
00240
long onBlink(FXObject*,FXSelector,
void*);
00241
long onFlash(FXObject*,FXSelector,
void*);
00242
long onAutoScroll(FXObject*,FXSelector,
void*);
00243
long onQueryHelp(FXObject*,FXSelector,
void*);
00244
long onQueryTip(FXObject*,FXSelector,
void*);
00245
00246
00247
long onCmdToggleEditable(FXObject*,FXSelector,
void*);
00248
long onUpdToggleEditable(FXObject*,FXSelector,
void*);
00249
long onCmdToggleOverstrike(FXObject*,FXSelector,
void*);
00250
long onUpdToggleOverstrike(FXObject*,FXSelector,
void*);
00251
long onCmdCursorRow(FXObject*,FXSelector,
void*);
00252
long onUpdCursorRow(FXObject*,FXSelector,
void*);
00253
long onCmdCursorColumn(FXObject*,FXSelector,
void*);
00254
long onUpdCursorColumn(FXObject*,FXSelector,
void*);
00255
long onUpdHaveSelection(FXObject*,FXSelector,
void*);
00256
long onUpdSelectAll(FXObject*,FXSelector,
void*);
00257
long onCmdSetStringValue(FXObject*,FXSelector,
void*);
00258
long onCmdGetStringValue(FXObject*,FXSelector,
void*);
00259
long onCmdSearch(FXObject*,FXSelector,
void*);
00260
long onCmdReplace(FXObject*,FXSelector,
void*);
00261
long onCmdSearchNext(FXObject*,FXSelector,
void*);
00262
long onCmdSearchSel(FXObject*,FXSelector,
void*);
00263
00264
00265
long onCmdCursorTop(FXObject*,FXSelector,
void*);
00266
long onCmdCursorBottom(FXObject*,FXSelector,
void*);
00267
long onCmdCursorHome(FXObject*,FXSelector,
void*);
00268
long onCmdCursorEnd(FXObject*,FXSelector,
void*);
00269
long onCmdCursorRight(FXObject*,FXSelector,
void*);
00270
long onCmdCursorLeft(FXObject*,FXSelector,
void*);
00271
long onCmdCursorUp(FXObject*,FXSelector,
void*);
00272
long onCmdCursorDown(FXObject*,FXSelector,
void*);
00273
long onCmdCursorWordLeft(FXObject*,FXSelector,
void*);
00274
long onCmdCursorWordRight(FXObject*,FXSelector,
void*);
00275
long onCmdCursorWordStart(FXObject*,FXSelector,
void*);
00276
long onCmdCursorWordEnd(FXObject*,FXSelector,
void*);
00277
long onCmdCursorPageDown(FXObject*,FXSelector,
void*);
00278
long onCmdCursorPageUp(FXObject*,FXSelector,
void*);
00279
long onCmdCursorScreenTop(FXObject*,FXSelector,
void*);
00280
long onCmdCursorScreenBottom(FXObject*,FXSelector,
void*);
00281
long onCmdCursorScreenCenter(FXObject*,FXSelector,
void*);
00282
long onCmdCursorParHome(FXObject*,FXSelector,
void*);
00283 long onCmdCursorParEnd(
FXObject*,FXSelector,
void*);
00284
long onCmdBlockBeg(
FXObject*,FXSelector,
void*);
00285
long onCmdBlockEnd(
FXObject*,FXSelector,
void*);
00286
long onCmdGotoMatching(
FXObject*,FXSelector,
void*);
00287
long onCmdGotoSelected(
FXObject*,FXSelector,
void*);
00288
long onCmdGotoLine(
FXObject*,FXSelector,
void*);
00289 long onCmdScrollUp(
FXObject*,FXSelector,
void*);
00290
long onCmdScrollDown(
FXObject*,FXSelector,
void*);
00291
00292
00293
long onCmdMark(
FXObject*,FXSelector,
void*);
00294
long onCmdExtend(
FXObject*,FXSelector,
void*);
00295
00296
00297
long onCmdOverstString(
FXObject*,FXSelector,
void*);
00298
long onCmdInsertString(
FXObject*,FXSelector,
void*);
00299
long onCmdInsertNewline(
FXObject*,FXSelector,
void*);
00300
long onCmdInsertTab(
FXObject*,FXSelector,
void*);
00301
00302
00303
long onCmdCutSel(
FXObject*,FXSelector,
void*);
00304 long onCmdCopySel(
FXObject*,FXSelector,
void*);
00305
long onCmdPasteSel(
FXObject*,FXSelector,
void*);
00306
long onCmdDeleteSel(
FXObject*,FXSelector,
void*);
00307
long onCmdChangeCase(
FXObject*,FXSelector,
void*);
00308
long onCmdShiftText(
FXObject*,FXSelector,
void*);
00309
long onCmdPasteMiddle(
FXObject*,FXSelector,
void*);
00310
00311
00312
long onCmdSelectChar(
FXObject*,FXSelector,
void*);
00313
long onCmdSelectWord(
FXObject*,FXSelector,
void*);
00314
long onCmdSelectLine(
FXObject*,FXSelector,
void*);
00315
long onCmdSelectAll(
FXObject*,FXSelector,
void*);
00316 long onCmdSelectMatching(
FXObject*,FXSelector,
void*);
00317
long onCmdSelectBlock(
FXObject*,FXSelector,
void*);
00318
long onCmdDeselectAll(
FXObject*,FXSelector,
void*);
00319
00320
00321
long onCmdBackspace(
FXObject*,FXSelector,
void*);
00322 long onCmdBackspaceWord(
FXObject*,FXSelector,
void*);
00323
long onCmdBackspaceBol(
FXObject*,FXSelector,
void*);
00324
long onCmdDelete(
FXObject*,FXSelector,
void*);
00325 long onCmdDeleteWord(
FXObject*,FXSelector,
void*);
00326
long onCmdDeleteEol(
FXObject*,FXSelector,
void*);
00327
long onCmdDeleteAll(
FXObject*,FXSelector,
void*);
00328
long onCmdDeleteLine(
FXObject*,FXSelector,
void*);
00329
00330
public:
00331
static const FXchar textDelimiters[];
00332
00333
public:
00334
00335
enum {
00336 ID_CURSOR_TOP=FXScrollArea::ID_LAST,
00337 ID_CURSOR_BOTTOM,
00338 ID_CURSOR_HOME,
00339 ID_CURSOR_END,
00340 ID_CURSOR_RIGHT,
00341 ID_CURSOR_LEFT,
00342 ID_CURSOR_UP,
00343 ID_CURSOR_DOWN,
00344 ID_CURSOR_WORD_LEFT,
00345 ID_CURSOR_WORD_RIGHT,
00346 ID_CURSOR_WORD_START,
00347 ID_CURSOR_WORD_END,
00348 ID_CURSOR_PAGEDOWN,
00349 ID_CURSOR_PAGEUP,
00350 ID_CURSOR_SCRNTOP,
00351 ID_CURSOR_SCRNBTM,
00352 ID_CURSOR_SCRNCTR,
00353 ID_CURSOR_PAR_HOME,
00354 ID_CURSOR_PAR_END,
00355 ID_SCROLL_UP,
00356 ID_SCROLL_DOWN,
00357 ID_MARK,
00358 ID_EXTEND,
00359 ID_OVERST_STRING,
00360 ID_INSERT_STRING,
00361 ID_INSERT_NEWLINE,
00362 ID_INSERT_TAB,
00363 ID_CUT_SEL,
00364 ID_COPY_SEL,
00365 ID_DELETE_SEL,
00366 ID_PASTE_SEL,
00367 ID_PASTE_MIDDLE,
00368 ID_SELECT_CHAR,
00369 ID_SELECT_WORD,
00370 ID_SELECT_LINE,
00371 ID_SELECT_ALL,
00372 ID_SELECT_MATCHING,
00373 ID_SELECT_BRACE,
00374 ID_SELECT_BRACK,
00375 ID_SELECT_PAREN,
00376 ID_SELECT_ANG,
00377 ID_DESELECT_ALL,
00378 ID_BACKSPACE,
00379 ID_BACKSPACE_WORD,
00380 ID_BACKSPACE_BOL,
00381 ID_DELETE,
00382 ID_DELETE_WORD,
00383 ID_DELETE_EOL,
00384 ID_DELETE_ALL,
00385 ID_DELETE_LINE,
00386 ID_TOGGLE_EDITABLE,
00387 ID_TOGGLE_OVERSTRIKE,
00388 ID_CURSOR_ROW,
00389 ID_CURSOR_COLUMN,
00390 ID_CLEAN_INDENT,
00391 ID_SHIFT_LEFT,
00392 ID_SHIFT_RIGHT,
00393 ID_SHIFT_TABLEFT,
00394 ID_SHIFT_TABRIGHT,
00395 ID_UPPER_CASE,
00396 ID_LOWER_CASE,
00397 ID_GOTO_MATCHING,
00398 ID_GOTO_SELECTED,
00399 ID_GOTO_LINE,
00400 ID_SEARCH_FORW_SEL,
00401 ID_SEARCH_BACK_SEL,
00402 ID_SEARCH_FORW,
00403 ID_SEARCH_BACK,
00404 ID_SEARCH,
00405 ID_REPLACE,
00406 ID_LEFT_BRACE,
00407 ID_LEFT_BRACK,
00408 ID_LEFT_PAREN,
00409 ID_LEFT_ANG,
00410 ID_RIGHT_BRACE,
00411 ID_RIGHT_BRACK,
00412 ID_RIGHT_PAREN,
00413 ID_RIGHT_ANG,
00414 ID_BLINK,
00415 ID_FLASH,
00416 ID_LAST
00417 };
00418
00419
public:
00420
00421
00422 FXText(
FXComposite *p,
FXObject* tgt=NULL,FXSelector sel=0,FXuint opts=0,FXint x=0,FXint y=0,FXint w=0,FXint h=0);
00423
00424
00425
virtual void create();
00426
00427
00428
virtual void detach();
00429
00430
00431
virtual void layout();
00432
00433
00434
virtual FXint getDefaultWidth();
00435
00436
00437
virtual FXint getDefaultHeight();
00438
00439
00440
virtual void enable();
00441
00442
00443
virtual void disable();
00444
00445
00446
virtual void recalc();
00447
00448
00449
virtual void resize(FXint w,FXint h);
00450
00451
00452
virtual void position(FXint x,FXint y,FXint w,FXint h);
00453
00454
00455
virtual FXint getContentWidth();
00456
00457
00458
virtual FXint getContentHeight();
00459
00460
00461
virtual FXbool canFocus() const;
00462
00463
00464 virtual
void setFocus();
00465
00466
00467 virtual
void killFocus();
00468
00469
00470
void setMarginTop(FXint pt);
00471
00472
00473 FXint getMarginTop()
const {
return margintop; }
00474
00475
00476
void setMarginBottom(FXint pb);
00477
00478
00479 FXint getMarginBottom()
const {
return marginbottom; }
00480
00481
00482
void setMarginLeft(FXint pl);
00483
00484
00485 FXint getMarginLeft()
const {
return marginleft; }
00486
00487
00488
void setMarginRight(FXint pr);
00489
00490
00491 FXint getMarginRight()
const {
return marginright; }
00492
00493
00494 FXint getWrapColumns()
const {
return wrapcolumns; }
00495
00496
00497
void setWrapColumns(FXint cols);
00498
00499
00500 FXint getTabColumns()
const {
return tabcolumns; }
00501
00502
00503
void setTabColumns(FXint cols);
00504
00505
00506 FXint getBarColumns()
const {
return barcolumns; }
00507
00508
00509
void setBarColumns(FXint cols);
00510
00511
00512 FXbool isModified()
const {
return modified; }
00513
00514
00515
void setModified(FXbool mod=TRUE){ modified=mod; }
00516
00517
00518 FXbool isEditable() const;
00519
00520
00521
void setEditable(FXbool edit=TRUE);
00522
00523
00524
void setStyled(FXbool styled=TRUE);
00525
00526
00527 FXbool isStyled()
const {
return (sbuffer!=NULL); }
00528
00529
00530
void setDelimiters(
const FXchar* delims=textDelimiters){ delimiters=delims; }
00531
00532
00533
const FXchar* getDelimiters()
const {
return delimiters; }
00534
00535
00536
void setFont(FXFont* fnt);
00537
00538
00539 FXFont* getFont()
const {
return font; }
00540
00541
00542
void setTextColor(FXColor clr);
00543
00544
00545 FXColor getTextColor()
const {
return textColor; }
00546
00547
00548
void setSelBackColor(FXColor clr);
00549
00550
00551 FXColor getSelBackColor()
const {
return selbackColor; }
00552
00553
00554
void setSelTextColor(FXColor clr);
00555
00556
00557 FXColor getSelTextColor()
const {
return seltextColor; }
00558
00559
00560
void setHiliteTextColor(FXColor clr);
00561
00562
00563 FXColor getHiliteTextColor()
const {
return hilitetextColor; }
00564
00565
00566
void setHiliteBackColor(FXColor clr);
00567
00568
00569 FXColor getHiliteBackColor()
const {
return hilitebackColor; }
00570
00571
00572 void setActiveBackColor(FXColor clr);
00573
00574
00575 FXColor getActiveBackColor()
const {
return activebackColor; }
00576
00577
00578 void setCursorColor(FXColor clr);
00579
00580
00581 FXColor getCursorColor()
const {
return cursorColor; }
00582
00583
00584 void setNumberColor(FXColor clr);
00585
00586
00587 FXColor getNumberColor()
const {
return numberColor; }
00588
00589
00590
void setBarColor(FXColor clr);
00591
00592
00593 FXColor getBarColor()
const {
return barColor; }
00594
00595
00596
void setHelpText(
const FXString& text){ help=text; }
00597
00598
00599 FXString getHelpText()
const {
return help; }
00600
00601
00602
void setTipText(
const FXString& text){ tip=text; }
00603
00604
00605 FXString getTipText()
const {
return tip; }
00606
00607
00608 FXint getChar(FXint pos)
const;
00609
00610
00611 FXint getStyle(FXint pos)
const;
00612
00613
00614
void extractText(FXchar *text,FXint pos,FXint n)
const;
00615
00616
00617
void extractStyle(FXchar *style,FXint pos,FXint n)
const;
00618
00619
00620 void replaceText(FXint pos,FXint m,
const FXchar *text,FXint n,FXbool notify=FALSE);
00621
00622
00623
void replaceStyledText(FXint pos,FXint m,
const FXchar *text,FXint n,FXint style=0,FXbool notify=FALSE);
00624
00625
00626 void appendText(
const FXchar *text,FXint n,FXbool notify=FALSE);
00627
00628
00629
void appendStyledText(
const FXchar *text,FXint n,FXint style=0,FXbool notify=FALSE);
00630
00631
00632 void insertText(FXint pos,
const FXchar *text,FXint n,FXbool notify=FALSE);
00633
00634
00635
void insertStyledText(FXint pos,
const FXchar *text,FXint n,FXint style=0,FXbool notify=FALSE);
00636
00637
00638
void removeText(FXint pos,FXint n,FXbool notify=FALSE);
00639
00640
00641
void changeStyle(FXint pos,FXint n,FXint style);
00642
00643
00644
void changeStyle(FXint pos,FXint n,
const FXchar* style);
00645
00646
00647
void setText(
const FXchar* text,FXint n,FXbool notify=FALSE);
00648
00649
00650
void setStyledText(
const FXchar* text,FXint n,FXint style=0,FXbool notify=FALSE);
00651
00652
00653
void getText(FXchar* text,FXint n)
const;
00654
00655
00656
void setText(
const FXString& text,FXbool notify=FALSE);
00657
00658
00659
void setStyledText(
const FXString& text,FXint style=0,FXbool notify=FALSE);
00660
00661
00662
FXString getText() const;
00663
00664
00665 FXint getLength()
const {
return length; }
00666
00667
00668 FXint shiftText(FXint start,FXint end,FXint amount,FXbool notify=FALSE);
00669
00670
00671
00672
00673
00674
00675
00676
00677
00678
00679
00680
00681
00682
00683
00684 FXbool findText(
const FXString& string,FXint* beg=NULL,FXint* end=NULL,FXint start=0,FXuint flags=SEARCH_FORWARD|SEARCH_WRAP|SEARCH_EXACT,FXint npar=1);
00685
00686
00687 FXbool isPosSelected(FXint pos)
const;
00688
00689
00690 FXbool isPosVisible(FXint pos)
const;
00691
00692
00693 FXint getPosAt(FXint x,FXint y)
const;
00694
00695
00696 FXint lineStart(FXint pos)
const;
00697
00698
00699 FXint lineEnd(FXint pos)
const;
00700
00701
00702 FXint nextLine(FXint pos,FXint nl=1)
const;
00703
00704
00705 FXint prevLine(FXint pos,FXint nl=1)
const;
00706
00707
00708 FXint rowStart(FXint pos)
const;
00709
00710
00711 FXint rowEnd(FXint pos)
const;
00712
00713
00714 FXint nextRow(FXint pos,FXint nr=1)
const;
00715
00716
00717 FXint prevRow(FXint pos,FXint nr=1)
const;
00718
00719
00720 FXint leftWord(FXint pos)
const;
00721
00722
00723 FXint rightWord(FXint pos)
const;
00724
00725
00726 FXint wordStart(FXint pos)
const;
00727
00728
00729 FXint wordEnd(FXint pos)
const;
00730
00731
00732 FXint validPos(FXint pos)
const;
00733
00734
00735
void setTopLine(FXint pos);
00736
00737
00738 FXint getTopLine() const;
00739
00740
00741
void setBottomLine(FXint pos);
00742
00743
00744 FXint getBottomLine() const;
00745
00746
00747
void setCenterLine(FXint pos);
00748
00749
00750
void setAnchorPos(FXint pos);
00751
00752
00753 FXint getAnchorPos()
const {
return anchorpos; }
00754
00755
00756
virtual void setCursorPos(FXint pos,FXbool notify=FALSE);
00757
00758
00759
void setCursorRow(FXint row,FXbool notify=FALSE);
00760
00761
00762 FXint getCursorRow()
const {
return cursorrow; }
00763
00764
00765
void setCursorColumn(FXint col,FXbool notify=FALSE);
00766
00767
00768 FXint getCursorColumn()
const {
return cursorcol; }
00769
00770
00771 FXint getCursorPos()
const {
return cursorpos; }
00772
00773
00774 FXint getSelStartPos()
const {
return selstartpos; }
00775
00776
00777 FXint getSelEndPos()
const {
return selendpos; }
00778
00779
00780 FXbool selectAll(FXbool notify=FALSE);
00781
00782
00783
virtual FXbool extendSelection(FXint pos,FXTextSelectionMode select=SELECT_CHARS,FXbool notify=FALSE);
00784
00785
00786 FXbool setSelection(FXint pos,FXint len,FXbool notify=FALSE);
00787
00788
00789
virtual FXbool killSelection(FXbool notify=FALSE);
00790
00791
00792 FXbool setHighlight(FXint start,FXint len);
00793
00794
00795 FXbool killHighlight();
00796
00797
00798
void makePositionVisible(FXint pos);
00799
00800
00801
void setTextStyle(FXuint style);
00802
00803
00804 FXuint getTextStyle() const;
00805
00806
00807
void setVisibleRows(FXint rows);
00808
00809
00810 FXint getVisibleRows()
const {
return vrows; }
00811
00812
00813
void setVisibleColumns(FXint cols);
00814
00815
00816 FXint getVisibleColumns()
const {
return vcols; }
00817
00818
00819
00820
00821
00822
void setHiliteMatchTime(FXuint t){ matchtime=t; }
00823
00824
00825
00826
00827 FXuint getHiliteMatchTime()
const {
return matchtime; }
00828
00829
00830
void setHiliteStyles(
const FXHiliteStyle* styles);
00831
00832
00833
const FXHiliteStyle* getHiliteStyles()
const {
return hilitestyles; }
00834
00835
00836
virtual void save(FXStream& store)
const;
00837
00838
00839
virtual void load(FXStream& store);
00840
00841
00842
virtual ~FXText();
00843 };
00844
00845 }
00846
00847
#endif