2. Creating Widgets   

Creating your own widgets is a difficult thing - here is how it is done: (See footnote)

Implementation-specific Types
Widget Classing
Realizing Widgets
Obtaining Window Information from a Widget
Destroying Widgets
Exiting from an Application
Initiating Geometry Changes
General Geometry Manager Requests
Resize Requests
Potential Geometry Changes
Child Geometry Management: the geometry_manager Procedure
Widget Placement and Sizing
Preferred Geometry
Size Change Management: the resize Procedure
Executing Callback Procedures
Action Tables
Translation Tables

Turn off images and have a look at John L. Cwikla's page for more information on widget building and a swag of Public Domain widgets.