eolian_mono: fix to support event info which is a type defined in eo

Summary:
Previously, if event info was not structure and it was a type defined in
eo, then the type value was not passed to the event info correctly.

e.g. if event info was Efl.Ui.AlertPopupButton enum type, then
     default(Efl.Ui.AlertPopupButton) was always passed to event info.

Now, the given type value is passed to the event info correctly.

Reviewers: felipealmeida, lauromoura, vitor.sousa, bu5hm4n

Reviewed By: vitor.sousa

Subscribers: cedric, #reviewers, herb, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D9159
This commit is contained in:
Jaehyun Cho 2019-06-27 14:29:13 -03:00 committed by Vitor Sousa
parent e4a5374d3e
commit 03936c0513
1 changed files with 7 additions and 1 deletions

View File

@ -102,7 +102,13 @@ struct unpack_event_args_visitor
if (eina::optional<bool> b = call_match(match_table, filter_func, accept_func))
return *b;
else
return as_generator("default(" + arg_type + ")").generate(sink, attributes::unused, *context);
{
// Type defined in Eo is passed here. (e.g. enum type defined in Eo)
// Uses conversion from IntPtr with type casting to the given type.
return as_generator(
" (" << arg_type << ")evt.Info"
).generate(sink, attributes::unused, *context);
}
}
bool operator()(grammar::attributes::klass_name const& cls) const
{