blob: 4c506b2bdef03d626c94431accd985fa29ea60f5 (
plain)
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
|
#ifndef _GLIBMM_TEST_DERIVED_OBJECT_H
#define _GLIBMM_TEST_DERIVED_OBJECT_H
#include <glibmm.h>
// A basic derived GObject, just to test Glib::Object.
typedef struct
{
GObject parent;
} TestDerived;
typedef struct
{
GObjectClass parent;
} TestDerivedClass;
#define TEST_TYPE_DERIVED (test_derived_get_type())
#define TEST_DERIVED(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), TEST_TYPE_DERIVED, TestDerived))
#define TEST_DERIVED_CLASS(cls) \
(G_TYPE_CHECK_CLASS_CAST((cls), TEST_TYPE_DERIVED, TestDerivedClass))
#define TEST_DERIVED_GET_CLASS(obj) \
(G_TYPE_INSTANCE_GET_CLASS((obj), TEST_TYPE_DERIVED, TestDerivedClass))
static void
test_derived_class_init(TestDerivedClass*)
{
}
static void
test_derived_init(TestDerived*)
{
}
G_DEFINE_TYPE(TestDerived, test_derived, G_TYPE_OBJECT)
class DerivedObject : public Glib::Object
{
public:
// A real application would never make the constructor public.
// It would instead have a protected constructor and a public create() method.
DerivedObject(GObject* gobject, int i) : Glib::Object(gobject), i_(i) {}
DerivedObject(const DerivedObject& src) = delete;
DerivedObject& operator=(const DerivedObject& src) = delete;
DerivedObject(DerivedObject&& src) noexcept : Glib::Object(std::move(src)), i_(std::move(src.i_))
{
}
DerivedObject& operator=(DerivedObject&& src) noexcept
{
Glib::Object::operator=(std::move(src));
i_ = std::move(src.i_);
return *this;
}
int i_;
};
#endif // _GLIBMM_TEST_DERIVED_OBJECT_H
|