void draw(){ int wt, wb, wc; wt = y() + 24;// wave top wb = y() + h() - 10;// wave bottom wc = (w() - 20) * sh / (sh + sl) + x() + 10;// wave change fl_color(FL_BLACK); fl_rectf(x(), y(), w(), h()); if(sh == 0 && sl == 0){ return; } fl_color(FL_GREEN); fl_xyline(x(), wb, x() + 10); fl_yxline(x() + 10, wt, wb); fl_xyline(x() + 10, wt, wc); fl_yxline(wc, wt, wb); fl_xyline(wc, wb, x() + w() - 10); fl_yxline(x() + w() - 10, wt, wb); fl_xyline(x() + w() - 10, wt, x() + w()); fl_color(FL_WHITE); fl_font(FL_HELVETICA, 10); fl_draw(t, x(), y() + 10); sprintf(buf, "%dusec", sh); fl_draw(buf, x() + 12, wt - 2); sprintf(buf, "%dusec", sl); fl_draw(buf, wc + 2, wb - 2); }
// taken explicitly from Fl_Return_Button.cpp static int flu_return_arrow(int x, int y, int w, int h) { int size = w; if (h<size) size = h; int d = (size+2)/4; if (d<3) d = 3; int t = (size+9)/12; if (t<1) t = 1; int x0 = x+(w-2*d-2*t-1)/2; int x1 = x0+d; int y0 = y+h/2; fl_color(FL_LIGHT3); fl_line(x0, y0, x1, y0+d); fl_yxline(x1, y0+d, y0+t, x1+d+2*t, y0-d); fl_yxline(x1, y0-t, y0-d); fl_color(fl_gray_ramp(0)); fl_line(x0, y0, x1, y0-d); fl_color(FL_DARK3); fl_xyline(x1+1, y0-t, x1+d, y0-d, x1+d+2*t); return 1; }
EDELIB_NS_BEGIN void MenuBar::draw() { draw_box(); if (!menu() || !menu()->text) return; const MenuItem* m; int X = x()+6; for (m=menu()->first(); m->text; m = m->next()) { int W = m->measure(0,this) + 16; m->draw(X, y(), W, h(), this); X += W; if (m->flags & FL_MENU_DIVIDER) { int y1 = y() + Fl::box_dy(box()); int y2 = y1 + h() - Fl::box_dh(box()) - 1; // Draw a vertical divider between menus... fl_color(FL_DARK3); fl_yxline(X - 6, y1, y2); fl_color(FL_LIGHT3); fl_yxline(X - 5, y1, y2); } } }
FL_EXPORT_C(void,flc_yxline_with_y2_x3)(int x,int y,int y1,int x2,int y3){ fl_yxline(x,y,y1,x2,y3); }
FL_EXPORT_C(void,flc_yxline_with_y2_x2)(int x,int y,int y1,int x2){ fl_yxline(x,y,y1,x2); }
FL_EXPORT_C(void,flc_yxline_with_y1)(int x,int y,int y1){ fl_yxline(x,y,y1); }