home *** CD-ROM | disk | FTP | other *** search
- /*
- * BCC2GRX - Interfacing Borland based graphics programs to LIBGRX
- * Copyright (C) 1993 Hartmut Schirmer
- *
- * see bccgrx.c for details
- */
-
- #include "bccgrx00.h"
-
- void bar3d(int left,int top,int right,int bottom,int depth, int topflag)
- {
- int yofs, l_d, r_d, t_y, fast, col;
-
- _DO_INIT_CHECK;
- bar(left,top,right,bottom);
-
- left += VL;
- top += VT;
- right += VL;
- bottom += VT;
- if (left > right) SWAP(left,right);
- if (bottom < top) SWAP(bottom,top);
-
- fast = (__gr_lstyle == SOLID_LINE) && (LNE.lno_width == 1);
- LNE.lno_color = col = COL|WR;
- if (fast) GrBox( left, top, right, bottom, col);
- else GrCustomBox( left, top, right, bottom, &LNE);
-
- if (depth == 0) return;
-
- yofs = -depth * getmaxy() / getmaxx();
- r_d = right+depth;
- t_y = top + yofs;
- if (fast) {
- GrLine( right, bottom, r_d, bottom+yofs, col);
- GrVLine(r_d, bottom+yofs, t_y, col);
- } else {
- GrCustomLine( right, bottom, r_d, bottom+yofs, &LNE);
- GrCustomLine( r_d, bottom+yofs, r_d, t_y, &LNE);
- }
- if (topflag) {
- l_d = left+depth;
- if (fast) {
- GrHLine( r_d, l_d, t_y, col);
- GrLine( l_d, t_y, left, top, col);
- GrLine( r_d, t_y, right, top, col);
- } else {
- GrCustomLine( r_d, t_y, l_d, t_y, &LNE);
- GrCustomLine( l_d, t_y, left, top, &LNE);
- GrCustomLine( r_d, t_y, right, top, &LNE);
- }
- }
- }
-