diff options
Diffstat (limited to 'libview')
-rw-r--r-- | libview/ev-view-presentation.c | 22 | ||||
-rw-r--r-- | libview/ev-view-presentation.h | 3 |
2 files changed, 22 insertions, 3 deletions
diff --git a/libview/ev-view-presentation.c b/libview/ev-view-presentation.c index 7cf94bd..5df5cfa 100644 --- a/libview/ev-view-presentation.c +++ b/libview/ev-view-presentation.c @@ -36,7 +36,8 @@ enum { PROP_0, PROP_DOCUMENT, PROP_CURRENT_PAGE, - PROP_ROTATION + PROP_ROTATION, + PROP_INVERTED_COLORS }; enum { @@ -60,6 +61,7 @@ struct _EvViewPresentation cairo_surface_t *current_surface; EvDocument *document; guint rotation; + gboolean inverted_colors; EvPresentationState state; gdouble scale; gint monitor_width; @@ -323,6 +325,9 @@ job_finished_cb (EvJob *job, { 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; @@ -1326,6 +1331,9 @@ ev_view_presentation_set_property (GObject *object, 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); } @@ -1401,6 +1409,14 @@ ev_view_presentation_class_init (EvViewPresentationClass *klass) 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", @@ -1461,7 +1477,8 @@ ev_view_presentation_init (EvViewPresentation *pview) 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); @@ -1470,6 +1487,7 @@ ev_view_presentation_new (EvDocument *document, "document", document, "current_page", current_page, "rotation", rotation, + "inverted_colors", inverted_colors, NULL)); } diff --git a/libview/ev-view-presentation.h b/libview/ev-view-presentation.h index dde9ad8..24553b0 100644 --- a/libview/ev-view-presentation.h +++ b/libview/ev-view-presentation.h @@ -42,7 +42,8 @@ GType ev_view_presentation_get_type (void) G_GNUC_CONST; GtkWidget *ev_view_presentation_new (EvDocument *document, guint current_page, - guint rotation); + guint rotation, + gboolean inverted_colors); guint ev_view_presentation_get_current_page (EvViewPresentation *pview); G_END_DECLS |