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
|
//
// Event and other names header file for the Fast Light Tool Kit (FLTK).
//
// Copyright 1998-2025 by Bill Spitzak and others.
//
// This library is free software. Distribution and use rights are outlined in
// the file "COPYING" which should have been included with this file. If this
// file is missing or damaged, see the license at:
//
// https://www.fltk.org/COPYING.php
//
// Please see the following page on how to report bugs and issues:
//
// https://www.fltk.org/bugs.php
//
// Thanks to Greg Ercolano for this addition.
/**
\file names.h
This file defines arrays of human readable names for FLTK symbolic constants.
*/
#ifndef FL_NAMES_H
#define FL_NAMES_H
#include <FL/Fl.H> // for event constants
/** \defgroup fl_events Events handling functions
@{
*/
/**
This is an array of event names you can use to convert event numbers into names.
The array gets defined inline wherever your '\#include <FL/names.h>' appears.
\b Example:
\code
#include <FL/names.h> // array will be defined here
int MyClass::handle(int e) {
printf("Event was %s (%d)\n", fl_eventnames[e], e);
// ..resulting output might be e.g. "Event was FL_PUSH (1)"..
[..]
}
\endcode
*/
static const char * const fl_eventnames[] = {
"FL_NO_EVENT",
"FL_PUSH",
"FL_RELEASE",
"FL_ENTER",
"FL_LEAVE",
"FL_DRAG",
"FL_FOCUS",
"FL_UNFOCUS",
"FL_KEYDOWN",
"FL_KEYUP",
"FL_CLOSE",
"FL_MOVE",
"FL_SHORTCUT",
"FL_DEACTIVATE",
"FL_ACTIVATE",
"FL_HIDE",
"FL_SHOW",
"FL_PASTE",
"FL_SELECTIONCLEAR",
"FL_MOUSEWHEEL",
"FL_DND_ENTER",
"FL_DND_DRAG",
"FL_DND_LEAVE",
"FL_DND_RELEASE",
"FL_SCREEN_CONFIGURATION_CHANGED",
"FL_FULLSCREEN",
"FL_ZOOM_GESTURE",
"FL_ZOOM_EVENT",
"FL_BEFORE_TOOLTIP",
"FL_BEFORE_MENU",
"FL_APP_ACTIVATE",
"FL_APP_DEACTIVATE"
};
#define FL_EVENTNAMES_MAX 32
/**
Return the C++ symbol of an Fl_Event as a string.
\param[in] event index as an integer
\return C++ symbol of event index as a string, or 0 if out of range
*/
inline const char *fl_eventname(int event) {
if (event >= 0 && event < FL_EVENTNAMES_MAX) {
return fl_eventnames[event];
}
return 0;
}
/**
This is an array of font names you can use to convert font numbers into names.
The array gets defined inline wherever your '\#include <FL/names.h>' appears.
\b Example:
\code
#include <FL/names.h> // array will be defined here
int MyClass::my_callback(Fl_Widget *w, void*) {
int fnum = w->labelfont();
// Resulting output might be e.g. "Label's font is FL_HELVETICA (0)"
printf("Label's font is %s (%d)\n", fl_fontnames[fnum], fnum);
// ..resulting output might be e.g. "Label's font is FL_HELVETICA (0)"..
[..]
}
\endcode
*/
const char * const fl_fontnames[] =
{
"FL_HELVETICA",
"FL_HELVETICA_BOLD",
"FL_HELVETICA_ITALIC",
"FL_HELVETICA_BOLD_ITALIC",
"FL_COURIER",
"FL_COURIER_BOLD",
"FL_COURIER_ITALIC",
"FL_COURIER_BOLD_ITALIC",
"FL_TIMES",
"FL_TIMES_BOLD",
"FL_TIMES_ITALIC",
"FL_TIMES_BOLD_ITALIC",
"FL_SYMBOL",
"FL_SCREEN",
"FL_SCREEN_BOLD",
"FL_ZAPF_DINGBATS",
};
/**
Return the C++ symbol of an Fl_Font as a string.
\param[in] font index as an integer
\return C++ symbol of font index as a string, or 0 if out of range
*/
inline const char *fl_fontname(int font) {
if (font >= 0 && font <= FL_ZAPF_DINGBATS) {
return fl_fontnames[font];
}
return 0;
}
/**
This is an array of callback reason names you can use to convert callback reasons into names.
The array gets defined inline wherever your '\#include <FL/names.h>' appears.
*/
const char * const fl_callback_reason_names[] =
{
"FL_REASON_UNKNOWN",
"FL_REASON_SELECTED",
"FL_REASON_DESELECTED",
"FL_REASON_RESELECTED",
"FL_REASON_OPENED",
"FL_REASON_CLOSED",
"FL_REASON_DRAGGED",
"FL_REASON_CANCELLED",
"FL_REASON_CHANGED",
"FL_REASON_GOT_FOCUS",
"FL_REASON_LOST_FOCUS",
"FL_REASON_RELEASED",
"FL_REASON_ENTER_KEY",
0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
"FL_REASON_USER", "FL_REASON_USER+1", "FL_REASON_USER+2", "FL_REASON_USER+3",
};
#define FL_REASON_NAMES_MAX 36
/**
Return the C++ symbol of an Fl_Callback_Reason as a string.
\param[in] reason as an integer
\return C++ symbol of reason as a string, or 0 if out of range or invalid
*/
inline const char *fl_callback_reason_name(int reason) {
if (reason >= 0 && reason < FL_REASON_NAMES_MAX) {
return fl_callback_reason_names[reason];
}
return 0;
}
/** @} */
#endif /* FL_NAMES_H */
|