summaryrefslogtreecommitdiff
path: root/numlib/ui.h
blob: e1d7a587322b999524bac1e7fccf1e0f4b85e907 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50

#ifndef __UI_H__

/*
 * Do OS specific setup for using UI windows.
 * Include this only in file with main().
 *
 * Copyright 2014 Graeme W. Gill
 * All rights reserved.
 *
 * This material is licenced under the GNU AFFERO GENERAL PUBLIC LICENSE Version 3 :-
 * see the License.txt file for licencing details.
 *
 * Typically we need to set things up and then call the
 * "normal" main, called "uimain" in ArgyllCMS utils.
 */

/* Because linkers are dumb (they pass over a library containing main() */
/* and then complain that there is no entry point!), we force linking */
/* of libui if ui.h gets #included. */
extern int ui_initialized;		
static int *pui_initialized = &ui_initialized;

#ifdef UNIX
# ifdef __APPLE__

extern pthread_t ui_thid;		/* Thread ID of main thread running io run loop */
extern pthread_t ui_main_thid;	/* Thread ID of thread running application main() */

#ifndef __UI_C__
# define main uimain
#endif

#else	/* Linux etc. */

#endif	/* Linux etc. */
#endif	/* UNIX */

#ifdef NT

#ifdef NEVER 	/* Not practical - see ui.c for full explanation */
#ifndef __UI_C__
# define main uimain
#endif
#endif

#endif

#define __UI_H__
#endif /* __UI_H__ */