Aller au contenu

Nana (bibliothèque)

Un article de Wikipédia, l'encyclopédie libre.
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
Site web nanapro.org

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

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

Conception et architecture

[modifier | modifier le code]

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

[modifier | modifier le code]

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();
}

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

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

Article connexe

[modifier | modifier le code]

Liens externes

[modifier | modifier le code]