/* ======================================================= *
* Copyright 1998-2005 Stephen C. Grubb *
* http://ploticus.sourceforge.net *
* Covered by GPL; see the file ./Copyright for details. *
* ======================================================= */
/* PROC BEVELRECT - bevelled rectange, e.g. for button */
#include "pl.h"
int
PLP_rect()
{
char attr[NAMEMAXLEN], val[256];
char *line, *lineval;
int nt, lvp;
int first;
double xlo, ylo, xhi, yhi;
char color[COLORLEN];
double bevelsize;
char lowbevelcolor[COLORLEN], hibevelcolor[COLORLEN], shadowcolor[COLORLEN];
double shadowsize;
int gotrect;
char outline[128];
int ioutline;
char mapurl[MAXPATH];
char maplabel[MAXTT];
int clickmap_on;
TDH_errprog( "pl proc rect" );
/* initialize */
strcpy( color, "dullyellow" );
/* bevelsize = 0.1; */
bevelsize = 0.0;
strcpy( lowbevelcolor, "0.6" );
strcpy( hibevelcolor, "0.8" );
strcpy( shadowcolor, "black" );
shadowsize = 0.0;
strcpy( outline, "" );
ioutline = 0;
gotrect = 0;
clickmap_on = 0;
strcpy( mapurl, "" );
strcpy( maplabel, "" );
/* get attributes.. */
first = 1;
while( 1 ) {
line = getnextattr( first, attr, val, &lvp, &nt );
if( line == NULL ) break;
first = 0;
lineval = &line[lvp];
if( stricmp( attr, "rectangle" )==0 ) {
getbox( "box", lineval, &xlo, &ylo, &xhi, &yhi );
gotrect = 1;
}
else if( stricmp( attr, "color" )==0 ) strcpy( color, val );
else if( stricmp( attr, "bevelsize" )==0 ) bevelsize = atof( val );
else if( stricmp( attr, "shadowsize" )==0 ) shadowsize = atof( val );
else if( stricmp( attr, "lowbevelcolor" )==0 ) strcpy( lowbevelcolor, val );
else if( stricmp( attr, "hibevelcolor" )==0 ) strcpy( hibevelcolor, val );
else if( stricmp( attr, "shadowcolor" )==0 ) strcpy( shadowcolor, val );
else if( stricmp( attr, "clickmapurl" )==0 ) {
if( PLS.clickmap ) { strcpy( mapurl, val ); clickmap_on = 1; }
}
else if( stricmp( attr, "clickmaplabel" )==0 ) {
if( PLS.clickmap ) { strcpy( maplabel, lineval ); clickmap_on = 1; }
}
else if( stricmp( attr, "clickmaplabeltext" )==0 ) {
if( PLS.clickmap ) { getmultiline( "clickmaplabeltext", lineval, MAXTT, maplabel ); clickmap_on = 1; }
}
else if( stricmp( attr, "outline" )==0 ) {
strcpy( outline, lineval );
if( GL_smember( val, "no none" )==0 ) ioutline = 1;
}
else Eerr( 1, "attribute not recognized", attr );
}
/* now do the plotting work.. */
if( !gotrect ) return( Eerr( 695, "No rectangle specified", "" ));
if( stricmp( color, "none" )==0 ) strcpy( color, "" );/* "none" added scg 1/21/05 */
linedet( "outline", outline, 0.5 );
Ecblock( xlo, ylo, xhi, yhi, color, ioutline );
if( bevelsize > 0.0 || shadowsize > 0.0 )
Ecblockdress( xlo, ylo, xhi, yhi,
bevelsize, lowbevelcolor, hibevelcolor, shadowsize, shadowcolor);
if( clickmap_on ) clickmap_entry( 'r', mapurl, 0, xlo, ylo, xhi, yhi, 0, 0, maplabel );
return( 0 );
}
/* ======================================================= *
* Copyright 1998-2005 Stephen C. Grubb *
* http://ploticus.sourceforge.net *
* Covered by GPL; see the file ./Copyright for details. *
* ======================================================= */
syntax highlighted by Code2HTML, v. 0.9.1