@new


Description:

public static Object @new (Type type, ...)

Creates a new instance of a Object subtype and sets its properties.

Construction parameters (see g_param_construct, g_param_construct_only) which are not explicitly specified are set to their default values. Any private data for the object is guaranteed to be initialized with zeros, as per g_type_create_instance.

Note that in C, small integer types in variable argument lists are promoted up to `gint` or `guint` as appropriate, and read back accordingly. `gint` is 32 bits on every platform on which GLib is currently supported. This means that you can use C expressions of type `gint` with @new and properties of type `gint` or `guint` or smaller. Specifically, you can use integer literals with these property types.

When using property types of `gint64` or `guint64`, you must ensure that the value that you provide is 64 bit. This means that you should use a cast or make use of the g_gint64_constant or g_guint64_constant macros.

Similarly, `gfloat` is promoted to `gdouble`, so you must ensure that the value you provide is a `gdouble`, even for a property of type `gfloat`.

Since GLib 2.72, all Objects are guaranteed to be aligned to at least the alignment of the largest basic GLib type (typically this is `guint64` or `gdouble`). If you need larger alignment for an element in a Object, you should allocate it on the heap (aligned), or arrange for your Object to be appropriately padded.

Parameters:

...

the value of the first property, followed optionally by more name/value pairs, followed by null

first_property_name

the name of the first property

object_type

the type id of the Object subtype to instantiate

Returns:

a new instance of object_type