void gwinButtonDraw_ArrowRight(GWidgetObject *gw, void *param) { const GColorSet * pcol; point arw[7]; (void) param; if (gw->g.vmt != (gwinVMT *)&buttonVMT) return; pcol = getButtonColors(gw); // Create the arrow polygon arw[0].y = (gw->g.height-1)/2; // Point center arw[0].x = gw->g.width-1; // Arrow start arw[3].x = 0; // Arrow end #if BTN_ARROWHEAD_DIV == 0 if (gw->g.width <= arw[0].y) { arw[1].x = arw[3].x; // End of head arw[1].y = arw[0].y+arw[0].x; // Width of head (side 1) arw[2].y = arw[1].y; // Width of shaft (side 1) arw[4].y = arw[0].y-arw[0].x; // Width of head (side 2) arw[6].y = arw[4].y; // Width of shaft (side 2) } else { arw[1].x = arw[0].x - arw[0].y; arw[1].y = arw[0].y << 1; arw[2].y = arw[0].y + arw[0].y/BTN_ARROWBODY_DIV; arw[4].y = arw[0].y - arw[0].y/BTN_ARROWBODY_DIV; arw[6].y = 0; } #else arw[1].x = arw[0].x - gw->g.width/BTN_ARROWHEAD_DIV; arw[1].y = arw[0].y << 1; arw[2].y = arw[0].y + arw[0].y/BTN_ARROWBODY_DIV; arw[4].y = arw[0].y - arw[0].y/BTN_ARROWBODY_DIV; arw[6].y = 0; #endif // Fill in the rest from the special points /* arw[0].x set */ /* arw[0].y set */ /* arw[1].x set */ /* arw[1].y set */ arw[2].x = arw[1].x; /* arw[2].y set */ /* arw[3].y set */ arw[3].y = arw[2].y; arw[4].x = arw[3].x; /* arw[4].y set */ arw[5].x = arw[1].x; arw[5].y = arw[4].y; arw[6].x = arw[1].x; /* arw[6].y set */ // Draw gdispGFillArea(gw->g.display, gw->g.x, gw->g.y, gw->g.width, gw->g.height, gw->pstyle->background); gdispGFillConvexPoly(gw->g.display, gw->g.x, gw->g.y, arw, 7, pcol->fill); gdispGDrawPoly(gw->g.display, gw->g.x, gw->g.y, arw, 7, pcol->edge); gdispGDrawStringBox(gw->g.display, gw->g.x+1, gw->g.y+1, gw->g.width-2, gw->g.height-2, gw->text, gw->g.font, pcol->text, justifyCenter); }
void gwinButtonDraw_ArrowRight(GWidgetObject *gw, void *param) { const GColorSet * pcol; (void) param; point arw[7]; if (gw->g.vmt != (gwinVMT *)&buttonVMT) return; pcol = getDrawColors(gw); arw[0].x = gw->g.width-1; arw[0].y = gw->g.height/2; arw[1].x = gw->g.width-1-gw->g.width/ARROWHEAD_DIVIDER; arw[1].y = 0; arw[2].x = gw->g.width-1-gw->g.width/ARROWHEAD_DIVIDER; arw[2].y = (gw->g.height - gw->g.height/ARROWBODY_DIVIDER)/2; arw[3].x = 0; arw[3].y = (gw->g.height - gw->g.height/ARROWBODY_DIVIDER)/2; arw[4].x = 0; arw[4].y = (gw->g.height + gw->g.height/ARROWBODY_DIVIDER)/2; arw[5].x = gw->g.width-1-gw->g.width/ARROWHEAD_DIVIDER; arw[5].y = (gw->g.height + gw->g.height/ARROWBODY_DIVIDER)/2; arw[6].x = gw->g.width-1-gw->g.width/ARROWHEAD_DIVIDER; arw[6].y = gw->g.height-1; gdispGFillArea(gw->g.display, gw->g.x, gw->g.y, gw->g.width, gw->g.height, gw->pstyle->background); gdispGFillConvexPoly(gw->g.display, gw->g.x, gw->g.y, arw, 7, pcol->fill); gdispGDrawPoly(gw->g.display, gw->g.x, gw->g.y, arw, 7, pcol->edge); gdispGDrawStringBox(gw->g.display, gw->g.x+1, gw->g.y+1, gw->g.width-2, gw->g.height-2, gw->text, gw->g.font, pcol->text, justifyCenter); }