iup-ffi 0.12.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (64) hide show
  1. checksums.yaml +7 -0
  2. data/LICENCE.txt +21 -0
  3. data/README.rdoc +348 -0
  4. data/lib/iup-ffi-plain.rb +9 -0
  5. data/lib/iup-ffi.rb +76 -0
  6. data/lib/plain/iupcdlib.rb +107 -0
  7. data/lib/plain/iupcontrolslib.rb +24 -0
  8. data/lib/plain/iupimglib.rb +14 -0
  9. data/lib/plain/iupimlib.rb +16 -0
  10. data/lib/plain/iuplib.rb +209 -0
  11. data/lib/plain/scintilla-lib.rb +15 -0
  12. data/lib/wrapped/attribute-builders.rb +105 -0
  13. data/lib/wrapped/attribute-reference.rb +27 -0
  14. data/lib/wrapped/background-box.rb +33 -0
  15. data/lib/wrapped/button.rb +108 -0
  16. data/lib/wrapped/callback-setter.rb +78 -0
  17. data/lib/wrapped/canvas.rb +467 -0
  18. data/lib/wrapped/colourbar.rb +94 -0
  19. data/lib/wrapped/colourdialog.rb +63 -0
  20. data/lib/wrapped/common-attributes.rb +64 -0
  21. data/lib/wrapped/constants.rb +953 -0
  22. data/lib/wrapped/dial.rb +87 -0
  23. data/lib/wrapped/dialog.rb +176 -0
  24. data/lib/wrapped/dialogs.rb +106 -0
  25. data/lib/wrapped/drag-drop-attributes.rb +57 -0
  26. data/lib/wrapped/dynamic-fill-methods.rb +27 -0
  27. data/lib/wrapped/expander.rb +65 -0
  28. data/lib/wrapped/filedialog.rb +93 -0
  29. data/lib/wrapped/fill.rb +26 -0
  30. data/lib/wrapped/fontdialog.rb +42 -0
  31. data/lib/wrapped/frame.rb +47 -0
  32. data/lib/wrapped/gridbox.rb +94 -0
  33. data/lib/wrapped/hbox.rb +49 -0
  34. data/lib/wrapped/image-attributes.rb +27 -0
  35. data/lib/wrapped/image.rb +118 -0
  36. data/lib/wrapped/internal-drag-drop-attributes.rb +21 -0
  37. data/lib/wrapped/iup-global.rb +51 -0
  38. data/lib/wrapped/label.rb +98 -0
  39. data/lib/wrapped/link.rb +59 -0
  40. data/lib/wrapped/list.rb +353 -0
  41. data/lib/wrapped/matrix.rb +233 -0
  42. data/lib/wrapped/menu.rb +50 -0
  43. data/lib/wrapped/menuitem.rb +80 -0
  44. data/lib/wrapped/messagedialog.rb +51 -0
  45. data/lib/wrapped/progressbar.rb +48 -0
  46. data/lib/wrapped/progressdialog.rb +111 -0
  47. data/lib/wrapped/radio.rb +43 -0
  48. data/lib/wrapped/scintilla.rb +277 -0
  49. data/lib/wrapped/scrollbar-attributes.rb +141 -0
  50. data/lib/wrapped/scrollbox.rb +147 -0
  51. data/lib/wrapped/separator.rb +11 -0
  52. data/lib/wrapped/splitbox.rb +48 -0
  53. data/lib/wrapped/stretchbox.rb +42 -0
  54. data/lib/wrapped/submenu.rb +34 -0
  55. data/lib/wrapped/tabs.rb +149 -0
  56. data/lib/wrapped/text.rb +225 -0
  57. data/lib/wrapped/timer.rb +42 -0
  58. data/lib/wrapped/toggle.rb +98 -0
  59. data/lib/wrapped/tree.rb +465 -0
  60. data/lib/wrapped/val.rb +97 -0
  61. data/lib/wrapped/vbox.rb +51 -0
  62. data/lib/wrapped/widget.rb +137 -0
  63. data/lib/wrapped/zbox.rb +54 -0
  64. metadata +124 -0
@@ -0,0 +1,953 @@
1
+ # Iup is the main module, in which all controls and widgets are named.
2
+ #
3
+ # The module also provides constants and supporting methods.
4
+ #
5
+ # == Constants
6
+ #--
7
+ # TODO: Check if constants are used in single or multiple places.
8
+ # If single (e.g. canvas / scrollbars), they can be moved to those files.
9
+ #++
10
+ #
11
+ # === predefined colours
12
+ #
13
+ # * CD_RED
14
+ # * CD_DARK_RED
15
+ # * CD_GREEN
16
+ # * CD_DARK_GREEN
17
+ # * CD_BLUE
18
+ # * CD_DARK_BLUE
19
+ #
20
+ # * CD_YELLOW
21
+ # * CD_DARK_YELLOW
22
+ # * CD_MAGENTA
23
+ # * CD_DARK_MAGENTA
24
+ # * CD_CYAN
25
+ # * CD_DARK_CYAN
26
+ #
27
+ # * CD_WHITE
28
+ # * CD_BLACK
29
+ #
30
+ # * CD_DARK_GRAY
31
+ # * CD_GRAY
32
+ #
33
+ #
34
+ # === operations on vertical scrollbar (ScrollBarAttributes#scroll_cb)
35
+ #
36
+ # * IUP_SBUP : line up
37
+ # * IUP_SBDN : line down
38
+ # * IUP_SBPGUP : page up
39
+ # * IUP_SBPGDN : page down
40
+ # * IUP_SBPOSV : vertical positioning
41
+ # * IUP_SBDRAGV : vertical drag
42
+ #
43
+ # === operations on horizontal scrollbar (ScrollBarAttributes#scroll_cb)
44
+ #
45
+ # * IUP_SBLEFT : column left
46
+ # * IUP_SBRIGHT : column right
47
+ # * IUP_SBPGLEFT : page left
48
+ # * IUP_SBPGRIGHT : page right
49
+ # * IUP_SBPOSH : horizontal positioning
50
+ # * IUP_SBDRAGH : horizontal drag
51
+ #
52
+ #
53
+ # === line style
54
+ #
55
+ # * CD_CONTINUOUS
56
+ # * CD_DASHED
57
+ # * CD_DOTTED
58
+ # * CD_DASH_DOT
59
+ # * CD_DASH_DOT_DOT
60
+ # * CD_CUSTOM
61
+ #
62
+ # === line join
63
+ #
64
+ # * CD_MITER
65
+ # * CD_BEVEL
66
+ # * CD_ROUND
67
+ #
68
+ # === line cap
69
+ #
70
+ # * CD_CAPFLAT
71
+ # * CD_CAPSQUARE
72
+ # * CD_CAPROUND
73
+ #
74
+ # === mark type
75
+ #
76
+ # * CD_PLUS
77
+ # * CD_STAR
78
+ # * CD_CIRCLE
79
+ # * CD_X
80
+ # * CD_BOX
81
+ # * CD_DIAMOND
82
+ # * CD_HOLLOW_CIRCLE
83
+ # * CD_HOLLOW_BOX
84
+ # * CD_HOLLOW_DIAMOND
85
+ #
86
+ # === background opacity mode
87
+ #
88
+ # * CD_OPAQUE
89
+ # * CD_TRANSPARENT
90
+ #
91
+ # === fill mode
92
+ #
93
+ # * CD_EVENODD
94
+ # * CD_WINDING
95
+ #
96
+ # === hatch type
97
+ #
98
+ # * CD_HORIZONTAL
99
+ # * CD_VERTICAL
100
+ # * CD_FDIAGONAL
101
+ # * CD_BDIAGONAL
102
+ # * CD_CROSS
103
+ # * CD_DIAGCROSS
104
+ #
105
+ # === interior style
106
+ #
107
+ # * CD_SOLID
108
+ # * CD_HATCH
109
+ # * CD_STIPPLE
110
+ # * CD_PATTERN
111
+ # * CD_HOLLOW
112
+ #
113
+ # === path actions
114
+ #
115
+ # * CD_PATH_NEW
116
+ # * CD_PATH_MOVETO
117
+ # * CD_PATH_LINETO
118
+ # * CD_PATH_ARC
119
+ # * CD_PATH_CURVETO
120
+ # * CD_PATH_CLOSE
121
+ # * CD_PATH_FILL
122
+ # * CD_PATH_STROKE
123
+ # * CD_PATH_FILLSTROKE
124
+ # * CD_PATH_CLIP
125
+ #
126
+ # === polygon mode (begin...end)
127
+ #
128
+ # * CD_FILL
129
+ # * CD_OPEN_LINES
130
+ # * CD_CLOSED_LINES
131
+ # * CD_CLIP
132
+ # * CD_BEZIER
133
+ # * CD_REGION
134
+ # * CD_PATH
135
+ #
136
+ # * CD_POLYCUSTOM
137
+ #
138
+ # === write mode
139
+ #
140
+ # * CD_REPLACE
141
+ # * CD_XOR
142
+ # * CD_NOT_XOR
143
+ #
144
+ # === text alignment
145
+ #
146
+ # * CD_NORTH
147
+ # * CD_SOUTH
148
+ # * CD_EAST
149
+ # * CD_WEST
150
+ # * CD_NORTH_EAST
151
+ # * CD_NORTH_WEST
152
+ # * CD_SOUTH_EAST
153
+ # * CD_SOUTH_WEST
154
+ # * CD_CENTER
155
+ # * CD_BASE_LEFT
156
+ # * CD_BASE_CENTER
157
+ # * CD_BASE_RIGHT
158
+ #
159
+ # === text styles
160
+ #
161
+ # * CD_PLAIN : plain text
162
+ # * CD_BOLD : bold text
163
+ # * CD_ITALIC : italic text
164
+ # * CD_UNDERLINE : underline text (only windows and pdf)
165
+ # * CD_STRIKEOUT : strikeout text (only windows and pdf)
166
+ #
167
+ # * CD_BOLD_ITALIC : bold and italic text
168
+ #
169
+ module Iup
170
+
171
+ # Common Flags and Return Values
172
+
173
+ ERROR = 1
174
+ NOERROR = 0
175
+ OPENED = -1
176
+ INVALID = -1
177
+ INVALID_ID = -10
178
+
179
+ # Callback Return Values
180
+
181
+ IGNORE = -1
182
+ DEFAULT = -2
183
+ CLOSE = -3
184
+ CONTINUE = -4
185
+
186
+ # IupPopup and IupShowXY Parameter Values
187
+
188
+ CENTER = 0xFFFF # 65535
189
+ LEFT = 0xFFFE # 65534
190
+ RIGHT = 0xFFFD # 65533
191
+ MOUSEPOS = 0xFFFC # 65532
192
+ CURRENT = 0xFFFB # 65531
193
+ CENTERPARENT = 0xFFFA # 65530
194
+ TOP = LEFT
195
+ BOTTOM = RIGHT
196
+
197
+ # Mouse Button Values and Macros
198
+
199
+ BUTTON1 = '1'
200
+ BUTTON2 = '2'
201
+ BUTTON3 = '3'
202
+ BUTTON4 = '4'
203
+ BUTTON5 = '5'
204
+
205
+ # Pre-Defined Masks
206
+
207
+ MASK_FLOAT = "[+/-]?(/d+/.?/d*|/./d+)"
208
+ MASK_UFLOAT = "(/d+/.?/d*|/./d+)"
209
+ MASK_EFLOAT = "[+/-]?(/d+/.?/d*|/./d+)([eE][+/-]?/d+)?"
210
+ MASK_INT = "[+/-]?/d+"
211
+ MASK_UINT = "/d+"
212
+
213
+ # IupGetParam Callback situations
214
+
215
+ GETPARAM_OK = -1
216
+ GETPARAM_INIT = -2
217
+ GETPARAM_CANCEL = -3
218
+ GETPARAM_HELP = -4
219
+
220
+ # Key definitions
221
+
222
+ # from 32 to 126, all character sets are equal,
223
+ # the key code is the same as the ASCii character code.
224
+
225
+ K_SP = ' '.ord
226
+ K_exclam = '!'.ord
227
+ K_quotedbl = "\"".ord
228
+ K_numbersign = '#'.ord
229
+ K_dollar = '$'.ord
230
+ K_percent = '%'.ord
231
+ K_ampersand = '&'.ord
232
+ K_apostrophe = "\'".ord
233
+ K_parentleft = '('.ord
234
+ K_parentright =')'.ord
235
+ K_asterisk = '*'.ord
236
+ K_plus = '+'.ord
237
+ K_comma = ','.ord
238
+ K_minus = '-'.ord
239
+ K_period = '.'.ord
240
+ K_slash = '/'.ord
241
+ K_0 = '0'.ord
242
+ K_1 = '1'.ord
243
+ K_2 = '2'.ord
244
+ K_3 = '3'.ord
245
+ K_4 = '4'.ord
246
+ K_5 = '5'.ord
247
+ K_6 = '6'.ord
248
+ K_7 = '7'.ord
249
+ K_8 = '8'.ord
250
+ K_9 = '9'.ord
251
+ K_colon = ':'.ord
252
+ K_semicolon = ';'.ord
253
+ K_less = '<'.ord
254
+ K_equal = '='.ord
255
+ K_greater = '>'.ord
256
+ K_question = '?'.ord
257
+ K_at = '@'.ord
258
+ K_A = 'A'.ord
259
+ K_B = 'B'.ord
260
+ K_C = 'C'.ord
261
+ K_D = 'D'.ord
262
+ K_E = 'E'.ord
263
+ K_F = 'F'.ord
264
+ K_G = 'G'.ord
265
+ K_H = 'H'.ord
266
+ K_I = 'I'.ord
267
+ K_J = 'J'.ord
268
+ K_K = 'K'.ord
269
+ K_L = 'L'.ord
270
+ K_M = 'M'.ord
271
+ K_N = 'N'.ord
272
+ K_O = 'O'.ord
273
+ K_P = 'P'.ord
274
+ K_Q = 'Q'.ord
275
+ K_R = 'R'.ord
276
+ K_S = 'S'.ord
277
+ K_T = 'T'.ord
278
+ K_U = 'U'.ord
279
+ K_V = 'V'.ord
280
+ K_W = 'W'.ord
281
+ K_X = 'X'.ord
282
+ K_Y = 'Y'.ord
283
+ K_Z = 'Z'.ord
284
+ K_bracketleft ='['.ord
285
+ K_backslash = "\\".ord
286
+ K_bracketright =']'.ord
287
+ K_circum = '^'.ord
288
+ K_underscore = '_'.ord
289
+ K_grave = '`'.ord
290
+ K_a = 'a'.ord
291
+ K_b = 'b'.ord
292
+ K_c = 'c'.ord
293
+ K_d = 'd'.ord
294
+ K_e = 'e'.ord
295
+ K_f = 'f'.ord
296
+ K_g = 'g'.ord
297
+ K_h = 'h'.ord
298
+ K_i = 'i'.ord
299
+ K_j = 'j'.ord
300
+ K_k = 'k'.ord
301
+ K_l = 'l'.ord
302
+ K_m = 'm'.ord
303
+ K_n = 'n'.ord
304
+ K_o = 'o'.ord
305
+ K_p = 'p'.ord
306
+ K_q = 'q'.ord
307
+ K_r = 'r'.ord
308
+ K_s = 's'.ord
309
+ K_t = 't'.ord
310
+ K_u = 'u'.ord
311
+ K_v = 'v'.ord
312
+ K_w = 'w'.ord
313
+ K_x = 'x'.ord
314
+ K_y = 'y'.ord
315
+ K_z = 'z'.ord
316
+ K_braceleft = '{'.ord
317
+ K_bar = '|'.ord
318
+ K_braceright = '}'.ord
319
+ K_tilde = '~'.ord
320
+
321
+ ## Printable ASCii keys */
322
+
323
+ #define iup_isprint(_c) ((_c) > 31 && (_c) < 127)
324
+
325
+ # also define the escape sequences that have keys associated
326
+
327
+ K_BS = "\b".ord
328
+ K_TAB = "\t".ord
329
+ K_LF = "\n".ord
330
+ K_CR = "\r".ord
331
+
332
+ # IUP Extended Key Codes, range start at 128
333
+
334
+ #define iup_isXkey(_c) ((_c) >= 128)
335
+
336
+ # These use the same definition as X11 and GDK.
337
+ # This also means that any X11 or GDK definition can also be used.
338
+
339
+ K_PAUSE = 0xFF13
340
+ K_ESC = 0xFF1B
341
+ K_HOME = 0xFF50
342
+ K_LEFT = 0xFF51
343
+ K_UP = 0xFF52
344
+ K_RIGHT = 0xFF53
345
+ K_DOWN = 0xFF54
346
+ K_PGUP = 0xFF55
347
+ K_PGDN = 0xFF56
348
+ K_END = 0xFF57
349
+ K_MIDDLE = 0xFF0B
350
+ K_Print = 0xFF61
351
+ K_INS = 0xFF63
352
+ K_Menu = 0xFF67
353
+ K_DEL = 0xFFFF
354
+ K_F1 = 0xFFBE
355
+ K_F2 = 0xFFBF
356
+ K_F3 = 0xFFC0
357
+ K_F4 = 0xFFC1
358
+ K_F5 = 0xFFC2
359
+ K_F6 = 0xFFC3
360
+ K_F7 = 0xFFC4
361
+ K_F8 = 0xFFC5
362
+ K_F9 = 0xFFC6
363
+ K_F10 = 0xFFC7
364
+ K_F11 = 0xFFC8
365
+ K_F12 = 0xFFC9
366
+
367
+ # no Shift/Ctrl/Alt */
368
+ K_LSHIFT = 0xFFE1
369
+ K_RSHIFT = 0xFFE2
370
+ K_LCTRL = 0xFFE3
371
+ K_RCTRL = 0xFFE4
372
+ K_LALT = 0xFFE9
373
+ K_RALT = 0xFFEA
374
+
375
+ K_NUM = 0xFF7F
376
+ K_SCROLL = 0xFF14
377
+ K_CAPS = 0xFFE5
378
+
379
+ # Also, these are the same as the Latin-1 definition */
380
+
381
+ K_ccedilla = 0x00E7
382
+ K_Ccedilla = 0x00C7
383
+ K_acute = 0x00B4 # no Shift/Ctrl/Alt */
384
+ K_diaeresis = 0x00A8
385
+
386
+ #*****************************************************/
387
+ # Modifiers use last 4 bits. Since IUP 3.9 */
388
+ # These modifiers definitions are specific to IUP */
389
+ #*****************************************************/
390
+
391
+ #define iup_isShiftXkey(_c) ((_c) & 0x10000000)
392
+ #define iup_isCtrlXkey(_c) ((_c) & 0x20000000)
393
+ #define iup_isAltXkey(_c) ((_c) & 0x40000000)
394
+ #define iup_isSysXkey(_c) ((_c) & 0x80000000)
395
+
396
+ #define iup_XkeyBase(_c) ((_c) & 0x0FFFFFFF)
397
+ #define iup_XkeyShift(_c) ((_c) | 0x10000000) # Shift */
398
+ #define iup_XkeyCtrl(_c) ((_c) | 0x20000000) # Ctrl */
399
+ #define iup_XkeyAlt(_c) ((_c) | 0x40000000) # Alt */
400
+ #define iup_XkeySys(_c) ((_c) | 0x80000000) # Sys (Win or Apple) */
401
+
402
+ # These definitions are here for backward compatibility
403
+ # and to simplify some key combination usage.
404
+ # But since IUP 3.9, modifiers can be combined with any key
405
+ # and they can be mixed togheter. */
406
+
407
+ #define K_sHOME iup_XkeyShift(K_HOME )
408
+ #define K_sUP iup_XkeyShift(K_UP )
409
+ #define K_sPGUP iup_XkeyShift(K_PGUP )
410
+ #define K_sLEFT iup_XkeyShift(K_LEFT )
411
+ #define K_sMIDDLE iup_XkeyShift(K_MIDDLE )
412
+ #define K_sRIGHT iup_XkeyShift(K_RIGHT )
413
+ #define K_sEND iup_XkeyShift(K_END )
414
+ #define K_sDOWN iup_XkeyShift(K_DOWN )
415
+ #define K_sPGDN iup_XkeyShift(K_PGDN )
416
+ #define K_sINS iup_XkeyShift(K_INS )
417
+ #define K_sDEL iup_XkeyShift(K_DEL )
418
+ #define K_sSP iup_XkeyShift(K_SP )
419
+ #define K_sTAB iup_XkeyShift(K_TAB )
420
+ #define K_sCR iup_XkeyShift(K_CR )
421
+ #define K_sBS iup_XkeyShift(K_BS )
422
+ #define K_sPAUSE iup_XkeyShift(K_PAUSE )
423
+ #define K_sESC iup_XkeyShift(K_ESC )
424
+ #define K_sF1 iup_XkeyShift(K_F1 )
425
+ #define K_sF2 iup_XkeyShift(K_F2 )
426
+ #define K_sF3 iup_XkeyShift(K_F3 )
427
+ #define K_sF4 iup_XkeyShift(K_F4 )
428
+ #define K_sF5 iup_XkeyShift(K_F5 )
429
+ #define K_sF6 iup_XkeyShift(K_F6 )
430
+ #define K_sF7 iup_XkeyShift(K_F7 )
431
+ #define K_sF8 iup_XkeyShift(K_F8 )
432
+ #define K_sF9 iup_XkeyShift(K_F9 )
433
+ #define K_sF10 iup_XkeyShift(K_F10 )
434
+ #define K_sF11 iup_XkeyShift(K_F11 )
435
+ #define K_sF12 iup_XkeyShift(K_F12 )
436
+ #define K_sPrint iup_XkeyShift(K_Print )
437
+ #define K_sMenu iup_XkeyShift(K_Menu )
438
+
439
+ #define K_cHOME iup_XkeyCtrl(K_HOME )
440
+ #define K_cUP iup_XkeyCtrl(K_UP )
441
+ #define K_cPGUP iup_XkeyCtrl(K_PGUP )
442
+ #define K_cLEFT iup_XkeyCtrl(K_LEFT )
443
+ #define K_cMIDDLE iup_XkeyCtrl(K_MIDDLE )
444
+ #define K_cRIGHT iup_XkeyCtrl(K_RIGHT )
445
+ #define K_cEND iup_XkeyCtrl(K_END )
446
+ #define K_cDOWN iup_XkeyCtrl(K_DOWN )
447
+ #define K_cPGDN iup_XkeyCtrl(K_PGDN )
448
+ #define K_cINS iup_XkeyCtrl(K_INS )
449
+ #define K_cDEL iup_XkeyCtrl(K_DEL )
450
+ #define K_cSP iup_XkeyCtrl(K_SP )
451
+ #define K_cTAB iup_XkeyCtrl(K_TAB )
452
+ #define K_cCR iup_XkeyCtrl(K_CR )
453
+ #define K_cBS iup_XkeyCtrl(K_BS )
454
+ #define K_cPAUSE iup_XkeyCtrl(K_PAUSE )
455
+ #define K_cESC iup_XkeyCtrl(K_ESC )
456
+ #define K_cCcedilla iup_XkeyCtrl(K_Ccedilla)
457
+ #define K_cF1 iup_XkeyCtrl(K_F1 )
458
+ #define K_cF2 iup_XkeyCtrl(K_F2 )
459
+ #define K_cF3 iup_XkeyCtrl(K_F3 )
460
+ #define K_cF4 iup_XkeyCtrl(K_F4 )
461
+ #define K_cF5 iup_XkeyCtrl(K_F5 )
462
+ #define K_cF6 iup_XkeyCtrl(K_F6 )
463
+ #define K_cF7 iup_XkeyCtrl(K_F7 )
464
+ #define K_cF8 iup_XkeyCtrl(K_F8 )
465
+ #define K_cF9 iup_XkeyCtrl(K_F9 )
466
+ #define K_cF10 iup_XkeyCtrl(K_F10 )
467
+ #define K_cF11 iup_XkeyCtrl(K_F11 )
468
+ #define K_cF12 iup_XkeyCtrl(K_F12 )
469
+ #define K_cPrint iup_XkeyCtrl(K_Print )
470
+ #define K_cMenu iup_XkeyCtrl(K_Menu )
471
+
472
+ #define K_mHOME iup_XkeyAlt(K_HOME )
473
+ #define K_mUP iup_XkeyAlt(K_UP )
474
+ #define K_mPGUP iup_XkeyAlt(K_PGUP )
475
+ #define K_mLEFT iup_XkeyAlt(K_LEFT )
476
+ #define K_mMIDDLE iup_XkeyAlt(K_MIDDLE )
477
+ #define K_mRIGHT iup_XkeyAlt(K_RIGHT )
478
+ #define K_mEND iup_XkeyAlt(K_END )
479
+ #define K_mDOWN iup_XkeyAlt(K_DOWN )
480
+ #define K_mPGDN iup_XkeyAlt(K_PGDN )
481
+ #define K_mINS iup_XkeyAlt(K_INS )
482
+ #define K_mDEL iup_XkeyAlt(K_DEL )
483
+ #define K_mSP iup_XkeyAlt(K_SP )
484
+ #define K_mTAB iup_XkeyAlt(K_TAB )
485
+ #define K_mCR iup_XkeyAlt(K_CR )
486
+ #define K_mBS iup_XkeyAlt(K_BS )
487
+ #define K_mPAUSE iup_XkeyAlt(K_PAUSE )
488
+ #define K_mESC iup_XkeyAlt(K_ESC )
489
+ #define K_mCcedilla iup_XkeyAlt(K_Ccedilla)
490
+ #define K_mF1 iup_XkeyAlt(K_F1 )
491
+ #define K_mF2 iup_XkeyAlt(K_F2 )
492
+ #define K_mF3 iup_XkeyAlt(K_F3 )
493
+ #define K_mF4 iup_XkeyAlt(K_F4 )
494
+ #define K_mF5 iup_XkeyAlt(K_F5 )
495
+ #define K_mF6 iup_XkeyAlt(K_F6 )
496
+ #define K_mF7 iup_XkeyAlt(K_F7 )
497
+ #define K_mF8 iup_XkeyAlt(K_F8 )
498
+ #define K_mF9 iup_XkeyAlt(K_F9 )
499
+ #define K_mF10 iup_XkeyAlt(K_F10 )
500
+ #define K_mF11 iup_XkeyAlt(K_F11 )
501
+ #define K_mF12 iup_XkeyAlt(K_F12 )
502
+ #define K_mPrint iup_XkeyAlt(K_Print )
503
+ #define K_mMenu iup_XkeyAlt(K_Menu )
504
+
505
+ #define K_yHOME iup_XkeySys(K_HOME )
506
+ #define K_yUP iup_XkeySys(K_UP )
507
+ #define K_yPGUP iup_XkeySys(K_PGUP )
508
+ #define K_yLEFT iup_XkeySys(K_LEFT )
509
+ #define K_yMIDDLE iup_XkeySys(K_MIDDLE )
510
+ #define K_yRIGHT iup_XkeySys(K_RIGHT )
511
+ #define K_yEND iup_XkeySys(K_END )
512
+ #define K_yDOWN iup_XkeySys(K_DOWN )
513
+ #define K_yPGDN iup_XkeySys(K_PGDN )
514
+ #define K_yINS iup_XkeySys(K_INS )
515
+ #define K_yDEL iup_XkeySys(K_DEL )
516
+ #define K_ySP iup_XkeySys(K_SP )
517
+ #define K_yTAB iup_XkeySys(K_TAB )
518
+ #define K_yCR iup_XkeySys(K_CR )
519
+ #define K_yBS iup_XkeySys(K_BS )
520
+ #define K_yPAUSE iup_XkeySys(K_PAUSE )
521
+ #define K_yESC iup_XkeySys(K_ESC )
522
+ #define K_yCcedilla iup_XkeySys(K_Ccedilla)
523
+ #define K_yF1 iup_XkeySys(K_F1 )
524
+ #define K_yF2 iup_XkeySys(K_F2 )
525
+ #define K_yF3 iup_XkeySys(K_F3 )
526
+ #define K_yF4 iup_XkeySys(K_F4 )
527
+ #define K_yF5 iup_XkeySys(K_F5 )
528
+ #define K_yF6 iup_XkeySys(K_F6 )
529
+ #define K_yF7 iup_XkeySys(K_F7 )
530
+ #define K_yF8 iup_XkeySys(K_F8 )
531
+ #define K_yF9 iup_XkeySys(K_F9 )
532
+ #define K_yF10 iup_XkeySys(K_F10 )
533
+ #define K_yF11 iup_XkeySys(K_F11 )
534
+ #define K_yF12 iup_XkeySys(K_F12 )
535
+ #define K_yPrint iup_XkeySys(K_Print )
536
+ #define K_yMenu iup_XkeySys(K_Menu )
537
+
538
+ #define K_sPlus iup_XkeyShift(K_plus )
539
+ #define K_sComma iup_XkeyShift(K_comma )
540
+ #define K_sMinus iup_XkeyShift(K_minus )
541
+ #define K_sPeriod iup_XkeyShift(K_period )
542
+ #define K_sSlash iup_XkeyShift(K_slash )
543
+ #define K_sAsterisk iup_XkeyShift(K_asterisk)
544
+
545
+ #define K_cA iup_XkeyCtrl(K_A)
546
+ #define K_cB iup_XkeyCtrl(K_B)
547
+ #define K_cC iup_XkeyCtrl(K_C)
548
+ #define K_cD iup_XkeyCtrl(K_D)
549
+ #define K_cE iup_XkeyCtrl(K_E)
550
+ #define K_cF iup_XkeyCtrl(K_F)
551
+ #define K_cG iup_XkeyCtrl(K_G)
552
+ #define K_cH iup_XkeyCtrl(K_H)
553
+ #define K_cI iup_XkeyCtrl(K_I)
554
+ #define K_cJ iup_XkeyCtrl(K_J)
555
+ #define K_cK iup_XkeyCtrl(K_K)
556
+ #define K_cL iup_XkeyCtrl(K_L)
557
+ #define K_cM iup_XkeyCtrl(K_M)
558
+ #define K_cN iup_XkeyCtrl(K_N)
559
+ #define K_cO iup_XkeyCtrl(K_O)
560
+ #define K_cP iup_XkeyCtrl(K_P)
561
+ #define K_cQ iup_XkeyCtrl(K_Q)
562
+ #define K_cR iup_XkeyCtrl(K_R)
563
+ #define K_cS iup_XkeyCtrl(K_S)
564
+ #define K_cT iup_XkeyCtrl(K_T)
565
+ #define K_cU iup_XkeyCtrl(K_U)
566
+ #define K_cV iup_XkeyCtrl(K_V)
567
+ #define K_cW iup_XkeyCtrl(K_W)
568
+ #define K_cX iup_XkeyCtrl(K_X)
569
+ #define K_cY iup_XkeyCtrl(K_Y)
570
+ #define K_cZ iup_XkeyCtrl(K_Z)
571
+ #define K_c1 iup_XkeyCtrl(K_1)
572
+ #define K_c2 iup_XkeyCtrl(K_2)
573
+ #define K_c3 iup_XkeyCtrl(K_3)
574
+ #define K_c4 iup_XkeyCtrl(K_4)
575
+ #define K_c5 iup_XkeyCtrl(K_5)
576
+ #define K_c6 iup_XkeyCtrl(K_6)
577
+ #define K_c7 iup_XkeyCtrl(K_7)
578
+ #define K_c8 iup_XkeyCtrl(K_8)
579
+ #define K_c9 iup_XkeyCtrl(K_9)
580
+ #define K_c0 iup_XkeyCtrl(K_0)
581
+ #define K_cPlus iup_XkeyCtrl(K_plus )
582
+ #define K_cComma iup_XkeyCtrl(K_comma )
583
+ #define K_cMinus iup_XkeyCtrl(K_minus )
584
+ #define K_cPeriod iup_XkeyCtrl(K_period )
585
+ #define K_cSlash iup_XkeyCtrl(K_slash )
586
+ #define K_cSemicolon iup_XkeyCtrl(K_semicolon )
587
+ #define K_cEqual iup_XkeyCtrl(K_equal )
588
+ #define K_cBracketleft iup_XkeyCtrl(K_bracketleft )
589
+ #define K_cBracketright iup_XkeyCtrl(K_bracketright)
590
+ #define K_cBackslash iup_XkeyCtrl(K_backslash )
591
+ #define K_cAsterisk iup_XkeyCtrl(K_asterisk )
592
+
593
+ #define K_mA iup_XkeyAlt(K_A)
594
+ #define K_mB iup_XkeyAlt(K_B)
595
+ #define K_mC iup_XkeyAlt(K_C)
596
+ #define K_mD iup_XkeyAlt(K_D)
597
+ #define K_mE iup_XkeyAlt(K_E)
598
+ #define K_mF iup_XkeyAlt(K_F)
599
+ #define K_mG iup_XkeyAlt(K_G)
600
+ #define K_mH iup_XkeyAlt(K_H)
601
+ #define K_mI iup_XkeyAlt(K_I)
602
+ #define K_mJ iup_XkeyAlt(K_J)
603
+ #define K_mK iup_XkeyAlt(K_K)
604
+ #define K_mL iup_XkeyAlt(K_L)
605
+ #define K_mM iup_XkeyAlt(K_M)
606
+ #define K_mN iup_XkeyAlt(K_N)
607
+ #define K_mO iup_XkeyAlt(K_O)
608
+ #define K_mP iup_XkeyAlt(K_P)
609
+ #define K_mQ iup_XkeyAlt(K_Q)
610
+ #define K_mR iup_XkeyAlt(K_R)
611
+ #define K_mS iup_XkeyAlt(K_S)
612
+ #define K_mT iup_XkeyAlt(K_T)
613
+ #define K_mU iup_XkeyAlt(K_U)
614
+ #define K_mV iup_XkeyAlt(K_V)
615
+ #define K_mW iup_XkeyAlt(K_W)
616
+ #define K_mX iup_XkeyAlt(K_X)
617
+ #define K_mY iup_XkeyAlt(K_Y)
618
+ #define K_mZ iup_XkeyAlt(K_Z)
619
+ #define K_m1 iup_XkeyAlt(K_1)
620
+ #define K_m2 iup_XkeyAlt(K_2)
621
+ #define K_m3 iup_XkeyAlt(K_3)
622
+ #define K_m4 iup_XkeyAlt(K_4)
623
+ #define K_m5 iup_XkeyAlt(K_5)
624
+ #define K_m6 iup_XkeyAlt(K_6)
625
+ #define K_m7 iup_XkeyAlt(K_7)
626
+ #define K_m8 iup_XkeyAlt(K_8)
627
+ #define K_m9 iup_XkeyAlt(K_9)
628
+ #define K_m0 iup_XkeyAlt(K_0)
629
+ #define K_mPlus iup_XkeyAlt(K_plus )
630
+ #define K_mComma iup_XkeyAlt(K_comma )
631
+ #define K_mMinus iup_XkeyAlt(K_minus )
632
+ #define K_mPeriod iup_XkeyAlt(K_period )
633
+ #define K_mSlash iup_XkeyAlt(K_slash )
634
+ #define K_mSemicolon iup_XkeyAlt(K_semicolon )
635
+ #define K_mEqual iup_XkeyAlt(K_equal )
636
+ #define K_mBracketleft iup_XkeyAlt(K_bracketleft )
637
+ #define K_mBracketright iup_XkeyAlt(K_bracketright)
638
+ #define K_mBackslash iup_XkeyAlt(K_backslash )
639
+ #define K_mAsterisk iup_XkeyAlt(K_asterisk )
640
+
641
+ #define K_yA iup_XkeySys(K_A)
642
+ #define K_yB iup_XkeySys(K_B)
643
+ #define K_yC iup_XkeySys(K_C)
644
+ #define K_yD iup_XkeySys(K_D)
645
+ #define K_yE iup_XkeySys(K_E)
646
+ #define K_yF iup_XkeySys(K_F)
647
+ #define K_yG iup_XkeySys(K_G)
648
+ #define K_yH iup_XkeySys(K_H)
649
+ #define K_yI iup_XkeySys(K_I)
650
+ #define K_yJ iup_XkeySys(K_J)
651
+ #define K_yK iup_XkeySys(K_K)
652
+ #define K_yL iup_XkeySys(K_L)
653
+ #define K_yM iup_XkeySys(K_M)
654
+ #define K_yN iup_XkeySys(K_N)
655
+ #define K_yO iup_XkeySys(K_O)
656
+ #define K_yP iup_XkeySys(K_P)
657
+ #define K_yQ iup_XkeySys(K_Q)
658
+ #define K_yR iup_XkeySys(K_R)
659
+ #define K_yS iup_XkeySys(K_S)
660
+ #define K_yT iup_XkeySys(K_T)
661
+ #define K_yU iup_XkeySys(K_U)
662
+ #define K_yV iup_XkeySys(K_V)
663
+ #define K_yW iup_XkeySys(K_W)
664
+ #define K_yX iup_XkeySys(K_X)
665
+ #define K_yY iup_XkeySys(K_Y)
666
+ #define K_yZ iup_XkeySys(K_Z)
667
+ #define K_y1 iup_XkeySys(K_1)
668
+ #define K_y2 iup_XkeySys(K_2)
669
+ #define K_y3 iup_XkeySys(K_3)
670
+ #define K_y4 iup_XkeySys(K_4)
671
+ #define K_y5 iup_XkeySys(K_5)
672
+ #define K_y6 iup_XkeySys(K_6)
673
+ #define K_y7 iup_XkeySys(K_7)
674
+ #define K_y8 iup_XkeySys(K_8)
675
+ #define K_y9 iup_XkeySys(K_9)
676
+ #define K_y0 iup_XkeySys(K_0)
677
+ #define K_yPlus iup_XkeySys(K_plus )
678
+ #define K_yComma iup_XkeySys(K_comma )
679
+ #define K_yMinus iup_XkeySys(K_minus )
680
+ #define K_yPeriod iup_XkeySys(K_period )
681
+ #define K_ySlash iup_XkeySys(K_slash )
682
+ #define K_ySemicolon iup_XkeySys(K_semicolon )
683
+ #define K_yEqual iup_XkeySys(K_equal )
684
+ #define K_yBracketleft iup_XkeySys(K_bracketleft )
685
+ #define K_yBracketright iup_XkeySys(K_bracketright)
686
+ #define K_yBackslash iup_XkeySys(K_backslash )
687
+ #define K_yAsterisk iup_XkeySys(K_asterisk )
688
+
689
+
690
+ #endif
691
+
692
+ # -- from CD library
693
+
694
+ CD_QUERY = -1 # query value
695
+
696
+ # bitmap type
697
+ # these definitions are compatibility with the IM library
698
+ CD_RGB = 0
699
+ CD_MAP = 1
700
+ CD_RGBA = 0x100
701
+
702
+ # bitmap data
703
+ CD_IRED = 0
704
+ CD_IGREEN = 1
705
+ CD_IBLUE = 2
706
+ CD_IALPHA = 3
707
+ CD_INDEX = 4
708
+ CD_COLORS = 5
709
+
710
+ # status report
711
+ CD_ERROR = -1
712
+ CD_OK = 0
713
+
714
+ # clip mode
715
+ CD_CLIPOFF = 0
716
+ CD_CLIPAREA = 1
717
+ CD_CLIPPOLYGON = 2
718
+ CD_CLIPREGION = 3
719
+
720
+ # region combine mode
721
+ CD_UNION = 0
722
+ CD_INTERSECT = 1
723
+ CD_DIFFERENCE = 2
724
+ CD_NOTINTERSECT = 3
725
+
726
+ # :nodoc:
727
+ # polygon mode (begin...end)
728
+ CD_FILL = 0
729
+ CD_OPEN_LINES = 1
730
+ CD_CLOSED_LINES = 2
731
+ CD_CLIP = 3
732
+ CD_BEZIER = 4
733
+ CD_REGION = 5
734
+ CD_PATH = 6
735
+
736
+ CD_POLYCUSTOM = 10
737
+
738
+ # path actions
739
+ CD_PATH_NEW = 0
740
+ CD_PATH_MOVETO = 1
741
+ CD_PATH_LINETO = 2
742
+ CD_PATH_ARC = 3
743
+ CD_PATH_CURVETO = 4
744
+ CD_PATH_CLOSE = 5
745
+ CD_PATH_FILL = 6
746
+ CD_PATH_STROKE = 7
747
+ CD_PATH_FILLSTROKE = 7
748
+ CD_PATH_CLIP = 8
749
+
750
+ # fill mode
751
+ CD_EVENODD = 0
752
+ CD_WINDING = 1
753
+
754
+ # line join
755
+ CD_MITER = 0
756
+ CD_BEVEL = 1
757
+ CD_ROUND = 2
758
+
759
+ # line cap
760
+ CD_CAPFLAT = 0
761
+ CD_CAPSQUARE = 1
762
+ CD_CAPROUND = 2
763
+
764
+ # background opacity mode
765
+ CD_OPAQUE = 0
766
+ CD_TRANSPARENT = 1
767
+
768
+ # write mode
769
+ CD_REPLACE = 0
770
+ CD_XOR = 1
771
+ CD_NOT_XOR = 2
772
+
773
+ # :doc:
774
+ # color allocation mode (palette)
775
+ CD_POLITE = 0
776
+ CD_FORCE = 1
777
+
778
+ # :nodoc:
779
+ # line style
780
+ CD_CONTINUOUS = 0
781
+ CD_DASHED = 1
782
+ CD_DOTTED = 2
783
+ CD_DASH_DOT = 3
784
+ CD_DASH_DOT_DOT = 4
785
+ CD_CUSTOM = 5
786
+
787
+ # marker type
788
+ CD_PLUS = 0
789
+ CD_STAR = 1
790
+ CD_CIRCLE = 2
791
+ CD_X = 3
792
+ CD_BOX = 4
793
+ CD_DIAMOND = 5
794
+ CD_HOLLOW_CIRCLE = 6
795
+ CD_HOLLOW_BOX = 7
796
+ CD_HOLLOW_DIAMOND = 8
797
+
798
+ # hatch type
799
+ CD_HORIZONTAL = 0
800
+ CD_VERTICAL = 1
801
+ CD_FDIAGONAL = 2
802
+ CD_BDIAGONAL = 3
803
+ CD_CROSS = 4
804
+ CD_DIAGCROSS = 5
805
+
806
+ # interior style
807
+ CD_SOLID = 0
808
+ CD_HATCH = 1
809
+ CD_STIPPLE = 2
810
+ CD_PATTERN = 3
811
+ CD_HOLLOW = 4
812
+
813
+ # text alignment
814
+ CD_NORTH = 0
815
+ CD_SOUTH = 1
816
+ CD_EAST = 2
817
+ CD_WEST = 3
818
+ CD_NORTH_EAST = 4
819
+ CD_NORTH_WEST = 5
820
+ CD_SOUTH_EAST = 6
821
+ CD_SOUTH_WEST = 7
822
+ CD_CENTER = 8
823
+ CD_BASE_LEFT = 9
824
+ CD_BASE_CENTER = 10
825
+ CD_BASE_RIGHT = 11
826
+
827
+ # style
828
+ CD_PLAIN = 0
829
+ CD_BOLD = 1
830
+ CD_ITALIC = 2
831
+ CD_UNDERLINE = 4
832
+ CD_STRIKEOUT = 8
833
+
834
+ CD_BOLD_ITALIC = (CD_BOLD|CD_ITALIC) # compatibility name
835
+ # :doc:
836
+
837
+ # some font sizes
838
+ CD_SMALL = 8
839
+ CD_STANDARD = 12
840
+ CD_LARGE = 18
841
+
842
+ # context capabilities
843
+ CD_CAP_NONE = 0x00000000
844
+ CD_CAP_FLUSH = 0x00000001
845
+ CD_CAP_CLEAR = 0x00000002
846
+ CD_CAP_PLAY = 0x00000004
847
+ CD_CAP_YAXIS = 0x00000008
848
+ CD_CAP_CLIPAREA = 0x00000010
849
+ CD_CAP_CLIPPOLY = 0x00000020
850
+ CD_CAP_REGION = 0x00000040
851
+ CD_CAP_RECT = 0x00000080
852
+ CD_CAP_CHORD = 0x00000100
853
+ CD_CAP_IMAGERGB = 0x00000200
854
+ CD_CAP_IMAGERGBA = 0x00000400
855
+ CD_CAP_IMAGEMAP = 0x00000800
856
+ CD_CAP_GETIMAGERGB = 0x00001000
857
+ CD_CAP_IMAGESRV = 0x00002000
858
+ CD_CAP_BACKGROUND = 0x00004000
859
+ CD_CAP_BACKOPACITY = 0x00008000
860
+ CD_CAP_WRITEMODE = 0x00010000
861
+ CD_CAP_LINESTYLE = 0x00020000
862
+ CD_CAP_LINEWITH = 0x00040000
863
+ CD_CAP_FPRIMTIVES = 0x00080000
864
+ CD_CAP_HATCH = 0x00100000
865
+ CD_CAP_STIPPLE = 0x00200000
866
+ CD_CAP_PATTERN = 0x00400000
867
+ CD_CAP_FONT = 0x00800000
868
+ CD_CAP_FONTDIM = 0x01000000
869
+ CD_CAP_TEXTSIZE = 0x02000000
870
+ CD_CAP_TEXTORIENTATION = 0x04000000
871
+ CD_CAP_PALETTE = 0x08000000
872
+ CD_CAP_LINECAP = 0x10000000
873
+ CD_CAP_LINEJOIN = 0x20000000
874
+ CD_CAP_PATH = 0x40000000
875
+ CD_CAP_BEZIER = 0x80000000
876
+ CD_CAP_ALL = 0xFFFFFFFF
877
+
878
+ # simulation flags
879
+ CD_SIM_NONE = 0x0000
880
+ CD_SIM_LINE = 0x0001
881
+ CD_SIM_RECT = 0x0002
882
+ CD_SIM_BOX = 0x0004
883
+ CD_SIM_ARC = 0x0008
884
+ CD_SIM_SECTOR = 0x0010
885
+ CD_SIM_CHORD = 0x0020
886
+ CD_SIM_POLYLINE = 0x0040
887
+ CD_SIM_POLYGON = 0x0080
888
+ CD_SIM_TEXT = 0x0100
889
+ CD_SIM_ALL = 0xFFFF
890
+
891
+ CD_SIM_LINES = (CD_SIM_LINE | CD_SIM_RECT | CD_SIM_ARC | CD_SIM_POLYLINE)
892
+ CD_SIM_FILLS = (CD_SIM_BOX | CD_SIM_SECTOR | CD_SIM_CHORD | CD_SIM_POLYGON)
893
+
894
+ # :nodoc:
895
+ # some predefined colors for convenience
896
+ CD_RED = 0xFF0000 # 255, 0, 0
897
+ CD_DARK_RED = 0x800000 # 128, 0, 0
898
+ CD_GREEN = 0x00FF00 # 0,255, 0
899
+ CD_DARK_GREEN = 0x008000 # 0,128, 0
900
+ CD_BLUE = 0x0000FF # 0, 0,255
901
+ CD_DARK_BLUE = 0x000080 # 0, 0,128
902
+
903
+ CD_YELLOW = 0xFFFF00 # 255,255, 0
904
+ CD_DARK_YELLOW = 0x808000 # 128,128, 0
905
+ CD_MAGENTA = 0xFF00FF # 255, 0,255
906
+ CD_DARK_MAGENTA = 0x800080 # 128, 0,128
907
+ CD_CYAN = 0x00FFFF # 0,255,255
908
+ CD_DARK_CYAN = 0x008080 # 0,128,128
909
+
910
+ CD_WHITE = 0xFFFFFF # 255,255,255
911
+ CD_BLACK = 0x000000 # 0, 0, 0
912
+
913
+ CD_DARK_GRAY = 0x808080 # 128,128,128
914
+ CD_GRAY = 0xC0C0C0 # 192,192,192
915
+
916
+ # :doc:
917
+ # some useful conversion factors
918
+ CD_MM2PT = 2.834645669 # milimeters to points (pt = CD_MM2PT * mm)
919
+ CD_RAD2DEG = 57.295779513 # radians to degrees (deg = CD_RAD2DEG * rad)
920
+ CD_DEG2RAD = 0.01745329252 # degrees to radians (rad = CD_DEG2RAD * deg)
921
+
922
+ # SHOW_CB Callback Values
923
+ IUP_SHOW = 0
924
+ IUP_RESTORE = 1
925
+ IUP_MINIMIZE = 2
926
+ IUP_MAXIMIZE = 3
927
+ IUP_HIDE = 4
928
+
929
+ # :nodoc:
930
+
931
+ # SCROLL_CB Callback Values
932
+ # -- actions on vertical scrollbar
933
+ IUP_SBUP = 0
934
+ IUP_SBDN = 1
935
+ IUP_SBPGUP = 2
936
+ IUP_SBPGDN = 3
937
+ IUP_SBPOSV = 4
938
+ IUP_SBDRAGV = 5
939
+ # -- actions on horizontal scrollbar
940
+ IUP_SBLEFT = 6
941
+ IUP_SBRIGHT = 7
942
+ IUP_SBPGLEFT = 8
943
+ IUP_SBPGRIGHT = 9
944
+ IUP_SBPOSH = 10
945
+ IUP_SBDRAGH = 11
946
+
947
+ # :doc:
948
+
949
+ # used by ColourBar
950
+ IUP_PRIMARY = -1
951
+ IUP_SECONDARY = -2
952
+ end
953
+