Software:Nana (C++ library)
Developer(s) | Jin Hao |
---|---|
Initial release | 2007 |
Stable release | 1.7.4
/ May 16, 2020 |
Written in | C++ |
Operating system | Windows and Linux with X11 |
Type | user interface library |
License | Boost Software License |
Website | nanapro |
Nana is a cross-platform C++ library for creating graphical user interfaces. It uses a platform-independent API and currently supports Windows, Linux[1] and FreeBSD.[2]
Nana is free and open-source software, licensed under the Boost Software License.
Architecture and design
Nana is an object-oriented widget toolkit using generic programming[3] and written in Standard C++. It can therefore be compiled by any Standard C++ compiler (VC2013, GCC/MinGW, Clang).
The primary design goal of Nana is to make things simple and intuitive to C++ developers: it therefore uses many advanced C++ features, such as templates, standard libraries, exception and RTTI. It fully supports C++11 since 2012,[4] giving the developers the freedom to use various modern C++ features such as lambda functions, smart pointers and the standard library.
Language bindings
Nana was written in C++ and targets only this language.
The following Nana example[5] creates a window with a "Hello, World" caption and a "Quit" button:
#include <nana/gui/wvl.hpp> #include <nana/gui/widgets/button.hpp> int main() { using namespace nana; form fm; // The form is a window with title bar and a sizable border frame, fm.caption("Hello World"); button btn(fm, rectangle(20, 20, 150, 30)); btn.caption("Quit"); btn.events().click(API::exit); // API::exit is a function that is triggered on click fm.show(); exec(); }
Versions
The current version 1.7.4 was released on May 16, 2020.
According to the project's SourceForge repository:[6]
- In 2015, 10 versions 1.x.x were released.
- Between mid 2013 and begin 2015, 24 versions 0.x.x were released, .
The SourceForge repository of the alpha release[7] of the project, traces the first release 0.1.0 back to December 4, 2007.
See also
- gtkmm (C++ binding of GTK+)
- FLTK
- FOX toolkit
- Juce
- Qt
- VCF
- wxWidgets - cross platform open source C++ widgets toolkit developed by community
- Ultimate++
- List of widget toolkits
References
- ↑ "What is Nana ?". http://nanapro.org/en-us/brief.htm.
- ↑ "Nana C++ Library - a modern C++ GUI library". http://nanapro.org.
- ↑ "Nana C++ Library on GitHub". https://github.com/qPCR4vir/nana-docs/wiki.
- ↑ "Nana's Mill:Nana C++ Library for C++11 is available now". https://nanaproject.wordpress.com/.
- ↑ "Nana C++ reference: examples". https://qpcr4vir.github.io/nana-doxy/html/db/d9a/helloword_quit_8cpp-example.html.
- ↑ Jin Hao. "SourceForge Nana C++ - A modern C++ GUI library". http://sourceforge.net/projects/nanapro/.
- ↑ Jin Hao. "SourceForge Nana C++ alpha". http://sourceforge.net/projects/stdex/.
External links