A Data and Program Fragments

The following appendix features some program fragments and data specifications omitted in the chapters' text.

A.1 Getting Started

<Change capitalization>=
fun {$ I}
   case {Char.type I}
   of lower then {Char.toUpper I}
   [] upper then {Char.toLower I}
   else I
   end 
end

A.2 More on Widgets

<Color names>=
[aliceblue            antiquewhite         aquamarine           
 azure                beige                bisque               
 black                blanchedalmond       blue                 
 blueviolet           brown                burlywood            
 cadetblue            chartreuse           chocolate            
 coral                cornflowerblue       cornsilk             
 cyan                 darkblue             darkcyan             
 darkgoldenrod        darkgray             darkgreen            
 darkgrey             darkkhaki            darkmagenta          
 darkolivegreen       darkorange           darkorchid           
 darkred              darksalmon           darkseagreen         
 darkslateblue        darkslategray        darkslategrey        
 darkturquoise        darkviolet           deeppink             
 deepskyblue          dimgray              dimgrey              
 dodgerblue           firebrick            floralwhite          
 forestgreen          gainsboro            ghostwhite           
 gold                 goldenrod            gray                 
 green                greenyellow          grey                 
 honeydew             hotpink              indianred            
 ivory                khaki                lavender             
 lavenderblush        lawngreen            lemonchiffon         
 lightblue            lightcoral           lightcyan            
 lightgoldenrod       lightgoldenrodyellow lightgray            
 lightgreen           lightgrey            lightpink            
 lightsalmon          lightseagreen        lightskyblue         
 lightslateblue       lightslategray       lightslategrey       
 lightsteelblue       lightyellow          limegreen            
 linen                magenta              maroon               
 mediumaquamarine     mediumblue           mediumorchid         
 mediumpurple         mediumseagreen       mediumslateblue      
 mediumspringgreen    mediumturquoise      mediumvioletred      
 midnightblue         mintcream            mistyrose            
 moccasin             navajowhite          navy                 
 navyblue             oldlace              olivedrab            
 orange               orangered            orchid               
 palegoldenrod        palegreen            paleturquoise        
 palevioletred        papayawhip           peachpuff            
 peru                 pink                 plum                 
 powderblue           purple               red                  
 rosybrown            royalblue            saddlebrown          
 salmon               sandybrown           seagreen             
 seashell             sienna               skyblue              
 slateblue            slategray            slategrey            
 snow                 springgreen          steelblue            
 tan                  thistle              tomato               
 turquoise            violet               violetred            
 wheat                white                whitesmoke           
 yellow               yellowgreen]          

A.3 Text Widgets

<Sample ToyText>=
hyper(canvas:         
         e(head:'Canvas' 
           body:['A canvas widget displays items. ' 
                 'An item is of one the following types: ' 
                 a(ref:arc       ['arc']) ', ' 
                 a(ref:bitmap    ['bitmap']) ', ' 
                 a(ref:image     ['image']) ', ' 
                 a(ref:line      ['line']) ', ' 
                 a(ref:oval      ['oval']) ', ' 
                 a(ref:polygon   ['polygon']) ', ' 
                 a(ref:rectangle ['rectangle']) ', ' 
                 a(ref:text      ['text']) ', and ' 
                 a(ref:window    ['window']) '.'])
      arc:
         e(head:'Arc' 
           body:['An arc item displays a piece of a circle.'])
      bitmap:
         e(head:'Bitmap' 
           body:['A bitmap item displays a bitmap with a given name.'])
      image:
         e(head:'Image' 
           body:['Displays an image.'])
      line:
         e(head:'Line' 
           body:['A line item consists of several connected segments.'])
      oval:
         e(head:'Oval' 
           body:['An oval can either be a circle or an ellipsis.'])
      polygon:
         e(head:'Polygon' 
           body:['A polygon is described by three or more ' 
                 a(ref:line ['line']) ' segments.'])
      rectangle:
         e(head:'Rectangle' 
           body:['Displays a rectangle.'])
      text:
         e(head:'Text' 
           body:['Displays text consisting of a single or several lines.'])
      window:
         e(head:'Window' 
           body:['Displays a widget in the canvas where the canvas ' 
                 'widget serves as geometry manager for the widget. ' 
                 'See also ' a(ref:canvas ['the canvas widget']) '.']))


Christian Schulte
Version 1.0.1 (19990218)