summaryrefslogtreecommitdiffstats
path: root/fltk/fltk/compat/FL/Enumerations.H
blob: 418cf8ec377f133a8c7845cda1846267dbb08eb0 (plain) (blame)
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
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
//
// "$Id: Enumerations.H 5389 2006-09-01 15:39:19Z spitzak $"
//
// Enumerations for the Fast Light Tool Kit (FLTK).
//
// Copyright 1998-2006 by Bill Spitzak and others.
//
// This library is free software; you can redistribute it and/or
// modify it under the terms of the GNU Library General Public
// License as published by the Free Software Foundation; either
// version 2 of the License, or (at your option) any later version.
//
// This library is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
// Library General Public License for more details.
//
// You should have received a copy of the GNU Library General Public
// License along with this library; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
// USA.
//
// Please report all bugs and problems to "fltk-bugs@fltk.org".
//

#ifndef Fl_Enumerations_H
#define Fl_Enumerations_H

# include <fltk/FL_API.h>
# include <fltk/FL_VERSION.h>

enum Fl_Event {	// these should match fltk/events.h
  FL_NO_EVENT		= 0,
  FL_PUSH		= 1,
  FL_RELEASE		= 2,
  FL_ENTER		= 3,
  FL_LEAVE		= 4,
  FL_DRAG		= 5,
  FL_FOCUS		= 6,
  FL_UNFOCUS		= 7,
  FL_KEYDOWN		= 8,
  FL_KEYBOARD		= FL_KEYDOWN,
  FL_KEYUP		= 9,
  //FL_CLOSE		= 10, // not in fltk2.0
  FL_MOVE		= 11,
  FL_SHORTCUT		= 12,
  FL_DEACTIVATE		= 13,
  FL_ACTIVATE		= 14,
  FL_HIDE		= 15,
  FL_SHOW		= 16,
  FL_PASTE		= 17,
  //FL_SELECTIONCLEAR	= 18, // not in fltk2.0
  FL_MOUSEWHEEL		= 19,
  FL_DND_ENTER		= 20,
  FL_DND_DRAG		= 21,
  FL_DND_LEAVE		= 22,
  FL_DND_RELEASE	= 23
};

enum Fl_When { // These should match values in fltk/Widget.h
  FL_WHEN_NEVER		= 0,
  FL_WHEN_CHANGED	= 1,
  FL_WHEN_RELEASE	= 4,
  FL_WHEN_RELEASE_ALWAYS= 6,
  FL_WHEN_ENTER_KEY	= 8,
  FL_WHEN_ENTER_KEY_ALWAYS=10,
  FL_WHEN_ENTER_KEY_CHANGED=11,
  FL_WHEN_NOT_CHANGED	= 2 // modifier bit to disable changed() test
};

// These should match symbols in fltk/events.h:
#define FL_Button	0 // old value was 0xfee8
#define FL_LEFT_MOUSE	1
#define FL_MIDDLE_MOUSE	2
#define FL_RIGHT_MOUSE	3
#define FL_BackSpace	0xff08
#define FL_Tab		0xff09
#define FL_Enter	0xff0d
#define FL_Pause	0xff13
#define FL_Scroll_Lock	0xff14
#define FL_Escape	0xff1b
#define FL_Home		0xff50
#define FL_Left		0xff51
#define FL_Up		0xff52
#define FL_Right	0xff53
#define FL_Down		0xff54
#define FL_Page_Up	0xff55
#define FL_Page_Down	0xff56
#define FL_End		0xff57
#define FL_Print	0xff61
#define FL_Insert	0xff63
#define FL_Menu		0xff67 // the "menu/apps" key on XFree86
#define FL_Help		0xff68 // the 'help' key on Mac keyboards
#define FL_Num_Lock	0xff7f
#define FL_KP		0xff80 // use FL_KP+'x' for 'x' on numeric keypad
#define FL_KP_Enter	0xff8d // same as Fl_KP+'\r'
#define FL_KP_Last	0xffbd // use to range-check keypad
#define FL_F		0xffbd // use FL_F+n for function key n
#define FL_F_Last	0xffe0 // use to range-check function keys
#define FL_Shift_L	0xffe1
#define FL_Shift_R	0xffe2
#define FL_Control_L	0xffe3
#define FL_Control_R	0xffe4
#define FL_Caps_Lock	0xffe5
#define FL_Meta_L	0xffe7
#define FL_Meta_R	0xffe8
#define FL_Alt_L	0xffe9
#define FL_Alt_R	0xffea
#define FL_Delete	0xffff

#define FL_SHIFT	0x00010000
#define FL_CAPS_LOCK	0x00020000
#define FL_CTRL		0x00040000
#define FL_ALT		0x00080000
#define FL_NUM_LOCK	0x00100000 // most X servers do this?
#define FL_META		0x00400000
#define FL_SCROLL_LOCK	0x00800000
#define FL_BUTTON1	0x01000000
#define FL_BUTTON2	0x02000000
#define FL_BUTTON3	0x04000000
#define FL_BUTTONS	0x7f000000 // All possible buttons
#define FL_BUTTON(n)	(0x00800000<<(n))

#ifdef __APPLE__
#  define FL_COMMAND	FL_META
#else
#  define FL_COMMAND	FL_CTRL
#endif // __APPLE__

#include <fltk/Style.h>

typedef fltk::Box* Fl_Boxtype;

// Box types. Many of the FRAME types are deleted in fltk2.0, these have
// been replaced with the equivalent BOX which draws it's inner area:
#define FL_NO_BOX		fltk::NO_BOX
#define FL_FLAT_BOX		fltk::FLAT_BOX
#define FL_UP_BOX		fltk::UP_BOX
#define FL_DOWN_BOX		fltk::DOWN_BOX
#define FL_UP_FRAME		fltk::UP_BOX //
#define FL_DOWN_FRAME		fltk::DOWN_BOX //
#define FL_THIN_UP_BOX		fltk::THIN_UP_BOX
#define FL_THIN_DOWN_BOX	fltk::THIN_DOWN_BOX
#define FL_THIN_UP_FRAME	fltk::THIN_UP_BOX //
#define FL_THIN_DOWN_FRAME	fltk::THIN_DOWN_BOX //
#define FL_ENGRAVED_BOX		fltk::ENGRAVED_BOX
#define FL_EMBOSSED_BOX		fltk::EMBOSSED_BOX
#define FL_ENGRAVED_FRAME	fltk::ENGRAVED_BOX //
#define FL_EMBOSSED_FRAME	fltk::EMBOSSED_BOX //
#define FL_BORDER_BOX		fltk::BORDER_BOX
#define FL_SHADOW_BOX		fltk::SHADOW_BOX
#define FL_BORDER_FRAME		fltk::BORDER_FRAME
#define FL_SHADOW_FRAME		fltk::SHADOW_BOX //
#define FL_ROUNDED_BOX		fltk::ROUNDED_BOX
#define FL_RSHADOW_BOX		fltk::RSHADOW_BOX
#define FL_ROUNDED_FRAME	fltk::ROUNDED_BOX //
#define FL_RFLAT_BOX		fltk::RFLAT_BOX
#define FL_ROUND_UP_BOX		fltk::ROUND_UP_BOX
#define FL_ROUND_DOWN_BOX	fltk::ROUND_DOWN_BOX
#define FL_DIAMOND_UP_BOX	fltk::DIAMOND_UP_BOX
#define FL_DIAMOND_DOWN_BOX	fltk::DIAMOND_DOWN_BOX
#define FL_OVAL_BOX		fltk::OVAL_BOX
#define FL_OSHADOW_BOX		fltk::OSHADOW_BOX
#define FL_OVAL_FRAME		fltk::OVAL_BOX //
#define FL_OFLAT_BOX		fltk::OFLAT_BOX
#define FL_PLASTIC_UP_BOX	fltk::PLASTIC_UP_BOX
#define FL_PLASTIC_DOWN_BOX	fltk::PLASTIC_DOWN_BOX
#define FL_PLASTIC_UP_FRAME	fltk::PLASTIC_UP_BOX //
#define FL_PLASTIC_DOWN_FRAME	fltk::PLASTIC_DOWN_BOX //
//#define FL_FREE_BOXTYPE not used in fltk 2.0

// conversions of box types to other boxtypes:
//inline Fl_Boxtype fl_down(Fl_Boxtype b) // not implemented
//inline Fl_Boxtype fl_frame(Fl_Boxtype b)

// back-compatability box types:
#define FL_FRAME		FL_ENGRAVED_FRAME
#define FL_FRAME_BOX		FL_ENGRAVED_BOX
#define FL_CIRCLE_BOX		FL_ROUND_DOWN_BOX
#define FL_DIAMOND_BOX		FL_DIAMOND_DOWN_BOX

// labeltypes:
#define FL_NO_LABEL		fltk::NO_LABEL
#define FL_NORMAL_LABEL		fltk::NORMAL_LABEL
#define FL_SHADOW_LABEL		fltk::SHADOW_LABEL
#define FL_ENGRAVED_LABEL	fltk::ENGRAVED_LABEL
#define FL_EMBOSSED_LABEL	fltk::EMBOSSED_LABEL
//#define FL_FREE_LABELTYPE not used in fltk2.0
#define FL_SYMBOL_LABEL		FL_NORMAL_LABEL

#define Fl_Align		fltk::Flags
enum {
  FL_ALIGN_CENTER		= 0,
  FL_ALIGN_TOP			= fltk::ALIGN_TOP,
  FL_ALIGN_BOTTOM		= fltk::ALIGN_BOTTOM,
  FL_ALIGN_LEFT			= fltk::ALIGN_LEFT,
  FL_ALIGN_RIGHT		= fltk::ALIGN_RIGHT,
  FL_ALIGN_INSIDE		= fltk::ALIGN_INSIDE,
  FL_ALIGN_TEXT_OVER_IMAGE	= fltk::ALIGN_BOTTOM|fltk::ALIGN_INSIDE, //
  FL_ALIGN_IMAGE_OVER_TEXT	= 0,
  FL_ALIGN_CLIP			= fltk::ALIGN_CLIP,
  FL_ALIGN_WRAP			= fltk::ALIGN_WRAP,
  FL_ALIGN_MASK			= fltk::ALIGN_MASK,
  FL_ALIGN_TOP_LEFT		= FL_ALIGN_TOP | FL_ALIGN_LEFT,
  FL_ALIGN_TOP_RIGHT		= FL_ALIGN_TOP | FL_ALIGN_RIGHT,
  FL_ALIGN_BOTTOM_LEFT		= FL_ALIGN_BOTTOM | FL_ALIGN_LEFT,
  FL_ALIGN_BOTTOM_RIGHT		= FL_ALIGN_BOTTOM | FL_ALIGN_RIGHT,
  FL_ALIGN_LEFT_TOP		= FL_ALIGN_TOP_LEFT,
  FL_ALIGN_RIGHT_TOP		= FL_ALIGN_TOP_RIGHT,
  FL_ALIGN_LEFT_BOTTOM		= FL_ALIGN_BOTTOM_LEFT,
  FL_ALIGN_RIGHT_BOTTOM		= FL_ALIGN_BOTTOM_RIGHT,
  FL_ALIGN_NOWRAP		= 0
};

#define FL_HELVETICA		fltk::HELVETICA
#define FL_HELVETICA_BOLD	fltk::HELVETICA_BOLD
#define FL_HELVETICA_ITALIC	fltk::HELVETICA_ITALIC
#define FL_HELVETICA_BOLD_ITALIC fltk::HELVETICA_BOLD_ITALIC
#define FL_COURIER		fltk::COURIER
#define FL_COURIER_BOLD		fltk::COURIER_BOLD
#define FL_COURIER_ITALIC	fltk::COURIER_ITALIC
#define FL_COURIER_BOLD_ITALIC	fltk::COURIER_BOLD_ITALIC
#define FL_TIMES		fltk::TIMES
#define FL_TIMES_BOLD		fltk::TIMES_BOLD
#define FL_TIMES_ITALIC		fltk::TIMES_ITALIC
#define FL_TIMES_BOLD_ITALIC	fltk::TIMES_BOLD_ITALIC
#define FL_SYMBOL		fltk::SYMBOL_FONT
#define FL_SCREEN		fltk::SCREEN_FONT
#define FL_SCREEN_BOLD		fltk::SCREEN_BOLD_FONT
#define FL_ZAPF_DINGBATS	fltk::ZAPF_DINGBATS
//#define FL_FREE_FONT
// These used to be added to the above fonts but were sometimes used alone
// because FL_HELVETICA was zero. Only using these by themselves works now:
#define FL_BOLD			fltk::HELVETICA_BOLD
#define FL_ITALIC		fltk::HELVETICA_ITALIC

#define FL_NORMAL_SIZE (fltk::Widget::default_style->labelsize_)
#define FL_FOREGROUND_COLOR (fltk::Widget::default_style->labelcolor_)
#define FL_BACKGROUND2_COLOR (fltk::Widget::default_style->color_)
#define FL_SELECTION_COLOR (fltk::Widget::default_style->selection_color_)

#define Fl_Color	fltk::Color
enum {
  FL_GRAY0		= fltk::GRAY00,
  FL_DARK3		= fltk::GRAY33,
  FL_DARK2		= fltk::GRAY60,
  FL_DARK1		= fltk::GRAY66,
  FL_GRAY		= fltk::GRAY75,
  FL_BACKGROUND_COLOR	= fltk::GRAY75,
  FL_LIGHT1		= fltk::GRAY85,
  FL_LIGHT2		= fltk::GRAY90,
  FL_LIGHT3		= fltk::GRAY99,

  FL_BLACK		= fltk::BLACK,
  FL_RED		= fltk::RED,
  FL_GREEN		= fltk::GREEN,
  FL_YELLOW		= fltk::YELLOW,
  FL_BLUE		= fltk::BLUE,
  FL_MAGENTA		= fltk::MAGENTA,
  FL_CYAN		= fltk::CYAN,
  FL_DARK_RED		= 72,

  FL_DARK_GREEN		= 60,
  FL_DARK_YELLOW	= 76,
  FL_DARK_BLUE		= 136,
  FL_DARK_MAGENTA	= 152,
  FL_DARK_CYAN		= 140,

  FL_WHITE		= fltk::WHITE,

  FL_FREE_COLOR		= 16,
  FL_NUM_FREE_COLOR	= 16,
  FL_GRAY_RAMP		= fltk::GRAY00,
  FL_NUM_GRAY		= 24,
  FL_COLOR_CUBE		= fltk::BLACK,
  FL_NUM_RED		= 5,
  FL_NUM_GREEN		= 8,
  FL_NUM_BLUE		= 5
};

#define fl_inactive(c)		fltk::inactive(c)
#define fl_contrast(a,b)	fltk::contrast(a,b)
#define fl_color_average(a,b,c)	fltk::lerp(b,a,c)
#define fl_lighter(c)		fltk::lerp(fltk::WHITE,c,.67f)
#define fl_darker(c)		fltk::lerp(fltk::BLACK,c,.67f)
#define fl_rgb_color		fltk::color
#define fl_gray_ramp(i)		(fltk::GRAY00+(i))
#define fl_color_cube(r,g,b)	(((b)*5+(r))*8+(g)+fltk::BLACK)

#include <fltk/Cursor.h>
#define Fl_Cursor		fltk::Cursor*
#define FL_CURSOR_DEFAULT	fltk::CURSOR_DEFAULT
#define FL_CURSOR_ARROW		fltk::CURSOR_ARROW
#define FL_CURSOR_CROSS		fltk::CURSOR_CROSS
#define FL_CURSOR_WAIT		fltk::CURSOR_WAIT
#define FL_CURSOR_INSERT	fltk::CURSOR_INSERT
#define FL_CURSOR_HAND		fltk::CURSOR_HAND
#define FL_CURSOR_HELP		fltk::CURSOR_HELP
#define FL_CURSOR_MOVE		fltk::CURSOR_MOVE
#define FL_CURSOR_NS		fltk::CURSOR_NS
#define FL_CURSOR_WE		fltk::CURSOR_WE
#define FL_CURSOR_NWSE		fltk::CURSOR_NWSE
#define FL_CURSOR_NESW		fltk::CURSOR_NESW
#define FL_CURSOR_NO		fltk::CURSOR_NO
#define FL_CURSOR_NONE		fltk::CURSOR_NONE
#define FL_CURSOR_N		fltk::CURSOR_NS
#define FL_CURSOR_NE		fltk::CURSOR_NESW
#define FL_CURSOR_E		fltk::CURSOR_WE
#define FL_CURSOR_SE		fltk::CURSOR_NWSE
#define FL_CURSOR_S		fltk::CURSOR_NS
#define FL_CURSOR_SW		fltk::CURSOR_NESW
#define FL_CURSOR_W		fltk::CURSOR_WE
#define FL_CURSOR_NW		fltk::CURSOR_NWSE

enum { // must match values in fltk/run.h
  FL_READ = 1,
  FL_WRITE = 4,
  FL_EXCEPT = 8
};

enum Fl_Mode { // must match values in fltk/visual.h
  FL_RGB	= 0,
  FL_INDEX	= 1,
  FL_SINGLE	= 0,
  FL_DOUBLE	= 2,
  FL_ACCUM	= 4,
  FL_ALPHA	= 8,
  FL_DEPTH	= 16,
  FL_STENCIL	= 32,
  FL_RGB8	= 64,
  FL_MULTISAMPLE= 128,
  FL_STEREO     = 256,
  FL_FAKE_SINGLE = 512	// Fake single buffered windows using double-buffer
};

#include <fltk/damage.h>
enum Fl_Damage {
  FL_DAMAGE_CHILD    = fltk::DAMAGE_CHILD,
  FL_DAMAGE_EXPOSE   = fltk::DAMAGE_EXPOSE,
  FL_DAMAGE_SCROLL   = fltk::DAMAGE_SCROLL,
  FL_DAMAGE_OVERLAY  = fltk::DAMAGE_OVERLAY,
  FL_DAMAGE_ALL      = fltk::DAMAGE_ALL
};

// FLTK 1.0.x compatibility definitions...
#  ifdef FLTK_1_0_COMPAT
#    define contrast	fl_contrast
#    define down	fl_down
#    define frame	fl_frame
#    define inactive	fl_inactive
#  endif // FLTK_1_0_COMPAT

#endif

//
// End of "$Id: Enumerations.H 5389 2006-09-01 15:39:19Z spitzak $".
//