#include "psppire-syntax-window.h"
#include "psppire-window-register.h"
-static void psppire_window_base_init (PsppireWindowClass *class);
static void psppire_window_class_init (PsppireWindowClass *class);
static void psppire_window_init (PsppireWindow *window);
-
static GObjectClass *parent_class;
-GType
-psppire_window_get_type (void)
-{
- static GType psppire_window_type = 0;
-
- if (!psppire_window_type)
- {
- static const GTypeInfo psppire_window_info =
- {
- sizeof (PsppireWindowClass),
- (GBaseInitFunc) psppire_window_base_init,
- (GBaseFinalizeFunc) NULL,
- (GClassInitFunc) psppire_window_class_init,
- (GClassFinalizeFunc) NULL,
- NULL,
- sizeof (PsppireWindow),
- 0,
- (GInstanceInitFunc) psppire_window_init,
- };
-
- psppire_window_type =
- g_type_register_static (PSPPIRE_TYPE_WINDOW_BASE, "PsppireWindow",
- &psppire_window_info, G_TYPE_FLAG_ABSTRACT);
- }
-
- return psppire_window_type;
-}
-
+G_DEFINE_ABSTRACT_TYPE (PsppireWindow, psppire_window, PSPPIRE_TYPE_WINDOW_BASE)
/* Properties */
enum
{
GObjectClass *object_class = G_OBJECT_CLASS (class);
+ object_class->finalize = psppire_window_finalize;
+
GParamSpec *description_spec =
null_if_empty_param ("description",
"Description",
}
-static void
-psppire_window_base_init (PsppireWindowClass *class)
-{
- GObjectClass *object_class = G_OBJECT_CLASS (class);
-
- object_class->finalize = psppire_window_finalize;
-}
-
-
-
static void
insert_menuitem_into_menu (PsppireWindow *window, gpointer key)
{
GtkWidget *item;
filename = g_filename_display_name (key);
item = gtk_check_menu_item_new_with_label (filename);
+ g_object_ref_sink (item);
g_free (filename);
g_hash_table_insert (window->menuitem_table, key, item);
window->list_name = NULL;
window->edited = NULL;
- window->menuitem_table = g_hash_table_new (g_str_hash, g_str_equal);
+ window->menuitem_table = g_hash_table_new_full (g_str_hash, g_str_equal,
+ NULL, g_object_unref);
g_signal_connect (window, "realize", G_CALLBACK (insert_existing_items), NULL);
- window->insert_handler = g_signal_connect (psppire_window_register_new (),
+ PsppireWindowRegister *reg = psppire_window_register_new ();
+ window->insert_handler = g_signal_connect (reg,
"inserted",
G_CALLBACK (insert_menuitem),
window);
- window->remove_handler = g_signal_connect (psppire_window_register_new (),
+ window->remove_handler = g_signal_connect (reg,
"removed",
G_CALLBACK (remove_menuitem),
window);
gtk_message_dialog_format_secondary_text (GTK_MESSAGE_DIALOG (dialog),
_("If you don't save, changes from the last %ld seconds will be permanently lost."),
- timespan / G_TIME_SPAN_SECOND);
+ (long int) (timespan / G_TIME_SPAN_SECOND));
gtk_dialog_add_button (GTK_DIALOG (dialog),
_("Close _without saving"),
NULL, /* class_data */
0,
0, /* n_preallocs */
- NULL
+ NULL,
+ NULL /* value_table */
};
window_model_type =
group_close_item_submit (group_close_item_create ());
for (size_t i = common; i < new_path.n; i++)
group_open_item_submit (group_open_item_create (
- new_path.nodes[i]->command_id));
+ new_path.nodes[i]->command_id,
+ new_path.nodes[i]->label));
free_path (&old_path);
free_path (&new_path);
if (items[i]->type == SPV_ITEM_TEXT)
spv_text_submit (items[i]);
else if (items[i]->type == SPV_ITEM_TABLE)
- pivot_table_submit (spv_item_get_table (items[i]));
+ pivot_table_submit (pivot_table_ref (spv_item_get_table (items[i])));
prev_heading = heading;
}
dump_heading_transition (prev_heading, spv_get_root (spv));
g_free (uri);
}
-