FLTK 1.4.4

Loading...
Searching...
No Matches
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 | { 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 | { WRAP_NONE , WRAP_AT_COLUMN , WRAP_AT_PIXEL , WRAP_AT_BOUNDS }
| wrap types - used in wrap_mode() More...
enum | { NORMAL_CURSOR , CARET_CURSOR , DIM_CURSOR , BLOCK_CURSOR , HEAVY_CURSOR , SIMPLE_CURSOR }
| text display cursor shapes enumeration More...
enum | { ATTR_BGCOLOR = 0x0001 , ATTR_BGCOLOR_EXT_ = 0x0002 , ATTR_BGCOLOR_EXT = 0x0003 , ATTR_UNDERLINE = 0x0004 , ATTR_GRAMMAR = 0x0008 , ATTR_SPELLING = 0x000C , ATTR_STRIKE_THROUGH = 0x0010 , ATTR_LINES_MASK = 0x001C }
| attribute flags in Style_Table_Entry.attr More...
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.
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`.
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.
int | handle (int e) FL_OVERRIDE
| Event handling.
int | insert_mode ()
| Gets the current insert mode; if non-zero, new text is inserted before the current cursor position.
void | insert_mode (int b)
| Sets the current insert mode; if non-zero, new text is inserted before the current cursor position.
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`.
int | tab_nav () const
| Check if Tab focus navigation is enabled.
void | tab_nav (int val)
| Enables or disables Tab key focus navigation.
Public Member Functions inherited from Fl_Text_Display
Fl_Text_Buffer * | buffer () const
| Gets the current text buffer associated with the text widget.
void | buffer (Fl_Text_Buffer &buf)
| Sets the current text buffer associated with the text widget.
void | buffer (Fl_Text_Buffer *buf)
| Attach a text buffer to display, replacing the current buffer (if any).
double | col_to_x (double col) const
| Convert a column number into an x pixel position.
int | count_lines (int start, int end, bool start_pos_is_line_start) const
| Count the number of lines between two positions.
Fl_Color | cursor_color () const
| Gets the text cursor color.
void | cursor_color (Fl_Color n)
| Sets the text cursor color.
int | cursor_style () const
void | cursor_style (int style)
| Sets the text cursor style.
virtual void | display_needs_recalc ()
| Schedule a recalc_display() to be done on next draw().
| Fl_Text_Display (int X, int Y, int W, int H, const char *l=0)
| Creates a new text display widget.
int | get_absolute_top_line_number () const
| Returns the absolute (non-wrapped) line number of the first line displayed.
Fl_Color | grammar_underline_color () const
| Gets the underline color for style attribute ATTR_GRAMMAR.
void | grammar_underline_color (Fl_Color color)
| Sets the underline color for style attribute ATTR_GRAMMAR.
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.
int | in_selection (int x, int y) const
| Check if a pixel position is within the primary selection.
void | insert (const char *text)
| Inserts "text" at the current cursor location.
int | insert_position () const
| Gets the position of the text insertion cursor for text display.
void | insert_position (int newPos)
| Sets the position of the text insertion cursor for text display.
int | line_end (int startPos, bool startPosIsLineStart) const
| Returns the end of a line.
int | line_start (int pos) const
| Return the beginning of a line.
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).
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).
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).
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).
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.
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).
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.
int | move_down ()
| Moves the current insert position down one line.
int | move_left ()
| Moves the current insert position left one character.
int | move_right ()
| Moves the current insert position right one character.
int | move_up ()
| Moves the current insert position up one line.
void | next_word (void)
| Moves the current insert position right one word.
void | overstrike (const char *text)
| Replaces text at the current insert position.
int | position_style (int lineStartPos, int lineLen, int lineIndex) const
| Find the correct style for a character.
int | position_to_xy (int pos, int *x, int *y) const
| Convert a character index into a pixel position.
void | previous_word (void)
| Moves the current insert position left one word.
virtual void | recalc_display ()
| Recalculate the display's visible lines and scrollbar sizes.
void | redisplay_range (int start, int end)
| Marks text from start to end as needing a redraw.
void | resize (int X, int Y, int W, int H) FL_OVERRIDE
| Change the size of the displayed text area.
int | rewind_lines (int startPos, int nLines)
| Skip a number of lines back.
void | scroll (int topLineNum, int horizOffset)
| Scrolls the current buffer to start at the specified line and column.
int | scroll_col ()
int | scroll_row ()
Fl_Align | scrollbar_align () const
| Gets the scrollbar alignment type.
void | scrollbar_align (Fl_Align a)
| Sets the scrollbar alignment type.
int | scrollbar_size () const
| Gets the current size of the scrollbars' troughs, in pixels.
void | scrollbar_size (int newSize)
| Sets the pixel size of the scrollbars' troughs to `newSize`, in pixels.
int | scrollbar_width () const
| Returns the global value Fl::scrollbar_size() unless a specific scrollbar_width_ has been set.
void | scrollbar_width (int width)
| Sets the global Fl::scrollbar_size(), and forces this instance of the widget to use it.
Fl_Color | secondary_selection_color () const
| Gets the background color for the secondary selection block.
void | secondary_selection_color (Fl_Color color)
| Sets the background color for the secondary selection block.
int | shortcut () const
void | shortcut (int s)
void | show_cursor (int b=1)
| Shows the text cursor.
void | show_insert_position ()
| Scrolls the text buffer to show the current insert position.
int | skip_lines (int startPos, int nLines, bool startPosIsLineStart)
| Skip a number of lines forward.
Fl_Color | spelling_underline_color () const
| Gets the underline color for style attribute ATTR_SPELLING.
void | spelling_underline_color (Fl_Color color)
| Sets the underline color for style attribute ATTR_SPELLING.
Fl_Text_Buffer * | style_buffer () const
| Gets the current style buffer associated with the text widget.
Fl_Color | textcolor () const
| Gets the default color of text in the widget.
void | textcolor (Fl_Color n)
| Sets the default color of text in the widget.
Fl_Font | textfont () const
| Gets the default font used when drawing text in the widget.
void | textfont (Fl_Font s)
| Sets the default font used when drawing text in the widget.
Fl_Fontsize | textsize () const
| Gets the default size of text in the widget.
void | textsize (Fl_Fontsize s)
| Sets the default size of text in the widget.
int | word_end (int pos) const
| Moves the insert position to the end of the current word.
int | word_start (int pos) const
| Moves the insert position to the beginning of the current word.
void | wrap_mode (int wrap, int wrap_margin)
| Set the new text wrap mode.
int | wrapped_column (int row, int column) const
| Nobody knows what this function does.
int | wrapped_row (int row) const
| Nobody knows what this function does.
double | x_to_col (double x) const
| Convert an x pixel position into a column number.
| ~Fl_Text_Display ()
| Free a text display and release its associated memory.
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.
Fl_Group const * | as_group () const FL_OVERRIDE
Fl_Group * | as_group () FL_OVERRIDE
| Returns an Fl_Group pointer if this widget is an Fl_Group.
void | begin ()
| Sets the current group so you can build the widget tree by just constructing the widgets.
Fl_Widget * | child (int n) const
| Returns the n'th child.
int | children () const
| Returns how many child widgets the group has.
void | clear ()
| Deletes all child widgets from memory recursively.
unsigned int | clip_children ()
| Returns the current clipping mode.
void | clip_children (int c)
| Controls whether the group widget clips the drawing of child widgets to its bounding box.
virtual int | delete_child (int n)
| Removes the widget at `index` from the group and deletes it.
void | end ()
| Exactly the same as current(this->parent()).
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.
| Fl_Group (int, int, int, int, const char *=0)
| Creates a new Fl_Group widget using the given position, size, and label string.
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.
void | insert (Fl_Widget &, int i)
| The widget is removed from its current group (if any) and then inserted into this group.
void | insert (Fl_Widget &o, Fl_Widget *before)
| This does insert(w, find(before)).
void | remove (Fl_Widget &)
| Removes a widget from the group but does not delete it.
void | remove (Fl_Widget *o)
| Removes the widget `o` from the group.
void | remove (int index)
| Removes the widget at `index` from the group but does not delete it.
Fl_Widget * | resizable () const
| Returns the group's resizable widget.
void | resizable (Fl_Widget &o)
| Sets the group's resizable widget.
void | resizable (Fl_Widget *o)
| The resizable widget defines both the resizing box and the resizing behavior of the group and its children.
virtual | ~Fl_Group ()
| The destructor also deletes all the children.
Public Member Functions inherited from Fl_Widget
void | _clear_fullscreen ()
void | _set_fullscreen ()
void | activate ()
| Activates the widget.
unsigned int | active () const
| Returns whether the widget is active.
int | active_r () const
| Returns whether the widget and all of its parents are active.
Fl_Align | align () const
| Gets the label alignment.
void | align (Fl_Align alignment)
| Sets the label alignment.
long | argument () const
| Gets the current user data (long) argument that is passed to the callback function.
void | argument (long v)
| Sets the current user data (long) argument that is passed to the callback function.
virtual class Fl_Gl_Window * | as_gl_window ()
| Returns an Fl_Gl_Window pointer if this widget is an Fl_Gl_Window.
virtual class Fl_Gl_Window const * | as_gl_window () const
virtual Fl_Window * | as_window ()
| Returns an Fl_Window pointer if this widget is an Fl_Window.
virtual Fl_Window const * | as_window () const
void | bind_deimage (Fl_Image *img)
| Sets the image to use as part of the widget label when in the inactive state.
void | bind_deimage (int f)
| Bind the inactive image to the widget, so the widget will delete the image when it is no longer needed.
void | bind_image (Fl_Image *img)
| Sets the image to use as part of the widget label when in the active state.
void | bind_image (int f)
| Bind the image to the widget, so the widget will delete the image when it is no longer needed.
Fl_Boxtype | box () const
| Gets the box type of the widget.
void | box (Fl_Boxtype new_box)
| Sets the box type for the widget.
Fl_Callback_p | callback () const
| Gets the current callback function for the widget.
void | callback (Fl_Callback *cb)
| Sets the current callback function for the widget.
void | callback (Fl_Callback *cb, Fl_Callback_User_Data *p, bool auto_free)
| Sets the current callback function and managed user data for the widget.
void | callback (Fl_Callback *cb, void *p)
| Sets the current callback function and data for the widget.
void | callback (Fl_Callback0 *cb)
| Sets the current callback function for the widget.
void | callback (Fl_Callback1 *cb, long p=0)
| Sets the current callback function for the widget.
unsigned int | changed () const
| Checks if the widget value changed since the last callback.
void | clear_active ()
| Marks the widget as inactive without sending events or changing focus.
void | clear_changed ()
| Marks the value of the widget as unchanged.
void | clear_damage (uchar c=0)
| Clears or sets the damage flags.
void | clear_output ()
| Sets a widget to accept input.
void | clear_visible ()
| Hides the widget.
void | clear_visible_focus ()
| Disables keyboard focus navigation with this widget.
Fl_Color | color () const
| Gets the background color of the widget.
void | color (Fl_Color bg)
| Sets the background color of the widget.
void | color (Fl_Color bg, Fl_Color sel)
| Sets the background and selection color of the widget.
Fl_Color | color2 () const
| For back compatibility only.
void | color2 (unsigned a)
| For back compatibility only.
int | contains (const Fl_Widget *w) const
| Checks if w is a child of this widget.
void | copy_label (const char *new_label)
| Sets the current label.
void | copy_tooltip (const char *text)
| Sets the current tooltip text.
uchar | damage () const
| Returns non-zero if draw() needs to be called.
void | damage (uchar c)
| Sets the damage bits for the widget.
void | damage (uchar c, int x, int y, int w, int h)
| Sets the damage bits for an area inside the widget.
int | damage_resize (int, int, int, int)
| Internal use only.
void | deactivate ()
| Deactivates the widget.
Fl_Image * | deimage ()
| Gets the image that is used as part of the widget label when in the inactive state.
const Fl_Image * | deimage () const
| Gets the image that is used as part of the widget label when in the inactive state.
void | deimage (Fl_Image &img)
| Sets the image to use as part of the widget label when in the inactive state.
void | deimage (Fl_Image *img)
| Sets the image to use as part of the widget label when in the inactive state.
int | deimage_bound () const
| Returns whether the inactive image is managed by the widget.
void | do_callback (Fl_Callback_Reason reason=FL_REASON_UNKNOWN)
| Calls the widget callback function with default arguments.
void | do_callback (Fl_Widget *widget, long arg, Fl_Callback_Reason reason=FL_REASON_UNKNOWN)
| Calls the widget callback function with arbitrary arguments.
void | do_callback (Fl_Widget *widget, void *arg=0, Fl_Callback_Reason reason=FL_REASON_UNKNOWN)
| Calls the widget callback function with arbitrary arguments.
void | draw_label (int, int, int, int, Fl_Align) const
| Draws the label in an arbitrary bounding box with an arbitrary alignment.
int | h () const
| Gets the widget height.
virtual void | hide ()
| Makes a widget invisible.
int | horizontal_label_margin ()
| Get the spacing between the label and the horizontal edge of the widget.
void | horizontal_label_margin (int px)
| Set the spacing between the label and the horizontal edge of the widget.
Fl_Image * | image ()
| Gets the image that is used as part of the widget label when in the active state.
const Fl_Image * | image () const
| Gets the image that is used as part of the widget label when in the active state.
void | image (Fl_Image &img)
| Sets the image to use as part of the widget label when in the active state.
void | image (Fl_Image *img)
| Sets the image to use as part of the widget label when in the active state.
int | image_bound () const
| Returns whether the image is managed by the widget.
int | inside (const Fl_Widget *wgt) const
| Checks if this widget is a child of `wgt`.
int | is_label_copied () const
| Returns whether the current label was assigned with copy_label().
const char * | label () const
| Gets the current label text.
void | label (const char *text)
| Sets the current label pointer.
void | label (Fl_Labeltype a, const char *b)
| Shortcut to set the label text and type in one call.
int | label_image_spacing ()
| Return the gap size between the label and the image.
void | label_image_spacing (int gap)
| Set the gap between the label and the image in pixels.
Fl_Color | labelcolor () const
| Gets the label color.
void | labelcolor (Fl_Color c)
| Sets the label color.
Fl_Font | labelfont () const
| Gets the font to use.
void | labelfont (Fl_Font f)
| Sets the font to use.
Fl_Fontsize | labelsize () const
| Gets the font size in pixels.
void | labelsize (Fl_Fontsize pix)
| Sets the font size in pixels.
Fl_Labeltype | labeltype () const
| Gets the label type.
void | labeltype (Fl_Labeltype a)
| Sets the label type.
void | measure_label (int &ww, int &hh) const
| Sets width ww and height hh accordingly with the label size.
bool | needs_keyboard () const
| Returns whether this widget needs a keyboard.
void | needs_keyboard (bool needs)
| Sets whether this widget needs a keyboard.
unsigned int | output () const
| Returns if a widget is used for output only.
Fl_Group * | parent () const
| Returns a pointer to the parent widget.
void | parent (Fl_Group *p)
| Internal use only - "for hacks only".
void | position (int X, int Y)
| Repositions the window or widget.
void | redraw ()
| Schedules the drawing of the widget.
void | redraw_label ()
| Schedules the drawing of the label.
Fl_Color | selection_color () const
| Gets the selection color.
void | selection_color (Fl_Color a)
| Sets the selection color.
void | set_active ()
| Marks the widget as active without sending events or changing focus.
void | set_changed ()
| Marks the value of the widget as changed.
void | set_output ()
| Sets a widget to output only.
void | set_visible ()
| Makes the widget visible.
void | set_visible_focus ()
| Enables keyboard focus navigation with this widget.
int | shortcut_label () const
| Returns whether the widget's label uses '&' to indicate shortcuts.
void | shortcut_label (int value)
| Sets whether the widget's label uses '&' to indicate shortcuts.
virtual void | show ()
| Makes a widget visible.
void | size (int W, int H)
| Changes the size of the widget.
int | take_focus ()
| Gives the widget the keyboard focus.
unsigned int | takesevents () const
| Returns if the widget is able to take events.
int | test_shortcut ()
| Returns true if the widget's label contains the entered '&x' shortcut.
const char * | tooltip () const
| Gets the current tooltip text.
void | tooltip (const char *text)
| Sets the current tooltip text.
Fl_Window * | top_window () const
| Returns a pointer to the top-level window for the widget.
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.
uchar | type () const
| Gets the widget type.
void | type (uchar t)
| Sets the widget type.
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.
void | user_data (Fl_Callback_User_Data *v, bool auto_free)
| Sets the user data for this widget.
void | user_data (void *v)
| Sets the user data for this widget.
int | vertical_label_margin ()
| Get the spacing between the label and the vertical edge of the widget.
void | vertical_label_margin (int px)
| Set the spacing between the label and the vertical edge of the widget.
unsigned int | visible () const
| Returns whether a widget is visible.
unsigned int | visible_focus () const
| Checks whether this widget has a visible focus.
void | visible_focus (int v)
| Modifies keyboard focus navigation.
int | visible_r () const
| Returns whether a widget and all its parents are visible.
int | w () const
| Gets the widget width.
Fl_When | when () const
| Returns the conditions under which the callback is called.
void | when (uchar i)
| Sets the flags used to decide when a callback is called.
Fl_Window * | window () const
| Returns a pointer to the nearest parent window up the widget hierarchy.
int | x () const
| Gets the widget position in its window.
int | y () const
| Gets the widget position in its window.
virtual | ~Fl_Widget ()
| Destroys the widget.

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

## Protected Member Functions
int | handle_key ()
| Handles a key press in the editor.
void | maybe_do_callback (Fl_Callback_Reason reason=FL_REASON_CHANGED)
| 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)
| Re-calculate absolute top line number for a change in scroll position.
void | calc_last_char ()
| Update last display character index.
void | calc_line_starts (int startLine, int endLine)
| Update the line starts array.
void | clear_rect (int style, int x, int y, int width, int height) const
| Clear a rectangle with the appropriate background color for `style`.
void | display_insert ()
| Scroll the display to bring insertion cursor into view.
void | draw () FL_OVERRIDE
| Draw the widget.
void | draw_cursor (int, int)
| Draw a cursor with top center at `X`, `Y`.
void | draw_line_numbers (bool clearAll)
| Refresh the line number area.
void | draw_range (int start, int end)
| Draw a range of text.
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.
void | draw_text (int X, int Y, int W, int H)
| Refresh a rectangle of the text display.
void | draw_vline (int visLineNum, int leftClip, int rightClip, int leftCharIndex, int rightCharIndex)
| Draw a single line of text.
int | empty_vlines () const
| Return true if there are lines visible with no corresponding buffer text.
void | extend_range_for_styles (int *start, int *end)
| I don't know what this does!
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.
void | find_wrap_range (const char *deletedText, int pos, int nInserted, int nDeleted, int *modRangeStart, int *modRangeEnd, int *linesInserted, int *linesDeleted)
| Wrapping calculations.
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 / closest cursor position.
int | handle_rmb (int readonly)
| Handle right mouse button down events.
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.
int | longest_vline () const
| Find the longest line of all visible lines.
void | maintain_absolute_top_line_number (int state)
| Line numbering stuff, currently unused.
int | maintaining_absolute_top_line_number () const
| Returns true if a separate absolute top line number is being maintained.
void | measure_deleted_lines (int pos, int nDeleted)
| Wrapping calculations.
double | measure_proportional_character (const char *s, int colNum, int pos) const
| Wrapping calculations.
int | measure_vline (int visLineNum) const
| Returns the width in pixels of the displayed line pointed to by "visLineNum".
void | offset_line_starts (int newTopLineNum)
| Offset line start counters for a new vertical scroll position.
int | position_to_line (int pos, int *lineNum) const
| Convert a position index into a line number offset.
int | position_to_linecol (int pos, int *lineNum, int *column) const
| Find the line and column number of position `pos`.
void | reset_absolute_top_line_number ()
| Reestablish the absolute (non-wrapped) top line number.
int | scroll_ (int topLineNum, int horizOffset)
| Scrolls the current buffer to start at the specified line and column.
double | string_width (const char *string, int length, int style) const
| Find the width of a string in the font of a particular style.
void | update_h_scrollbar ()
| Update horizontal scrollbar.
void | update_line_starts (int pos, int charsInserted, int charsDeleted, int linesInserted, int linesDeleted, int *scrolled)
| Update line start arrays and variables.
void | update_v_scrollbar ()
| Update vertical scrollbar.
int | vline_length (int visLineNum) const
| Count number of bytes in a visible line.
int | wrap_uses_character (int lineEndPos) const
| Check if the line break is caused by a newline or by line wrapping.
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.
int | xy_to_position (int x, int y, int PosType=CHARACTER_POS) const
| Translate a pixel position into a character index.
void | xy_to_rowcol (int x, int y, int *row, int *column, int PosType=CHARACTER_POS) const
| Translate pixel coordinates into row and column.
Protected Member Functions inherited from Fl_Group
Fl_Rect * | bounds ()
| Returns the internal array of widget sizes and positions.
void | draw_child (Fl_Widget &widget) const
| Forces a child to redraw.
void | draw_children ()
| Draws all children of the group.
void | draw_outside_label (const Fl_Widget &widget) const
| Parents normally call this to draw outside labels of child widgets.
virtual int | on_insert (Fl_Widget *, int)
| Allow derived groups to act when a widget is added as a child.
virtual int | on_move (int, int)
| Allow derived groups to act when a widget is moved within the group.
virtual void | on_remove (int)
| Allow derived groups to act when a child widget is removed from the group.
int * | sizes ()
| Returns the internal array of widget sizes and positions.
void | update_child (Fl_Widget &widget) const
| Draws a child only if it needs it.
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 () const
| 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 rectangle around the widget.
void | draw_focus (Fl_Boxtype t, int x, int y, int w, int h, Fl_Color bg) 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.
void | draw_label (int, int, int, int) const
| Draws the label in an arbitrary bounding box.
| Fl_Widget (int x, int y, int w, int h, const char *label=0L)
| Creates a widget at the given position and size.
unsigned int | flags () const
| Gets the widget flags mask.
void | h (int v)
| Internal use only.
void | set_flag (unsigned int c)
| Sets a flag in the flags mask.
void | w (int v)
| Internal use only.
void | x (int v)
| Internal use only.
void | y (int v)
| Internal use only.

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

## Additional Inherited Members
Protected Types inherited from Fl_Text_Display
enum | { DRAW_LINE , FIND_INDEX , FIND_INDEX_FROM_ZERO , GET_WIDTH , FIND_CURSOR_INDEX }
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 , NEEDS_KEYBOARD = 1<<20 , IMAGE_BOUND = 1<<21 , DEIMAGE_BOUND = 1<<22 , AUTO_DELETE_USER_DATA = 1<<23 , MAXIMIZED = 1<<24 , POPUP = 1<<25 , 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.
static void | buffer_predelete_cb (int pos, int nDeleted, void *cbArg)
| This is called before any characters are deleted.
static void | h_scrollbar_cb (Fl_Scrollbar *w, Fl_Text_Display *d)
| Callback for drag or valueChanged on horizontal scrollbar.
static void | scroll_timer_cb (void *)
| Timer callback for scroll events.
static void | v_scrollbar_cb (Fl_Scrollbar *w, Fl_Text_Display *d)
| Callback 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
bool | display_needs_recalc_
int | dragging
int | dragPos
int | dragType
Fl_Color | grammar_underline_color_
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_
Fl_Color | secondary_selection_color_
int | shortcut_
Fl_Color | spelling_underline_color_
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.

## ◆ handle()

int Fl_Text_Editor::handle | ( | int | e | ) |
| virtual

Event handling.

Reimplemented from Fl_Text_Display.

## ◆ 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
FL_Up
#define FL_Up
The up arrow key.
Definition Enumerations.H:500
FL_End
#define FL_End
The end key.
Definition Enumerations.H:505
FL_Page_Up
#define FL_Page_Up
The page-up key.
Definition Enumerations.H:503
FL_Right
#define FL_Right
The right arrow key.
Definition Enumerations.H:501
FL_Home
#define FL_Home
The home key.
Definition Enumerations.H:498
FL_Down
#define FL_Down
The down arrow key.
Definition Enumerations.H:502
FL_Page_Down
#define FL_Page_Down
The page-down key.
Definition Enumerations.H:504
FL_Left
#define FL_Left
The left arrow key.
Definition Enumerations.H:499
Fl_Group::end
void end()
Exactly the same as current(this->parent()).
Definition Fl_Group.cxx:73
Fl_Group::current
static Fl_Group * current()
Returns the currently active group.
Definition Fl_Group.cxx:82

## ◆ 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_redo()

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

Redo last undo action.

Also deselects previous selection. 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
| static protected

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