Nana (bibliothèque)
Nana est une bibliothèque logicielle C++ multiplate-forme pour créer des interfaces graphiques. Elle utilise une Interface de programmation indépendante de la plateforme et fonctionne actuellement avec Windows et Linux (X11)[1].
Développé par | Jin Hao |
---|---|
Dernière version | 1.6.1 () |
Écrit en | C++ |
Système d'exploitation | Microsoft Windows |
Environnement | Windows et Linux sous X11] |
Type | Bibliothèque graphique |
Licence | Licence logicielle Boost |
Site web | nanapro.org |
Nana est un logiciel gratuit à code source ouvert utilisable selon les termes de la licence logicielle Boost.
Conception et architecture
Nana met en œuvre une boite à outils de composants d'interface graphique selon une conception à la fois orientée objet et de programmation générique[2]. Elle respecte entièrement le standard de C++ et peut donc être en principe compilée avec n'importe quel compilateur répondant au standard ISO (par exemple, VC2013, GCC/MinGW, Clang).
L'objectif principal de la conception de Nana est de rendre le développement d'interfaces graphiques simple et intuitif pour les développeurs C++. Elle utilise pour cela beaucoup d'éléments de langage C++ avancés, tels que les templates, la librairie standard, les exceptions et la détermination dynamique des types à l'exécution. La librairie est entièrement conforme à C++11 depuis 2012[3], laissant ainsi aux développeurs la liberté d'utiliser les éléments de style dits C++ moderne, tels que les fonctions lambda, les pointeurs intelligents, et les évolutions de la librairie standard.
Interface avec le langage
Nana est écrit en C++ et cible uniquement ce langage.
L'exemple suivant[4] crée une fenêtre avec pour titre Bonjour tout le monde et un bouton Quitter :
#include<nana/gui/wvl.hpp>
#include <nana/gui/widgets/button.hpp>
int main()
{
using namespace nana;
form fm; // la classe form désigne une fenêtre avec titre et un cadre redimensionnable
fm.caption("Bonjour tout le monde");
button btn(fm, nana::rectangle(20, 20, 150, 30));
btn.caption("Quitter");
btn.events().click(API::exit); // API::exit est une fonction qui sera exécutée à la suite d'un click
fm.show();
exec();
}
Versions
Selon les pages du projet sur SourceForge.net[5] :
- en 2015, 10 versions 1.x.x ont été publiées ;
- entre le milieu de 2013 et le début de 2015, 24 versions 0.x.x ont été publiées.
Les pages de la préversion du projet sur SourceForge.net[6] font remonter la première version 0.1.0 au .
Références
- (en) Cet article est partiellement ou en totalité issu de l’article de Wikipédia en anglais intitulé « Nana C++ » (voir la liste des auteurs).
- (en) « What is Nana ? »
- (en) « Nana C++ Library on GitHub »
- (en) « Nana's Mill:Nana C++ Library for C++11 is available now »
- (en) « Nana C++ reference: examples »
- (en) Jin Hao, « SourceForge Nana C++ - A modern C++ GUI library », sur SourceForge (consulté le )
- (en) Jin Hao, « SourceForge Nana C++ alpha », sur SoruceForge (consulté le )