static void default_glyph(const Fl_Widget* widget, int glyph, int x,int y,int w,int h, Fl_Flags flags) { // h = (h+1)&(~1); // even only Fl_Boxtype box = widget->button_box(); box->draw(x, y, w, h, widget->button_color(), flags); box->inset(x, y, w, h); if (flags & FL_VALUE) { Fl_Color color = (box == FL_NO_BOX && (flags&FL_SELECTED)) ? widget->selection_text_color() : widget->text_color(); fl_color(fl_inactive(color, flags)); int d = h/6; fl_ellipse(x+d, y+d, h-d-d-1, h-d-d-1); fl_fill(); } }
void draw() { fl_push_clip(0, 0, w(), h()); fl_color(FL_DARK3); fl_rectf(0, 0, w(), h()); fl_push_matrix(); // if (args[6]) { fl_translate(w()/2.0f, h()/2.0f); fl_rotate(args[6]); fl_translate(-w()/2.0f, -h()/2.0f); //} fl_arc(args[0],args[1],args[2],args[3],args[4],args[5]); fl_closepath(); fl_arc(120,120,40,40,0,-360); fl_ellipse(20,20,args[2],args[3]); // hardware circle fl_color(FL_WHITE); fl_fill_stroke(FL_RED); fl_pop_matrix(); fl_pop_clip(); }
void Fl_Dial::draw() { int X = 0; int Y = 0; int W = w(); int H = h(); if (!(type() == FILL && box() == FL_OVAL_BOX)) { if (damage()&FL_DAMAGE_ALL) draw_box(); box()->inset(X,Y,W,H); } Fl_Color fillcolor = selection_color(); Fl_Color linecolor = highlight_color(); if (!active_r()) { fillcolor = fl_inactive(fillcolor); linecolor = fl_inactive(linecolor); } double angle = (a2-a1)*(value()-minimum())/(maximum()-minimum()) + a1; if (type() == FILL) { if (damage()&FL_DAMAGE_EXPOSE && box() == FL_OVAL_BOX) { fl_push_clip(0, 0, w(), h()); parent()->draw_group_box(); fl_pop_clip(); } fl_color(color()); fl_pie(X, Y, W-1, H-1, 270-a1, angle > a1 ? 360+270-angle : 270-360-angle); fl_color(fillcolor); fl_pie(X, Y, W-1, H-1, 270-angle, 270-a1); if (box() == FL_OVAL_BOX) { fl_ellipse(X, Y, W-1, H-1); fl_color(linecolor); fl_stroke(); } } else { if (!(damage()&FL_DAMAGE_ALL)) { fl_ellipse(X+1, Y+1, W-2, H-2); fl_color(color()); fl_fill(); } fl_push_matrix(); fl_translate(X+W/2-.5, Y+H/2-.5); fl_scale(W-1, H-1); fl_rotate(45-angle); if (type() == LINE) { fl_vertex(0.0, 0.0); fl_vertex(-0.04, 0.0); fl_vertex(-0.25, 0.25); fl_vertex(0.0, 0.04); } else { fl_circle(-0.20, 0.20, 0.07); } fl_color(fillcolor); fl_fill_stroke(linecolor); fl_pop_matrix(); } if (focused()) { fl_ellipse(X+2, Y+2, W-5, H-5); fl_color(linecolor); fl_line_style(FL_DASH); fl_stroke(); fl_line_style(0); } }