
 // NewTI v1.0
 // (c) Сергей Гоцуляк, ВВТ-307
 // 19.10.1999-



 void center(int y,char *str)            // вывод строки str в центре
 {
	 gotoxy(40-strlen(str)/2,y);
	 cprintf("%s",str);
 }

 // вывод рамки

 void showframe(int x1,int y1,int x2, int y2, int color)
 {
	 char i;
	 textcolor(color);
	 gotoxy(x1,y1);
	 cprintf("%c",201);
	 for(i=x1+1;i<x2;i++)
		 cprintf("%c",205);
	 cprintf("%c",187);
	 for(i=y1+1;i<y2;i++)
	 {
		 gotoxy(x1,i);
		 cprintf("%c",186);
		 gotoxy(x2,i);
		 cprintf("%c",186);
	 }
	 gotoxy(x1,y2);
	 cprintf("%c",200);
	 for(i=x1+1;i<x2;i++)
		 cprintf("%c",205);
	 cprintf("%c",188);
 }

 // очистка статус-строки

 void showbottomline(char *str)
 {
	 textbackground(BLACK);
	 gotoxy(1,24);
	 for(int i=1;i<80; i++)
		 cprintf("%c",' ');
	 textcolor(RED);
	 gotoxy(1,24);
	 cprintf("%c",0x10);
	 //gotoxy(32,24);
	 //cprintf("%c",0x11);
	 //gotoxy(33,24);
	 //cprintf("%c",0x10);
	 gotoxy(80,24);
	 cprintf("%c",0x11);
	 textcolor(YELLOW);
	 center(24,str);
 }

 // заполнение области

 void fillwindow(int x1, int y1, int x2, int y2, int color)
 {
	 textbackground(color);
	 window(x1,y1,x2,y2);
	 clrscr();
	 window(1,1,80,25);
 }

 const unsigned int AmountPoint=8;
			 char PointName[AmountPoint][12]={"ReadMe!",
				"Новая",
				"Чтение",
				"Запись",
				"Компиляция",
				"Запуск",
				"Помощь",
				"Выход"};
 // вывод пунктов меню

 void showmenu(int pos)
 {
	 if(pos==-1)
		 textcolor(DARKGRAY);
	 else
		 textcolor(WHITE);
	 textbackground(BLACK);
	 int x=4;
	 for(int i=0; i<AmountPoint; i++)
	 {
		 gotoxy(x,2);
		 if(i==pos)
		 {
	  textbackground(WHITE);
	  textcolor(BLACK);
	  cprintf(" %s ",PointName[i]);
	  x+=strlen(PointName[i])+3;
	  textbackground(BLACK);
	  if(pos==-1)
		  textcolor(DARKGRAY);
	  else
		  textcolor(WHITE);
		 }
		 else
		 {
	  cprintf(" %s ",PointName[i]);
	  x+=strlen(PointName[i])+3;
		 }
	 }
 }

 // работа с меню

 int workwithmenu()
 {
	 char key=0;
	 static unsigned char MenuPosition=0;
	 showframe(1,4,80,23,DARKGRAY);
	 showframe(1,1,80,3,LIGHTGRAY);
	 textcolor(RED);
	 center(1," Милан-307 ");
	 //textcolor(RED);
	 gotoxy(4,4);
	 cprintf(" %s ",ProgramFileName);
	 showbottomline("");
	 gotoxy(3,24);
	 textcolor(YELLOW);
	 showbottomline("TAB: редактирование");
	 while(key!=ESC&&key!=TAB&&key!=ENTER)
	 {
		 showmenu(MenuPosition);
		 key=getch();
		 if(key==LEFT&&MenuPosition>0)
	  MenuPosition--;
		 if(key==RIGHT&&MenuPosition<AmountPoint-1)
	  MenuPosition++;
	 }
	 showmenu(-1);
	 showframe(1,4,80,23,LIGHTGRAY);
	 showframe(1,1,80,3,DARKGRAY);
	 textcolor(RED);
	 center(1," Милан-307 ");
	 textcolor(RED);
	 gotoxy(4,4);
	 cprintf(" %s ",ProgramFileName);
    showbottomline("");
    gotoxy(3,24);
    textcolor(YELLOW);
	 showbottomline("TAB: вход в меню");
	 if(key==ENTER)
		 return MenuPosition;
	 return -1;
 }
