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