Article Index

 

Après avoir compilé cet exemple et l'avoir exécuté on obtient une fenêtre contenant une petite boite de dialogue :

c'est la barre des tâches (BT) du windows manager.

 

  

   

Au 1er lancement seule la BT est visible.

Pour créer une fenêtre personnalisée il faut utiliser l'éditeur intégré à SFWM

(il est bien sûr possible de s'en affranchir et de coder manuellement l'ensemble

des fonctions nécessaires, mais l'éditeur devrait être privilégié afin d'éviter

toute erreur et surtout d'accélérer le travail).

 

 

L'éditeur permet de créer de nouvelles fenêtres (boites de dialogue). Plusieurs types prédéfinis sont disponibles.

L'intégration à QtCreator est parfaite et SFWM vient modifier le fichier pro de QtCreator afin d'ajouter les fichiers de classes auto générés au projet.

 

 

Une fois le bouton Ok pressé, si aucune erreur n'est détectée, la boite de dialogue demandée s'affiche.

Les nouveaux fichiers h et cpp contenant la nouvelle classe sont ajoutés à l'emplacement des sources, et si l'option est cochée ajoutés au projet pro.

Les seuls fichiers à ne pas éditer à la main sont csfwmnewdialogs.h et csfwmnewdialogs.cpp car ils sont modifiés entièrement par l'éditeur SFWM.

Les fichiers de classe peuvent bien sûr être modifiés par l'utilisateur au sein de QtCreator.

 

 

Exemple de dialog par défaut : DialogFileImages

 

 

 

Une console peut-être affichée à tout moment et l'utilisateur peut ajouter des informations en utilisant la fonction CSFWM::setConsoleText(texte).

 

 

Exemple de dialog utilisée dans le projet Capitaine Mars pour gérer les scripts :

 

 

 

Dialogue SFWM permettant de voir / modifier les propriétés des dialogs ou des contrôles :

 

Tout changement est automatiquement appliqué, ce qui explique l'abscence de bouton Ok ou Appliquer.

Code d'exemple :

 

 

 

Fichier main.cpp :

 

Le code propre à SFWM est surligné en jaune, ce code est suffisant pour faire fonctionner SFWM sans avoir besoin d'en ajouter dans d'autres portions de son projet.

 

#include
<SFML/System.hpp>
#include
<SFML/Graphics.hpp>
#include
<SFML/Audio.hpp>
#include
<SFWM/csfwm.h>
#include
<SFWM/csfwmtaskbar.h>
#include
"csfwmnewdialogs.h"
using
namespace
std;
int
main()
{
    //---SFWM---//

   CSFWM*
monWindowManager=new
CSFWM;
   //WindowManager
+ TaskBarre

   new
CSFWMNewDialogs;
//création
des dialogs
(avec
propriétés
de bases)

   //---SFML---//
    sf::RenderWindow
*sfApp;

   sfApp=new
sf::RenderWindow(sf::VideoMode(1280,768,16),"SFML
- Test
de la
librairie
SFWM -
(c) Eric
Bentin");
    while
(sfApp->isOpen())
    {
        //Efface
la fenêtre
:

       sfApp->clear();
        //SFWM
: Gestion
des entrées
souris/clavier
et
préparation
affichage :

       CSFWM::update(sfApp);
        //On
affiche le
rendu final
à l'écran:
        sfApp->display();
    }
    return
0;
}




Fichier
.pro :

Le
code surligné en jaune correspond à la librairie SFWM (installée
dans /usr/local/lib par défaut)

TEMPLATE
= app
CONFIG
+= console
CONFIG
-= qt
HEADERS
+= \
    csfwmnewdialogs.h
SOURCES
+= main.cpp
\
    csfwmnewdialogs.cpp

LIBS+=
-L/usr/local/lib -lsfml-audio
-lsfml-graphics -lsfml-window
-lsfml-system
-lavformat -lavcodec
-lswscale -lsfwm