### Class

# Ide Object

#### Description

    class Ide.Object : GObject.Object {
      parent_instance: GObject
    }

No description available.

#### Ancestors

- GObject

#### Descendants

- IdeBufferChangeMonitor
- IdeBufferManager
- IdeBuildManager
- IdeCommandManager
- IdeConfig
- IdeConfigManager
- IdeContext
- IdeDebugManager
- IdeDebugger
- IdeDeployStrategy
- IdeDevice
- IdeDeviceManager
- IdeDeviceProvider
- IdeDiagnostic
- IdeDiagnosticTool
- IdeDiagnostics
- IdeDiagnosticsManager
- IdeDirectoryVcs
- IdeExtensionAdapter
- IdeExtensionSetAdapter
- IdeFallbackBuildSystem
- IdeFileSettings
- IdeHighlightEngine
- IdeLspClient
- IdeLspCodeAction
- IdeLspCodeActionProvider
- IdeLspCompletionProvider
- IdeLspDiagnosticProvider
- IdeLspFormatter
- IdeLspHighlighter
- IdeLspHoverProvider
- IdeLspRenameProvider
- IdeLspSearchProvider
- IdeLspService
- IdeLspSymbolResolver
- IdeNotification
- IdeNotifications
- IdeObjectBox
- IdePipeline
- IdePipelineStage
- IdeProject
- IdeProjectFile
- IdeRunManager
- IdeRunner
- IdeRuntime
- IdeRuntimeManager
- IdeSearchEngine
- IdeSimpleBuildSystemDiscovery
- IdeSimpleBuildTarget
- IdeSnippetStorage
- IdeTestManager
- IdeTestProvider
- IdeTextEdit
- IdeToolchain
- IdeToolchainManager
- IdeTransfer
- IdeTreeModel
- IdeUnsavedFiles
- IdeVcsMonitor

#### Constructors

###### ide_object_new

This is a convenience function for creating an `IdeObject` and appending it to a parent.

Available since: 3.32

#### Functions

###### ide_object_destroyed

This function sets *object_pointer to NULL if object_pointer != NULL. It’s intended to be used as a callback connected to the “destroy” signal of a object. You connect `ide_object_destroyed()` as a signal handler, and pass the address of your object variable as user data. Then when the object is destroyed, the variable will be set to NULL. Useful for example to avoid multiple copies of the same dialog.

Available since: 3.32

###### ide_object_log

No description available.

###### ide_object_notify_by_pspec

Like `g_object_notify_by_pspec()` if the caller is in the main-thread. Otherwise, the request is deferred to the main thread.

Available since: 3.32

###### ide_object_notify_in_main

This helper will perform a `g_object_notify_by_pspec()` with the added requirement that it is run from the applications main thread.

Available since: 3.32

#### Instance methods

###### ide_object_add

Adds `child` to `self`, with location dependent on `location`.

Available since: 3.32

###### ide_object_append

Inserts `child` as the last child of `self`.

Available since: 3.32

###### ide_object_destroy

No description available.

###### ide_object_ensure_child_typed

Like `ide_object_get_child_typed()` except that it creates an object of `type` if it is missing.

Available since: 3.32

###### ide_object_foreach

Calls `callback` for each child of `self`.

Available since: 3.32

###### ide_object_get_child_typed

Finds the first child of `self` that is of `type`.

Available since: 3.32

###### ide_object_get_children_typed

Gets all children matching `type`.

Available since: 3.32

###### ide_object_get_context

Gets the `IdeContext` for the object.

Available since: 3.32

###### ide_object_get_n_children

Gets the number of children for an object.

Available since: 3.32

###### ide_object_get_nth_child

Gets the `nth` child of `self`.

Available since: 3.32

###### ide_object_get_parent

Gets the parent `IdeObject`, if any.

Available since: 3.32

###### ide_object_get_position

Gets the position of `self` within the parent node.

Available since: 3.32

###### ide_object_in_destruction

No description available.

###### ide_object_insert_after

Inserts `child` into `self`‘s children, directly after `sibling`.

Available since: 3.32

###### ide_object_insert_before

Inserts `child` into `self`‘s children, directly before `sibling`.

Available since: 3.32

###### ide_object_insert_sorted

Locates the proper sibling for `child` by using `func` amongst `self`‘s children `IdeObject`. Those objects must already be sorted.

Available since: 3.32

###### ide_object_is_root

Checks if `self` is root, meaning it has no parent.

Available since: 3.32

###### ide_object_lock

Acquires the lock for `self`. This can be useful when you need to do multi-threaded work with `self` and want to ensure exclusivity.

Available since: 3.32

###### ide_object_prepend

Inserts `child` as the first child of `self`.

Available since: 3.32

###### ide_object_ref_cancellable

Gets a `GCancellable` for the object.

Available since: 3.32

###### ide_object_ref_context

Gets the root `IdeContext` for the object, if any.

Available since: 3.32

###### ide_object_ref_parent

Gets the parent `IdeObject`, if any.

Available since: 3.32

###### ide_object_ref_root

Finds and returns the toplevel object in the tree.

Available since: 3.32

###### ide_object_remove

Removes `child` from `self`.

Available since: 3.32

###### ide_object_repr

This function is similar to Python’s `repr()` which gives a string representation for the object. It is useful when debugging Builder or when writing plugins.

Available since: 3.32

###### ide_object_set_context

No description available.

###### ide_object_set_error_if_destroyed

No description available.

###### ide_object_unlock

Releases a previously acuiqred lock from ide_object_lock().

Available since: 3.32

##### Methods inherited from GObject (43)

Please see GObject for a full list of methods.

#### Properties

###### Ide.Object:cancellable

The “cancellable” property is a `GCancellable` that can be used by operations that will be cancelled when the `IdeObject::destroy` signal is emitted on `self`.

Available since: 3.32

###### Ide.Object:parent

The parent `IdeObject`, if any.

Available since: 3.32

#### Signals

###### Ide.Object::destroy

The “destroy” signal is emitted when the object should destroy itself and cleanup any state that is no longer necessary. This happens when the object has been removed from the because it was requested to be destroyed, or because a parent object is being destroyed.

Available since: 3.32

##### Signals inherited from GObject (1)

###### GObject.Object::notify

The notify signal is emitted on an object when one of its properties has its value set through g_object_set_property(), g_object_set(), et al.

#### Class structure

    struct IdeObjectClass {
      GObjectClass parent_class;
      void (* destroy) (
        IdeObject* self
      );
      void (* add) (
        IdeObject* self,
        IdeObject* sibling,
        IdeObject* child,
        IdeObjectLocation location
      );
      void (* remove) (
        IdeObject* self,
        IdeObject* child
      );
      void (* parent_set) (
        IdeObject* self,
        IdeObject* parent
      );
      gchar* (* repr) (
        IdeObject* self
      );
      None _reserved;

    }

###### Class members

`parent_class` |
    GObjectClass
| No description available.
`destroy` |
    void (* destroy) (
        IdeObject* self
      )
| No description available.
`add` |
    void (* add) (
        IdeObject* self,
        IdeObject* sibling,
        IdeObject* child,
        IdeObjectLocation location
      )
| No description available.
`remove` |
    void (* remove) (
        IdeObject* self,
        IdeObject* child
      )
| No description available.
`parent_set` |
    void (* parent_set) (
        IdeObject* self,
        IdeObject* parent
      )
| No description available.
`repr` |
    gchar* (* repr) (
        IdeObject* self
      )
| No description available.
`_reserved` |
    None
| No description available.

#### Virtual methods

###### Ide.ObjectClass.add

Adds `child` to `self`, with location dependent on `location`.

Available since: 3.32

###### Ide.ObjectClass.destroy

No description available.

###### Ide.ObjectClass.parent_set

No description available.

###### Ide.ObjectClass.remove

Removes `child` from `self`.

Available since: 3.32

###### Ide.ObjectClass.repr

This function is similar to Python’s `repr()` which gives a string representation for the object. It is useful when debugging Builder or when writing plugins.

Available since: 3.32