]> Dogcows Code - chaz/openbox/blobdiff - src/Timer.h
Initial revision
[chaz/openbox] / src / Timer.h
diff --git a/src/Timer.h b/src/Timer.h
new file mode 100644 (file)
index 0000000..410d658
--- /dev/null
@@ -0,0 +1,78 @@
+// Timer.h for Openbox
+// Copyright (c) 2001 Sean 'Shaleh' Perry <shaleh@debian.org>
+// Copyright (c) 1997 - 2000 Brad Hughes (bhughes@tcac.net)
+//
+// Permission is hereby granted, free of charge, to any person obtaining a
+// copy of this software and associated documentation files (the "Software"),
+// to deal in the Software without restriction, including without limitation
+// the rights to use, copy, modify, merge, publish, distribute, sublicense,
+// and/or sell copies of the Software, and to permit persons to whom the 
+// Software is furnished to do so, subject to the following conditions:
+//
+// The above copyright notice and this permission notice shall be included in 
+// all copies or substantial portions of the Software. 
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL 
+// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 
+// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 
+// DEALINGS IN THE SOFTWARE.
+  
+#ifndef   __Timer_hh
+#define   __Timer_hh
+
+#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
+
+// forward declaration
+class BTimer;
+class TimeoutHandler;
+class BaseDisplay;
+
+class TimeoutHandler {
+public:
+  virtual void timeout(void) = 0;
+};
+
+class BTimer {
+  friend class BaseDisplay;
+private:
+  BaseDisplay *display;
+  TimeoutHandler *handler;
+  int timing, once;
+
+  timeval _start, _timeout;
+
+protected:
+  void fireTimeout(void);
+
+public:
+  BTimer(BaseDisplay *, TimeoutHandler *);
+  virtual ~BTimer(void);
+
+  inline const int &isTiming(void) const { return timing; } 
+  inline const int &doOnce(void) const { return once; }
+
+  inline const timeval &getTimeout(void) const { return _timeout; }
+  inline const timeval &getStartTime(void) const { return _start; }
+
+  inline void fireOnce(int o) { once = o; }
+
+  void setTimeout(long);
+  void setTimeout(timeval);
+  void start(void);
+  void stop(void);
+};
+
+#endif // __Timer_hh
+
This page took 0.023086 seconds and 4 git commands to generate.