FLTK 1.4.0
Fl_Input_ Class Reference

This class provides a low-overhead text input field. More...

#include <Fl_Input_.H>

Inheritance diagram for Fl_Input_:
Fl_Widget Fl_Input Fl_File_Input Fl_Float_Input Fl_Int_Input Fl_Multiline_Input Fl_Output Fl_Secret_Input Fl_Spinner::Fl_Spinner_Input Fl_Multiline_Output

Public Member Functions

int append (const char *t, int l=0, char keep_selection=0)
 Append text at the end. More...
 
bool can_redo () const
 Check if there is a redo action available. More...
 
bool can_undo () const
 Check if the last operation can be undone. More...
 
int copy (int clipboard)
 Put the current selection into the clipboard. More...
 
int copy_cuts ()
 Copies the yank buffer to the clipboard. More...
 
Fl_Color cursor_color () const
 Gets the color of the cursor. More...
 
void cursor_color (Fl_Color n)
 Sets the color of the cursor. More...
 
int cut ()
 Deletes the current selection. More...
 
int cut (int a, int b)
 Deletes all characters between index a and b. More...
 
int cut (int n)
 Deletes the next n bytes rounded to characters before or after the cursor. More...
 
double dvalue () const
 Returns the widget text interpreted as a floating point number. More...
 
 Fl_Input_ (int, int, int, int, const char *=0)
 Creates a new Fl_Input_ widget. More...
 
unsigned int index (int i) const
 Returns the character at index i. More...
 
int input_type () const
 Gets the input field type. More...
 
void input_type (int t)
 Sets the input field type. More...
 
int insert (const char *t, int l=0)
 Inserts text at the cursor position. More...
 
int insert_position () const
 Gets the position of the text cursor. More...
 
int insert_position (int p)
 Sets the cursor position and mark. More...
 
int insert_position (int p, int m)
 Sets the index for the cursor and mark. More...
 
int ivalue () const
 Returns the widget text interpreted as a signed integer. More...
 
int mark () const
 Gets the current selection mark. More...
 
int mark (int m)
 Sets the current selection mark. More...
 
int maximum_size () const
 Gets the maximum length of the input field in characters. More...
 
void maximum_size (int m)
 Sets the maximum length of the input field in characters. More...
 
int position () const
 
int position (int p)
 
int position (int p, int m)
 
int readonly () const
 Gets the read-only state of the input field. More...
 
void readonly (int b)
 Sets the read-only state of the input field. More...
 
int redo ()
 Redo previous undo operation. More...
 
int replace (int b, int e, const char *text, int ilen=0)
 Deletes text from b to e and inserts the new string text. More...
 
void resize (int, int, int, int) FL_OVERRIDE
 Changes the size of the widget. More...
 
int shortcut () const
 Return the shortcut key associated with this widget. More...
 
void shortcut (int s)
 Sets the shortcut key associated with this widget. More...
 
int size () const
 Returns the number of bytes in value(). More...
 
void size (int W, int H)
 Sets the width and height of this widget. More...
 
int static_value (const char *)
 Changes the widget text. More...
 
int static_value (const char *, int)
 Changes the widget text. More...
 
int tab_nav () const
 Gets whether the Tab key causes focus navigation in multiline input fields or not. More...
 
void tab_nav (int val)
 Sets whether the Tab key does focus navigation, or inserts tab characters into Fl_Multiline_Input. More...
 
Fl_Color textcolor () const
 Gets the color of the text in the input field. More...
 
void textcolor (Fl_Color n)
 Sets the color of the text in the input field. More...
 
Fl_Font textfont () const
 Gets the font of the text in the input field. More...
 
void textfont (Fl_Font s)
 Sets the font of the text in the input field. More...
 
Fl_Fontsize textsize () const
 Gets the size of the text in the input field. More...
 
void textsize (Fl_Fontsize s)
 Sets the size of the text in the input field. More...
 
int undo ()
 Undoes previous changes to the text buffer. More...
 
const char * value () const
 Returns the text displayed in the widget. More...
 
int value (const char *)
 Changes the widget text. More...
 
int value (const char *, int)
 Changes the widget text. More...
 
int value (double value)
 Changes the widget text to a floating point number ("%g"). More...
 
int value (int value)
 Changes the widget text to a signed integer number. More...
 
int wrap () const
 Gets the word wrapping state of the input field. More...
 
void wrap (int b)
 Sets the word wrapping state of the input field. More...
 
 ~Fl_Input_ ()
 Destroys the widget. 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_Windowas_gl_window ()
 Returns an Fl_Gl_Window pointer if this widget is an Fl_Gl_Window. More...
 
virtual class Fl_Gl_Window const * as_gl_window () const
 
virtual Fl_Groupas_group ()
 Returns an Fl_Group pointer if this widget is an Fl_Group. More...
 
virtual Fl_Group const * as_group () const
 
virtual Fl_Windowas_window ()
 Returns an Fl_Window pointer if this widget is an Fl_Window. More...
 
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. More...
 
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. More...
 
void bind_image (Fl_Image *img)
 Sets the image to use as part of the widget label when in the active state. More...
 
void bind_image (int f)
 Bind the image to the widget, so the widget will delete the image when it is no longer needed. 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, Fl_Callback_User_Data *p, bool auto_free)
 Sets the current callback function and managed user data for the widget. More...
 
void callback (Fl_Callback *cb, void *p)
 Sets the current callback function and data 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_Imagedeimage ()
 Gets the image that is used as part of the widget label when in the inactive state. More...
 
const Fl_Imagedeimage () const
 Gets the image that is used as part of the widget label when in the inactive state. More...
 
void deimage (Fl_Image &img)
 Sets the image to use as part of the widget label when in the inactive state. More...
 
void deimage (Fl_Image *img)
 Sets the image to use as part of the widget label when in the inactive state. More...
 
int deimage_bound () const
 Returns whether the inactive image is managed by the widget. More...
 
void do_callback (Fl_Callback_Reason reason=FL_REASON_UNKNOWN)
 Calls the widget callback function with default arguments. More...
 
void do_callback (Fl_Widget *widget, long arg, Fl_Callback_Reason reason=FL_REASON_UNKNOWN)
 Calls the widget callback function with arbitrary arguments. More...
 
void do_callback (Fl_Widget *widget, void *arg=0, Fl_Callback_Reason reason=FL_REASON_UNKNOWN)
 Calls the widget callback function with arbitrary arguments. 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...
 
int horizontal_label_margin ()
 Get the spacing between the label and the horizontal edge of the widget. More...
 
void horizontal_label_margin (int px)
 Set the spacing between the label and the horizontal edge of the widget. More...
 
Fl_Imageimage ()
 Gets the image that is used as part of the widget label when in the active state. More...
 
const Fl_Imageimage () const
 Gets the image that is used as part of the widget label when in the active state. More...
 
void image (Fl_Image &img)
 Sets the image to use as part of the widget label when in the active state. More...
 
void image (Fl_Image *img)
 Sets the image to use as part of the widget label when in the active state. More...
 
int image_bound () const
 Returns whether the image is managed by the widget. 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...
 
int label_image_spacing ()
 Return the gap size between the label and the image. More...
 
void label_image_spacing (int gap)
 Set the gap between the label and the image in pixels. 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...
 
bool needs_keyboard () const
 Returns whether this widget needs a keyboard. More...
 
void needs_keyboard (bool needs)
 Sets whether this widget needs a keyboard. More...
 
unsigned int output () const
 Returns if a widget is used for output only. More...
 
Fl_Groupparent () 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...
 
int shortcut_label () const
 Returns whether the widget's label uses '&' to indicate shortcuts. More...
 
void shortcut_label (int value)
 Sets whether the widget's label uses '&' to indicate shortcuts. 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_Windowtop_window () const
 Returns a pointer to the top-level window for the widget. More...
 
Fl_Windowtop_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 (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. More...
 
void vertical_label_margin (int px)
 Set the spacing between the label and the vertical edge of the widget. More...
 
unsigned int visible () const
 Returns whether a widget is visible. More...
 
unsigned int visible_focus () const
 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_Windowwindow () 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...
 

Protected Member Functions

int apply_undo ()
 Apply the current undo/redo operation. More...
 
void drawtext (int, int, int, int)
 Draws the text in the passed bounding box. More...
 
void drawtext (int, int, int, int, bool draw_active)
 Draws the text in the passed bounding box. More...
 
void handle_mouse (int, int, int, int, int keepmark=0)
 Handles mouse clicks and mouse moves. More...
 
int handletext (int e, int, int, int, int)
 Handles all kinds of text field related events. More...
 
int line_end (int i) const
 Finds the end of a line. More...
 
int line_start (int i) const
 Finds the start of a line. More...
 
int linesPerPage ()
 
void maybe_do_callback (Fl_Callback_Reason reason=FL_REASON_UNKNOWN)
 
int up_down_position (int, int keepmark=0)
 Moves the cursor to the column given by up_down_pos. More...
 
int word_end (int i) const
 Finds the end of a word. More...
 
int word_start (int i) const
 Finds the start of a word. More...
 
int xscroll () const
 
int yscroll () const
 
void yscroll (int yOffset)
 
- 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. More...
 
void draw_focus (Fl_Boxtype t, int X, int Y, int W, int H) const
 Draws a focus rectangle around the widget. More...
 
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. More...
 
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...
 

Additional Inherited Members

- 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. 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 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...
 

Detailed Description

This class provides a low-overhead text input field.

This is a virtual base class below Fl_Input. It has all the same interfaces, but lacks the handle() and draw() method. You may want to subclass it if you are one of those people who likes to change how the editing keys work. It may also be useful for adding scrollbars to the input field.

This can act like any of the subclasses of Fl_Input, by setting type() to one of the following values:

#define FL_NORMAL_INPUT 0
#define FL_FLOAT_INPUT 1
#define FL_INT_INPUT 2
#define FL_MULTILINE_INPUT 4
#define FL_SECRET_INPUT 5
#define FL_INPUT_TYPE 7
#define FL_INPUT_READONLY 8
#define FL_NORMAL_OUTPUT (FL_NORMAL_INPUT | FL_INPUT_READONLY)
#define FL_MULTILINE_OUTPUT (FL_MULTILINE_INPUT | FL_INPUT_READONLY)
#define FL_INPUT_WRAP 16
#define FL_MULTILINE_INPUT_WRAP (FL_MULTILINE_INPUT | FL_INPUT_WRAP)
#define FL_MULTILINE_OUTPUT_WRAP (FL_MULTILINE_INPUT | FL_INPUT_READONLY | FL_INPUT_WRAP)

All variables that represent an index into a text buffer are byte-oriented, not character oriented, counting from 0 (at or before the first character) to size() (at the end of the buffer, after the last byte). Since UTF-8 characters can be up to six bytes long, simply incrementing such an index will not reliably advance to the next character in the text buffer.

Indices and pointers into the text buffer should always point at a 7 bit ASCII character or the beginning of a UTF-8 character sequence. Behavior for false UTF-8 sequences and pointers into the middle of a sequence are undefined.

See also
Fl_Text_Display, Fl_Text_Editor for more powerful text handling widgets
Fl_Widget::shortcut_label(int)

Constructor & Destructor Documentation

◆ Fl_Input_()

Fl_Input_::Fl_Input_ ( int  X,
int  Y,
int  W,
int  H,
const char *  l = 0 
)

Creates a new Fl_Input_ widget.

This function creates a new Fl_Input_ widget and adds it to the current Fl_Group. The value() is set to NULL. The default boxtype is FL_DOWN_BOX.

Parameters
X,Y,W,Hthe dimensions of the new widget
lan optional label text

◆ ~Fl_Input_()

Fl_Input_::~Fl_Input_ ( )

Destroys the widget.

The destructor clears all allocated buffers and removes the widget from the parent Fl_Group.

Member Function Documentation

◆ append()

int Fl_Input_::append ( const char *  t,
int  l = 0,
char  keep_selection = 0 
)

Append text at the end.

This function appends the string in t to the end of the text. It does not moves the new position or mark.

Parameters
[in]ttext that will be appended
[in]llength of text, or 0 if the string is terminated by nul.
[in]keep_selectionif this is 1, the current text selection will remain, if 0, the cursor will move to the end of the inserted text.
Returns
0 if no text was appended

◆ apply_undo()

int Fl_Input_::apply_undo ( )
protected

Apply the current undo/redo operation.

It's up to undo() and redo() to push and pop actions to and from the lists.

Returns
1 if the current action changed any text.
See also
undo(), redo()

◆ can_redo()

bool Fl_Input_::can_redo ( ) const

Check if there is a redo action available.

Returns
true if the widget can redo the last undo action

◆ can_undo()

bool Fl_Input_::can_undo ( ) const

Check if the last operation can be undone.

Returns
true if the widget can undo the last change

◆ copy()

int Fl_Input_::copy ( int  clipboard)

Put the current selection into the clipboard.

This function copies the current selection between mark() and position() into the specified clipboard. This does not replace the old clipboard contents if position() and mark() are equal. Clipboard 0 maps to the current text selection and clipboard 1 maps to the cut/paste clipboard.

Parameters
clipboardthe clipboard destination 0 or 1
Returns
0 if no text is selected, 1 if the selection was copied
See also
Fl::copy(const char *, int, int)

◆ copy_cuts()

int Fl_Input_::copy_cuts ( )

Copies the yank buffer to the clipboard.

This method copies all the previous contiguous cuts from the undo information to the clipboard. This function implements the ^K shortcut key.

Returns
0 if the operation did not change the clipboard
See also
copy(int), cut()

◆ cursor_color() [1/2]

Fl_Color Fl_Input_::cursor_color ( ) const
inline

Gets the color of the cursor.

Returns
the current cursor color

◆ cursor_color() [2/2]

void Fl_Input_::cursor_color ( Fl_Color  n)
inline

Sets the color of the cursor.

The default color for the cursor is FL_BLACK.

Parameters
[in]nthe new cursor color

◆ cut() [1/3]

int Fl_Input_::cut ( )
inline

Deletes the current selection.

This function deletes the currently selected text without storing it in the clipboard. To use the clipboard, you may call copy() first or copy_cuts() after this call.

Returns
0 if no data was copied

◆ cut() [2/3]

int Fl_Input_::cut ( int  a,
int  b 
)
inline

Deletes all characters between index a and b.

This function deletes the currently selected text without storing it in the clipboard. To use the clipboard, you may call copy() first or copy_cuts() after this call.

Parameters
a,brange of bytes rounded to full characters and clamped to the buffer
Returns
0 if no data was copied

◆ cut() [3/3]

int Fl_Input_::cut ( int  n)
inline

Deletes the next n bytes rounded to characters before or after the cursor.

This function deletes the currently selected text without storing it in the clipboard. To use the clipboard, you may call copy() first or copy_cuts() after this call.

Parameters
nnumber of bytes rounded to full characters and clamped to the buffer. A negative number will cut characters to the left of the cursor.
Returns
0 if no data was copied

◆ drawtext() [1/2]

void Fl_Input_::drawtext ( int  X,
int  Y,
int  W,
int  H 
)
protected

Draws the text in the passed bounding box.

If damage() & FL_DAMAGE_ALL is true, this assumes the area has already been erased to color(). Otherwise it does minimal update and erases the area itself.

Parameters
X,Y,W,Harea that must be redrawn

◆ drawtext() [2/2]

void Fl_Input_::drawtext ( int  X,
int  Y,
int  W,
int  H,
bool  draw_active 
)
protected

Draws the text in the passed bounding box.

This version of drawtext allows the user to control whether the widget is drawn as acitive, i.e. with the text cursor, or inactive. This is useful for compound widgets where the input should be shown as active when actually the container widget is the active one.

A caller should not draw the widget with active set if another text widget may indeed be the active widget.

Parameters
X,Y,W,Harea that must be redrawn
draw_activeif set, the cursor will be drawn, even if the widget is not active
See also
Fl_Input_::drawtext(int X, int Y, int W, int H)

◆ dvalue()

double Fl_Input_::dvalue ( ) const

Returns the widget text interpreted as a floating point number.

Returns
double precision floating point value
See also
Fl_Input_::ivalue()
Fl_Input_::value(double)

◆ handle_mouse()

void Fl_Input_::handle_mouse ( int  X,
int  Y,
int  ,
int  ,
int  drag = 0 
)
protected

Handles mouse clicks and mouse moves.

Todo:
Add comment and parameters

◆ handletext()

int Fl_Input_::handletext ( int  event,
int  X,
int  Y,
int  W,
int  H 
)
protected

Handles all kinds of text field related events.

This is called by derived classes.

Todo:
Add comment and parameters

◆ index()

unsigned int Fl_Input_::index ( int  i) const

Returns the character at index i.

This function returns the UTF-8 character at i as a ucs4 character code.

Parameters
[in]iindex into the value field
Returns
the character at index i

◆ input_type() [1/2]

int Fl_Input_::input_type ( ) const
inline

Gets the input field type.

Returns
the current input type

◆ input_type() [2/2]

void Fl_Input_::input_type ( int  t)
inline

Sets the input field type.

A redraw() is required to reformat the input field.

Parameters
[in]tnew input type

◆ insert()

int Fl_Input_::insert ( const char *  t,
int  l = 0 
)
inline

Inserts text at the cursor position.

This function inserts the string in t at the cursor position() and moves the new position and mark to the end of the inserted text.

Parameters
[in]ttext that will be inserted
[in]llength of text, or 0 if the string is terminated by nul.
Returns
0 if no text was inserted

◆ insert_position() [1/3]

int Fl_Input_::insert_position ( ) const
inline

Gets the position of the text cursor.

Returns
the cursor position as an index in the range 0..size()
See also
insert_position(int, int)

◆ insert_position() [2/3]

int Fl_Input_::insert_position ( int  p)
inline

Sets the cursor position and mark.

position(n) is the same as position(n, n).

Parameters
pnew index for cursor and mark
Returns
0 if no positions changed
See also
insert_position(int, int), insert_position(), mark(int)

◆ insert_position() [3/3]

int Fl_Input_::insert_position ( int  p,
int  m 
)

Sets the index for the cursor and mark.

The input widget maintains two pointers into the string. The position (p) is where the cursor is. The mark (m) is the other end of the selected text. If they are equal then there is no selection. Changing this does not affect the clipboard (use copy() to do that).

Changing these values causes a redraw(). The new values are bounds checked.

Parameters
pindex for the cursor position
mindex for the mark
Returns
0 if no positions changed
See also
position(int), position(), mark(int)

◆ ivalue()

int Fl_Input_::ivalue ( ) const

Returns the widget text interpreted as a signed integer.

Returns
signed integer value
See also
Fl_Input_::dvalue()
Fl_Input_::value(int)

◆ line_end()

int Fl_Input_::line_end ( int  i) const
protected

Finds the end of a line.

This call calculates the end of a line based on the given index i.

Parameters
[in]istarting index for the search
Returns
end of the line

◆ line_start()

int Fl_Input_::line_start ( int  i) const
protected

Finds the start of a line.

This call calculates the start of a line based on the given index i.

Parameters
[in]istarting index for the search
Returns
start of the line

◆ mark() [1/2]

int Fl_Input_::mark ( ) const
inline

Gets the current selection mark.

Returns
index into the text

◆ mark() [2/2]

int Fl_Input_::mark ( int  m)
inline

Sets the current selection mark.

mark(n) is the same as insert_position(insert_position(),n).

Parameters
mnew index of the mark
Returns
0 if the mark did not change
See also
insert_position(), insert_position(int, int)

◆ maximum_size() [1/2]

int Fl_Input_::maximum_size ( ) const
inline

Gets the maximum length of the input field in characters.

See also
maximum_size(int).

◆ maximum_size() [2/2]

void Fl_Input_::maximum_size ( int  m)
inline

Sets the maximum length of the input field in characters.

This limits the number of characters that can be inserted in the widget.

Since FLTK 1.3 this is different than the buffer size, since one character can be more than one byte in UTF-8 encoding. In FLTK 1.1 this was the same (one byte = one character).

◆ position() [1/3]

int Fl_Input_::position ( ) const
inline
Deprecated:
"in 1.4.0 - use insert_position() instead"

◆ position() [2/3]

int Fl_Input_::position ( int  p)
inline
Deprecated:
"in 1.4.0 - use insert_position(p) instead"

◆ position() [3/3]

int Fl_Input_::position ( int  p,
int  m 
)
inline
Deprecated:
"in 1.4.0 - use insert_position(p, m) or Fl_Widget::position(x, y) instead"

◆ readonly() [1/2]

int Fl_Input_::readonly ( ) const
inline

Gets the read-only state of the input field.

Returns
non-zero if this widget is read-only

◆ readonly() [2/2]

void Fl_Input_::readonly ( int  b)
inline

Sets the read-only state of the input field.

Parameters
[in]bif b is 0, the text in this widget can be edited by the user

◆ redo()

int Fl_Input_::redo ( )

Redo previous undo operation.

This call reapplies previously executed undo operations.

Returns
non-zero if any change was made.

◆ replace()

int Fl_Input_::replace ( int  b,
int  e,
const char *  text,
int  ilen = 0 
)

Deletes text from b to e and inserts the new string text.

All changes to the text buffer go through this function. It deletes the region between b and e (either one may be less or equal to the other), and then inserts the string text at that point and moves the mark() and position() to the end of the insertion. Does the callback if when() & FL_WHEN_CHANGED and there is a change.

Set b and e equal to not delete anything. Set text to NULL to not insert anything.

ilen can be zero or strlen(text), which saves a tiny bit of time if you happen to already know the length of the insertion, or can be used to insert a portion of a string. If ilen is zero, strlen(text) is used instead.

b and e are clamped to the 0..size() range, so it is safe to pass any values. b, e, and ilen are used as numbers of bytes (not characters), where b and e count from 0 to size() (end of buffer).

If b and/or e don't point to a valid UTF-8 character boundary, they are adjusted to the previous (b) or the next (e) valid UTF-8 character boundary, resp..

If the current number of characters in the buffer minus deleted characters plus inserted characters in text would overflow the number of allowed characters (maximum_size()), then only the first characters of the string are inserted, so that maximum_size() is not exceeded.

cut() and insert() are just inline functions that call replace().

Parameters
[in]bbeginning index of text to be deleted
[in]eending index of text to be deleted and insertion position
[in]textstring that will be inserted
[in]ilenlength of text or 0 for nul terminated strings
Returns
0 if nothing changed
Note
If text does not point to a valid UTF-8 character or includes invalid UTF-8 sequences, the text is inserted nevertheless (counting invalid UTF-8 bytes as one character each).

◆ resize()

void Fl_Input_::resize ( int  X,
int  Y,
int  W,
int  H 
)
virtual

Changes the size of the widget.

This call updates the text layout so that the cursor is visible.

Parameters
[in]X,Y,W,Hnew size of the widget
See also
Fl_Widget::resize(int, int, int, int)

Reimplemented from Fl_Widget.

◆ shortcut() [1/2]

int Fl_Input_::shortcut ( ) const
inline

Return the shortcut key associated with this widget.

Returns
shortcut keystroke
See also
Fl_Button::shortcut()

◆ shortcut() [2/2]

void Fl_Input_::shortcut ( int  s)
inline

Sets the shortcut key associated with this widget.

Pressing the shortcut key gives text editing focus to this widget.

Parameters
[in]snew shortcut keystroke
See also
Fl_Button::shortcut()

◆ size() [1/2]

int Fl_Input_::size ( ) const
inline

Returns the number of bytes in value().

This may be greater than strlen(value()) if there are nul characters in the text.

Returns
number of bytes in the text

◆ size() [2/2]

void Fl_Input_::size ( int  W,
int  H 
)
inline

Sets the width and height of this widget.

Parameters
[in]W,Hnew width and height
See also
Fl_Widget::size(int, int)

◆ static_value() [1/2]

int Fl_Input_::static_value ( const char *  str)

Changes the widget text.

This function changes the text and sets the mark and the point to the end of it. The string is not copied. If the user edits the string it is copied to the internal buffer then. This can save a great deal of time and memory if your program is rapidly changing the values of text fields, but this will only work if the passed string remains unchanged until either the Fl_Input is destroyed or value() is called again.

Parameters
[in]strthe new text
Returns
non-zero if the new value is different than the current one

◆ static_value() [2/2]

int Fl_Input_::static_value ( const char *  str,
int  len 
)

Changes the widget text.

This function changes the text and sets the mark and the point to the end of it. The string is not copied. If the user edits the string it is copied to the internal buffer then. This can save a great deal of time and memory if your program is rapidly changing the values of text fields, but this will only work if the passed string remains unchanged until either the Fl_Input is destroyed or value() is called again.

You can use the len parameter to directly set the length if you know it already or want to put nul characters in the text.

Parameters
[in]strthe new text
[in]lenthe length of the new text
Returns
non-zero if the new value is different than the current one

◆ tab_nav() [1/2]

int Fl_Input_::tab_nav ( ) const
inline

Gets whether the Tab key causes focus navigation in multiline input fields or not.

If enabled (default), hitting Tab causes focus navigation to the next widget.

If disabled, hitting Tab inserts a tab character into the text field.

Returns
1 if Tab advances focus (default), 0 if Tab inserts tab characters.
See also
tab_nav(int), Fl::OPTION_ARROW_FOCUS.

◆ tab_nav() [2/2]

void Fl_Input_::tab_nav ( int  val)
inline

Sets whether the Tab key does focus navigation, or inserts tab characters into Fl_Multiline_Input.

By default this flag is enabled to provide the 'normal' behavior most users expect; Tab navigates focus to the next widget. To inserting an actual Tab character, users can use Ctrl-I or copy/paste.

Disabling this flag gives the old FLTK behavior where Tab inserts a tab character into the text field, in which case only the mouse can be used to navigate to the next field.

History: This flag was provided for backwards support of FLTK's old 1.1.x behavior where Tab inserts a tab character instead of navigating focus to the next widget. This behavior was unique to Fl_Multiline_Input. With the advent of Fl_Text_Editor, this old behavior has been deprecated.

Parameters
[in]valIf val is 1, Tab advances focus (default).
If val is 0, Tab inserts a tab character (old FLTK behavior).
See also
tab_nav(), Fl::OPTION_ARROW_FOCUS.

◆ textcolor() [1/2]

Fl_Color Fl_Input_::textcolor ( ) const
inline

Gets the color of the text in the input field.

Returns
the text color
See also
textcolor(Fl_Color)

◆ textcolor() [2/2]

void Fl_Input_::textcolor ( Fl_Color  n)
inline

Sets the color of the text in the input field.

The text color defaults to FL_FOREGROUND_COLOR.

Parameters
[in]nnew text color
See also
textcolor()

◆ textfont() [1/2]

Fl_Font Fl_Input_::textfont ( ) const
inline

Gets the font of the text in the input field.

Returns
the current Fl_Font index

◆ textfont() [2/2]

void Fl_Input_::textfont ( Fl_Font  s)
inline

Sets the font of the text in the input field.

The text font defaults to FL_HELVETICA.

Parameters
[in]sthe new text font

◆ textsize() [1/2]

Fl_Fontsize Fl_Input_::textsize ( ) const
inline

Gets the size of the text in the input field.

Returns
the text height in pixels

◆ textsize() [2/2]

void Fl_Input_::textsize ( Fl_Fontsize  s)
inline

Sets the size of the text in the input field.

The text height defaults to FL_NORMAL_SIZE.

Parameters
[in]sthe new font height in pixel units

◆ undo()

int Fl_Input_::undo ( )

Undoes previous changes to the text buffer.

This call undoes a number of previous calls to replace().

Returns
non-zero if any change was made.

◆ up_down_position()

int Fl_Input_::up_down_position ( int  i,
int  keepmark = 0 
)
protected

Moves the cursor to the column given by up_down_pos.

This function is helpful when implementing up and down cursor movement. It moves the cursor from the beginning of a line to the column indicated by the global variable up_down_pos in pixel units.

Parameters
[in]iindex into the beginning of a line of text
[in]keepmarkif set, move only the cursor, but not the mark
Returns
index to new cursor position

◆ value() [1/5]

const char * Fl_Input_::value ( ) const
inline

Returns the text displayed in the widget.

This function returns the current value, which is a pointer to the internal buffer and is valid only until the next event is handled.

Returns
pointer to an internal buffer - do not free() this
See also
Fl_Input_::value(const char*)

◆ value() [2/5]

int Fl_Input_::value ( const char *  str)

Changes the widget text.

This function changes the text and sets the mark and the point to the end of it. The string is copied to the internal buffer. Passing NULL is the same as "".

Parameters
[in]strthe new text
Returns
non-zero if the new value is different than the current one
See also
Fl_Input_::value(const char* str, int len), Fl_Input_::value()

◆ value() [3/5]

int Fl_Input_::value ( const char *  str,
int  len 
)

Changes the widget text.

This function changes the text and sets the mark and the point to the end of it. The string is copied to the internal buffer. Passing NULL is the same as "".

You can use the length parameter to directly set the length if you know it already or want to put nul characters in the text.

Parameters
[in]strthe new text
[in]lenthe length of the new text
Returns
non-zero if the new value is different than the current one
See also
Fl_Input_::value(const char* str), Fl_Input_::value()

◆ value() [4/5]

int Fl_Input_::value ( double  v)

Changes the widget text to a floating point number ("%g").

Parameters
[in]vthe new value
Returns
non-zero if the new value is different than the current one
See also
Fl_Input_::value(const char* str), Fl_Input_::ivalue()

◆ value() [5/5]

int Fl_Input_::value ( int  v)

Changes the widget text to a signed integer number.

Parameters
[in]vthe new value
Returns
non-zero if the new value is different than the current one
See also
Fl_Input_::value(const char* str), Fl_Input_::ivalue()

◆ word_end()

int Fl_Input_::word_end ( int  i) const
protected

Finds the end of a word.

Returns the index after the last byte of a word. If the index is already at the end of a word, it will find the end of the following word, so if you call it repeatedly you will move forwards to the end of the text.

Note that this is inconsistent with line_end().

Parameters
[in]istarting index for the search
Returns
end of the word

◆ word_start()

int Fl_Input_::word_start ( int  i) const
protected

Finds the start of a word.

Returns the index of the first byte of a word. If the index is already at the beginning of a word, it will find the beginning of the previous word, so if you call it repeatedly you will move backwards to the beginning of the text.

Note that this is inconsistent with line_start().

Parameters
[in]istarting index for the search
Returns
start of the word, or previous word

◆ wrap() [1/2]

int Fl_Input_::wrap ( ) const
inline

Gets the word wrapping state of the input field.

Word wrap is only functional with multi-line input fields.

◆ wrap() [2/2]

void Fl_Input_::wrap ( int  b)
inline

Sets the word wrapping state of the input field.

Word wrap is only functional with multi-line input fields.


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