Summary Files Commits Branches @commit @diff @stats
path: root / src / teaching / oop-2025 / week12 / index.du
blob: 243ee930934a4fb655ccbf9663edde70c3367ad8 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
'def title Задачи - ООП, Седмица 12, 13.05.2026
'def  desc Условията на задачите за упражнение.

# {title}

{pagenav 2 min;13 May 2026;13 May 2026}

## За решаване

### Задача 1

.warn
Първо реализирайте архитектурно решение на задачата!

Ще разгледаме система за менажиране на прозорци в операционна система.

За всеки прозорец съхраняваме:
.unordered
- неотрицателни координати на горния ляв ъгъл на прозореца в пиксели.
  На координат (0,0) отбелязваме пиксела в горния ляв ъгъл на екрана.
- ширина и височина на прозореца в пиксели
- име на прозореца с максимална дължина от 255 букви

Прозореца трябва да има нужните селектори, мутатори, методи за центриране (хоризонтално, вертикално и двете), реоразмеряване на цял екран и обратно.

Разглеждаме също прозорци с рамка.
Рамката заема част от всяка страна на прозореца.
Трябва да се съхрняват два размера на рамката: този на горната страна (който в реалния свят би съхранявал името на прозореца, бутони за отваряне/затваряне и так. нат.) и този на останалите страни (който е много тънък и се използва главно за реоразмеряване).

Прозреца с рамка допълнително трябва да имплементира метод, който връща областта в която се намира съдържанието: размера и координатите на прозореца с извадени размерите на рамките.

Имаме и формулярен прозорец: прозорец с рамка, който съхранява неограничено количество от динамично-заделени данни по подаден тип.
Реализирайте всички нужни методи и оператори за обработка на тези данни.

Имаме и диалогов прозорец: прозорец с рамка, който съхранява низово съобщение с неограничен размер.
Реализирайте селектор и мутатор на това съобщение.

Финално имаме графичен прозорец: прозорец без рамка, който съхранява изображение.
Всеки пиксел в изображението се представя чрез произволна целочислена стойност.
Размерите на изображението са запазени в типа на прозореца.