24 #ifndef FL_TEXT_DISPLAY_H 
   25 #define FL_TEXT_DISPLAY_H 
   30 #include "Fl_Scrollbar.H" 
   31 #include "Fl_Text_Buffer.H" 
  133   typedef void (*Unfinished_Style_Cb)(int, 
void *);
 
  149   virtual int handle(
int e);
 
  167   void redisplay_range(
int start, 
int end);
 
  168   void scroll(
int topLineNum, 
int horizOffset);
 
  169   void insert(
const char* text);
 
  170   void overstrike(
const char* text);
 
  171   void insert_position(
int newPos);
 
  178   int position_to_xy(
int pos, 
int* x, 
int* y) 
const;
 
  180   int in_selection(
int x, 
int y) 
const;
 
  181   void show_insert_position();
 
  187   int count_lines(
int start, 
int end, 
bool start_pos_is_line_start) 
const;
 
  188   int line_start(
int pos) 
const;
 
  189   int line_end(
int startPos, 
bool startPosIsLineStart) 
const;
 
  190   int skip_lines(
int startPos, 
int nLines, 
bool startPosIsLineStart);
 
  191   int rewind_lines(
int startPos, 
int nLines);
 
  192   void next_word(
void);
 
  193   void previous_word(
void);
 
  195   void show_cursor(
int b = 1);
 
  202   void cursor_style(
int style);
 
  245   int word_start(
int pos)
 const { 
return buffer()->word_start(pos); }
 
  252   int word_end(
int pos)
 const { 
return buffer()->word_end(pos); }
 
  256                       const Style_Table_Entry *styleTable,
 
  257                       int nStyles, 
char unfinishedStyle,
 
  258                       Unfinished_Style_Cb unfinishedHighlightCB,
 
  261   int position_style(
int lineStartPos, 
int lineLen, 
int lineIndex) 
const;
 
  313   int wrapped_column(
int row, 
int column) 
const;
 
  314   int wrapped_row(
int row) 
const;
 
  315   void wrap_mode(
int wrap, 
int wrap_margin);
 
  317   virtual void resize(
int X, 
int Y, 
int W, 
int H);
 
  324   double x_to_col(
double x) 
const;
 
  332   double col_to_x(
double col) 
const;
 
  334   void linenumber_width(
int width);
 
  335   int linenumber_width() 
const;
 
  336   void linenumber_font(
Fl_Font val);
 
  337   Fl_Font linenumber_font() 
const;
 
  340   void linenumber_fgcolor(
Fl_Color val);
 
  341   Fl_Color linenumber_fgcolor() 
const;
 
  342   void linenumber_bgcolor(
Fl_Color val);
 
  343   Fl_Color linenumber_bgcolor() 
const;
 
  344   void linenumber_align(
Fl_Align val);
 
  346   void linenumber_format(
const char* val);
 
  347   const char* linenumber_format() 
const;
 
  356   void draw_text(
int X, 
int Y, 
int W, 
int H);
 
  357   void draw_range(
int start, 
int end);
 
  358   void draw_cursor(
int, 
int);
 
  360   void draw_string(
int style, 
int x, 
int y, 
int toX, 
const char *
string,
 
  363   void draw_vline(
int visLineNum, 
int leftClip, 
int rightClip,
 
  364                   int leftCharIndex, 
int rightCharIndex);
 
  366   int find_x(
const char *s, 
int len, 
int style, 
int x) 
const;
 
  371     FIND_INDEX_FROM_ZERO,
 
  375   int handle_vline(
int mode, 
 
  376                    int lineStart, 
int lineLen, 
int leftChar, 
int rightChar,
 
  377                    int topClip, 
int bottomClip,
 
  378                    int leftClip, 
int rightClip) 
const;
 
  380   void draw_line_numbers(
bool clearAll);
 
  382   void clear_rect(
int style, 
int x, 
int y, 
int width, 
int height) 
const;
 
  383   void display_insert();
 
  385   void offset_line_starts(
int newTopLineNum);
 
  387   void calc_line_starts(
int startLine, 
int endLine);
 
  389   void update_line_starts(
int pos, 
int charsInserted, 
int charsDeleted,
 
  390                           int linesInserted, 
int linesDeleted, 
int *scrolled);
 
  392   void calc_last_char();
 
  394   int position_to_line( 
int pos, 
int* lineNum ) 
const;
 
  395   double string_width(
const char* 
string, 
int length, 
int style) 
const;
 
  397   static void scroll_timer_cb(
void*);
 
  399   static void buffer_predelete_cb(
int pos, 
int nDeleted, 
void* cbArg);
 
  400   static void buffer_modified_cb(
int pos, 
int nInserted, 
int nDeleted,
 
  401                                  int nRestyled, 
const char* deletedText,
 
  406   void update_v_scrollbar();
 
  407   void update_h_scrollbar();
 
  408   int measure_vline(
int visLineNum) 
const;
 
  409   int longest_vline() 
const;
 
  410   int empty_vlines() 
const;
 
  411   int vline_length(
int visLineNum) 
const;
 
  412   int xy_to_position(
int x, 
int y, 
int PosType = CHARACTER_POS) 
const;
 
  414   void xy_to_rowcol(
int x, 
int y, 
int* row, 
int* column,
 
  415                     int PosType = CHARACTER_POS) 
const;
 
  416   void maintain_absolute_top_line_number(
int state);
 
  417   int get_absolute_top_line_number() 
const;
 
  418   void absolute_top_line_number(
int oldFirstChar);
 
  419   int maintaining_absolute_top_line_number() 
const;
 
  420   void reset_absolute_top_line_number();
 
  421   int position_to_linecol(
int pos, 
int* lineNum, 
int* column) 
const;
 
  422   int scroll_(
int topLineNum, 
int horizOffset);
 
  424   void extend_range_for_styles(
int* start, 
int* end);
 
  426   void find_wrap_range(
const char *deletedText, 
int pos, 
int nInserted,
 
  427                        int nDeleted, 
int *modRangeStart, 
int *modRangeEnd,
 
  428                        int *linesInserted, 
int *linesDeleted);
 
  429   void measure_deleted_lines(
int pos, 
int nDeleted);
 
  430   void wrapped_line_counter(
Fl_Text_Buffer *buf, 
int startPos, 
int maxPos,
 
  431                             int maxLines, 
bool startPosIsLineStart,
 
  432                             int styleBufOffset, 
int *retPos, 
int *retLines,
 
  433                             int *retLineStart, 
int *retLineEnd,
 
  434                             bool countLastLineMissingNewLine = 
true) 
const;
 
  435   void find_line_end(
int pos, 
bool start_pos_is_line_start, 
int *lineEnd,
 
  436                      int *nextLineStart) 
const;
 
  437   double measure_proportional_character(
const char *s, 
int colNum, 
int pos) 
const;
 
  438   int wrap_uses_character(
int lineEndPos) 
const;
 
  440   int damage_range1_start, damage_range1_end;
 
  441   int damage_range2_start, damage_range2_end;
 
  449   int mCursorPreferredXPos;     
 
  455   int mFirstChar, mLastChar;    
 
  469   int mNeedAbsTopLineNum;       
 
  475   int mHorizOffsetHint;         
 
  477   const Style_Table_Entry *mStyleTable; 
 
  479   char mUnfinishedStyle;        
 
  481   Unfinished_Style_Cb mUnfinishedHighlightCB; 
 
  483   void* mHighlightCBArg;        
 
  492   int mModifyingTabDistance;    
 
  495   mutable double mColumnScale; 
 
  504   int scrollbar_width_;
 
  506   int dragPos, dragType, dragging;
 
  507   int display_insert_position_hint;
 
  508   struct { 
int x, 
y, 
w, 
h; } text_area;
 
  517   int mLineNumLeft, mLineNumWidth;
 
  520 #if FLTK_ABI_VERSION >= 10303 
  526   const char* linenumber_format_;
 
void hide_cursor()
Hides the text cursor. 
Definition: Fl_Text_Display.H:200
Fl_Font textfont() const 
Gets the default font used when drawing text in the widget. 
Definition: Fl_Text_Display.H:281
thick I-beam 
Definition: Fl_Text_Display.H:94
int scrollbar_width() const 
Gets the width/height of the scrollbars. 
Definition: Fl_Text_Display.H:220
wrap text at a pixel position 
Definition: Fl_Text_Display.H:127
Fl_Align scrollbar_align() const 
Gets the scrollbar alignment type. 
Definition: Fl_Text_Display.H:232
This structure associates the color, font, andsize of a string to draw with an attribute mask matchin...
Definition: Fl_Text_Display.H:139
int insert_position() const 
Gets the position of the text insertion cursor for text display. 
Definition: Fl_Text_Display.H:177
void scrollbar_align(Fl_Align a)
Sets the scrollbar alignment type. 
Definition: Fl_Text_Display.H:238
int word_end(int pos) const 
Moves the insert position to the end of the current word. 
Definition: Fl_Text_Display.H:252
This class manages unicode displayed in one or more Fl_Text_Display widgets. 
Definition: Fl_Text_Buffer.H:157
Fl_Color cursor_color() const 
Gets the text cursor color. 
Definition: Fl_Text_Display.H:208
I-beam. 
Definition: Fl_Text_Display.H:90
void draw()
Draws the widget. 
Definition: Fl_Group.cxx:738
void textfont(Fl_Font s)
Sets the default font used when drawing text in the widget. 
Definition: Fl_Text_Display.H:287
void insert(Fl_Widget &, int i)
The widget is removed from its current group (if any) and then inserted into this group...
Definition: Fl_Group.cxx:458
The Fl_Group class is the FLTK container widget. 
Definition: Fl_Group.H:41
int handle(int)
Handles the specified event. 
Definition: Fl_Group.cxx:147
caret under the text 
Definition: Fl_Text_Display.H:91
don't wrap text at all 
Definition: Fl_Text_Display.H:125
void textsize(Fl_Fontsize s)
Sets the default size of text in the widget. 
Definition: Fl_Text_Display.H:299
void buffer(Fl_Text_Buffer &buf)
Sets the current text buffer associated with the text widget. 
Definition: Fl_Text_Display.H:158
int Fl_Fontsize
Size of a font in pixels. 
Definition: Enumerations.H:768
void resize(int, int, int, int)
Resizes the Fl_Group widget and all of its children. 
Definition: Fl_Group.cxx:634
int shortcut() const 
Definition: Fl_Text_Display.H:268
Fl_Fontsize textsize() const 
Gets the default size of text in the widget. 
Definition: Fl_Text_Display.H:293
unfille box under the current character 
Definition: Fl_Text_Display.H:93
void textcolor(Fl_Color n)
Sets the default color of text in the widget. 
Definition: Fl_Text_Display.H:311
utility header to pull drawing functions together 
unsigned int Fl_Color
An FLTK color value; see also Colors. 
Definition: Enumerations.H:796
int Fl_Font
A font number is an index into the internal font table. 
Definition: Enumerations.H:739
void cursor_color(Fl_Color n)
Sets the text cursor color. 
Definition: Fl_Text_Display.H:214
unsigned Fl_Align
FLTK type for alignment control. 
Definition: Enumerations.H:690
wrap text at the given text column 
Definition: Fl_Text_Display.H:126
int word_start(int pos) const 
Moves the insert position to the beginning of the current word. 
Definition: Fl_Text_Display.H:245
Fl_Text_Buffer * buffer() const 
Gets the current text buffer associated with the text widget. 
Definition: Fl_Text_Display.H:165
Fl_Color textcolor() const 
Gets the default color of text in the widget. 
Definition: Fl_Text_Display.H:305
Rich text display widget. 
Definition: Fl_Text_Display.H:82
void shortcut(int s)
Definition: Fl_Text_Display.H:275
dim I-beam 
Definition: Fl_Text_Display.H:92
void scrollbar_width(int W)
Sets the width/height of the scrollbars. 
Definition: Fl_Text_Display.H:226