From: Luis A. M. <lu...@qd...> - 2011-10-31 17:29:40
|
Hi, I've solved my problem with multiple sets, it was actually on my code, not gtkextra. I'm not using 3.0.1 yet, though. But I want to get it working with my current version and then I can try to see if I can figure out why 3.0.1 is not drawing on the canvas under MS windows. The only thing left before I do that is to repaint the plot after a window resize. The plot seems to repaint itself on an expose event (that is, if I cover the window and then uncover it, it repaints) but several combinations of gtk_plot_paint and/or send_expose on_size_allocate, on_idle, on_realize either don't do anything or produce a SIGV. Anybody has some trick that can share? The last thing I tried involved sending a delayed expose event (I'm using gtkmm): void GtkPlotWrapper::on_size_allocate( Gtk::Allocation &allocation ) { set_allocation( allocation ); gtk_plot_canvas_set_size( GTK_PLOT_CANVAS(pImpl->m_canvas), allocation.get_width(), allocation.get_height() ); gtk_widget_set_uposition( GTK_WIDGET(pImpl->m_canvas), allocation.get_x(), allocation.get_y() ); pImpl->m_resized = true; pImpl->m_resized_time_stamp = clock(); } bool GtkPlotWrapper::on_idle() { if (pImpl){ if ((pImpl->m_resized)&&(clock()-pImpl->m_resized_time_stamp>500)) send_expose((GdkEvent *)&pImpl->m_event); pImpl->m_resized = false; } return true; } If I change the send_expose with a gtk_plot_paint it segfaults. Thanks again, Luis |