在這個練習中,你會模擬一個以視窗為基礎的電腦系統。你會建立一些視窗,這些視窗可以移動、調整大小,並顯示自己的內容。下圖呈現了你在下方會用到的這些值。
<--------------------- screenSize.width --------------------->
^ ╔════════════════════════════════════════════════════════════╗
| ║ ║
| ║ position.x,_ ║
| ║ position.y \ ║
| ║ \<----- size.width -----> ║
| ║ ^ *──────────────────────┐ ║
| ║ | │ title │ ║
| ║ | ├──────────────────────┤ ║
screenSize.height ║ | │ │ ║
| ║ size.height │ │ ║
| ║ | │ contents │ ║
| ║ | │ │ ║
| ║ | │ │ ║
| ║ v └──────────────────────┘ ║
| ║ ║
| ║ ║
v ╚════════════════════════════════════════════════════════════╝
這些範例任務契合為作業系統實作簡化視窗系統的故事:
以下是說明中(包括 stub 中的註解)反覆出現的術語的建議,而非規則:
screenSize指的是整個螢幕的尺寸。size指的是螢幕上這些視窗的尺寸。position指的是每個視窗左上角相對於螢幕左上角的位置。