/* <numarray|numstring> rectstroke - */ static int zrectstroke(i_ctx_t *i_ctx_p) { os_ptr op = osp; gs_matrix mat; local_rects_t lr; int npop, code; if (read_matrix(imemory, op, &mat) >= 0) { /* Concatenate the matrix to the CTM just before stroking the path. */ npop = rect_get(&lr, op - 1, imemory); if (npop < 0) return npop; code = gs_rectstroke(igs, lr.pr, lr.count, &mat); npop++; } else { /* No matrix. */ npop = rect_get(&lr, op, imemory); if (npop < 0) return npop; code = gs_rectstroke(igs, lr.pr, lr.count, (gs_matrix *) 0); } rect_release(&lr, imemory); if (code < 0) return code; pop(npop); return 0; }
/* * initializes a new slider at point (x,y) with label lbl * * returns initialized slider */ slider slider_get(uint16_t x, uint16_t y, char *str, uint8_t *initLevel, uint8_t levelID) { slider sldr; sldr.level=initLevel; sldr.levelID=levelID; sldr.bgnd=rect_get(x,y,100,228,GREEN_16BIT); sldr.label=text_get(x,y-15,str,sldr.bgnd.width,14,WHITE_16BIT,WHITE_16BIT,g_backgroundColor,0,0); sldr.track=rect_get(sldr.bgnd.x+45,sldr.bgnd.y+15,10,200, RED_16BIT); sldr.slide=rect_get(sldr.bgnd.x+10,0,80,30,BLACK_16BIT); sldr.bottomEdge=rect_get(x,y+sldr.bgnd.height,sldr.bgnd.width,12,g_backgroundColor); slider_updateSlidePos(&sldr); return sldr; }
/* * given x,y,x label, and y label will return new xyGrid */ xyGrid xyGrid_get(uint16_t x, uint16_t y, char* xStr, uint8_t* xinitLevel, uint8_t xlevelID, char* yStr, uint8_t* yinitLevel, uint8_t ylevelID) { xyGrid grid; grid.xlevel=xinitLevel; grid.ylevel=yinitLevel; grid.xlevelID=xlevelID; grid.ylevelID=ylevelID; grid.bgnd=rect_get(x,y,230,228,BLACK_16BIT); grid.leftEdge=rect_get(x-9,y,8,237,g_backgroundColor); grid.rightEdge=rect_get(x+grid.bgnd.width+1,y,9,237,g_backgroundColor); grid.bottomEdge=rect_get(x,y+grid.bgnd.height+1,grid.bgnd.width,12,g_backgroundColor); grid.dot=circle_get(x,y+grid.bgnd.height,5,WHITE_16BIT); grid.xlabel=text_get(x, y-16, xStr, grid.bgnd.width/2, 15, WHITE_16BIT,WHITE_16BIT, g_backgroundColor,0,0); grid.ylabel=text_get(x+grid.bgnd.width/2, y-16, yStr, grid.bgnd.width/2, 15, WHITE_16BIT,WHITE_16BIT, g_backgroundColor,0,0); xyGrid_updateDotPos(&grid); return grid; }
/* <numarray|numstring> rectfill - */ static int zrectfill(i_ctx_t *i_ctx_p) { os_ptr op = osp; local_rects_t lr; int npop = rect_get(&lr, op, imemory); int code; if (npop < 0) return npop; code = gs_rectfill(igs, lr.pr, lr.count); rect_release(&lr, imemory); if (code < 0) return code; pop(npop); return 0; }