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).

Nana
Informations
Développé par Jin Hao
Dernière version 1.6.1 ()
Écrit en C++
Système d'exploitation Microsoft WindowsVoir et modifier les données sur Wikidata
Environnement Windows et Linux sous X11]
Type Bibliothèque graphique
Licence Licence logicielle Boost

Nana est un logiciel gratuit à code source ouvert utilisable selon les termes de la licence logicielle Boost.

Conception et architecture

modifier

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[1]. 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[2], 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

modifier

Nana est écrit en C++ et cible uniquement ce langage.

L'exemple suivant[3] 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

modifier

Selon les pages du projet sur SourceForge.net[4] :

  • 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[5] font remonter la première version 0.1.0 au .

Notes et références

modifier

Références

modifier
  1. ↑ (en) « Nana C++ Library on GitHub »
  2. ↑ (en) « Nana's Mill:Nana C++ Library for C++11 is available now »
  3. ↑ (en) « Nana C++ reference: examples »
  4. ↑ (en) Jin Hao, « SourceForge Nana C++ - A modern C++ GUI library », sur SourceForge (consulté le )
  5. ↑ (en) Jin Hao, « SourceForge Nana C++ alpha », sur SoruceForge (consulté le )

Voir aussi

modifier