summaryrefslogtreecommitdiff
path: root/tests/glibmm_object_move/main.cc
diff options
context:
space:
mode:
Diffstat (limited to 'tests/glibmm_object_move/main.cc')
-rw-r--r--tests/glibmm_object_move/main.cc55
1 files changed, 1 insertions, 54 deletions
diff --git a/tests/glibmm_object_move/main.cc b/tests/glibmm_object_move/main.cc
index 4f34cb73..1383b74e 100644
--- a/tests/glibmm_object_move/main.cc
+++ b/tests/glibmm_object_move/main.cc
@@ -1,61 +1,8 @@
+#include "../glibmm_object/test_derived_object.h"
#include <glibmm.h>
#include <iostream>
#include <stdlib.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_;
-};
-
static void
test_object_move_constructor()
{