Main windows and geometry management
Like other composite widgets, a main-window widget manages the geometry of its children. 
In order to manage its children correctly, a main-window widget must know which widget is the menu bar, which widget is the work region, and which widgets are the scroll bars. The 
setAreas:horizontalScrollbar:verticalScrollbar:workRegion: message explicitly tells the main window which of its child widgets are to be used for these purposes. In the following example, an empty menu bar and a drawing area widget are created as children of the main window. The 
setAreas: message is sent to the main window to explicitly set 
menuBar as the main window's menu bar, and 
drawingArea as the main window's work region. Because no scroll bars are being defined by the application, 
nil is passed in for the scroll bar arguments. For more information on menus and menu bars, see 
Menus. 
| shell main menuBar drawingArea |
 
shell := CwTopLevelShell
   createApplicationShell: 'shell'
   argBlock: nil.
 
main := shell
   createMainWindow: 'main'
   argBlock: nil.
main manageChild.
 
menuBar := main
   createSimpleMenuBar: 'menu'
   argBlock: [:w | w buttons: #('')].
menuBar manageChild.
 
drawingArea := main
   createDrawingArea: 'draw'
   argBlock: [:w | w width: 300; height: 300].
drawingArea manageChild.
 
main
setAreas: menuBar
   horizontalScrollbar: nil
   verticalScrollbar: nil
   workRegion: drawingArea.
 
shell realizeWidget.
Last modified date: 12/21/2017