pidgin/plugins/crazychat/util.h

Mon, 20 Apr 2009 03:20:15 +0000

author
Sadrul Habib Chowdhury <sadrul@pidgin.im>
date
Mon, 20 Apr 2009 03:20:15 +0000
branch
sadrul.gtkblist-theme
changeset 26813
c1a058a2466e
parent 15884
4de1981757fc
child 16238
33bf2fd32108
child 18068
b6554e3c8224
child 20478
46933dc62880
permissions
-rw-r--r--

Make it possible to load non-status icons using a PidginStockIconTheme.
For now, just chat-room emblems can be set, but adding other icons should
be trivial.

WISHLIST (Crazy/Driveby Patch Writers step forward please!):
* Move the theme-editor plugin to a subdirectory under plugins/.
* Make the 'Save' buttons work, possibly ask for some details when saving
(e.g. Author's name etc.)

#ifndef __UTIL_H__
#define __UTIL_H__

#include <debug.h>

#define SET_TIME(x)							\
	do {								\
		assert(!gettimeofday((x), NULL));			\
	} while(0)

#define SET_TIMEOUT(timespec, given_timeout)	/* timeout is in ms */	\
	do {								\
		struct timeval* curr = (struct timeval*)(timespec);	\
		unsigned int tout;					\
		if (given_timeout > 100) {				\
			tout = given_timeout;				\
		} else {						\
			tout = 100;					\
		}							\
		SET_TIME(curr);						\
		curr->tv_sec += (tout / 1000);				\
		curr->tv_usec /= 1000; /* set to ms */			\
		curr->tv_usec += (tout % 1000);				\
		curr->tv_sec += (curr->tv_usec / 1000);			\
		curr->tv_usec = (curr->tv_usec % 1000);			\
		curr->tv_usec *= 1000000;				\
	} while (0)

#endif

/* -- gcc specific vararg macro support ... but its so nice! -- */
#ifdef _DEBUG_
#define Debug(x, args...)						\
	do {								\
		printf(x, ## args);					\
		purple_debug(PURPLE_DEBUG_INFO, "crazychat", x, ## args);	\
	} while (0)
#else
#define Debug(x, args...) do{}while(0)
#endif

mercurial