summaryrefslogtreecommitdiff
path: root/ex-display.h
blob: f3e5cd13ed6e82b1513e47ba844e0eadc6d47d09 (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
typedef struct ExDisplay ExDisplay;

typedef enum
{
    EX_GARBAGE_FROM_SERVER,		/* unparsable response */
    EX_LOST_CONNECTION
} ExFatalError;

typedef void (* ExFatalErrorHandler) (ExDisplay *display,
				      ExFatalError error,
				      const char *detail);



ExDisplay *ex_display_open                    (const char          *display_name);
void       ex_display_close                   (ExDisplay           *display);
void       ex_display_set_event_handler       (ExDisplay           *display,
					       ExEventHandler       func);
void       ex_display_set_fatal_error_handler (ExDisplay           *display,
					       ExFatalErrorHandler  func);
void       ex_display_push_error_handler      (ExDisplay           *display,
					       ExErrorHandler       func);
void       ex_display_pop_error_handler       (ExDisplay           *display);
void       ex_display_set_user_data           (ExDisplay           *display,
					       expointer            data);
expointer  ex_display_get_user_data           (ExDisplay           *display);
void	   ex_display_set_memory_vtable       (ExDisplay	   *display,
					       ExMallocFunc	    malloc_,
					       ExMalloc0Func	    malloc0_,
					       ExReallocFunc	    realloc_
					       ExFreeFunc	    free_);

/* main loop stuff */
int        ex_display_get_fd                  (ExDisplay           *display);
exboolean  ex_display_iteration               (ExDisplay           *display,
					       exboolean            may_block);
exboolean  ex_display_pending                 (ExDisplay           *display);
void       ex_display_set_sync                (ExDisplay           *display,
					       exboolean            sync);
exboolean  ex_display_get_sync                (ExDisplay           *display);
exboolean  ex_display_flush                   (ExDisplay           *display,
					       exboolean            may_block);
void       ex_display_sync                    (ExDisplay           *display);



/* internal */
ExID       ex_display_generate_xid           (ExDisplay           *display);
void       ex_display_release_xid            (ExDisplay           *display,
					       ExID                 id);