]> git.lyx.org Git - lyx.git/blob - src/frontends/gnome/Timeout_pimpl.C
ba31cc2207afe4586c8c5516afcd0423950147fb
[lyx.git] / src / frontends / gnome / Timeout_pimpl.C
1 /**
2  * \file Timeout_pimpl.C
3  * Copyright 2001 LyX Team
4  * Read COPYING
5  *
6  * \author Baruch Even
7  */
8
9 #include <config.h>
10
11 #ifdef __GNUG__
12 #pragma implementation
13 #endif
14
15 #include <gnome--/main.h>
16 #include "Timeout_pimpl.h"
17 #include "debug.h"
18
19
20 Timeout::Pimpl::Pimpl(Timeout * owner)
21         : owner_(owner)
22 {
23 }
24
25
26 void Timeout::Pimpl::reset()
27 {
28         stop();
29 }
30
31
32 void Timeout::Pimpl::start()
33 {
34         if (conn_.connected()) {
35                 lyxerr << "Timeout::start: already running!" << std::endl;
36                 stop();
37         }
38         
39         conn_ = Gnome::Main::timeout.connect(
40                          SigC::slot(this, &Timeout::Pimpl::timeoutEvent),
41                          owner_->timeout_ms
42                         );
43 }
44
45
46 void Timeout::Pimpl::stop()
47 {
48         conn_.disconnect();
49 }
50
51
52 gint Timeout::Pimpl::timeoutEvent()
53 {
54         owner_->emit();
55         return 0; // discontinue emitting timeouts.
56 }