Sistema de ventanas


Historia

En este ejercicio, vas a simular un sistema informático basado en ventanas. Crearás varias ventanas que se pueden mover y cambiar de tamaño, y que muestran su contenido. La siguiente imagen es representativa de los valores con los que vas a trabajar a continuación.

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

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

Tareas

Estas son tareas de ejemplo que encajan con la historia de implementar un sistema de ventanas simplificado para un sistema operativo:

  • Define una estructura Size
  • Define una estructura Position
  • Define una clase Window
  • Añade un método para cambiar el tamaño de las ventanas
  • Añade un método para mover las ventanas
  • Añade métodos para actualizar el texto de la ventana y mostrar la información de la ventana
  • Crea una nueva Window

Terminología

Estas son recomendaciones, no reglas, para la terminología recurrente en las instrucciones (incluidos los comentarios del código inicial)

  • screenSize se refiere al tamaño de la pantalla completa
  • size se refiere al tamaño de las ventanas que aparecen en la pantalla
  • position se refiere a la posición de la esquina superior izquierda de cada ventana con respecto a la esquina superior izquierda de la pantalla.

Implementaciones

Referencia