An open API service indexing awesome lists of open source software.

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

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