Ablakkezelő rendszer


Történet

Ebben a feladatban egy ablakozásra épülő számítógépes rendszert szimulálsz. Létrehozol néhány ablakot, amelyek mozgathatók és átméretezhetők, és megjelenítik a tartalmukat. A következő ábra azokat az értékeket szemlélteti, amelyekkel az alábbiakban dolgozni fogsz.

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

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

Feladatok

Ezek példafeladatok, amelyek illenek egy operációs rendszer egyszerűsített ablakozó rendszerének megvalósításához:

  • Definiálj egy Size struktúrát
  • Definiálj egy Position struktúrát
  • Definiálj egy Window osztályt
  • Adj hozzá egy metódust az ablakok átméretezéséhez
  • Adj hozzá egy metódust az ablakok mozgatásához
  • Adj hozzá metódusokat az ablak szövegének frissítéséhez és az ablak adatainak megjelenítéséhez
  • Hozz létre egy új Window-t

Terminológia

Ezek ajánlások, nem szabályok az utasításokban visszatérő terminológiára (a vázkommenteket is beleértve):

  • a screenSize a teljes kijelző méretére utal
  • a size a kijelzőn megjelenő ablakok méretére utal
  • a position az egyes ablakok bal felső sarkának a kijelző bal felső sarkához viszonyított helyzetére utal.

Implementációk

Referencia