Nana (C++ library)

From Wikipedia, the free encyclopedia
Jump to navigation Jump to search
Nana C++
Developer(s)Jin Hao
Initial release2007 (2007)
Stable release
1.7.1 / April 21, 2019; 6 months ago (2019-04-21)
Written inC++
Operating systemWindows and Linux with X11
Typeuser interface library
LicenseBoost Software License
Websitenanapro.org

Nana is a cross-platform C++ library for creating graphical user interfaces. It uses a platform-independent API and currently supports Windows and Linux(X11) platforms.[1]

Nana is free and open-source software, licensed under the Boost Software License.

Architecture and design[edit]

Nana is an object-oriented widget toolkit using generic programming[2] 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,[3] giving the developers the freedom to use various modern C++ features such as lambda functions, smart pointers and the standard library.

Language bindings[edit]

Nana was written in C++ and targets only this language.

The following Nana example[4] 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[edit]

The current version 1.5.5 was released on Sep 05, 2017.

According to the project's SourceForge repository:[5]

  • 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[6] of the project, traces the first release 0.1.0 back to December 4, 2007.

See also[edit]

References[edit]

  1. ^ "What is Nana ?". Archived from the original on 2016-02-11.
  2. ^ "Nana C++ Library on GitHub".
  3. ^ "Nana's Mill:Nana C++ Library for C++11 is available now".
  4. ^ "Nana C++ reference: examples".
  5. ^ Jin Hao. "SourceForge Nana C++ - A modern C++ GUI library". SourceForge. Retrieved 17 January 2016.
  6. ^ Jin Hao. "SourceForge Nana C++ alpha". SourceForge. Retrieved 17 January 2016.

External links[edit]