Neste exercício, vais simular um sistema informático baseado em janelas. Vais criar algumas janelas que podem ser movidas e redimensionadas e que mostram o seu conteúdo. A imagem seguinte é representativa dos valores com que vais trabalhar abaixo.
<--------------------- screenSize.width --------------------->
^ ╔════════════════════════════════════════════════════════════╗
| ║ ║
| ║ position.x,_ ║
| ║ position.y \ ║
| ║ \<----- size.width -----> ║
| ║ ^ *──────────────────────┐ ║
| ║ | │ title │ ║
| ║ | ├──────────────────────┤ ║
screenSize.height ║ | │ │ ║
| ║ size.height │ │ ║
| ║ | │ contents │ ║
| ║ | │ │ ║
| ║ | │ │ ║
| ║ v └──────────────────────┘ ║
| ║ ║
| ║ ║
v ╚════════════════════════════════════════════════════════════╝
Estas são tarefas de exemplo que se enquadram na história de implementar um sistema de janelas simplificado para um sistema operativo:
Estas são recomendações, e não regras, para a terminologia recorrente nas instruções (incluindo os comentários dos stubs)
screenSize refere-se ao tamanho do ecrã completosize refere-se ao tamanho das janelas que aparecem no ecrãposition refere-se à posição do canto superior esquerdo de cada janela em relação ao canto superior esquerdo do ecrã.