|
Packit Service |
9ac617 |
//
|
|
Packit Service |
9ac617 |
// "$Id: Fl_Input.H 8864 2011-07-19 04:49:30Z greg.ercolano $"
|
|
Packit Service |
9ac617 |
//
|
|
Packit Service |
9ac617 |
// Input header file for the Fast Light Tool Kit (FLTK).
|
|
Packit Service |
9ac617 |
//
|
|
Packit Service |
9ac617 |
// Copyright 1998-2010 by Bill Spitzak and others.
|
|
Packit Service |
9ac617 |
//
|
|
Packit Service |
9ac617 |
// This library is free software. Distribution and use rights are outlined in
|
|
Packit Service |
9ac617 |
// the file "COPYING" which should have been included with this file. If this
|
|
Packit Service |
9ac617 |
// file is missing or damaged, see the license at:
|
|
Packit Service |
9ac617 |
//
|
|
Packit Service |
9ac617 |
// http://www.fltk.org/COPYING.php
|
|
Packit Service |
9ac617 |
//
|
|
Packit Service |
9ac617 |
// Please report all bugs and problems on the following page:
|
|
Packit Service |
9ac617 |
//
|
|
Packit Service |
9ac617 |
// http://www.fltk.org/str.php
|
|
Packit Service |
9ac617 |
//
|
|
Packit Service |
9ac617 |
|
|
Packit Service |
9ac617 |
/* \file
|
|
Packit Service |
9ac617 |
Fl_Input widget . */
|
|
Packit Service |
9ac617 |
|
|
Packit Service |
9ac617 |
#ifndef Fl_Input_H
|
|
Packit Service |
9ac617 |
#define Fl_Input_H
|
|
Packit Service |
9ac617 |
|
|
Packit Service |
9ac617 |
#include "Fl_Input_.H"
|
|
Packit Service |
9ac617 |
|
|
Packit Service |
9ac617 |
/**
|
|
Packit Service |
9ac617 |
This is the FLTK text input widget. It displays a single line
|
|
Packit Service |
9ac617 |
of text and lets the user edit it. Normally it is drawn with an
|
|
Packit Service |
9ac617 |
inset box and a white background. The text may contain any
|
|
Packit Service |
9ac617 |
characters, and will correctly display any UTF text, using
|
|
Packit Service |
9ac617 |
^X notation for unprintable control characters. It assumes the
|
|
Packit Service |
9ac617 |
font can draw any characters of the used scripts, which is true
|
|
Packit Service |
9ac617 |
for standard fonts under MSWindows and Mac OS X.
|
|
Packit Service |
9ac617 |
Characters can be input using the keyboard or the character palette/map.
|
|
Packit Service |
9ac617 |
Character composition is done using dead keys and/or a compose
|
|
Packit Service |
9ac617 |
key as defined by the operating system.
|
|
Packit Service |
9ac617 |
|
|
Packit Service |
9ac617 |
|
|
Packit Service |
9ac617 |
<CAPTION ALIGN=TOP>Fl_Input keyboard and mouse bindings.</CAPTION>
|
|
Packit Service |
9ac617 |
|
|
Packit Service |
9ac617 |
Mouse button 1
|
|
Packit Service |
9ac617 |
|
|
Packit Service |
9ac617 |
Moves the cursor to this point.
|
|
Packit Service |
9ac617 |
Drag selects characters.
|
|
Packit Service |
9ac617 |
Double click selects words.
|
|
Packit Service |
9ac617 |
Triple click selects all line.
|
|
Packit Service |
9ac617 |
Shift+click extends the selection.
|
|
Packit Service |
9ac617 |
When you select text it is automatically copied to the selection buffer.
|
|
Packit Service |
9ac617 |
|
|
Packit Service |
9ac617 |
Mouse button 2
|
|
Packit Service |
9ac617 |
|
|
Packit Service |
9ac617 |
Insert the selection buffer at the point clicked.
|
|
Packit Service |
9ac617 |
You can also select a region and replace it with the selection buffer
|
|
Packit Service |
9ac617 |
by selecting the region with mouse button 2.
|
|
Packit Service |
9ac617 |
|
|
Packit Service |
9ac617 |
Mouse button 3
|
|
Packit Service |
9ac617 |
|
|
Packit Service |
9ac617 |
Currently acts like button 1.
|
|
Packit Service |
9ac617 |
|
|
Packit Service |
9ac617 |
Backspace
|
|
Packit Service |
9ac617 |
|
|
Packit Service |
9ac617 |
Deletes one character to the left, or deletes the selected region.
|
|
Packit Service |
9ac617 |
|
|
Packit Service |
9ac617 |
Delete
|
|
Packit Service |
9ac617 |
|
|
Packit Service |
9ac617 |
Deletes one character to the right, or deletes the selected region.
|
|
Packit Service |
9ac617 |
Combine with Shift for equivalent of ^X (copy+cut).
|
|
Packit Service |
9ac617 |
|
|
Packit Service |
9ac617 |
Enter
|
|
Packit Service |
9ac617 |
|
|
Packit Service |
9ac617 |
May cause the callback, see when().
|
|
Packit Service |
9ac617 |
|
|
Packit Service |
9ac617 |
|
|
Packit Service |
9ac617 |
|
|
Packit Service |
9ac617 |
|
|
Packit Service |
9ac617 |
|
|
Packit Service |
9ac617 |
<CAPTION ALIGN=TOP>Fl_Input platform specific keyboard bindings.</CAPTION>
|
|
Packit Service |
9ac617 |
|
|
Packit Service |
9ac617 |
Windows/Linux
|
|
Packit Service |
9ac617 |
Mac
|
|
Packit Service |
9ac617 |
Function
|
|
Packit Service |
9ac617 |
|
|
Packit Service |
9ac617 |
|
|
Packit Service |
9ac617 |
^A
|
|
Packit Service |
9ac617 |
Command-A
|
|
Packit Service |
9ac617 |
|
|
Packit Service |
9ac617 |
Selects all text in the widget.
|
|
Packit Service |
9ac617 |
|
|
Packit Service |
9ac617 |
|
|
Packit Service |
9ac617 |
^C
|
|
Packit Service |
9ac617 |
Command-C
|
|
Packit Service |
9ac617 |
|
|
Packit Service |
9ac617 |
Copy the current selection to the clipboard.
|
|
Packit Service |
9ac617 |
|
|
Packit Service |
9ac617 |
|
|
Packit Service |
9ac617 |
^I
|
|
Packit Service |
9ac617 |
^I
|
|
Packit Service |
9ac617 |
|
|
Packit Service |
9ac617 |
Insert a tab.
|
|
Packit Service |
9ac617 |
|
|
Packit Service |
9ac617 |
|
|
Packit Service |
9ac617 |
^J
|
|
Packit Service |
9ac617 |
^J
|
|
Packit Service |
9ac617 |
|
|
Packit Service |
9ac617 |
Insert a Line Feed.
|
|
Packit Service |
9ac617 |
(Similar to literal 'Enter' character)
|
|
Packit Service |
9ac617 |
|
|
Packit Service |
9ac617 |
|
|
Packit Service |
9ac617 |
^L
|
|
Packit Service |
9ac617 |
^L
|
|
Packit Service |
9ac617 |
|
|
Packit Service |
9ac617 |
Insert a Form Feed.
|
|
Packit Service |
9ac617 |
|
|
Packit Service |
9ac617 |
|
|
Packit Service |
9ac617 |
^M
|
|
Packit Service |
9ac617 |
^M
|
|
Packit Service |
9ac617 |
|
|
Packit Service |
9ac617 |
Insert a Carriage Return.
|
|
Packit Service |
9ac617 |
|
|
Packit Service |
9ac617 |
|
|
Packit Service |
9ac617 |
^V, Shift-Insert
|
|
Packit Service |
9ac617 |
Command-V
|
|
Packit Service |
9ac617 |
|
|
Packit Service |
9ac617 |
Paste the clipboard.
|
|
Packit Service |
9ac617 |
(Macs keyboards don't have "Insert" keys,
|
|
Packit Service |
9ac617 |
but if they did, Shift-Insert would work)
|
|
Packit Service |
9ac617 |
|
|
Packit Service |
9ac617 |
|
|
Packit Service |
9ac617 |
^X, Shift-Delete
|
|
Packit Service |
9ac617 |
Command-X, Shift-Delete
|
|
Packit Service |
9ac617 |
|
|
Packit Service |
9ac617 |
Cut.
|
|
Packit Service |
9ac617 |
Copy the selection to the clipboard and delete it.
|
|
Packit Service |
9ac617 |
(If there's no selection, Shift-Delete acts like Delete)
|
|
Packit Service |
9ac617 |
|
|
Packit Service |
9ac617 |
|
|
Packit Service |
9ac617 |
^Z
|
|
Packit Service |
9ac617 |
Command-Z
|
|
Packit Service |
9ac617 |
|
|
Packit Service |
9ac617 |
Undo.
|
|
Packit Service |
9ac617 |
This is a single-level undo mechanism, but all adjacent
|
|
Packit Service |
9ac617 |
deletions and insertions are concatenated into a single "undo".
|
|
Packit Service |
9ac617 |
Often this will undo a lot more than you expected.
|
|
Packit Service |
9ac617 |
|
|
Packit Service |
9ac617 |
|
|
Packit Service |
9ac617 |
Shift-^Z
|
|
Packit Service |
9ac617 |
Shift-Command-Z
|
|
Packit Service |
9ac617 |
|
|
Packit Service |
9ac617 |
Redo.
|
|
Packit Service |
9ac617 |
Currently same behavior as ^Z.
|
|
Packit Service |
9ac617 |
Reserved for future multilevel undo/redo.
|
|
Packit Service |
9ac617 |
|
|
Packit Service |
9ac617 |
|
|
Packit Service |
9ac617 |
Arrow Keys
|
|
Packit Service |
9ac617 |
Arrow Keys
|
|
Packit Service |
9ac617 |
|
|
Packit Service |
9ac617 |
Standard cursor movement.
|
|
Packit Service |
9ac617 |
Can be combined with Shift to extend selection.
|
|
Packit Service |
9ac617 |
|
|
Packit Service |
9ac617 |
|
|
Packit Service |
9ac617 |
Home
|
|
Packit Service |
9ac617 |
Command-Up, Command-Left
|
|
Packit Service |
9ac617 |
|
|
Packit Service |
9ac617 |
Move to start of line.
|
|
Packit Service |
9ac617 |
Can be combined with Shift to extend selection.
|
|
Packit Service |
9ac617 |
|
|
Packit Service |
9ac617 |
|
|
Packit Service |
9ac617 |
End
|
|
Packit Service |
9ac617 |
Command-Down, Command-Right
|
|
Packit Service |
9ac617 |
|
|
Packit Service |
9ac617 |
Move to end of line.
|
|
Packit Service |
9ac617 |
Can be combined with Shift to extend selection.
|
|
Packit Service |
9ac617 |
|
|
Packit Service |
9ac617 |
|
|
Packit Service |
9ac617 |
Ctrl-Home
|
|
Packit Service |
9ac617 |
Command-Up, Command-PgUp, Ctrl-Left
|
|
Packit Service |
9ac617 |
|
|
Packit Service |
9ac617 |
Move to top of document/field.
|
|
Packit Service |
9ac617 |
In single line input, moves to start of line.
|
|
Packit Service |
9ac617 |
In multiline input, moves to start of top line.
|
|
Packit Service |
9ac617 |
Can be combined with Shift to extend selection.
|
|
Packit Service |
9ac617 |
|
|
Packit Service |
9ac617 |
|
|
Packit Service |
9ac617 |
Ctrl-End
|
|
Packit Service |
9ac617 |
Command-End, Command-PgDn, Ctrl-Right
|
|
Packit Service |
9ac617 |
|
|
Packit Service |
9ac617 |
Move to bottom of document/field.
|
|
Packit Service |
9ac617 |
In single line input, moves to end of line.
|
|
Packit Service |
9ac617 |
In multiline input, moves to end of last line.
|
|
Packit Service |
9ac617 |
Can be combined with Shift to extend selection.
|
|
Packit Service |
9ac617 |
|
|
Packit Service |
9ac617 |
|
|
Packit Service |
9ac617 |
Ctrl-Left
|
|
Packit Service |
9ac617 |
Alt-Left
|
|
Packit Service |
9ac617 |
|
|
Packit Service |
9ac617 |
Word left.
|
|
Packit Service |
9ac617 |
Can be combined with Shift to extend selection.
|
|
Packit Service |
9ac617 |
|
|
Packit Service |
9ac617 |
|
|
Packit Service |
9ac617 |
Ctrl-Right
|
|
Packit Service |
9ac617 |
Alt-Right
|
|
Packit Service |
9ac617 |
|
|
Packit Service |
9ac617 |
Word right.
|
|
Packit Service |
9ac617 |
Can be combined with Shift to extend selection.
|
|
Packit Service |
9ac617 |
|
|
Packit Service |
9ac617 |
|
|
Packit Service |
9ac617 |
Ctrl-Backspace
|
|
Packit Service |
9ac617 |
Alt-Backspace
|
|
Packit Service |
9ac617 |
|
|
Packit Service |
9ac617 |
Delete word left.
|
|
Packit Service |
9ac617 |
|
|
Packit Service |
9ac617 |
|
|
Packit Service |
9ac617 |
Ctrl-Delete
|
|
Packit Service |
9ac617 |
Alt-Delete
|
|
Packit Service |
9ac617 |
|
|
Packit Service |
9ac617 |
Delete word right.
|
|
Packit Service |
9ac617 |
|
|
Packit Service |
9ac617 |
|
|
Packit Service |
9ac617 |
*/
|
|
Packit Service |
9ac617 |
class FL_EXPORT Fl_Input : public Fl_Input_ {
|
|
Packit Service |
9ac617 |
int handle_key();
|
|
Packit Service |
9ac617 |
int shift_position(int p);
|
|
Packit Service |
9ac617 |
int shift_up_down_position(int p);
|
|
Packit Service |
9ac617 |
void handle_mouse(int keepmark=0);
|
|
Packit Service |
9ac617 |
|
|
Packit Service |
9ac617 |
// Private keyboard functions
|
|
Packit Service |
9ac617 |
int kf_lines_up(int repeat_num);
|
|
Packit Service |
9ac617 |
int kf_lines_down(int repeat_num);
|
|
Packit Service |
9ac617 |
int kf_page_up();
|
|
Packit Service |
9ac617 |
int kf_page_down();
|
|
Packit Service |
9ac617 |
int kf_insert_toggle();
|
|
Packit Service |
9ac617 |
int kf_delete_word_right();
|
|
Packit Service |
9ac617 |
int kf_delete_word_left();
|
|
Packit Service |
9ac617 |
int kf_delete_sol();
|
|
Packit Service |
9ac617 |
int kf_delete_eol();
|
|
Packit Service |
9ac617 |
int kf_delete_char_right();
|
|
Packit Service |
9ac617 |
int kf_delete_char_left();
|
|
Packit Service |
9ac617 |
int kf_move_sol();
|
|
Packit Service |
9ac617 |
int kf_move_eol();
|
|
Packit Service |
9ac617 |
int kf_clear_eol();
|
|
Packit Service |
9ac617 |
int kf_move_char_left();
|
|
Packit Service |
9ac617 |
int kf_move_char_right();
|
|
Packit Service |
9ac617 |
int kf_move_word_left();
|
|
Packit Service |
9ac617 |
int kf_move_word_right();
|
|
Packit Service |
9ac617 |
int kf_move_up_and_sol();
|
|
Packit Service |
9ac617 |
int kf_move_down_and_eol();
|
|
Packit Service |
9ac617 |
int kf_top();
|
|
Packit Service |
9ac617 |
int kf_bottom();
|
|
Packit Service |
9ac617 |
int kf_select_all();
|
|
Packit Service |
9ac617 |
int kf_undo();
|
|
Packit Service |
9ac617 |
int kf_redo();
|
|
Packit Service |
9ac617 |
int kf_copy();
|
|
Packit Service |
9ac617 |
int kf_paste();
|
|
Packit Service |
9ac617 |
int kf_copy_cut();
|
|
Packit Service |
9ac617 |
|
|
Packit Service |
9ac617 |
protected:
|
|
Packit Service |
9ac617 |
void draw();
|
|
Packit Service |
9ac617 |
public:
|
|
Packit Service |
9ac617 |
int handle(int);
|
|
Packit Service |
9ac617 |
Fl_Input(int,int,int,int,const char * = 0);
|
|
Packit Service |
9ac617 |
};
|
|
Packit Service |
9ac617 |
|
|
Packit Service |
9ac617 |
#endif
|
|
Packit Service |
9ac617 |
|
|
Packit Service |
9ac617 |
//
|
|
Packit Service |
9ac617 |
// End of "$Id: Fl_Input.H 8864 2011-07-19 04:49:30Z greg.ercolano $".
|
|
Packit Service |
9ac617 |
//
|