[gnome-builder/wip/loganek/libidemm] libidemm: wrap Ide::Object
- From: Marcin Kolny <mkolny src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-builder/wip/loganek/libidemm] libidemm: wrap Ide::Object
- Date: Sun, 10 Apr 2016 21:03:46 +0000 (UTC)
commit e7293cfaf6beec82e514cab864e2e3fccc443ed2
Author: Marcin Kolny <marcin kolny gmail com>
Date: Sun Apr 10 21:16:40 2016 +0200
libidemm: wrap Ide::Object
libidemm/.gitignore | 2 +
libidemm/src/filelist.am | 1 +
libidemm/src/libide_signals.defs | 18 ++++++++
libidemm/src/object.ccg | 30 +++++++++++++
libidemm/src/object.hg | 44 ++++++++++++++++++++
libidemm/tools/Makefile.am | 2 +-
.../tools/extra_defs_gen/generate_defs_libide.cc | 3 +-
libidemm/tools/m4/convert_libide.m4 | 2 +
8 files changed, 100 insertions(+), 2 deletions(-)
---
diff --git a/libidemm/.gitignore b/libidemm/.gitignore
index 0ad1aad..6b6ae5c 100644
--- a/libidemm/.gitignore
+++ b/libidemm/.gitignore
@@ -38,6 +38,8 @@ stamp-h2
/idemm/application.h
/idemm/applicationaddin.cc
/idemm/applicationaddin.h
+/idemm/object.cc
+/idemm/object.h
/idemm/recentprojects.cc
/idemm/recentprojects.h
/idemm/wrap_init.cc
diff --git a/libidemm/src/filelist.am b/libidemm/src/filelist.am
index 4c1f788..2d1af9b 100644
--- a/libidemm/src/filelist.am
+++ b/libidemm/src/filelist.am
@@ -11,6 +11,7 @@ idemm_files_defs = \
idemm_files_hg = \
application.hg \
applicationaddin.hg \
+ object.hg \
recentprojects.hg
idemm_files_ccg = $(idemm_files_hg:.hg=.ccg)
diff --git a/libidemm/src/libide_signals.defs b/libidemm/src/libide_signals.defs
index e69de29..a54dacf 100644
--- a/libidemm/src/libide_signals.defs
+++ b/libidemm/src/libide_signals.defs
@@ -0,0 +1,18 @@
+;; From IdeApplication
+
+;; From IdeObject
+
+(define-signal destroy
+ (of-object "IdeObject")
+ (return-type "void")
+ (when "last")
+)
+
+(define-property context
+ (of-object "IdeObject")
+ (prop-type "GParamObject")
+ (docs "The context that owns the object.")
+ (readable #t)
+ (writable #t)
+ (construct-only #t)
+)
diff --git a/libidemm/src/object.ccg b/libidemm/src/object.ccg
new file mode 100644
index 0000000..2331758
--- /dev/null
+++ b/libidemm/src/object.ccg
@@ -0,0 +1,30 @@
+/* object.ccg
+ *
+ * Copyright (C) 2016 Marcin Kolny <marcin kolny gmail com>
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+namespace Ide {
+
+Glib::RefPtr<Ide::Object> Object::create_finish(const Glib::RefPtr<Gio::AsyncResult>& result)
+{
+ GError* gerror = nullptr;
+ Glib::RefPtr<Ide::Object> retvalue = Glib::wrap(ide_object_new_finish(Glib::unwrap(result), &(gerror)),
true);
+ if(gerror)
+ ::Glib::Error::throw_exception(gerror);
+ return retvalue;
+}
+
+}
diff --git a/libidemm/src/object.hg b/libidemm/src/object.hg
new file mode 100644
index 0000000..b17e1cc
--- /dev/null
+++ b/libidemm/src/object.hg
@@ -0,0 +1,44 @@
+/* object.hg
+ *
+ * Copyright (C) 2016 Marcin Kolny <marcin kolny gmail com>
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include <glibmm/object.h>
+#include <giomm/asyncresult.h>
+
+#include <ide.h>
+
+_DEFS(idemm, libide)
+_PINCLUDE(glibmm/private/object_p.h)
+
+namespace Ide {
+
+class Object : public Glib::Object
+{
+protected:
+ _CLASS_GOBJECT(Object, IdeObject, IDE_OBJECT, Glib::Object, GObject)
+
+public:
+ static Glib::RefPtr<Ide::Object> create_finish(const Glib::RefPtr<Gio::AsyncResult>& result);
+
+ _WRAP_METHOD(bool hold(), ide_object_hold)
+ _WRAP_METHOD(void release(), ide_object_release)
+ _WRAP_METHOD(void notify_in_main(GParamSpec *pspec), ide_object_notify_in_main)
+
+ _WRAP_SIGNAL(void destroy(), "destroy")
+};
+
+}
diff --git a/libidemm/tools/Makefile.am b/libidemm/tools/Makefile.am
index 2c43a6d..1d4ce8d 100644
--- a/libidemm/tools/Makefile.am
+++ b/libidemm/tools/Makefile.am
@@ -8,7 +8,7 @@ noinst_PROGRAMS = extra_defs_gen/generate_defs_libide
extra_defs_gen_generate_defs_libide_SOURCES = extra_defs_gen/generate_defs_libide.cc
extra_defs_gen_generate_defs_libide_LDADD = \
- $(IDEMM_LIBS) -lglibmm_generate_extra_defs-2.4 -L../../libide -lide-1.0
+ $(IDEMM_LIBS) $(LIBIDE_LIBS) -lglibmm_generate_extra_defs-2.4 -L../../libide -lide-1.0
AM_CPPFLAGS = -I$(top_builddir) $(LIBIDE_CFLAGS) $(IDEMM_CFLAGS) -I../../libide -I../../contrib/pnl
diff --git a/libidemm/tools/extra_defs_gen/generate_defs_libide.cc
b/libidemm/tools/extra_defs_gen/generate_defs_libide.cc
index 75cbc94..f5298d4 100644
--- a/libidemm/tools/extra_defs_gen/generate_defs_libide.cc
+++ b/libidemm/tools/extra_defs_gen/generate_defs_libide.cc
@@ -28,7 +28,8 @@ bool libide_type_is_a_pointer(GType gtype)
int main (int argc, char *argv[])
{
- std::cout << get_defs(IDE_TYPE_APPLICATION, libide_type_is_a_pointer);
+ std::cout << get_defs(IDE_TYPE_APPLICATION, libide_type_is_a_pointer)
+ << get_defs(IDE_TYPE_OBJECT, libide_type_is_a_pointer);
return 0;
}
diff --git a/libidemm/tools/m4/convert_libide.m4 b/libidemm/tools/m4/convert_libide.m4
index f403de6..abc7ce7 100644
--- a/libidemm/tools/m4/convert_libide.m4
+++ b/libidemm/tools/m4/convert_libide.m4
@@ -43,3 +43,5 @@ dnl Ide::Application
_CONVERSION(`const Glib::RefPtr<Ide::Application>&',`IdeApplication*',__CONVERT_REFPTR_TO_P)
_CONVERSION(`IdeApplication*',`const Glib::RefPtr<Ide::Application>&',Glib::wrap($3, true))
+dnl Ide::Object
+_CONVERSION(`IdeObject*',`Glib::RefPtr<Ide::Object>',Glib::wrap($3, true))
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]