From 88674d5ff3403c517fa643738912072833aa0e0c Mon Sep 17 00:00:00 2001 From: Lukas Bezdicka <255993@mail.muni.cz> Date: Sun, 10 Apr 2011 22:53:45 +0200 Subject: [PATCH] [dualscreen] [presentation] make presentation control dscwindow, presentation -> notify::page --- libview/ev-view-presentation.c | 18 +++++++++++++++--- shell/ev-dualscreen.c | 9 +++------ 2 files changed, 18 insertions(+), 9 deletions(-) diff --git a/libview/ev-view-presentation.c b/libview/ev-view-presentation.c index 49c9c976..3612904a 100644 --- a/libview/ev-view-presentation.c +++ b/libview/ev-view-presentation.c @@ -37,6 +37,7 @@ enum { PROP_0, PROP_DOCUMENT, PROP_CURRENT_PAGE, + PROP_PAGE, PROP_ROTATION, PROP_INVERTED_COLORS }; @@ -491,7 +492,7 @@ ev_view_presentation_update_current_page (EvViewPresentation *pview, } pview->current_page = page; - g_object_notify (G_OBJECT(pview), "current_page"); + g_object_notify (G_OBJECT(pview), "page"); if (pview->page_cache) ev_page_cache_set_page_range (pview->page_cache, page, page); @@ -1368,6 +1369,9 @@ ev_view_presentation_set_property (GObject *object, case PROP_CURRENT_PAGE: pview->current_page = g_value_get_uint (value); break; + case PROP_PAGE: + pview->current_page = g_value_get_uint (value); + break; case PROP_ROTATION: ev_view_presentation_set_rotation (pview, g_value_get_uint (value)); break; @@ -1388,7 +1392,7 @@ ev_view_presentation_get_property (GObject *object, EvViewPresentation *pview = EV_VIEW_PRESENTATION (object); switch (prop_id) { - case PROP_CURRENT_PAGE: + case PROP_PAGE: g_value_set_uint (value, ev_view_presentation_get_current_page (pview)); break; case PROP_ROTATION: @@ -1455,13 +1459,21 @@ ev_view_presentation_class_init (EvViewPresentationClass *klass) EV_TYPE_DOCUMENT, G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY)); + g_object_class_install_property (gobject_class, + PROP_PAGE, + g_param_spec_uint ("page", + "Current Page", + "The current page", + 0, G_MAXUINT, 0, + G_PARAM_READWRITE)); g_object_class_install_property (gobject_class, PROP_CURRENT_PAGE, g_param_spec_uint ("current_page", "Current Page", "The current page", 0, G_MAXUINT, 0, - G_PARAM_READWRITE)); + G_PARAM_WRITABLE | + G_PARAM_CONSTRUCT_ONLY)); g_object_class_install_property (gobject_class, PROP_ROTATION, g_param_spec_uint ("rotation", diff --git a/shell/ev-dualscreen.c b/shell/ev-dualscreen.c index 66b08e16..fdec315f 100644 --- a/shell/ev-dualscreen.c +++ b/shell/ev-dualscreen.c @@ -170,7 +170,6 @@ static void ev_dscwindow_window_placement (EvDSCWindow *ev_dscwindow) { gint num_monitors = get_num_monitors (GTK_WINDOW (ev_dscwindow)); - g_printf ("num_monitors: %d \n",num_monitors); //if (num_monitors == 2) { GtkWindow * presentation_window = GTK_WINDOW (ev_dscwindow->priv->presentation_window); GdkScreen * screen = gtk_window_get_screen (presentation_window); @@ -197,7 +196,6 @@ ev_dscwindow_page_changed_cb (EvDocumentModel *model, EvDSCWindow *ev_dscwindow) { gint page = ev_document_model_get_page (model); - g_printf("m_page:%d\n",page); if(page != ev_view_presentation_get_current_page (ev_dscwindow->priv->presentation_view)) ev_view_presentation_set_page (EV_VIEW_PRESENTATION(ev_dscwindow->priv->presentation_view), page); } @@ -207,7 +205,6 @@ ev_dscwindow_presentation_page_changed_cb (EvViewPresentation *pview, EvDSCWindow *ev_dscwindow) { gint page = ev_view_presentation_get_current_page (pview); - g_printf("p_page:%d\n",page); ev_document_model_set_page (ev_dscwindow->priv->model, page); } @@ -227,8 +224,8 @@ ev_dscwindow_set_presentation (EvDSCWindow *ev_dscwindow, ev_dscwindow->priv->presentation_view = EV_VIEW_PRESENTATION(pview); ev_document_model_set_document(ev_dscwindow->priv->model, document); - g_signal_connect (ev_dscwindow->priv->presentation_view, - "notify::current_page", + g_signal_connect (G_OBJECT(ev_dscwindow->priv->presentation_view), + "notify::page", G_CALLBACK (ev_dscwindow_presentation_page_changed_cb), ev_dscwindow); ev_dscwindow_window_placement (ev_dscwindow); @@ -264,7 +261,7 @@ ev_dscwindow_init (EvDSCWindow *ev_dscwindow) GtkWidget *v = gtk_vbox_new (FALSE, 0); ev_dscwindow->priv->model = ev_document_model_new (); - g_signal_connect (ev_dscwindow->priv->model, + g_signal_connect (G_OBJECT(ev_dscwindow->priv->model), "notify::page", G_CALLBACK (ev_dscwindow_page_changed_cb), ev_dscwindow); -- 2.39.3