home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 1999 March B / SCO_CASTOR4RRT.iso / base / root.15 / etc / dcu.d / locale / C / help / helpwin / helpwin~
Text File  |  1998-08-19  |  2KB  |  119 lines

  1. #ident "@(#)helpwin    15.1"
  2.  
  3. function clean_helps
  4. {
  5.     typeset i
  6.  
  7.     [ -s $LANGDEP_SCRIPTS/help/locale_hcf.z ] && {
  8.         cd $LANGDEP_SCRIPTS/help
  9.         for i
  10.         do
  11.             call unlink  "$i"
  12.         done
  13.         cd ~-
  14.     }
  15. }
  16.  
  17. function putfoot
  18. {
  19.     cdecl longp 'page=&pg'
  20.     cprint -v PAGE page
  21.  
  22.     if (( HELP_PAGES == 1 ))
  23.     then
  24.         footer "$ONLY_PAGE_FOOTER"
  25.     elif (( PAGE == 1 ))
  26.     then
  27.         footer "$FIRST_PAGE_FOOTER"
  28.     elif (( PAGE == HELP_PAGES ))
  29.     then
  30.         footer "$LAST_PAGE_FOOTER"
  31.     else
  32.         footer "$MIDDLE_PAGE_FOOTER"
  33.     fi
  34. }
  35.  
  36. function helpwin
  37. {
  38.     typeset basefil=$1 fil=$LANGDEP_SCRIPTS/help/$1.hcf 
  39.     typeset line a OIFS="$IFS" IFS="$IFS" page
  40.  
  41.     [ -s $LANGDEP_SCRIPTS/help/locale_hcf.z ] && {
  42.         cd $LANGDEP_SCRIPTS/help
  43.         cpio -icDZ < $LANGDEP_SCRIPTS/help/locale_hcf.z $1.hcf >/dev/null 2>&1
  44.         cd ~-
  45.     }
  46.  
  47.     if [ ! -f "$fil" ]
  48.     then
  49.         print -u2 Cannot open $fil
  50.         return 1
  51.     fi
  52.     typeset IFS=
  53.     {
  54.         read title
  55.         read related
  56.         read line
  57.     } <$fil
  58.     typeset IFS="$OIFS"
  59.     set -- $line
  60.     HELP_PAGES=$1
  61.     set -- $related ${RELATED_HELPS}
  62.     open_help -help "wclose \$WCURRENT; helphelp $basefil $*" -page "putfoot" "$fil"
  63.     cdecl longp 'height=&Help_height' 'width=&Help_width'
  64.     cprint -v HELP_HEIGHT height
  65.     cprint -v HELP_WIDTH width
  66.     place_window -below 0 $HELP_WIDTH $HELP_HEIGHT -fg $HELP_FG -bg $HELP_BG -title "$title" -border_fg $HELP_FG -current 'msg; putfoot'
  67.     run_help "$fil"
  68.     [ -s $LANGDEP_SCRIPTS/help/locale_hcf.z ] && call unlink  "$fil"
  69. }
  70.  
  71. function helphelp
  72. {
  73.     typeset i titles
  74.     typeset basefil=$1 fil
  75.     shift
  76.     integer max=${#MOREHELP_TITLE} j=0
  77.     typeset args=
  78.     for i
  79.     do
  80.         case " $args " in
  81.         *" $i "*)
  82.             ;;
  83.         *)
  84.             args="$args $i"
  85.         esac
  86.     done
  87.     set -- $args
  88.     for i
  89.     do
  90.         [ -s $LANGDEP_SCRIPTS/help/locale_hcf.z ] && {
  91.             cd $LANGDEP_SCRIPTS/help
  92.             cpio -icDZ < $LANGDEP_SCRIPTS/help/locale_hcf.z $i.hcf >/dev/null 2>&1 
  93.             cd ~-
  94.         }
  95.         fil="$fil $i.hcf"
  96.         {
  97.             read titles[j] 
  98.         } <$LANGDEP_SCRIPTS/help/$i.hcf
  99.         if (( max < ${#titles[j]} ))
  100.         then
  101.             max=${#titles[j]}
  102.         fi
  103.         j=j+1
  104.     done
  105.     place_window -left 0 $max+2 $# -fg $HELP_FG -bg $HELP_BG -border_fg $HELP_FG -title "$MOREHELP_TITLE" -current 'footer "$MOREHELP_FOOTER"'
  106.     typeset wid=$CURWIN
  107.     open_menu -exit "wclose $wid; clean_helps $fil; destroy_menu $mid"
  108.     typeset mid=$MID
  109.     typeset open=1
  110.     typeset use
  111.     j=0
  112.     for i
  113.     do
  114.         add_menu_item -select "wclose $wid; clean_helps $fil; destroy_menu $mid; helpwin $i $basefil" "${titles[j]}"
  115.         j=j+1
  116.     done
  117.     run_menu $mid 0
  118. }
  119.