در این تمرین، یک سیستم رایانهای مبتنی بر پنجرهبندی را شبیهسازی میکنید. چند پنجره میسازید که میتوانند جابهجا شوند، اندازهشان تغییر کند و محتویاتشان را نمایش دهند. تصویر زیر نمونهای از مقادیری است که در ادامه با آنها کار خواهید کرد.
<--------------------- screenSize.width --------------------->
^ ╔════════════════════════════════════════════════════════════╗
| ║ ║
| ║ position.x,_ ║
| ║ position.y \ ║
| ║ \<----- size.width -----> ║
| ║ ^ *──────────────────────┐ ║
| ║ | │ title │ ║
| ║ | ├──────────────────────┤ ║
screenSize.height ║ | │ │ ║
| ║ size.height │ │ ║
| ║ | │ contents │ ║
| ║ | │ │ ║
| ║ | │ │ ║
| ║ v └──────────────────────┘ ║
| ║ ║
| ║ ║
v ╚════════════════════════════════════════════════════════════╝
اینها کارهای نمونهای هستند که با داستان پیادهسازی یک سیستم پنجرهبندی سادهشده برای یک سیستمعامل همخوانی دارند:
Size تعریف کنیدPosition تعریف کنیدWindow تعریف کنیدWindow جدید بسازیداینها توصیههایی هستند، نه قانون، برای اصطلاحات تکرارشونده در دستورالعملها (از جمله توضیحات استاب)
screenSize به اندازهی کل نمایشگر اشاره داردsize به اندازهی پنجرههایی اشاره دارد که روی نمایشگر ظاهر میشوندposition به موقعیت گوشهی بالا سمت چپ هر پنجره نسبت به گوشهی بالا سمت چپ نمایشگر اشاره دارد.