PIP
0.4.0_beta2
Platform-Independent Primitives
|
Keyboard console input listener. More...
Public Types | |
enum | SpecialSymbol { UpArrow = -1, DownArrow = -2, RightArrow = -3, LeftArrow = -4, CtrlUpArrow = -5, CtrlDownArrow = -6, CtrlRightArrow = -7, CtrlLeftArrow = -8 } |
Special keyboard keys. More... | |
![]() | |
enum | Priority { piHighest, piHigh, piNormal, piLow, piLowerst } |
Priority of thread. More... | |
Public Member Functions | |
PIKbdListener (KBFunc slot=0, void *data=0) | |
Constructs keyboard listener with external function "slot" and custom data "data". | |
void * | data () |
Returns custom data. | |
void | setData (void *_data) |
Set custom data to "_data". | |
void | setSlot (KBFunc slot) |
Set external function to "slot". | |
bool | exitCaptured () const |
Returns if exit key if awaiting. | |
char | exitKey () const |
Returns exit key, default 'Q'. | |
bool | isActive () |
Returns if keyboard listening is active (not running!) | |
![]() | |
PIThread (void *data, ThreadFunc func, bool startNow=false, int timer_delay=-1) | |
Contructs thread with custom data "data", external function "func" and main cycle delay "timer_delay". | |
PIThread (bool startNow=false, int timer_delay=-1) | |
Contructs thread with main cycle delay "timer_delay". | |
void | setData (void *d) |
Set common data passed to external function. | |
void | setSlot (ThreadFunc func) |
Set external function that will be executed after every run() | |
void | setPriority (PIThread::Priority prior) |
Set priority of thread. | |
PIThread::Priority | priority () const |
Return priority of thread. | |
bool | isRunning () const |
Return true if thread is running. | |
void | needLockRun (bool need) |
Set necessity of lock every run with internal mutex. | |
PIMutex & | mutex () |
Return internal mutex. | |
bool | start (int timer_delay) |
Start thread. More... | |
bool | start (ThreadFunc func, int timer_delay) |
Start thread. More... | |
bool | startOnce () |
Start thread without internal loop. More... | |
bool | startOnce (ThreadFunc func) |
Start thread without internal loop. More... | |
void | stop (bool wait) |
Stop thread. More... | |
void | terminate () |
Strongly stop thread. More... | |
bool | waitForStart (int timeout_msecs) |
Wait for thread start. More... | |
bool | waitForFinish (int timeout_msecs) |
Wait for thread finish. More... | |
void | lock () |
Lock internal mutex. | |
void | unlock () |
Unlock internal mutex. | |
void | started () |
Raise on thread start. | |
void | stopped () |
Raise on thread stop. | |
![]() | |
PIObject (const PIString &name=PIString()) | |
Contructs PIObject with name "name". | |
PIString | name () const |
Returns object name. | |
virtual const char * | className () const |
Returns object class name. | |
bool | debug () const |
Return if debug of this object is active. | |
void | setName (const PIString &name) |
Set object name. | |
void | setDebug (bool debug) |
Set object debug active. | |
const PIMap< PIString, PIVariant > & | properties () const |
Returns properties of the object. | |
int | propertiesCount () const |
Returns properties count of the object. | |
PIVariant | property (const PIString &name) const |
Returns property with name "name". | |
void | setProperty (const PIString &name, const PIVariant &value) |
Set property with name "name" to "value". If there is no such property in object it will be added. | |
bool | isPropertyExists (const PIString &name) const |
Returns if property with name "name" exists. | |
Handlers | |
void | enableExitCapture (char key) |
Enable exit key "key" awaiting. | |
void | disableExitCapture () |
Disable exit key awaiting. | |
void | setActive (bool yes) |
Set keyboard listening is active or not. | |
Events | |
void | keyPressed (char key, void *data) |
Raise on key "key" pressed, "data" is custom data. | |
Additional Inherited Members | |
![]() | |
static void | piDisconnect (PIObject *src, const PIString &sig) |
Disconnect object "src" from all connections with event name "sig". | |
static void | piDisconnect (PIObject *src) |
Disconnect object "src" from all connections, i.e. all connections where object "src" is emitter. | |
static PIObject * | findByName (const PIString &name) |
Returns PIObject* with name "name" or 0, if there is no object found. | |
![]() | |
PIObject * | emitter () const |
Returns PIObject* which has raised an event. This value is correct only in definition of some event handler. | |
virtual void | propertyChanged (const PIString &name) |
Virtual function executes after property with name "name" has been changed. | |
![]() | |
#define | piCoutObj |
Macro used for conditional (piDebug and PIObject::debug()) output to PICout for subclasses of PIObject. | |
#define | PIOBJECT(name) |
you should use this macro after class declaration to use EVENT and EVENT_HANDLER and correct piCoutObj output | |
#define | EVENT_HANDLER0(ret, name) ret name() |
declare event handler "event" with name "name" and return type "ret", ret name() | |
#define | EVENT_HANDLER1(ret, name, type0, var0) ret name(type0 var0) |
declare event handler "event" with name "name" and return type "ret", ret name(type0 var0) | |
#define | EVENT_HANDLER2(ret, name, type0, var0, type1, var1) ret name(type0 var0, type1 var1) |
declare event handler "event" with name "name" and return type "ret", ret name(type0 var0, type1 var1) | |
#define | EVENT_HANDLER3(ret, name, type0, var0, type1, var1, type2, var2) ret name(type0 var0, type1 var1, type2 var2) |
declare event handler "event" with name "name" and return type "ret", ret name(type0 var0, type1 var1, type2 var2) | |
#define | EVENT_HANDLER4(ret, name, type0, var0, type1, var1, type2, var2, type3, var3) ret name(type0 var0, type1 var1, type2 var2, type3 var3) |
declare event handler "event" with name "name" and return type "ret", ret name(type0 var0, type1 var1, type2 var2, type3 var3) | |
#define | EVENT_HANDLER EVENT_HANDLER0 |
EVENT_HANDLER is synonym of EVENT_HANDLER0. | |
#define | EVENT_VHANDLER0(ret, name) virtual ret name() |
declare virtual event handler "event" with name "name" and return type "ret", virtual ret name() | |
#define | EVENT_VHANDLER1(ret, name, type0, var0) virtual ret name(type0 var0) |
declare virtual event handler "event" with name "name" and return type "ret", virtual ret name(type0 var0) | |
#define | EVENT_VHANDLER2(ret, name, type0, var0, type1, var1) virtual ret name(type0 var0, type1 var1) |
declare virtual event handler "event" with name "name" and return type "ret", virtual ret name(type0 var0, type1 var1) | |
#define | EVENT_VHANDLER3(ret, name, type0, var0, type1, var1, type2, var2) virtual ret name(type0 var0, type1 var1, type2 var2) |
declare virtual event handler "event" with name "name" and return type "ret", virtual ret name(type0 var0, type1 var1, type2 var2) | |
#define | EVENT_VHANDLER4(ret, name, type0, var0, type1, var1, type2, var2, type3, var3) virtual ret name(type0 var0, type1 var1, type2 var2, type3 var3) |
declare virtual event handler "event" with name "name" and return type "ret", virtual ret name(type0 var0, type1 var1, type2 var2, type3 var3) | |
#define | EVENT_VHANDLER EVENT_VHANDLER0 |
EVENT_VHANDLER is synonym of EVENT_VHANDLER0. | |
#define | EVENT0(name) void name(); |
declare event "event" with name "name", void name(); | |
#define | EVENT1(name, type0, var0) void name(type0 var0); |
declare event "event" with name "name", void name(type0 var0); | |
#define | EVENT2(name, type0, var0, type1, var1) void name(type0 var0, type1 var1); |
declare event "event" with name "name", void name(type0 var0, type1 var1); | |
#define | EVENT3(name, type0, var0, type1, var1, type2, var2) void name(type0 var0, type1 var1, type2 var2); |
declare event "event" with name "name", void name(type0 var0, type1 var1, type2 var2); | |
#define | EVENT4(name, type0, var0, type1, var1, type2, var2, type3, var3) void name(type0 var0, type1 var1, type2 var2, type3 var3); |
declare event "event" with name "name", void name(type0 var0, type1 var1, type2 var2, type3 var3); | |
#define | EVENT EVENT0 |
EVENT is synonym of EVENT0. | |
#define | CONNECT0(ret, src, event, dest, handler) |
connect event "event" from object "src" to event handler "handler" with return type "ret" from object "dest" with check of event and handler exists | |
#define | CONNECT1(ret, type0, src, event, dest, handler) |
connect event "event" from object "src" to event handler "handler" with return type "ret" from object "dest" with check of event and handler exists | |
#define | CONNECT2(ret, type0, type1, src, event, dest, handler) |
connect event "event" from object "src" to event handler "handler" with return type "ret" from object "dest" with check of event and handler exists | |
#define | CONNECT3(ret, type0, type1, type2, src, event, dest, handler) |
connect event "event" from object "src" to event handler "handler" with return type "ret" from object "dest" with check of event and handler exists | |
#define | CONNECT4(ret, type0, type1, type2, type3, src, event, dest, handler) |
connect event "event" from object "src" to event handler "handler" with return type "ret" from object "dest" with check of event and handler exists | |
#define | CONNECT CONNECT0 |
CONNECT is synonym of CONNECT0. | |
#define | WEAK_CONNECT0(ret, src, event, dest, handler) |
connect event "event" from object "src" to event handler "handler" with return type "ret" from object "dest" without check of event exists | |
#define | WEAK_CONNECT1(ret, type0, src, event, dest, handler) |
connect event "event" from object "src" to event handler "handler" with return type "ret" from object "dest" without check of event exists | |
#define | WEAK_CONNECT2(ret, type0, type1, src, event, dest, handler) |
connect event "event" from object "src" to event handler "handler" with return type "ret" from object "dest" without check of event exists | |
#define | WEAK_CONNECT3(ret, type0, type1, type2, src, event, dest, handler) |
connect event "event" from object "src" to event handler "handler" with return type "ret" from object "dest" without check of event exists | |
#define | WEAK_CONNECT4(ret, type0, type1, type2, type3, src, event, dest, handler) |
connect event "event" from object "src" to event handler "handler" with return type "ret" from object "dest" without check of event exists | |
#define | WEAK_CONNECT WEAK_CONNECT0 |
WEAK_CONNECT is synonym of WEAK_CONNECT0. | |
#define | DISCONNECT0(ret, src, event, dest, handler) |
piDisconnect event "event" from object "src" from event handler "handler" with return type "ret" from object "dest" | |
#define | DISCONNECT1(ret, type0, src, event, dest, handler) |
piDisconnect event "event" from object "src" from event handler "handler" with return type "ret" from object "dest" | |
#define | DISCONNECT2(ret, type0, type1, src, event, dest, handler) |
piDisconnect event "event" from object "src" from event handler "handler" with return type "ret" from object "dest" | |
#define | DISCONNECT3(ret, type0, type1, type2, src, event, dest, handler) |
piDisconnect event "event" from object "src" from event handler "handler" with return type "ret" from object "dest" | |
#define | DISCONNECT4(ret, type0, type1, type2, type3, src, event, dest, handler) |
piDisconnect event "event" from object "src" from event handler "handler" with return type "ret" from object "dest" | |
#define | DISCONNECT DISCONNECT0 |
DISCONNECT is synonym of DISCONNECT0. | |
#define | HANDLER(handler) |
Returns pointer to events handler "handler". | |
Keyboard console input listener.
This class provide listening of console keyboard input. There is two ways to receive pressed key:
Also there is static variable exiting which by default is set to false. If enableExitCapture() was called and listener was started with function start(), this variable will be set to true if exit key will be pressed. By default exit key is 'Q' = shift + 'q'. To wait for this variable changes to true there is WAIT_FOR_EXIT macro