summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJosé Alburquerque <jaalburqu@svn.gnome.org>2011-09-22 15:57:18 -0400
committerJosé Alburquerque <jaalburqu@svn.gnome.org>2011-09-22 17:04:42 -0400
commit450b1b76756d64954cbcce92bb367f8f194c4f72 (patch)
tree189497f4b3696423ce7b59a652205c08234de412
parentcef8ad38f68f16197f653e5a1dc1a646cfb11458 (diff)
downloadglibmm-450b1b76756d64954cbcce92bb367f8f194c4f72.tar.gz
Action, ActionGroup: Wrap virtual functions.
* gio/src/gio_vfuncs.defs: Add virtual function definitions for the Action and ActionGroup classes. * gio/src/action.hg: * gio/src/actiongroup.hg: Wrap the virtual functions. * tools/m4/convert_gio.m4: Correct a VariantType return conversion.
-rw-r--r--ChangeLog10
-rw-r--r--gio/src/action.hg19
-rw-r--r--gio/src/actiongroup.hg18
-rw-r--r--gio/src/gio_vfuncs.defs121
-rw-r--r--tools/m4/convert_gio.m42
5 files changed, 167 insertions, 3 deletions
diff --git a/ChangeLog b/ChangeLog
index 669ed056..66306144 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,15 @@
2011-09-22 José Alburquerque <jaalburqu@svn.gnome.org>
+ Action, ActionGroup: Wrap virtual functions.
+
+ * gio/src/gio_vfuncs.defs: Add virtual function definitions for the
+ Action and ActionGroup classes.
+ * gio/src/action.hg:
+ * gio/src/actiongroup.hg: Wrap the virtual functions.
+ * tools/m4/convert_gio.m4: Correct a VariantType return conversion.
+
+2011-09-22 José Alburquerque <jaalburqu@svn.gnome.org>
+
giomm: Add SimpleActionGroup.
* gio/src/simpleactiongroup.{ccg,hg}:
diff --git a/gio/src/action.hg b/gio/src/action.hg
index e8d9e4d2..3d92bfe2 100644
--- a/gio/src/action.hg
+++ b/gio/src/action.hg
@@ -83,7 +83,24 @@ public:
_WRAP_PROPERTY("state", Glib::VariantBase)
_WRAP_PROPERTY("state-type", Glib::VariantType)
-//TODO: Wrap virtual functions.
+#m4 _CONVERSION(`Glib::ustring',`const gchar*',`$3.c_str()')
+ _WRAP_VFUNC(Glib::ustring get_name() const, "get_name")
+
+#m4 _CONVERSION(`Glib::VariantType',`const GVariantType*',`$3.gobj_copy()')
+ _WRAP_VFUNC(Glib::VariantType get_parameter_type() const, "get_parameter_type")
+ _WRAP_VFUNC(Glib::VariantType get_state_type() const, "get_state_type")
+
+#m4 _CONVERSION(`Glib::VariantBase',`GVariant*',`$3.gobj_copy()')
+
+ _WRAP_VFUNC(Glib::VariantBase get_state_hint() const, "get_state_hint")
+
+ _WRAP_VFUNC(bool get_enabled() const, "get_enabled")
+
+ _WRAP_VFUNC(Glib::VariantBase get_state() const, "get_state")
+
+#m4 _CONVERSION(`GVariant*',`const Glib::VariantBase&',`Glib::wrap($3, true)')
+ _WRAP_VFUNC(void change_state(const Glib::VariantBase& value), "change_state")
+ _WRAP_VFUNC(void activate(const Glib::VariantBase& parameter), "activate")
};
} // namespace Gio
diff --git a/gio/src/actiongroup.hg b/gio/src/actiongroup.hg
index 0e685008..c3853091 100644
--- a/gio/src/actiongroup.hg
+++ b/gio/src/actiongroup.hg
@@ -78,7 +78,23 @@ public:
#m4 _CONVERSION(`GVariant*', `const Glib::VariantBase&', `Glib::wrap($3, true)')
_WRAP_SIGNAL(void action_state_changed(const Glib::ustring& action_name, const Glib::VariantBase& value), "action-state-changed")
-//TODO: Wrap virtual functions.
+ _WRAP_VFUNC(bool has_action(const Glib::ustring& name) const, "has_action")
+
+#m4 _CONVERSION(`std::vector<Glib::ustring>',`gchar**',`const_cast<gchar**>(Glib::ArrayHandler<Glib::ustring>::vector_to_array($3).data())')
+ _WRAP_VFUNC(std::vector<Glib::ustring> list_actions() const, "list_actions")
+
+ _WRAP_VFUNC(bool get_action_enabled(const Glib::ustring& name) const, "get_action_enabled")
+
+#m4 _CONVERSION(`Glib::VariantType',`const GVariantType*',`$3.gobj_copy()')
+ _WRAP_VFUNC(Glib::VariantType get_action_parameter_type(const Glib::ustring& name) const, "get_action_parameter_type")
+ _WRAP_VFUNC(Glib::VariantType get_action_state_type(const Glib::ustring& name) const, "get_action_state_type")
+
+#m4 _CONVERSION(`Glib::VariantBase',`GVariant*',`$3.gobj_copy()')
+ _WRAP_VFUNC(Glib::VariantBase get_action_state_hint(const Glib::ustring& name) const, "get_action_state_hint")
+ _WRAP_VFUNC(Glib::VariantBase get_action_state(const Glib::ustring& name) const, "get_action_state")
+
+ _WRAP_VFUNC(void change_action_state(const Glib::ustring& name, const Glib::VariantBase& value), "change_action_state")
+ _WRAP_VFUNC(void activate_action(const Glib::ustring& name, const Glib::VariantBase& parameter), "activate_action")
};
} // namespace Gio
diff --git a/gio/src/gio_vfuncs.defs b/gio/src/gio_vfuncs.defs
index 65da5a1f..86228b31 100644
--- a/gio/src/gio_vfuncs.defs
+++ b/gio/src/gio_vfuncs.defs
@@ -3,6 +3,127 @@
; define-vfunc is g*mm-specific
; These are hand-written.
+; GAction
+
+(define-vfunc get_name
+ (of-object "GAction")
+ (return-type "const-gchar*")
+)
+
+(define-vfunc get_parameter_type
+ (of-object "GAction")
+ (return-type "const-GVariantType*")
+)
+
+(define-vfunc get_state_type
+ (of-object "GAction")
+ (return-type "const-GVariantType*")
+)
+
+(define-vfunc get_state_hint
+ (of-object "GAction")
+ (return-type "GVariant*")
+)
+
+(define-vfunc get_enabled
+ (of-object "GAction")
+ (return-type "gboolean")
+)
+
+(define-vfunc get_state
+ (of-object "GAction")
+ (return-type "GVariant*")
+)
+
+(define-vfunc change_state
+ (of-object "GAction")
+ (return-type "void")
+ (parameters
+ '("GVariant*" "value")
+ )
+)
+
+(define-vfunc activate
+ (of-object "GAction")
+ (return-type "void")
+ (parameters
+ '("GVariant*" "parameter")
+ )
+)
+
+; GActionGroup
+
+(define-vfunc has_action
+ (of-object "GActionGroup")
+ (return-type "gboolean")
+ (parameters
+ '("const-gchar*" "action_name")
+ )
+)
+
+(define-vfunc list_actions
+ (of-object "GActionGroup")
+ (return-type "gchar**")
+)
+
+(define-vfunc get_action_enabled
+ (of-object "GActionGroup")
+ (return-type "gboolean")
+ (parameters
+ '("const-gchar*" "action_name")
+ )
+)
+
+(define-vfunc get_action_parameter_type
+ (of-object "GActionGroup")
+ (return-type "const-GVariantType*")
+ (parameters
+ '("const-gchar*" "action_name")
+ )
+)
+
+(define-vfunc get_action_state_type
+ (of-object "GActionGroup")
+ (return-type "const-GVariantType*")
+ (parameters
+ '("const-gchar*" "action_name")
+ )
+)
+
+(define-vfunc get_action_state_hint
+ (of-object "GActionGroup")
+ (return-type "GVariant*")
+ (parameters
+ '("const-gchar*" "action_name")
+ )
+)
+
+(define-vfunc get_action_state
+ (of-object "GActionGroup")
+ (return-type "GVariant*")
+ (parameters
+ '("const-gchar*" "action_name")
+ )
+)
+
+(define-vfunc change_action_state
+ (of-object "GActionGroup")
+ (return-type "void")
+ (parameters
+ '("const-gchar*" "action_name")
+ '("GVariant*" "value")
+ )
+)
+
+(define-vfunc activate_action
+ (of-object "GActionGroup")
+ (return-type "void")
+ (parameters
+ '("const-gchar*" "action_name")
+ '("GVariant*" "parameter")
+ )
+)
+
; GApplication
(define-vfunc local_command_line
diff --git a/tools/m4/convert_gio.m4 b/tools/m4/convert_gio.m4
index 77e74fbc..a585f934 100644
--- a/tools/m4/convert_gio.m4
+++ b/tools/m4/convert_gio.m4
@@ -225,7 +225,7 @@ _CONVERSION(`const Glib::VariantBase&',`GVariant*',`const_cast<GVariant*>(($3).g
_CONVERSION(`const Glib::VariantContainerBase&',`GVariant*',`const_cast<GVariant*>(($3).gobj())')
#VariantType
-_CONVERSION(`const GVariantType*',`Glib::VariantType',`Glib::wrap(const_cast<GVariantType*>($3), true)')
+_CONVERSION(`const GVariantType*',`Glib::VariantType',`Glib::wrap(const_cast<GVariantType*>($3), false)')
#Volume
_CONVERSION(`GVolume*',`Glib::RefPtr<Volume>',`Glib::wrap($3)')