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.4.0 (20080702)