libui 0.1.3.pre-x64-mingw32 → 0.2.0.pre-x64-mingw32

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.
data/vendor/README.md CHANGED
@@ -1,157 +1,157 @@
1
- # libui-ng: a portable GUI library for C
2
-
3
- Fork of [andlabs/libui](https://github.com/andlabs/libui). This README is being written.<br>
4
- [![Build Status, GitHub Actions](https://github.com/libui-ng/libui-ng/actions/workflows/build.yml/badge.svg)](https://github.com/libui-ng/libui-ng/actions/workflows/build.yml)
5
- [![GitLab](https://img.shields.io/badge/gitlab-%23181717.svg?style=for-the-badge&logo=gitlab&logoColor=white)](https://gitlab.com/libui-ng/libui-ng)
6
- [![GitHub](https://img.shields.io/badge/github-%23121011.svg?style=for-the-badge&logo=github&logoColor=white)](https://github.com/libui-ng/libui-ng)
7
-
8
- ## About
9
-
10
- Simple and portable (but not inflexible) GUI library in C that uses the native GUI technologies of each platform it supports.
11
-
12
- ## Status
13
-
14
- libui-ng is currently **mid-alpha** software.
15
-
16
- See [CHANGELOG.md](CHANGELOG.md)
17
-
18
- *Old announcements can be found in the [news.md](old/news.md) file.*
19
-
20
- ## Runtime Requirements
21
-
22
- * Windows: Windows Vista SP2 with Platform Update or newer
23
- * Unix: GTK+ 3.10 or newer
24
- * Mac OS X: OS X 10.8 or newer
25
-
26
- ## Build Requirements
27
-
28
- * All platforms:
29
- * [Meson](https://mesonbuild.com/) 0.58.0 or newer
30
- * Any of Meson's backends; this section assumes you are using [Ninja](https://ninja-build.org/), but there is no reason the other backends shouldn't work.
31
- * Windows: either
32
- * Microsoft Visual Studio 2013 or newer (2013 is needed for `va_copy()`) — you can build either a static or a shared library
33
- * MinGW-w64 (other flavors of MinGW may not work) — **you can only build a static library**; shared library support will be re-added once the following features come in:
34
- * [Isolation awareness](https://msdn.microsoft.com/en-us/library/aa375197%28v=vs.85%29.aspx), which is how you get themed controls from a DLL without needing a manifest
35
- * Unix: nothing else specific
36
- * Mac OS X: nothing else specific, so long as you can build Cocoa programs
37
-
38
- ## Building
39
-
40
- libui-ng mainly uses [the standard Meson build options](https://mesonbuild.com/Builtin-options.html).
41
-
42
- ```
43
- $ # in the top-level libui-ng directory run:
44
- $ meson setup build [options]
45
- $ ninja -C build
46
- ```
47
-
48
- Once this completes, everything will be under `build/meson-out/`.
49
-
50
- libui-ng specific options:
51
-
52
- - `-Dtests=(true|false)` controls whether tests are built; defaults to `true`
53
- - `-Dexamples=(true|false)` controls whether examples are built; defaults to `true`
54
-
55
- Most important Meson options:
56
-
57
- * `--buildtype=(debug|release|...)` controls the type of build made; the default is `debug`. For a full list of valid values, consult [the Meson documentation](https://mesonbuild.com/Running-Meson.html).
58
- * `--default-library=(shared|static)` controls whether libui is built as a shared library or a static library; the default is `shared`. You currently cannot specify `both`, as the build process changes depending on the target type (though I am willing to look into changing things if at all possible).
59
- * `-Db_sanitize=which` allows enabling the chosen [sanitizer](https://github.com/google/sanitizers) on a system that supports sanitizers. The list of supported values is in [the Meson documentation](https://mesonbuild.com/Builtin-options.html#base-options).
60
- * `--backend=backend` allows using the specified `backend` for builds instead of `ninja` (the default). A list of supported values is in [the Meson documentation](https://mesonbuild.com/Builtin-options.html#universal-options).
61
- * `--wrap-mode=(forcefallback|nofallback|nodownload|...)` controls which cmocka library version to use in test enabled builds. The default is `forcefallback` to pull and build a local copy. Package maintainers may wish to choose `nofallback` to use the system's library and declare `cmocka` a build time dependency or `nodownload`, see [the Meson documentation](https://mesonbuild.com/Subprojects.html#commandline-options) for more details.
62
-
63
- Most other built-in options will work, though keep in mind there are a handful of options that cannot be overridden because libui depends on them holding a specific value; if you do override these, though, libui will warn you when you run `meson`.
64
-
65
- The Meson website and documentation has more in-depth usage instructions.
66
-
67
- For the sake of completeness, I should note that the default value of `--layout` is `flat`, not the usual `mirror`. This is done both to make creating the release archives easier as well as to reduce the chance that shared library builds will fail to start on Windows because the DLL is in another directory. You can always specify this manually if you want.
68
-
69
- Backends other than `ninja` should work, but are untested by me.
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
-
81
- ## Installation
82
-
83
- Meson also supports installing from source; if you use Ninja, just do
84
-
85
- ```
86
- $ ninja -C build install
87
- ```
88
-
89
- When running `meson`, the `--prefix` option will set the installation prefix. [The Meson documentation](https://mesonbuild.com/Builtin-options.html#universal-options) has more information, and even lists more fine-grained options that you can use to control the installation.
90
-
91
- #### Arch Linux
92
-
93
- Can be built from AUR: https://aur.archlinux.org/packages/libui-ng-git/
94
-
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.
100
-
101
- Check the `examples` directory for fully fledged examples. Check out the `tests` directory and subdirectories for more real world usage.
102
-
103
- ## Language Bindings
104
-
105
- libui was originally written as part of my [package ui for Go](https://github.com/andlabs/ui). Now that libui is separate, package ui has become a binding to libui. As such, package ui is the only official binding.
106
-
107
- Other people have made bindings to other languages:
108
-
109
- Language | Bindings
110
- --- | ---
111
- C++ | [libui-cpp](https://github.com/billyquith/libui-cpp), [cpp-libui-qtlike](https://github.com/aoloe/cpp-libui-qtlike)
112
- C# / .NET Framework | [LibUI.Binding](https://github.com/NattyNarwhal/LibUI.Binding)
113
- C# / .NET Core | [DevZH.UI](https://github.com/noliar/DevZH.UI), [SharpUI](https://github.com/benpye/sharpui/)
114
- CHICKEN Scheme | [wasamasa/libui](https://github.com/wasamasa/libui)
115
- Common Lisp | [jinwoo/cl-ui](https://github.com/jinwoo/cl-ui)
116
- Crystal | [libui.cr](https://github.com/Fusion/libui.cr), [hedron](https://github.com/Qwerp-Derp/hedron), [iu](https://github.com/grkek/iu)
117
- D | [DerelictLibui (flat API)](https://github.com/Extrawurst/DerelictLibui), [libuid (object-oriented)](https://github.com/mogud/libuid)
118
- Euphoria | [libui-euphoria](https://github.com/ghaberek/libui-euphoria)
119
- Harbour | [hbui](https://github.com/rjopek/hbui)
120
- Haskell | [haskell-libui](https://github.com/beijaflor-io/haskell-libui)
121
- Janet | [JanetUI](https://github.com/janet-lang/janetui)
122
- JavaScript/Node.js | [libui-node](https://github.com/parro-it/libui-node), [libui.js (merged into libui-node?)](https://github.com/mavenave/libui.js), [proton-native](https://github.com/kusti8/proton-native), [vuido](https://github.com/mimecorg/vuido)
123
- Julia | [Libui.jl](https://github.com/joa-quim/Libui.jl)
124
- Kotlin | [kotlin-libui](https://github.com/msink/kotlin-libui)
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)
126
- Nim | [ui](https://github.com/nim-lang/ui), [uing](https://github.com/neroist/uing)
127
- Perl6 | [perl6-libui](https://github.com/Garland-g/perl6-libui)
128
- PHP | [ui](https://github.com/krakjoe/ui), [Ardillo](https://github.com/ardillo-php/ext)
129
- Python | [pylibui](https://github.com/joaoventura/pylibui)
130
- Ring | [RingLibui](https://github.com/ring-lang/ring/tree/master/extensions/ringlibui)
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)
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)
133
- Scala | [scalaui](https://github.com/lolgab/scalaui)
134
- Swift | [libui-swift](https://github.com/sclukey/libui-swift)
135
-
136
- ## Frequently Asked Questions
137
-
138
- ### Why does my program start in the background on OS X if I run from the command line?
139
- OS X normally does not start program executables directly; instead, it uses [Launch Services](https://developer.apple.com/reference/coreservices/1658613-launch_services?language=objc) to coordinate the launching of the program between the various parts of the system and the loading of info from an .app bundle. One of these coordination tasks is responsible for bringing a newly launched app into the foreground. This is called "activation".
140
-
141
- When you run a binary directly from the Terminal, however, you are running it directly, not through Launch Services. Therefore, the program starts in the background, because no one told it to activate! Now, it turns out [there is an API](https://developer.apple.com/reference/appkit/nsapplication/1428468-activateignoringotherapps) that we can use to force our app to be activated. But if we use it, then we'd be trampling over Launch Services, which already knows whether it should activate or not. Therefore, libui does not step over Launch Services, at the cost of requiring an extra user step if running directly from the command line.
142
-
143
- See also [this](https://github.com/andlabs/libui/pull/20#issuecomment-211381971) and [this](http://stackoverflow.com/questions/25318524/what-exactly-should-i-pass-to-nsapp-activateignoringotherapps-to-get-my-appl).
144
-
145
- ## Contributing
146
-
147
- See [CONTRIBUTING.md](CONTRIBUTING.md)
148
-
149
- ## Screenshots
150
-
151
- From examples/controlgallery:
152
-
153
- ![Windows](examples/controlgallery/windows.png)
154
-
155
- ![Unix](examples/controlgallery/unix.png)
156
-
157
- ![OS X](examples/controlgallery/darwin.png)
1
+ # libui-ng: a portable GUI library for C
2
+
3
+ Fork of [andlabs/libui](https://github.com/andlabs/libui). This README is being written.<br>
4
+ [![Build Status, GitHub Actions](https://github.com/libui-ng/libui-ng/actions/workflows/build.yml/badge.svg)](https://github.com/libui-ng/libui-ng/actions/workflows/build.yml)
5
+ [![GitLab](https://img.shields.io/badge/gitlab-%23181717.svg?style=for-the-badge&logo=gitlab&logoColor=white)](https://gitlab.com/libui-ng/libui-ng)
6
+ [![GitHub](https://img.shields.io/badge/github-%23121011.svg?style=for-the-badge&logo=github&logoColor=white)](https://github.com/libui-ng/libui-ng)
7
+
8
+ ## About
9
+
10
+ Simple and portable (but not inflexible) GUI library in C that uses the native GUI technologies of each platform it supports.
11
+
12
+ ## Status
13
+
14
+ libui-ng is currently **mid-alpha** software.
15
+
16
+ See [CHANGELOG.md](CHANGELOG.md)
17
+
18
+ *Old announcements can be found in the [news.md](old/news.md) file.*
19
+
20
+ ## Runtime Requirements
21
+
22
+ * Windows: Windows Vista SP2 with Platform Update or newer
23
+ * Unix: GTK+ 3.10 or newer
24
+ * Mac OS X: OS X 10.8 or newer
25
+
26
+ ## Build Requirements
27
+
28
+ * All platforms:
29
+ * [Meson](https://mesonbuild.com/) 0.58.0 or newer
30
+ * Any of Meson's backends; this section assumes you are using [Ninja](https://ninja-build.org/), but there is no reason the other backends shouldn't work.
31
+ * Windows: either
32
+ * Microsoft Visual Studio 2013 or newer (2013 is needed for `va_copy()`) — you can build either a static or a shared library
33
+ * MinGW-w64 (other flavors of MinGW may not work) — **you can only build a static library**; shared library support will be re-added once the following features come in:
34
+ * [Isolation awareness](https://msdn.microsoft.com/en-us/library/aa375197%28v=vs.85%29.aspx), which is how you get themed controls from a DLL without needing a manifest
35
+ * Unix: nothing else specific
36
+ * Mac OS X: nothing else specific, so long as you can build Cocoa programs
37
+
38
+ ## Building
39
+
40
+ libui-ng mainly uses [the standard Meson build options](https://mesonbuild.com/Builtin-options.html).
41
+
42
+ ```
43
+ $ # in the top-level libui-ng directory run:
44
+ $ meson setup build [options]
45
+ $ ninja -C build
46
+ ```
47
+
48
+ Once this completes, everything will be under `build/meson-out/`.
49
+
50
+ libui-ng specific options:
51
+
52
+ - `-Dtests=(true|false)` controls whether tests are built; defaults to `true`
53
+ - `-Dexamples=(true|false)` controls whether examples are built; defaults to `true`
54
+
55
+ Most important Meson options:
56
+
57
+ * `--buildtype=(debug|release|...)` controls the type of build made; the default is `debug`. For a full list of valid values, consult [the Meson documentation](https://mesonbuild.com/Running-Meson.html).
58
+ * `--default-library=(shared|static)` controls whether libui is built as a shared library or a static library; the default is `shared`. You currently cannot specify `both`, as the build process changes depending on the target type (though I am willing to look into changing things if at all possible).
59
+ * `-Db_sanitize=which` allows enabling the chosen [sanitizer](https://github.com/google/sanitizers) on a system that supports sanitizers. The list of supported values is in [the Meson documentation](https://mesonbuild.com/Builtin-options.html#base-options).
60
+ * `--backend=backend` allows using the specified `backend` for builds instead of `ninja` (the default). A list of supported values is in [the Meson documentation](https://mesonbuild.com/Builtin-options.html#universal-options).
61
+ * `--wrap-mode=(forcefallback|nofallback|nodownload|...)` controls which cmocka library version to use in test enabled builds. The default is `forcefallback` to pull and build a local copy. Package maintainers may wish to choose `nofallback` to use the system's library and declare `cmocka` a build time dependency or `nodownload`, see [the Meson documentation](https://mesonbuild.com/Subprojects.html#commandline-options) for more details.
62
+
63
+ Most other built-in options will work, though keep in mind there are a handful of options that cannot be overridden because libui depends on them holding a specific value; if you do override these, though, libui will warn you when you run `meson`.
64
+
65
+ The Meson website and documentation has more in-depth usage instructions.
66
+
67
+ For the sake of completeness, I should note that the default value of `--layout` is `flat`, not the usual `mirror`. This is done both to make creating the release archives easier as well as to reduce the chance that shared library builds will fail to start on Windows because the DLL is in another directory. You can always specify this manually if you want.
68
+
69
+ Backends other than `ninja` should work, but are untested by me.
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
+
81
+ ## Installation
82
+
83
+ Meson also supports installing from source; if you use Ninja, just do
84
+
85
+ ```
86
+ $ ninja -C build install
87
+ ```
88
+
89
+ When running `meson`, the `--prefix` option will set the installation prefix. [The Meson documentation](https://mesonbuild.com/Builtin-options.html#universal-options) has more information, and even lists more fine-grained options that you can use to control the installation.
90
+
91
+ #### Arch Linux
92
+
93
+ Can be built from AUR: https://aur.archlinux.org/packages/libui-ng-git/
94
+
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.
100
+
101
+ Check the `examples` directory for fully fledged examples. Check out the `tests` directory and subdirectories for more real world usage.
102
+
103
+ ## Language Bindings
104
+
105
+ libui was originally written as part of my [package ui for Go](https://github.com/andlabs/ui). Now that libui is separate, package ui has become a binding to libui. As such, package ui is the only official binding.
106
+
107
+ Other people have made bindings to other languages:
108
+
109
+ Language | Bindings
110
+ --- | ---
111
+ C++ | [libui-cpp](https://github.com/billyquith/libui-cpp), [cpp-libui-qtlike](https://github.com/aoloe/cpp-libui-qtlike)
112
+ C# / .NET Framework | [LibUI.Binding](https://github.com/NattyNarwhal/LibUI.Binding)
113
+ C# / .NET Core | [DevZH.UI](https://github.com/noliar/DevZH.UI), [SharpUI](https://github.com/benpye/sharpui/)
114
+ CHICKEN Scheme | [wasamasa/libui](https://github.com/wasamasa/libui)
115
+ Common Lisp | [jinwoo/cl-ui](https://github.com/jinwoo/cl-ui)
116
+ Crystal | [libui.cr](https://github.com/Fusion/libui.cr), [hedron](https://github.com/Qwerp-Derp/hedron), [iu](https://github.com/grkek/iu)
117
+ D | [DerelictLibui (flat API)](https://github.com/Extrawurst/DerelictLibui), [libuid (object-oriented)](https://github.com/mogud/libuid)
118
+ Euphoria | [libui-euphoria](https://github.com/ghaberek/libui-euphoria)
119
+ Harbour | [hbui](https://github.com/rjopek/hbui)
120
+ Haskell | [haskell-libui](https://github.com/beijaflor-io/haskell-libui)
121
+ Janet | [JanetUI](https://github.com/janet-lang/janetui)
122
+ JavaScript/Node.js | [libui-node](https://github.com/parro-it/libui-node), [libui.js (merged into libui-node?)](https://github.com/mavenave/libui.js), [proton-native](https://github.com/kusti8/proton-native), [vuido](https://github.com/mimecorg/vuido)
123
+ Julia | [Libui.jl](https://github.com/joa-quim/Libui.jl)
124
+ Kotlin | [kotlin-libui](https://github.com/msink/kotlin-libui)
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)
126
+ Nim | [ui](https://github.com/nim-lang/ui), [uing](https://github.com/neroist/uing)
127
+ Perl6 | [perl6-libui](https://github.com/Garland-g/perl6-libui)
128
+ PHP | [ui](https://github.com/krakjoe/ui), [Ardillo](https://github.com/ardillo-php/ext)
129
+ Python | [pylibui](https://github.com/joaoventura/pylibui)
130
+ Ring | [RingLibui](https://github.com/ring-lang/ring/tree/master/extensions/ringlibui)
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)
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)
133
+ Scala | [scalaui](https://github.com/lolgab/scalaui)
134
+ Swift | [libui-swift](https://github.com/sclukey/libui-swift)
135
+
136
+ ## Frequently Asked Questions
137
+
138
+ ### Why does my program start in the background on OS X if I run from the command line?
139
+ OS X normally does not start program executables directly; instead, it uses [Launch Services](https://developer.apple.com/reference/coreservices/1658613-launch_services?language=objc) to coordinate the launching of the program between the various parts of the system and the loading of info from an .app bundle. One of these coordination tasks is responsible for bringing a newly launched app into the foreground. This is called "activation".
140
+
141
+ When you run a binary directly from the Terminal, however, you are running it directly, not through Launch Services. Therefore, the program starts in the background, because no one told it to activate! Now, it turns out [there is an API](https://developer.apple.com/reference/appkit/nsapplication/1428468-activateignoringotherapps) that we can use to force our app to be activated. But if we use it, then we'd be trampling over Launch Services, which already knows whether it should activate or not. Therefore, libui does not step over Launch Services, at the cost of requiring an extra user step if running directly from the command line.
142
+
143
+ See also [this](https://github.com/andlabs/libui/pull/20#issuecomment-211381971) and [this](http://stackoverflow.com/questions/25318524/what-exactly-should-i-pass-to-nsapp-activateignoringotherapps-to-get-my-appl).
144
+
145
+ ## Contributing
146
+
147
+ See [CONTRIBUTING.md](CONTRIBUTING.md)
148
+
149
+ ## Screenshots
150
+
151
+ From examples/controlgallery:
152
+
153
+ ![Windows](examples/controlgallery/windows.png)
154
+
155
+ ![Unix](examples/controlgallery/unix.png)
156
+
157
+ ![OS X](examples/controlgallery/darwin.png)
data/vendor/libui.x64.dll CHANGED
Binary file
metadata CHANGED
@@ -1,15 +1,29 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: libui
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.3.pre
4
+ version: 0.2.0.pre
5
5
  platform: x64-mingw32
6
6
  authors:
7
7
  - kojix2
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-11-12 00:00:00.000000000 Z
12
- dependencies: []
11
+ date: 2025-08-16 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: fiddle
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
13
27
  description:
14
28
  email:
15
29
  - 2xijok@gmail.com
@@ -20,6 +34,7 @@ files:
20
34
  - LICENSE.txt
21
35
  - README.md
22
36
  - lib/libui.rb
37
+ - lib/libui/error.rb
23
38
  - lib/libui/ffi.rb
24
39
  - lib/libui/fiddle_patch.rb
25
40
  - lib/libui/libui_base.rb
@@ -47,7 +62,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
47
62
  - !ruby/object:Gem::Version
48
63
  version: 1.3.1
49
64
  requirements: []
50
- rubygems_version: 3.4.22
65
+ rubygems_version: 3.1.6
51
66
  signing_key:
52
67
  specification_version: 4
53
68
  summary: Ruby bindings to libui