Mémoire Du Travail De Diplôme
Total Page:16
File Type:pdf, Size:1020Kb
eivd Framework sous Linux Bastien Andrès Projet de Diplôme Framework sous Linux Cahier des charges Donnée de base Le but du projet est la conception et la réalisation d’un Framewok destiné à être utilisé pour l’enseignement. Différentes approches de solution sont à envisager, dont une solution basée sur une librairie graphique (Motif, LessTif, Gtk, etc.) ou utilisant un Framework complexe existant (Qt, wxWindows) ou encore Java. Cahier des charges Le Framework est destiné à servir d’illustration d’une conception orientée objet et pour l’introduction du concept dans le cadre d’un cours et laboratoire; la complexité en est en conséquence réduite. Les différentes options sont à considérer: Utilisation d’une librairie graphique comme LessTif ou gtk pour la gestion de l’interface utilisateur; Possibilité d’utiliser un Framework existant du domaine publique pour la réalisation du Framework désiré; Ajout de la fonctionnalité du multi−fenêtrage à un Framework à fenêtre unique (LAF); Adaptation du Framework mis à disposition par Java (réduction de sa complexité). Page 1/112 eivd Framework sous Linux Bastien Andrès Table des matières 1.Résumé..............................................................................................................................................7 2.Introduction.......................................................................................................................................8 2.1.Définition de ’Framework’..............................................................................................................8 3.Techniques.........................................................................................................................................9 3.1.Langages et outils............................................................................................................................9 3.1.1.C..............................................................................................................................................9 3.1.1.1.Pointeurs de fonctions......................................................................................................9 3.1.1.2.Fonctions ’Callback’........................................................................................................9 3.1.1.3.Modèle objet en C............................................................................................................9 3.1.1.4.Macros...........................................................................................................................10 3.1.1.5.Gestion de la mémoire....................................................................................................10 3.1.1.6.Informations relatives à l’application.............................................................................10 3.1.2.C++.......................................................................................................................................10 3.1.2.1.Contrôle des types à la compilation................................................................................10 3.1.2.2.’Templates’....................................................................................................................10 3.1.3.Java.......................................................................................................................................11 3.1.3.1.’Garbage Collector’........................................................................................................11 3.1.3.2.Threads..........................................................................................................................11 3.1.3.3.’Reflection’....................................................................................................................11 3.1.4.Compilation...........................................................................................................................11 3.1.4.1.Scripts............................................................................................................................11 3.1.4.2.Makefile.........................................................................................................................12 3.1.4.3.Préprocessing.................................................................................................................12 3.2.Concepts.......................................................................................................................................12 3.2.1.Modèle ’Model−View−Controller’........................................................................................12 3.2.2.Dualité Application−Document.............................................................................................13 3.2.3.Programmation événementielle..............................................................................................13 3.2.4.Programmation par composants.............................................................................................13 3.3.Gestion Graphique........................................................................................................................13 3.3.1.Régions..................................................................................................................................13 3.3.2.Contexte graphique................................................................................................................14 3.3.3.Programmation graphique événementielle.............................................................................14 3.3.4.’Window Manager’................................................................................................................14 3.3.5.Modèles d’application multi−fenêtres....................................................................................15 3.3.6.’Xwindow’............................................................................................................................15 3.3.7.Répartition des tâches d’affichage (X−WM−Lib−App).........................................................15 3.4.Technique des librairies graphiques...............................................................................................15 3.4.1.Concepts................................................................................................................................15 3.4.1.1.Description de la composition graphique........................................................................15 3.4.1.2.’Layout Management’....................................................................................................16 3.4.1.3.’Top Level’....................................................................................................................16 3.4.1.4.Utilisation des contextes graphiques...............................................................................16 3.4.2.Déroulement standard d’une application................................................................................16 3.4.2.1.Introduction....................................................................................................................16 3.4.2.2.Création des objets.........................................................................................................16 3.4.2.3.Assignation des propriétés..............................................................................................17 3.4.2.4.Composition...................................................................................................................17 3.4.2.5.Réalisation.....................................................................................................................17 3.4.2.6.Lancement du processus événementiel...........................................................................17 3.4.2.7.Schéma de traitement des événements............................................................................17 3.4.2.8.Mise à jour de l’état de l’application..............................................................................17 Page 2/112 eivd Framework sous Linux Bastien Andrès 3.4.2.9.Terminaison de l’application..........................................................................................17 3.5.Librairies graphiques ’standards’ sous Linux................................................................................18 3.5.1.Introduction...........................................................................................................................18 3.5.2.Motif / Lesstif........................................................................................................................18 3.5.3.Gtk+ / Gtk−− / libsigc++.......................................................................................................18 3.5.3.1.Gtk.................................................................................................................................18 3.5.3.2.Gtk+...............................................................................................................................19 3.5.3.3.Glib................................................................................................................................19 3.5.3.4.Gdk................................................................................................................................19 3.5.3.5.Gtk−−.............................................................................................................................19 3.5.3.6.libsigc++........................................................................................................................19