-static GtkWidget *
-ev_window_get_exit_fullscreen_button (EvWindow *window)
-{
- GtkWidget *button, *icon, *label, *hbox;
-
- button = gtk_button_new ();
- g_signal_connect (button, "clicked",
- G_CALLBACK (exit_fullscreen_button_clicked_cb),
- window);
- gtk_widget_show (button);
-
- hbox = gtk_hbox_new (FALSE, 2);
- gtk_widget_show (hbox);
- gtk_container_add (GTK_CONTAINER (button), hbox);
-
- icon = gtk_image_new_from_stock (EV_STOCK_LEAVE_FULLSCREEN, GTK_ICON_SIZE_BUTTON);
- gtk_widget_show (icon);
- gtk_box_pack_start (GTK_BOX (hbox), icon, FALSE, FALSE, 0);
-
- label = gtk_label_new (_("Leave Fullscreen"));
- gtk_widget_show (label);
- gtk_box_pack_start (GTK_BOX (hbox), label, FALSE, FALSE, 0);
-
- return button;
-}
-
-static GtkWidget *
-ev_window_create_fullscreen_popup (EvWindow *window)
-{
- GtkWidget *popup;
- GtkWidget *hbox;
- GtkWidget *button;
- GdkScreen *screen;
-
- window->priv->fullscreen_toolbar = egg_editable_toolbar_new_with_model
- (window->priv->ui_manager, ev_application_get_toolbars_model (EV_APP, FALSE), NULL);
-
- popup = gtk_window_new (GTK_WINDOW_POPUP);
- hbox = gtk_hbox_new (FALSE, 0);
- button = ev_window_get_exit_fullscreen_button (window);
-
- gtk_container_add (GTK_CONTAINER (popup), hbox);
- gtk_box_pack_start (GTK_BOX (hbox), window->priv->fullscreen_toolbar,
- TRUE, TRUE, 0);
- gtk_box_pack_start (GTK_BOX (hbox), button, FALSE, FALSE, 0);
-
- gtk_widget_show (button);
- gtk_widget_show (hbox);
-
- gtk_window_set_resizable (GTK_WINDOW (popup), FALSE);
-
- screen = gtk_widget_get_screen (GTK_WIDGET (window));
- g_signal_connect_object (screen, "size-changed",
- G_CALLBACK (screen_size_changed_cb),
- window, 0);
- g_signal_connect_object (popup, "size_request",
- G_CALLBACK (fullscreen_popup_size_request_cb),
- window, 0);
-
- gtk_window_set_screen (GTK_WINDOW (popup),
- gtk_widget_get_screen (GTK_WIDGET (window)));
-
- return popup;
-}
-
-
-static void
-ev_window_update_fullscreen_action (EvWindow *window)
-{
- GtkAction *action;
-
- action = gtk_action_group_get_action (window->priv->action_group, "ViewFullscreen");
- g_signal_handlers_block_by_func
- (action, G_CALLBACK (ev_window_cmd_view_fullscreen), window);
- gtk_toggle_action_set_active (GTK_TOGGLE_ACTION (action),
- ev_view_get_fullscreen (EV_VIEW (window->priv->view)));
- g_signal_handlers_unblock_by_func
- (action, G_CALLBACK (ev_window_cmd_view_fullscreen), window);
-}
-
-static void
-ev_window_run_fullscreen (EvWindow *window)
-{
- if (window->priv->fullscreen_popup == NULL)
- window->priv->fullscreen_popup
- = ev_window_create_fullscreen_popup (window);
-
- g_object_set (G_OBJECT (window->priv->scrolled_window),
- "shadow-type", GTK_SHADOW_NONE,
- NULL);
-
- ev_view_set_fullscreen (EV_VIEW (window->priv->view), TRUE);
- ev_window_update_fullscreen_action (window);
-
- gtk_window_fullscreen (GTK_WINDOW (window));
- gtk_widget_grab_focus (window->priv->view);
- ev_window_update_fullscreen_popup (window);
-
- g_signal_connect (window->priv->view,
- "motion-notify-event",
- G_CALLBACK (fullscreen_motion_notify_cb),
- window);
- g_signal_connect (window->priv->view,
- "leave-notify-event",
- G_CALLBACK (fullscreen_leave_notify_cb),
- window);
- fullscreen_set_timeout (window);
-
- if (!ev_window_is_empty (window))
- ev_metadata_manager_set_boolean (window->priv->uri, "fullscreen", TRUE);
-}
-
-static void
-ev_window_stop_fullscreen (EvWindow *window)
-{
- EvView *view = EV_VIEW (window->priv->view);
-
- if (!ev_view_get_fullscreen (EV_VIEW (view)))
- return;
-
- g_object_set (G_OBJECT (window->priv->scrolled_window),
- "shadow-type", GTK_SHADOW_IN,
- NULL);
-
- ev_view_set_fullscreen (view, FALSE);
- ev_window_update_fullscreen_action (window);
- gtk_window_unfullscreen (GTK_WINDOW (window));
-
- g_signal_handlers_disconnect_by_func (window->priv->view,
- (gpointer) fullscreen_motion_notify_cb,
- window);
- g_signal_handlers_disconnect_by_func (window->priv->view,
- (gpointer) fullscreen_leave_notify_cb,
- window);
- fullscreen_clear_timeout (window);
-
- if (!ev_window_is_empty (window))
- ev_metadata_manager_set_boolean (window->priv->uri, "fullscreen", FALSE);
-}
-
-static void
-ev_window_cmd_view_fullscreen (GtkAction *action, EvWindow *window)
-{
- gboolean fullscreen;
-
- g_return_if_fail (EV_IS_WINDOW (window));
- ev_window_stop_presentation (window);
-
- fullscreen = gtk_toggle_action_get_active (GTK_TOGGLE_ACTION (action));
- if (fullscreen) {
- ev_window_run_fullscreen (window);
- } else {
- ev_window_stop_fullscreen (window);
- }
-}
-