namespace elm { 
inline ::efl::eolian::return_traits< ::elm::widget::Item>::type Menu::selected_item_get() const
{
    ::Elm_Widget_Item* __return_value =  ::elm_obj_menu_selected_item_get(this->_eo_ptr());
   return ::efl::eolian::convert_to_return< ::efl::eolian::return_traits< ::elm::widget::Item>::type>(__return_value);
}
inline ::efl::eolian::return_traits<  ::efl::eina::range_list< ::elm::widget::Item>>::type Menu::items_get() const
{
   const Eina_List * __return_value =  ::elm_obj_menu_items_get(this->_eo_ptr());
   return ::efl::eolian::convert_to_return< ::efl::eolian::return_traits<  ::efl::eina::range_list< ::elm::widget::Item>>::type>(__return_value);
}
inline ::efl::eolian::return_traits< ::elm::widget::Item>::type Menu::first_item_get() const
{
    ::Elm_Widget_Item* __return_value =  ::elm_obj_menu_first_item_get(this->_eo_ptr());
   return ::efl::eolian::convert_to_return< ::efl::eolian::return_traits< ::elm::widget::Item>::type>(__return_value);
}
inline ::efl::eolian::return_traits< ::elm::widget::Item>::type Menu::last_item_get() const
{
    ::Elm_Widget_Item* __return_value =  ::elm_obj_menu_last_item_get(this->_eo_ptr());
   return ::efl::eolian::convert_to_return< ::efl::eolian::return_traits< ::elm::widget::Item>::type>(__return_value);
}
inline ::efl::eolian::return_traits<void>::type Menu::move( ::efl::eolian::in_traits<Evas_Coord>::type x,  ::efl::eolian::in_traits<Evas_Coord>::type y) const
{
    ::elm_obj_menu_move(this->_eo_ptr()
      ,  ::efl::eolian::convert_to_c<Evas_Coord,  ::efl::eolian::in_traits<Evas_Coord>::type>(x)
      ,  ::efl::eolian::convert_to_c<Evas_Coord,  ::efl::eolian::in_traits<Evas_Coord>::type>(y));
}
inline ::efl::eolian::return_traits< ::elm::widget::Item>::type Menu::item_add( ::efl::eolian::in_traits< ::elm::widget::Item>::type parent,  ::efl::eolian::in_traits< ::efl::eina::optional< ::efl::eina::string_view>>::type icon,  ::efl::eolian::in_traits< ::efl::eina::string_view>::type label,  ::efl::eolian::in_traits< ::efl::eina::optional<Evas_Smart_Cb>>::type func,  ::efl::eolian::in_traits<void const*>::type data) const
{
    ::Elm_Widget_Item* __return_value =  ::elm_obj_menu_item_add(this->_eo_ptr()
      ,  ::efl::eolian::convert_to_c< ::Elm_Widget_Item*,  ::efl::eolian::in_traits< ::elm::widget::Item>::type>(parent)
      ,  ::efl::eolian::convert_to_c<const char *,  ::efl::eolian::in_traits< ::efl::eina::optional< ::efl::eina::string_view>>::type>(icon)
      ,  ::efl::eolian::convert_to_c<const char *,  ::efl::eolian::in_traits< ::efl::eina::string_view>::type>(label)
      ,  ::efl::eolian::convert_to_c<Evas_Smart_Cb,  ::efl::eolian::in_traits< ::efl::eina::optional<Evas_Smart_Cb>>::type>(func)
      ,  ::efl::eolian::convert_to_c<const void *,  ::efl::eolian::in_traits<void const*>::type>(data));
   return ::efl::eolian::convert_to_return< ::efl::eolian::return_traits< ::elm::widget::Item>::type>(__return_value);
}
inline ::efl::eolian::return_traits<void>::type Menu::close() const
{
    ::elm_obj_menu_close(this->_eo_ptr());
}
inline ::efl::eolian::return_traits< ::elm::widget::Item>::type Menu::item_separator_add( ::efl::eolian::in_traits< ::elm::widget::Item>::type parent) const
{
    ::Elm_Widget_Item* __return_value =  ::elm_obj_menu_item_separator_add(this->_eo_ptr()
      ,  ::efl::eolian::convert_to_c< ::Elm_Widget_Item*,  ::efl::eolian::in_traits< ::elm::widget::Item>::type>(parent));
   return ::efl::eolian::convert_to_return< ::efl::eolian::return_traits< ::elm::widget::Item>::type>(__return_value);
}
} 
namespace eo_cxx {
namespace elm { 
inline ::efl::eolian::return_traits< ::elm::widget::Item>::type Menu::selected_item_get() const
{
    ::Elm_Widget_Item* __return_value =  ::elm_obj_menu_selected_item_get(this->_eo_ptr());
   return ::efl::eolian::convert_to_return< ::efl::eolian::return_traits< ::elm::widget::Item>::type>(__return_value);
}
inline ::efl::eolian::return_traits<  ::efl::eina::range_list< ::elm::widget::Item>>::type Menu::items_get() const
{
   const Eina_List * __return_value =  ::elm_obj_menu_items_get(this->_eo_ptr());
   return ::efl::eolian::convert_to_return< ::efl::eolian::return_traits<  ::efl::eina::range_list< ::elm::widget::Item>>::type>(__return_value);
}
inline ::efl::eolian::return_traits< ::elm::widget::Item>::type Menu::first_item_get() const
{
    ::Elm_Widget_Item* __return_value =  ::elm_obj_menu_first_item_get(this->_eo_ptr());
   return ::efl::eolian::convert_to_return< ::efl::eolian::return_traits< ::elm::widget::Item>::type>(__return_value);
}
inline ::efl::eolian::return_traits< ::elm::widget::Item>::type Menu::last_item_get() const
{
    ::Elm_Widget_Item* __return_value =  ::elm_obj_menu_last_item_get(this->_eo_ptr());
   return ::efl::eolian::convert_to_return< ::efl::eolian::return_traits< ::elm::widget::Item>::type>(__return_value);
}
inline ::efl::eolian::return_traits<void>::type Menu::move( ::efl::eolian::in_traits<Evas_Coord>::type x,  ::efl::eolian::in_traits<Evas_Coord>::type y) const
{
    ::elm_obj_menu_move(this->_eo_ptr()
      ,  ::efl::eolian::convert_to_c<Evas_Coord,  ::efl::eolian::in_traits<Evas_Coord>::type>(x)
      ,  ::efl::eolian::convert_to_c<Evas_Coord,  ::efl::eolian::in_traits<Evas_Coord>::type>(y));
}
inline ::efl::eolian::return_traits< ::elm::widget::Item>::type Menu::item_add( ::efl::eolian::in_traits< ::elm::widget::Item>::type parent,  ::efl::eolian::in_traits< ::efl::eina::optional< ::efl::eina::string_view>>::type icon,  ::efl::eolian::in_traits< ::efl::eina::string_view>::type label,  ::efl::eolian::in_traits< ::efl::eina::optional<Evas_Smart_Cb>>::type func,  ::efl::eolian::in_traits<void const*>::type data) const
{
    ::Elm_Widget_Item* __return_value =  ::elm_obj_menu_item_add(this->_eo_ptr()
      ,  ::efl::eolian::convert_to_c< ::Elm_Widget_Item*,  ::efl::eolian::in_traits< ::elm::widget::Item>::type>(parent)
      ,  ::efl::eolian::convert_to_c<const char *,  ::efl::eolian::in_traits< ::efl::eina::optional< ::efl::eina::string_view>>::type>(icon)
      ,  ::efl::eolian::convert_to_c<const char *,  ::efl::eolian::in_traits< ::efl::eina::string_view>::type>(label)
      ,  ::efl::eolian::convert_to_c<Evas_Smart_Cb,  ::efl::eolian::in_traits< ::efl::eina::optional<Evas_Smart_Cb>>::type>(func)
      ,  ::efl::eolian::convert_to_c<const void *,  ::efl::eolian::in_traits<void const*>::type>(data));
   return ::efl::eolian::convert_to_return< ::efl::eolian::return_traits< ::elm::widget::Item>::type>(__return_value);
}
inline ::efl::eolian::return_traits<void>::type Menu::close() const
{
    ::elm_obj_menu_close(this->_eo_ptr());
}
inline ::efl::eolian::return_traits< ::elm::widget::Item>::type Menu::item_separator_add( ::efl::eolian::in_traits< ::elm::widget::Item>::type parent) const
{
    ::Elm_Widget_Item* __return_value =  ::elm_obj_menu_item_separator_add(this->_eo_ptr()
      ,  ::efl::eolian::convert_to_c< ::Elm_Widget_Item*,  ::efl::eolian::in_traits< ::elm::widget::Item>::type>(parent));
   return ::efl::eolian::convert_to_return< ::efl::eolian::return_traits< ::elm::widget::Item>::type>(__return_value);
}
inline elm::Menu::operator ::elm::Menu() const { return *static_cast< ::elm::Menu const*>(static_cast<void const*>(this)); }
inline elm::Menu::operator ::elm::Menu&() { return *static_cast< ::elm::Menu*>(static_cast<void*>(this)); }
inline elm::Menu::operator ::elm::Menu const&() const { return *static_cast< ::elm::Menu const*>(static_cast<void const*>(this)); }
} }

