00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #ifndef FXTEXT_H
00022 #define FXTEXT_H
00023
00024 #ifndef FXSCROLLAREA_H
00025 #include "FXScrollArea.h"
00026 #endif
00027
00028 namespace FX {
00029
00030
00032 enum {
00033 TEXT_READONLY = 0x00100000,
00034 TEXT_WORDWRAP = 0x00200000,
00035 TEXT_OVERSTRIKE = 0x00400000,
00036 TEXT_FIXEDWRAP = 0x00800000,
00037 TEXT_NO_TABS = 0x01000000,
00038 TEXT_AUTOINDENT = 0x02000000,
00039 TEXT_SHOWACTIVE = 0x04000000
00040 };
00041
00042
00044 struct FXHiliteStyle {
00045 FXColor normalForeColor;
00046 FXColor normalBackColor;
00047 FXColor selectForeColor;
00048 FXColor selectBackColor;
00049 FXColor hiliteForeColor;
00050 FXColor hiliteBackColor;
00051 FXColor activeBackColor;
00052 FXuint style;
00053 };
00054
00055
00062 struct FXTextChange {
00063 FXint pos;
00064 FXint ndel;
00065 FXint nins;
00066 FXchar *ins;
00067 FXchar *del;
00068 };
00069
00070
00138 class FXAPI FXText : public FXScrollArea {
00139 FXDECLARE(FXText)
00140 protected:
00141 FXchar *buffer;
00142 FXchar *sbuffer;
00143 FXint *visrows;
00144 FXint length;
00145 FXint nvisrows;
00146 FXint nrows;
00147 FXint gapstart;
00148 FXint gapend;
00149 FXint toppos;
00150 FXint keeppos;
00151 FXint toprow;
00152 FXint selstartpos;
00153 FXint selendpos;
00154 FXint hilitestartpos;
00155 FXint hiliteendpos;
00156 FXint anchorpos;
00157 FXint cursorpos;
00158 FXint cursorstart;
00159 FXint cursorend;
00160 FXint cursorrow;
00161 FXint cursorcol;
00162 FXint prefcol;
00163 FXint margintop;
00164 FXint marginbottom;
00165 FXint marginleft;
00166 FXint marginright;
00167 FXint wrapwidth;
00168 FXint wrapcolumns;
00169 FXint tabwidth;
00170 FXint tabcolumns;
00171 FXint barwidth;
00172 FXint barcolumns;
00173 FXFont *font;
00174 FXColor textColor;
00175 FXColor selbackColor;
00176 FXColor seltextColor;
00177 FXColor hilitebackColor;
00178 FXColor hilitetextColor;
00179 FXColor activebackColor;
00180 FXColor numberColor;
00181 FXColor cursorColor;
00182 FXColor barColor;
00183 FXint textWidth;
00184 FXint textHeight;
00185 FXString searchstring;
00186 FXuint searchflags;
00187 const FXchar *delimiters;
00188 FXString clipped;
00189 FXint vrows;
00190 FXint vcols;
00191 FXString help;
00192 FXString tip;
00193 FXHiliteStyle *hilitestyles;
00194 FXTime matchtime;
00195 FXint grabx;
00196 FXint graby;
00197 FXuchar mode;
00198 FXbool modified;
00199 protected:
00200 FXText();
00201 void calcVisRows(FXint s,FXint e);
00202 void drawCursor(FXuint state);
00203 virtual void paintCursor(FXDCWindow& dc) const;
00204 virtual void eraseCursor(FXDCWindow& dc) const;
00205 virtual void eraseCursorOverhang();
00206 virtual FXuint styleOf(FXint beg,FXint end,FXint row,FXint col,FXint pos) const;
00207 virtual void drawBufferText(FXDCWindow& dc,FXint x,FXint y,FXint w,FXint h,FXint pos,FXint n,FXuint style) const;
00208 virtual void fillBufferRect(FXDCWindow& dc,FXint x,FXint y,FXint w,FXint h,FXuint style) const;
00209 virtual void drawTextRow(FXDCWindow& dc,FXint row) const;
00210 virtual void drawContents(FXDCWindow& dc) const;
00211 virtual void drawNumbers(FXDCWindow& dc) const;
00212 FXint posToLine(FXint pos,FXint ln) const;
00213 void updateRange(FXint beg,FXint end) const;
00214 void movegap(FXint pos);
00215 void sizegap(FXint sz);
00216 void squeezegap();
00217 FXint charWidth(FXwchar ch,FXint indent) const;
00218 FXint wrap(FXint start) const;
00219 FXint measureText(FXint start,FXint end,FXint& wmax,FXint& hmax) const;
00220 FXint lineWidth(FXint pos,FXint n) const;
00221 FXint changeBeg(FXint pos) const;
00222 FXint changeEnd(FXint pos) const;
00223 FXint indentFromPos(FXint start,FXint pos) const;
00224 FXint posFromIndent(FXint start,FXint indent) const;
00225 void mutation(FXint pos,FXint ncins,FXint ncdel,FXint nrins,FXint nrdel);
00226 virtual void replace(FXint pos,FXint m,const FXchar *text,FXint n,FXint style);
00227 void recompute();
00228 FXint matchForward(FXint pos,FXint end,FXwchar l,FXwchar r,FXint level) const;
00229 FXint matchBackward(FXint pos,FXint beg,FXwchar l,FXwchar r,FXint level) const;
00230 FXint findMatching(FXint pos,FXint beg,FXint end,FXwchar ch,FXint level) const;
00231 void flashMatching();
00232 void moveContents(FXint x,FXint y);
00233 void moveCursor(FXint pos,FXbool notify=false);
00234 void moveCursorAndSelect(FXint pos,FXuint select,FXbool notify=false);
00235 FXint overstruck(FXint start,FXint end,const FXchar *text,FXint n);
00236 void enterText(const FXchar *text,FXint n,FXbool notify);
00237 void enterText(const FXString& text,FXbool notify);
00238 FXbool deletePendingSelection(FXbool notify);
00239 protected:
00240 enum {
00241 MOUSE_NONE,
00242 MOUSE_CHARS,
00243 MOUSE_WORDS,
00244 MOUSE_LINES,
00245 MOUSE_SCROLL,
00246 MOUSE_DRAG,
00247 MOUSE_TRYDRAG
00248 };
00249 protected:
00250 enum {
00251 STYLE_MASK = 0x00FF,
00252 STYLE_TEXT = 0x0100,
00253 STYLE_SELECTED = 0x0200,
00254 STYLE_CONTROL = 0x0400,
00255 STYLE_HILITE = 0x0800,
00256 STYLE_ACTIVE = 0x1000
00257 };
00258 public:
00259 enum {
00260 STYLE_UNDERLINE = 0x0001,
00261 STYLE_STRIKEOUT = 0x0002,
00262 STYLE_BOLD = 0x0004
00263 };
00264 private:
00265 FXText(const FXText&);
00266 FXText& operator=(const FXText&);
00267 public:
00268 long onPaint(FXObject*,FXSelector,void*);
00269 long onBlink(FXObject*,FXSelector,void*);
00270 long onFlash(FXObject*,FXSelector,void*);
00271 long onFocusIn(FXObject*,FXSelector,void*);
00272 long onFocusOut(FXObject*,FXSelector,void*);
00273 long onMotion(FXObject*,FXSelector,void*);
00274 long onAutoScroll(FXObject*,FXSelector,void*);
00275 long onLeftBtnPress(FXObject*,FXSelector,void*);
00276 long onLeftBtnRelease(FXObject*,FXSelector,void*);
00277 long onMiddleBtnPress(FXObject*,FXSelector,void*);
00278 long onMiddleBtnRelease(FXObject*,FXSelector,void*);
00279 long onRightBtnPress(FXObject*,FXSelector,void*);
00280 long onRightBtnRelease(FXObject*,FXSelector,void*);
00281 long onKeyPress(FXObject*,FXSelector,void*);
00282 long onKeyRelease(FXObject*,FXSelector,void*);
00283 long onUngrabbed(FXObject*,FXSelector,void*);
00284 long onBeginDrag(FXObject*,FXSelector,void*);
00285 long onEndDrag(FXObject*,FXSelector,void*);
00286 long onDragged(FXObject*,FXSelector,void*);
00287 long onDNDEnter(FXObject*,FXSelector,void*);
00288 long onDNDLeave(FXObject*,FXSelector,void*);
00289 long onDNDMotion(FXObject*,FXSelector,void*);
00290 long onDNDDrop(FXObject*,FXSelector,void*);
00291 long onDNDRequest(FXObject*,FXSelector,void*);
00292 long onSelectionLost(FXObject*,FXSelector,void*);
00293 long onSelectionGained(FXObject*,FXSelector,void*);
00294 long onSelectionRequest(FXObject*,FXSelector,void* ptr);
00295 long onClipboardLost(FXObject*,FXSelector,void*);
00296 long onClipboardGained(FXObject*,FXSelector,void*);
00297 long onClipboardRequest(FXObject*,FXSelector,void*);
00298 long onCmdSetTip(FXObject*,FXSelector,void*);
00299 long onCmdGetTip(FXObject*,FXSelector,void*);
00300 long onCmdSetHelp(FXObject*,FXSelector,void*);
00301 long onCmdGetHelp(FXObject*,FXSelector,void*);
00302 long onQueryTip(FXObject*,FXSelector,void*);
00303 long onQueryHelp(FXObject*,FXSelector,void*);
00304 long onUpdIsEditable(FXObject*,FXSelector,void*);
00305 long onUpdHaveSelection(FXObject*,FXSelector,void*);
00306 long onUpdHaveEditableSelection(FXObject*,FXSelector,void*);
00307 long onIMEStart(FXObject*,FXSelector,void*);
00308
00309
00310 long onCmdSetStringValue(FXObject*,FXSelector,void*);
00311 long onCmdGetStringValue(FXObject*,FXSelector,void*);
00312
00313
00314 long onCmdCursorTop(FXObject*,FXSelector,void*);
00315 long onCmdCursorBottom(FXObject*,FXSelector,void*);
00316 long onCmdCursorHome(FXObject*,FXSelector,void*);
00317 long onCmdCursorEnd(FXObject*,FXSelector,void*);
00318 long onCmdCursorRight(FXObject*,FXSelector,void*);
00319 long onCmdCursorLeft(FXObject*,FXSelector,void*);
00320 long onCmdCursorUp(FXObject*,FXSelector,void*);
00321 long onCmdCursorDown(FXObject*,FXSelector,void*);
00322 long onCmdCursorPageUp(FXObject*,FXSelector,void*);
00323 long onCmdCursorPageDown(FXObject*,FXSelector,void*);
00324 long onCmdCursorWordLeft(FXObject*,FXSelector,void*);
00325 long onCmdCursorWordRight(FXObject*,FXSelector,void*);
00326 long onCmdCursorSelStart(FXObject*,FXSelector,void*);
00327 long onCmdCursorSelEnd(FXObject*,FXSelector,void*);
00328
00329
00330 long onCmdCursorShiftTop(FXObject*,FXSelector,void*);
00331 long onCmdCursorShiftBottom(FXObject*,FXSelector,void*);
00332 long onCmdCursorShiftHome(FXObject*,FXSelector,void*);
00333 long onCmdCursorShiftEnd(FXObject*,FXSelector,void*);
00334 long onCmdCursorShiftRight(FXObject*,FXSelector,void*);
00335 long onCmdCursorShiftLeft(FXObject*,FXSelector,void*);
00336 long onCmdCursorShiftUp(FXObject*,FXSelector,void*);
00337 long onCmdCursorShiftDown(FXObject*,FXSelector,void*);
00338 long onCmdCursorShiftPageUp(FXObject*,FXSelector,void*);
00339 long onCmdCursorShiftPageDown(FXObject*,FXSelector,void*);
00340 long onCmdCursorShiftWordLeft(FXObject*,FXSelector,void*);
00341 long onCmdCursorShiftWordRight(FXObject*,FXSelector,void*);
00342
00343
00344 long onCmdScrollUp(FXObject*,FXSelector,void*);
00345 long onCmdScrollDown(FXObject*,FXSelector,void*);
00346 long onCmdScrollTop(FXObject*,FXSelector,void*);
00347 long onCmdScrollBottom(FXObject*,FXSelector,void*);
00348 long onCmdScrollCenter(FXObject*,FXSelector,void*);
00349
00350
00351 long onCmdInsertString(FXObject*,FXSelector,void*);
00352 long onCmdInsertNewline(FXObject*,FXSelector,void*);
00353 long onCmdInsertNewlineOnly(FXObject*,FXSelector,void*);
00354 long onCmdInsertNewlineIndent(FXObject*,FXSelector,void*);
00355 long onCmdInsertTab(FXObject*,FXSelector,void*);
00356 long onCmdInsertHardTab(FXObject*,FXSelector,void*);
00357 long onCmdInsertSoftTab(FXObject*,FXSelector,void*);
00358
00359
00360 long onCmdCutSel(FXObject*,FXSelector,void*);
00361 long onCmdCopySel(FXObject*,FXSelector,void*);
00362 long onCmdPasteSel(FXObject*,FXSelector,void*);
00363 long onCmdDeleteSel(FXObject*,FXSelector,void*);
00364 long onCmdReplaceSel(FXObject*,FXSelector,void*);
00365 long onCmdPasteMiddle(FXObject*,FXSelector,void*);
00366 long onCmdSelectChar(FXObject*,FXSelector,void*);
00367 long onCmdSelectWord(FXObject*,FXSelector,void*);
00368 long onCmdSelectLine(FXObject*,FXSelector,void*);
00369 long onCmdSelectMatching(FXObject*,FXSelector,void*);
00370 long onCmdSelectBlock(FXObject*,FXSelector,void*);
00371 long onCmdSelectAll(FXObject*,FXSelector,void*);
00372 long onCmdDeselectAll(FXObject*,FXSelector,void*);
00373
00374
00375 long onCmdBackspaceChar(FXObject*,FXSelector,void*);
00376 long onCmdBackspaceWord(FXObject*,FXSelector,void*);
00377 long onCmdBackspaceBol(FXObject*,FXSelector,void*);
00378 long onCmdDeleteChar(FXObject*,FXSelector,void*);
00379 long onCmdDeleteWord(FXObject*,FXSelector,void*);
00380 long onCmdDeleteEol(FXObject*,FXSelector,void*);
00381 long onCmdDeleteAll(FXObject*,FXSelector,void*);
00382 long onCmdDeleteLine(FXObject*,FXSelector,void*);
00383
00384
00385 long onCmdShiftText(FXObject*,FXSelector,void*);
00386 long onCmdChangeCase(FXObject*,FXSelector,void*);
00387 long onCmdBlockBeg(FXObject*,FXSelector,void*);
00388 long onCmdBlockEnd(FXObject*,FXSelector,void*);
00389 long onCmdGotoMatching(FXObject*,FXSelector,void*);
00390 long onCmdGotoSelected(FXObject*,FXSelector,void*);
00391 long onCmdCursorRow(FXObject*,FXSelector,void*);
00392 long onUpdCursorRow(FXObject*,FXSelector,void*);
00393 long onCmdCursorColumn(FXObject*,FXSelector,void*);
00394 long onUpdCursorColumn(FXObject*,FXSelector,void*);
00395 long onCmdGotoLine(FXObject*,FXSelector,void*);
00396 long onCmdSearch(FXObject*,FXSelector,void*);
00397 long onCmdReplace(FXObject*,FXSelector,void*);
00398 long onCmdSearchNext(FXObject*,FXSelector,void*);
00399 long onCmdSearchSel(FXObject*,FXSelector,void*);
00400 long onCmdToggleEditable(FXObject*,FXSelector,void*);
00401 long onUpdToggleEditable(FXObject*,FXSelector,void*);
00402 long onCmdToggleOverstrike(FXObject*,FXSelector,void*);
00403 long onUpdToggleOverstrike(FXObject*,FXSelector,void*);
00404 public:
00405 static const FXchar textDelimiters[];
00406
00407 public:
00408
00410 enum {
00411 SelectNone,
00412 SelectChars,
00413 SelectWords,
00414 SelectRows,
00415 SelectLines
00416 };
00417
00418 public:
00419
00420 enum {
00421 ID_CURSOR_TOP=FXScrollArea::ID_LAST,
00422 ID_CURSOR_BOTTOM,
00423 ID_CURSOR_HOME,
00424 ID_CURSOR_END,
00425 ID_CURSOR_RIGHT,
00426 ID_CURSOR_LEFT,
00427 ID_CURSOR_UP,
00428 ID_CURSOR_DOWN,
00429 ID_CURSOR_PAGEUP,
00430 ID_CURSOR_PAGEDOWN,
00431 ID_CURSOR_WORD_LEFT,
00432 ID_CURSOR_WORD_RIGHT,
00433 ID_CURSOR_SEL_START,
00434 ID_CURSOR_SEL_END,
00435 ID_CURSOR_SHIFT_TOP,
00436 ID_CURSOR_SHIFT_BOTTOM,
00437 ID_CURSOR_SHIFT_HOME,
00438 ID_CURSOR_SHIFT_END,
00439 ID_CURSOR_SHIFT_UP,
00440 ID_CURSOR_SHIFT_DOWN,
00441 ID_CURSOR_SHIFT_LEFT,
00442 ID_CURSOR_SHIFT_RIGHT,
00443 ID_CURSOR_SHIFT_PAGEUP,
00444 ID_CURSOR_SHIFT_PAGEDOWN,
00445 ID_CURSOR_SHIFT_WORD_LEFT,
00446 ID_CURSOR_SHIFT_WORD_RIGHT,
00447 ID_SCROLL_UP,
00448 ID_SCROLL_DOWN,
00449 ID_SCROLL_TOP,
00450 ID_SCROLL_BOTTOM,
00451 ID_SCROLL_CENTER,
00452 ID_INSERT_STRING,
00453 ID_INSERT_NEWLINE,
00454 IN_INSERT_NEWLINE_ONLY,
00455 ID_INSERT_NEWLINE_INDENT,
00456 ID_INSERT_TAB,
00457 ID_INSERT_HARDTAB,
00458 ID_INSERT_SOFTTAB,
00459 ID_CUT_SEL,
00460 ID_COPY_SEL,
00461 ID_DELETE_SEL,
00462 ID_REPLACE_SEL,
00463 ID_PASTE_SEL,
00464 ID_PASTE_MIDDLE,
00465 ID_SELECT_CHAR,
00466 ID_SELECT_WORD,
00467 ID_SELECT_LINE,
00468 ID_SELECT_ALL,
00469 ID_SELECT_MATCHING,
00470 ID_SELECT_BRACE,
00471 ID_SELECT_BRACK,
00472 ID_SELECT_PAREN,
00473 ID_SELECT_ANG,
00474 ID_DESELECT_ALL,
00475 ID_BACKSPACE_CHAR,
00476 ID_BACKSPACE_WORD,
00477 ID_BACKSPACE_BOL,
00478 ID_DELETE_CHAR,
00479 ID_DELETE_WORD,
00480 ID_DELETE_EOL,
00481 ID_DELETE_ALL,
00482 ID_DELETE_LINE,
00483 ID_TOGGLE_EDITABLE,
00484 ID_TOGGLE_OVERSTRIKE,
00485 ID_CURSOR_ROW,
00486 ID_CURSOR_COLUMN,
00487 ID_CLEAN_INDENT,
00488 ID_SHIFT_LEFT,
00489 ID_SHIFT_RIGHT,
00490 ID_SHIFT_TABLEFT,
00491 ID_SHIFT_TABRIGHT,
00492 ID_UPPER_CASE,
00493 ID_LOWER_CASE,
00494 ID_GOTO_MATCHING,
00495 ID_GOTO_SELECTED,
00496 ID_GOTO_LINE,
00497 ID_SEARCH_FORW_SEL,
00498 ID_SEARCH_BACK_SEL,
00499 ID_SEARCH_FORW,
00500 ID_SEARCH_BACK,
00501 ID_SEARCH,
00502 ID_REPLACE,
00503 ID_LEFT_BRACE,
00504 ID_LEFT_BRACK,
00505 ID_LEFT_PAREN,
00506 ID_LEFT_ANG,
00507 ID_RIGHT_BRACE,
00508 ID_RIGHT_BRACK,
00509 ID_RIGHT_PAREN,
00510 ID_RIGHT_ANG,
00511 ID_BLINK,
00512 ID_FLASH,
00513 ID_LAST
00514 };
00515
00516 public:
00517
00519 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);
00520
00522 virtual void create();
00523
00525 virtual void detach();
00526
00528 virtual void layout();
00529
00531 virtual FXint getDefaultWidth();
00532
00534 virtual FXint getDefaultHeight();
00535
00537 virtual void enable();
00538
00540 virtual void disable();
00541
00543 virtual void recalc();
00544
00546 virtual FXint getVisibleX() const;
00547
00549 virtual FXint getVisibleY() const;
00550
00552 virtual FXint getVisibleWidth() const;
00553
00555 virtual FXint getVisibleHeight() const;
00556
00558 virtual FXint getContentWidth();
00559
00561 virtual FXint getContentHeight();
00562
00564 virtual FXbool canFocus() const;
00565
00567 virtual void setFocus();
00568
00570 virtual void killFocus();
00571
00573 void setMarginTop(FXint pt);
00574
00576 FXint getMarginTop() const { return margintop; }
00577
00579 void setMarginBottom(FXint pb);
00580
00582 FXint getMarginBottom() const { return marginbottom; }
00583
00585 void setMarginLeft(FXint pl);
00586
00588 FXint getMarginLeft() const { return marginleft; }
00589
00591 void setMarginRight(FXint pr);
00592
00594 FXint getMarginRight() const { return marginright; }
00595
00597 FXint getWrapColumns() const { return wrapcolumns; }
00598
00600 void setWrapColumns(FXint cols);
00601
00603 FXint getTabColumns() const { return tabcolumns; }
00604
00606 void setTabColumns(FXint cols);
00607
00609 FXint getBarColumns() const { return barcolumns; }
00610
00612 void setBarColumns(FXint cols);
00613
00615 FXbool isModified() const { return modified; }
00616
00618 void setModified(FXbool mod=true){ modified=mod; }
00619
00621 void setEditable(FXbool edit=true);
00622
00624 FXbool isEditable() const;
00625
00627 void setOverstrike(FXbool over=true);
00628
00630 FXbool isOverstrike() const;
00631
00633 void setStyled(FXbool styled=true);
00634
00636 FXbool isStyled() const { return (sbuffer!=NULL); }
00637
00639 void setDelimiters(const FXchar* delims=textDelimiters){ delimiters=delims; }
00640
00642 const FXchar* getDelimiters() const { return delimiters; }
00643
00645 void setFont(FXFont* fnt);
00646
00648 FXFont* getFont() const { return font; }
00649
00651 void setTextColor(FXColor clr);
00652
00654 FXColor getTextColor() const { return textColor; }
00655
00657 void setSelBackColor(FXColor clr);
00658
00660 FXColor getSelBackColor() const { return selbackColor; }
00661
00663 void setSelTextColor(FXColor clr);
00664
00666 FXColor getSelTextColor() const { return seltextColor; }
00667
00669 void setHiliteTextColor(FXColor clr);
00670
00672 FXColor getHiliteTextColor() const { return hilitetextColor; }
00673
00675 void setHiliteBackColor(FXColor clr);
00676
00678 FXColor getHiliteBackColor() const { return hilitebackColor; }
00679
00681 void setActiveBackColor(FXColor clr);
00682
00684 FXColor getActiveBackColor() const { return activebackColor; }
00685
00687 void setCursorColor(FXColor clr);
00688
00690 FXColor getCursorColor() const { return cursorColor; }
00691
00693 void setNumberColor(FXColor clr);
00694
00696 FXColor getNumberColor() const { return numberColor; }
00697
00699 void setBarColor(FXColor clr);
00700
00702 FXColor getBarColor() const { return barColor; }
00703
00705 void setHelpText(const FXString& text){ help=text; }
00706
00708 FXString getHelpText() const { return help; }
00709
00711 void setTipText(const FXString& text){ tip=text; }
00712
00714 FXString getTipText() const { return tip; }
00715
00717 FXint getByte(FXint pos) const;
00718
00720 FXwchar getChar(FXint pos) const;
00721
00723 FXint getCharLen(FXint pos) const;
00724
00726 FXint getStyle(FXint pos) const;
00727
00729 FXint getLength() const { return length; }
00730
00732 FXint getNumRows() const { return nrows; }
00733
00735 FXString getText() const;
00736
00738 FXString getSelectedText() const;
00739
00741 void getText(FXchar* text,FXint n) const;
00742 void getText(FXString& text) const;
00743
00745 virtual void setText(const FXchar* text,FXint n,FXbool notify=false);
00746 virtual void setText(const FXString& text,FXbool notify=false);
00747
00749 virtual void setStyledText(const FXchar* text,FXint n,FXint style=0,FXbool notify=false);
00750 virtual void setStyledText(const FXString& text,FXint style=0,FXbool notify=false);
00751
00753 virtual void replaceText(FXint pos,FXint m,const FXchar *text,FXint n,FXbool notify=false);
00754 virtual void replaceText(FXint pos,FXint m,const FXString& text,FXbool notify=false);
00755
00757 virtual void replaceStyledText(FXint pos,FXint m,const FXchar *text,FXint n,FXint style=0,FXbool notify=false);
00758 virtual void replaceStyledText(FXint pos,FXint m,const FXString& text,FXint style=0,FXbool notify=false);
00759
00761 virtual void appendText(const FXchar *text,FXint n,FXbool notify=false);
00762 virtual void appendText(const FXString& text,FXbool notify=false);
00763
00765 virtual void appendStyledText(const FXchar *text,FXint n,FXint style=0,FXbool notify=false);
00766 virtual void appendStyledText(const FXString& text,FXint style=0,FXbool notify=false);
00767
00769 virtual void insertText(FXint pos,const FXchar *text,FXint n,FXbool notify=false);
00770 virtual void insertText(FXint pos,const FXString& text,FXbool notify=false);
00771
00773 virtual void insertStyledText(FXint pos,const FXchar *text,FXint n,FXint style=0,FXbool notify=false);
00774 virtual void insertStyledText(FXint pos,const FXString& text,FXint style=0,FXbool notify=false);
00775
00777 virtual void removeText(FXint pos,FXint n,FXbool notify=false);
00778
00780 virtual void changeStyle(FXint pos,FXint n,FXint style);
00781
00783 virtual void changeStyle(FXint pos,const FXchar* style,FXint n);
00784 virtual void changeStyle(FXint pos,const FXString& style);
00785
00787 void extractText(FXchar *text,FXint pos,FXint n) const;
00788 void extractText(FXString& text,FXint pos,FXint n) const;
00789
00791 void extractStyle(FXchar *style,FXint pos,FXint n) const;
00792 void extractStyle(FXString& text,FXint pos,FXint n) const;
00793
00795 FXint shiftText(FXint start,FXint end,FXint amount,FXbool notify=false);
00796
00811 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);
00812
00814 FXint getPosContaining(FXint x,FXint y) const;
00815
00817 FXint getPosAt(FXint x,FXint y) const;
00818
00820 FXint getYOfPos(FXint pos) const;
00821
00823 FXint getXOfPos(FXint pos) const;
00824
00826 FXint countRows(FXint start,FXint end) const;
00827
00829 FXint countCols(FXint start,FXint end) const;
00830
00832 FXint countLines(FXint start,FXint end) const;
00833
00835 FXint lineStart(FXint pos) const;
00836
00838 FXint lineEnd(FXint pos) const;
00839
00841 FXint nextLine(FXint pos,FXint nl=1) const;
00842
00844 FXint prevLine(FXint pos,FXint nl=1) const;
00845
00847 FXint rowStart(FXint pos) const;
00848
00850 FXint rowEnd(FXint pos) const;
00851
00853 FXint nextRow(FXint pos,FXint nr=1) const;
00854
00856 FXint prevRow(FXint pos,FXint nr=1) const;
00857
00859 FXint leftWord(FXint pos) const;
00860
00862 FXint rightWord(FXint pos) const;
00863
00865 FXint wordStart(FXint pos) const;
00866
00868 FXint wordEnd(FXint pos) const;
00869
00871 FXint validPos(FXint pos) const;
00872
00874 FXint dec(FXint pos) const;
00875
00877 FXint inc(FXint pos) const;
00878
00880 void setTopLine(FXint pos);
00881
00883 FXint getTopLine() const;
00884
00886 void setBottomLine(FXint pos);
00887
00889 FXint getBottomLine() const;
00890
00892 void setCenterLine(FXint pos);
00893
00895 FXbool selectAll(FXbool notify=false);
00896
00898 FXbool setSelection(FXint pos,FXint len,FXbool notify=false);
00899
00901 FXbool extendSelection(FXint pos,FXuint select=SelectChars,FXbool notify=false);
00902
00904 FXbool copySelection();
00905
00907 FXbool cutSelection(FXbool notify=false);
00908
00910 FXbool deleteSelection(FXbool notify=false);
00911
00913 FXbool pasteSelection(FXbool notify=false);
00914
00916 FXbool pasteClipboard(FXbool notify=false);
00917
00919 FXbool replaceSelection(const FXchar *text,FXint n,FXbool notify=false);
00920
00922 FXbool replaceSelection(const FXString& text,FXbool notify=false);
00923
00925 FXbool killSelection(FXbool notify=false);
00926
00928 FXbool isPosSelected(FXint pos) const;
00929
00931 FXbool isPosVisible(FXint pos) const;
00932
00934 void makePositionVisible(FXint pos);
00935
00937 FXbool setHighlight(FXint start,FXint len);
00938
00940 FXbool killHighlight();
00941
00943 virtual void setCursorPos(FXint pos,FXbool notify=false);
00944
00946 void setCursorRow(FXint row,FXbool notify=false);
00947
00949 FXint getCursorRow() const { return cursorrow; }
00950
00952 void setCursorColumn(FXint col,FXbool notify=false);
00953
00955 FXint getCursorColumn() const { return cursorcol; }
00956
00958 FXint getCursorPos() const { return cursorpos; }
00959
00961 void setAnchorPos(FXint pos);
00962
00964 FXint getAnchorPos() const { return anchorpos; }
00965
00967 FXint getSelStartPos() const { return selstartpos; }
00968
00970 FXint getSelEndPos() const { return selendpos; }
00971
00973 void setTextStyle(FXuint style);
00974
00976 FXuint getTextStyle() const;
00977
00983 void setVisibleRows(FXint rows);
00984
00986 FXint getVisibleRows() const { return vrows; }
00987
00993 void setVisibleColumns(FXint cols);
00994
00996 FXint getVisibleColumns() const { return vcols; }
00997
01002 void setHiliteMatchTime(FXTime t){ matchtime=t; }
01003
01007 FXTime getHiliteMatchTime() const { return matchtime; }
01008
01016 void setHiliteStyles(FXHiliteStyle* styles);
01017
01021 FXHiliteStyle* getHiliteStyles() const { return hilitestyles; }
01022
01024 virtual void save(FXStream& store) const;
01025
01027 virtual void load(FXStream& store);
01028
01030 virtual ~FXText();
01031 };
01032
01033
01034 }
01035
01036 #endif