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