docs: Move the GObject SECTION

Move the contents into the struct docs.

Helps: #3037
This commit is contained in:
Matthias Clasen 2023-09-25 13:37:36 -04:00 committed by Philip Withnall
parent 89fe3bc4e4
commit f471ebd300
2 changed files with 21 additions and 28 deletions

View File

@ -38,22 +38,30 @@
#include "gconstructor.h" #include "gconstructor.h"
/** /**
* SECTION:objects * GObject:
* @title: GObject
* @short_description: The base object type
* @see_also: #GParamSpecObject, g_param_spec_object()
* *
* GObject is the fundamental type providing the common attributes and * The base object type.
*
* `GObject` is the fundamental type providing the common attributes and
* methods for all object types in GTK, Pango and other libraries * methods for all object types in GTK, Pango and other libraries
* based on GObject. The GObject class provides methods for object * based on GObject. The `GObject` class provides methods for object
* construction and destruction, property access methods, and signal * construction and destruction, property access methods, and signal
* support. Signals are described in detail [here][gobject-Signals]. * support. Signals are described in detail [here][gobject-Signals].
* *
* For a tutorial on implementing a new GObject class, see [How to define and * For a tutorial on implementing a new `GObject` class, see [How to define and
* implement a new GObject][howto-gobject]. For a list of naming conventions for * implement a new GObject](tutorial.html#how-to-define-and-implement-a-new-gobject).
* GObjects and their methods, see the [GType conventions][gtype-conventions]. * For a list of naming conventions for GObjects and their methods, see the
* For the high-level concepts behind GObject, read [Instantiatable classed types: * [GType conventions](concepts.html#conventions). For the high-level concepts
* Objects][gtype-instantiatable-classed]. * behind GObject, read
* [Instantiatable classed types: Objects](concepts.html#instantiatable-classed-types-objects).
*
* Since GLib 2.72, all `GObject`s 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 `GObject`, you
* should allocate it on the heap (aligned), or arrange for your `GObject` to be
* appropriately padded. This guarantee applies to the `GObject` (or derived)
* struct, the `GObjectClass` (or derived) struct, and any private data allocated
* by `G_ADD_PRIVATE()`.
*/ */
/* --- macros --- */ /* --- macros --- */

View File

@ -248,22 +248,7 @@ typedef void (*GObjectFinalizeFunc) (GObject *object);
*/ */
typedef void (*GWeakNotify) (gpointer data, typedef void (*GWeakNotify) (gpointer data,
GObject *where_the_object_was); GObject *where_the_object_was);
/**
* GObject:
*
* The base object type.
*
* All the fields in the `GObject` structure are private to the implementation
* and should never be accessed directly.
*
* Since GLib 2.72, all #GObjects 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 #GObject, you
* should allocate it on the heap (aligned), or arrange for your #GObject to be
* appropriately padded. This guarantee applies to the #GObject (or derived)
* struct, the #GObjectClass (or derived) struct, and any private data allocated
* by G_ADD_PRIVATE().
*/
struct _GObject struct _GObject
{ {
GTypeInstance g_type_instance; GTypeInstance g_type_instance;