22 #ifndef FL_TEXT_DISPLAY_H 23 #define FL_TEXT_DISPLAY_H 29 #include "Fl_Scrollbar.H" 30 #include "Fl_Text_Buffer.H" 129 typedef void (*Unfinished_Style_Cb)(int,
void *);
154 virtual int handle(
int e);
175 void redisplay_range(
int start,
int end);
176 void scroll(
int topLineNum,
int horizOffset);
177 void insert(
const char* text);
178 void overstrike(
const char* text);
179 void insert_position(
int newPos);
193 int position_to_xy(
int pos,
int* x,
int* y)
const;
195 int in_selection(
int x,
int y)
const;
196 void show_insert_position();
202 int count_lines(
int start,
int end,
bool start_pos_is_line_start)
const;
203 int line_start(
int pos)
const;
204 int line_end(
int startPos,
bool startPosIsLineStart)
const;
205 int skip_lines(
int startPos,
int nLines,
bool startPosIsLineStart);
206 int rewind_lines(
int startPos,
int nLines);
207 void next_word(
void);
208 void previous_word(
void);
210 void show_cursor(
int b = 1);
217 void cursor_style(
int style);
218 int cursor_style()
const {
return mCursorStyle; }
248 scrollbar_width_ = 0;
261 return(scrollbar_width_);
284 scrollbar_width_ = newSize;
304 int word_start(
int pos)
const {
return buffer()->word_start(pos); }
311 int word_end(
int pos)
const {
return buffer()->word_end(pos); }
316 int nStyles,
char unfinishedStyle,
317 Unfinished_Style_Cb unfinishedHighlightCB,
320 int position_style(
int lineStartPos,
int lineLen,
int lineIndex)
const;
372 int wrapped_column(
int row,
int column)
const;
373 int wrapped_row(
int row)
const;
374 void wrap_mode(
int wrap,
int wrap_margin);
376 virtual void recalc_display();
377 virtual void resize(
int X,
int Y,
int W,
int H);
384 double x_to_col(
double x)
const;
392 double col_to_x(
double col)
const;
394 void linenumber_width(
int width);
395 int linenumber_width()
const;
396 void linenumber_font(
Fl_Font val);
397 Fl_Font linenumber_font()
const;
400 void linenumber_fgcolor(
Fl_Color val);
401 Fl_Color linenumber_fgcolor()
const;
402 void linenumber_bgcolor(
Fl_Color val);
403 Fl_Color linenumber_bgcolor()
const;
404 void linenumber_align(
Fl_Align val);
406 void linenumber_format(
const char* val);
407 const char* linenumber_format()
const;
416 void draw_text(
int X,
int Y,
int W,
int H);
417 void draw_range(
int start,
int end);
418 void draw_cursor(
int,
int);
420 void draw_string(
int style,
int x,
int y,
int toX,
const char *
string,
423 void draw_vline(
int visLineNum,
int leftClip,
int rightClip,
424 int leftCharIndex,
int rightCharIndex);
426 int find_x(
const char *s,
int len,
int style,
int x)
const;
431 FIND_INDEX_FROM_ZERO,
436 int handle_vline(
int mode,
437 int lineStart,
int lineLen,
int leftChar,
int rightChar,
438 int topClip,
int bottomClip,
439 int leftClip,
int rightClip)
const;
441 void draw_line_numbers(
bool clearAll);
443 void clear_rect(
int style,
int x,
int y,
int width,
int height)
const;
444 void display_insert();
446 void offset_line_starts(
int newTopLineNum);
448 void calc_line_starts(
int startLine,
int endLine);
450 void update_line_starts(
int pos,
int charsInserted,
int charsDeleted,
451 int linesInserted,
int linesDeleted,
int *scrolled);
453 void calc_last_char();
455 int position_to_line(
int pos,
int* lineNum )
const;
456 double string_width(
const char*
string,
int length,
int style)
const;
458 static void scroll_timer_cb(
void*);
460 static void buffer_predelete_cb(
int pos,
int nDeleted,
void* cbArg);
461 static void buffer_modified_cb(
int pos,
int nInserted,
int nDeleted,
462 int nRestyled,
const char* deletedText,
467 void update_v_scrollbar();
468 void update_h_scrollbar();
469 int measure_vline(
int visLineNum)
const;
470 int longest_vline()
const;
471 int empty_vlines()
const;
472 int vline_length(
int visLineNum)
const;
473 int xy_to_position(
int x,
int y,
int PosType = CHARACTER_POS)
const;
475 void xy_to_rowcol(
int x,
int y,
int* row,
int* column,
476 int PosType = CHARACTER_POS)
const;
477 void maintain_absolute_top_line_number(
int state);
478 int get_absolute_top_line_number()
const;
479 void absolute_top_line_number(
int oldFirstChar);
480 int maintaining_absolute_top_line_number()
const;
481 void reset_absolute_top_line_number();
482 int position_to_linecol(
int pos,
int* lineNum,
int* column)
const;
483 int scroll_(
int topLineNum,
int horizOffset);
485 void extend_range_for_styles(
int* start,
int* end);
487 void find_wrap_range(
const char *deletedText,
int pos,
int nInserted,
488 int nDeleted,
int *modRangeStart,
int *modRangeEnd,
489 int *linesInserted,
int *linesDeleted);
490 void measure_deleted_lines(
int pos,
int nDeleted);
491 void wrapped_line_counter(
Fl_Text_Buffer *buf,
int startPos,
int maxPos,
492 int maxLines,
bool startPosIsLineStart,
493 int styleBufOffset,
int *retPos,
int *retLines,
494 int *retLineStart,
int *retLineEnd,
495 bool countLastLineMissingNewLine =
true)
const;
496 void find_line_end(
int pos,
bool start_pos_is_line_start,
int *lineEnd,
497 int *nextLineStart)
const;
498 double measure_proportional_character(
const char *s,
int colNum,
int pos)
const;
499 int wrap_uses_character(
int lineEndPos)
const;
501 int damage_range1_start, damage_range1_end;
502 int damage_range2_start, damage_range2_end;
510 int mCursorPreferredXPos;
517 int mFirstChar, mLastChar;
540 int mNeedAbsTopLineNum;
546 int mHorizOffsetHint;
550 char mUnfinishedStyle;
552 Unfinished_Style_Cb mUnfinishedHighlightCB;
554 void* mHighlightCBArg;
563 int mModifyingTabDistance;
565 mutable double mColumnScale;
574 int scrollbar_width_;
576 int dragPos, dragType, dragging;
577 int display_insert_position_hint;
578 struct {
int x, y, w, h; } text_area;
587 int mLineNumLeft, mLineNumWidth;
595 const char* linenumber_format_;
Fl_Fontsize size
text font size
Definition: Fl_Text_Display.H:147
Fl_Color cursor_color() const
Gets the text cursor color.
Definition: Fl_Text_Display.H:224
void hide_cursor()
Hides the text cursor.
Definition: Fl_Text_Display.H:215
This structure associates the color, font, and font size of a string to draw with an attribute mask m...
Definition: Fl_Text_Display.H:144
void scrollbar_size(int newSize)
Sets the pixel size of the scrollbars' troughs to newSize, in pixels.
Definition: Fl_Text_Display.H:283
don't wrap text at all
Definition: Fl_Text_Display.H:121
wrap text at the given text column
Definition: Fl_Text_Display.H:122
Fl_Font textfont() const
Gets the default font used when drawing text in the widget.
Definition: Fl_Text_Display.H:340
void scrollbar_align(Fl_Align a)
Sets the scrollbar alignment type.
Definition: Fl_Text_Display.H:297
This class manages Unicode text displayed in one or more Fl_Text_Display widgets. ...
Definition: Fl_Text_Buffer.H:196
void textfont(Fl_Font s)
Sets the default font used when drawing text in the widget.
Definition: Fl_Text_Display.H:346
int shortcut() const
Definition: Fl_Text_Display.H:327
The Fl_Group class is the FLTK container widget.
Definition: Fl_Group.H:42
dim I-beam
Definition: Fl_Text_Display.H:88
Fl_Align scrollbar_align() const
Gets the scrollbar alignment type.
Definition: Fl_Text_Display.H:291
Fl_Color textcolor() const
Gets the default color of text in the widget.
Definition: Fl_Text_Display.H:364
int scrollbar_size() const
Gets the current size of the scrollbars' troughs, in pixels.
Definition: Fl_Text_Display.H:260
wrap text at a pixel position
Definition: Fl_Text_Display.H:123
int scrollbar_width() const
Returns the global value Fl::scrollbar_size() unless a specific scrollbar_width_ has been set...
Definition: Fl_Text_Display.H:237
int insert_position() const
Gets the position of the text insertion cursor for text display.
Definition: Fl_Text_Display.H:192
unfille box under the current character
Definition: Fl_Text_Display.H:89
Fl_Text_Buffer * buffer() const
Gets the current text buffer associated with the text widget.
Definition: Fl_Text_Display.H:173
void textsize(Fl_Fontsize s)
Sets the default size of text in the widget.
Definition: Fl_Text_Display.H:358
I-beam.
Definition: Fl_Text_Display.H:86
void buffer(Fl_Text_Buffer &buf)
Sets the current text buffer associated with the text widget.
Definition: Fl_Text_Display.H:164
unsigned attr
currently unused (this may be changed in the future)
Definition: Fl_Text_Display.H:148
int Fl_Fontsize
Size of a font in pixels.
Definition: Enumerations.H:1014
Fl_Color color
text color
Definition: Fl_Text_Display.H:145
void textcolor(Fl_Color n)
Sets the default color of text in the widget.
Definition: Fl_Text_Display.H:370
utility header to pull drawing functions together
unsigned int Fl_Color
An FLTK color value; see also Colors.
Definition: Enumerations.H:1042
static int scrollbar_size()
Gets the default scrollbar size used by Fl_Browser_, Fl_Help_View, Fl_Scroll, and Fl_Text_Display wid...
Definition: Fl.cxx:222
int Fl_Font
A font number is an index into the internal font table.
Definition: Enumerations.H:985
void cursor_color(Fl_Color n)
Sets the text cursor color.
Definition: Fl_Text_Display.H:230
unsigned Fl_Align
FLTK type for alignment control.
Definition: Enumerations.H:908
void scrollbar_width(int width)
Sets the global Fl::scrollbar_size(), and forces this instance of the widget to use it...
Definition: Fl_Text_Display.H:246
thick I-beam
Definition: Fl_Text_Display.H:90
int word_end(int pos) const
Moves the insert position to the end of the current word.
Definition: Fl_Text_Display.H:311
Fl_Fontsize textsize() const
Gets the default size of text in the widget.
Definition: Fl_Text_Display.H:352
caret under the text
Definition: Fl_Text_Display.H:87
Rich text display widget.
Definition: Fl_Text_Display.H:78
Fl_Font font
text font
Definition: Fl_Text_Display.H:146
void shortcut(int s)
Definition: Fl_Text_Display.H:334
int word_start(int pos) const
Moves the insert position to the beginning of the current word.
Definition: Fl_Text_Display.H:304