libui 0.1.2.pre-arm64-darwin → 0.1.3.pre-arm64-darwin
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 +4 -4
- data/README.md +93 -65
- data/lib/libui/ffi.rb +3 -0
- data/lib/libui/fiddle_patch.rb +8 -0
- data/lib/libui/version.rb +1 -1
- data/lib/libui.rb +34 -7
- data/vendor/README.md +20 -6
- data/vendor/libui.arm64.dylib +0 -0
- metadata +5 -5
- data/vendor/libui.dylib +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b919cf903b9ba042b5e5db9a2f2e5a84af66a3a72126e40df4ad3a8325538713
|
4
|
+
data.tar.gz: dcf63dc545cc6f9c39b828d4144519a75a22f6196c920f5447eb0cda7fb5c767
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: cf04205c21734ab2e9a81b7a386e48da66fab428d66bc06fb2d60231624d88858bff14f9690dcca681fc4e5b7b34e85d7a7fe6996f5509892d3c08328565f1e9
|
7
|
+
data.tar.gz: c58448b4b0035534b8be9e779011ebe8141b455edd78c3168f02d56575c7afee4c8c35777ffe71adb3b35235136d2d4a782870d9d9167434fbb3937735f89eef
|
data/README.md
CHANGED
@@ -1,14 +1,15 @@
|
|
1
1
|
# LibUI
|
2
2
|
|
3
|
-
](https://github.com/kojix2/LibUI/actions/workflows/test.yml)
|
4
4
|
[](https://badge.fury.io/rb/libui)
|
5
5
|
<a href="https://github.com/AndyObtiva/glimmer-dsl-libui"><img alt="glimmer-dsl-libui" src="https://github.com/AndyObtiva/glimmer/blob/master/images/glimmer-logo-hi-res.svg" width="50" height="50" align="right"></a>
|
6
|
+
[](https://github.com/kojix2/libui-ng/actions/workflows/pre-build.yml)
|
6
7
|
|
7
8
|
LibUI is a Ruby wrapper for libui and libui-ng.
|
8
9
|
|
9
10
|
:rocket: [libui-ng](https://github.com/libui-ng/libui-ng) - A cross-platform portable GUI library
|
10
11
|
|
11
|
-
:radio_button: [libui](https://github.com/andlabs/libui) - Original version by andlabs
|
12
|
+
:radio_button: [libui](https://github.com/andlabs/libui) - Original version by andlabs.
|
12
13
|
|
13
14
|
## Installation
|
14
15
|
|
@@ -16,19 +17,20 @@ LibUI is a Ruby wrapper for libui and libui-ng.
|
|
16
17
|
gem install libui
|
17
18
|
```
|
18
19
|
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
20
|
+
- The gem package includes the [official release](https://github.com/andlabs/libui/releases/tag/alpha4.1) of the libui shared library version 4.1 for Windows, Mac, and Linux.
|
21
|
+
- Namely `libui.dll`, `libui.dylib`, and `libui.so` (only 1.8MB in total).
|
22
|
+
- No dependencies required.
|
23
|
+
- The libui gem uses the standard Ruby library [Fiddle](https://github.com/ruby/fiddle) to call C functions.
|
23
24
|
|
24
|
-
| Windows
|
25
|
-
|
26
|
-
|
25
|
+
| Windows | Mac | Linux |
|
26
|
+
| ---------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------- |
|
27
|
+
| <img src="https://user-images.githubusercontent.com/5798442/103118046-900ea780-46b0-11eb-81fc-32626762e4df.png"> | <img src="https://user-images.githubusercontent.com/5798442/103118059-99980f80-46b0-11eb-9d12-324ec4d297c9.png"> | <img src="https://user-images.githubusercontent.com/5798442/103118068-a0bf1d80-46b0-11eb-8c5c-3bdcc3dcfb26.png"> |
|
27
28
|
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
29
|
+
Notes:
|
30
|
+
|
31
|
+
- If you are using the 32-bit (x86) version of Ruby, you need to download the 32-bit (x86) native dll. See the [Development](#development) section.
|
32
|
+
- On Windows, libui may not work due to missing DLLs. In that case, you need to install [Visual C++ Redistributable](https://docs.microsoft.com/en-us/cpp/windows/latest-supported-vc-redist). See ([#48](https://github.com/kojix2/LibUI/issues/48))
|
33
|
+
- Users with [Raspberry Pi](https://www.raspberrypi.com/) or other platforms will need to compile the C libui library. See the [Development](#development) section.
|
32
34
|
|
33
35
|
## Usage
|
34
36
|
|
@@ -61,30 +63,30 @@ UI.main
|
|
61
63
|
UI.quit
|
62
64
|
```
|
63
65
|
|
64
|
-
|
66
|
+
For more examples, see the [examples](https://github.com/kojix2/libui/tree/main/examples) directory.
|
65
67
|
|
66
68
|
### General Rules
|
67
69
|
|
68
|
-
Compared to original libui written in C
|
70
|
+
Compared to the original libui library written in C:
|
69
71
|
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
72
|
+
- Method names use snake_case.
|
73
|
+
- The last argument can be omitted if it's nil.
|
74
|
+
- A block can be passed as a callback.
|
75
|
+
- The block will be converted to a Proc object and added as the last argument.
|
76
|
+
- The last argument can still be omitted when nil.
|
75
77
|
|
76
78
|
You can use [the documentation for libui's Go bindings](https://pkg.go.dev/github.com/andlabs/ui) as a reference.
|
77
79
|
|
78
80
|
### DSLs for LibUI
|
79
81
|
|
80
|
-
LibUI is
|
82
|
+
LibUI is not object-oriented because it is a thin Ruby wrapper (binding) for the procedural C libui library, mirroring its API structure.
|
81
83
|
|
82
|
-
|
84
|
+
To build actual applications, it is recommended to use a DSL for LibUI, as they enable writing object-oriented code the Ruby way (instead of procedural code the C way):
|
83
85
|
|
84
|
-
|
85
|
-
|
86
|
+
- [Glimmer DSL for LibUI](https://github.com/AndyObtiva/glimmer-dsl-libui)
|
87
|
+
- [libui_paradise](https://rubygems.org/gems/libui_paradise)
|
86
88
|
|
87
|
-
###
|
89
|
+
### Working with fiddle pointers
|
88
90
|
|
89
91
|
```ruby
|
90
92
|
require 'libui'
|
@@ -92,7 +94,7 @@ UI = LibUI
|
|
92
94
|
UI.init
|
93
95
|
```
|
94
96
|
|
95
|
-
|
97
|
+
To convert a pointer to a string:
|
96
98
|
|
97
99
|
```ruby
|
98
100
|
label = UI.new_label("Ruby")
|
@@ -100,12 +102,12 @@ p pointer = UI.label_text(label) # #<Fiddle::Pointer>
|
|
100
102
|
p pointer.to_s # Ruby
|
101
103
|
```
|
102
104
|
|
103
|
-
If you need to use C structs, you can do the following
|
105
|
+
If you need to use C structs, you can do the following:
|
104
106
|
|
105
107
|
```ruby
|
106
108
|
font_button = UI.new_font_button
|
107
109
|
|
108
|
-
# Allocate memory
|
110
|
+
# Allocate memory
|
109
111
|
font_descriptor = UI::FFI::FontDescriptor.malloc
|
110
112
|
font_descriptor.to_ptr.free = Fiddle::RUBY_FREE
|
111
113
|
# font_descriptor = UI::FFI::FontDescriptor.malloc(Fiddle::RUBY_FREE) # fiddle 1.0.1 or higher
|
@@ -120,26 +122,25 @@ UI.font_button_on_changed(font_button) do
|
|
120
122
|
end
|
121
123
|
```
|
122
124
|
|
123
|
-
|
124
|
-
|
125
|
-
`Fiddle::Closure::BlockCaller` or `Fiddle::Closure`.
|
126
|
-
|
127
|
-
If the function object is collected, memory will be freed
|
128
|
-
and a segmentation violation will occur when the callback is invoked.
|
125
|
+
- Callbacks
|
126
|
+
- In Ruby/Fiddle, a C callback function is written as an object of
|
127
|
+
`Fiddle::Closure::BlockCaller` or `Fiddle::Closure`.
|
128
|
+
Be careful about Ruby's garbage collection - if the function object is collected, memory will be freed resulting in a segmentation violation when the callback is invoked.
|
129
129
|
|
130
130
|
```ruby
|
131
|
-
# to a local variable to prevent it from being collected by GC.
|
131
|
+
# Assign to a local variable to prevent it from being collected by GC.
|
132
132
|
handler.MouseEvent = (c1 = Fiddle::Closure::BlockCaller.new(0, [0]) {})
|
133
133
|
handler.MouseCrossed = (c2 = Fiddle::Closure::BlockCaller.new(0, [0]) {})
|
134
134
|
handler.DragBroken = (c3 = Fiddle::Closure::BlockCaller.new(0, [0]) {})
|
135
135
|
```
|
136
136
|
|
137
|
-
###
|
137
|
+
### Creating a Windows executable (.exe) with OCRA
|
138
|
+
|
139
|
+
OCRA (One-Click Ruby Application) builds Windows executables from Ruby source code.
|
138
140
|
|
139
|
-
|
140
|
-
* https://github.com/larsch/ocra/
|
141
|
+
- https://github.com/larsch/ocra/
|
141
142
|
|
142
|
-
|
143
|
+
To build an exe with Ocra, include 3 DLLs from the ruby_builtin_dlls folder:
|
143
144
|
|
144
145
|
```sh
|
145
146
|
ocra examples/control_gallery.rb ^
|
@@ -149,7 +150,7 @@ ocra examples/control_gallery.rb ^
|
|
149
150
|
--gem-all=fiddle ^
|
150
151
|
```
|
151
152
|
|
152
|
-
Add additional options below if necessary
|
153
|
+
Add additional options below if necessary:
|
153
154
|
|
154
155
|
```sh
|
155
156
|
--window ^
|
@@ -162,59 +163,86 @@ Add additional options below if necessary.
|
|
162
163
|
|
163
164
|
## Development
|
164
165
|
|
165
|
-
LibUI is not object-oriented, but it provides high portability with a minimal implementation.
|
166
|
-
|
167
166
|
```sh
|
168
167
|
git clone https://github.com/kojix2/libui
|
169
168
|
cd libui
|
170
169
|
bundle install
|
171
|
-
bundle exec rake vendor:
|
170
|
+
bundle exec rake vendor:auto # vendor:build
|
172
171
|
bundle exec rake test
|
173
172
|
```
|
174
173
|
|
175
|
-
|
174
|
+
### Pre-built shared libraries for libui-ng
|
175
|
+
|
176
|
+
Use the following rake tasks to download the shared library required for your platform:
|
176
177
|
|
177
178
|
`rake -T`
|
178
179
|
|
179
180
|
```
|
180
|
-
rake vendor:
|
181
|
-
rake vendor:
|
182
|
-
rake vendor:
|
183
|
-
rake vendor:
|
184
|
-
rake vendor:
|
185
|
-
rake vendor:
|
186
|
-
rake vendor:
|
187
|
-
rake vendor:
|
181
|
+
rake vendor:build[hash] # Build libui-ng latest master [commit hash]
|
182
|
+
rake vendor:libui-ng:macos # Download latest official pre-build for Mac to vendor directory
|
183
|
+
rake vendor:libui-ng:ubuntu_x64 # Download latest official pre-build for Ubuntu to vendor directory
|
184
|
+
rake vendor:macos_arm64 # Download pre-build for Mac to vendor directory
|
185
|
+
rake vendor:macos_x64 # Download pre-build for Mac to vendor directory
|
186
|
+
rake vendor:raspbian_aarch64 # Download pre-build for Raspbian to vendor directory
|
187
|
+
rake vendor:ubuntu_x64 # Download pre-build for Ubuntu to vendor directory
|
188
|
+
rake vendor:windows_x64 # Download pre-build for Windows to vendor directory
|
189
|
+
rake vendor:windows_x86 # Download pre-build for Windows to vendor directory
|
188
190
|
```
|
189
191
|
|
190
|
-
For example,
|
192
|
+
For example, if you are using a 32-bit (x86) version of Ruby on Windows, type `vendor:windows_x86`.
|
193
|
+
These shared libraries are [artifacts](https://github.com/kojix2/libui-ng/actions/workflows/pre-build.yml) of the [pre-build branch](https://github.com/kojix2/libui-ng/tree/pre-build) of [kojix2/libui-ng](https://github.com/kojix2/libui-ng). In that case, please let us know.
|
191
194
|
|
192
|
-
###
|
195
|
+
### Using C libui compiled from source code
|
193
196
|
|
194
|
-
|
197
|
+
The following Rake task will compile libui-ng. meson or ninja is required.
|
198
|
+
|
199
|
+
`bundle exec rake vendor:build`
|
200
|
+
|
201
|
+
Alternatively, you can tell Ruby LibUI the location of shared libraries. Set the environment variable `LIBUIDIR` to specify the path to the shared library. (See [#46](https://github.com/kojix2/LibUI/issues/46#issuecomment-1041575792)). This is especially useful on platforms where the LibUI gem does not provide shared library, such as the ARM architecture (used in devices like Raspberry Pi).
|
195
202
|
|
196
203
|
Another simple approach is to replace the shared libraries in the gem vendor directory with the ones you have compiled.
|
197
204
|
|
205
|
+
### Publishing gems
|
206
|
+
|
207
|
+
```sh
|
208
|
+
ls vendor # check the vendor directory
|
209
|
+
rm -rf pkg # remove previously built gems
|
210
|
+
rake build_platform # build gems
|
211
|
+
|
212
|
+
# Check the contents of the gem
|
213
|
+
find pkg -name *.gem -exec sh -c "echo; echo \# {}; tar -O -f {} -x data.tar.gz | tar zt" \;
|
214
|
+
|
215
|
+
rake release_platform # publish gems
|
216
|
+
```
|
217
|
+
|
198
218
|
### libui or libui-ng
|
199
219
|
|
200
|
-
|
201
|
-
|
220
|
+
- From version 0.1.X, we plan to support only libui-ng/libui-ng.
|
221
|
+
- Version 0.0.X only supports andlabs/libui.
|
202
222
|
|
203
223
|
## Contributing
|
204
224
|
|
205
|
-
Would you like to
|
206
|
-
|
207
|
-
|
208
|
-
|
225
|
+
Would you like to contribute to LibUI?
|
226
|
+
|
227
|
+
- Please feel free to send us your [pull requests](https://github.com/kojix2/libui/pulls).
|
228
|
+
- Small corrections, such as typo fixes, are appreciated.
|
229
|
+
- Did you find any bugs? Submit them in the [issues](https://github.com/kojix2/LibUI/issues) section!
|
230
|
+
|
231
|
+
Do you need commit rights?
|
232
|
+
|
233
|
+
- If you need commit rights to my repository or want to get admin rights and take over the project, please feel free to contact @kojix2.
|
234
|
+
- Many OSS projects become abandoned because only the founder has commit rights to the original repository.
|
235
|
+
|
236
|
+
Support libui-ng development
|
209
237
|
|
210
|
-
|
211
|
-
|
238
|
+
- Contributing to the development of libui-ng is a contribution to the entire libui community, including Ruby's LibUI.
|
239
|
+
- For example, it would be easier to release LibUI in Ruby if libui-ng could be built easily and official shared libraries could be distributed.
|
212
240
|
|
213
|
-
##
|
241
|
+
## Acknowledgements
|
214
242
|
|
215
243
|
This project is inspired by libui-ruby.
|
216
244
|
|
217
|
-
|
245
|
+
- https://github.com/jamescook/libui-ruby
|
218
246
|
|
219
247
|
While libui-ruby uses [Ruby-FFI](https://github.com/ffi/ffi), this gem uses [Fiddle](https://github.com/ruby/fiddle).
|
220
248
|
|
data/lib/libui/ffi.rb
CHANGED
@@ -89,6 +89,9 @@ module LibUI
|
|
89
89
|
|
90
90
|
try_extern 'char *uiWindowTitle(uiWindow *w)'
|
91
91
|
try_extern 'void uiWindowSetTitle(uiWindow *w, const char *title)'
|
92
|
+
try_extern 'void uiWindowPosition(uiWindow *w, int *x, int *y)'
|
93
|
+
try_extern 'void uiWindowSetPosition(uiWindow *w, int x, int y)'
|
94
|
+
try_extern 'void uiWindowOnPositionChanged(uiWindow *w, void (*f)(uiWindow *sender, void *senderData), void *data)'
|
92
95
|
try_extern 'void uiWindowContentSize(uiWindow *w, int *width, int *height)'
|
93
96
|
try_extern 'void uiWindowSetContentSize(uiWindow *w, int width, int height)'
|
94
97
|
try_extern 'int uiWindowFullscreen(uiWindow *w)'
|
data/lib/libui/fiddle_patch.rb
CHANGED
@@ -1,4 +1,12 @@
|
|
1
1
|
module LibUI
|
2
|
+
# This module overrides Fiddle's mtehods
|
3
|
+
# - Fiddle::Importer#extern
|
4
|
+
# - Fiddle::CParser#parse_signature
|
5
|
+
# Original methods are in
|
6
|
+
# - https://github.com/ruby/fiddle/blob/master/lib/fiddle/import.rb
|
7
|
+
# - https://github.com/ruby/fiddle/blob/master/lib/fiddle/cparser.rb
|
8
|
+
# These changes add the ability to parse the signatures of functions given as arguments.
|
9
|
+
|
2
10
|
module FiddlePatch
|
3
11
|
def parse_signature(signature, tymap = nil)
|
4
12
|
tymap ||= {}
|
data/lib/libui/version.rb
CHANGED
data/lib/libui.rb
CHANGED
@@ -9,13 +9,21 @@ module LibUI
|
|
9
9
|
attr_accessor :ffi_lib
|
10
10
|
end
|
11
11
|
|
12
|
-
lib_name =
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
12
|
+
lib_name = [
|
13
|
+
"libui.#{RbConfig::CONFIG['host_cpu']}.#{RbConfig::CONFIG['SOEXT']}",
|
14
|
+
"libui.#{RbConfig::CONFIG['SOEXT']}"
|
15
|
+
]
|
16
|
+
|
17
|
+
self.ffi_lib = \
|
18
|
+
if ENV['LIBUIDIR'] && !ENV['LIBUIDIR'].empty?
|
19
|
+
lib_name.lazy
|
20
|
+
.map { |name| File.expand_path(name, ENV['LIBUIDIR']) }
|
21
|
+
.find { |path| File.exist?(path) }
|
22
|
+
else
|
23
|
+
lib_name.lazy
|
24
|
+
.map { |name| File.expand_path("../vendor/#{name}", __dir__) }
|
25
|
+
.find { |path| File.exist?(path) }
|
26
|
+
end
|
19
27
|
|
20
28
|
require_relative 'libui/ffi'
|
21
29
|
require_relative 'libui/libui_base'
|
@@ -35,6 +43,25 @@ module LibUI
|
|
35
43
|
warn UI.free_init_error(init)
|
36
44
|
end
|
37
45
|
|
46
|
+
# Gets the window position.
|
47
|
+
# Coordinates are measured from the top left corner of the screen.
|
48
|
+
# @param w [Fiddle::Pointer] Pointer of uiWindow instance.
|
49
|
+
# @return [Array] position of the window. [x, y]
|
50
|
+
# @note This method may return inaccurate or dummy values on Unix platforms.
|
51
|
+
|
52
|
+
def window_position(w)
|
53
|
+
x_ptr = Fiddle::Pointer.malloc(Fiddle::SIZEOF_INT, Fiddle::RUBY_FREE)
|
54
|
+
y_ptr = Fiddle::Pointer.malloc(Fiddle::SIZEOF_INT, Fiddle::RUBY_FREE)
|
55
|
+
super(w, x_ptr, y_ptr)
|
56
|
+
x = x_ptr[0, Fiddle::SIZEOF_INT].unpack1('i*')
|
57
|
+
y = y_ptr[0, Fiddle::SIZEOF_INT].unpack1('i*')
|
58
|
+
[x, y]
|
59
|
+
end
|
60
|
+
|
61
|
+
# FIXME: This is a workaround for a old version of Fiddle.
|
62
|
+
# Fiddle 1.1.2 and above should be able to handle one character string.
|
63
|
+
# See https://github.com/ruby/fiddle/issues/96
|
64
|
+
|
38
65
|
def open_type_features_add(otf, a, b, c, d, value)
|
39
66
|
a, b, c, d = [a, b, c, d].map { |s| s.is_a?(String) ? s.ord : s }
|
40
67
|
super(otf, a, b, c, d, value)
|
data/vendor/README.md
CHANGED
@@ -68,6 +68,16 @@ For the sake of completeness, I should note that the default value of `--layout`
|
|
68
68
|
|
69
69
|
Backends other than `ninja` should work, but are untested by me.
|
70
70
|
|
71
|
+
## Testing
|
72
|
+
|
73
|
+
### Automated Unit Tests
|
74
|
+
|
75
|
+
Run the included unit tests via `meson test -C build`. Alternatively you can also run the `unit` executable manually.
|
76
|
+
|
77
|
+
### Manual Testing Suite
|
78
|
+
|
79
|
+
Run the manual quality assurance test suite via `qa` and follow the instructions laid out within.
|
80
|
+
|
71
81
|
## Installation
|
72
82
|
|
73
83
|
Meson also supports installing from source; if you use Ninja, just do
|
@@ -82,9 +92,13 @@ When running `meson`, the `--prefix` option will set the installation prefix. [T
|
|
82
92
|
|
83
93
|
Can be built from AUR: https://aur.archlinux.org/packages/libui-ng-git/
|
84
94
|
|
85
|
-
## Documentation
|
95
|
+
## Documentation [WIP]
|
96
|
+
|
97
|
+
[API](https://libui-ng.github.io/libui-ng/), check the [modules](https://libui-ng.github.io/libui-ng/modules.html) section for an overview of (nearly all) uiControls.
|
98
|
+
|
99
|
+
Consult the `ui.h` comments for the uiControls missing in the docs.
|
86
100
|
|
87
|
-
|
101
|
+
Check the `examples` directory for fully fledged examples. Check out the `tests` directory and subdirectories for more real world usage.
|
88
102
|
|
89
103
|
## Language Bindings
|
90
104
|
|
@@ -96,7 +110,7 @@ Language | Bindings
|
|
96
110
|
--- | ---
|
97
111
|
C++ | [libui-cpp](https://github.com/billyquith/libui-cpp), [cpp-libui-qtlike](https://github.com/aoloe/cpp-libui-qtlike)
|
98
112
|
C# / .NET Framework | [LibUI.Binding](https://github.com/NattyNarwhal/LibUI.Binding)
|
99
|
-
C# / .NET Core | [DevZH.UI](https://github.com/noliar/DevZH.UI), [SharpUI](https://github.com/benpye/sharpui/)
|
113
|
+
C# / .NET Core | [DevZH.UI](https://github.com/noliar/DevZH.UI), [SharpUI](https://github.com/benpye/sharpui/)
|
100
114
|
CHICKEN Scheme | [wasamasa/libui](https://github.com/wasamasa/libui)
|
101
115
|
Common Lisp | [jinwoo/cl-ui](https://github.com/jinwoo/cl-ui)
|
102
116
|
Crystal | [libui.cr](https://github.com/Fusion/libui.cr), [hedron](https://github.com/Qwerp-Derp/hedron), [iu](https://github.com/grkek/iu)
|
@@ -109,13 +123,13 @@ JavaScript/Node.js | [libui-node](https://github.com/parro-it/libui-node), [libu
|
|
109
123
|
Julia | [Libui.jl](https://github.com/joa-quim/Libui.jl)
|
110
124
|
Kotlin | [kotlin-libui](https://github.com/msink/kotlin-libui)
|
111
125
|
Lua | [libuilua](https://github.com/zevv/libuilua), [libui-lua](https://github.com/mdombroski/libui-lua), [lui](http://tset.de/lui/index.html), [lui](https://github.com/zhaozg/lui)
|
112
|
-
Nim | [ui](https://github.com/nim-lang/ui)
|
126
|
+
Nim | [ui](https://github.com/nim-lang/ui), [uing](https://github.com/neroist/uing)
|
113
127
|
Perl6 | [perl6-libui](https://github.com/Garland-g/perl6-libui)
|
114
|
-
PHP | [ui](https://github.com/krakjoe/ui)
|
128
|
+
PHP | [ui](https://github.com/krakjoe/ui), [Ardillo](https://github.com/ardillo-php/ext)
|
115
129
|
Python | [pylibui](https://github.com/joaoventura/pylibui)
|
116
130
|
Ring | [RingLibui](https://github.com/ring-lang/ring/tree/master/extensions/ringlibui)
|
117
131
|
Ruby | [libui-ruby](https://github.com/jamescook/libui-ruby), [LibUI](https://github.com/kojix2/libui), [Glimmer DSL for LibUI](https://github.com/AndyObtiva/glimmer-dsl-libui)
|
118
|
-
Rust | [libui-ng-sys](https://github.com/norepimorphism/libui-ng-sys), [boing](https://github.com/norepimorphism/boing), [libui-rs](https://github.com/rust-native-ui/libui-rs)
|
132
|
+
Rust | [libui-ng-sys](https://github.com/norepimorphism/libui-ng-sys), [boing](https://github.com/norepimorphism/boing), [libui-rs](https://github.com/rust-native-ui/libui-rs), [libui](https://github.com/libui-rs/libui)
|
119
133
|
Scala | [scalaui](https://github.com/lolgab/scalaui)
|
120
134
|
Swift | [libui-swift](https://github.com/sclukey/libui-swift)
|
121
135
|
|
Binary file
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: libui
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.3.pre
|
5
5
|
platform: arm64-darwin
|
6
6
|
authors:
|
7
7
|
- kojix2
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2023-
|
11
|
+
date: 2023-11-09 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description:
|
14
14
|
email:
|
@@ -27,7 +27,7 @@ files:
|
|
27
27
|
- lib/libui/version.rb
|
28
28
|
- vendor/LICENSE.md
|
29
29
|
- vendor/README.md
|
30
|
-
- vendor/libui.dylib
|
30
|
+
- vendor/libui.arm64.dylib
|
31
31
|
homepage: https://github.com/kojix2/libui
|
32
32
|
licenses:
|
33
33
|
- MIT
|
@@ -40,14 +40,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
40
40
|
requirements:
|
41
41
|
- - ">="
|
42
42
|
- !ruby/object:Gem::Version
|
43
|
-
version: '2.
|
43
|
+
version: '2.6'
|
44
44
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
45
45
|
requirements:
|
46
46
|
- - ">"
|
47
47
|
- !ruby/object:Gem::Version
|
48
48
|
version: 1.3.1
|
49
49
|
requirements: []
|
50
|
-
rubygems_version: 3.4.
|
50
|
+
rubygems_version: 3.4.20
|
51
51
|
signing_key:
|
52
52
|
specification_version: 4
|
53
53
|
summary: Ruby bindings to libui
|
data/vendor/libui.dylib
DELETED
Binary file
|