PROP_0,
PROP_DOCUMENT,
PROP_CURRENT_PAGE,
- PROP_ROTATION
+ PROP_ROTATION,
+ PROP_INVERTED_COLORS
};
enum {
cairo_surface_t *current_surface;
EvDocument *document;
guint rotation;
+ gboolean inverted_colors;
EvPresentationState state;
gdouble scale;
gint monitor_width;
{
EvJobRender *job_render = EV_JOB_RENDER (job);
+ if (pview->inverted_colors)
+ ev_document_misc_invert_surface (job_render->surface);
+
if (job != pview->curr_job)
return;
case PROP_ROTATION:
pview->rotation = g_value_get_uint (value);
break;
+ case PROP_INVERTED_COLORS:
+ pview->inverted_colors = g_value_get_boolean (value);
+ break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
}
0, 360, 0,
G_PARAM_WRITABLE |
G_PARAM_CONSTRUCT_ONLY));
+ g_object_class_install_property (gobject_class,
+ PROP_INVERTED_COLORS,
+ g_param_spec_boolean ("inverted_colors",
+ "Inverted Colors",
+ "Whether presentation is displayed with inverted colors",
+ FALSE,
+ G_PARAM_WRITABLE |
+ G_PARAM_CONSTRUCT_ONLY));
signals[CHANGE_PAGE] =
g_signal_new ("change_page",
GtkWidget *
ev_view_presentation_new (EvDocument *document,
guint current_page,
- guint rotation)
+ guint rotation,
+ gboolean inverted_colors)
{
g_return_val_if_fail (EV_IS_DOCUMENT (document), NULL);
g_return_val_if_fail (current_page < ev_document_get_n_pages (document), NULL);
"document", document,
"current_page", current_page,
"rotation", rotation,
+ "inverted_colors", inverted_colors,
NULL));
}
gboolean fullscreen_window = TRUE;
guint current_page;
guint rotation;
+ gboolean inverted_colors;
if (EV_WINDOW_IS_PRESENTATION (window))
return;
current_page = ev_document_model_get_page (window->priv->model);
rotation = ev_document_model_get_rotation (window->priv->model);
- window->priv->presentation_view =
- ev_view_presentation_new (window->priv->document, current_page, rotation);
+ inverted_colors = ev_document_model_get_inverted_colors (window->priv->model);
+ window->priv->presentation_view = ev_view_presentation_new (window->priv->document,
+ current_page,
+ rotation,
+ inverted_colors);
g_signal_connect_swapped (window->priv->presentation_view, "finished",
G_CALLBACK (ev_window_view_presentation_finished),
window);