Віконна система


Історія

У цій вправі ми змоделюємо компʼютерну систему, побудовану на вікнах. Ми створимо кілька вікон, які можна переміщати та змінювати в розмірі, і які показують свій вміст. Наступне зображення показує значення, з якими ми будемо працювати далі.

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

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

Завдання

Ось приклади завдань, які вписуються в історію реалізації спрощеної системи вікон для операційної системи:

  • Визначити структуру Size
  • Визначити структуру Position
  • Визначити клас Window
  • Додати метод для зміни розміру вікон
  • Додати метод для переміщення вікон
  • Додати методи для оновлення тексту вікна та показу інформації про вікно
  • Створити новий Window

Термінологія

Це рекомендації, а не правила, щодо термінології, яка повторюється в інструкціях (зокрема в коментарях до заготовки)

  • screenSize позначає розмір усього дисплея
  • size позначає розмір вікон, які відображаються на дисплеї
  • position позначає позицію верхнього лівого кута кожного вікна відносно верхнього лівого кута дисплея.

Реалізації

Довідка