From 450b1b76756d64954cbcce92bb367f8f194c4f72 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Alburquerque?= Date: Thu, 22 Sep 2011 15:57:18 -0400 Subject: 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. --- ChangeLog | 10 ++++ gio/src/action.hg | 19 +++++++- gio/src/actiongroup.hg | 18 ++++++- gio/src/gio_vfuncs.defs | 121 ++++++++++++++++++++++++++++++++++++++++++++++++ tools/m4/convert_gio.m4 | 2 +- 5 files changed, 167 insertions(+), 3 deletions(-) diff --git a/ChangeLog b/ChangeLog index 669ed056..66306144 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,13 @@ +2011-09-22 José Alburquerque + + 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 giomm: Add SimpleActionGroup. 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',`gchar**',`const_cast(Glib::ArrayHandler::vector_to_array($3).data())') + _WRAP_VFUNC(std::vector 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(($3).g _CONVERSION(`const Glib::VariantContainerBase&',`GVariant*',`const_cast(($3).gobj())') #VariantType -_CONVERSION(`const GVariantType*',`Glib::VariantType',`Glib::wrap(const_cast($3), true)') +_CONVERSION(`const GVariantType*',`Glib::VariantType',`Glib::wrap(const_cast($3), false)') #Volume _CONVERSION(`GVolume*',`Glib::RefPtr',`Glib::wrap($3)') -- cgit v1.2.1