/* PSPPIRE - a graphical user interface for PSPP.
- Copyright (C) 2008, 2009, 2010, 2011, 2012, 2013, 2014 Free Software Foundation
+ Copyright (C) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2016 Free Software Foundation
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
#include "libpspp/cast.h"
#include "libpspp/message.h"
#include "libpspp/string-map.h"
-#include "output/cairo.h"
#include "output/chart-item.h"
#include "output/driver-provider.h"
#include "output/message-item.h"
#include "ui/gui/help-menu.h"
#include "ui/gui/builder-wrapper.h"
#include "ui/gui/psppire-output-view.h"
+#include "ui/gui/windows-menu.h"
#include "gl/xalloc.h"
if (new)
{
pod->window = PSPPIRE_OUTPUT_WINDOW (psppire_output_window_new ());
+ GApplication *app = g_application_get_default ();
+ gtk_application_add_window (GTK_APPLICATION (app),
+ GTK_WINDOW (pod->window));
+
pod->window->driver = pod;
}
window = pod->window;
GtkWidget *dialog = gtk_file_chooser_dialog_new (_("Export Output"),
GTK_WINDOW (window),
GTK_FILE_CHOOSER_ACTION_SAVE,
- GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
- GTK_STOCK_SAVE, GTK_RESPONSE_ACCEPT,
+ _("Cancel"), GTK_RESPONSE_CANCEL,
+ _("Save"), GTK_RESPONSE_ACCEPT,
NULL);
g_object_set (dialog, "local-only", FALSE, NULL);
static void
psppire_output_window_init (PsppireOutputWindow *window)
{
- GtkBuilder *xml;
-
- xml = builder_new ("output-window.ui");
-
- gtk_widget_reparent (get_widget_assert (xml, "vbox1"), GTK_WIDGET (window));
+ GtkBuilder *xml = builder_new ("output-window.ui");
+ GtkApplication *app = GTK_APPLICATION (g_application_get_default());
+ GtkWidget *box = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0);
+ gtk_container_add (GTK_CONTAINER (window), box);
+ GtkWidget *paned = get_widget_assert (xml, "paned1");
+
window->dispose_has_run = FALSE;
window->view = psppire_output_view_new (
GTK_LAYOUT (get_widget_assert (xml, "output")),
- GTK_TREE_VIEW (get_widget_assert (xml, "overview")),
- get_action_assert (xml, "edit_copy"),
- get_action_assert (xml, "edit_select-all"));
+ GTK_TREE_VIEW (get_widget_assert (xml, "overview")));
connect_help (xml);
G_CALLBACK (cancel_urgency),
NULL);
- g_signal_connect (get_action_assert (xml,"windows_minimise-all"),
- "activate",
- G_CALLBACK (psppire_window_minimise_all),
- NULL);
+ GObject *menu = get_object_assert (xml, "output-window-menu", G_TYPE_MENU);
+ GtkWidget *menubar = gtk_menu_bar_new_from_model (G_MENU_MODEL (menu));
+ gtk_box_pack_start (GTK_BOX (box), menubar, FALSE, FALSE, 0);
+ gtk_box_pack_start (GTK_BOX (box), paned, TRUE, TRUE, 0);
+
+ gtk_menu_shell_append (GTK_MENU_SHELL (menubar),
+ create_windows_menu (GTK_WINDOW (window)));
+
+ gtk_menu_shell_append (GTK_MENU_SHELL (menubar),
+ create_help_menu (GTK_WINDOW (window)));
{
- GtkWidget *w;
- GtkUIManager *uim = GTK_UI_MANAGER (get_object_assert (xml, "uimanager1", GTK_TYPE_UI_MANAGER));
- merge_help_menu (uim);
+ GSimpleAction *print = g_simple_action_new ("print", NULL);
+ g_signal_connect_swapped (print, "activate", G_CALLBACK (psppire_output_window_print), window);
+ g_action_map_add_action (G_ACTION_MAP (window), G_ACTION (print));
- w = gtk_ui_manager_get_widget (uim,"/ui/menubar/windows_menuitem/windows_minimise-all");
- PSPPIRE_WINDOW (window)->menu =
- GTK_MENU_SHELL (gtk_widget_get_parent (w));
+ const gchar *accels[2] = { "<Ctrl>P", NULL};
+ gtk_application_set_accels_for_action (app,
+ "win.print",
+ accels);
}
- g_signal_connect_swapped (get_action_assert (xml, "file_export"), "activate",
- G_CALLBACK (psppire_output_window_export), window);
+
+ {
+ GSimpleAction *export = g_simple_action_new ("export", NULL);
+ g_signal_connect_swapped (export, "activate", G_CALLBACK (psppire_output_window_export), window);
+ g_action_map_add_action (G_ACTION_MAP (window), G_ACTION (export));
+ }
+ {
+ GSimpleAction *select_all = g_simple_action_new ("select-all", NULL);
+ g_action_map_add_action (G_ACTION_MAP (window), G_ACTION (select_all));
+ }
- g_signal_connect_swapped (get_action_assert (xml, "file_print"), "activate",
- G_CALLBACK (psppire_output_window_print), window);
+ {
+ GSimpleAction *copy = g_simple_action_new ("copy", NULL);
+ g_action_map_add_action (G_ACTION_MAP (window), G_ACTION (copy));
+ const gchar *accels[2] = { "<Ctrl>C", NULL};
+ gtk_application_set_accels_for_action (app,
+ "win.copy",
+ accels);
+ }
+
+
g_object_unref (xml);
g_signal_connect (window, "delete-event",
psppire_output_window_new (void)
{
return GTK_WIDGET (g_object_new (psppire_output_window_get_type (),
- /* TRANSLATORS: This will form a filename. Please avoid whitespace. */
+ /* TRANSLATORS: This will be part of a filename. Please avoid whitespace. */
"filename", _("Output"),
"description", _("Output Viewer"),
NULL));