/*
 * $Copyright:	$
 * Copyright (c) 1984, 1985, 1986, 1987, 1988, 1989, 1990 
 * Sequent Computer Systems, Inc.   All rights reserved.
 *  
 * This software is furnished under a license and may be used
 * only in accordance with the terms of that license and with the
 * inclusion of the above copyright notice.   This software may not
 * be provided or otherwise made available to, or used by, any
 * other person.  No title to or ownership of the software is
 * hereby transferred.
 *
 */

/*	Copyright (c) 1984 AT&T	*/
/*	  All Rights Reserved  	*/

/*	THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF AT&T	*/
/*	The copyright notice above does not evidence any   	*/
/*	actual or intended publication of such source code.	*/

#ident	"$Header: textcent.c 1.3 89/10/10 $@(#)graf:src/glib.d/textcent.c	1.1"
/* <: t-5 d :> */
#include <stdio.h>
#include "debug.h"
#include "util.h"
#define HRAT  (.8)
#define VRAT  (1.2)

textcent(x1,y1,str,trot,tsiz,color,font)
double x1,y1;
int trot,tsiz,color,font;
char *str; 
{
/*
 *  textcent centers string pointed to by str on the point x1, y1
 */
	gslscale(&x1,&y1);
	gsltcent(x1,y1,str,trot,tsiz,color,font);
}
gsltcent(x1,y1,str,trot,tsiz,color,font)
double x1,y1;
int trot,tsiz,color,font;
char *str;
{	double ox,oy,xhch,yhch,xprint,yprint;
	int more=TRUE;
	char *ptr;
	ox = x1;	oy = y1;
	gslhchar(&xhch,&yhch,trot,HRAT*tsiz);
	for(;more;str=ptr){
		xprint = x1 - ((gslslen(str)-1.)/2. * xhch );
		yprint = y1 - ((gslslen(str)-1.)/2. * yhch );
		for(ptr=str;*ptr !='\n' && *ptr!=EOS;ptr++);
		if(*ptr=='\n'){
			*ptr++=EOS;
			y1 -= VRAT*tsiz;
			if(trot) gslswing(x1,y1+VRAT*tsiz,&x1,&y1,trot);
		}
		else more=FALSE;
		gsltext(xprint,yprint,str,trot,tsiz,color,font);
	}
	setcoord(ox,oy);  /*  reset cur parms  */
}
