int gui_draw_string ( int x, int y, int w, int h, int color, const char *s, bool draw ) { int rw; if ( ! s ) return 0; fl_font( FL_COURIER, min( h, 18 ) ); rw = fl_width( s ); if ( fl_not_clipped( x, y, rw, h ) && draw ) { gui_clear_area( x, y, w, h ); if ( color ) fl_color( velocity_colors[ color ] ); else fl_color( FL_DARK_CYAN ); fl_draw( s, x, y + h / 2 + fl_descent() ); } return rw; }
/** callback called by Grid::draw_row_names() to draw an individual row name */ void Canvas::draw_row_name ( int y, const char *name, int color ) { bool draw = m.draw; bool clear = false; y = ntr( y ); if ( ! m.row_compact && ! name ) clear = true; y -= m.vp->y; int bx = m.origin_x; int by = m.origin_y + m.margin_top + y * m.div_h; int bw = min( m.margin_left, m.width / 8 ); int bh = m.div_h; if ( y < 0 || y >= m.vp->h ) draw = false; if ( clear && draw ) gui_clear_area( bx, by, bw, bh ); else m.margin_left = max( m.margin_left, gui_draw_string( bx, by, bw, bh, color, name, draw ) ); }