Окраска точки в области рисования в gtkmm

Я создал область рисования, используя следующий код в gtkmm:

bool DrawingArea::on_draw(const Cairo::RefPtr<Cairo::Context>& cr)
{
cr->set_source_rgb(1.0, 1.0, 1.0);   // white background
cr->paint();
cr->move_to(0,0);
cr->line_to(10,10);
cr->line_to(20,20);
return true;
}

Код рисует линии в области рисования.

Я хочу нарисовать точку в этой области после вызова функции, которая рисует точку. Я хочу перекрасить в том же контексте. Я сделал это так:

void DrawingArea::on_point()
{
  cr->arc(10.0,10.0,1.0,1.0, 2 * M_PI);
  cr->set_source_rgba(0.0,0.0,0.8,0.6);
  cr->fill_preserve();
  cr->stroke();
}

Вышеуказанная функция вызывается при нажатии на пункт меню. Функция queue_draw() в gtkmm может быть использована. Как мне использовать его для перекраски в области рисования?

Любая помощь будет по достоинству оценена!

0 ответов

Другие вопросы по тегам