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
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
#include "cfl_browser.h"
#include <FL/Fl_Browser.H>
#include <FL/Fl_File_Browser.H>
#include <FL/Fl_Hold_Browser.H>
#include <FL/Fl_Image.H>
#include <FL/Fl_Multi_Browser.H>
#include <FL/Fl_Select_Browser.H>
#include <new>
#define BROWSER_DEFINE(widget) \
void widget##_remove(widget *self, int line) { LOCK(self->remove(line);) } \
void widget##_add(widget *self, const char *newtext) { \
LOCK(self->add(newtext);) \
} \
void widget##_insert(widget *self, int line, const char *newtext) { \
LOCK(self->insert(line, newtext);) \
} \
void widget##_move(widget *self, int to, int from) { \
LOCK(self->move(to, from);) \
} \
void widget##_swap(widget *self, int a, int b) { LOCK(self->swap(a, b);) } \
void widget##_clear(widget *self) { LOCK(self->clear();) } \
int widget##_size(const widget *self) { return self->size(); } \
void widget##_set_size(widget *self, int W, int H) { \
LOCK(self->size(W, H);) \
} \
int widget##_select(widget *self, int line) { \
int ret; \
LOCK(ret = self->select(line)); \
return ret; \
} \
int widget##_selected(const widget *self, int line) { \
return self->selected(line); \
} \
const char *widget##_text(const widget *self, int line) { \
return self->text(line); \
} \
void widget##_set_text(widget *self, int line, const char *newtext) { \
LOCK(self->text(line, newtext);) \
} \
void widget##_load_file(widget *self, const char *file) { \
LOCK(self->load(file);) \
} \
int widget##_text_size(widget *self) { return self->textsize(); } \
void widget##_set_text_size(widget *self, int s) { \
LOCK(self->textsize(s);) \
} \
void widget##_set_icon(widget *self, int line, void *icon) { \
LOCK(self->icon(line, ((Fl_Image *)icon)->copy());) \
} \
void *widget##_icon(const widget *self, int line) { \
return (Fl_Image *)self->icon(line); \
} \
void widget##_remove_icon(widget *self, int l) { LOCK(self->remove_icon(l);) }
WIDGET_DEFINE(Fl_Browser)
BROWSER_DEFINE(Fl_Browser)
WIDGET_DEFINE(Fl_Hold_Browser)
BROWSER_DEFINE(Fl_Hold_Browser)
WIDGET_DEFINE(Fl_Select_Browser)
BROWSER_DEFINE(Fl_Select_Browser)
WIDGET_DEFINE(Fl_Multi_Browser)
BROWSER_DEFINE(Fl_Multi_Browser)
WIDGET_DEFINE(Fl_File_Browser)
BROWSER_DEFINE(Fl_File_Browser)