gambas-source-code/gb.desktop.x11/systray/common.h

82 lines
2.4 KiB
C

/* -------------------------------
* vim:tabstop=4:shiftwidth=4
* common.h
* Mon, 01 May 2006 01:45:08 +0700
* -------------------------------
* Common declarations
* -------------------------------*/
#ifndef _COMMON_H_
#define _COMMON_H_
#include "debug.h"
#define PROGNAME PACKAGE
/* Default icon size */
#define FALLBACK_ICON_SIZE 24
/* Minimal icon size */
#define MIN_ICON_SIZE 16
/* Default KDE icon size */
#define KDE_ICON_SIZE 22
/* Number of time icon is allowed to change its size after which
* stalonetray gives up */
#define ICON_SIZE_RESETS_THRESHOLD 2
/* Meaningful names for return values */
#define SUCCESS 1
#define FAILURE 0
/* Simple macro to return status and log it if necessary */
#define RETURN_STATUS(rc) do { \
LOG_TRACE(("status = %s\n", ((rc) == SUCCESS ? "SUCCESS" : "FAILURE"))); \
return rc; \
} while(0)
/* Meaningful names for return values of icon mass-operations */
#define MATCH 1
#define NO_MATCH 0
/* Simple macro to return mass-op status and log it if necessary */
#define RETURN_MATCH(rc) do { \
LOG_TRACE(("status = %s\n", rc == MATCH : "MATCH" : "NO_MATCH")); \
return rc; \
} while(0)
/* Meaningful names for return values of icon mass-operations */
#define MATCH 1
/* Portable macro for function name */
#if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
#define __FUNC__ __func__
#elif defined(__GNUC__) && __GNUC__ >= 3
#define __FUNC__ __FUNCTION__
#else
#define __FUNC__ "unknown"
#endif
/* DIE */
#define DIEDIE() exit(-1)
/* Print a message and... DIE */
#define DIE(message) do { LOG_ERROR(message); DIEDIE(); } while(0)
/* Log OOM condition */
#define LOG_ERR_IE(message) do { \
LOG_ERROR(("Internal error, please report to maintaner (see AUTHORS)\n")); \
LOG_ERROR(message); \
} while(0);
/* DIE on internal error */
#define DIE_IE(message) do { LOG_ERR_IE(message); DIEDIE(); } while(0)
/* Log OOM condition */
#define LOG_ERR_OOM(message) do { \
LOG_ERROR(("Out of memory\n")); \
LOG_ERROR(message); \
} while(0);
/* DIE on OOM error */
#define DIE_OOM(message) do { LOG_ERR_OOM(message); DIEDIE(); } while(0)
/*** WARNING: feed following macros only with side-effects-free expressions ***/
/* Get a value within target interval */
#define cutoff(tgt,min,max) (tgt) < (min) ? (min) : ((tgt) > (max) ? max : tgt)
/* Update value to fit into target interval */
#define val_range(tgt,min,max) (tgt) = cutoff(tgt,min,max)
#endif