У цій вправі ми змоделюємо компʼютерну систему, побудовану на вікнах. Ми створимо кілька вікон, які можна переміщати та змінювати в розмірі, і які показують свій вміст. Наступне зображення показує значення, з якими ми будемо працювати далі.
<--------------------- screenSize.width --------------------->
^ ╔════════════════════════════════════════════════════════════╗
| ║ ║
| ║ position.x,_ ║
| ║ position.y \ ║
| ║ \<----- size.width -----> ║
| ║ ^ *──────────────────────┐ ║
| ║ | │ title │ ║
| ║ | ├──────────────────────┤ ║
screenSize.height ║ | │ │ ║
| ║ size.height │ │ ║
| ║ | │ contents │ ║
| ║ | │ │ ║
| ║ | │ │ ║
| ║ v └──────────────────────┘ ║
| ║ ║
| ║ ║
v ╚════════════════════════════════════════════════════════════╝
Ось приклади завдань, які вписуються в історію реалізації спрощеної системи вікон для операційної системи:
Це рекомендації, а не правила, щодо термінології, яка повторюється в інструкціях (зокрема в коментарях до заготовки)
screenSize позначає розмір усього дисплеяsize позначає розмір вікон, які відображаються на дисплеїposition позначає позицію верхнього лівого кута кожного вікна відносно верхнього лівого кута дисплея.