X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Fui%2Fgui%2Fpsppire-output-window.c;h=b0eff950c7e5e6b466b70edda79e9faf40702a8b;hb=5c3291dc396b795696e94f47780308fd7ace6fc4;hp=4905aba55911b4a07f45a010ffb5cde5b284d1c4;hpb=c7b5e2dcfaeb0221b801dc3cc9fa1ab9a4ec5861;p=pspp-builds.git diff --git a/src/ui/gui/psppire-output-window.c b/src/ui/gui/psppire-output-window.c index 4905aba5..b0eff950 100644 --- a/src/ui/gui/psppire-output-window.c +++ b/src/ui/gui/psppire-output-window.c @@ -18,7 +18,6 @@ #include #include -#include #include "helper.h" #include @@ -68,31 +67,27 @@ psppire_output_window_get_type (void) }; psppire_output_window_type = - g_type_register_static (PSPPIRE_WINDOW_TYPE, "PsppireOutputWindow", + g_type_register_static (PSPPIRE_TYPE_WINDOW, "PsppireOutputWindow", &psppire_output_window_info, 0); } return psppire_output_window_type; } +static GObjectClass *parent_class; static void psppire_output_window_finalize (GObject *object) { - GObjectClass *class = G_OBJECT_GET_CLASS (object); - - GObjectClass *parent_class = g_type_class_peek_parent (class); - - if (G_OBJECT_CLASS (parent_class)->finalize) (*G_OBJECT_CLASS (parent_class)->finalize) (object); - } static void psppire_output_window_class_init (PsppireOutputWindowClass *class) { + parent_class = g_type_class_peek_parent (class); } @@ -132,7 +127,7 @@ on_delete (GtkWidget *w, GdkEvent *event, gpointer user_data) the_output_viewer = NULL; - unlink (OUTPUT_FILE_NAME); + unlink (output_file_name()); return FALSE; } @@ -186,7 +181,7 @@ on_textview_resize (GtkWidget *widget, static void psppire_output_window_init (PsppireOutputWindow *window) { - GladeXML *xml = XML_NEW ("output-viewer.glade"); + GtkBuilder *xml = builder_new ("output-viewer.ui"); GtkWidget *box = gtk_vbox_new (FALSE, 0); @@ -237,21 +232,28 @@ psppire_output_window_init (PsppireOutputWindow *window) window->fp = NULL; - g_signal_connect (get_widget_assert (xml,"help_about"), + g_signal_connect (get_action_assert (xml,"help_about"), "activate", G_CALLBACK (about_new), window); - g_signal_connect (get_widget_assert (xml,"help_reference"), + g_signal_connect (get_action_assert (xml,"help_reference"), "activate", G_CALLBACK (reference_manual), NULL); - g_signal_connect (get_widget_assert (xml,"windows_minimise-all"), + g_signal_connect (get_action_assert (xml,"windows_minimise-all"), "activate", G_CALLBACK (psppire_window_minimise_all), NULL); + { + GtkUIManager *uim = GTK_UI_MANAGER (get_object_assert (xml, "uimanager1", GTK_TYPE_UI_MANAGER)); + + PSPPIRE_WINDOW (window)->menu = + GTK_MENU_SHELL (gtk_ui_manager_get_widget (uim,"/ui/menubar1/windows_menuitem/windows_minimise-all")->parent); + } + g_object_unref (xml); g_signal_connect (window, "delete-event", @@ -263,7 +265,8 @@ GtkWidget* psppire_output_window_new (void) { return GTK_WIDGET (g_object_new (psppire_output_window_get_type (), - "usage", PSPPIRE_WINDOW_USAGE_OUTPUT, + "filename", "Output", + "description", _("Output Viewer"), NULL)); } @@ -275,7 +278,7 @@ psppire_output_window_reload (void) struct stat buf; /* If there is no output, then don't do anything */ - if (0 != stat (OUTPUT_FILE_NAME, &buf)) + if (0 != stat (output_file_name(), &buf)) return ; if ( NULL == the_output_viewer ) @@ -295,7 +298,7 @@ reload_viewer (PsppireOutputWindow *ow) GtkTextIter end_iter; GtkTextMark *mark ; - static char *line = NULL; + char *line = NULL; gboolean chars_inserted = FALSE; @@ -305,9 +308,6 @@ reload_viewer (PsppireOutputWindow *ow) mark = gtk_text_buffer_create_mark (ow->buffer, NULL, &end_iter, TRUE); - - g_debug ("%s %p\n", __FUNCTION__, ow); - #ifdef __CYGWIN__ /* Apparently Windoze is not capabale of writing to a file whilst @@ -319,24 +319,24 @@ reload_viewer (PsppireOutputWindow *ow) */ { GtkTextIter start_iter; - FILE *fp = fopen (OUTPUT_FILE_NAME, "r"); + FILE *fp = fopen (output_file_name(), "r"); if ( !fp) { - g_print ("Cannot open %s\n", OUTPUT_FILE_NAME); + g_critical ("Cannot open %s\n", output_file_name()); return; } /* Delete all the entire buffer */ - gtk_text_buffer_get_start_iter (ov->buffer, &start_iter); - gtk_text_buffer_delete (ov->buffer, &start_iter, &end_iter); + gtk_text_buffer_get_start_iter (ow->buffer, &start_iter); + gtk_text_buffer_delete (ow->buffer, &start_iter, &end_iter); - gtk_text_buffer_get_start_iter (ov->buffer, &start_iter); + gtk_text_buffer_get_start_iter (ow->buffer, &start_iter); /* Read in the next lot of text */ while (fgets (line, viewer_width + 1, fp) != NULL) { chars_inserted = TRUE; - gtk_text_buffer_insert (ov->buffer, &start_iter, line, -1); + gtk_text_buffer_insert (ow->buffer, &start_iter, line, -1); } fclose (fp); @@ -345,10 +345,10 @@ reload_viewer (PsppireOutputWindow *ow) { if ( ow->fp == NULL) { - ow->fp = fopen (OUTPUT_FILE_NAME, "r"); + ow->fp = fopen (output_file_name(), "r"); if ( ow->fp == NULL) { - g_print ("Cannot open %s\n", OUTPUT_FILE_NAME); + g_critical ("Cannot open %s\n", output_file_name()); return; } }