#!/bin/sh
 
 # l_rain
 # ======

 # This file is part of Gerolf Markup Shredder,
 # written by G. D. Brettschneider (1999-2006).
 
 GMSdateL_RAIN=20060927
 
 # Prologue: ==================================================================
 
 # Not running:
 
 if [ "$GMS_SHELL" = "" ]; then
   echo "This is Gerolf Markup Shredder (l_rain)."
   exit
 fi 
 
 # Debug: ---------------------------------------------------------------------

 if [ "$GMS_DEBUG" = "X" -o "$GMS_DEBUG" = "Y" ]; then
   source "$GMS_SHELL/l_banner" -debug l_rain $1 $2 $3 $4
 elif  [ "$GMS_DEBUG" = "Z" ]; then
   echo " l_rain ($1) ($2) ($3) ($4) ($5) ($6) ($7) ($8) ($9)" >> "$Z"
 fi
 
 # Rainbow column: ------------------------------------------------------------
 
 function l_rain_col {
   REPLY_SIZE=1
   REPLY_DESKTOP=$1
 # Get offset and letter number:
   REPLY_OFFSET=$1
   case "$1" in
     "0" ) REPLY_OFFSET=6; LETTER=48;;
     "1" ) REPLY_OFFSET=7; LETTER=49;;
     "2" ) REPLY_OFFSET=8; LETTER=50;;
     "3" ) REPLY_OFFSET=9; LETTER=51;;
     "4" ) REPLY_OFFSET=10; LETTER=52;;
     "5" ) REPLY_OFFSET=11; LETTER=53;;
     "6" ) REPLY_OFFSET=12; LETTER=54;;
     "7" ) REPLY_OFFSET=13; LETTER=55;;
   esac
 # Draw column:
   "$GMS_REPLY" -stripe 5 0 $LETTER
   "$GMS_REPLY" -stripe 6 1 $LETTER
   "$GMS_REPLY" -stripe 7 2 $LETTER
   "$GMS_REPLY" -stripe 8 3 $LETTER
   "$GMS_REPLY" -stripe 9 4 $LETTER
   "$GMS_REPLY" -stripe 10 5 $LETTER
   "$GMS_REPLY" -stripe 11 6 $LETTER
   "$GMS_REPLY" -stripe 12 7 $LETTER
   "$GMS_REPLY" -stripe 13 8 $LETTER
   "$GMS_REPLY" -stripe 14 9 $LETTER
   "$GMS_REPLY" -stripe 15 10 $LETTER
   "$GMS_REPLY" -stripe 16 11 $LETTER
   "$GMS_REPLY" -stripe 17 12 $LETTER
   "$GMS_REPLY" -stripe 18 13 $LETTER
   "$GMS_REPLY" -stripe 19 14 $LETTER
   "$GMS_REPLY" -stripe 20 15 $LETTER
   unset LETTER; }
   
 # Chapters: ==================================================================
 
 # Not defined:
 
 if [ "$1" = "" ]; then source "$GMS_SHELL/l_banner" -no_action l_rain
    
 # Rainbow: -------------------------------------------------------------------
 
 elif [ $1 = -build ]; then 
 # Save colors:
   BACKUP1=$REPLY_DESKTOP
   BACKUP2=$REPLY_PATTERN
   BACKUP3=$REPLY_BANNER
   BACKUP4=$REPLY_TEXT
 # Clear desktop area for pane:
   for i in 12 13 11 14 10 15; do "$GMS_REPLY" -stripe $i 0 32; done
   for i in 9 16 8 17 7 18 ; do "$GMS_REPLY" -stripe $i 0 32; done
   for i in 6 19 5 20 4 21 ; do "$GMS_REPLY" -stripe $i 0 32; done
   for i in 3 22 ; do "$GMS_REPLY" -stripe $i 0 32; done
 # Draw heading:
   REPLY_BANNER=$BACKUP1
   REPLY_TEXT=$REPLY_HOTKEY
   "$GMS_REPLY" -banner 3 "   Back- & Fore- "
   "$GMS_REPLY" -banner 22 "  -ground colors " 
 # Draw columns with background color numbers:
   for i in 0 1 2 3 4 5 6 7; do l_rain_col $i; done 
 # Clear overwritten area:
   REPLY_OFFSET=14
   REPLY_SIZE=5
   REPLY_DESKTOP=$BACKUP1
   REPLY_PATTERN=$BACKUP2 
   for i in 5 6 7 8 9 10; do "$GMS_REPLY" -stripe $i 0 32; done
   for i in 11 12 13 14 15 16; do "$GMS_REPLY" -stripe $i 0 32; done
   for i in 17 18 19 20; do "$GMS_REPLY" -stripe $i 0 32; done
 # Draw rows with foreground color numbers:
   REPLY_BANNER=$REPLY_DESKTOP
   REPLY_SIZE=3
 # One digit:
   REPLY_OFFSET=18
   REPLY_TEXT=0; "$GMS_REPLY" -banner 5 0 " " 
   REPLY_TEXT=1; "$GMS_REPLY" -banner 6 1 " " 
   REPLY_TEXT=2; "$GMS_REPLY" -banner 7 2 " " 
   REPLY_TEXT=3; "$GMS_REPLY" -banner 8 3 " " 
   REPLY_TEXT=4; "$GMS_REPLY" -banner 9 4 " " 
   REPLY_TEXT=5; "$GMS_REPLY" -banner 10 5 " " 
   REPLY_TEXT=6; "$GMS_REPLY" -banner 11 6 " " 
   REPLY_TEXT=7; "$GMS_REPLY" -banner 12 7 " " 
   REPLY_TEXT=8; "$GMS_REPLY" -banner 13 8 " " 
   REPLY_TEXT=9; "$GMS_REPLY" -banner 14 9 " " 
 # Two digits:
   REPLY_OFFSET=17
   REPLY_TEXT=10; "$GMS_REPLY" -banner 15 10 " " 
   REPLY_TEXT=11; "$GMS_REPLY" -banner 16 11 " " 
   REPLY_TEXT=12; "$GMS_REPLY" -banner 17 12 " " 
   REPLY_TEXT=13; "$GMS_REPLY" -banner 18 13 " " 
   REPLY_TEXT=14; "$GMS_REPLY" -banner 19 14 " " 
   REPLY_TEXT=15; "$GMS_REPLY" -banner 20 15 " " 
 # Reset colors:
   REPLY_BANNER=$BACKUP3
   REPLY_TEXT=$BACKUP4
   BACKUP1=
   BACKUP2=
   BACKUP3=
   BACKUP4= 
   
 # Rainbow (and codepage) remove: ---------------------------------------------
   
 elif [ $1 = -remove ]; then 
 # Clear pane:
   if [ "$GMS_ANIMATE" = "on" ]; then 
     for i in 4 21 5 20; do "$GMS_REPLY" -stripe $i 0 32; done
     for i in 6 19 7 18 8 17; do "$GMS_REPLY" -stripe $i 0 32; done
     for i in 9 16 10 15 11 14; do "$GMS_REPLY" -stripe $i 0 32; done
     for i in 12 13; do "$GMS_REPLY" -stripe $i 0 32 ; done
   fi 
 # Remove pane:
   for i in 3 22 4 21 5 20; do 
     "$GMS_REPLY" -stripe $i $REPLY_PATTERN $REPLY_LETTER; done
   for i in 6 19 7 18 8 17 ; do
     "$GMS_REPLY" -stripe $i $REPLY_PATTERN $REPLY_LETTER; done
   for i in 9 16 10 15 11 14 ; do
     "$GMS_REPLY" -stripe $i $REPLY_PATTERN $REPLY_LETTER; done
   for i in 12 13 ; do
     "$GMS_REPLY" -stripe $i $REPLY_PATTERN $REPLY_LETTER; done
   
 # Not found: -----------------------------------------------------------------
 
 else
   source "$GMS_SHELL/l_banner" -no_action l_rain $1   
 fi
