chiark / gitweb /
Import upstream version 5.3.
[mup] / mup / mupmate / globals.H
CommitLineData
fac14bbe
MW
1#ifndef _GLOBALS_H
2#define _GLOBALS_H
3
4// Try to consolidate OS-specific ifdef complicated clauses to this
5// header file, so code can use descriptive ifdefs
6#if defined(__WIN32) && ! defined(__CYGWIN__)
7#define OS_LIKE_WIN32
8#endif
9
10#if defined(__linux) || defined(unix)
11#define OS_LIKE_UNIX
12#endif
13
14
15// We use a class static method for callbacks which cast their "void * data"
16// argument to an instance of the class, and call the class method.
17// So we use these macros to enforce consistent usage of that technique.
18// Most places will use CALL_BACK. The CALL_BACK_A is only needed in code
19// when the object method takes an argument.
20// Can't use CALLBACK as single word since under mingw that is already
21// defined as something completely different.
22#define CALL_BACK_A(classname, cb_name, arg) \
23 void \
24 classname::cb_name##_cb(Fl_Widget *, void * data) \
25 { \
26 ((classname *)data)->cb_name(); \
27 } \
28 void \
29 classname::cb_name(arg)
30#define CALL_BACK(classname, cb_name) CALL_BACK_A(classname, cb_name, void)
31
32#endif