## IBusObject IBusObject — Base object of IBus. |

## Stability Level

Stable, unless otherwise indicated

## Synopsis

    #define             IBUS_OBJECT_IN_DESTRUCTION          (obj)
    #define             IBUS_OBJECT_DESTROYED               (obj)
    struct              IBusObject;
    struct              IBusObjectClass;
    IBusObject *        ibus_object_new                     (void);
    void                ibus_object_destroy                 (IBusObject *object);

## Object Hierarchy

      GObject
       +----GInitiallyUnowned
             +----IBusObject
                   +----IBusSerializable
                   +----IBusBus
                   +----IBusService
                   +----IBusKeymap

## Signals

      "destroy"                                        : Run Last

## Description

IBusObject is the base object for all objects in IBus.

## Details

### IBUS_OBJECT_IN_DESTRUCTION()

    #define IBUS_OBJECT_IN_DESTRUCTION(obj)    (IBUS_OBJECT_FLAGS (obj) & IBUS_IN_DESTRUCTION)

### IBUS_OBJECT_DESTROYED()

    #define IBUS_OBJECT_DESTROYED(obj)         (IBUS_OBJECT_FLAGS (obj) & IBUS_DESTROYED)

### struct IBusObject

    struct IBusObject;

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

### struct IBusObjectClass

    struct IBusObjectClass {
        GInitiallyUnownedClass parent;

        /* signals */
        void (* destroy)        (IBusObject   *object);
    };

### ibus_object_new ()

    IBusObject *        ibus_object_new                     (void);

New an IBusObject.

Returns : | A newly allocated IBusObject

### ibus_object_destroy ()

    void                ibus_object_destroy                 (IBusObject *object);

Emit the "destory" signal notifying all reference holders that they should release the IBusObject.

The memory for the object itself won't be deleted until its reference count actually drops to 0; ibus_object_destroy merely asks reference holders to release their references. It does not free the object.

`object` : | an IBusObject to destroy.

## Signal Details

### The `"destroy"` signal

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

Destroy and free an IBusObject

See also: `ibus_object_destroy()`.

### Note

Argument `user_data` is ignored in this function.

`object` : | An IBusObject.
`user_data` : | user data set when the signal handler was connected.