#!/bin/sh
 
 # g_color
 # =======

 # This file is part of Gerolf Markup Shredder,
 # written by G. D. Brettschneider (1999-2006).
 
 GMSdateG_COLOR=20060927
 
 # Prologue: ==================================================================
 
 # Not running:
 
 if [ "$GMS_SHELL" = "" ]; then
   echo "This is Gerolf Markup Shredder (g_color)."
   exit
 fi 
 
 # Debug: ---------------------------------------------------------------------
 
 if [ "$GMS_DEBUG" = "X" -o "$GMS_DEBUG" = "Y" ]; then
   source "$GMS_SHELL/l_banner" -debug g_color $1 $2 $3 $4
 elif  [ "$GMS_DEBUG" = "Z" ]; then
   echo " g_color ($1) ($2) ($3) ($4) ($5) ($6) ($7) ($8) ($9)" >> "$Z"
 fi
 
 # Chapters: ==================================================================
 
 # Not defined:
 
 if [ "$1" = "" ]; then source "$GMS_SHELL/l_banner" -no_action g_color
   
 # Resize: --------------------------------------------------------------------
 
 elif [ $1 = -resize ]; then
   export REPLY_OFFSET=26
   export REPLY_SIZE=20
   export REPLY_ITEMS=8
 
 # Build: ---------------------------------------------------------------------
 
 elif [ $1 = -build ]; then
   source "$GMS_SHELL/g_color" -resize called_by g_color -build
   source "$GMS_SHELL/l_box" -build called_by g_color -build
   source "$GMS_SHELL/l_banner" -lower -color called_by g_color -build
   source "$GMS_SHELL/l_color" -build called_by g_color -build
   export GMS_HOT=Q
   source "$GMS_SHELL/l_color" -update Q Q called_by g_color -build
   export REPLY_MODULE=g_color
   export REPLY_ACTION=-update
   export GMS_RECEIVE=1
   export GMS_HOT="Q"
 
 # Remove: --------------------------------------------------------------------
 
 elif [ $1 = -remove ]; then
   source "$GMS_SHELL/g_rain" -remove called_by g_color -remove
   source "$GMS_SHELL/g_color" -resize called_by g_color -remove
   source "$GMS_SHELL/l_box" -remove called_by g_color -remove
   source "$GMS_SHELL/g_menu" -resize called_by g_color -remove
   source "$GMS_SHELL/l_box" -remove called_by g_color -remove
   source "$GMS_SHELL/l_desk" -remove called_by g_color -remove
   export REPLY_MODULE=g_palet
   export REPLY_ACTION=-build
   export REPLY_OFFSET=0 
   export REPLY_SIZE=0
   export REPLY_ITEMS=0
     "$GMS_REPLY" -random 2
   export GMS_RECEIVE=1
   export GMS_RETURN=1
   
 # Update: --------------------------------------------------------------------
 
 elif [ $1 = -update ]; then
 # Cold: 
   if [ "$3" = "" ]; then GMS_COLD=$GMS_HOT; else GMS_COLD=$3; fi
 # Hot:
   if [ "$2" = "" ]; then
     source "$GMS_SHELL/l_banner" -no_hot g_color called_by g_color -update
   else
     GMS_HOT="Q" 
     case "$2" in
       "T" | "t" | "1" ) GMS_HOT="T";;
       "H" | "h" | "2" ) GMS_HOT="H";;
       "P" | "p" | "3" ) GMS_HOT="P";;
       "B" | "b" | "4" ) GMS_HOT="B";;
       "S" | "s" | "5" ) GMS_HOT="S";;
       "D" | "d" | "6" ) GMS_HOT="D";;
       "L" | "l" | "7" ) GMS_HOT="L";;
       "Q" | "q" | "8" ) GMS_HOT="Q";;
       "R" | "r" | "" ) GMS_HOT="T";; # select first entry
     esac 
   fi
 # Handle old, update new:
   if [ "$GMS_HOT" = "$GMS_COLD" ]; then
     source "$GMS_SHELL/g_color" -handle $GMS_HOT $GMS_COLD
   else
   # Update colors:
     if [ "$4" != "" ]; then 
       case "$GMS_COLD" in
         "T" ) export GMS_TEXT=$4;;
         "H" ) export GMS_HOTKEY=$4;;
         "P" ) export GMS_PATTERN=$4;;
         "B" ) export GMS_BANNER=$4;;
         "S" ) export GMS_SHADE=$4;;
         "D" ) export GMS_DESKTOP=$4;;
         "L" ) export GMS_LETTER=$4;;
       esac 
     fi
   # Update color box:
     source "$GMS_SHELL/l_color" -update $GMS_HOT $GMS_COLD
   fi
   export GMS_RECEIVE=1 
 
 # Handle: --------------------------------------------------------------------
   
 elif [ $1 = -handle ]; then
 
 # Quit:   
   if [ $2 = Q ]; then
     source "$GMS_SHELL/g_palet" -handle \
       $REPLY_DESKTOP $REPLY_PATTERN $REPLY_BANNER $REPLY_TEXT \
       $REPLY_SHADE $REPLY_HOTKEY $REPLY_LETTER 
     source "$GMS_SHELL/g_launch" -build called_by g_color -handle
     source "$GMS_SHELL/g_color" -remove called_by g_color -handle
   
 # Text:   
   elif [ $2 = T ]; then
     source "$GMS_SHELL/l_color" -update - T called_by g_color -handle
     setterm -cursor on
       "$GMS_REPLY" -question 8 "$GMS_TEXT" TT 1
     setterm -cursor off 
   
 # Hotkey:   
   elif [ $2 = H ]; then
     source "$GMS_SHELL/l_color" -update - H called_by g_color -handle
     setterm -cursor on
       "$GMS_REPLY" -question 10 "$GMS_HOTKEY" HH 2
     setterm -cursor off 
   
 # Pattern:   
   elif [ $2 = P ]; then
     source "$GMS_SHELL/l_color" -update - P called_by g_color -handle
     setterm -cursor on
       "$GMS_REPLY" -question 12 "$GMS_PATTERN" PP 3
     setterm -cursor off 
   
 # Banner:   
   elif [ $2 = B ]; then
     source "$GMS_SHELL/l_color" -update - B called_by g_color -handle
     setterm -cursor on
       "$GMS_REPLY" -question 14 "$GMS_BANNER" BB 4
     setterm -cursor off 
   
 # Shadow:   
   elif [ $2 = S ]; then
     source "$GMS_SHELL/l_color" -update - S called_by g_color -handle
     setterm -cursor on
       "$GMS_REPLY" -question 16 "$GMS_SHADE" SS 5
     setterm -cursor off 
   
 # Desktop:   
   elif [ $2 = D ]; then
     source "$GMS_SHELL/l_color" -update - D called_by g_color -handle
     setterm -cursor on
       "$GMS_REPLY" -question 18 "$GMS_DESKTOP" DD 6
     setterm -cursor off 
   
 # Character:   
   elif [ $2 = L ]; then
     source "$GMS_SHELL/l_color" -update - L called_by g_color -handle
     setterm -cursor on
       "$GMS_REPLY" -question 20 "$GMS_LETTER" LL 7
     setterm -cursor off 
   
 # Not found: 
   else
     source "$GMS_SHELL/l_banner" -no_hotkey g_color $2
   
   fi
   
 # Not found: -----------------------------------------------------------------
 
 else
   source "$GMS_SHELL/l_banner" -no_action g_color $1   
 fi
