/** Button press event handler. * @param event event data * @return true */ bool LaserDrawingArea::on_button_press_event(GdkEventButton *event) { __last_mouse_x = event->x; __last_mouse_y = event->y; double user_x = event->x; double user_y = event->y; Glib::RefPtr<Gdk::Window> window = get_window(); Cairo::RefPtr<Cairo::Context> cr = window->create_cairo_context(); cr->save(); cr->translate(__xc, __yc); cr->rotate(0.5 * M_PI + __rotation); cr->scale(-__zoom_factor, __zoom_factor); cr->device_to_user(user_x, user_y); printf("Clicked at (%.3lf, %.3lf)\n", user_x, user_y); cr->restore(); return true; }