libui 0.1.1.pre.1-x86_64-darwin → 0.1.3.pre-x86_64-darwin
Sign up to get free protection for your applications and to get access to all the features.
- 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.x86_64.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: f6a349bb223eda3eecb772bf46d1d98085e4bcc0a8dc4decd5deedbfb898bde8
|
4
|
+
data.tar.gz: 57e565d3989a659066e1565b7522dd108ac160fb19d7938c004f97e060ea3def
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: fdef3e3c972f1e369f1636abdd5ba19281145fc5ef17bca0b1fc5308190b388d636ec67f73978671e3ce43f853813d842693d0ff719e64cbbe6ca52a65d87b26
|
7
|
+
data.tar.gz: 3b1071796e70357282109896c91bad0e448f547a91f0ca9e9f1c318a31cafa71d8c9e8ce44fd8f7e9daa6e997c9dfc648fb087548a0b3061be5aa122128fa7c8
|
data/README.md
CHANGED
@@ -1,14 +1,15 @@
|
|
1
1
|
# LibUI
|
2
2
|
|
3
|
-
![
|
3
|
+
[![test](https://github.com/kojix2/LibUI/actions/workflows/test.yml/badge.svg)](https://github.com/kojix2/LibUI/actions/workflows/test.yml)
|
4
4
|
[![Gem Version](https://badge.fury.io/rb/libui.svg)](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
|
+
[![Pre-build](https://github.com/kojix2/libui-ng/actions/workflows/pre-build.yml/badge.svg?branch=pre-build)](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: x86_64-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.x86_64.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
|