git-svn-id: svn://db.shs.com.ru/pip@223 12ceb7fc-bf1f-11e4-8940-5bc7170c53b5
This commit is contained in:
@@ -131,7 +131,7 @@ PRIVATE_DEFINITION_START(PIKbdListener)
|
||||
PRIVATE_DEFINITION_END(PIKbdListener)
|
||||
|
||||
|
||||
PIKbdListener::PIKbdListener(KBFunc slot, void * _data): PIThread() {
|
||||
PIKbdListener::PIKbdListener(KBFunc slot, void * _data, bool startNow): PIThread() {
|
||||
setName("keyboard_listener");
|
||||
_object = this;
|
||||
#ifdef WINDOWS
|
||||
@@ -144,7 +144,7 @@ PIKbdListener::PIKbdListener(KBFunc slot, void * _data): PIThread() {
|
||||
ret_func = slot;
|
||||
data_ = _data;
|
||||
PIKbdListener::exiting = exit_enabled = false;
|
||||
start();
|
||||
if (startNow) start();
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -90,7 +90,7 @@ public:
|
||||
|
||||
|
||||
//! Constructs keyboard listener with external function "slot" and custom data "data"
|
||||
explicit PIKbdListener(KBFunc slot = 0, void * data = 0);
|
||||
explicit PIKbdListener(KBFunc slot = 0, void * data = 0, bool startNow = true);
|
||||
|
||||
~PIKbdListener();
|
||||
|
||||
|
||||
@@ -323,14 +323,21 @@ PIScreen::PIScreen(bool startNow, PIKbdListener::KBFunc slot): PIThread(), drawe
|
||||
ret_func = slot;
|
||||
tile_focus = tile_dialog = 0;
|
||||
root.screen = this;
|
||||
listener = new PIKbdListener(key_eventS, this);
|
||||
listener = new PIKbdListener(key_eventS, this, startNow);
|
||||
if (startNow) start();
|
||||
}
|
||||
|
||||
|
||||
PIScreen::~PIScreen() {
|
||||
piCoutObj << "~PIScreen";
|
||||
if (isRunning())
|
||||
stop();
|
||||
piCoutObj << "stop PIScreen .. ";
|
||||
PIThread::waitForFinish(10);
|
||||
piCoutObj << "stop PIScreen ok";
|
||||
piCoutObj << "stop listener .. ";
|
||||
listener->waitForFinish(10);
|
||||
piCoutObj << "stop listener ok";
|
||||
delete listener;
|
||||
}
|
||||
|
||||
@@ -462,6 +469,7 @@ void PIScreen::stop(bool clear) {
|
||||
|
||||
|
||||
void PIScreen::begin() {
|
||||
listener->start();
|
||||
nextFocus(&root);
|
||||
console.begin();
|
||||
}
|
||||
@@ -493,6 +501,7 @@ void PIScreen::run() {
|
||||
|
||||
|
||||
void PIScreen::end() {
|
||||
listener->stop();
|
||||
console.end();
|
||||
}
|
||||
|
||||
|
||||
@@ -34,7 +34,7 @@ class PIP_EXPORT PIScreen: public PIThread, public PIScreenTypes::PIScreenBase
|
||||
public:
|
||||
|
||||
//! Constructs %PIScreen with key handler "slot" and if "startNow" start it
|
||||
PIScreen(bool startNow = false, PIKbdListener::KBFunc slot = 0);
|
||||
PIScreen(bool startNow = true, PIKbdListener::KBFunc slot = 0);
|
||||
|
||||
~PIScreen();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user