File: main.c

package info (click to toggle)
cmake 4.2.3-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 152,456 kB
  • sloc: ansic: 403,896; cpp: 303,920; sh: 4,105; python: 3,583; yacc: 3,106; lex: 1,279; f90: 538; asm: 471; lisp: 375; cs: 270; java: 266; fortran: 239; objc: 215; perl: 213; xml: 198; makefile: 111; javascript: 83; pascal: 63; tcl: 55; php: 25; ruby: 22
file content (70 lines) | stat: -rw-r--r-- 1,957 bytes parent folder | download | duplicates (9)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
/* Taken from https://developer.gnome.org/gobject/stable/chapter-gobject.html
 */

#include <glib-object.h>

#define MAMAN_TYPE_BAR (maman_bar_get_type())
#define MAMAN_BAR(obj)                                                        \
  (G_TYPE_CHECK_INSTANCE_CAST((obj), MAMAN_TYPE_BAR, MamanBar))
#define MAMAN_IS_BAR(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), MAMAN_TYPE_BAR))
#define MAMAN_BAR_CLASS(klass)                                                \
  (G_TYPE_CHECK_CLASS_CAST((klass), MAMAN_TYPE_BAR, MamanBarClass))
#define MAMAN_IS_BAR_CLASS(klass)                                             \
  (G_TYPE_CHECK_CLASS_TYPE((klass), MAMAN_TYPE_BAR))
#define MAMAN_BAR_GET_CLASS(obj)                                              \
  (G_TYPE_INSTANCE_GET_CLASS((obj), MAMAN_TYPE_BAR, MamanBarClass))

typedef struct _MamanBar MamanBar;
typedef struct _MamanBarClass MamanBarClass;

struct _MamanBar
{
  GObject parent_instance;

  /* instance members */
};

struct _MamanBarClass
{
  GObjectClass parent_class;

  /* class members */
};

/* will create maman_bar_get_type and set maman_bar_parent_class */
G_DEFINE_TYPE(MamanBar, maman_bar, G_TYPE_OBJECT);

static GObject* maman_bar_constructor(GType gtype, guint n_properties,
                                      GObjectConstructParam* properties)
{
  GObject* obj;

  {
    /* Always chain up to the parent constructor */
    obj = G_OBJECT_CLASS(maman_bar_parent_class)
            ->constructor(gtype, n_properties, properties);
  }

  /* update the object state depending on constructor properties */

  return obj;
}

static void maman_bar_class_init(MamanBarClass* klass)
{
  GObjectClass* gobject_class = G_OBJECT_CLASS(klass);

  gobject_class->constructor = maman_bar_constructor;
}

static void maman_bar_init(MamanBar* self)
{
  /* initialize the object */
}

int main(int argc, char* argv[])
{
  MamanBar* bar = g_object_new(MAMAN_TYPE_BAR, NULL);
  g_object_unref(bar);
  return 0;
}