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.
- checksums.yaml +7 -0
- data/LICENCE.txt +21 -0
- data/README.rdoc +348 -0
- data/lib/iup-ffi-plain.rb +9 -0
- data/lib/iup-ffi.rb +76 -0
- data/lib/plain/iupcdlib.rb +107 -0
- data/lib/plain/iupcontrolslib.rb +24 -0
- data/lib/plain/iupimglib.rb +14 -0
- data/lib/plain/iupimlib.rb +16 -0
- data/lib/plain/iuplib.rb +209 -0
- data/lib/plain/scintilla-lib.rb +15 -0
- data/lib/wrapped/attribute-builders.rb +105 -0
- data/lib/wrapped/attribute-reference.rb +27 -0
- data/lib/wrapped/background-box.rb +33 -0
- data/lib/wrapped/button.rb +108 -0
- data/lib/wrapped/callback-setter.rb +78 -0
- data/lib/wrapped/canvas.rb +467 -0
- data/lib/wrapped/colourbar.rb +94 -0
- data/lib/wrapped/colourdialog.rb +63 -0
- data/lib/wrapped/common-attributes.rb +64 -0
- data/lib/wrapped/constants.rb +953 -0
- data/lib/wrapped/dial.rb +87 -0
- data/lib/wrapped/dialog.rb +176 -0
- data/lib/wrapped/dialogs.rb +106 -0
- data/lib/wrapped/drag-drop-attributes.rb +57 -0
- data/lib/wrapped/dynamic-fill-methods.rb +27 -0
- data/lib/wrapped/expander.rb +65 -0
- data/lib/wrapped/filedialog.rb +93 -0
- data/lib/wrapped/fill.rb +26 -0
- data/lib/wrapped/fontdialog.rb +42 -0
- data/lib/wrapped/frame.rb +47 -0
- data/lib/wrapped/gridbox.rb +94 -0
- data/lib/wrapped/hbox.rb +49 -0
- data/lib/wrapped/image-attributes.rb +27 -0
- data/lib/wrapped/image.rb +118 -0
- data/lib/wrapped/internal-drag-drop-attributes.rb +21 -0
- data/lib/wrapped/iup-global.rb +51 -0
- data/lib/wrapped/label.rb +98 -0
- data/lib/wrapped/link.rb +59 -0
- data/lib/wrapped/list.rb +353 -0
- data/lib/wrapped/matrix.rb +233 -0
- data/lib/wrapped/menu.rb +50 -0
- data/lib/wrapped/menuitem.rb +80 -0
- data/lib/wrapped/messagedialog.rb +51 -0
- data/lib/wrapped/progressbar.rb +48 -0
- data/lib/wrapped/progressdialog.rb +111 -0
- data/lib/wrapped/radio.rb +43 -0
- data/lib/wrapped/scintilla.rb +277 -0
- data/lib/wrapped/scrollbar-attributes.rb +141 -0
- data/lib/wrapped/scrollbox.rb +147 -0
- data/lib/wrapped/separator.rb +11 -0
- data/lib/wrapped/splitbox.rb +48 -0
- data/lib/wrapped/stretchbox.rb +42 -0
- data/lib/wrapped/submenu.rb +34 -0
- data/lib/wrapped/tabs.rb +149 -0
- data/lib/wrapped/text.rb +225 -0
- data/lib/wrapped/timer.rb +42 -0
- data/lib/wrapped/toggle.rb +98 -0
- data/lib/wrapped/tree.rb +465 -0
- data/lib/wrapped/val.rb +97 -0
- data/lib/wrapped/vbox.rb +51 -0
- data/lib/wrapped/widget.rb +137 -0
- data/lib/wrapped/zbox.rb +54 -0
- metadata +124 -0
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
module Iup
|
|
2
|
+
|
|
3
|
+
# Parent class for controls in the library.
|
|
4
|
+
#
|
|
5
|
+
class Widget
|
|
6
|
+
extend AttributeBuilders
|
|
7
|
+
include CommonAttributes
|
|
8
|
+
include CallbackSetter
|
|
9
|
+
|
|
10
|
+
# Unique reference to widget.
|
|
11
|
+
attr_reader :handle
|
|
12
|
+
|
|
13
|
+
# The C handle name for this widget
|
|
14
|
+
def assign_handle name
|
|
15
|
+
IupLib.IupSetHandle name, @handle
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
@@controlslib = false
|
|
19
|
+
|
|
20
|
+
# Ensure the controls library is opened
|
|
21
|
+
def open_controls
|
|
22
|
+
unless @@controlslib
|
|
23
|
+
ControlsLib.IupControlsOpen
|
|
24
|
+
@@controlslib = true
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
# -- common callbacks
|
|
29
|
+
|
|
30
|
+
# Called right after an element is mapped and its layout updated
|
|
31
|
+
def map_cb callback
|
|
32
|
+
unless callback.arity.zero?
|
|
33
|
+
raise ArgumentError, 'map_cb callback must take 0 arguments'
|
|
34
|
+
end
|
|
35
|
+
cb = Proc.new do |ih|
|
|
36
|
+
callback.call
|
|
37
|
+
end
|
|
38
|
+
define_callback cb, 'MAP_CB', :plain
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
# Called right before an element is unmapped
|
|
42
|
+
def unmap_cb callback
|
|
43
|
+
unless callback.arity.zero?
|
|
44
|
+
raise ArgumentError, 'unmap_cb callback must take 0 arguments'
|
|
45
|
+
end
|
|
46
|
+
cb = Proc.new do |ih|
|
|
47
|
+
callback.call
|
|
48
|
+
end
|
|
49
|
+
define_callback cb, 'UNMAP_CB', :plain
|
|
50
|
+
end
|
|
51
|
+
|
|
52
|
+
# Action generated when an element is given keyboard focus
|
|
53
|
+
def getfocus_cb callback
|
|
54
|
+
unless callback.arity.zero?
|
|
55
|
+
raise ArgumentError, 'getfocus_cb callback must take 0 arguments'
|
|
56
|
+
end
|
|
57
|
+
cb = Proc.new do |ih|
|
|
58
|
+
callback.call
|
|
59
|
+
end
|
|
60
|
+
define_callback cb, 'GETFOCUS_CB', :plain
|
|
61
|
+
end
|
|
62
|
+
|
|
63
|
+
# Action generated when an element loses keyboard focus
|
|
64
|
+
def killfocus_cb callback
|
|
65
|
+
unless callback.arity.zero?
|
|
66
|
+
raise ArgumentError, 'killfocus_cb callback must take 0 arguments'
|
|
67
|
+
end
|
|
68
|
+
cb = Proc.new do |ih|
|
|
69
|
+
callback.call
|
|
70
|
+
end
|
|
71
|
+
define_callback cb, 'KILLFOCUS_CB', :plain
|
|
72
|
+
end
|
|
73
|
+
|
|
74
|
+
# Action generated when the mouse enters the element
|
|
75
|
+
def enterwindow_cb callback
|
|
76
|
+
unless callback.arity.zero?
|
|
77
|
+
raise ArgumentError, 'enterwindow_cb callback must take 0 arguments'
|
|
78
|
+
end
|
|
79
|
+
cb = Proc.new do |ih|
|
|
80
|
+
callback.call
|
|
81
|
+
end
|
|
82
|
+
define_callback cb, 'ENTERWINDOW_CB', :plain
|
|
83
|
+
end
|
|
84
|
+
|
|
85
|
+
# Action generated when the mouse leaves the element
|
|
86
|
+
def leavewindow_cb callback
|
|
87
|
+
unless callback.arity.zero?
|
|
88
|
+
raise ArgumentError, 'leavewindow_cb callback must take 0 arguments'
|
|
89
|
+
end
|
|
90
|
+
cb = Proc.new do |ih|
|
|
91
|
+
callback.call
|
|
92
|
+
end
|
|
93
|
+
define_callback cb, 'LEAVEWINDOW_CB', :plain
|
|
94
|
+
end
|
|
95
|
+
|
|
96
|
+
# Action generated when a keyboard event occurs.
|
|
97
|
+
# k_any takes a 1-argument callback, the argument
|
|
98
|
+
# being the character that is pressed.
|
|
99
|
+
def k_any callback
|
|
100
|
+
unless callback.arity == 1
|
|
101
|
+
raise ArgumentError, 'k_any callback must take 1 argument, a character'
|
|
102
|
+
end
|
|
103
|
+
cb = Proc.new do |ih, c|
|
|
104
|
+
callback.call c
|
|
105
|
+
end
|
|
106
|
+
define_callback cb, 'K_ANY', :i_i
|
|
107
|
+
end
|
|
108
|
+
|
|
109
|
+
# Action generated when the user presses F1 at a control
|
|
110
|
+
def help_cb callback
|
|
111
|
+
unless callback.arity.zero?
|
|
112
|
+
raise ArgumentError, 'help_cb callback must take 0 arguments'
|
|
113
|
+
end
|
|
114
|
+
cb = Proc.new do |ih|
|
|
115
|
+
callback.call
|
|
116
|
+
end
|
|
117
|
+
define_callback cb, 'HELP_CB', :plain_v
|
|
118
|
+
end
|
|
119
|
+
|
|
120
|
+
private
|
|
121
|
+
|
|
122
|
+
# given an array of widgets,
|
|
123
|
+
# convert into format widget1, :pointer, widget2, ... , :pointer, nil
|
|
124
|
+
def widget_list widgets
|
|
125
|
+
result = []
|
|
126
|
+
|
|
127
|
+
widgets.each do |widget|
|
|
128
|
+
result << widget.handle
|
|
129
|
+
result << :pointer
|
|
130
|
+
end
|
|
131
|
+
|
|
132
|
+
result << nil
|
|
133
|
+
|
|
134
|
+
return result
|
|
135
|
+
end
|
|
136
|
+
end
|
|
137
|
+
end
|
data/lib/wrapped/zbox.rb
ADDED
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
module Iup
|
|
2
|
+
|
|
3
|
+
# A ZBox is a container class, which stores a list of widgets but only
|
|
4
|
+
# displays one of them.
|
|
5
|
+
#
|
|
6
|
+
# == Attributes
|
|
7
|
+
#
|
|
8
|
+
# alignment:: alignment of visible child.
|
|
9
|
+
# Values: 'north' / 'south' / 'east' / 'west'/
|
|
10
|
+
# 'ne' / 'nw' / 'se' / 'sw' / 'acenter'
|
|
11
|
+
# clientoffset:: <b>read-only</b>, returns current offset of box in its client
|
|
12
|
+
# as "widthxheight".
|
|
13
|
+
# clientsize:: <b>read-only</b>, returns current size of box as "widthxheight".
|
|
14
|
+
# expand:: Allows container to fill available space in indicated direction.
|
|
15
|
+
# Values 'no' / 'horizontal' / 'vertical' / 'yes'.
|
|
16
|
+
# gap:: Number of pixels between children, default value of 0.
|
|
17
|
+
# rastersize:: Size of the container, in pixels, value as "widthxheight".
|
|
18
|
+
# size:: Size of the container, in character units, value as "widthxheight".
|
|
19
|
+
#
|
|
20
|
+
class ZBox < Widget
|
|
21
|
+
include DynamicFillMethods
|
|
22
|
+
|
|
23
|
+
# Creates an instance of the ZBox.
|
|
24
|
+
# *widgets:: one or more child widgets
|
|
25
|
+
# block:: optional block to set up the box's attributes.
|
|
26
|
+
def initialize *widgets, &block
|
|
27
|
+
@handle = IupLib.IupZbox *widget_list(widgets)
|
|
28
|
+
|
|
29
|
+
# run any provided block on instance, to set up further attributes
|
|
30
|
+
self.instance_eval &block if block_given?
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
# -- attributes
|
|
34
|
+
|
|
35
|
+
# Returns the visible child, accessed by its index position.
|
|
36
|
+
def valuepos val=nil?
|
|
37
|
+
if val.nil?
|
|
38
|
+
result = IupLib.IupGetAttribute(@handle, 'VALUEPOS').first
|
|
39
|
+
result.to_i
|
|
40
|
+
else
|
|
41
|
+
IupLib.IupSetAttribute @handle, 'VALUEPOS', (val.to_i - 1).to_s
|
|
42
|
+
end
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
define_attribute :alignment
|
|
46
|
+
define_readonly :clientoffset
|
|
47
|
+
define_readonly :clientsize
|
|
48
|
+
define_attribute :expand
|
|
49
|
+
define_attribute :gap
|
|
50
|
+
define_attribute :rastersize
|
|
51
|
+
define_attribute :size
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
end
|
metadata
ADDED
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
|
2
|
+
name: iup-ffi
|
|
3
|
+
version: !ruby/object:Gem::Version
|
|
4
|
+
version: 0.12.0
|
|
5
|
+
platform: ruby
|
|
6
|
+
authors:
|
|
7
|
+
- Peter Lane
|
|
8
|
+
bindir: bin
|
|
9
|
+
cert_chain: []
|
|
10
|
+
date: 1980-01-02 00:00:00.000000000 Z
|
|
11
|
+
dependencies:
|
|
12
|
+
- !ruby/object:Gem::Dependency
|
|
13
|
+
name: ffi
|
|
14
|
+
requirement: !ruby/object:Gem::Requirement
|
|
15
|
+
requirements:
|
|
16
|
+
- - "~>"
|
|
17
|
+
- !ruby/object:Gem::Version
|
|
18
|
+
version: '1.12'
|
|
19
|
+
type: :runtime
|
|
20
|
+
prerelease: false
|
|
21
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
22
|
+
requirements:
|
|
23
|
+
- - "~>"
|
|
24
|
+
- !ruby/object:Gem::Version
|
|
25
|
+
version: '1.12'
|
|
26
|
+
description: |2
|
|
27
|
+
FFI binding for Ruby to the IUP portable user interface toolkit. The library
|
|
28
|
+
provides both a low-level binding to the C library calls, and a high-level
|
|
29
|
+
wrapping of most widgets to give a more natural Ruby syntax.
|
|
30
|
+
email: peterlane@gmx.com
|
|
31
|
+
executables: []
|
|
32
|
+
extensions: []
|
|
33
|
+
extra_rdoc_files:
|
|
34
|
+
- LICENCE.txt
|
|
35
|
+
- README.rdoc
|
|
36
|
+
files:
|
|
37
|
+
- LICENCE.txt
|
|
38
|
+
- README.rdoc
|
|
39
|
+
- lib/iup-ffi-plain.rb
|
|
40
|
+
- lib/iup-ffi.rb
|
|
41
|
+
- lib/plain/iupcdlib.rb
|
|
42
|
+
- lib/plain/iupcontrolslib.rb
|
|
43
|
+
- lib/plain/iupimglib.rb
|
|
44
|
+
- lib/plain/iupimlib.rb
|
|
45
|
+
- lib/plain/iuplib.rb
|
|
46
|
+
- lib/plain/scintilla-lib.rb
|
|
47
|
+
- lib/wrapped/attribute-builders.rb
|
|
48
|
+
- lib/wrapped/attribute-reference.rb
|
|
49
|
+
- lib/wrapped/background-box.rb
|
|
50
|
+
- lib/wrapped/button.rb
|
|
51
|
+
- lib/wrapped/callback-setter.rb
|
|
52
|
+
- lib/wrapped/canvas.rb
|
|
53
|
+
- lib/wrapped/colourbar.rb
|
|
54
|
+
- lib/wrapped/colourdialog.rb
|
|
55
|
+
- lib/wrapped/common-attributes.rb
|
|
56
|
+
- lib/wrapped/constants.rb
|
|
57
|
+
- lib/wrapped/dial.rb
|
|
58
|
+
- lib/wrapped/dialog.rb
|
|
59
|
+
- lib/wrapped/dialogs.rb
|
|
60
|
+
- lib/wrapped/drag-drop-attributes.rb
|
|
61
|
+
- lib/wrapped/dynamic-fill-methods.rb
|
|
62
|
+
- lib/wrapped/expander.rb
|
|
63
|
+
- lib/wrapped/filedialog.rb
|
|
64
|
+
- lib/wrapped/fill.rb
|
|
65
|
+
- lib/wrapped/fontdialog.rb
|
|
66
|
+
- lib/wrapped/frame.rb
|
|
67
|
+
- lib/wrapped/gridbox.rb
|
|
68
|
+
- lib/wrapped/hbox.rb
|
|
69
|
+
- lib/wrapped/image-attributes.rb
|
|
70
|
+
- lib/wrapped/image.rb
|
|
71
|
+
- lib/wrapped/internal-drag-drop-attributes.rb
|
|
72
|
+
- lib/wrapped/iup-global.rb
|
|
73
|
+
- lib/wrapped/label.rb
|
|
74
|
+
- lib/wrapped/link.rb
|
|
75
|
+
- lib/wrapped/list.rb
|
|
76
|
+
- lib/wrapped/matrix.rb
|
|
77
|
+
- lib/wrapped/menu.rb
|
|
78
|
+
- lib/wrapped/menuitem.rb
|
|
79
|
+
- lib/wrapped/messagedialog.rb
|
|
80
|
+
- lib/wrapped/progressbar.rb
|
|
81
|
+
- lib/wrapped/progressdialog.rb
|
|
82
|
+
- lib/wrapped/radio.rb
|
|
83
|
+
- lib/wrapped/scintilla.rb
|
|
84
|
+
- lib/wrapped/scrollbar-attributes.rb
|
|
85
|
+
- lib/wrapped/scrollbox.rb
|
|
86
|
+
- lib/wrapped/separator.rb
|
|
87
|
+
- lib/wrapped/splitbox.rb
|
|
88
|
+
- lib/wrapped/stretchbox.rb
|
|
89
|
+
- lib/wrapped/submenu.rb
|
|
90
|
+
- lib/wrapped/tabs.rb
|
|
91
|
+
- lib/wrapped/text.rb
|
|
92
|
+
- lib/wrapped/timer.rb
|
|
93
|
+
- lib/wrapped/toggle.rb
|
|
94
|
+
- lib/wrapped/tree.rb
|
|
95
|
+
- lib/wrapped/val.rb
|
|
96
|
+
- lib/wrapped/vbox.rb
|
|
97
|
+
- lib/wrapped/widget.rb
|
|
98
|
+
- lib/wrapped/zbox.rb
|
|
99
|
+
homepage: https://rubygems.org/gems/iup-ffi
|
|
100
|
+
licenses:
|
|
101
|
+
- MIT
|
|
102
|
+
metadata:
|
|
103
|
+
documentation_uri: https://rubydoc.info/gems/iup-ffi
|
|
104
|
+
source_code_uri: https://codeberg.org/peterlane/iup-ffi
|
|
105
|
+
rdoc_options:
|
|
106
|
+
- "-m"
|
|
107
|
+
- README.rdoc
|
|
108
|
+
require_paths:
|
|
109
|
+
- lib
|
|
110
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
|
111
|
+
requirements:
|
|
112
|
+
- - ">="
|
|
113
|
+
- !ruby/object:Gem::Version
|
|
114
|
+
version: '2.0'
|
|
115
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
116
|
+
requirements:
|
|
117
|
+
- - ">="
|
|
118
|
+
- !ruby/object:Gem::Version
|
|
119
|
+
version: '0'
|
|
120
|
+
requirements: []
|
|
121
|
+
rubygems_version: 4.0.3
|
|
122
|
+
specification_version: 4
|
|
123
|
+
summary: An FFI binding for Ruby to the IUP portable user interface toolkit.
|
|
124
|
+
test_files: []
|