void Sliderule :: draw_cursor (wxDC & dc) { int cursor_left = x + (int) ((double) scale_length * (marginal_factor + cursor_location - cursor_factor * 0.5)); int cursor_right = cursor_left + (int) ((double) scale_length * cursor_factor); dc . SetBrush (wxBrush (wxColour (cursor_colour . red, cursor_colour . green, cursor_colour . blue, cursor_colour . alpha))); if (draw_cursor_window) { dc . DrawRoundedRectangle (cursor_left, y - 2, cursor_right - cursor_left, rule_y - y + 4, 4); } dc . SetPen (wxPen (wxColour (cursor_colour . red, cursor_colour . green, cursor_colour . blue))); dc . SetBrush (wxBrush (wxColour (0, 0, 0), wxTRANSPARENT)); dc . DrawRoundedRectangle (cursor_left, y - 2, cursor_right - cursor_left, rule_y - y + 4, 4); dc . DrawRoundedRectangle (cursor_left - 1, y - 3, cursor_right - cursor_left + 2, rule_y - y + 6, 4); // drawed_hairline = x + (double) scale_length * (cursor_location + marginal_factor); drawed_hairline = x + (int) ((double) scale_length * marginal_factor); drawed_hairline += (double) scale_length * cursor_location; double S = (double) scale_length * C; drawed_d = drawed_hairline + S; drawed_s = drawed_hairline - S; drawed_mechanical_kw = drawed_d + (double) scale_length * mechanical_hp; drawed_metric_kw = drawed_d + (double) scale_length * metric_hp; drawed_mechanical_hp = drawed_hairline - 0.5 * (double) scale_length * mechanical_hp; drawed_metric_hp = drawed_hairline - 0.5 * (double) scale_length * metric_hp; double shift_360 = (double) scale_length * location_360; drawed_360 = drawed_hairline + shift_360; drawed_36010 = drawed_hairline + (double) scale_length * location_36010; drawed_360st = drawed_hairline - shift_360; // if (process_cursor_hairline) draw_alpha_line (dc, hairline_lp, x + scale_length * (cursor_location + marginal_factor), y, rule_y); if (draw_cursor_2_hairlines) { draw_thin_line (dc, hairline_lp, drawed_hairline, y, rule_y); d_hairline . draw (dc, other_hairlines_lp, drawed_hairline, (double) scale_length); if (display_metric_hp) { metric_hp_hairline . draw (dc, other_hairlines_lp, drawed_hairline, (double) scale_length); metric_kw_hairline . draw (dc, other_hairlines_lp, drawed_hairline, (double) scale_length); } if (display_mechanical_hp) { mechanical_hp_hairline . draw (dc, other_hairlines_lp, drawed_hairline, (double) scale_length); mechanical_kw_hairline . draw (dc, other_hairlines_lp, drawed_hairline, (double) scale_length); } s_hairline . draw (dc, other_hairlines_lp, drawed_hairline, (double) scale_length); hairline_360 . draw (dc, other_hairlines_lp, drawed_hairline, (double) scale_length); hairline_36010 . draw (dc, other_hairlines_lp, drawed_hairline, (double) scale_length); hairline_360st . draw (dc, other_hairlines_lp, drawed_hairline, (double) scale_length); for (int ind = 0; ind < number_of_extra_hairlines; ind++) extra_hairlines [ind] -> draw (dc, other_hairlines_lp, drawed_hairline, (double) scale_length); } if (draw_cursor_hairline) draw_line (dc, hairline_lp, (double) x + (double) scale_length * (cursor_location + marginal_factor), y, rule_y); }
void Hairline :: draw (wxDC & dc, lanczos_colour * lcp, double x, double scale_length) { if (from < 0) return; last_drawn = x + location * scale_length; draw_thin_line (dc, lcp, last_drawn, from, to); }
//--------------------------------------------------------------------------------------- void GmoShapeBarline::on_draw(Drawer* pDrawer, RenderOptions& opt) { Color color = determine_color_to_use(opt) ; LUnits uxPos = m_uxLeft; LUnits uyTop = m_origin.y; LUnits uyBottom = m_origin.y + m_size.height; switch(m_nBarlineType) { case k_barline_double: draw_thin_line(pDrawer, uxPos, uyTop, uyBottom, color); uxPos += m_uThinLineWidth + m_uSpacing; draw_thin_line(pDrawer, uxPos, uyTop, uyBottom, color); break; case k_barline_end_repetition: //uxPos += m_uRadius; uxPos += m_uRadius * 2.7; //BUG-BYPASS: Need to shift right the drawing draw_two_dots(pDrawer, uxPos, uyTop); uxPos += m_uRadius + m_uSpacing; draw_thin_line(pDrawer, uxPos, uyTop, uyBottom, color); uxPos += m_uThinLineWidth + m_uSpacing; draw_thick_line(pDrawer, uxPos, uyTop, m_uThickLineWidth, uyBottom-uyTop, color); break; case k_barline_start_repetition: draw_thick_line(pDrawer, uxPos, uyTop, m_uThickLineWidth, uyBottom-uyTop, color); uxPos += m_uThickLineWidth + m_uSpacing; draw_thin_line(pDrawer, uxPos, uyTop, uyBottom, color); uxPos += m_uThinLineWidth + m_uSpacing + m_uRadius; draw_two_dots(pDrawer, uxPos, uyTop); break; case k_barline_double_repetition: uxPos += m_uRadius; draw_two_dots(pDrawer, uxPos, uyTop); uxPos += m_uSpacing + m_uRadius; draw_thin_line(pDrawer, uxPos, uyTop, uyBottom, color); uxPos += m_uThinLineWidth + m_uSpacing; draw_thin_line(pDrawer, uxPos, uyTop, uyBottom, color); uxPos += m_uThinLineWidth + m_uSpacing + m_uRadius; draw_two_dots(pDrawer, uxPos, uyTop); break; case k_barline_start: draw_thick_line(pDrawer, uxPos, uyTop, m_uThickLineWidth, uyBottom-uyTop, color); uxPos += m_uThickLineWidth + m_uSpacing; draw_thin_line(pDrawer, uxPos, uyTop, uyBottom, color); break; case k_barline_end: draw_thin_line(pDrawer, uxPos, uyTop, uyBottom, color); uxPos += m_uThinLineWidth + m_uSpacing; draw_thick_line(pDrawer, uxPos, uyTop, m_uThickLineWidth, uyBottom-uyTop, color); break; case k_barline_simple: draw_thin_line(pDrawer, uxPos, uyTop, uyBottom, color); break; } pDrawer->render(); GmoSimpleShape::on_draw(pDrawer, opt); }