iup-ffi 0.13.0-x86_64-linux
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.
- checksums.yaml +7 -0
- data/LICENCE.md +21 -0
- data/README.md +139 -0
- data/lib/iup-ffi-plain.rb +51 -0
- data/lib/iup-ffi.rb +70 -0
- data/lib/library/linux/libcd.so +0 -0
- data/lib/library/linux/libim.so +0 -0
- data/lib/library/linux/libiup.so +0 -0
- data/lib/library/linux/libiup_scintilla.so +0 -0
- data/lib/library/linux/libiupcd.so +0 -0
- data/lib/library/linux/libiupcontrols.so +0 -0
- data/lib/library/linux/libiupim.so +0 -0
- data/lib/library/linux/libiupimglib.so +0 -0
- data/lib/plain/iupcdlib.rb +158 -0
- data/lib/plain/iupcontrolslib.rb +28 -0
- data/lib/plain/iupimglib.rb +15 -0
- data/lib/plain/iupimlib.rb +18 -0
- data/lib/plain/iuplib.rb +354 -0
- data/lib/plain/scintilla-lib.rb +17 -0
- data/lib/wrapped/attribute-builders.rb +93 -0
- data/lib/wrapped/attribute-reference.rb +27 -0
- data/lib/wrapped/background-box.rb +37 -0
- data/lib/wrapped/button.rb +152 -0
- data/lib/wrapped/callback-setter.rb +78 -0
- data/lib/wrapped/canvas.rb +698 -0
- data/lib/wrapped/colorbar.rb +212 -0
- data/lib/wrapped/colordialog.rb +121 -0
- data/lib/wrapped/common-attributes.rb +34 -0
- data/lib/wrapped/constants.rb +504 -0
- data/lib/wrapped/dial.rb +129 -0
- data/lib/wrapped/dialog.rb +309 -0
- data/lib/wrapped/drag-drop-attributes.rb +98 -0
- data/lib/wrapped/dynamic-fill-methods.rb +22 -0
- data/lib/wrapped/expander.rb +128 -0
- data/lib/wrapped/filedialog.rb +168 -0
- data/lib/wrapped/fill.rb +29 -0
- data/lib/wrapped/fontdialog.rb +71 -0
- data/lib/wrapped/frame.rb +70 -0
- data/lib/wrapped/gridbox.rb +188 -0
- data/lib/wrapped/hbox.rb +90 -0
- data/lib/wrapped/image-attributes.rb +58 -0
- data/lib/wrapped/image.rb +178 -0
- data/lib/wrapped/iup-global.rb +46 -0
- data/lib/wrapped/label.rb +110 -0
- data/lib/wrapped/link.rb +54 -0
- data/lib/wrapped/list.rb +567 -0
- data/lib/wrapped/matrix.rb +575 -0
- data/lib/wrapped/menu.rb +91 -0
- data/lib/wrapped/menuitem.rb +150 -0
- data/lib/wrapped/messagedialog.rb +127 -0
- data/lib/wrapped/progressbar.rb +91 -0
- data/lib/wrapped/progressdialog.rb +85 -0
- data/lib/wrapped/radio.rb +74 -0
- data/lib/wrapped/scintilla.rb +1112 -0
- data/lib/wrapped/scrollbar-attributes.rb +178 -0
- data/lib/wrapped/scrollbox.rb +40 -0
- data/lib/wrapped/separator.rb +24 -0
- data/lib/wrapped/splitbox.rb +114 -0
- data/lib/wrapped/stretchbox.rb +70 -0
- data/lib/wrapped/submenu.rb +58 -0
- data/lib/wrapped/tabs.rb +223 -0
- data/lib/wrapped/text.rb +382 -0
- data/lib/wrapped/timer.rb +82 -0
- data/lib/wrapped/toggle.rb +150 -0
- data/lib/wrapped/tree.rb +612 -0
- data/lib/wrapped/val.rb +162 -0
- data/lib/wrapped/vbox.rb +93 -0
- data/lib/wrapped/widget.rb +282 -0
- data/lib/wrapped/zbox.rb +80 -0
- metadata +131 -0
|
@@ -0,0 +1,504 @@
|
|
|
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
|
+
module Iup
|
|
6
|
+
|
|
7
|
+
# :section: Callback return values
|
|
8
|
+
|
|
9
|
+
# Used by some actions so that callback is ignored.
|
|
10
|
+
IGNORE = -1
|
|
11
|
+
# Continues with user interaction: this is the return value to use, if in
|
|
12
|
+
# doubt.
|
|
13
|
+
DEFAULT = -2
|
|
14
|
+
# Calls +IupExitLoop+ on returning; in most cases, this closes the
|
|
15
|
+
# application.
|
|
16
|
+
CLOSE = -3
|
|
17
|
+
# Used by some action to pass control to parent.
|
|
18
|
+
CONTINUE = -4
|
|
19
|
+
|
|
20
|
+
# :section: Dialog show position
|
|
21
|
+
|
|
22
|
+
# To place at center of screen.
|
|
23
|
+
CENTER = 0xFFFF # 65535
|
|
24
|
+
|
|
25
|
+
# To place at left border of screen.
|
|
26
|
+
LEFT = 0xFFFE # 65534
|
|
27
|
+
|
|
28
|
+
# To place at right border of screen.
|
|
29
|
+
RIGHT = 0xFFFD # 65533
|
|
30
|
+
|
|
31
|
+
# To center on the mouse cursor.
|
|
32
|
+
MOUSEPOS = 0xFFFC # 65532
|
|
33
|
+
|
|
34
|
+
# To center on the current dialog's position.
|
|
35
|
+
CURRENT = 0xFFFB # 65531
|
|
36
|
+
|
|
37
|
+
# To center on the parent dialog.
|
|
38
|
+
CENTERPARENT = 0xFFFA # 65530
|
|
39
|
+
|
|
40
|
+
# To place at top border of screen.
|
|
41
|
+
TOP = LEFT
|
|
42
|
+
|
|
43
|
+
# To place at bottom border of screen.
|
|
44
|
+
BOTTOM = RIGHT
|
|
45
|
+
|
|
46
|
+
# :section: Dialog show_cb state
|
|
47
|
+
|
|
48
|
+
# When shown
|
|
49
|
+
IUP_SHOW = 0
|
|
50
|
+
# When restored
|
|
51
|
+
IUP_RESTORE = 1
|
|
52
|
+
# When minimized
|
|
53
|
+
IUP_MINIMIZE = 2
|
|
54
|
+
# When maximized
|
|
55
|
+
IUP_MAXIMIZE = 3
|
|
56
|
+
# When hidden
|
|
57
|
+
IUP_HIDE = 4
|
|
58
|
+
|
|
59
|
+
# :section: Button values
|
|
60
|
+
|
|
61
|
+
# Left mouse button
|
|
62
|
+
BUTTON1 = '1'
|
|
63
|
+
# Middle mouse button
|
|
64
|
+
BUTTON2 = '2'
|
|
65
|
+
# Right mouse button
|
|
66
|
+
BUTTON3 = '3'
|
|
67
|
+
# Extra button
|
|
68
|
+
BUTTON4 = '4'
|
|
69
|
+
# Extra button
|
|
70
|
+
BUTTON5 = '5'
|
|
71
|
+
|
|
72
|
+
# :section: Masks
|
|
73
|
+
|
|
74
|
+
MASK_FLOAT = "[+/-]?(/d+/.?/d*|/./d+)"
|
|
75
|
+
MASK_UFLOAT = "(/d+/.?/d*|/./d+)"
|
|
76
|
+
MASK_EFLOAT = "[+/-]?(/d+/.?/d*|/./d+)([eE][+/-]?/d+)?"
|
|
77
|
+
MASK_INT = "[+/-]?/d+"
|
|
78
|
+
MASK_UINT = "/d+"
|
|
79
|
+
MASK_FLOATCOMMA = "[+/-]?(/d+/,?/d*|/,/d+)"
|
|
80
|
+
MASK_UFLOATCOMMA = "(/d+/,?/d*|/,/d+)"
|
|
81
|
+
|
|
82
|
+
# :section: Key definitions
|
|
83
|
+
|
|
84
|
+
K_SP = ' '.ord
|
|
85
|
+
K_exclam = '!'.ord
|
|
86
|
+
K_quotedbl = "\"".ord
|
|
87
|
+
K_numbersign = '#'.ord
|
|
88
|
+
K_dollar = '$'.ord
|
|
89
|
+
K_percent = '%'.ord
|
|
90
|
+
K_ampersand = '&'.ord
|
|
91
|
+
K_apostrophe = "\'".ord
|
|
92
|
+
K_parentleft = '('.ord
|
|
93
|
+
K_parentright =')'.ord
|
|
94
|
+
K_plus = '+'.ord
|
|
95
|
+
K_comma = ','.ord
|
|
96
|
+
K_minus = '-'.ord
|
|
97
|
+
K_period = '.'.ord
|
|
98
|
+
K_slash = '/'.ord
|
|
99
|
+
K_0 = '0'.ord
|
|
100
|
+
K_1 = '1'.ord
|
|
101
|
+
K_2 = '2'.ord
|
|
102
|
+
K_3 = '3'.ord
|
|
103
|
+
K_4 = '4'.ord
|
|
104
|
+
K_5 = '5'.ord
|
|
105
|
+
K_6 = '6'.ord
|
|
106
|
+
K_7 = '7'.ord
|
|
107
|
+
K_8 = '8'.ord
|
|
108
|
+
K_9 = '9'.ord
|
|
109
|
+
K_colon = ':'.ord
|
|
110
|
+
K_semicolon = ';'.ord
|
|
111
|
+
K_less = '<'.ord
|
|
112
|
+
K_equal = '='.ord
|
|
113
|
+
K_greater = '>'.ord
|
|
114
|
+
K_question = '?'.ord
|
|
115
|
+
K_at = '@'.ord
|
|
116
|
+
K_A = 'A'.ord
|
|
117
|
+
K_B = 'B'.ord
|
|
118
|
+
K_C = 'C'.ord
|
|
119
|
+
K_D = 'D'.ord
|
|
120
|
+
K_E = 'E'.ord
|
|
121
|
+
K_F = 'F'.ord
|
|
122
|
+
K_G = 'G'.ord
|
|
123
|
+
K_H = 'H'.ord
|
|
124
|
+
K_I = 'I'.ord
|
|
125
|
+
K_J = 'J'.ord
|
|
126
|
+
K_K = 'K'.ord
|
|
127
|
+
K_L = 'L'.ord
|
|
128
|
+
K_M = 'M'.ord
|
|
129
|
+
K_N = 'N'.ord
|
|
130
|
+
K_O = 'O'.ord
|
|
131
|
+
K_P = 'P'.ord
|
|
132
|
+
K_Q = 'Q'.ord
|
|
133
|
+
K_R = 'R'.ord
|
|
134
|
+
K_S = 'S'.ord
|
|
135
|
+
K_T = 'T'.ord
|
|
136
|
+
K_U = 'U'.ord
|
|
137
|
+
K_V = 'V'.ord
|
|
138
|
+
K_W = 'W'.ord
|
|
139
|
+
K_X = 'X'.ord
|
|
140
|
+
K_Y = 'Y'.ord
|
|
141
|
+
K_Z = 'Z'.ord
|
|
142
|
+
K_bracketleft ='['.ord
|
|
143
|
+
K_backslash = "\\".ord
|
|
144
|
+
K_bracketright =']'.ord
|
|
145
|
+
K_circum = '^'.ord
|
|
146
|
+
K_underscore = '_'.ord
|
|
147
|
+
K_grave = '`'.ord
|
|
148
|
+
K_a = 'a'.ord
|
|
149
|
+
K_b = 'b'.ord
|
|
150
|
+
K_c = 'c'.ord
|
|
151
|
+
K_d = 'd'.ord
|
|
152
|
+
K_e = 'e'.ord
|
|
153
|
+
K_f = 'f'.ord
|
|
154
|
+
K_g = 'g'.ord
|
|
155
|
+
K_h = 'h'.ord
|
|
156
|
+
K_i = 'i'.ord
|
|
157
|
+
K_j = 'j'.ord
|
|
158
|
+
K_k = 'k'.ord
|
|
159
|
+
K_l = 'l'.ord
|
|
160
|
+
K_m = 'm'.ord
|
|
161
|
+
K_n = 'n'.ord
|
|
162
|
+
K_o = 'o'.ord
|
|
163
|
+
K_p = 'p'.ord
|
|
164
|
+
K_q = 'q'.ord
|
|
165
|
+
K_r = 'r'.ord
|
|
166
|
+
K_s = 's'.ord
|
|
167
|
+
K_t = 't'.ord
|
|
168
|
+
K_u = 'u'.ord
|
|
169
|
+
K_v = 'v'.ord
|
|
170
|
+
K_w = 'w'.ord
|
|
171
|
+
K_x = 'x'.ord
|
|
172
|
+
K_y = 'y'.ord
|
|
173
|
+
K_z = 'z'.ord
|
|
174
|
+
K_braceleft = '{'.ord
|
|
175
|
+
K_bar = '|'.ord
|
|
176
|
+
K_braceright = '}'.ord
|
|
177
|
+
K_tilde = '~'.ord
|
|
178
|
+
|
|
179
|
+
K_BS = "\b".ord
|
|
180
|
+
K_TAB = "\t".ord
|
|
181
|
+
K_LF = "\n".ord
|
|
182
|
+
K_CR = "\r".ord
|
|
183
|
+
|
|
184
|
+
K_PAUSE = 0xFF13
|
|
185
|
+
K_ESC = 0xFF1B
|
|
186
|
+
K_HOME = 0xFF50
|
|
187
|
+
K_LEFT = 0xFF51
|
|
188
|
+
K_UP = 0xFF52
|
|
189
|
+
K_RIGHT = 0xFF53
|
|
190
|
+
K_DOWN = 0xFF54
|
|
191
|
+
K_PGUP = 0xFF55
|
|
192
|
+
K_PGDN = 0xFF56
|
|
193
|
+
K_END = 0xFF57
|
|
194
|
+
K_MIDDLE = 0xFF0B
|
|
195
|
+
K_Print = 0xFF61
|
|
196
|
+
K_INS = 0xFF63
|
|
197
|
+
K_Menu = 0xFF67
|
|
198
|
+
K_DEL = 0xFFFF
|
|
199
|
+
K_F1 = 0xFFBE
|
|
200
|
+
K_F2 = 0xFFBF
|
|
201
|
+
K_F3 = 0xFFC0
|
|
202
|
+
K_F4 = 0xFFC1
|
|
203
|
+
K_F5 = 0xFFC2
|
|
204
|
+
K_F6 = 0xFFC3
|
|
205
|
+
K_F7 = 0xFFC4
|
|
206
|
+
K_F8 = 0xFFC5
|
|
207
|
+
K_F9 = 0xFFC6
|
|
208
|
+
K_F10 = 0xFFC7
|
|
209
|
+
K_F11 = 0xFFC8
|
|
210
|
+
K_F12 = 0xFFC9
|
|
211
|
+
|
|
212
|
+
K_LSHIFT = 0xFFE1
|
|
213
|
+
K_RSHIFT = 0xFFE2
|
|
214
|
+
K_LCTRL = 0xFFE3
|
|
215
|
+
K_RCTRL = 0xFFE4
|
|
216
|
+
K_LALT = 0xFFE9
|
|
217
|
+
K_RALT = 0xFFEA
|
|
218
|
+
|
|
219
|
+
K_NUM = 0xFF7F
|
|
220
|
+
K_SCROLL = 0xFF14
|
|
221
|
+
K_CAPS = 0xFFE5
|
|
222
|
+
|
|
223
|
+
# :section: Scrollbar operations
|
|
224
|
+
|
|
225
|
+
# Operation on vertical scrollbar - used in scroll_cb callback.
|
|
226
|
+
IUP_SBUP = 0
|
|
227
|
+
# Operation on vertical scrollbar - used in scroll_cb callback.
|
|
228
|
+
IUP_SBDN = 1
|
|
229
|
+
# Operation on vertical scrollbar - used in scroll_cb callback.
|
|
230
|
+
IUP_SBPGUP = 2
|
|
231
|
+
# Operation on vertical scrollbar - used in scroll_cb callback.
|
|
232
|
+
IUP_SBPGDN = 3
|
|
233
|
+
# Operation on vertical scrollbar - used in scroll_cb callback.
|
|
234
|
+
IUP_SBPOSV = 4
|
|
235
|
+
# Operation on vertical scrollbar - used in scroll_cb callback.
|
|
236
|
+
IUP_SBDRAGV = 5
|
|
237
|
+
|
|
238
|
+
# Operation on horizontal scrollbar - used in scroll_cb callback.
|
|
239
|
+
IUP_SBLEFT = 6
|
|
240
|
+
# Operation on horizontal scrollbar - used in scroll_cb callback.
|
|
241
|
+
IUP_SBRIGHT = 7
|
|
242
|
+
# Operation on horizontal scrollbar - used in scroll_cb callback.
|
|
243
|
+
IUP_SBPGLEFT = 8
|
|
244
|
+
# Operation on horizontal scrollbar - used in scroll_cb callback.
|
|
245
|
+
IUP_SBPGRIGHT = 9
|
|
246
|
+
# Operation on horizontal scrollbar - used in scroll_cb callback.
|
|
247
|
+
IUP_SBPOSH = 10
|
|
248
|
+
# Operation on horizontal scrollbar - used in scroll_cb callback.
|
|
249
|
+
IUP_SBDRAGH = 11
|
|
250
|
+
|
|
251
|
+
# :section: CD library
|
|
252
|
+
|
|
253
|
+
CD_QUERY = -1
|
|
254
|
+
|
|
255
|
+
# :section: CD bitmap type
|
|
256
|
+
|
|
257
|
+
CD_RGB = 0
|
|
258
|
+
CD_MAP = 1
|
|
259
|
+
CD_RGBA = 0x100
|
|
260
|
+
|
|
261
|
+
# :section: CD bitmap data
|
|
262
|
+
|
|
263
|
+
CD_IRED = 0
|
|
264
|
+
CD_IGREEN = 1
|
|
265
|
+
CD_IBLUE = 2
|
|
266
|
+
CD_IALPHA = 3
|
|
267
|
+
CD_INDEX = 4
|
|
268
|
+
CD_COLORS = 5
|
|
269
|
+
|
|
270
|
+
# :section: CD status report
|
|
271
|
+
|
|
272
|
+
CD_ERROR = -1
|
|
273
|
+
CD_OK = 0
|
|
274
|
+
|
|
275
|
+
# :section: CD clip mode
|
|
276
|
+
|
|
277
|
+
CD_CLIPOFF = 0
|
|
278
|
+
CD_CLIPAREA = 1
|
|
279
|
+
CD_CLIPPOLYGON = 2
|
|
280
|
+
CD_CLIPREGION = 3
|
|
281
|
+
|
|
282
|
+
# :section: CD region combine mode
|
|
283
|
+
|
|
284
|
+
CD_UNION = 0
|
|
285
|
+
CD_INTERSECT = 1
|
|
286
|
+
CD_DIFFERENCE = 2
|
|
287
|
+
CD_NOTINTERSECT = 3
|
|
288
|
+
|
|
289
|
+
# :section: CD polygon mode
|
|
290
|
+
|
|
291
|
+
CD_FILL = 0
|
|
292
|
+
CD_OPEN_LINES = 1
|
|
293
|
+
CD_CLOSED_LINES = 2
|
|
294
|
+
CD_CLIP = 3
|
|
295
|
+
CD_BEZIER = 4
|
|
296
|
+
CD_REGION = 5
|
|
297
|
+
CD_PATH = 6
|
|
298
|
+
|
|
299
|
+
CD_POLYCUSTOM = 10
|
|
300
|
+
|
|
301
|
+
# :section: CD path action
|
|
302
|
+
|
|
303
|
+
CD_PATH_NEW = 0
|
|
304
|
+
CD_PATH_MOVETO = 1
|
|
305
|
+
CD_PATH_LINETO = 2
|
|
306
|
+
CD_PATH_ARC = 3
|
|
307
|
+
CD_PATH_CURVETO = 4
|
|
308
|
+
CD_PATH_CLOSE = 5
|
|
309
|
+
CD_PATH_FILL = 6
|
|
310
|
+
CD_PATH_STROKE = 7
|
|
311
|
+
CD_PATH_FILLSTROKE = 7
|
|
312
|
+
CD_PATH_CLIP = 8
|
|
313
|
+
|
|
314
|
+
# :section: CD fill mode
|
|
315
|
+
|
|
316
|
+
CD_EVENODD = 0
|
|
317
|
+
CD_WINDING = 1
|
|
318
|
+
|
|
319
|
+
# :section: CD line join
|
|
320
|
+
|
|
321
|
+
CD_MITER = 0
|
|
322
|
+
CD_BEVEL = 1
|
|
323
|
+
CD_ROUND = 2
|
|
324
|
+
|
|
325
|
+
# :section: CD line cap
|
|
326
|
+
|
|
327
|
+
CD_CAPFLAT = 0
|
|
328
|
+
CD_CAPSQUARE = 1
|
|
329
|
+
CD_CAPROUND = 2
|
|
330
|
+
|
|
331
|
+
# :section: CD background opacity mode
|
|
332
|
+
|
|
333
|
+
CD_OPAQUE = 0
|
|
334
|
+
CD_TRANSPARENT = 1
|
|
335
|
+
|
|
336
|
+
# :section: CD write mode
|
|
337
|
+
|
|
338
|
+
CD_REPLACE = 0
|
|
339
|
+
CD_XOR = 1
|
|
340
|
+
CD_NOT_XOR = 2
|
|
341
|
+
|
|
342
|
+
# :section: CD color allocation mode (palette)
|
|
343
|
+
|
|
344
|
+
CD_POLITE = 0
|
|
345
|
+
CD_FORCE = 1
|
|
346
|
+
|
|
347
|
+
# :section: CD line style
|
|
348
|
+
|
|
349
|
+
CD_CONTINUOUS = 0
|
|
350
|
+
CD_DASHED = 1
|
|
351
|
+
CD_DOTTED = 2
|
|
352
|
+
CD_DASH_DOT = 3
|
|
353
|
+
CD_DASH_DOT_DOT = 4
|
|
354
|
+
CD_CUSTOM = 5
|
|
355
|
+
|
|
356
|
+
# :section: CD mark type
|
|
357
|
+
|
|
358
|
+
CD_PLUS = 0
|
|
359
|
+
CD_STAR = 1
|
|
360
|
+
CD_CIRCLE = 2
|
|
361
|
+
CD_X = 3
|
|
362
|
+
CD_BOX = 4
|
|
363
|
+
CD_DIAMOND = 5
|
|
364
|
+
CD_HOLLOW_CIRCLE = 6
|
|
365
|
+
CD_HOLLOW_BOX = 7
|
|
366
|
+
CD_HOLLOW_DIAMOND = 8
|
|
367
|
+
|
|
368
|
+
# :section: CD hatch type
|
|
369
|
+
|
|
370
|
+
CD_HORIZONTAL = 0
|
|
371
|
+
CD_VERTICAL = 1
|
|
372
|
+
CD_FDIAGONAL = 2
|
|
373
|
+
CD_BDIAGONAL = 3
|
|
374
|
+
CD_CROSS = 4
|
|
375
|
+
CD_DIAGCROSS = 5
|
|
376
|
+
|
|
377
|
+
# :section: CD interior style
|
|
378
|
+
|
|
379
|
+
CD_SOLID = 0
|
|
380
|
+
CD_HATCH = 1
|
|
381
|
+
CD_STIPPLE = 2
|
|
382
|
+
CD_PATTERN = 3
|
|
383
|
+
CD_HOLLOW = 4
|
|
384
|
+
|
|
385
|
+
# :section: CD text alignment
|
|
386
|
+
|
|
387
|
+
CD_NORTH = 0
|
|
388
|
+
CD_SOUTH = 1
|
|
389
|
+
CD_EAST = 2
|
|
390
|
+
CD_WEST = 3
|
|
391
|
+
CD_NORTH_EAST = 4
|
|
392
|
+
CD_NORTH_WEST = 5
|
|
393
|
+
CD_SOUTH_EAST = 6
|
|
394
|
+
CD_SOUTH_WEST = 7
|
|
395
|
+
CD_CENTER = 8
|
|
396
|
+
CD_BASE_LEFT = 9
|
|
397
|
+
CD_BASE_CENTER = 10
|
|
398
|
+
CD_BASE_RIGHT = 11
|
|
399
|
+
|
|
400
|
+
# :section: CD text style
|
|
401
|
+
|
|
402
|
+
CD_PLAIN = 0
|
|
403
|
+
CD_BOLD = 1
|
|
404
|
+
CD_ITALIC = 2
|
|
405
|
+
CD_UNDERLINE = 4
|
|
406
|
+
CD_STRIKEOUT = 8
|
|
407
|
+
|
|
408
|
+
# compatibility name
|
|
409
|
+
CD_BOLD_ITALIC = (CD_BOLD|CD_ITALIC)
|
|
410
|
+
|
|
411
|
+
# :section: CD font sizes
|
|
412
|
+
|
|
413
|
+
CD_SMALL = 8
|
|
414
|
+
CD_STANDARD = 12
|
|
415
|
+
CD_LARGE = 18
|
|
416
|
+
|
|
417
|
+
# :section: CD context capabilities
|
|
418
|
+
|
|
419
|
+
CD_CAP_NONE = 0x00000000
|
|
420
|
+
CD_CAP_FLUSH = 0x00000001
|
|
421
|
+
CD_CAP_CLEAR = 0x00000002
|
|
422
|
+
CD_CAP_PLAY = 0x00000004
|
|
423
|
+
CD_CAP_YAXIS = 0x00000008
|
|
424
|
+
CD_CAP_CLIPAREA = 0x00000010
|
|
425
|
+
CD_CAP_CLIPPOLY = 0x00000020
|
|
426
|
+
CD_CAP_REGION = 0x00000040
|
|
427
|
+
CD_CAP_RECT = 0x00000080
|
|
428
|
+
CD_CAP_CHORD = 0x00000100
|
|
429
|
+
CD_CAP_IMAGERGB = 0x00000200
|
|
430
|
+
CD_CAP_IMAGERGBA = 0x00000400
|
|
431
|
+
CD_CAP_IMAGEMAP = 0x00000800
|
|
432
|
+
CD_CAP_GETIMAGERGB = 0x00001000
|
|
433
|
+
CD_CAP_IMAGESRV = 0x00002000
|
|
434
|
+
CD_CAP_BACKGROUND = 0x00004000
|
|
435
|
+
CD_CAP_BACKOPACITY = 0x00008000
|
|
436
|
+
CD_CAP_WRITEMODE = 0x00010000
|
|
437
|
+
CD_CAP_LINESTYLE = 0x00020000
|
|
438
|
+
CD_CAP_LINEWITH = 0x00040000
|
|
439
|
+
CD_CAP_FPRIMTIVES = 0x00080000
|
|
440
|
+
CD_CAP_HATCH = 0x00100000
|
|
441
|
+
CD_CAP_STIPPLE = 0x00200000
|
|
442
|
+
CD_CAP_PATTERN = 0x00400000
|
|
443
|
+
CD_CAP_FONT = 0x00800000
|
|
444
|
+
CD_CAP_FONTDIM = 0x01000000
|
|
445
|
+
CD_CAP_TEXTSIZE = 0x02000000
|
|
446
|
+
CD_CAP_TEXTORIENTATION = 0x04000000
|
|
447
|
+
CD_CAP_PALETTE = 0x08000000
|
|
448
|
+
CD_CAP_LINECAP = 0x10000000
|
|
449
|
+
CD_CAP_LINEJOIN = 0x20000000
|
|
450
|
+
CD_CAP_PATH = 0x40000000
|
|
451
|
+
CD_CAP_BEZIER = 0x80000000
|
|
452
|
+
CD_CAP_ALL = 0xFFFFFFFF
|
|
453
|
+
|
|
454
|
+
# :section: CD simulation flags
|
|
455
|
+
|
|
456
|
+
CD_SIM_NONE = 0x0000
|
|
457
|
+
CD_SIM_LINE = 0x0001
|
|
458
|
+
CD_SIM_RECT = 0x0002
|
|
459
|
+
CD_SIM_BOX = 0x0004
|
|
460
|
+
CD_SIM_ARC = 0x0008
|
|
461
|
+
CD_SIM_SECTOR = 0x0010
|
|
462
|
+
CD_SIM_CHORD = 0x0020
|
|
463
|
+
CD_SIM_POLYLINE = 0x0040
|
|
464
|
+
CD_SIM_POLYGON = 0x0080
|
|
465
|
+
CD_SIM_TEXT = 0x0100
|
|
466
|
+
CD_SIM_ALL = 0xFFFF
|
|
467
|
+
|
|
468
|
+
CD_SIM_LINES = (CD_SIM_LINE | CD_SIM_RECT | CD_SIM_ARC | CD_SIM_POLYLINE)
|
|
469
|
+
CD_SIM_FILLS = (CD_SIM_BOX | CD_SIM_SECTOR | CD_SIM_CHORD | CD_SIM_POLYGON)
|
|
470
|
+
|
|
471
|
+
# :section: CD colors
|
|
472
|
+
|
|
473
|
+
CD_RED = 0xFF0000 # 255, 0, 0
|
|
474
|
+
CD_DARK_RED = 0x800000 # 128, 0, 0
|
|
475
|
+
CD_GREEN = 0x00FF00 # 0,255, 0
|
|
476
|
+
CD_DARK_GREEN = 0x008000 # 0,128, 0
|
|
477
|
+
CD_BLUE = 0x0000FF # 0, 0,255
|
|
478
|
+
CD_DARK_BLUE = 0x000080 # 0, 0,128
|
|
479
|
+
|
|
480
|
+
CD_YELLOW = 0xFFFF00 # 255,255, 0
|
|
481
|
+
CD_DARK_YELLOW = 0x808000 # 128,128, 0
|
|
482
|
+
CD_MAGENTA = 0xFF00FF # 255, 0,255
|
|
483
|
+
CD_DARK_MAGENTA = 0x800080 # 128, 0,128
|
|
484
|
+
CD_CYAN = 0x00FFFF # 0,255,255
|
|
485
|
+
CD_DARK_CYAN = 0x008080 # 0,128,128
|
|
486
|
+
|
|
487
|
+
CD_WHITE = 0xFFFFFF # 255,255,255
|
|
488
|
+
CD_BLACK = 0x000000 # 0, 0, 0
|
|
489
|
+
|
|
490
|
+
CD_DARK_GRAY = 0x808080 # 128,128,128
|
|
491
|
+
CD_GRAY = 0xC0C0C0 # 192,192,192
|
|
492
|
+
|
|
493
|
+
# :section: CD conversion factors
|
|
494
|
+
|
|
495
|
+
# milimeters to points (pt = CD_MM2PT * mm)
|
|
496
|
+
CD_MM2PT = 2.834645669
|
|
497
|
+
# radians to degrees (deg = CD_RAD2DEG * rad)
|
|
498
|
+
CD_RAD2DEG = 57.295779513
|
|
499
|
+
# degrees to radians (rad = CD_DEG2RAD * deg)
|
|
500
|
+
CD_DEG2RAD = 0.01745329252
|
|
501
|
+
|
|
502
|
+
# :section:
|
|
503
|
+
end
|
|
504
|
+
|
data/lib/wrapped/dial.rb
ADDED
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
module Iup
|
|
2
|
+
|
|
3
|
+
# Creates a dial for setting an angular variable.
|
|
4
|
+
#
|
|
5
|
+
# === Example
|
|
6
|
+
#
|
|
7
|
+
# The following creates a horizontal dial which updates a label whenever its value
|
|
8
|
+
# changes.
|
|
9
|
+
#
|
|
10
|
+
# Iup::Dial.new do |d|
|
|
11
|
+
# d.valuechanged_cb = ->{
|
|
12
|
+
# label.title = "dial value: #{'%0.2f' % d.value}"
|
|
13
|
+
# Iup::DEFAULT
|
|
14
|
+
# }
|
|
15
|
+
# end
|
|
16
|
+
#
|
|
17
|
+
class Dial < Iup::Canvas
|
|
18
|
+
|
|
19
|
+
# Creates a new instance.
|
|
20
|
+
# If a block is given, the new instance is yielded to it.
|
|
21
|
+
# * +orientation+ - 'horizontal' / 'vertical' / 'circular'
|
|
22
|
+
def initialize(orientation = 'horizontal')
|
|
23
|
+
open_controls
|
|
24
|
+
@handle = ControlsLib.IupDial(orientation)
|
|
25
|
+
|
|
26
|
+
# run any provided block on instance, to set up further attributes
|
|
27
|
+
yield self if block_given?
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
# -- attributes
|
|
31
|
+
|
|
32
|
+
##
|
|
33
|
+
# :attr: orientation
|
|
34
|
+
# Value one of 'horizontal' / 'vertical' / 'circular'.
|
|
35
|
+
# Horizontal or vertical orientations show a dial to be scrolled across;
|
|
36
|
+
# a circular orientation shows a round dial to be rotated.
|
|
37
|
+
define_attribute :orientation
|
|
38
|
+
|
|
39
|
+
##
|
|
40
|
+
# :attr: unit
|
|
41
|
+
# 'radians' / 'degrees' - used in the callbacks.
|
|
42
|
+
define_attribute :unit
|
|
43
|
+
|
|
44
|
+
##
|
|
45
|
+
# :attr: value
|
|
46
|
+
# Angular value of dial in radians. Except for circular dials, the value
|
|
47
|
+
# resets to 0 when interaction begins.
|
|
48
|
+
|
|
49
|
+
# --
|
|
50
|
+
def value
|
|
51
|
+
IupLib.IupGetAttribute(@handle, 'VALUE').first.to_f
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
def value= val # :nodoc:
|
|
55
|
+
IupLib.IupSetAttribute(@handle, 'VALUE', val.to_s)
|
|
56
|
+
end
|
|
57
|
+
|
|
58
|
+
# :section: Callbacks
|
|
59
|
+
|
|
60
|
+
include ButtonCallback
|
|
61
|
+
|
|
62
|
+
##
|
|
63
|
+
# :attr_writer: button_press_cb
|
|
64
|
+
# Called when the user presses the left mouse button over the dial.
|
|
65
|
+
# Callback must respond to +call+ and is a 1-argument function: (angle)
|
|
66
|
+
# * +angle+ - zero when interaction starts, except for the circular dial.
|
|
67
|
+
|
|
68
|
+
# --
|
|
69
|
+
def button_press_cb= callback
|
|
70
|
+
unless callback.arity == 1
|
|
71
|
+
raise ArgumentError, 'button_press_cb callback must take 1 argument: (angle)'
|
|
72
|
+
end
|
|
73
|
+
cb = Proc.new do |ih, angle|
|
|
74
|
+
callback.call angle
|
|
75
|
+
end
|
|
76
|
+
define_callback cb, 'BUTTON_PRESS_CB', :d_i
|
|
77
|
+
end
|
|
78
|
+
|
|
79
|
+
##
|
|
80
|
+
# :attr_writer: button_release_cb
|
|
81
|
+
# Called when the user releases the left mouse button after pressing it over the dial.
|
|
82
|
+
# Callback must respond to +call+ and is a 1-argument function: (angle)
|
|
83
|
+
# * +angle+ - the dial value, converted according to #unit.
|
|
84
|
+
|
|
85
|
+
# --
|
|
86
|
+
def button_release_cb= callback
|
|
87
|
+
unless callback.arity == 1
|
|
88
|
+
raise ArgumentError, 'button_release_cb callback must take 1 argument: (angle)'
|
|
89
|
+
end
|
|
90
|
+
cb = Proc.new do |ih, angle|
|
|
91
|
+
callback.call angle
|
|
92
|
+
end
|
|
93
|
+
define_callback cb, 'BUTTON_RELEASE_CB', :d_i
|
|
94
|
+
end
|
|
95
|
+
|
|
96
|
+
##
|
|
97
|
+
# :attr_writer: mousemove_cb
|
|
98
|
+
# Called each time the user moves the dial with the mouse button pressed.
|
|
99
|
+
# Callback must respond to +call+ and is a 1-argument function: (angle)
|
|
100
|
+
# * +angle+ - the dial value, converted according to #unit.
|
|
101
|
+
|
|
102
|
+
# --
|
|
103
|
+
def mousemove_cb= callback
|
|
104
|
+
unless callback.arity == 1
|
|
105
|
+
raise ArgumentError, 'mousemove_cb callback must take 1 argument: (angle)'
|
|
106
|
+
end
|
|
107
|
+
cb = Proc.new do |ih, angle|
|
|
108
|
+
callback.call angle
|
|
109
|
+
end
|
|
110
|
+
define_callback cb, 'MOUSEMOVE_CB', :d_i
|
|
111
|
+
end
|
|
112
|
+
|
|
113
|
+
##
|
|
114
|
+
# :attr_writer: valuechanged_cb
|
|
115
|
+
# Called after the value was interactively changed by the user.
|
|
116
|
+
# Callback must respond to +call+ and take no arguments.
|
|
117
|
+
|
|
118
|
+
# --
|
|
119
|
+
def valuechanged_cb= callback
|
|
120
|
+
unless callback.arity.zero?
|
|
121
|
+
raise ArgumentError, 'valuechanged_cb callback must take 0 arguments'
|
|
122
|
+
end
|
|
123
|
+
cb = Proc.new do |ih|
|
|
124
|
+
callback.call
|
|
125
|
+
end
|
|
126
|
+
define_callback cb, 'VALUECHANGED_CB', :plain
|
|
127
|
+
end
|
|
128
|
+
end
|
|
129
|
+
end
|