fixing parse error in execcommand
[bbkeys.git] / src / Timer.cc
blob893ef67b83ec48dd84545d6961195eb7e25141d2
1 // Timer.cc for Blackbox - An X11 Window Manager
2 // Copyright (c) 1997 - 1999 Brad Hughes (bhughes@tcac.net)
3 //
4 // Permission is hereby granted, free of charge, to any person obtaining a
5 // copy of this software and associated documentation files (the "Software"),
6 // to deal in the Software without restriction, including without limitation
7 // the rights to use, copy, modify, merge, publish, distribute, sublicense,
8 // and/or sell copies of the Software, and to permit persons to whom the
9 // Software is furnished to do so, subject to the following conditions:
11 // The above copyright notice and this permission notice shall be included in
12 // all copies or substantial portions of the Software.
14 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15 // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16 // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
17 // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
18 // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
19 // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
20 // DEALINGS IN THE SOFTWARE.
22 // $Id$
24 // stupid macros needed to access some functions in version 2 of the GNU C
25 // library
26 #ifndef _GNU_SOURCE
27 # define _GNU_SOURCE
28 #endif // _GNU_SOURCE
30 #ifdef HAVE_CONFIG_H
31 # include "config.h"
32 #endif // HAVE_CONFIG_H
34 #include "BaseDisplay.hh"
35 #include "Timer.hh"
38 BTimer::BTimer(BaseDisplay *d, TimeoutHandler *h) {
39 display = d;
40 handler = h;
42 once = timing = False;
46 BTimer::~BTimer(void) {
47 if (timing) stop();
51 void BTimer::setTimeout(long t) {
52 _timeout.tv_sec = t / 1000;
53 _timeout.tv_usec = t;
54 _timeout.tv_usec -= (_timeout.tv_sec * 1000);
55 _timeout.tv_usec *= 1000;
59 void BTimer::setTimeout(timeval t) {
60 _timeout.tv_sec = t.tv_sec;
61 _timeout.tv_usec = t.tv_usec;
65 void BTimer::start(void) {
66 gettimeofday(&_start, 0);
68 if (! timing) {
69 timing = True;
70 display->addTimer(this);
75 void BTimer::stop(void) {
76 timing = False;
78 display->removeTimer(this);
82 void BTimer::fireTimeout(void) {
83 if (handler) handler->timeout();