Système de fenêtrage


Histoire

Dans cet exercice, tu vas simuler un système informatique à base de fenêtres. On va créer des fenêtres que l'on peut déplacer et redimensionner, et qui affichent leur contenu. L'image ci-dessous illustre les valeurs avec lesquelles on va travailler.

                  <--------------------- screenSize.width --------------------->

       ^          ╔════════════════════════════════════════════════════════════╗
       |          ║                                                            ║
       |          ║          position.x,_                                      ║
       |          ║          position.y  \                                     ║
       |          ║                       \<----- size.width ----->            ║
       |          ║                 ^      *──────────────────────┐            ║
       |          ║                 |      │        title         │            ║
       |          ║                 |      ├──────────────────────┤            ║
screenSize.height ║                 |      │                      │            ║
       |          ║            size.height │                      │            ║
       |          ║                 |      │       contents       │            ║
       |          ║                 |      │                      │            ║
       |          ║                 |      │                      │            ║
       |          ║                 v      └──────────────────────┘            ║
       |          ║                                                            ║
       |          ║                                                            ║
       v          ╚════════════════════════════════════════════════════════════╝

Tâches

Voici des exemples de tâches qui correspondent à l'histoire de l'implémentation d'un système de fenêtrage simplifié pour un système d'exploitation :

  • Définis une structure Size
  • Définis une structure Position
  • Définis une classe Window
  • Ajoute une méthode pour redimensionner les fenêtres
  • Ajoute une méthode pour déplacer les fenêtres
  • Ajoute des méthodes pour mettre à jour le texte de la fenêtre et afficher les informations de la fenêtre
  • Crée une nouvelle Window

Terminologie

Il s'agit de recommandations, et non de règles, pour la terminologie récurrente dans les instructions (y compris les commentaires du squelette)

  • screenSize désigne la taille de l'écran complet
  • size désigne la taille des fenêtres qui apparaissent à l'écran
  • position désigne la position du coin supérieur gauche de chaque fenêtre par rapport au coin supérieur gauche de l'écran.

Implémentations

Références