all repos — openbox @ 065c6efa774ac144665f340f6c3578ab74e05c7b

openbox fork - make it a bit more like ryudo

otk_c/timer.h (raw)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
// -*- mode: C; indent-tabs-mode: nil; c-basic-offset: 2; -*-
#ifndef __timer_h
#define __timer_h

#include <X11/Xlib.h>
#include <Python.h>

#ifdef    TIME_WITH_SYS_TIME
#  include <sys/time.h>
#  include <time.h>
#else // !TIME_WITH_SYS_TIME
#  ifdef    HAVE_SYS_TIME_H
#    include <sys/time.h>
#  else // !HAVE_SYS_TIME_H
#    include <time.h>
#  endif // HAVE_SYS_TIME_H
#endif // TIME_WITH_SYS_TIME

extern PyTypeObject OtkTimer_Type;

//! The data passed to the OtkTimeoutHandler function.
/*!
  Note: this is a very useful place to put an object instance, and set the
  event handler to a static function in the same class.
*/
typedef void *OtkTimeoutData;
//! The type of function which can be set as the callback for an OtkTimer
//! firing
typedef void (*OtkTimeoutHandler)(OtkTimeoutData);

typedef struct OtkTimer {
  PyObject_HEAD
  OtkTimeoutHandler handler;
  OtkTimeoutData data;
  Bool recur;
  long timeout;

  // don't edit these
  Bool timing;
  struct timeval start;
  struct timeval end;
} OtkTimer;

PyObject *OtkTimer_New(OtkTimeoutHandler handler, OtkTimeoutData data);

//! Causes the timer to begin
void OtkTimer_Start(OtkTimer *self);

//! Causes the timer to stop
void OtkTimer_Stop(OtkTimer *self);

#endif // __timer_h