Ecosyste.ms: Awesome

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

Awesome Lists | Featured Topics | Projects

https://github.com/yglukhov/nimx

GUI library
https://github.com/yglukhov/nimx

nim ui

Last synced: about 1 month ago
JSON representation

GUI library

Awesome Lists containing this project

README

        

===========
nimx |travis| |nimble|
===========

.. |travis| image:: https://travis-ci.org/yglukhov/nimx.svg?branch=master
:target: https://travis-ci.org/yglukhov/nimx

.. |nimble| image:: https://raw.githubusercontent.com/yglukhov/nimble-tag/master/nimble_js.png
:target: https://github.com/yglukhov/nimble-tag

Cross-platform GUI framework in `Nim `_.

`Live demo in WebGL `_

.. image:: ./doc/sample-screenshot.png

Usage
------------
.. code-block:: nim

# File: main.nim
import nimx/window
import nimx/text_field

proc startApp() =
# First create a window. Window is the root of view hierarchy.
var wnd = newWindow(newRect(40, 40, 800, 600))

# Create a static text field and add it to view hierarchy
let label = newLabel(newRect(20, 20, 150, 20))
label.text = "Hello, world!"
wnd.addSubview(label)

# Run the app
runApplication:
startApp()

Running
------------

.. code-block:: sh

nim c -r --threads:on main.nim

Supported target platforms
------------
Nimx officially supports Linux, MacOS, Windows, Android, iOS and WebAssembly (with Nim C backend and `Emscripten `_, and Emscripten-less compilation is experimental).

Troubleshooting
------------
Nimx is tested only against the latest devel version of Nim compiler. Before reporting any issues please verify that your Nim is as fresh as possible.

Running nimx samples
====================
.. code-block:: sh

git clone https://github.com/yglukhov/nimx
cd nimx
nimble install -dy
nake # Build and run on the current platform
# or
nake js # Build and run in default web browser

Reference
====================
See `the docs <./doc>`_ for more information.