Sistema a finestre


Storia

In questo esercizio simulerai un sistema a finestre per computer. Creerai alcune finestre che si possono spostare e ridimensionare, e che mostrano il loro contenuto. L'immagine seguente è rappresentativa dei valori con cui lavorerai qui sotto.

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

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

Attività

Queste sono attività di esempio che si adattano alla storia dell'implementazione di un sistema a finestre semplificato per un sistema operativo:

  • Definire una struct Size
  • Definire una struct Position
  • Definire una classe Window
  • Aggiungere un metodo per ridimensionare le finestre
  • Aggiungere un metodo per spostare le finestre
  • Aggiungere metodi per aggiornare il testo della finestra e mostrare le informazioni della finestra
  • Creare una nuova Window

Terminologia

Queste sono raccomandazioni, non regole, per la terminologia ricorrente nelle istruzioni (compresi i commenti dello stub)

  • screenSize si riferisce alla dimensione del display completo
  • size si riferisce alla dimensione delle finestre che compaiono sul display
  • position si riferisce alla posizione dell'angolo in alto a sinistra di ogni finestra rispetto all'angolo in alto a sinistra del display.

Implementazioni

Riferimenti