NAME¶
FBB::OneKey - Single keystroke input, not requiring `Return’
SYNOPSIS¶
#include <bobcat/onekey>
Linking option:
-lbobcat
DESCRIPTION¶
OneKey objects may be used to realize `direct keyboard input’: a
pressed key becomes available without the need for pressing
Enter. The
characters are obtained from the standard input stream. Direct key entry
remains in effect for as long as the
OneKey object exists. Once the
object is destroyed the standard input stream will return to its default mode
of operation, in which input is `confirmed’ by a newline character.
NAMESPACE¶
FBB
All constructors, members, operators and manipulators, mentioned in this
man-page, are defined in the namespace
FBB.
INHERITS FROM¶
-
ENUMERATION¶
The
OneKey::Mode enumeration is used to control echoing of returned
characters. It has two values:
- o
- OFF: returned characters are not echoed to
the standard output stream;
- o
- ON: returned characters are echoed to the
standard output stream.
CONSTRUCTORS¶
- o
- OneKey(OneKey::Mode state = OneKey::OFF):
This constructor initializes the OneKey input object. By default,
entered characters are not echoed. By constructing the object with the
OneKey::ON argument, entered characters are echoed to the standard
output stream.
- This construct throws an Errno exception if it not
properly complete. The constructor may fail for the following
reasons:
- o
- the standard input stream is not a tty (e.g., when the
standard input stream is redirected to a file);
- o
- the current state of the standard input stream can’t
be determined;
- o
- the standard input stream’s state can’t be
changed to the `direct keyboard input’ mode. The copy constructor
(and the overloaded assignement operator) are not available.
MEMBER FUNCTIONS¶
- o
- int get() const:
Returns the next character from the standard input stream, without the need
for pressing Enter.
- o
- void setEcho(OneKey::Mode state):
Changes the echo-state of the OneKey object. The argument may be
either OneKey::ON or OneKey::OFF.
- o
- void verify() const:
Obsoleted, will be removed in a future Bobcat release.
EXAMPLE¶
/*
driver.cc
*/
#include <iostream>
#include <string>
#include <bobcat/onekey>
using namespace std;
using namespace FBB;
int main()
{
try
{
OneKey onekey;
onekey.verify();
cout << "Usage: 1: next chars are echoed, 0: no echo, q: quits\n";
while (true)
{
char c;
cout << "ready...\n";
cout << "Got character ’" << (c = onekey.get()) << "’\n";
switch (c)
{
case ’1’:
onekey.setEcho(OneKey::ON);
break;
case ’0’:
onekey.setEcho(OneKey::OFF);
break;
case ’q’:
return 0;
}
}
}
catch (Errno const &e)
{
cout << e.why() << endl;
return e.which();
}
}
FILES¶
bobcat/onekey - defines the class interface
SEE ALSO¶
bobcat(7)
BUGS¶
None Reported.
DISTRIBUTION FILES¶
- o
- bobcat_3.01.00-x.dsc: detached signature;
- o
- bobcat_3.01.00-x.tar.gz: source archive;
- o
- bobcat_3.01.00-x_i386.changes: change log;
- o
- libbobcat1_3.01.00-x_*.deb: debian package holding
the libraries;
- o
- libbobcat1-dev_3.01.00-x_*.deb: debian package
holding the libraries, headers and manual pages;
- o
- http://sourceforge.net/projects/bobcat: public
archive location;
BOBCAT¶
Bobcat is an acronym of `Brokken’s Own Base Classes And Templates’.
COPYRIGHT¶
This is free software, distributed under the terms of the GNU General Public
License (GPL).
AUTHOR¶
Frank B. Brokken (
f.b.brokken@rug.nl).