Precompiled headers are only used when building ZooLib applications with Metrowerks Codewarrior. They could probably be made to work with other development environments that provide them, but we haven't tried.
The OS-dependent applications and windows are members of the base classes - ZApp has ZOS_App and ZWindow has ZOS_Window
There's something unusual in zlib that you'll find in ZHelloWorldWindow. In zlib, ZSubPanes do not know their own coordinates; they ask their pane locator whenever their size, location and some other things are needed. This creates great flexibility in doing window layout and is very powerful, but I found it a little hard to wrap my head around. In our case, ZHelloWorldWindow is the ZPaneLocator for the HelloWorld caption, and just returns a fixed ZPoint.
In the more general case, I usually locate one pane in the top left corner, and then calculate the location of the other points by calling ZSubPane::GetLocation and ZSubPane::GetSize for nearby panes and adding offsets. Thus ZPaneLocator::GetPaneLocation might be called recursively, and locations update automatically if pane sizes change.
Andy Green usually makes the window act as the pane locator for all the items in it, but I've found it helpful to make some of the ZSuperPanes that contain other panes be locators so things can be broken down into more manageable units. For example, I have a toolbar pane that is the locator for all the buttons inside it, and a list pane that is the locator for the list item panes - the vertical location is calculated from the index and item height.
It is also possible to write either custom or general purpose ZPaneLocators that could be held as data members of a window or superpane, so you could implement any kind of layout manager in a readily reusable way. I've got plans to write a "ZRelativePaneLocator" where you can pass in pointers to the panes that a given pane is supposed to be next to, as well as how it's positioned relative to it.