libui 0.1.2.pre-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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 2d6ce2097a09b81f504317885aed900b5cfac96f4087dada4b3b18547dd715e4
4
- data.tar.gz: 7fc8f0105d356297a55cbdf2a86cc4d78da8409e41289ddfd2140dc90f809ee9
3
+ metadata.gz: f6a349bb223eda3eecb772bf46d1d98085e4bcc0a8dc4decd5deedbfb898bde8
4
+ data.tar.gz: 57e565d3989a659066e1565b7522dd108ac160fb19d7938c004f97e060ea3def
5
5
  SHA512:
6
- metadata.gz: e6407d9777ac39a90a10ea994a1bf809127998c16533f767feed2738896007944273c0937136959e34f053404a575b1499904d6e3d1b18238bbeea63cd61b596
7
- data.tar.gz: 3ff3d96deb4acf85d0db77ae9b46debe9efa340777266a88bb825e1caab94ddd15b577c023a1eee100d57559d6ce0ea963726335df09896ac75a9cc256d5a33c
6
+ metadata.gz: fdef3e3c972f1e369f1636abdd5ba19281145fc5ef17bca0b1fc5308190b388d636ec67f73978671e3ce43f853813d842693d0ff719e64cbbe6ca52a65d87b26
7
+ data.tar.gz: 3b1071796e70357282109896c91bad0e448f547a91f0ca9e9f1c318a31cafa71d8c9e8ce44fd8f7e9daa6e997c9dfc648fb087548a0b3061be5aa122128fa7c8
data/README.md CHANGED
@@ -1,14 +1,15 @@
1
1
  # LibUI
2
2
 
3
- ![build](https://github.com/kojix2/libui/workflows/build/badge.svg)
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
- * The gem package contains the [official release](https://github.com/andlabs/libui/releases/tag/alpha4.1) of the libui shared library versions 4.1 for Windows, Mac, and Linux.
20
- * Namely `libui.dll`, `libui.dylib`, and `libui.so` (only 1.8MB in total).
21
- * No dependency
22
- * The libui gem uses the standard Ruby library [Fiddle](https://github.com/ruby/fiddle) to call C functions.
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 | Mac | Linux |
25
- |---------|-----|-------|
26
- |<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">|
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
- Note:
29
- * If you are using the 32-bit (x86) version of Ruby, you need to download the 32-bit (x86) native dll. See [Development](#development).
30
- * 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))
31
- * [Raspberry Pi](https://www.raspberrypi.com/) and other platform users will need to compile C libui. See [Development](#development).
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
- See [examples](https://github.com/kojix2/libui/tree/main/examples) directory.
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
- * The method names are snake_case.
71
- * If the last argument is nil, it can be omitted.
72
- * You can pass a block as a callback.
73
- * The block will be converted to a Proc object and added to the last argument.
74
- * Even in that case, it is possible to omit the last argument when nil.
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 intentionally not object-oriented because it is a thin Ruby wrapper (binding) for the procedural C libui library, so it mirrors its API structure.
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
- It is recommended that you build actual applications using a DSL for LibUI because DSLs enable writing object-oriented code the Ruby way (instead of procedural code the C way):
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
- * [Glimmer DSL for LibUI](https://github.com/AndyObtiva/glimmer-dsl-libui)
85
- * [libui_paradise](https://rubygems.org/gems/libui_paradise)
86
+ - [Glimmer DSL for LibUI](https://github.com/AndyObtiva/glimmer-dsl-libui)
87
+ - [libui_paradise](https://rubygems.org/gems/libui_paradise)
86
88
 
87
- ### How to use fiddle pointers?
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
- Convert a pointer to a string.
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
- * Callbacks
124
- * In Ruby/Fiddle, a C callback function is written as an object of
125
- `Fiddle::Closure::BlockCaller` or `Fiddle::Closure`.
126
- In this case, you need to be careful about Ruby's garbage collection.
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
- ### How to create an executable (.exe) on Windows
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
- OCRA (One-Click Ruby Application) builds Windows executables from Ruby source code.
140
- * https://github.com/larsch/ocra/
141
+ - https://github.com/larsch/ocra/
141
142
 
142
- In order to build a exe with Ocra, include 3 DLLs from ruby_builtin_dlls folder:
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:default # download shared libraries for all platforms
170
+ bundle exec rake vendor:auto # vendor:build
172
171
  bundle exec rake test
173
172
  ```
174
173
 
175
- You can use the following rake tasks to download the shared library required for your platform.
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:kojix2:auto # Download kojix2 pre-build for your platform to vendor directory
181
- rake vendor:kojix2:mac # Download kojix2 pre-build for Mac to vendor directory
182
- rake vendor:kojix2:ubuntu_x64 # Download kojix2 pre-build for Ubuntu to vendor directory
183
- rake vendor:kojix2:windows_x64 # Download kojix2 pre-build for Windows to vendor directory
184
- rake vendor:kojix2:windows_x86 # Download kojix2 pre-build for Windows to vendor directory
185
- rake vendor:libui-ng:build[hash] # Build libui-ng latest master [commit hash]
186
- rake vendor:libui-ng:mac # Download latest dev build for Mac to vendor directory
187
- rake vendor:libui-ng:ubuntu_x64 # Download latest dev build for Ubuntu to vendor directory
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, If you are using a 32-bit (x86) version of Ruby on Windows, type `vendor:kojix2:windows_x86`.
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
- ### Use C libui compiled from source code
195
+ ### Using C libui compiled from source code
193
196
 
194
- You can compile C libui from source code on your platform and tell ruby LibUI where to find the shared libraries. Set 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).
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
- * From version 0.1.X, we plan to support only libui-ng/libui-ng.
201
- * Version 0.0.X only supports andlabs/libui.
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 add your commits to libui?
206
- * Please feel free to send us your [pull requests](https://github.com/kojix2/libui/pulls).
207
- * Small corrections, such as typo fixes, are appreciated.
208
- * Did you find any bugs? Enter in the [issues](https://github.com/kojix2/LibUI/issues) section!
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
- I have seen many OSS projects abandoned. The main reason is that no one has the right to commit to the original repository, except the founder.
211
- Do you need commit rights to my repository? Do you want to get admin rights and take over the project? If so, please feel free to contact me @kojix2.
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
- ## Acknowledgement
241
+ ## Acknowledgements
214
242
 
215
243
  This project is inspired by libui-ruby.
216
244
 
217
- * https://github.com/jamescook/libui-ruby
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)'
@@ -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
@@ -1,3 +1,3 @@
1
1
  module LibUI
2
- VERSION = '0.1.2.pre'
2
+ VERSION = '0.1.3.pre'
3
3
  end
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 = "libui.#{RbConfig::CONFIG['SOEXT']}"
13
-
14
- self.ffi_lib = if ENV['LIBUIDIR'] && !ENV['LIBUIDIR'].empty?
15
- File.expand_path(lib_name, ENV['LIBUIDIR'])
16
- else
17
- File.expand_path("../vendor/#{lib_name}", __dir__)
18
- end
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
- Needs to be written. Consult `ui.h` and the examples for details for now.
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/), [SimplexiDev.UI](https://github.com/simplexidev/sdfx)
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.2.pre
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-03-05 00:00:00.000000000 Z
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.5'
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.6
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