IBusObject

## IBusObject IBusObject — Base object of IBus. |

## Stability Level

Stable, unless otherwise indicated

## Synopsis

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

## Object Hierarchy

      GObject
       +----GInitiallyUnowned
             +----IBusObject
                   +----IBusConnection
                   +----IBusSerializable
                   +----IBusProxy
                   +----IBusBus
                   +----IBusService
                   +----IBusServer
                   +----IBusKeymap

## Signals

      "destroy"                                        : Run Last

## Description

IBusObject is the base object for all objects in IBus.

## Details

### IBUS_OBJECT_DESTROYED()

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

`obj` : |

### IBusObject

    typedef struct _IBusObject IBusObject;

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

### IBusObjectClass

    typedef struct {
        GInitiallyUnownedClass parent;

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

### ibus_object_new ()

    IBusObject *        ibus_object_new                     (void);

Creates a new instance of an IBusObject.

Returns : | a new instance of 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.