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
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
|
#include <stdlib.h>
#include <stdio.h>
#include "iup.h"
#include "iupkey.h"
#define TEST_IMAGE_SIZE 20
static Ihandle* load_image_FileSave(void)
{
unsigned char imgdata[] = {
255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255,
255, 0, 255, 255, 183, 182, 245, 255, 183, 182, 245, 255, 179, 178, 243, 255, 174, 173, 241, 255, 168, 167, 238, 255, 162, 161, 234, 255, 155, 154, 231, 255, 148, 147, 228, 255, 143, 142, 224, 255, 136, 135, 221, 255, 129, 128, 218, 255, 123, 122, 214, 255, 117, 116, 211, 255, 112, 111, 209, 255, 255, 0, 255, 255,
255, 0, 255, 255, 179, 178, 243, 255, 190, 189, 255, 255, 147, 146, 248, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 246, 248, 251, 255, 75, 88, 190, 255, 89, 88, 176, 255, 89, 88, 176, 255, 255, 0, 255, 255,
255, 0, 255, 255, 173, 172, 240, 255, 190, 189, 255, 255, 138, 137, 239, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 246, 248, 251, 255, 234, 238, 246, 255, 63, 82, 184, 255, 51, 51, 103, 255, 86, 85, 170, 255, 255, 0, 255, 255,
255, 0, 255, 255, 167, 166, 237, 255, 190, 189, 255, 255, 129, 128, 230, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 246, 248, 251, 255, 234, 238, 246, 255, 222, 229, 240, 255, 52, 77, 179, 255, 122, 121, 223, 255, 83, 82, 164, 255, 255, 0, 255, 255,
255, 0, 255, 255, 159, 158, 233, 255, 190, 189, 255, 255, 119, 118, 220, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 246, 248, 251, 255, 234, 238, 246, 255, 222, 229, 240, 255, 210, 219, 234, 255, 40, 71, 173, 255, 114, 113, 215, 255, 80, 79, 159, 255, 255, 0, 255, 255,
255, 0, 255, 255, 152, 151, 229, 255, 190, 189, 255, 255, 110, 109, 211, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 246, 248, 251, 255, 234, 238, 246, 255, 222, 229, 240, 255, 210, 219, 234, 255, 198, 209, 229, 255, 28, 65, 167, 255, 103, 103, 204, 255, 77, 77, 154, 255, 255, 0, 255, 255,
255, 0, 255, 255, 146, 145, 226, 255, 190, 189, 255, 255, 103, 102, 204, 255, 255, 255, 255, 255, 255, 255, 255, 255, 246, 248, 251, 255, 234, 238, 246, 255, 222, 229, 240, 255, 210, 219, 234, 255, 198, 209, 229, 255, 189, 202, 225, 255, 17, 59, 161, 255, 92, 93, 194, 255, 74, 74, 148, 255, 255, 0, 255, 255,
255, 0, 255, 255, 139, 138, 223, 255, 188, 187, 255, 255, 183, 182, 255, 255, 96, 99, 201, 255, 86, 94, 196, 255, 75, 88, 190, 255, 63, 82, 184, 255, 52, 77, 179, 255, 40, 71, 173, 255, 28, 65, 167, 255, 17, 59, 161, 255, 92, 93, 193, 255, 84, 86, 186, 255, 71, 71, 143, 255, 255, 0, 255, 255,
255, 0, 255, 255, 132, 131, 219, 255, 180, 179, 255, 255, 174, 173, 255, 255, 164, 163, 252, 255, 143, 142, 244, 255, 135, 134, 236, 255, 129, 128, 230, 255, 122, 121, 223, 255, 114, 113, 215, 255, 108, 107, 209, 255, 92, 93, 193, 255, 84, 86, 186, 255, 76, 80, 178, 255, 68, 68, 137, 255, 255, 0, 255, 255,
255, 0, 255, 255, 124, 123, 215, 255, 170, 169, 255, 255, 160, 159, 251, 255, 148, 147, 245, 255, 75, 91, 113, 255, 75, 91, 113, 255, 75, 91, 113, 255, 75, 91, 113, 255, 82, 98, 118, 255, 91, 106, 125, 255, 84, 86, 186, 255, 76, 79, 178, 255, 68, 73, 170, 255, 65, 65, 131, 255, 255, 0, 255, 255,
255, 0, 255, 255, 118, 117, 212, 255, 160, 159, 255, 255, 145, 144, 245, 255, 135, 134, 236, 255, 75, 91, 113, 255, 0, 0, 0, 255, 52, 60, 71, 255, 206, 217, 233, 255, 212, 221, 236, 255, 103, 116, 133, 255, 67, 75, 174, 255, 68, 73, 170, 255, 60, 66, 163, 255, 62, 62, 125, 255, 255, 0, 255, 255,
255, 0, 255, 255, 112, 111, 209, 255, 154, 153, 255, 255, 135, 134, 236, 255, 129, 128, 230, 255, 75, 91, 113, 255, 52, 60, 71, 255, 104, 120, 141, 255, 216, 224, 237, 255, 224, 231, 241, 255, 115, 127, 143, 255, 53, 65, 163, 255, 60, 66, 162, 255, 53, 61, 156, 255, 60, 59, 120, 255, 255, 0, 255, 255,
255, 0, 255, 255, 108, 107, 207, 255, 143, 142, 243, 255, 129, 128, 230, 255, 36, 68, 170, 255, 33, 50, 71, 255, 171, 180, 195, 255, 179, 187, 198, 255, 188, 193, 202, 255, 196, 200, 206, 255, 72, 77, 86, 255, 51, 62, 158, 255, 54, 61, 156, 255, 49, 57, 152, 255, 57, 57, 114, 255, 255, 0, 255, 255,
255, 0, 255, 255, 108, 107, 207, 84, 101, 100, 195, 255, 86, 85, 170, 255, 83, 82, 164, 255, 80, 79, 159, 255, 77, 77, 154, 255, 74, 74, 148, 255, 71, 71, 143, 255, 68, 68, 137, 255, 65, 65, 131, 255, 60, 59, 120, 255, 60, 59, 120, 255, 57, 57, 114, 255, 55, 54, 110, 255, 255, 0, 255, 255,
255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255, 255, 0, 255, 255};
Ihandle* image = IupImageRGBA(16, 16, imgdata);
return image;
}
static unsigned char image_data_8 [TEST_IMAGE_SIZE*TEST_IMAGE_SIZE] =
{
5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,
5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,
5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,
5,0,0,0,1,1,1,1,1,1,2,2,2,2,2,2,0,0,0,5,
5,0,0,0,1,1,1,1,1,1,2,2,2,2,2,2,0,0,0,5,
5,0,0,0,1,1,1,1,1,1,2,2,2,2,2,2,0,0,0,5,
5,0,0,0,1,1,1,1,1,1,2,2,2,2,2,2,0,0,0,5,
5,0,0,0,1,1,1,1,1,1,2,2,2,2,2,2,0,0,0,5,
5,0,0,0,1,1,1,1,1,1,2,2,2,2,2,2,0,0,0,5,
5,0,0,0,3,3,3,3,3,3,4,4,4,4,4,4,0,0,0,5,
5,0,0,0,3,3,3,3,3,3,4,4,4,4,4,4,0,0,0,5,
5,0,0,0,3,3,3,3,3,3,4,4,4,4,4,4,0,0,0,5,
5,0,0,0,3,3,3,3,3,3,4,4,4,4,4,4,0,0,0,5,
5,0,0,0,3,3,3,3,3,3,4,4,4,4,4,4,0,0,0,5,
5,0,0,0,3,3,3,3,3,3,4,4,4,4,4,4,0,0,0,5,
5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,
5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,
5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,
5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
};
static unsigned char image_data_8_pressed [TEST_IMAGE_SIZE*TEST_IMAGE_SIZE] =
{
5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,
5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,
5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,
5,0,0,0,5,1,1,1,1,1,2,2,2,2,2,5,0,0,0,5,
5,0,0,0,1,5,1,1,1,1,2,2,2,2,5,2,0,0,0,5,
5,0,0,0,1,1,5,1,1,1,2,2,2,5,2,2,0,0,0,5,
5,0,0,0,1,1,1,5,1,1,2,2,5,2,2,2,0,0,0,5,
5,0,0,0,1,1,1,1,5,1,2,5,2,2,2,2,0,0,0,5,
5,0,0,0,1,1,1,1,1,5,5,2,2,2,2,2,0,0,0,5,
5,0,0,0,3,3,3,3,3,5,5,4,4,4,4,4,0,0,0,5,
5,0,0,0,3,3,3,3,5,3,4,5,4,4,4,4,0,0,0,5,
5,0,0,0,3,3,3,5,3,3,4,4,5,4,4,4,0,0,0,5,
5,0,0,0,3,3,5,3,3,3,4,4,4,5,4,4,0,0,0,5,
5,0,0,0,3,5,3,3,3,3,4,4,4,4,5,4,0,0,0,5,
5,0,0,0,5,3,3,3,3,3,4,4,4,4,4,5,0,0,0,5,
5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,
5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,
5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,
5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
};
static unsigned char image_data_8_inactive [TEST_IMAGE_SIZE*TEST_IMAGE_SIZE] =
{
5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,
5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,
5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,
5,0,0,0,5,5,1,1,1,1,1,1,1,5,5,5,0,0,0,5,
5,0,0,0,5,5,5,5,5,1,5,5,5,5,5,5,0,0,0,5,
5,0,0,0,5,5,5,5,5,1,5,5,5,5,5,5,0,0,0,5,
5,0,0,0,5,5,5,5,5,1,5,5,5,5,5,5,0,0,0,5,
5,0,0,0,5,5,5,5,5,1,5,5,5,5,5,5,0,0,0,5,
5,0,0,0,5,5,5,5,5,1,5,5,5,5,5,5,0,0,0,5,
5,0,0,0,5,5,5,5,5,1,5,5,5,5,5,5,0,0,0,5,
5,0,0,0,5,5,5,5,5,1,5,5,5,5,5,5,0,0,0,5,
5,0,0,0,5,5,5,5,5,1,5,5,5,5,5,5,0,0,0,5,
5,0,0,0,5,5,5,5,5,1,5,5,5,5,5,5,0,0,0,5,
5,0,0,0,5,5,5,5,5,1,5,5,5,5,5,5,0,0,0,5,
5,0,0,0,5,5,1,1,1,1,1,1,1,5,5,5,0,0,0,5,
5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,
5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,
5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,
5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,
};
static unsigned char image_data_24 [TEST_IMAGE_SIZE*TEST_IMAGE_SIZE*3] =
{
000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,
000,000,000,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,000,000,000,
000,000,000,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,000,000,000,
000,000,000,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,000,000,000,
000,000,000,255,255,255,255,255,255,255,255,255,255,000,000,255,000,000,255,000,000,255,000,000,255,000,000,255,000,000,000,255,000,000,255,000,000,255,000,000,255,000,000,255,000,255,255,255,255,255,255,255,255,255,255,255,255,000,000,000,
000,000,000,255,255,255,255,255,255,255,255,255,255,000,000,255,000,000,255,000,000,255,000,000,255,000,000,255,000,000,000,255,000,000,255,000,000,255,000,000,255,000,000,255,000,255,255,255,255,255,255,255,255,255,255,255,255,000,000,000,
000,000,000,255,255,255,255,255,255,255,255,255,255,000,000,255,000,000,255,000,000,255,000,000,255,000,000,255,000,000,000,255,000,000,255,000,000,255,000,000,255,000,000,255,000,255,255,255,255,255,255,255,255,255,255,255,255,000,000,000,
000,000,000,255,255,255,255,255,255,255,255,255,255,000,000,255,000,000,255,000,000,255,000,000,255,000,000,255,000,000,000,255,000,000,255,000,000,255,000,000,255,000,000,255,000,255,255,255,255,255,255,255,255,255,255,255,255,000,000,000,
000,000,000,255,255,255,255,255,255,255,255,255,255,000,000,255,000,000,255,000,000,255,000,000,255,000,000,255,000,000,000,255,000,000,255,000,000,255,000,000,255,000,000,255,000,255,255,255,255,255,255,255,255,255,255,255,255,000,000,000,
000,000,000,255,255,255,255,255,255,255,255,255,255,000,000,255,000,000,255,000,000,255,000,000,255,000,000,255,000,000,000,255,000,000,255,000,000,255,000,000,255,000,000,255,000,255,255,255,255,255,255,255,255,255,255,255,255,000,000,000,
000,000,000,255,255,255,255,255,255,255,255,255,000,000,255,000,000,255,000,000,255,000,000,255,000,000,255,000,000,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,000,000,000,
000,000,000,255,255,255,255,255,255,255,255,255,000,000,255,000,000,255,000,000,255,000,000,255,000,000,255,000,000,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,000,000,000,
000,000,000,255,255,255,255,255,255,255,255,255,000,000,255,000,000,255,000,000,255,000,000,255,000,000,255,000,000,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,000,000,000,
000,000,000,255,255,255,255,255,255,255,255,255,000,000,255,000,000,255,000,000,255,000,000,255,000,000,255,000,000,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,000,000,000,
000,000,000,255,255,255,255,255,255,255,255,255,000,000,255,000,000,255,000,000,255,000,000,255,000,000,255,000,000,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,000,000,000,
000,000,000,255,255,255,255,255,255,255,255,255,000,000,255,000,000,255,000,000,255,000,000,255,000,000,255,000,000,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,000,000,000,
000,000,000,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,000,000,000,
000,000,000,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,000,000,000,
000,000,000,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,000,000,000,
000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,
};
static unsigned char image_data_32 [TEST_IMAGE_SIZE*TEST_IMAGE_SIZE*4] =
{
000,000,000,255,000,000,000,255,000,000,000,255,000,000,000,255,000,000,000,255,000,000,000,255,000,000,000,255,000,000,000,255,000,000,000,255,000,000,000,255,000,000,000,255,000,000,000,255,000,000,000,255,000,000,000,255,000,000,000,255,000,000,000,255,000,000,000,255,000,000,000,255,000,000,000,255,000,000,000,255,
000,000,000,255,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,255,
000,000,000,255,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,255,
000,000,000,255,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,255,
000,000,000,255,000,000,000,000,000,000,000,000,000,000,000,000,255,000,000,255,255,000,000,255,255,000,000,255,255,000,000,255,255,000,000,255,255,000,000,255,000,255,000,255,000,255,000,255,000,255,000,255,000,255,000,255,000,255,000,255,000,255,000,255,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,255,
000,000,000,255,000,000,000,000,000,000,000,000,000,000,000,000,255,000,000,255,255,000,000,255,255,000,000,255,255,000,000,255,255,000,000,255,255,000,000,255,000,255,000,255,000,255,000,255,000,255,000,255,000,255,000,255,000,255,000,255,000,255,000,255,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,255,
000,000,000,255,000,000,000,000,000,000,000,000,000,000,000,000,255,000,000,255,255,000,000,255,255,000,000,255,255,000,000,255,255,000,000,255,255,000,000,255,000,255,000,255,000,255,000,255,000,255,000,255,000,255,000,255,000,255,000,255,000,255,000,255,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,255,
000,000,000,255,000,000,000,000,000,000,000,000,000,000,000,000,255,000,000,255,255,000,000,255,255,000,000,255,255,000,000,255,255,000,000,255,255,000,000,255,000,255,000,255,000,255,000,255,000,255,000,255,000,255,000,255,000,255,000,255,000,255,000,255,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,255,
000,000,000,255,000,000,000,000,000,000,000,000,000,000,000,000,255,000,000,255,255,000,000,255,255,000,000,255,255,000,000,255,255,000,000,255,255,000,000,255,000,255,000,255,000,255,000,255,000,255,000,255,000,255,000,255,000,255,000,255,000,255,000,255,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,255,
000,000,000,255,000,000,000,000,000,000,000,000,000,000,000,000,255,000,000,255,255,000,000,255,255,000,000,255,255,000,000,255,255,000,000,255,255,000,000,255,000,255,000,255,000,255,000,255,000,255,000,255,000,255,000,255,000,255,000,255,000,255,000,255,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,255,
000,000,000,255,000,000,000,000,000,000,000,000,000,000,000,000,000,000,255,255,000,000,255,255,000,000,255,255,000,000,255,255,000,000,255,255,000,000,255,255,255,255,255,192,255,255,255,192,255,255,255,192,255,255,255,192,255,255,255,192,255,255,255,192,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,255,
000,000,000,255,000,000,000,000,000,000,000,000,000,000,000,000,000,000,255,255,000,000,255,255,000,000,255,255,000,000,255,255,000,000,255,255,000,000,255,255,255,255,255,192,255,255,255,192,255,255,255,192,255,255,255,192,255,255,255,192,255,255,255,192,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,255,
000,000,000,255,000,000,000,000,000,000,000,000,000,000,000,000,000,000,255,255,000,000,255,255,000,000,255,255,000,000,255,255,000,000,255,255,000,000,255,255,255,255,255,192,255,255,255,192,255,255,255,192,255,255,255,192,255,255,255,192,255,255,255,192,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,255,
000,000,000,255,000,000,000,000,000,000,000,000,000,000,000,000,000,000,255,255,000,000,255,255,000,000,255,255,000,000,255,255,000,000,255,255,000,000,255,255,255,255,255,192,255,255,255,192,255,255,255,192,255,255,255,192,255,255,255,192,255,255,255,192,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,255,
000,000,000,255,000,000,000,000,000,000,000,000,000,000,000,000,000,000,255,255,000,000,255,255,000,000,255,255,000,000,255,255,000,000,255,255,000,000,255,255,255,255,255,192,255,255,255,192,255,255,255,192,255,255,255,192,255,255,255,192,255,255,255,192,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,255,
000,000,000,255,000,000,000,000,000,000,000,000,000,000,000,000,000,000,255,255,000,000,255,255,000,000,255,255,000,000,255,255,000,000,255,255,000,000,255,255,255,255,255,192,255,255,255,192,255,255,255,192,255,255,255,192,255,255,255,192,255,255,255,192,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,255,
000,000,000,255,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,255,
000,000,000,255,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,255,
000,000,000,255,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,255,
000,000,000,255,000,000,000,255,000,000,000,255,000,000,000,255,000,000,000,255,000,000,000,255,000,000,000,255,000,000,000,255,000,000,000,255,000,000,000,255,000,000,000,255,000,000,000,255,000,000,000,255,000,000,000,255,000,000,000,255,000,000,000,255,000,000,000,255,000,000,000,255,000,000,000,255,000,000,000,255,
};
static char* get_name(Ihandle* ih)
{
return IupGetAttribute(ih, "NAME");
}
static int action_cb(Ihandle *ih)
{
printf("ACTION(%s)\n", get_name(ih));
return IUP_DEFAULT;
}
static int getfocus_cb(Ihandle *ih)
{
printf("GETFOCUS_CB(%s)\n", get_name(ih));
return IUP_DEFAULT;
}
static int help_cb(Ihandle* ih)
{
printf("HELP_CB(%s)\n", get_name(ih));
return IUP_DEFAULT;
}
static int killfocus_cb(Ihandle *ih)
{
printf("KILLFOCUS_CB(%s)\n", get_name(ih));
return IUP_DEFAULT;
}
static int leavewindow_cb(Ihandle *ih)
{
printf("LEAVEWINDOW_CB(%s)\n", get_name(ih));
return IUP_DEFAULT;
}
static int enterwindow_cb(Ihandle *ih)
{
printf("ENTERWINDOW_CB(%s)\n", get_name(ih));
return IUP_DEFAULT;
}
static int button_cb(Ihandle *ih,int but,int pressed,int x,int y,char* status)
{
printf("BUTTON_CB(%s, but=%c (%d), x=%d, y=%d [%s])\n", get_name(ih),(char)but,pressed,x,y, status);
return IUP_DEFAULT;
}
char *iupKeyCodeToName(int code);
static int k_any(Ihandle *ih, int c)
{
if (iup_isprint(c))
printf("K_ANY(%s, %d = %s \'%c\')\n", get_name(ih), c, iupKeyCodeToName(c), (char)c);
else
printf("K_ANY(%s, %d = %s)\n", get_name(ih), c, iupKeyCodeToName(c));
printf(" MODKEYSTATE(%s)\n", IupGetGlobal("MODKEYSTATE"));
return IUP_DEFAULT;
}
static int active_cb(Ihandle *ih)
{
static int active = 1;
Ihandle* dlg = IupGetDialog(ih);
Ihandle* box = IupGetChild(dlg, 0);
if (active)
IupSetAttribute(box, "ACTIVE", "NO");
else
IupSetAttribute(box, "ACTIVE", "YES");
active = !active;
IupSetAttribute(ih, "ACTIVE", "YES");
return IUP_DEFAULT;
}
static void set_callbacks(Ihandle* button)
{
IupSetCallback(button, "ACTION", action_cb);
// IupSetCallback(button, "BUTTON_CB", (Icallback)button_cb);
IupSetCallback(button, "K_ANY", (Icallback)k_any);
IupSetCallback(button, "HELP_CB", (Icallback)help_cb);
// IupSetCallback(button, "GETFOCUS_CB", (Icallback)getfocus_cb);
// IupSetCallback(button, "KILLFOCUS_CB", (Icallback)killfocus_cb);
// IupSetCallback(button, "ENTERWINDOW_CB", (Icallback)enterwindow_cb);
// IupSetCallback(button, "LEAVEWINDOW_CB", (Icallback)leavewindow_cb);
}
static int show_cb(Ihandle *ih, int state)
{
char* state_str[5] ={
"SHOW",
"RESTORE",
"MINIMIZE",
"MAXIMIZE",
"HIDE"
};
printf("SHOW_CB(%s, %s)\n", IupGetAttribute(ih, "TESTTITLE"), state_str[state]);
return IUP_DEFAULT;
}
void ButtonTest(void)
{
Ihandle *dlg, *button, *label, *image1, *image1i, *image1p, *image2, *image3,
*box1, *box2;
/* IupImageLibOpen(); */
box1 = IupVbox(NULL);
IupSetAttribute(box1, "MARGIN", "5x5");
IupSetAttribute(box1, "GAP", "5");
// IupSetAttribute(box1, "BGCOLOR", "75 150 170");
// IupSetAttribute(box1, "PADDING", "15x15");
button = IupButton("ACTIVE", NULL);
IupSetAttribute(button, "TITLE", "Button Text");
IupSetCallback(button, "ACTION", active_cb);
IupAppend(box1, button);
button = IupButton(NULL, NULL);
IupSetAttribute(button, "TITLE", "Text (çãí)");
// IupSetAttribute(button, "TITLE", "Text");
//IupSetAttribute(button, "TITLE", "Text &Button\nSecond Line");
IupSetAttribute(button, "TIP", "Button Tip");
//IupSetAttribute(button, "PADDING", "15x15");
//IupSetAttribute(button, "BGCOLOR", "128 128 255");
IupSetAttribute(button, "SIZE", "40");
// IupSetAttribute(button, "FGCOLOR", "0 0 255");
// IupSetAttribute(button, "RASTERSIZE", "200x100");
IupSetAttribute(button, "ALIGNMENT", "ACENTER:ACENTER");
// IupSetAttribute(button, "ALIGNMENT", "ALEFT:ATOP");
IupSetAttribute(button, "NAME", "button1");
set_callbacks(button);
IupAppend(box1, button);
button = IupButton(NULL, NULL);
IupSetAttribute(button, "TITLE", "Text Button\nSecond Line");
IupSetAttribute(button, "RASTERSIZE", "200x100");
IupSetAttribute(button, "ALIGNMENT", "ACENTER:ACENTER");
IupSetAttribute(button, "FONT", "Helvetica, 14");
IupSetAttribute(button, "FLAT", "YES");
IupSetAttribute(button, "NAME", "button2");
set_callbacks(button);
IupAppend(box1, button);
button = IupButton(NULL, NULL);
IupSetAttribute(button, "TITLE", "Text Button\n<b>Second Line</b>");
IupSetAttribute(button, "RASTERSIZE", "200x100");
IupSetAttribute(button, "ALIGNMENT", "ARIGHT:ABOTTOM");
IupSetAttribute(button, "MARKUP", "YES");
IupSetAttribute(button, "NAME", "button3");
IupSetAttribute(button, "CANFOCUS", "NO");
set_callbacks(button);
IupAppend(box1, button);
box2 = IupVbox(NULL);
IupSetAttribute(box2, "MARGIN", "5x5");
IupSetAttribute(box2, "GAP", "5");
// IupSetAttribute(box2, "BGCOLOR", "75 150 170");
// IupSetAttribute(box2, "PADDING", "15x15");
image1 = IupImage(TEST_IMAGE_SIZE, TEST_IMAGE_SIZE, image_data_8);
IupSetAttribute(image1, "0", "BGCOLOR");
IupSetAttribute(image1, "1", "255 0 0");
IupSetAttribute(image1, "2", "0 255 0");
IupSetAttribute(image1, "3", "0 0 255");
IupSetAttribute(image1, "4", "255 255 255");
IupSetAttribute(image1, "5", "0 0 0");
image1i = IupImage(TEST_IMAGE_SIZE, TEST_IMAGE_SIZE, image_data_8_inactive);
IupSetAttribute(image1i, "0", "BGCOLOR");
IupSetAttribute(image1i, "1", "255 0 0");
IupSetAttribute(image1i, "2", "0 255 0");
IupSetAttribute(image1i, "3", "0 0 255");
IupSetAttribute(image1i, "4", "255 255 255");
IupSetAttribute(image1i, "5", "0 0 0");
image1p = IupImage(TEST_IMAGE_SIZE, TEST_IMAGE_SIZE, image_data_8_pressed);
IupSetAttribute(image1p, "0", "BGCOLOR");
IupSetAttribute(image1p, "1", "255 0 0");
IupSetAttribute(image1p, "2", "0 255 0");
IupSetAttribute(image1p, "3", "0 0 255");
IupSetAttribute(image1p, "4", "255 255 255");
IupSetAttribute(image1p, "5", "0 0 0");
image2 = IupImageRGB(TEST_IMAGE_SIZE, TEST_IMAGE_SIZE, image_data_24);
image3 = IupImageRGBA(TEST_IMAGE_SIZE, TEST_IMAGE_SIZE, image_data_32);
button = IupButton(NULL, NULL);
IupSetAttribute(button, "TITLE", "Images");
IupSetAttributeHandle(button, "IMAGE", load_image_FileSave());
IupAppend(box2, button);
button = IupButton(NULL, NULL);
// IupSetAttribute(button, "ALIGNMENT", "ALEFT:ATOP");
// IupSetAttribute(button, "RASTERSIZE", "200x100");
// IupSetAttribute(button, "IMAGEPOSITION", "BOTTOM");
// IupSetAttribute(button, "PADDING", "5x5");
// IupSetAttribute(button, "TITLE", "Text1");
// IupSetAttribute(button, "FONT", "Helvetica, 14");
// IupSetAttribute(button, "IMAGE", "IUP_Tecgraf");
IupSetAttributeHandle(button, "IMAGE", image1);
// IupSetAttributeHandle(button, "IMINACTIVE", image1i);
IupSetAttributeHandle(button, "IMPRESS", image1p);
IupSetAttribute(button, "TIP", "Image Label");
IupSetAttribute(button, "NAME", "button4");
set_callbacks(button);
IupAppend(box2, button);
button = IupButton(NULL, NULL);
IupSetAttributeHandle(button, "IMAGE", image2);
// IupSetAttribute(button, "TITLE", "Text2");
// IupSetAttribute(button, "IMAGEPOSITION", "TOP");
// IupSetAttribute(button, "SPACING", "30");
// IupSetAttribute(button, "ALIGNMENT", "ALEFT");
// IupSetAttribute(button, "RASTERSIZE", "200x100");
IupSetAttribute(button, "FLAT", "YES");
// IupSetAttributeHandle(button, "IMPRESS", image2);
// IupSetAttribute(button, "FOCUSONCLICK", "NO");
// IupSetAttribute(button, "RASTERSIZE", "15x15");
IupSetAttribute(button, "NAME", "button5");
set_callbacks(button);
IupAppend(box2, button);
button = IupButton(NULL, NULL);
IupSetAttributeHandle(button, "IMAGE", image3);
IupSetAttribute(button, "TITLE", "Text3");
// IupSetAttribute(button, "RASTERSIZE", "200x100");
// IupSetAttribute(button, "ALIGNMENT", "ARIGHT");
IupSetAttribute(button, "NAME", "button6");
set_callbacks(button);
IupAppend(box2, button);
label = IupLabel(NULL);
IupSetAttribute(label, "SEPARATOR", "VERTICAL");
IupSetHandle("teste1", label);
IupSetHandle("xxxx", label);
IupSetHandle("teste2", label);
IupSetHandle("yyy", label);
IupSetHandle("dasdasdas", label);
IupSetHandle("label", label);
dlg = IupDialog(IupHbox(box1, label, box2, NULL));
IupSetAttribute(dlg, "TITLE", "IupButton Test");
// IupSetAttribute(box1, "BGCOLOR", "128 0 0");
// IupSetAttribute(dlg, "BGCOLOR", "0 128 0");
IupSetAttribute(dlg, "BACKGROUND", "255 128 128");
// IupSetAttributeHandle(dlg, "BACKGROUND", image2);
IupSetAttributeHandle(dlg, "STARTFOCUS", button);
IupShow(dlg);
}
#ifndef BIG_TEST
int main(int argc, char* argv[])
{
IupOpen(&argc, &argv);
ButtonTest();
IupMainLoop();
IupClose();
return EXIT_SUCCESS;
}
#endif
|