FLTK 1.3.8
|
This is the FLTK text editor widget. More...
#include <Fl_Text_Editor.H>
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. More... | |
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... | |
virtual int | handle (int e) |
Event handling. 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. | |
int | handle (int) |
Handles the specified event. More... | |
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... | |
void | resize (int, int, int, int) |
Resizes the Fl_Group widget and all of its children. 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_Group * | as_group () |
Returns an Fl_Group pointer if this widget is an Fl_Group. 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... | |
virtual void | draw ()=0 |
Draws the widget. 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 int | handle (int event) |
Handles the specified event. 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... | |
virtual void | resize (int x, int y, int w, int h) |
Changes the size or position of the widget. 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 () |
Draws the widget. More... | |
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_ |
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.
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.
|
virtual |
Event handling.
Reimplemented from Fl_Text_Display.
|
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.
|
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.
|
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.
|
static |
Extends the current selection in the direction indicated by control key 'c'
in 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.
|
static |
Moves the current text cursor in the direction indicated by control key 'c'
in editor 'e'
.
Supported values for 'c' are currently:
|
static |
Does a cut of selected text in the current buffer of editor 'e'
.
The key value 'c'
is currently unused.
|
static |
Inserts the text associated with key 'c'
in editor 'e'
.
Honors the current selection and insert/overstrike mode.
|
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.
|
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.
|
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.
|
static |
Inserts a newline for key 'c'
at the current cursor position in editor 'e'
.
The key value 'c'
is currently unused.
|
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.
|
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.
|
static |
Toggles the insert mode for editor 'e'
.
The key value 'c'
is currently unused.
|
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.
|
static |
Extends the current selection in the direction indicated by meta key 'c'
in 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:
|
static |
Moves the text cursor in the direction indicated by key 'c'
in editor 'e'
.
Supported values for 'c' are currently:
|
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.
|
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.
|
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.
|
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.
|
static |
Selects all text in the current buffer in editor 'e'
.
The key value 'c'
is currently unused.
|
static |
Extends the current selection in the direction of key 'c'
in editor 'e'
.
|
static |
Undo last edit in the current buffer of editor 'e'
.
Also deselects previous selection. The key value 'c'
is currently unused.
|
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.
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.
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.
0 | Tab inserts tab characters (default) |
1 | Tab navigation is enabled. |
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.
[in] | val | If val is 0, Tab inserts a tab character (default).If val is 1, Tab navigates widget focus. |
|
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.