https://github.com/thindil/nuklearnim
Mirror of Nim programming language binding for Nuklear GUI library
https://github.com/thindil/nuklearnim
gui nim nuklear
Last synced: about 2 months ago
JSON representation
Mirror of Nim programming language binding for Nuklear GUI library
- Host: GitHub
- URL: https://github.com/thindil/nuklearnim
- Owner: thindil
- License: bsd-3-clause
- Created: 2023-05-18T07:21:40.000Z (almost 2 years ago)
- Default Branch: trunk
- Last Pushed: 2025-03-31T03:45:38.000Z (about 2 months ago)
- Last Synced: 2025-03-31T04:27:13.082Z (about 2 months ago)
- Topics: gui, nim, nuklear
- Language: C
- Homepage: https://www.laeran.pl.eu.org/repositories/nuklearnim/home
- Size: 513 KB
- Stars: 5
- Watchers: 3
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Funding: .github/FUNDING.yml
- License: license.txt
Awesome Lists containing this project
README
NuklearNim is Nim binding for [Nuklear](https://github.com/Immediate-Mode-UI/Nuklear/)
GUI library. The version of the library used in the project is incompatible
with the original one, it has added some features (like support for new lines
in wrap labels, or the option to select which mouse button trigger a context
menu). At the moment it is in the alpha stage and generally, it is
a WYSIWYG (or DIY) type of the project. ;)I created the project because I needed a GUI library for my other projects in
Nim. It is more like backup than a real project. I will occasionally update the
binding as I will work more with it in other cases. For this reason I
don't accept any bug reports or requests for features. Not until stable stage 3 of
the project (for roadmap, please look below).If you read this file on GitHub: **please don't send pull requests here**. All will
be automatically closed. Any code propositions should go to the
[Fossil](https://www.laeran.pl.eu.org/repositories/nuklearnim) repository.### Roadmap
* Stage 3: Rewrite everything in Nim. The current stage, started.
### Usage
To use it in your project, you will need files:
* `nuklear.h` - Nuklear library itself
* `nuklear.nim` - Nim main binding file to the Nuklear library.
* `nk_*.nim` - Nim submodules, for various Nuklear UI elements.
* nuklear_xxx.h - the selected backend for Nuklear library. For example,
`nuklear_sdl_renderer.h`
* nuklear_xxx.nim - Nim binding for the selected backed. In the same example,
it will be `nuklear_sdl_renderer.nim`.You will need also to set the proper flags for C compiler, so it will be able to
find the library.In your project, always import binding to the backed, not to the library
itself. For example, `import nuklear_sdl_renderer`.### Demo
To build the demo, enter *demo* directory and run *build.nims* script. You will
need to set paths in *config.nims* file too. To see all available backends,
just run *build.nims* without any argument. For example, to build the demo with
SDL2 backend, type `./build.nims sdl2`.### Documentation
At the moment only in form of the code, in *demo* directory plus comments in
*nuklear.h* and *nuklear.nim* files. Don't expect anything better soon(TM). ;)### License
The project released under 3-Clause BSD license. The original Nuklear library
code is released under Public Domain/MIT license (at your option).---
Bartek thindil Jasicki