// Copyright (c) 1993-2005 "Компания БЭСТ". Все права сохраняются.
#INCLUDE "s_public.ch"

/**********
*  FUNCTION ScrTitul() -> NIL
*  Выводит центрированную надпись в строке nRow
***/
FUNCTION ScrTitul(nRow,cMsg,cTitColor, cHotColor )
/*
nRow      - номер строки, с которой начинается сообщение
cMsg      - сообщение (каждая строка отделяется ;)
cTitColor - цвет сообщения (по умолчанию N/W)
*/
   LOCAL aPos:={ROW(),COL()}
   PLOCAL cColor
   PLOCAL lIsStr := (IF(EMPTY(cMsg),cMsg := "",NIL),";" $ cMsg)
   PLOCAL nNumToken:= IF(lIsStr,NUMTOKEN(cMsg,';',1),1)         // число строк
   PLOCAL nToken    // счетчик
   PLOCAL nWi:=WSELECT()

   #ifdef __HARBOUR__
   IF !IsMsNt()
      cMsg:=STRTRAN(cMsg,"Alt-F6:","Alt-F12:")
      cMsg:=STRTRAN(cMsg,"ALT-F6:","ALT-F12:")
   ENDIF
   #endif


   WSELECT(0)
   cTitColor:=IF(cTitColor==NIL, 'N/W', cTitColor)
   cColor:=SETCOLOR(cTitColor)
   FOR nToken:=1 TO nNumToken
     @ nRow++,0 SAY CENTER(IF(lIsStr,TOKEN(cMsg,';',nToken,1),cMsg),MAXCOL()+1,' ',.T.)
     IF nRow > 22
       Mess_24(nRow-1,cMsg,cHotColor)
     ENDIF
   NEXT nToken
   SETCOLOR(cColor)
   WSELECT(nWi)
   SetPos(aPos[1],aPos[2])
RETURN .T.



/*******************************
FUNCTION MainTitul(cHead,lMain)
PLOCAL n:=0,nLen:=68
@ 0,0 SAY PADC(cHead,MAXCOL()+1) COLOR COL_REFER
#ifndef __PLATFORM__Linux
IF lMain!=NIL
   ShowTime()
ELSE
   ShowTime(0,1,,COL_REFER)
ENDIF
#endif
SAYSCREEN(DTOC(Date()),0,MAXCOL()-9)
RETURN(NIL)
************************/



STATIC Function Mess_24(nRow,cMess,cHotColor)
  PLOCAL i, aPos:={},;
        nPos1:=1,;
        nPos2:=1,j,;
        cBeginSep,;
        cEndSep,;
        nMaxToken,;
        nLen


  IF( EMPTY(cHotColor), cHotColor:={IF(INST_COLOR,"R/W","W+/W"),;
                                    IF(INST_COLOR,"B/W","W+/W")}[IF(GlobalTask=='KP',1,2)], )
  cMess:= ' '+PadC(cMess,MaxCol()+1," ")+' '
  nMaxToken := NUMTOKEN(cMess,' .:')
  FOR i := 1 TO nMaxToken
    nLen := LEN( TOKEN( cMess,' .:',nPos1) )-2
    cBeginSep := TOKENSEP(.F.)
    cEndSep   := TOKENSEP(.T.)
    If cBeginSep $ '. ' .AND. cEndSep == ':'
        COLORWIN( nRow, ATTOKEN(cMess,' .:',nPos1)-2,;
                  nRow, ATTOKEN(cMess,' .:',nPos1)+nLen,cHotColor)
        nPos2++
    EndIf
    nPos1++
  NEXT

Return NIL

