diff options
Diffstat (limited to 'src/util.hh')
| -rw-r--r-- | src/util.hh | 85 |
1 files changed, 22 insertions, 63 deletions
diff --git a/src/util.hh b/src/util.hh index 74e1a036..1e17657e 100644 --- a/src/util.hh +++ b/src/util.hh @@ -2,62 +2,27 @@ #ifndef _BLACKBOX_UTIL_HH #define _BLACKBOX_UTIL_HH +extern "C" { #include <X11/Xlib.h> #include <X11/Xutil.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 +} + + #include <string> #include <vector> -class Rect { -public: - inline Rect(void) : _x1(0), _y1(0), _x2(0), _y2(0) { } - inline Rect(int __x, int __y, unsigned int __w, unsigned int __h) - : _x1(__x), _y1(__y), _x2(__w + __x - 1), _y2(__h + __y - 1) { } - inline explicit Rect(const XRectangle& xrect) - : _x1(xrect.x), _y1(xrect.y), _x2(xrect.width + xrect.x - 1), - _y2(xrect.height + xrect.y - 1) { } - - inline int left(void) const { return _x1; } - inline int top(void) const { return _y1; } - inline int right(void) const { return _x2; } - inline int bottom(void) const { return _y2; } - - inline int x(void) const { return _x1; } - inline int y(void) const { return _y1; } - void setX(int __x); - void setY(int __y); - void setPos(int __x, int __y); - - inline unsigned int width(void) const { return _x2 - _x1 + 1; } - inline unsigned int height(void) const { return _y2 - _y1 + 1; } - void setWidth(unsigned int __w); - void setHeight(unsigned int __h); - void setSize(unsigned int __w, unsigned int __h); - - void setRect(int __x, int __y, unsigned int __w, unsigned int __h); - - void setCoords(int __l, int __t, int __r, int __b); - - inline bool operator==(const Rect &a) - { return _x1 == a._x1 && _y1 == a._y1 && _x2 == a._x2 && _y2 == a._y2; } - inline bool operator!=(const Rect &a) { return ! operator==(a); } - - Rect operator|(const Rect &a) const; - Rect operator&(const Rect &a) const; - inline Rect &operator|=(const Rect &a) { *this = *this | a; return *this; } - inline Rect &operator&=(const Rect &a) { *this = *this & a; return *this; } - - inline bool valid(void) const { return _x2 > _x1 && _y2 > _y1; } - - bool intersects(const Rect &a) const; - bool contains(int __x, int __y) const; - bool contains(const Rect &a) const; - -private: - int _x1, _y1, _x2, _y2; -}; - -typedef std::vector<Rect> RectList; +namespace ob { struct Strut { unsigned int top, bottom, left, right; @@ -72,27 +37,21 @@ std::string expandTilde(const std::string& s); void bexec(const std::string& command, const std::string& displaystring); -#ifndef HAVE_BASENAME -std::string basename(const std::string& path); -#endif - std::string textPropertyToString(Display *display, XTextProperty& text_prop); -struct timeval; // forward declare to avoid the header timeval normalizeTimeval(const timeval &tm); -struct PointerAssassin { - template<typename T> - inline void operator()(const T ptr) const { - delete ptr; - } -}; - std::string itostring(unsigned long i); std::string itostring(long i); inline std::string itostring(unsigned int i) { return itostring((unsigned long) i); } inline std::string itostring(int i) { return itostring((long) i); } - + +} + +#ifndef HAVE_BASENAME +std::string basename(const std::string& path); +#endif + #endif |
