FLTK: Fl_Text_Editor Class Reference

FLTK

Classes | Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | Static Protected Attributes | List of all members
Fl_Text_Editor Class Reference

This is the FLTK text editor widget. More...

`#include <Fl_Text_Editor.H>`

Inheritance diagram for Fl_Text_Editor:

## Classes
struct | Key_Binding
| Simple linked list item associating a key/state to a function. More...

## Public Types
typedef int(* | Key_Func) (int key, Fl_Text_Editor *editor)
| Key function binding callback type.
Public Types inherited from Fl_Text_Display
enum | { NORMAL_CURSOR, CARET_CURSOR, DIM_CURSOR, BLOCK_CURSOR, HEAVY_CURSOR, SIMPLE_CURSOR }
| text display cursor shapes enumeration More...
enum | { CURSOR_POS, CHARACTER_POS }
| the character position is the left edge of a character, whereas the cursor is thought to be between the centers of two consecutive characters.
enum | { DRAG_NONE = -2, DRAG_START_DND = -1, DRAG_CHAR = 0, DRAG_WORD = 1, DRAG_LINE = 2 }
| drag types - they match Fl::event_clicks() so that single clicking to start a collection selects by character, double clicking selects by word and triple clicking selects by line.
enum | { WRAP_NONE, WRAP_AT_COLUMN, WRAP_AT_PIXEL, WRAP_AT_BOUNDS }
| wrap types - used in wrap_mode() More...
typedef void(* | Unfinished_Style_Cb) (int, void *)

## Public Member Functions
void | add_default_key_bindings (Key_Binding **list)
| Adds all of the default editor key bindings to the specified key binding list.
void | add_key_binding (int key, int state, Key_Func f)
| Adds a `key` of state `state` with the function `f`.
void | add_key_binding (int key, int state, Key_Func f, Key_Binding **list)
| Adds a `key` of state `state` with the function `function` to an arbitrary key binding list `list`. More...
Key_Func | bound_key_function (int key, int state) const
| Returns the function associated with a key binding.
Key_Func | bound_key_function (int key, int state, Key_Binding *list) const
| Returns the function associated with a key binding.
void | default_key_function (Key_Func f)
| Sets the default key function for unassigned keys.
| Fl_Text_Editor (int X, int Y, int W, int H, const char *l=0)
| The constructor creates a new text editor widget.
virtual int | handle (int e)
| Event handling.
int | insert_mode ()
| Gets the current insert mode; if non-zero, new text is inserted before the current cursor position. More...
void | insert_mode (int b)
| Sets the current insert mode; if non-zero, new text is inserted before the current cursor position. More...
void | remove_all_key_bindings ()
| Removes all of the key bindings associated with the text editor or list.
void | remove_all_key_bindings (Key_Binding **list)
| Removes all of the key bindings associated with the text editor or list.
void | remove_key_binding (int key, int state)
| Removes the key binding associated with the key "key" of state "state".
void | remove_key_binding (int key, int state, Key_Binding **list)
| Removes the key binding associated with the key `key` of state `state` from the Key_Binding list `list`. More...
int | tab_nav () const
| Check if Tab focus navigation is enabled. More...
void | tab_nav (int val)
| Enables or disables Tab key focus navigation. More...
Public Member Functions inherited from Fl_Text_Display
Fl_Text_Buffer * | buffer () const
| Gets the current text buffer associated with the text widget. More...
void | buffer (Fl_Text_Buffer &buf)
| Sets the current text buffer associated with the text widget. More...
void | buffer (Fl_Text_Buffer *buf)
| Attach a text buffer to display, replacing the current buffer (if any) More...
double | col_to_x (double col) const
| Convert a column number into an x pixel position. More...
int | count_lines (int start, int end, bool start_pos_is_line_start) const
| Count the number of lines between two positions. More...
Fl_Color | cursor_color () const
| Gets the text cursor color. More...
void | cursor_color (Fl_Color n)
| Sets the text cursor color. More...
void | cursor_style (int style)
| Sets the text cursor style. More...
| Fl_Text_Display (int X, int Y, int W, int H, const char *l=0)
| Creates a new text display widget. More...
void | hide_cursor ()
| Hides the text cursor.
void | highlight_data (Fl_Text_Buffer *styleBuffer, const Style_Table_Entry *styleTable, int nStyles, char unfinishedStyle, Unfinished_Style_Cb unfinishedHighlightCB, void *cbArg)
| Attach (or remove) highlight information in text display and redisplay. More...
int | in_selection (int x, int y) const
| Check if a pixel position is within the primary selection. More...
void | insert (const char *text)
| Inserts "text" at the current cursor location. More...
int | insert_position () const
| Gets the position of the text insertion cursor for text display. More...
void | insert_position (int newPos)
| Sets the position of the text insertion cursor for text display. More...
int | line_end (int startPos, bool startPosIsLineStart) const
| Returns the end of a line. More...
int | line_start (int pos) const
| Return the beginning of a line. More...
Fl_Align | linenumber_align () const
| Returns the alignment used for line numbers (if enabled).
void | linenumber_align (Fl_Align val)
| Set alignment for line numbers (if enabled). More...
Fl_Color | linenumber_bgcolor () const
| Returns the background color used for line numbers (if enabled).
void | linenumber_bgcolor (Fl_Color val)
| Set the background color used for line numbers (if enabled). More...
Fl_Color | linenumber_fgcolor () const
| Return the foreground color used for line numbers (if enabled).
void | linenumber_fgcolor (Fl_Color val)
| Set the foreground color used for line numbers (if enabled). More...
Fl_Font | linenumber_font () const
| Return the font used for line numbers (if enabled).
void | linenumber_font (Fl_Font val)
| Set the font used for line numbers (if enabled). More...
const char * | linenumber_format () const
| Returns the line number printf() format string.
void | linenumber_format (const char *val)
| Sets the printf() style format string used for line numbers. More...
Fl_Fontsize | linenumber_size () const
| Return the font size used for line numbers (if enabled).
void | linenumber_size (Fl_Fontsize val)
| Set the font size used for line numbers (if enabled). More...
int | linenumber_width () const
| Return the screen area width provided for line numbers.
void | linenumber_width (int width)
| Set width of screen area for line numbers. More...
int | move_down ()
| Moves the current insert position down one line. More...
int | move_left ()
| Moves the current insert position left one character. More...
int | move_right ()
| Moves the current insert position right one character. More...
int | move_up ()
| Moves the current insert position up one line. More...
void | next_word (void)
| Moves the current insert position right one word.
void | overstrike (const char *text)
| Replaces text at the current insert position. More...
int | position_style (int lineStartPos, int lineLen, int lineIndex) const
| Find the correct style for a character. More...
int | position_to_xy (int pos, int *x, int *y) const
| Convert a character index into a pixel position. More...
void | previous_word (void)
| Moves the current insert position left one word.
void | redisplay_range (int start, int end)
| Marks text from start to end as needing a redraw. More...
virtual void | resize (int X, int Y, int W, int H)
| Change the size of the displayed text area. More...
int | rewind_lines (int startPos, int nLines)
| Skip a number of lines back. More...
void | scroll (int topLineNum, int horizOffset)
| Scrolls the current buffer to start at the specified line and column. More...
Fl_Align | scrollbar_align () const
| Gets the scrollbar alignment type. More...
void | scrollbar_align (Fl_Align a)
| Sets the scrollbar alignment type. More...
int | scrollbar_width () const
| Gets the width/height of the scrollbars. More...
void | scrollbar_width (int W)
| Sets the width/height of the scrollbars. More...
int | shortcut () const
void | shortcut (int s)
void | show_cursor (int b=1)
| Shows the text cursor. More...
void | show_insert_position ()
| Scrolls the text buffer to show the current insert position. More...
int | skip_lines (int startPos, int nLines, bool startPosIsLineStart)
| Skip a number of lines forward. More...
Fl_Color | textcolor () const
| Gets the default color of text in the widget. More...
void | textcolor (Fl_Color n)
| Sets the default color of text in the widget. More...
Fl_Font | textfont () const
| Gets the default font used when drawing text in the widget. More...
void | textfont (Fl_Font s)
| Sets the default font used when drawing text in the widget. More...
Fl_Fontsize | textsize () const
| Gets the default size of text in the widget. More...
void | textsize (Fl_Fontsize s)
| Sets the default size of text in the widget. More...
int | word_end (int pos) const
| Moves the insert position to the end of the current word. More...
int | word_start (int pos) const
| Moves the insert position to the beginning of the current word. More...
void | wrap_mode (int wrap, int wrap_margin)
| Set the new text wrap mode. More...
int | wrapped_column (int row, int column) const
| Nobody knows what this function does. More...
int | wrapped_row (int row) const
| Nobody knows what this function does. More...
double | x_to_col (double x) const
| Convert an x pixel position into a column number. More...
| ~Fl_Text_Display ()
| Free a text display and release its associated memory. More...
Public Member Functions inherited from Fl_Group
Fl_Widget *& | _ddfdesign_kludge ()
| This is for forms compatibility only.
void | add (Fl_Widget &)
| The widget is removed from its current group (if any) and then added to the end of this group.
void | add (Fl_Widget *o)
| See void Fl_Group::add(Fl_Widget &w)
void | add_resizable (Fl_Widget &o)
| Adds a widget to the group and makes it the resizable widget.
Fl_Widget *const * | array () const
| Returns a pointer to the array of children. More...
virtual Fl_Group * | as_group ()
| Returns an Fl_Group pointer if this widget is an Fl_Group. More...
void | begin ()
| Sets the current group so you can build the widget tree by just constructing the widgets. More...
Fl_Widget * | child (int n) const
| Returns array()[n]. More...
int | children () const
| Returns how many child widgets the group has.
void | clear ()
| Deletes all child widgets from memory recursively. More...
unsigned int | clip_children ()
| Returns the current clipping mode. More...
void | clip_children (int c)
| Controls whether the group widget clips the drawing of child widgets to its bounding box. More...
void | end ()
| Exactly the same as current(this->parent()). More...
int | find (const Fl_Widget &o) const
| See int Fl_Group::find(const Fl_Widget *w) const.
int | find (const Fl_Widget *) const
| Searches the child array for the widget and returns the index. More...
| Fl_Group (int, int, int, int, const char *=0)
| Creates a new Fl_Group widget using the given position, size, and label string. More...
void | focus (Fl_Widget *W)
void | forms_end ()
| This is for forms compatibility only.
void | init_sizes ()
| Resets the internal array of widget sizes and positions. More...
void | insert (Fl_Widget &, int i)
| The widget is removed from its current group (if any) and then inserted into this group. More...
void | insert (Fl_Widget &o, Fl_Widget *before)
| This does insert(w, find(before)). More...
void | remove (Fl_Widget &)
| Removes a widget from the group but does not delete it. More...
void | remove (Fl_Widget *o)
| Removes the widget `o` from the group. More...
void | remove (int index)
| Removes the widget at `index` from the group but does not delete it. More...
Fl_Widget * | resizable () const
| See void Fl_Group::resizable(Fl_Widget *box)
void | resizable (Fl_Widget &o)
| See void Fl_Group::resizable(Fl_Widget *box)
void | resizable (Fl_Widget *o)
| The resizable widget defines the resizing box for the group. More...
virtual | ~Fl_Group ()
| The destructor also deletes all the children. More...
Public Member Functions inherited from Fl_Widget
void | _clear_fullscreen ()
void | _set_fullscreen ()
void | activate ()
| Activates the widget. More...
unsigned int | active () const
| Returns whether the widget is active. More...
int | active_r () const
| Returns whether the widget and all of its parents are active. More...
Fl_Align | align () const
| Gets the label alignment. More...
void | align (Fl_Align alignment)
| Sets the label alignment. More...
long | argument () const
| Gets the current user data (long) argument that is passed to the callback function. More...
void | argument (long v)
| Sets the current user data (long) argument that is passed to the callback function. More...
virtual class Fl_Gl_Window * | as_gl_window ()
| Returns an Fl_Gl_Window pointer if this widget is an Fl_Gl_Window. More...
virtual Fl_Window * | as_window ()
| Returns an Fl_Window pointer if this widget is an Fl_Window. More...
Fl_Boxtype | box () const
| Gets the box type of the widget. More...
void | box (Fl_Boxtype new_box)
| Sets the box type for the widget. More...
Fl_Callback_p | callback () const
| Gets the current callback function for the widget. More...
void | callback (Fl_Callback *cb)
| Sets the current callback function for the widget. More...
void | callback (Fl_Callback *cb, void *p)
| Sets the current callback function for the widget. More...
void | callback (Fl_Callback0 *cb)
| Sets the current callback function for the widget. More...
void | callback (Fl_Callback1 *cb, long p=0)
| Sets the current callback function for the widget. More...
unsigned int | changed () const
| Checks if the widget value changed since the last callback. More...
void | clear_active ()
| Marks the widget as inactive without sending events or changing focus. More...
void | clear_changed ()
| Marks the value of the widget as unchanged. More...
void | clear_damage (uchar c=0)
| Clears or sets the damage flags. More...
void | clear_output ()
| Sets a widget to accept input. More...
void | clear_visible ()
| Hides the widget. More...
void | clear_visible_focus ()
| Disables keyboard focus navigation with this widget. More...
Fl_Color | color () const
| Gets the background color of the widget. More...
void | color (Fl_Color bg)
| Sets the background color of the widget. More...
void | color (Fl_Color bg, Fl_Color sel)
| Sets the background and selection color of the widget. More...
Fl_Color | color2 () const
| For back compatibility only. More...
void | color2 (unsigned a)
| For back compatibility only. More...
int | contains (const Fl_Widget *w) const
| Checks if w is a child of this widget. More...
void | copy_label (const char *new_label)
| Sets the current label. More...
void | copy_tooltip (const char *text)
| Sets the current tooltip text. More...
uchar | damage () const
| Returns non-zero if draw() needs to be called. More...
void | damage (uchar c)
| Sets the damage bits for the widget. More...
void | damage (uchar c, int x, int y, int w, int h)
| Sets the damage bits for an area inside the widget. More...
int | damage_resize (int, int, int, int)
| Internal use only.
void | deactivate ()
| Deactivates the widget. More...
Fl_Image * | deimage ()
| Gets the image that is used as part of the widget label. More...
const Fl_Image * | deimage () const
void | deimage (Fl_Image &img)
| Sets the image to use as part of the widget label. More...
void | deimage (Fl_Image *img)
| Sets the image to use as part of the widget label. More...
void | do_callback ()
| Calls the widget callback. More...
void | do_callback (Fl_Widget *o, long arg)
| Calls the widget callback. More...
void | do_callback (Fl_Widget *o, void *arg=0)
| Calls the widget callback. More...
void | draw_label (int, int, int, int, Fl_Align) const
| Draws the label in an arbitrary bounding box with an arbitrary alignment. More...
int | h () const
| Gets the widget height. More...
virtual void | hide ()
| Makes a widget invisible. More...
Fl_Image * | image ()
| Gets the image that is used as part of the widget label. More...
const Fl_Image * | image () const
void | image (Fl_Image &img)
| Sets the image to use as part of the widget label. More...
void | image (Fl_Image *img)
| Sets the image to use as part of the widget label. More...
int | inside (const Fl_Widget *wgt) const
| Checks if this widget is a child of `wgt`. More...
int | is_label_copied () const
| Returns whether the current label was assigned with copy_label(). More...
const char * | label () const
| Gets the current label text. More...
void | label (const char *text)
| Sets the current label pointer. More...
void | label (Fl_Labeltype a, const char *b)
| Shortcut to set the label text and type in one call. More...
Fl_Color | labelcolor () const
| Gets the label color. More...
void | labelcolor (Fl_Color c)
| Sets the label color. More...
Fl_Font | labelfont () const
| Gets the font to use. More...
void | labelfont (Fl_Font f)
| Sets the font to use. More...
Fl_Fontsize | labelsize () const
| Gets the font size in pixels. More...
void | labelsize (Fl_Fontsize pix)
| Sets the font size in pixels. More...
Fl_Labeltype | labeltype () const
| Gets the label type. More...
void | labeltype (Fl_Labeltype a)
| Sets the label type. More...
void | measure_label (int &ww, int &hh) const
| Sets width ww and height hh accordingly with the label size. More...
unsigned int | output () const
| Returns if a widget is used for output only. More...
Fl_Group * | parent () const
| Returns a pointer to the parent widget. More...
void | parent (Fl_Group *p)
| Internal use only - "for hacks only". More...
void | position (int X, int Y)
| Repositions the window or widget. More...
void | redraw ()
| Schedules the drawing of the widget. More...
void | redraw_label ()
| Schedules the drawing of the label. More...
Fl_Color | selection_color () const
| Gets the selection color. More...
void | selection_color (Fl_Color a)
| Sets the selection color. More...
void | set_active ()
| Marks the widget as active without sending events or changing focus. More...
void | set_changed ()
| Marks the value of the widget as changed. More...
void | set_output ()
| Sets a widget to output only. More...
void | set_visible ()
| Makes the widget visible. More...
void | set_visible_focus ()
| Enables keyboard focus navigation with this widget. More...
virtual void | show ()
| Makes a widget visible. More...
void | size (int W, int H)
| Changes the size of the widget. More...
int | take_focus ()
| Gives the widget the keyboard focus. More...
unsigned int | takesevents () const
| Returns if the widget is able to take events. More...
int | test_shortcut ()
| Returns true if the widget's label contains the entered '&x' shortcut. More...
const char * | tooltip () const
| Gets the current tooltip text. More...
void | tooltip (const char *text)
| Sets the current tooltip text. More...
Fl_Window * | top_window () const
| Returns a pointer to the top-level window for the widget. More...
Fl_Window * | top_window_offset (int &xoff, int &yoff) const
| Finds the x/y offset of the current widget relative to the top-level window. More...
uchar | type () const
| Gets the widget type. More...
void | type (uchar t)
| Sets the widget type. More...
int | use_accents_menu ()
| Returns non zero if MAC_USE_ACCENTS_MENU flag is set, 0 otherwise.
void * | user_data () const
| Gets the user data for this widget. More...
void | user_data (void *v)
| Sets the user data for this widget. More...
unsigned int | visible () const
| Returns whether a widget is visible. More...
unsigned int | visible_focus ()
| Checks whether this widget has a visible focus. More...
void | visible_focus (int v)
| Modifies keyboard focus navigation. More...
int | visible_r () const
| Returns whether a widget and all its parents are visible. More...
int | w () const
| Gets the widget width. More...
Fl_When | when () const
| Returns the conditions under which the callback is called. More...
void | when (uchar i)
| Sets the flags used to decide when a callback is called. More...
Fl_Window * | window () const
| Returns a pointer to the nearest parent window up the widget hierarchy. More...
int | x () const
| Gets the widget position in its window. More...
int | y () const
| Gets the widget position in its window. More...
virtual | ~Fl_Widget ()
| Destroys the widget. More...

## Static Public Member Functions
static int | kf_backspace (int c, Fl_Text_Editor *e)
| Does a backspace for key `'c'` in the current buffer of editor `'e'`. More...
static int | kf_c_s_move (int c, Fl_Text_Editor *e)
| Extends the current selection in the direction indicated by control key `'c'` in editor `'e'`. More...
static int | kf_copy (int c, Fl_Text_Editor *e)
| Does a copy of selected text or the current character in the current buffer of editor `'e'`. More...
static int | kf_ctrl_move (int c, Fl_Text_Editor *e)
| Moves the current text cursor in the direction indicated by control key `'c'` in editor `'e'`. More...
static int | kf_cut (int c, Fl_Text_Editor *e)
| Does a cut of selected text in the current buffer of editor `'e'`. More...
static int | kf_default (int c, Fl_Text_Editor *e)
| Inserts the text associated with key `'c'` in editor `'e'`. More...
static int | kf_delete (int c, Fl_Text_Editor *e)
| Does a delete of selected text or the current character in the current buffer of editor `'e'`. More...
static int | kf_down (int c, Fl_Text_Editor *e)
| Moves the text cursor one line down for editor `'e'`. More...
static int | kf_end (int c, Fl_Text_Editor *e)
| Moves the text cursor to the end of the current line in editor `'e'`. More...
static int | kf_enter (int c, Fl_Text_Editor *e)
| Inserts a newline for key `'c'` at the current cursor position in editor `'e'`. More...
static int | kf_home (int, Fl_Text_Editor *e)
| Moves the text cursor to the beginning of the current line in editor `'e'`. More...
static int | kf_ignore (int c, Fl_Text_Editor *e)
| Ignores the key `'c'` in editor `'e'`. More...
static int | kf_insert (int c, Fl_Text_Editor *e)
| Toggles the insert mode for editor `'e'`. More...
static int | kf_left (int c, Fl_Text_Editor *e)
| Moves the text cursor one character to the left in editor `'e'`. More...
static int | kf_m_s_move (int c, Fl_Text_Editor *e)
| Extends the current selection in the direction indicated by meta key `'c'` in editor `'e'`. More...
static int | kf_meta_move (int c, Fl_Text_Editor *e)
| Moves the current text cursor in the direction indicated by meta key `'c'` in editor `'e'`. More...
static int | kf_move (int c, Fl_Text_Editor *e)
| Moves the text cursor in the direction indicated by key `'c'` in editor `'e'`. More...
static int | kf_page_down (int c, Fl_Text_Editor *e)
| Moves the text cursor down one page for editor `'e'`. More...
static int | kf_page_up (int c, Fl_Text_Editor *e)
| Moves the text cursor up one page for editor `'e'`. More...
static int | kf_paste (int c, Fl_Text_Editor *e)
| Does a paste of selected text in the current buffer of editor `'e'`. More...
static int | kf_right (int c, Fl_Text_Editor *e)
| Moves the text cursor one character to the right for editor `'e'`. More...
static int | kf_select_all (int c, Fl_Text_Editor *e)
| Selects all text in the current buffer in editor `'e'`. More...
static int | kf_shift_move (int c, Fl_Text_Editor *e)
| Extends the current selection in the direction of key `'c'` in editor `'e'`. More...
static int | kf_undo (int c, Fl_Text_Editor *e)
| Undo last edit in the current buffer of editor `'e'`. More...
static int | kf_up (int c, Fl_Text_Editor *e)
| Moves the text cursor one line up for editor `'e'`. More...
Static Public Member Functions inherited from Fl_Group
static Fl_Group * | current ()
| Returns the currently active group. More...
static void | current (Fl_Group *g)
| Sets the current group. More...
Static Public Member Functions inherited from Fl_Widget
static void | default_callback (Fl_Widget *cb, void *d)
| The default callback for all widgets that don't set a callback. More...
static unsigned int | label_shortcut (const char *t)
| Returns the Unicode value of the '&x' shortcut in a given text. More...
static int | test_shortcut (const char *, const bool require_alt=false)
| Returns true if the given text `t` contains the entered '&x' shortcut. More...

## Protected Member Functions
int | handle_key ()
| Handles a key press in the editor.
void | maybe_do_callback ()
| does or does not a callback according to changed() and when() settings
Protected Member Functions inherited from Fl_Text_Display
void | absolute_top_line_number (int oldFirstChar)
| Line numbering stuff, currently unused. More...
void | calc_last_char ()
| Update last display character index. More...
void | calc_line_starts (int startLine, int endLine)
| Update the line start arrays. More...
void | clear_rect (int style, int x, int y, int width, int height) const
| Clear a rectangle with the appropriate background color for `style`. More...
void | display_insert ()
| Scroll the display to bring insertion cursor into view. More...
virtual void | draw ()
| Draw the widget. More...
void | draw_cursor (int, int)
| Draw a cursor with top center at `X`, `Y`. More...
void | draw_line_numbers (bool clearAll)
| Refresh the line number area. More...
void | draw_range (int start, int end)
| Draw a range of text. More...
void | draw_string (int style, int x, int y, int toX, const char *string, int nChars) const
| Draw a text segment in a single style. More...
void | draw_text (int X, int Y, int W, int H)
| Refresh a rectangle of the text display. More...
void | draw_vline (int visLineNum, int leftClip, int rightClip, int leftCharIndex, int rightCharIndex)
| Draw a single line of text. More...
int | empty_vlines () const
| Return true if there are lines visible with no corresponding buffer text. More...
void | extend_range_for_styles (int *start, int *end)
| I don't know what this does! More...
void | find_line_end (int pos, bool start_pos_is_line_start, int *lineEnd, int *nextLineStart) const
| Finds both the end of the current line and the start of the next line. More...
void | find_wrap_range (const char *deletedText, int pos, int nInserted, int nDeleted, int *modRangeStart, int *modRangeEnd, int *linesInserted, int *linesDeleted)
| Wrapping calculations. More...
int | find_x (const char *s, int len, int style, int x) const
| Find the index of the character that lies at the given x position. More...
int | get_absolute_top_line_number () const
| Line numbering stuff, currently unused. More...
int | handle_vline (int mode, int lineStart, int lineLen, int leftChar, int rightChar, int topClip, int bottomClip, int leftClip, int rightClip) const
| Universal pixel machine. More...
int | longest_vline () const
| Find the longest line of all visible lines. More...
void | maintain_absolute_top_line_number (int state)
| Line numbering stuff, currently unused. More...
int | maintaining_absolute_top_line_number () const
| Line numbering stuff, currently unused. More...
void | measure_deleted_lines (int pos, int nDeleted)
| Wrapping calculations. More...
double | measure_proportional_character (const char *s, int colNum, int pos) const
| Wrapping calculations. More...
int | measure_vline (int visLineNum) const
| Returns the width in pixels of the displayed line pointed to by "visLineNum". More...
void | offset_line_starts (int newTopLineNum)
| Offset line start counters for a new vertical scroll position. More...
int | position_to_line (int pos, int *lineNum) const
| Convert a position index into a line number offset. More...
int | position_to_linecol (int pos, int *lineNum, int *column) const
| Find the line and column number of position `pos`. More...
void | reset_absolute_top_line_number ()
| Line numbering stuff, probably unused. More...
int | scroll_ (int topLineNum, int horizOffset)
| Scrolls the current buffer to start at the specified line and column. More...
double | string_width (const char *string, int length, int style) const
| Find the width of a string in the font of a particular style. More...
void | update_h_scrollbar ()
| Update horizontal scrollbar. More...
void | update_line_starts (int pos, int charsInserted, int charsDeleted, int linesInserted, int linesDeleted, int *scrolled)
| Update line start arrays and variables. More...
void | update_v_scrollbar ()
| Update vertical scrollbar. More...
int | vline_length (int visLineNum) const
| Count number of bytes in a visible line. More...
int | wrap_uses_character (int lineEndPos) const
| Check if the line break is caused by a \n or by line wrapping. More...
void | wrapped_line_counter (Fl_Text_Buffer *buf, int startPos, int maxPos, int maxLines, bool startPosIsLineStart, int styleBufOffset, int *retPos, int *retLines, int *retLineStart, int *retLineEnd, bool countLastLineMissingNewLine=true) const
| Wrapping calculations. More...
int | xy_to_position (int x, int y, int PosType=CHARACTER_POS) const
| Translate a pixel position into a character index. More...
void | xy_to_rowcol (int x, int y, int *row, int *column, int PosType=CHARACTER_POS) const
| Translate pixel coordinates into row and column. More...
Protected Member Functions inherited from Fl_Group
void | draw_child (Fl_Widget &widget) const
| Forces a child to redraw. More...
void | draw_children ()
| Draws all children of the group. More...
void | draw_outside_label (const Fl_Widget &widget) const
| Parents normally call this to draw outside labels of child widgets.
int * | sizes ()
| Returns the internal array of widget sizes and positions. More...
void | update_child (Fl_Widget &widget) const
| Draws a child only if it needs it. More...
Protected Member Functions inherited from Fl_Widget
void | clear_flag (unsigned int c)
| Clears a flag in the flags mask.
void | draw_backdrop () const
| If FL_ALIGN_IMAGE_BACKDROP is set, the image or deimage will be drawn.
void | draw_box () const
| Draws the widget box according its box style.
void | draw_box (Fl_Boxtype t, Fl_Color c) const
| Draws a box of type t, of color c at the widget's position and size.
void | draw_box (Fl_Boxtype t, int x, int y, int w, int h, Fl_Color c) const
| Draws a box of type t, of color c at the position X,Y and size W,H.
void | draw_focus ()
| draws a focus rectangle around the widget
void | draw_focus (Fl_Boxtype t, int x, int y, int w, int h) const
| Draws a focus box for the widget at the given position and size.
void | draw_label () const
| Draws the widget's label at the defined label position. More...
void | draw_label (int, int, int, int) const
| Draws the label in an arbitrary bounding box. More...
| Fl_Widget (int x, int y, int w, int h, const char *label=0L)
| Creates a widget at the given position and size. More...
unsigned int | flags () const
| Gets the widget flags mask.
void | h (int v)
| Internal use only. More...
void | set_flag (unsigned int c)
| Sets a flag in the flags mask.
void | w (int v)
| Internal use only. More...
void | x (int v)
| Internal use only. More...
void | y (int v)
| Internal use only. More...

## Static Protected Attributes
static Key_Binding * | global_key_bindings
| Global key binding list. More...

## Additional Inherited Members
Protected Types inherited from Fl_Text_Display
enum | { DRAW_LINE, FIND_INDEX, FIND_INDEX_FROM_ZERO, GET_WIDTH }
Protected Types inherited from Fl_Widget
enum | { INACTIVE = 1<<0, INVISIBLE = 1<<1, OUTPUT = 1<<2, NOBORDER = 1<<3, FORCE_POSITION = 1<<4, NON_MODAL = 1<<5, SHORTCUT_LABEL = 1<<6, CHANGED = 1<<7, OVERRIDE = 1<<8, VISIBLE_FOCUS = 1<<9, COPIED_LABEL = 1<<10, CLIP_CHILDREN = 1<<11, MENU_WINDOW = 1<<12, TOOLTIP_WINDOW = 1<<13, MODAL = 1<<14, NO_OVERLAY = 1<<15, GROUP_RELATIVE = 1<<16, COPIED_TOOLTIP = 1<<17, FULLSCREEN = 1<<18, MAC_USE_ACCENTS_MENU = 1<<19, USERFLAG3 = 1<<29, USERFLAG2 = 1<<30, USERFLAG1 = 1<<31 }
| flags possible values enumeration. More...
Static Protected Member Functions inherited from Fl_Text_Display
static void | buffer_modified_cb (int pos, int nInserted, int nDeleted, int nRestyled, const char *deletedText, void *cbArg)
| This is called whenever the buffer is modified. More...
static void | buffer_predelete_cb (int pos, int nDeleted, void *cbArg)
| This is called before any characters are deleted. More...
static void | h_scrollbar_cb (Fl_Scrollbar *w, Fl_Text_Display *d)
| Callbacks for drag or valueChanged on horizontal scrollbar.
static void | scroll_timer_cb (void *)
| Timer callback for scroll events. More...
static void | v_scrollbar_cb (Fl_Scrollbar *w, Fl_Text_Display *d)
| Callbacks for drag or valueChanged on vertical scrollbar.
Protected Attributes inherited from Fl_Text_Display
int | damage_range1_end
int | damage_range1_start
int | damage_range2_end
int | damage_range2_start
int | display_insert_position_hint
int | dragging
int | dragPos
int | dragType
Fl_Align | linenumber_align_
Fl_Color | linenumber_bgcolor_
Fl_Color | linenumber_fgcolor_
Fl_Font | linenumber_font_
const char * | linenumber_format_
Fl_Fontsize | linenumber_size_
int | mAbsTopLineNum
Fl_Text_Buffer * | mBuffer
double | mColumnScale
int | mContinuousWrap
Fl_Color | mCursor_color
int | mCursorOldY
int | mCursorOn
int | mCursorPos
int | mCursorPreferredXPos
int | mCursorStyle
int | mCursorToHint
int | mFirstChar
void * | mHighlightCBArg
int | mHorizOffset
int | mHorizOffsetHint
Fl_Scrollbar * | mHScrollBar
int | mLastChar
int | mLineNumLeft
int | mLineNumWidth
int * | mLineStarts
int | mMaxsize
int | mModifyingTabDistance
int | mNBufferLines
int | mNeedAbsTopLineNum
int | mNLinesDeleted
int | mNStyles
int | mNVisibleLines
Fl_Text_Buffer * | mStyleBuffer
const Style_Table_Entry * | mStyleTable
int | mSuppressResync
int | mTopLineNum
int | mTopLineNumHint
Unfinished_Style_Cb | mUnfinishedHighlightCB
char | mUnfinishedStyle
Fl_Scrollbar * | mVScrollBar
int | mWrapMarginPix
Fl_Align | scrollbar_align_
int | scrollbar_width_
int | shortcut_
struct {
int h
int w
int x
int y
} | text_area
Fl_Color | textcolor_
Fl_Font | textfont_
Fl_Fontsize | textsize_

## Detailed Description

This is the FLTK text editor widget.

It allows the user to edit multiple lines of text and supports highlighting and scrolling. The buffer that is displayed in the widget is managed by the Fl_Text_Buffer class.

## Member Function Documentation

## ◆ add_key_binding()

void Fl_Text_Editor::add_key_binding | ( | int | key,
|  | int | state,
|  | Key_Func | function,
|  | Key_Binding ** | list
| ) |  |

Adds a `key` of state `state` with the function `function` to an arbitrary key binding list `list`.

This can be used in derived classes to add global key bindings by using the global (static) Key_Binding list Fl_Text_Editor::global_key_bindings.

## ◆ insert_mode() [1/2]

int Fl_Text_Editor::insert_mode | ( |  | ) |
| inline

Gets the current insert mode; if non-zero, new text is inserted before the current cursor position.

Otherwise, new text replaces text at the current cursor position.

## ◆ insert_mode() [2/2]

void Fl_Text_Editor::insert_mode | ( | int | b | ) |
| inline

Sets the current insert mode; if non-zero, new text is inserted before the current cursor position.

Otherwise, new text replaces text at the current cursor position.

## ◆ kf_backspace()

int Fl_Text_Editor::kf_backspace | ( | int | c,
|  | Fl_Text_Editor * | e
| ) |  |
| static

Does a backspace for key `'c'` in the current buffer of editor `'e'`.

Any current selection is deleted. Otherwise, the character left is deleted and the cursor moved. The key value `'c'` is currently unused.

## ◆ kf_c_s_move()

int Fl_Text_Editor::kf_c_s_move | ( | int | c,
|  | Fl_Text_Editor * | e
| ) |  |
| static

Extends the current selection in the direction indicated by control key `'c'` in editor `'e'`.

See also
  kf_ctrl_move().

## ◆ kf_copy()

int Fl_Text_Editor::kf_copy | ( | int | c,
|  | Fl_Text_Editor * | e
| ) |  |
| static

Does a copy of selected text or the current character in the current buffer of editor `'e'`.

The key value `'c'` is currently unused.

## ◆ kf_ctrl_move()

int Fl_Text_Editor::kf_ctrl_move | ( | int | c,
|  | Fl_Text_Editor * | e
| ) |  |
| static

Moves the current text cursor in the direction indicated by control key `'c'` in editor `'e'`.

Supported values for 'c' are currently:

FL_Home -- moves the cursor to the beginning of the document
FL_End -- moves the cursor to the end of the document
FL_Left -- moves the cursor left one word
FL_Right -- moves the cursor right one word
FL_Up -- scrolls up one line, without moving cursor
FL_Down -- scrolls down one line, without moving cursor
FL_Page_Up -- moves the cursor to the beginning of the top line on the current page
FL_Page_Down -- moves the cursor to the beginning of the last line on the current page

## ◆ kf_cut()

int Fl_Text_Editor::kf_cut | ( | int | c,
|  | Fl_Text_Editor * | e
| ) |  |
| static

Does a cut of selected text in the current buffer of editor `'e'`.

The key value `'c'` is currently unused.

## ◆ kf_default()

int Fl_Text_Editor::kf_default | ( | int | c,
|  | Fl_Text_Editor * | e
| ) |  |
| static

Inserts the text associated with key `'c'` in editor `'e'`.

Honors the current selection and insert/overstrike mode.

## ◆ kf_delete()

int Fl_Text_Editor::kf_delete | ( | int | c,
|  | Fl_Text_Editor * | e
| ) |  |
| static

Does a delete of selected text or the current character in the current buffer of editor `'e'`.

The key value `'c'` is currently unused.

## ◆ kf_down()

int Fl_Text_Editor::kf_down | ( | int | c,
|  | Fl_Text_Editor * | e
| ) |  |
| static

Moves the text cursor one line down for editor `'e'`.

Same as kf_move(FL_Down, e). The key value `'c'` is currently unused.

## ◆ kf_end()

int Fl_Text_Editor::kf_end | ( | int | c,
|  | Fl_Text_Editor * | e
| ) |  |
| static

Moves the text cursor to the end of the current line in editor `'e'`.

Same as kf_move(FL_End, e). The key value `'c'` is currently unused.

## ◆ kf_enter()

int Fl_Text_Editor::kf_enter | ( | int | c,
|  | Fl_Text_Editor * | e
| ) |  |
| static

Inserts a newline for key `'c'` at the current cursor position in editor `'e'`.

The key value `'c'` is currently unused.

## ◆ kf_home()

int Fl_Text_Editor::kf_home | ( | int | ,
|  | Fl_Text_Editor * | e
| ) |  |
| static

Moves the text cursor to the beginning of the current line in editor `'e'`.

Same as kf_move(FL_Home, e). The key value `'c'` is currently unused.

## ◆ kf_ignore()

int Fl_Text_Editor::kf_ignore | ( | int | c,
|  | Fl_Text_Editor * | e
| ) |  |
| static

Ignores the key `'c'` in editor `'e'`.

This method can be used as a keyboard binding to disable a key that might otherwise be handled or entered as text.

An example would be disabling FL_Escape, so that it isn't added to the buffer when invoked by the user.

## ◆ kf_insert()

int Fl_Text_Editor::kf_insert | ( | int | c,
|  | Fl_Text_Editor * | e
| ) |  |
| static

Toggles the insert mode for editor `'e'`.

The key value `'c'` is currently unused.

## ◆ kf_left()

int Fl_Text_Editor::kf_left | ( | int | c,
|  | Fl_Text_Editor * | e
| ) |  |
| static

Moves the text cursor one character to the left in editor `'e'`.

Same as kf_move(FL_Left, e). The key value `'c'` is currently unused.

## ◆ kf_m_s_move()

int Fl_Text_Editor::kf_m_s_move | ( | int | c,
|  | Fl_Text_Editor * | e
| ) |  |
| static

Extends the current selection in the direction indicated by meta key `'c'` in editor `'e'`.

See also
  kf_meta_move().

## ◆ kf_meta_move()

int Fl_Text_Editor::kf_meta_move | ( | int | c,
|  | Fl_Text_Editor * | e
| ) |  |
| static

Moves the current text cursor in the direction indicated by meta key `'c'` in editor `'e'`.

Supported values for 'c' are currently:

FL_Up -- moves cursor to the beginning of the current document
FL_Down -- moves cursor to the end of the current document
FL_Left -- moves the cursor to the beginning of the current line
FL_Right -- moves the cursor to the end of the current line

## ◆ kf_move()

int Fl_Text_Editor::kf_move | ( | int | c,
|  | Fl_Text_Editor * | e
| ) |  |
| static

Moves the text cursor in the direction indicated by key `'c'` in editor `'e'`.

Supported values for 'c' are currently:

FL_Home -- moves the cursor to the beginning of the current line
FL_End -- moves the cursor to the end of the current line
FL_Left -- moves the cursor left one character
FL_Right -- moves the cursor right one character
FL_Up -- moves the cursor up one line
FL_Down -- moves the cursor down one line
FL_Page_Up -- moves the cursor up one page
FL_Page_Down -- moves the cursor down one page

## ◆ kf_page_down()

int Fl_Text_Editor::kf_page_down | ( | int | c,
|  | Fl_Text_Editor * | e
| ) |  |
| static

Moves the text cursor down one page for editor `'e'`.

Same as kf_move(FL_Page_Down, e). The key value `'c'` is currently unused.

## ◆ kf_page_up()

int Fl_Text_Editor::kf_page_up | ( | int | c,
|  | Fl_Text_Editor * | e
| ) |  |
| static

Moves the text cursor up one page for editor `'e'`.

Same as kf_move(FL_Page_Up, e). The key value `'c'` is currently unused.

## ◆ kf_paste()

int Fl_Text_Editor::kf_paste | ( | int | c,
|  | Fl_Text_Editor * | e
| ) |  |
| static

Does a paste of selected text in the current buffer of editor `'e'`.

Any current selection is replaced with the pasted content. The key value `'c'` is currently unused.

## ◆ kf_right()

int Fl_Text_Editor::kf_right | ( | int | c,
|  | Fl_Text_Editor * | e
| ) |  |
| static

Moves the text cursor one character to the right for editor `'e'`.

Same as kf_move(FL_Right, e). The key value `'c'` is currently unused.

## ◆ kf_select_all()

int Fl_Text_Editor::kf_select_all | ( | int | c,
|  | Fl_Text_Editor * | e
| ) |  |
| static

Selects all text in the current buffer in editor `'e'`.

The key value `'c'` is currently unused.

## ◆ kf_shift_move()

int Fl_Text_Editor::kf_shift_move | ( | int | c,
|  | Fl_Text_Editor * | e
| ) |  |
| static

Extends the current selection in the direction of key `'c'` in editor `'e'`.

See also
  kf_move()

## ◆ kf_undo()

int Fl_Text_Editor::kf_undo | ( | int | c,
|  | Fl_Text_Editor * | e
| ) |  |
| static

Undo last edit in the current buffer of editor `'e'`.

Also deselects previous selection. The key value `'c'` is currently unused.

## ◆ kf_up()

int Fl_Text_Editor::kf_up | ( | int | c,
|  | Fl_Text_Editor * | e
| ) |  |
| static

Moves the text cursor one line up for editor `'e'`.

Same as kf_move(FL_Up, e). The key value `'c'` is currently unused.

## ◆ remove_key_binding()

void Fl_Text_Editor::remove_key_binding | ( | int | key,
|  | int | state,
|  | Key_Binding ** | list
| ) |  |

Removes the key binding associated with the key `key` of state `state` from the Key_Binding list `list`.

This can be used in derived classes to remove global key bindings by using the global (static) Key_Binding list Fl_Text_Editor::global_key_bindings.

## ◆ tab_nav() [1/2]

int Fl_Text_Editor::tab_nav | ( |  | ) | const

Check if Tab focus navigation is enabled.

If disabled (default), hitting Tab inserts a tab character into the editor buffer.

If enabled, hitting Tab navigates focus to the next widget, and Shift-Tab navigates focus to the previous widget.

Returns
  if Tab inserts tab characters or moves the focus

Return values

  0 | Tab inserts tab characters (default)
  1 | Tab navigation is enabled.

See also
  tab_nav(int), Fl::OPTION_ARROW_FOCUS.

Version
  1.3.4 ABI feature

## ◆ tab_nav() [2/2]

void Fl_Text_Editor::tab_nav | ( | int | val | ) |

Enables or disables Tab key focus navigation.

When disabled (default), tab characters are inserted into Fl_Text_Editor. Only the mouse can change focus. This behavior is desireable when Fl_Text_Editor is used, e.g. in a source code editor.

When enabled, Tab navigates focus to the next widget, and Shift-Tab navigates focus to the previous widget. This behavior is desireable when Fl_Text_Editor is used e.g. in a database input form.

Currently, this method is implemented as a convenience method that adjusts the key bindings for the Tab key. This implementation detail may change in the future. Know that changing the editor's key bindings for Tab and Shift-Tab may affect tab navigation.

Parameters

  [in] | val | If `val` is 0, Tab inserts a tab character (default). If `val` is 1, Tab navigates widget focus.

See also
  tab_nav(), Fl::OPTION_ARROW_FOCUS.

Version
  1.3.4 ABI feature

## Member Data Documentation

## ◆ global_key_bindings

Key_Binding* Fl_Text_Editor::global_key_bindings
| staticprotected

Global key binding list.

Derived classes can add key bindings for all Fl_Text_Editor widgets by adding a Key_Binding to this list.

See also
  add_key_binding(int key, int state, Key_Func f, Key_Binding** list);

The documentation for this class was generated from the following files:

- Fl_Text_Editor.H
- Fl_Text_Editor.cxx

FL_Up
#define FL_Up
The up arrow key.
Definition: Enumerations.H:481
Fl_Group::end
void end()
Exactly the same as current(this->parent()).
Definition: Fl_Group.cxx:75
FL_Page_Down
#define FL_Page_Down
The page-down key.
Definition: Enumerations.H:485
FL_Page_Up
#define FL_Page_Up
The page-up key.
Definition: Enumerations.H:484
FL_Down
#define FL_Down
The down arrow key.
Definition: Enumerations.H:483
FL_End
#define FL_End
The end key.
Definition: Enumerations.H:486
FL_Left
#define FL_Left
The left arrow key.
Definition: Enumerations.H:480
FL_Right
#define FL_Right
The right arrow key.
Definition: Enumerations.H:482
FL_Home
#define FL_Home
The home key.
Definition: Enumerations.H:479
Fl_Group::current
static Fl_Group * current()
Returns the currently active group.
Definition: Fl_Group.cxx:84
- © 1998-2016 by Bill Spitzak and others.