") ;
/* extra width needed for Internet Explorer */
if (internal)
printf(" | xsize*xnum)
printf("align=left ") ;
else
printf("align=center ") ;
if (yres > ysize*ynum)
printf("valign=top>");
else
printf("valign=center>") ;
for (k = iy ; k < iy + ynum ; k++) {
for (l = ix ; l < ix + xnum ; l++) {
if (k < ymax && l < xmax) {
xpos = ypos = 0 ; /* just in case */
if (res < maxres) {
ypos = k*2-ynum/2+1 ;
if (ypos+ynum >= (yres*2+ysize-1)/ysize)
ypos=(yres*2+ysize-1)/ysize-ynum ;
if (ypos < 0)
ypos = 0 ;
xpos = l*2-xnum/2+1 ;
if (xpos+xnum >= (xres*2+xsize-1)/xsize)
xpos=(xres*2+xsize-1)/xsize-xnum ;
if (xpos < 0)
xpos = 0 ;
printf("",
gpx, res+1, owidth, oheight, xpos, ypos, smooth, internal) ;
}
xsiz = xsize ;
ysiz = ysize ;
if (k+1 == ymax) {
ysiz = yres % ysize ;
if (ysiz == 0)
ysiz = ysize ;
}
if (l+1 == xmax) {
xsiz = xres % xsize ;
if (xsiz == 0)
xsiz = xsize ;
}
printf(" ",
gpx, numfiles + k*xmax + l + 1, smooth) ;
if (res < maxres)
printf("") ;
}
}
printf(" ") ;
}
printf(" | ") ;
printf(" | ") ;
printf("", height+4, bw) ;
if (iy > 0)
if (iy + ynum < ymax)
all = height-bw*4 ;
else
all = height-bw*2 ;
else
if (iy + ynum < ymax)
all = height-bw*2 ;
else
all = height ;
/* for the "back" button */
if (!internal && res > 1)
all -= bw + space ;
if ((int)((double) ynum / ymax * all - bw*2) > 0)
overflow = -2 ;
else
overflow = -((double) ynum / ymax * all - bw*2) ;
if (iy > 0) {
printf("",
gpx, res, owidth, oheight, ix, 0, smooth, internal,
internal ? "onMouseover=\"change('upsA','ups',1)\"\nonMouseout=\"change('upsA','ups',0)\"" : "") ;
printf("![\"Scroll]() ",
internal ? "name=\"upsA\"" : "", bw, bw, sbdir) ;
printf("",
gpx, res, owidth, oheight, ix, iy-1, smooth, internal,
internal ? "onMouseover=\"change('upA','up',1);change('vbarltA','vbarlt',1)\"\nonMouseout=\"change('upA','up',0);change('vbarltA','vbarlt',0)\"" : "") ;
printf("![\"Scroll]() ",
internal ? "name=\"upA\"" : "", bw, bw, sbdir) ;
if (overflow > 0) {
printf("![\"Scroll]() ",
internal ? "name=\"vbarltA\"" : "",
bw, (m_int_t)((double) iy / ymax * all) - overflow, sbdir) ;
overflow = -1 ;
}
else
printf("![\"Scroll]() ",
internal ? "name=\"vbarltA\"" : "",
bw, (m_int_t)((double) iy / ymax * all), sbdir) ;
printf(" ", bw, bw, sbdir) ;
}
else {
printf(" ", bw, bw, sbdir) ;
}
if (ynum > ymax)
printf(" ",
bw, (m_int_t)((double) all - bw*2), sbdir) ;
else if (overflow == -2) {
if (ynum == ymax)
printf(" ",
bw, (m_int_t)((double) ynum / ymax * all - bw*2), sbdir) ;
else
printf(" ",
bw, (m_int_t)((double) ynum / ymax * all - bw*2), sbdir) ;
}
if (iy + ynum < ymax) {
printf(" ", bw, bw, sbdir) ;
printf("",
gpx, res, owidth, oheight, ix, iy+1, smooth, internal,
internal ? "onMouseover=\"change('downA','down',1);change('vbarlbA','vbarlb',1)\"\nonMouseout=\"change('downA','down',0);change('vbarlbA','vbarlb',0)\"" : "") ;
if (overflow > 0) {
printf("![\"Scroll]() ",
internal ? "name=\"vbarlbA\"" : "",
bw, (m_int_t)((double) (ymax - (iy + ynum)) / ymax * all) - overflow, sbdir) ;
overflow = -1 ;
}
else
printf("![\"Scroll]() ",
internal ? "name=\"vbarlbA\"" : "",
bw, (m_int_t)((double) (ymax - (iy + ynum)) / ymax * all), sbdir) ;
printf("![\"Scroll]() ",
internal ? "name=\"downA\"" : "", bw, bw, sbdir) ;
printf("",
gpx, res, owidth, oheight, ix, ymax-ynum, smooth, internal,
internal ? "onMouseover=\"change('downsA','downs',1)\"\nonMouseout=\"change('downsA','downs',0)\"" : "") ;
printf("![\"Scroll]() ",
internal ? "name=\"downsA\"" : "", bw, bw, sbdir) ;
}
else {
printf(" ", bw, bw, sbdir) ;
}
if (!internal && res > 1) {
printf("![]() ", bw, space, sbdir) ;
printf("",
gpx, (m_int_t)1, owidth, oheight, (m_int_t)0, (m_int_t)0, 0, 0) ;
printf("![\"Back]() ", bw, bw, sbdir) ;
}
printf(" |
| ") ;
printf(" ") ;
printf("", bw, width+4) ;
if (ix > 0)
if (ix + xnum < xmax)
all = width-bw*4 ;
else
all = width-bw*2 ;
else
if (ix + xnum < xmax)
all = width-bw*2 ;
else
all = width ;
/* for the zoomout button */
if (!internal && res > 1)
all -= bw + space ;
if ((int)((double) xnum / xmax * all - bw*2) > 0)
overflow = -2 ;
else
overflow = -((double) xnum / xmax * all - bw*2) ;
if (ix > 0) {
printf("",
gpx, res, owidth, oheight, (m_int_t)0, iy, smooth, internal,
internal ? "onMouseover=\"change('leftsA','lefts',1)\"\nonMouseout=\"change('leftsA','lefts',0)\"" : "") ;
printf(" ",
internal ? "name=\"leftsA\"" : "", bw, bw, sbdir) ;
printf("",
gpx, res, owidth, oheight, ix-1, iy, smooth, internal,
internal ? "onMouseover=\"change('leftA','left',1);change('hbarllA','hbarll',1)\"\nonMouseout=\"change('leftA','left',0);change('hbarllA','hbarll',0)\"" : "") ;
printf(" ", internal ? "name=\"leftA\"" : "",
bw, bw, sbdir) ;
if (overflow > 0) {
printf(" ",
internal ? "name=\"hbarllA\"" : "",
(m_int_t)((double) ix / xmax * all) - overflow, bw, sbdir) ;
overflow = -1 ;
}
else
printf(" ",
internal ? "name=\"hbarllA\"" : "",
(m_int_t)((double) ix / xmax * all), bw, sbdir) ;
printf(" ", bw, bw, sbdir) ;
}
else {
printf(" ", bw, bw, sbdir) ;
}
if (xnum > xmax)
printf(" ",
(m_int_t)((double) all - bw*2), bw, sbdir) ;
else if (overflow == -2) {
if (xnum == xmax)
printf(" ",
(m_int_t)((double) xnum / xmax * all - bw*2), bw, sbdir) ;
else
printf(" ",
(m_int_t)((double) xnum / xmax * all - bw*2), bw, sbdir) ;
}
if (ix + xnum < xmax) {
printf(" ", bw, bw, sbdir) ;
printf("",
gpx, res, owidth, oheight, ix+1, iy, smooth, internal,
internal ? "onMouseover=\"change('rightA','right',1);change('hbarlrA','hbarlr',1)\"\nonMouseout=\"change('rightA','right',0);change('hbarlrA','hbarlr',0)\"" : "") ;
if (overflow > 0) {
printf(" ",
internal ? "name=\"hbarlrA\"" : "",
(m_int_t)((double) (xmax - (ix + xnum)) / xmax * all) - overflow, bw, sbdir) ;
overflow = -1 ;
}
else
printf(" ",
internal ? "name=\"hbarlrA\"" : "",
(m_int_t)((double) (xmax - (ix + xnum)) / xmax * all), bw, sbdir) ;
printf(" ",
internal ? "name=\"rightA\"" : "", bw, bw, sbdir) ;
printf("",
gpx, res, owidth, oheight, xmax-xnum, iy, smooth, internal,
internal ? "onMouseover=\"change('rightsA','rights',1)\"\nonMouseout=\"change('rightsA','rights',0)\"" : "") ;
printf(" ",
internal ? "name=\"rightsA\"" : "", bw, bw, sbdir) ;
}
else {
printf(" ", bw, bw, sbdir) ;
}
if (!internal && res > 1) {
ypos = (iy-ynum/2)/2 ;
if (ypos+ynum > (yres/2+ysize-1)/ysize)
ypos = (yres/2+ysize-1)/ysize-ynum ;
if (ypos < 0)
ypos = 0 ;
xpos = (ix-xnum/2)/2 ;
if (xpos+xnum > (xres/2+xsize-1)/xsize)
xpos=(xres/2+xsize-1)/xsize-xnum ;
if (xpos < 0)
xpos = 0 ;
printf(" ", space, bw) ;
printf("",
gpx, res-1, owidth, oheight, xpos, ypos, smooth, internal) ;
printf(" ", bw, bw) ;
}
printf(" |
| ") ;
printf("", bw, bw) ;
if (!internal) {
printf("",
gpx, xres, yres, percent) ;
printf(" ", bw, bw) ;
}
printf(" | ") ;
printf(" ") ;
printf(" | ") ;
if (internal) {
printf("") ;
printf("| ") ;
if (pct < 20)
printf("12.5") ;
else
printf("%d", (int)pct) ;
printf("%%") ;
printf(" | ") ;
if (internal) {
#ifdef SUBDIR
#ifdef UCB
printf("", dir, owidth, oheight) ;
#else
printf("", GRIDSUBDIR, dir) ;
#endif
#else /* SUBDIR */
printf("", GRIDSUBDIR) ;
#endif
printf("![\"Back]() | ") ;
}
if (res == 1)
printf(" ") ;
else {
ypos = (iy-ynum/2)/2 ;
if (ypos+ynum > (yres/2+ysize-1)/ysize)
ypos = (yres/2+ysize-1)/ysize-ynum ;
if (ypos < 0)
ypos = 0 ;
xpos = (ix-xnum/2)/2 ;
if (xpos+xnum > (xres/2+xsize-1)/xsize)
xpos=(xres/2+xsize-1)/xsize-xnum ;
if (xpos < 0)
xpos = 0 ;
printf("",
gpx, res-1, owidth, oheight, xpos, ypos, smooth, internal,
internal ? "onMouseover=\"change('zoomoutA','zoomout',1)\"\nonMouseout=\"change('zoomoutA','zoomout',0)\"" : "") ;
printf(" ") ;
}
printf(" | ") ;
#if RESIZE
printf("",
gpx, res, owidth, oheight+ysize, ix, iy, smooth, internal) ;
printf(" \n") ;
printf(" | ") ;
if (ynum <= 2)
printf(" \n") ;
else {
printf("",
gpx, res, owidth, oheight-ysize, ix, iy, smooth, internal) ;
printf(" \n") ;
}
printf(" | ") ;
printf("",
gpx, res, owidth+xsize, oheight, ix, iy, smooth, internal) ;
printf(" \n") ;
printf(" | ") ;
if (xnum <= 2)
printf(" \n") ;
else {
printf("",
gpx, res, owidth-xsize, oheight, ix, iy, smooth, internal) ;
printf(" \n") ;
}
#endif
printf(" | ") ;
printf("",
gpx, xres, yres, percent) ;
printf("![\"Help\"\nsrc=\"/images/help.png\"]() | ") ;
#ifdef UCB
printf("") ;
printf("![\"About]() | ") ;
#endif
printf(" ") ;
printf(" | ") ;
}
printf(" ") ;
#ifdef UCB
if (internal) {
char buf[1024], *dir ;
int c ;
dir = strdup(filename) ;
cp = rindex(dir, '/') ; /* cp is now pointing to end of "images/" */
if (cp) {
*cp = '\0' ;
sprintf(buf, "test -r %s/../converter", dir) ;
if (!system(buf)) {
printf("This image was processed by ") ;
sprintf(buf, "%s/../converter", dir) ;
ifp = fopen(buf, "r") ;
while ((c = fgetc(ifp)) != EOF)
if (c == '\n') break ;
else putchar(c) ;
fclose(ifp) ;
printf(".\n") ;
}
}
}
#endif
printf("\n") ;
printf("\n") ;
exit(0) ;
}
|