All Projects → trustable-code → Nigui

trustable-code / Nigui

Licence: other
Cross-platform desktop GUI toolkit written in Nim

Programming Languages

nim
578 projects

Projects that are alternatives of or similar to Nigui

Gtk Fortran
A GTK / Fortran binding
Stars: ✭ 171 (-60.23%)
Mutual labels:  cross-platform, gui, gtk
Libagar
Cross-Platform GUI Toolkit (stable)
Stars: ✭ 212 (-50.7%)
Mutual labels:  toolkit, cross-platform, gui
Eiskaltdcpp
File sharing program using DC and ADC protocols
Stars: ✭ 277 (-35.58%)
Mutual labels:  cross-platform, gui, gtk
Mednaffe
A front-end (GUI) for mednafen emulator
Stars: ✭ 200 (-53.49%)
Mutual labels:  cross-platform, gui, gtk
Wxwidgets
wxWidgets is a free and open source cross-platform C++ framework for writing advanced GUI applications using native controls.
Stars: ✭ 3,994 (+828.84%)
Mutual labels:  cross-platform, gui, gtk
Xtd forms
Modern c++17 library to create native gui for Microsoft Windows, Apple macOS and Linux.
Stars: ✭ 25 (-94.19%)
Mutual labels:  toolkit, cross-platform, gui
Dearpygui
Dear PyGui: A fast and powerful Graphical User Interface Toolkit for Python with minimal dependencies
Stars: ✭ 6,631 (+1442.09%)
Mutual labels:  toolkit, cross-platform, gui
Gwen Nolegacy Opentk Renderer
A C# port of the GWEN GUI library, with an OpenTK renderer
Stars: ✭ 26 (-93.95%)
Mutual labels:  toolkit, cross-platform, gui
Tray
Cross-platform, super tiny C99 implementation of a system tray icon with a popup menu.
Stars: ✭ 262 (-39.07%)
Mutual labels:  cross-platform, gtk
Cloaker
Simple, drag-and-drop, password-based file encryption
Stars: ✭ 267 (-37.91%)
Mutual labels:  cross-platform, gui
Orbtk
The Rust UI-Toolkit.
Stars: ✭ 3,460 (+704.65%)
Mutual labels:  cross-platform, gui
Termkit
Terminal Kit - Console UI toolkit for Swift applications
Stars: ✭ 256 (-40.47%)
Mutual labels:  toolkit, gui
csak
Cartel Swiss Army Knife for Android devices - easy to use toolkit for Android devices
Stars: ✭ 18 (-95.81%)
Mutual labels:  gtk, toolkit
Wxphp
Build cross-platform software with rich native GUIs using the combined power of the PHP language and the wxWidgets library.
Stars: ✭ 328 (-23.72%)
Mutual labels:  cross-platform, gui
Wdisplays
GUI display configurator for wlroots compositors
Stars: ✭ 302 (-29.77%)
Mutual labels:  gui, gtk
Rednotebook
RedNotebook is a cross-platform journal
Stars: ✭ 336 (-21.86%)
Mutual labels:  cross-platform, gtk
Xrtk Core
The Official Mixed Reality Framework for Unity
Stars: ✭ 219 (-49.07%)
Mutual labels:  toolkit, cross-platform
Alchemy
An experimental GUI framework for Rust, backed by per-platform native widgets. React, AppKit/UIKit inspired. EXPERIMENTAL, runs on Cocoa right now. ;P
Stars: ✭ 321 (-25.35%)
Mutual labels:  gui, gtk
Sherloq
An open-source digital image forensic toolset
Stars: ✭ 349 (-18.84%)
Mutual labels:  toolkit, gui
Ricochet
Anonymous peer-to-peer instant messaging
Stars: ✭ 3,570 (+730.23%)
Mutual labels:  cross-platform, gui

NiGui

NiGui is a cross-platform desktop GUI toolkit written in Nim.
NiGui provides an easy way to develop applications in Nim with a full-featured graphical user interface.

Target platforms:

  • Windows (Win32 API)
  • Linux over GTK+ 3
  • macOS over GTK+ 3 (native support planned)

Design goals:

  • Full abstraction
    NiGui provides full abstraction of the underlying platform. NiGui applications are written once and can be compiled for different platforms. Application developers don't have to care about platform-specific details.
  • Simple and elegant
    NiGui has a clean and beginner-friendly high-level API. It is much less complex than the Win32 API, GTK+ or Qt.
    NiGui profits of Nim's features and elegance in contrast to C code, for example Nim's polymorphism capabilities.
  • Powerful
    NiGui uses the native controls of the underlying platform to give a familiar use and feel for the user. In addtion, NiGui allows to create custom controls for special use cases or a themed UI.
    NiGui has it's own layout manager for automatic resizing and positioning of controls.
  • Minimal dependencies
    The NiGui source code has no dependencies except Nim's standard library. Platform bindings are included.
    Generated binaries (exe files) include NiGui and do not need external libraries.

Screenshots

Example program with native controls running under Windows 10 and Xubuntu:

Current state

NiGui is currently work in progress. Very basic things work, many things are missing.

Working:

  • Window, Button, Label, TextBox, TextArea
  • LayoutContainer (own layout manager)
  • Timers
  • Message boxes and file dialogs
  • Custom controls including scrolling
  • Drawing and image processing

WIP:

  • Event handling
  • Documentation

Planned:

  • macOS support
  • More widgets

Getting started

How to install NiGui manually

  1. Clone the NiGui repository with Git or download the source code
  2. Add the following line to one of your Nim configuration files:
    --path:"<path_to_nigui>/src"

How to install NiGui with Nimble

Run the Nimble install command: $ nimble install nigui

Additional configuration

  • To disable the command line window under Windows, add this line to your Nim configuration: --app:gui
  • To compile a Windows binary which uses Gtk, add this line to your Nim configuration: -d:forceGtk

How to verify the installation

Compile and run one of the included example programs.

Show cases

Contributing

You can help to improve NiGui by:

  • Trying to use it and giving feedback
  • Test the programs under different Windows versions or Linux distributions
  • Developing show cases
  • Help improving and extending the code
  • Adding macOS support

Contact: see https://github.com/trustable-code

FAQ

FAQ

License

NiGui is FLOSS (free and open-source software).
All files in this repository are licensed under the MIT License. As a result you may use any compatible license (essentially any license) for your own programs developed with NiGui. You are explicitly permitted to develop commercial applications using NiGui.
Copyright 2017-2020 Simon Krauter and contributors

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].