3
G_DEFINE_TYPE (TestAnimal, test_animal, G_TYPE_OBJECT)
4
//G_DEFINE_TYPE_WITH_PRIVATE (TestAnimal, test_animal, G_TYPE_OBJECT)
7
struct _TestAnimalPrivate {
12
/******************************************************************************/
14
test_animal_real_make_sound (TestAnimal * self);
17
test_animal_real_move (TestAnimal * self, gint x, gint y);
18
/******************************************************************************/
22
return g_object_new (TEST_TYPE_ANIMAL, NULL);
26
test_animal_init (TestAnimal * self) {
31
test_animal_class_init (TestAnimalClass * klass) {
32
GObjectClass * obj_class = G_OBJECT_CLASS (klass);
34
klass->make_sound = test_animal_real_make_sound;
35
klass->move = test_animal_real_move;
40
test_animal_make_sound (TestAnimal * self) {
41
g_return_if_fail (TEST_IS_ANIMAL (self));
42
TestAnimalClass * klass = TEST_ANIMAL_GET_CLASS (self);
44
klass->make_sound (self);
48
test_animal_move (TestAnimal * self, gint x, gint y) {
49
g_return_if_fail (TEST_IS_ANIMAL (self));
51
TestAnimalClass * klass = TEST_ANIMAL_GET_CLASS (self);
53
klass->move (self, x, y);
56
/******************************************************************************/
58
test_animal_real_make_sound (TestAnimal * self) {
60
g_print ("This animal can't make a sound... :-( \n");
64
test_animal_real_move (TestAnimal * self, gint x, gint y) {
66
g_print ("This animal can't move to %i, %i... :-( \n", x, y);