## MirageObject MirageObject — Base object class. |

## Synopsis

    #include <mirage-object.h>

    struct              MirageObject;
    struct              MirageObjectClass;
    gpointer            mirage_object_get_parent            (MirageObject *self);
    void                mirage_object_set_parent            (MirageObject *self,
                                                             gpointer parent);

## Object Hierarchy

      GObject
       +----MirageObject
             +----MirageCdTextCoder
             +----MirageDisc
             +----MirageFragment
             +----MirageIndex
             +----MirageLanguage
             +----MirageParser
             +----MirageSector
             +----MirageSession
             +----MirageTrack

## Implemented Interfaces

MirageObject implements MirageContextual.

## Signals

      "context-changed"                                : Run Last

## Description

MirageObject is used as a base object class throughout libMirage. It implements MirageContextual interface, which allows attachment of MirageContext. It also implements support for constructing parent-child hierarchy, which allows propagation of the MirageContext from parent to the child objects.

## Details

### struct MirageObject

    struct MirageObject;

All the fields in the MirageObject structure are private to the MirageObject implementation and should never be accessed directly.

### struct MirageObjectClass

    struct MirageObjectClass {
        GObjectClass parent_class;
    };

The class structure for the MirageObject type.

GObjectClass `parent_class`; | the parent class

### mirage_object_get_parent ()

    gpointer            mirage_object_get_parent            (MirageObject *self);

Returns pointer to object's parent object.

`self` : | a MirageObject
Returns : | parent object, or `NULL`. [transfer full][type MirageObject]

### mirage_object_set_parent ()

    void                mirage_object_set_parent            (MirageObject *self,
                                                             gpointer parent);

Sets object's parent. If `parent` is `NULL`, the object's parent is reset.

`self` : | a MirageObject
`parent` : | parent. [in][allow-none][type MirageObject]

## Signal Details

### The `"context-changed"` signal

    void                user_function                      (MirageObject *object,
                                                            gpointer      user_data)      : Run Last

Emitted when a new MirageContext is set to a MirageObject.

`object` : | a MirageObject
`user_data` : | user data set when the signal handler was connected.

## See Also

MirageContext, MirageContextual