666d041224
eat Alt+letter key combinations. git-svn-id: file:///fltk/svn/fltk/branches/branch-1.0@1009 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
334 lines
15 KiB
HTML
334 lines
15 KiB
HTML
<HTML><BODY>
|
||
<HR break>
|
||
<H2><A name=Fl_Input>class Fl_Input</A></H2>
|
||
<HR>
|
||
<H3>Class Hierarchy</H3>
|
||
<UL>
|
||
<PRE>
|
||
<A href=Fl_Input_.html#Fl_Input_>Fl_Input_</A>
|
||
|
|
||
+----<B>Fl_Input</B>
|
||
|
|
||
+----<A href=Fl_Float_Input.html#Fl_Float_Input>Fl_Float_Input</A>, <A href=Fl_Int_Input.html#Fl_Int_Input>Fl_Int_Input</A>,
|
||
<A href=Fl_Multiline_Input.html#Fl_Multiline_Input>Fl_Multiline_Input</A>, <A href=Fl_Secret_Input.html#Fl_Secret_Input>Fl_Secret_Input</A>
|
||
</PRE>
|
||
</UL>
|
||
<H3>Include Files</H3>
|
||
<UL>
|
||
<PRE>
|
||
#include <FL/Fl_Input.H>
|
||
</PRE>
|
||
</UL>
|
||
<H3>Description</H3>
|
||
This is the FLTK text input widget. It displays a single line of text
|
||
and lets the user edit it. Normally it is drawn with an inset box and
|
||
a white background. The text may contain any characters (even 0), and
|
||
will correctly display anything, using ^X notation for unprintable
|
||
control characters and \nnn notation for unprintable characters with
|
||
the high bit set. It assummes the font can draw any characters in the
|
||
ISO-8859-1 character set.
|
||
|
||
<p>
|
||
<CENTER><TABLE border=1 WIDTH=90%>
|
||
|
||
<TR><TD WIDTH=200><B>Mouse button 1</B></TD><TD>Moves the cursor to
|
||
this point. Drag selects characters. Double click selects words.
|
||
Triple click selects all text. Shift+click extends the selection.
|
||
When you select text it is automatically copied to the clipboard.
|
||
</TD></TR>
|
||
|
||
<TR><TD><B>Mouse button 2</B></TD><TD>Insert the clipboard at
|
||
the point clicked. You can also select a region and replace it with the
|
||
clipboard by selecting the region with mouse button 2.
|
||
</TD></TR>
|
||
|
||
<TR><TD><B>Mouse button 3</B></TD><TD>Currently acts like button 1.</TD></TR>
|
||
|
||
<TR><TD><B>Backspace</B></TD><TD>Deletes one character to the left, or
|
||
deletes the selected region.</TD></TR>
|
||
<TR><TD><B>Enter</B></TD><TD>May cause the callback, see when().</TD></TR>
|
||
<TR><TD><B>^A or Home</B></TD><TD>Go to start of line.</TD></TR>
|
||
<TR><TD><B>^B or Left</B></TD><TD>Move left</TD></TR>
|
||
<TR><TD><B>^C</B></TD><TD>Copy the selection to the clipboard</TD></TR>
|
||
<TR><TD><B>^D or Delete</B></TD><TD>Deletes one character to the right
|
||
or deletes the selected region.</TD></TR>
|
||
<TR><TD><B>^E or End</B></TD><TD>Go to the end of line.</TD></TR>
|
||
<TR><TD><B>^F or Right</B></TD><TD>Move right</TD></TR>
|
||
<TR><TD><B>^K</B></TD><TD>Delete to the end of line (next \n character)
|
||
or deletes a single \n character. These deletions are all concatenated
|
||
into the clipboard.</TD></TR>
|
||
<TR><TD><B>^N or Down</B></TD><TD>Move down (for Fl_Multiline_Input
|
||
only, otherwise it moves to the next input field).</TD></TR>
|
||
<TR><TD><B>^P or Up</B></TD><TD>Move up (for Fl_Multiline_Input only,
|
||
otherwise it moves to the previous input field).</TD></TR>
|
||
<TR><TD><B>^U</B></TD><TD>Delete everything.</TD></TR>
|
||
<TR><TD><B>^V or ^Y</B></TD><TD>Paste the clipboard</TD></TR>
|
||
<TR><TD><B>^X or ^W</B></TD><TD>Copy the region to the clipboard and
|
||
delete it.</TD></TR>
|
||
<TR><TD><B>^Z or ^_</B></TD><TD>Undo. This is a single-level undo
|
||
mechanism, but all adjacent deletions and insertions are concatenated
|
||
into a single "undo". Often this will undo a lot more than you
|
||
expected.</TD></TR>
|
||
<TR><TD><B>Shift+move</B></TD><TD>Move the cursor but also extend the
|
||
selection.</TD></TR>
|
||
|
||
<TR><TD><B>RightCtrl or
|
||
<BR>Compose</B></TD><TD><a name=compose>
|
||
Start a <A href="events.html#compose">compose-character</A>
|
||
sequence. The next one or two keys typed define the character to insert:
|
||
|
||
<br><center><table border=1>
|
||
<tr>
|
||
<th>Keys</th><th>Char</th>
|
||
<th>Keys</th><th>Char</th>
|
||
<th>Keys</th><th>Char</th>
|
||
<th>Keys</th><th>Char</th>
|
||
<th>Keys</th><th>Char</th>
|
||
<th>Keys</th><th>Char</th>
|
||
|
||
</tr><tr>
|
||
<td align=center><small>space</small></td><td align=center><small>nbsp</small></td>
|
||
<td align=center><TT>*</tt></td><td align=center><EFBFBD></td>
|
||
<td align=center><TT>`A</tt></td><td align=center><EFBFBD></td>
|
||
<td align=center><TT>D-</tt></td><td align=center><EFBFBD></td>
|
||
<td align=center><TT>`a</tt></td><td align=center><EFBFBD></td>
|
||
<td align=center><TT>d-</tt></td><td align=center><EFBFBD>
|
||
</tr><tr>
|
||
<td align=center><TT>!</tt></td><td align=center><EFBFBD></td>
|
||
<td align=center><TT>+-</tt></td><td align=center><EFBFBD></td>
|
||
<td align=center><TT>'A</tt></td><td align=center><EFBFBD></td>
|
||
<td align=center><TT>~N</tt></td><td align=center><EFBFBD></td>
|
||
<td align=center><TT>'a</tt></td><td align=center><EFBFBD></td>
|
||
<td align=center><TT>~n</tt></td><td align=center><EFBFBD>
|
||
</tr><tr>
|
||
<td align=center><TT>%</tt></td><td align=center><EFBFBD></td>
|
||
<td align=center><TT>2</tt></td><td align=center><EFBFBD></td>
|
||
<td align=center><TT>A^</tt></td><td align=center><EFBFBD></td>
|
||
<td align=center><TT>`O</tt></td><td align=center><EFBFBD></td>
|
||
<td align=center><TT>^a</tt></td><td align=center><EFBFBD></td>
|
||
<td align=center><TT>`o</tt></td><td align=center><EFBFBD>
|
||
</tr><tr>
|
||
<td align=center><TT>#</tt></td><td align=center><EFBFBD></td>
|
||
<td align=center><TT>3</tt></td><td align=center><EFBFBD></td>
|
||
<td align=center><TT>~A</tt></td><td align=center><EFBFBD></td>
|
||
<td align=center><TT>'O</tt></td><td align=center><EFBFBD></td>
|
||
<td align=center><TT>~a</tt></td><td align=center><EFBFBD></td>
|
||
<td align=center><TT>'o</tt></td><td align=center><EFBFBD>
|
||
</tr><tr>
|
||
<td align=center><TT>$</tt></td><td align=center><EFBFBD></td>
|
||
<td align=center><TT>'</tt></td><td align=center><EFBFBD></td>
|
||
<td align=center><TT>:A</tt></td><td align=center><EFBFBD></td>
|
||
<td align=center><TT>^O</tt></td><td align=center><EFBFBD></td>
|
||
<td align=center><TT>:a</tt></td><td align=center><EFBFBD></td>
|
||
<td align=center><TT>^o</tt></td><td align=center><EFBFBD>
|
||
</tr><tr>
|
||
<td align=center><TT>y=</tt></td><td align=center><EFBFBD></td>
|
||
<td align=center><TT>u</tt></td><td align=center><EFBFBD></td>
|
||
<td align=center><TT>*A</tt></td><td align=center><EFBFBD></td>
|
||
<td align=center><TT>~O</tt></td><td align=center><EFBFBD></td>
|
||
<td align=center><TT>*a</tt></td><td align=center><EFBFBD></td>
|
||
<td align=center><TT>~o</tt></td><td align=center><EFBFBD>
|
||
</tr><tr>
|
||
<td align=center><TT>|</tt></td><td align=center><EFBFBD></td>
|
||
<td align=center><TT>p</tt></td><td align=center><EFBFBD></td>
|
||
<td align=center><TT>AE</tt></td><td align=center><EFBFBD></td>
|
||
<td align=center><TT>:O</tt></td><td align=center><EFBFBD></td>
|
||
<td align=center><TT>ae</tt></td><td align=center><EFBFBD></td>
|
||
<td align=center><TT>:o</tt></td><td align=center><EFBFBD>
|
||
</tr><tr>
|
||
<td align=center><TT>&</tt></td><td align=center><EFBFBD></td>
|
||
<td align=center><TT>.</tt></td><td align=center><EFBFBD></td>
|
||
<td align=center><TT>,C</tt></td><td align=center><EFBFBD></td>
|
||
<td align=center><TT>x</tt></td><td align=center><EFBFBD></td>
|
||
<td align=center><TT>,c</tt></td><td align=center><EFBFBD></td>
|
||
<td align=center><TT>-:</tt></td><td align=center><EFBFBD>
|
||
</tr><tr>
|
||
<td align=center><TT>:</tt></td><td align=center><EFBFBD></td>
|
||
<td align=center><TT>,</tt></td><td align=center><EFBFBD></td>
|
||
<td align=center><TT>E`</tt></td><td align=center><EFBFBD></td>
|
||
<td align=center><TT>O/</tt></td><td align=center><EFBFBD></td>
|
||
<td align=center><TT>`e</tt></td><td align=center><EFBFBD></td>
|
||
<td align=center><TT>o/</tt></td><td align=center><EFBFBD>
|
||
</tr><tr>
|
||
<td align=center><TT>c</tt></td><td align=center><EFBFBD></td>
|
||
<td align=center><TT>1</tt></td><td align=center><EFBFBD></td>
|
||
<td align=center><TT>'E</tt></td><td align=center><EFBFBD></td>
|
||
<td align=center><TT>`U</tt></td><td align=center><EFBFBD></td>
|
||
<td align=center><TT>'e</tt></td><td align=center><EFBFBD></td>
|
||
<td align=center><TT>`u</tt></td><td align=center><EFBFBD>
|
||
</tr><tr>
|
||
<td align=center><TT>a</tt></td><td align=center><EFBFBD></td>
|
||
<td align=center><TT>o</tt></td><td align=center><EFBFBD></td>
|
||
<td align=center><TT>^E</tt></td><td align=center><EFBFBD></td>
|
||
<td align=center><TT>'U</tt></td><td align=center><EFBFBD></td>
|
||
<td align=center><TT>^e</tt></td><td align=center><EFBFBD></td>
|
||
<td align=center><TT>'u</tt></td><td align=center><EFBFBD>
|
||
</tr><tr>
|
||
<td align=center><TT><<</tt></td><td align=center><EFBFBD></td>
|
||
<td align=center><TT>>></tt></td><td align=center><EFBFBD></td>
|
||
<td align=center><TT>:E</tt></td><td align=center><EFBFBD></td>
|
||
<td align=center><TT>^U</tt></td><td align=center><EFBFBD></td>
|
||
<td align=center><TT>:e</tt></td><td align=center><EFBFBD></td>
|
||
<td align=center><TT>^u</tt></td><td align=center><EFBFBD>
|
||
</tr><tr>
|
||
<td align=center><TT>~</tt></td><td align=center><EFBFBD></td>
|
||
<td align=center><TT>14</tt></td><td align=center><EFBFBD></td>
|
||
<td align=center><TT>`I</tt></td><td align=center><EFBFBD></td>
|
||
<td align=center><TT>:U</tt></td><td align=center><EFBFBD></td>
|
||
<td align=center><TT>`i</tt></td><td align=center><EFBFBD></td>
|
||
<td align=center><TT>:u</tt></td><td align=center><EFBFBD>
|
||
</tr><tr>
|
||
<td align=center><TT>-</tt></td><td align=center><EFBFBD></td>
|
||
<td align=center><TT>12</tt></td><td align=center><EFBFBD></td>
|
||
<td align=center><TT>'I</tt></td><td align=center><EFBFBD></td>
|
||
<td align=center><TT>'Y</tt></td><td align=center><EFBFBD></td>
|
||
<td align=center><TT>'i</tt></td><td align=center><EFBFBD></td>
|
||
<td align=center><TT>'y</tt></td><td align=center><EFBFBD>
|
||
</tr><tr>
|
||
<td align=center><TT>r</tt></td><td align=center><EFBFBD></td>
|
||
<td align=center><TT>34</tt></td><td align=center><EFBFBD></td>
|
||
<td align=center><TT>^I</tt></td><td align=center><EFBFBD></td>
|
||
<td align=center><TT>TH</tt></td><td align=center><EFBFBD></td>
|
||
<td align=center><TT>^i</tt></td><td align=center><EFBFBD></td>
|
||
<td align=center><TT>th</tt></td><td align=center><EFBFBD>
|
||
</tr><tr>
|
||
<td align=center><TT>_</tt></td><td align=center><EFBFBD></td>
|
||
<td align=center><TT>?</tt></td><td align=center><EFBFBD></td>
|
||
<td align=center><TT>:I</tt></td><td align=center><EFBFBD></td>
|
||
<td align=center><TT>ss</tt></td><td align=center><EFBFBD></td>
|
||
<td align=center><TT>:i</tt></td><td align=center><EFBFBD></td>
|
||
<td align=center><TT>:y</tt></td><td align=center><EFBFBD>
|
||
</table></center>
|
||
|
||
<p>For instance, to type "<22>" type [compose][a]['] or [compose]['][a].
|
||
|
||
<P>The character "nbsp" (non-breaking space) is typed by using
|
||
[compose][space].
|
||
|
||
<P>The single-character sequences may be followed by a space if
|
||
necessary to remove ambiguity. For instance, if you really want to
|
||
type "<22>~" rather than "<22>" you must type [compose][a][space][~].
|
||
|
||
<p>The same key may be used to "quote" control characters into the
|
||
text. If you need a <tt>^Q</tt> character you can get one by typing
|
||
[compose][Control+Q].
|
||
|
||
<p>X may have a key on the keyboard
|
||
defined as <tt>XK_Multi_key</tt>. If so this key may be used as well
|
||
as the right-hand control key. You can set this up with the program
|
||
<tt>xmodmap</tt>.
|
||
|
||
<p>If your keyboard is set to support a foreign language you should
|
||
also be able to type "dead key" prefix characters. On X you will
|
||
actually be able to see what dead key you typed, and if you then move
|
||
the cursor without completing the sequence the accent will remain
|
||
inserted.
|
||
</TABLE></CENTER>
|
||
<H3>Methods</H3>
|
||
<CENTER>
|
||
<TABLE width=90%>
|
||
<TR><TD align=left valign=top>
|
||
<UL>
|
||
<LI><A href=#Fl_Input.Fl_Input>Fl_Input</A></LI>
|
||
<LI><A href=#Fl_Input.~Fl_Input>~Fl_Input</A></LI>
|
||
<LI><A href=#Fl_Input.cursor_color>cursor_color</A></LI>
|
||
</UL>
|
||
</TD><TD align=left valign=top>
|
||
<UL>
|
||
<LI><A href=#Fl_Input.index>index</A></LI>
|
||
<LI><A href=#Fl_Input.size>size</A></LI>
|
||
</UL>
|
||
</TD><TD align=left valign=top>
|
||
<UL>
|
||
<LI><A href=#Fl_Input.static_value>static_value</A></LI>
|
||
<LI><A href=#Fl_Input.textcolor>textcolor</A></LI>
|
||
</UL>
|
||
</TD><TD align=left valign=top>
|
||
<UL>
|
||
<LI><A href=#Fl_Input.textfont>textfont</A></LI>
|
||
<LI><A href=#Fl_Input.textsize>textsize</A></LI>
|
||
</UL>
|
||
</TD><TD align=left valign=top>
|
||
<UL>
|
||
<LI><A href=#Fl_Input.value>value</A></LI>
|
||
<LI><A href=#Fl_Input.when>when</A></LI>
|
||
</UL>
|
||
</TD></TR>
|
||
</TABLE>
|
||
</CENTER>
|
||
<H4><A name=Fl_Input.Fl_Input>Fl_Input::Fl_Input(int x, int y, int w,
|
||
int h, const char *label = 0)</A></H4>
|
||
Creates a new <TT>Fl_Input</TT> widget using the given position, size,
|
||
and label string. The default boxtype is <TT>FL_DOWN_BOX</TT>.
|
||
<H4><A name=Fl_Input.~Fl_Input>virtual Fl_Input::~Fl_Input()</A></H4>
|
||
Destroys the widget and any value associated with it.
|
||
<H4><A name=Fl_Input.value>const char *Fl_Input::value() const
|
||
<BR> int Fl_Input::value(const char*)
|
||
<BR> int Fl_Input::value(const char*, int)</A></H4>
|
||
The first form returns the current value, which is a pointer to the
|
||
internal buffer and is valid only until the next event is handled.
|
||
<P>The second two forms change the text and set the mark and the point
|
||
to the end of it. The string is copied to the internal buffer. Passing <TT>
|
||
NULL</TT> is the same as "". This returns non-zero if the new value is
|
||
different than the current one. You can use the second version to
|
||
directly set the length if you know it already or want to put nul's in
|
||
the text. </P>
|
||
<H4><A name=Fl_Input.static_value>int Fl_Input::static_value(const
|
||
char*)
|
||
<BR> int Fl_Input::static_value(const char*, int)</A></H4>
|
||
Change the text and set the mark and the point to the end of it. The
|
||
string is <I>not</I> 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 <TT>Fl_Input</TT> is destroyed or <TT>value()</TT> is called
|
||
again.
|
||
<H4><A name=Fl_Input.size>int Fl_Input::size() const</A></H4>
|
||
Returns the number of characters in <TT>value()</TT>. This may be
|
||
greater than <TT>strlen(value())</TT> if there are nul characters in
|
||
it.
|
||
<H4><A name=Fl_Input.index>char Fl_Input::index(int) const</A></H4>
|
||
Same as <TT>value()[n]</TT>, but may be faster in plausible
|
||
implementations. No bounds checking is done.
|
||
<H4><A name=Fl_Input.when>Fl_When Fl_Widget::when() const
|
||
<BR> void Fl_Widget::when(Fl_When)</A></H4>
|
||
Controls when callbacks are done. The following values are useful,
|
||
the default value is <TT>FL_WHEN_RELEASE</TT>:
|
||
<UL>
|
||
<LI><TT>0</TT>: The callback is not done, but <TT>changed()</TT> is
|
||
turned on. </LI>
|
||
<LI><TT>FL_WHEN_CHANGED</TT>: The callback is done each time the text
|
||
is changed by the user. </LI>
|
||
<LI><TT>FL_WHEN_RELEASE</TT>: The callback will be done when this
|
||
widget loses the focus, including when the window is unmapped. This
|
||
is a useful value for text fields in a panel where doing the callback
|
||
on every change is wasteful. However the callback will also happen if
|
||
the mouse is moved out of the window, which means it should not do
|
||
anything visible (like pop up an error message). You might do better
|
||
setting this to zero, and scanning all the items for <TT>changed()</TT>
|
||
when the OK button on a panel is pressed. </LI>
|
||
<LI><TT>FL_WHEN_ENTER_KEY</TT>: If the user types the Enter key, the
|
||
entire text is selected, and the callback is done if the text has
|
||
changed. Normally the Enter key will navigate to the next field (or
|
||
insert a newline for a <TT>Fl_Mulitline_Input</TT>), this changes the
|
||
behavior. </LI>
|
||
<LI><TT>FL_WHEN_ENTER_KEY|FL_WHEN_NOT_CHANGED</TT>: The Enter key will
|
||
do the callback even if the text has not changed. Useful for command
|
||
fields. </LI>
|
||
</UL>
|
||
<H4><A name=Fl_Input.textcolor>Fl_Color Fl_Input::textcolor() const
|
||
<BR> void Fl_Input::textcolor(Fl_Color)</A></H4>
|
||
Gets or sets the color of the text in the input field.
|
||
<H4><A name=Fl_Input.textfont>Fl_Font Fl_Input::textfont() const
|
||
<BR> void Fl_Input::textfont(Fl_Font)</A></H4>
|
||
Gets or sets the font of the text in the input field.
|
||
<H4><A name=Fl_Input.textsize>uchar Fl_Input::textsize() const
|
||
<BR> void Fl_Input::textsize(uchar)</A></H4>
|
||
Gets or sets the size of the text in the input field.
|
||
<H4><A name=Fl_Input.cursor_color>Fl_Color Fl_Input::cursor_color()
|
||
const
|
||
<BR> void Fl_Input::cursor_color(Fl_Color)</A></H4>
|
||
Get or set the color of the cursor. This is black by default.
|
||
|
||
</BODY></HTML>
|