Gjsify LogoGjsify Logo

The class structure for the GObject type.

// Example of implementing a singleton using a constructor.
static MySingleton *the_singleton = NULL;

static GObject*
my_singleton_constructor (GType type,
guint n_construct_params,
GObjectConstructParam *construct_params)
{
GObject *object;

if (!the_singleton)
{
object = G_OBJECT_CLASS (parent_class)->constructor (type,
n_construct_params,
construct_params);
the_singleton = MY_SINGLETON (object);
}
else
object = g_object_ref (G_OBJECT (the_singleton));

return object;
}
record

Hierarchy

  • ObjectClass

Index

Constructors

Properties

g_type_class: GObject.TypeClass

the parent class

field
name: string

Methods

  • Installs new properties from an array of #GParamSpecs.

    All properties should be installed during the class initializer. It is possible to install properties after that, but doing so is not recommend, and specifically, is not guaranteed to be thread-safe vs. use of properties on the same type on other threads.

    The property id of each property is the index of each #GParamSpec in the pspecs array.

    The property id of 0 is treated specially by #GObject and it should not be used to store a #GParamSpec.

    This function should be used if you plan to use a static array of #GParamSpecs and g_object_notify_by_pspec(). For instance, this class initialization:

    enum {
    PROP_0, PROP_FOO, PROP_BAR, N_PROPERTIES
    };

    static GParamSpec *obj_properties[N_PROPERTIES] = { NULL, };

    static void
    my_object_class_init (MyObjectClass *klass)
    {
    GObjectClass *gobject_class = G_OBJECT_CLASS (klass);

    obj_properties[PROP_FOO] =
    g_param_spec_int ("foo", "Foo", "Foo",
    -1, G_MAXINT,
    0,
    G_PARAM_READWRITE);

    obj_properties[PROP_BAR] =
    g_param_spec_string ("bar", "Bar", "Bar",
    NULL,
    G_PARAM_READWRITE);

    gobject_class->set_property = my_object_set_property;
    gobject_class->get_property = my_object_get_property;
    g_object_class_install_properties (gobject_class,
    N_PROPERTIES,
    obj_properties);
    }

    allows calling g_object_notify_by_pspec() to notify of property changes:

    void
    my_object_set_foo (MyObject *self, gint foo)
    {
    if (self->foo != foo)
    {
    self->foo = foo;
    g_object_notify_by_pspec (G_OBJECT (self), obj_properties[PROP_FOO]);
    }
    }

    Parameters

    Returns void

  • Installs a new property.

    All properties should be installed during the class initializer. It is possible to install properties after that, but doing so is not recommend, and specifically, is not guaranteed to be thread-safe vs. use of properties on the same type on other threads.

    Note that it is possible to redefine a property in a derived class, by installing a property with the same name. This can be useful at times, e.g. to change the range of allowed values or the default value.

    Parameters

    • oclass: Function | GObject.Object | GType<unknown>
    • property_id: number

      the id for the new property

    • pspec: ParamSpec

      the #GParamSpec for the new property

    Returns void

  • override_property(oclass: Function | GObject.Object | GType<unknown>, property_id: number, name: string): void
  • Registers property_id as referring to a property with the name name in a parent class or in an interface implemented by oclass. This allows this class to "override" a property implementation in a parent class or to provide the implementation of a property from an interface.

    Internally, overriding is implemented by creating a property of type #GParamSpecOverride; generally operations that query the properties of the object class, such as g_object_class_find_property() or g_object_class_list_properties() will return the overridden property. However, in one case, the construct_properties argument of the constructor virtual function, the #GParamSpecOverride is passed instead, so that the param_id field of the #GParamSpec will be correct. For virtually all uses, this makes no difference. If you need to get the overridden property, you can call g_param_spec_get_redirect_target().

    Parameters

    • oclass: Function | GObject.Object | GType<unknown>
    • property_id: number

      the new property ID

    • name: string

      the name of a property registered in a parent class or in an interface of this class.

    Returns void

Legend

  • Module
  • Object literal
  • Variable
  • Function
  • Function with type parameter
  • Index signature
  • Type alias
  • Type alias with type parameter
  • Enumeration
  • Enumeration member
  • Property
  • Method
  • Interface
  • Interface with type parameter
  • Constructor
  • Property
  • Method
  • Index signature
  • Class
  • Class with type parameter
  • Constructor
  • Property
  • Method
  • Accessor
  • Index signature
  • Inherited constructor
  • Inherited property
  • Inherited method
  • Inherited accessor
  • Protected property
  • Protected method
  • Protected accessor
  • Private property
  • Private method
  • Private accessor
  • Static property
  • Static method