static void on_dwgarea_realize (GtkWidget *widget, gpointer data);
static gboolean
-expose_event_callback (GtkWidget *widget, GdkEventExpose *event, gpointer data)
+draw_callback (GtkWidget *widget, cairo_t *cr, gpointer data)
{
struct psppire_output_view *view = data;
struct xr_rendering *r = g_object_get_data (G_OBJECT (widget), "rendering");
- cairo_t *cr = gdk_cairo_create (widget->window);
const GtkStyle *style = gtk_widget_get_style (GTK_WIDGET (view->output));
xr_rendering_apply_options (r, &view->render_opts);
- xr_rendering_draw (r, cr, event->area.x, event->area.y,
- event->area.width, event->area.height);
- cairo_destroy (cr);
+ xr_rendering_draw_all (r, cr);
return TRUE;
}
cairo_t *cr;
gchar *fgc;
- cr = gdk_cairo_create (GTK_WIDGET (view->output)->window);
+ cr = gdk_cairo_create (gtk_widget_get_window (GTK_WIDGET (view->output)));
/* Set the widget's text color as the foreground color for the output driver */
fgc = gdk_color_to_string (&style->text[gtk_widget_get_state (GTK_WIDGET (view->output))]);
g_signal_connect (drawing_area, "realize",
G_CALLBACK (on_dwgarea_realize), view);
- g_signal_connect (drawing_area, "expose_event",
- G_CALLBACK (expose_event_callback), view);
+ g_signal_connect (drawing_area, "draw",
+ G_CALLBACK (draw_callback), view);
gtk_widget_set_size_request (drawing_area, tw, th);
gtk_layout_put (view->output, drawing_area, 0, view->y);
struct output_view_item *item;
cairo_t *cr;
- if (!view->n_items || !GTK_WIDGET (view->output)->window)
+ if (!view->n_items || !gtk_widget_get_window (GTK_WIDGET (view->output)))
return;
string_map_clear (&view->render_opts);
xr_driver_destroy (view->xr);
create_xr (view);
- cr = gdk_cairo_create (GTK_WIDGET (view->output)->window);
+ cr = gdk_cairo_create (gtk_widget_get_window (GTK_WIDGET (view->output)));
view->y = 0;
view->max_width = 0;
view_item->item = output_item_ref (item);
view_item->drawing_area = NULL;
- if (GTK_WIDGET (view->output)->window)
+ if (gtk_widget_get_window (GTK_WIDGET (view->output)))
{
view_item->drawing_area = drawing_area = gtk_drawing_area_new ();
- cr = gdk_cairo_create (GTK_WIDGET (view->output)->window);
+ cr = gdk_cairo_create (gtk_widget_get_window (GTK_WIDGET (view->output)));
if (view->xr == NULL)
create_xr (view);
g_value_unset (&value);
vadj = gtk_layout_get_vadjustment (view->output);
- min = vadj->lower;
- max = vadj->upper - vadj->page_size;
+ min = gtk_adjustment_get_lower (vadj);
+ max = gtk_adjustment_get_upper (vadj) - gtk_adjustment_get_page_size (vadj);
if (y < min)
y = min;
else if (y > max)
if ( g_file_get_contents (filename, &text, &length, NULL) )
{
- gtk_selection_data_set (selection_data, selection_data->target,
+ gtk_selection_data_set (selection_data, gtk_selection_data_get_target (selection_data),
8,
(const guchar *) text, length);
}