+static GObjectClass * parent_class = NULL;
+
+
+static const gchar *
+__get_name (GAction *act)
+{
+ return G_OBJECT_TYPE_NAME (act);
+}
+
+static const GVariantType *
+__get_state_type (GAction *act)
+{
+ return NULL;
+}
+
+
+static GVariant *
+__get_state (GAction *act)
+{
+ return NULL;
+}
+
+
+static const GVariantType *
+__get_parameter_type (GAction *act)
+{
+ return PSPPIRE_DIALOG_ACTION (act)->parameter_type;
+}
+
+static gboolean
+__get_enabled (GAction *act)
+{
+ return TRUE;
+}
+
+static void psppire_dialog_action_activate (PsppireDialogAction *act, GVariant *parameter);
+
+void
+psppire_dialog_action_activate_null (PsppireDialogAction *act)
+{
+ psppire_dialog_action_activate (act, NULL);
+}
+
+
+static void
+__activate (GAction *action, GVariant *parameter)
+{
+ psppire_dialog_action_activate (PSPPIRE_DIALOG_ACTION (action), parameter);
+}
+
+
+static void
+action_model_init (GActionInterface *iface)
+{
+ iface->get_name = __get_name;
+ iface->get_state_type = __get_state_type;
+ iface->get_state = __get_state;
+ iface->get_parameter_type = __get_parameter_type;
+ iface->get_enabled = __get_enabled;
+ iface->activate = __activate;
+}
+
+
+GType
+psppire_dialog_action_get_type (void)
+{
+ static GType de_type = 0;
+
+ if (!de_type)
+ {
+ static const GTypeInfo de_info =
+ {
+ sizeof (PsppireDialogActionClass),
+ NULL, /* base_init */
+ NULL, /* base_finalize */
+ (GClassInitFunc) psppire_dialog_action_class_init,
+ NULL, /* class_finalize */
+ NULL, /* class_data */
+ sizeof (PsppireDialogAction),
+ 0,
+ (GInstanceInitFunc) psppire_dialog_action_init,
+ };
+
+
+ static const GInterfaceInfo ga_info = {
+ (GInterfaceInitFunc) action_model_init,
+ NULL,
+ NULL
+ };
+
+
+ de_type = g_type_register_static (G_TYPE_OBJECT, "PsppireDialogAction",
+ &de_info, G_TYPE_FLAG_ABSTRACT);
+
+ g_type_add_interface_static (de_type, G_TYPE_ACTION, &ga_info);
+ }
+
+ return de_type;
+}
+