#ifndef EFL_TEXT_ANNOTATE_IMPL_HH
#define EFL_TEXT_ANNOTATE_IMPL_HH

#include "efl_text_annotate.eo.hh"

namespace efl { 
#ifdef EFL_BETA_API_SUPPORT
inline ::efl::eolian::return_traits< ::efl::eina::string_view>::type Text_Annotate::annotation_get( ::efl::eolian::in_traits<Efl_Text_Annotate_Annotation const*>::type annotation) const
{
    const char * __return_value =  ::efl_text_annotation_get(_eo_ptr(),
         ::efl::eolian::convert_to_c<Efl_Text_Annotate_Annotation *,  ::efl::eolian::in_traits<Efl_Text_Annotate_Annotation const*>::type>(annotation));
    return ::efl::eolian::convert_to_return< ::efl::eolian::return_traits< ::efl::eina::string_view>::type>(__return_value);
}
#endif
#ifdef EFL_BETA_API_SUPPORT
inline ::efl::eolian::return_traits<bool>::type Text_Annotate::annotation_set( ::efl::eolian::in_traits<Efl_Text_Annotate_Annotation const*>::type annotation,  ::efl::eolian::in_traits< ::efl::eina::string_view>::type format) const
{
    Eina_Bool __return_value =  ::efl_text_annotation_set(_eo_ptr(),
         ::efl::eolian::convert_to_c<Efl_Text_Annotate_Annotation *,  ::efl::eolian::in_traits<Efl_Text_Annotate_Annotation const*>::type>(annotation),
         ::efl::eolian::convert_to_c<const char *,  ::efl::eolian::in_traits< ::efl::eina::string_view>::type>(format));
    return ::efl::eolian::convert_to_return< ::efl::eolian::return_traits<bool>::type>(__return_value);
}
#endif
#ifdef EFL_BETA_API_SUPPORT
inline ::efl::eolian::return_traits<Efl_Text_Annotate_Annotation*>::type Text_Annotate::cursor_item_annotation_get( ::efl::eolian::in_traits<Efl_Text_Cursor_Cursor const*>::type cur) const
{
    Efl_Text_Annotate_Annotation * __return_value =  ::efl_text_cursor_item_annotation_get(_eo_ptr(),
         ::efl::eolian::convert_to_c<Efl_Text_Cursor_Cursor *,  ::efl::eolian::in_traits<Efl_Text_Cursor_Cursor const*>::type>(cur));
    return ::efl::eolian::convert_to_return< ::efl::eolian::return_traits<Efl_Text_Annotate_Annotation*>::type>(__return_value);
}
#endif
#ifdef EFL_BETA_API_SUPPORT
inline ::efl::eolian::return_traits< ::efl::eina::iterator<Efl_Text_Annotate_Annotation const*>>::type Text_Annotate::range_annotations_get( ::efl::eolian::in_traits<Efl_Text_Cursor_Cursor const*>::type start,  ::efl::eolian::in_traits<Efl_Text_Cursor_Cursor const*>::type end) const
{
    Eina_Iterator * __return_value =  ::efl_text_range_annotations_get(_eo_ptr(),
         ::efl::eolian::convert_to_c<const Efl_Text_Cursor_Cursor *,  ::efl::eolian::in_traits<Efl_Text_Cursor_Cursor const*>::type>(start),
         ::efl::eolian::convert_to_c<const Efl_Text_Cursor_Cursor *,  ::efl::eolian::in_traits<Efl_Text_Cursor_Cursor const*>::type>(end));
    return ::efl::eolian::convert_to_return< ::efl::eolian::return_traits< ::efl::eina::iterator<Efl_Text_Annotate_Annotation const*>>::type>(__return_value);
}
#endif
#ifdef EFL_BETA_API_SUPPORT
inline ::efl::eolian::return_traits<Efl_Text_Annotate_Annotation*>::type Text_Annotate::annotation_insert( ::efl::eolian::in_traits<Efl_Text_Cursor_Cursor const*>::type start,  ::efl::eolian::in_traits<Efl_Text_Cursor_Cursor const*>::type end,  ::efl::eolian::in_traits< ::efl::eina::string_view>::type format) const
{
    Efl_Text_Annotate_Annotation * __return_value =  ::efl_text_annotation_insert(_eo_ptr(),
         ::efl::eolian::convert_to_c<Efl_Text_Cursor_Cursor *,  ::efl::eolian::in_traits<Efl_Text_Cursor_Cursor const*>::type>(start),
         ::efl::eolian::convert_to_c<Efl_Text_Cursor_Cursor *,  ::efl::eolian::in_traits<Efl_Text_Cursor_Cursor const*>::type>(end),
         ::efl::eolian::convert_to_c<const char *,  ::efl::eolian::in_traits< ::efl::eina::string_view>::type>(format));
    return ::efl::eolian::convert_to_return< ::efl::eolian::return_traits<Efl_Text_Annotate_Annotation*>::type>(__return_value);
}
#endif
#ifdef EFL_BETA_API_SUPPORT
inline ::efl::eolian::return_traits<bool>::type Text_Annotate::annotation_del( ::efl::eolian::in_traits<Efl_Text_Annotate_Annotation const*>::type annotation) const
{
    Eina_Bool __return_value =  ::efl_text_annotation_del(_eo_ptr(),
         ::efl::eolian::convert_to_c<Efl_Text_Annotate_Annotation *,  ::efl::eolian::in_traits<Efl_Text_Annotate_Annotation const*>::type>(annotation));
    return ::efl::eolian::convert_to_return< ::efl::eolian::return_traits<bool>::type>(__return_value);
}
#endif
#ifdef EFL_BETA_API_SUPPORT
inline ::efl::eolian::return_traits<void>::type Text_Annotate::annotation_positions_get( ::efl::eolian::in_traits<Efl_Text_Annotate_Annotation const*>::type annotation,  ::efl::eolian::in_traits<Efl_Text_Cursor_Cursor const*>::type start,  ::efl::eolian::in_traits<Efl_Text_Cursor_Cursor const*>::type end) const
{
     ::efl_text_annotation_positions_get(_eo_ptr(),
         ::efl::eolian::convert_to_c<const Efl_Text_Annotate_Annotation *,  ::efl::eolian::in_traits<Efl_Text_Annotate_Annotation const*>::type>(annotation),
         ::efl::eolian::convert_to_c<Efl_Text_Cursor_Cursor *,  ::efl::eolian::in_traits<Efl_Text_Cursor_Cursor const*>::type>(start),
         ::efl::eolian::convert_to_c<Efl_Text_Cursor_Cursor *,  ::efl::eolian::in_traits<Efl_Text_Cursor_Cursor const*>::type>(end));
}
#endif
#ifdef EFL_BETA_API_SUPPORT
inline ::efl::eolian::return_traits<bool>::type Text_Annotate::annotation_is_item( ::efl::eolian::in_traits<Efl_Text_Annotate_Annotation const*>::type annotation) const
{
    Eina_Bool __return_value =  ::efl_text_annotation_is_item(_eo_ptr(),
         ::efl::eolian::convert_to_c<Efl_Text_Annotate_Annotation *,  ::efl::eolian::in_traits<Efl_Text_Annotate_Annotation const*>::type>(annotation));
    return ::efl::eolian::convert_to_return< ::efl::eolian::return_traits<bool>::type>(__return_value);
}
#endif
#ifdef EFL_BETA_API_SUPPORT
inline ::efl::eolian::return_traits<bool>::type Text_Annotate::item_geometry_get( ::efl::eolian::in_traits<Efl_Text_Annotate_Annotation const*>::type an,  ::efl::eolian::out_traits<int>::type x,  ::efl::eolian::out_traits<int>::type y,  ::efl::eolian::out_traits<int>::type w,  ::efl::eolian::out_traits<int>::type h) const
{
    int __out_param_x = {};
    int __out_param_y = {};
    int __out_param_w = {};
    int __out_param_h = {};
    Eina_Bool __return_value =  ::efl_text_item_geometry_get(_eo_ptr(),
         ::efl::eolian::convert_to_c<const Efl_Text_Annotate_Annotation *,  ::efl::eolian::in_traits<Efl_Text_Annotate_Annotation const*>::type>(an),
        & __out_param_x,
        & __out_param_y,
        & __out_param_w,
        & __out_param_h);
    ::efl::eolian::assign_out< ::efl::eolian::out_traits<int>::type, int>(x, __out_param_x);
    ::efl::eolian::assign_out< ::efl::eolian::out_traits<int>::type, int>(y, __out_param_y);
    ::efl::eolian::assign_out< ::efl::eolian::out_traits<int>::type, int>(w, __out_param_w);
    ::efl::eolian::assign_out< ::efl::eolian::out_traits<int>::type, int>(h, __out_param_h);
    return ::efl::eolian::convert_to_return< ::efl::eolian::return_traits<bool>::type>(__return_value);
}
#endif
#ifdef EFL_BETA_API_SUPPORT
inline ::efl::eolian::return_traits<Efl_Text_Annotate_Annotation*>::type Text_Annotate::cursor_item_insert( ::efl::eolian::in_traits<Efl_Text_Cursor_Cursor const*>::type cur,  ::efl::eolian::in_traits< ::efl::eina::string_view>::type item,  ::efl::eolian::in_traits< ::efl::eina::string_view>::type format) const
{
    Efl_Text_Annotate_Annotation * __return_value =  ::efl_text_cursor_item_insert(_eo_ptr(),
         ::efl::eolian::convert_to_c<Efl_Text_Cursor_Cursor *,  ::efl::eolian::in_traits<Efl_Text_Cursor_Cursor const*>::type>(cur),
         ::efl::eolian::convert_to_c<const char *,  ::efl::eolian::in_traits< ::efl::eina::string_view>::type>(item),
         ::efl::eolian::convert_to_c<const char *,  ::efl::eolian::in_traits< ::efl::eina::string_view>::type>(format));
    return ::efl::eolian::convert_to_return< ::efl::eolian::return_traits<Efl_Text_Annotate_Annotation*>::type>(__return_value);
}
#endif
} 
namespace eo_cxx {
namespace efl { 
#ifdef EFL_BETA_API_SUPPORT
inline ::efl::eolian::return_traits< ::efl::eina::string_view>::type Text_Annotate::annotation_get( ::efl::eolian::in_traits<Efl_Text_Annotate_Annotation const*>::type annotation) const
{
    const char * __return_value =  ::efl_text_annotation_get(_eo_ptr(),
         ::efl::eolian::convert_to_c<Efl_Text_Annotate_Annotation *,  ::efl::eolian::in_traits<Efl_Text_Annotate_Annotation const*>::type>(annotation));
    return ::efl::eolian::convert_to_return< ::efl::eolian::return_traits< ::efl::eina::string_view>::type>(__return_value);
}
#endif
#ifdef EFL_BETA_API_SUPPORT
inline ::efl::eolian::return_traits<bool>::type Text_Annotate::annotation_set( ::efl::eolian::in_traits<Efl_Text_Annotate_Annotation const*>::type annotation,  ::efl::eolian::in_traits< ::efl::eina::string_view>::type format) const
{
    Eina_Bool __return_value =  ::efl_text_annotation_set(_eo_ptr(),
         ::efl::eolian::convert_to_c<Efl_Text_Annotate_Annotation *,  ::efl::eolian::in_traits<Efl_Text_Annotate_Annotation const*>::type>(annotation),
         ::efl::eolian::convert_to_c<const char *,  ::efl::eolian::in_traits< ::efl::eina::string_view>::type>(format));
    return ::efl::eolian::convert_to_return< ::efl::eolian::return_traits<bool>::type>(__return_value);
}
#endif
#ifdef EFL_BETA_API_SUPPORT
inline ::efl::eolian::return_traits<Efl_Text_Annotate_Annotation*>::type Text_Annotate::cursor_item_annotation_get( ::efl::eolian::in_traits<Efl_Text_Cursor_Cursor const*>::type cur) const
{
    Efl_Text_Annotate_Annotation * __return_value =  ::efl_text_cursor_item_annotation_get(_eo_ptr(),
         ::efl::eolian::convert_to_c<Efl_Text_Cursor_Cursor *,  ::efl::eolian::in_traits<Efl_Text_Cursor_Cursor const*>::type>(cur));
    return ::efl::eolian::convert_to_return< ::efl::eolian::return_traits<Efl_Text_Annotate_Annotation*>::type>(__return_value);
}
#endif
#ifdef EFL_BETA_API_SUPPORT
inline ::efl::eolian::return_traits< ::efl::eina::iterator<Efl_Text_Annotate_Annotation const*>>::type Text_Annotate::range_annotations_get( ::efl::eolian::in_traits<Efl_Text_Cursor_Cursor const*>::type start,  ::efl::eolian::in_traits<Efl_Text_Cursor_Cursor const*>::type end) const
{
    Eina_Iterator * __return_value =  ::efl_text_range_annotations_get(_eo_ptr(),
         ::efl::eolian::convert_to_c<const Efl_Text_Cursor_Cursor *,  ::efl::eolian::in_traits<Efl_Text_Cursor_Cursor const*>::type>(start),
         ::efl::eolian::convert_to_c<const Efl_Text_Cursor_Cursor *,  ::efl::eolian::in_traits<Efl_Text_Cursor_Cursor const*>::type>(end));
    return ::efl::eolian::convert_to_return< ::efl::eolian::return_traits< ::efl::eina::iterator<Efl_Text_Annotate_Annotation const*>>::type>(__return_value);
}
#endif
#ifdef EFL_BETA_API_SUPPORT
inline ::efl::eolian::return_traits<Efl_Text_Annotate_Annotation*>::type Text_Annotate::annotation_insert( ::efl::eolian::in_traits<Efl_Text_Cursor_Cursor const*>::type start,  ::efl::eolian::in_traits<Efl_Text_Cursor_Cursor const*>::type end,  ::efl::eolian::in_traits< ::efl::eina::string_view>::type format) const
{
    Efl_Text_Annotate_Annotation * __return_value =  ::efl_text_annotation_insert(_eo_ptr(),
         ::efl::eolian::convert_to_c<Efl_Text_Cursor_Cursor *,  ::efl::eolian::in_traits<Efl_Text_Cursor_Cursor const*>::type>(start),
         ::efl::eolian::convert_to_c<Efl_Text_Cursor_Cursor *,  ::efl::eolian::in_traits<Efl_Text_Cursor_Cursor const*>::type>(end),
         ::efl::eolian::convert_to_c<const char *,  ::efl::eolian::in_traits< ::efl::eina::string_view>::type>(format));
    return ::efl::eolian::convert_to_return< ::efl::eolian::return_traits<Efl_Text_Annotate_Annotation*>::type>(__return_value);
}
#endif
#ifdef EFL_BETA_API_SUPPORT
inline ::efl::eolian::return_traits<bool>::type Text_Annotate::annotation_del( ::efl::eolian::in_traits<Efl_Text_Annotate_Annotation const*>::type annotation) const
{
    Eina_Bool __return_value =  ::efl_text_annotation_del(_eo_ptr(),
         ::efl::eolian::convert_to_c<Efl_Text_Annotate_Annotation *,  ::efl::eolian::in_traits<Efl_Text_Annotate_Annotation const*>::type>(annotation));
    return ::efl::eolian::convert_to_return< ::efl::eolian::return_traits<bool>::type>(__return_value);
}
#endif
#ifdef EFL_BETA_API_SUPPORT
inline ::efl::eolian::return_traits<void>::type Text_Annotate::annotation_positions_get( ::efl::eolian::in_traits<Efl_Text_Annotate_Annotation const*>::type annotation,  ::efl::eolian::in_traits<Efl_Text_Cursor_Cursor const*>::type start,  ::efl::eolian::in_traits<Efl_Text_Cursor_Cursor const*>::type end) const
{
     ::efl_text_annotation_positions_get(_eo_ptr(),
         ::efl::eolian::convert_to_c<const Efl_Text_Annotate_Annotation *,  ::efl::eolian::in_traits<Efl_Text_Annotate_Annotation const*>::type>(annotation),
         ::efl::eolian::convert_to_c<Efl_Text_Cursor_Cursor *,  ::efl::eolian::in_traits<Efl_Text_Cursor_Cursor const*>::type>(start),
         ::efl::eolian::convert_to_c<Efl_Text_Cursor_Cursor *,  ::efl::eolian::in_traits<Efl_Text_Cursor_Cursor const*>::type>(end));
}
#endif
#ifdef EFL_BETA_API_SUPPORT
inline ::efl::eolian::return_traits<bool>::type Text_Annotate::annotation_is_item( ::efl::eolian::in_traits<Efl_Text_Annotate_Annotation const*>::type annotation) const
{
    Eina_Bool __return_value =  ::efl_text_annotation_is_item(_eo_ptr(),
         ::efl::eolian::convert_to_c<Efl_Text_Annotate_Annotation *,  ::efl::eolian::in_traits<Efl_Text_Annotate_Annotation const*>::type>(annotation));
    return ::efl::eolian::convert_to_return< ::efl::eolian::return_traits<bool>::type>(__return_value);
}
#endif
#ifdef EFL_BETA_API_SUPPORT
inline ::efl::eolian::return_traits<bool>::type Text_Annotate::item_geometry_get( ::efl::eolian::in_traits<Efl_Text_Annotate_Annotation const*>::type an,  ::efl::eolian::out_traits<int>::type x,  ::efl::eolian::out_traits<int>::type y,  ::efl::eolian::out_traits<int>::type w,  ::efl::eolian::out_traits<int>::type h) const
{
    int __out_param_x = {};
    int __out_param_y = {};
    int __out_param_w = {};
    int __out_param_h = {};
    Eina_Bool __return_value =  ::efl_text_item_geometry_get(_eo_ptr(),
         ::efl::eolian::convert_to_c<const Efl_Text_Annotate_Annotation *,  ::efl::eolian::in_traits<Efl_Text_Annotate_Annotation const*>::type>(an),
        & __out_param_x,
        & __out_param_y,
        & __out_param_w,
        & __out_param_h);
    ::efl::eolian::assign_out< ::efl::eolian::out_traits<int>::type, int>(x, __out_param_x);
    ::efl::eolian::assign_out< ::efl::eolian::out_traits<int>::type, int>(y, __out_param_y);
    ::efl::eolian::assign_out< ::efl::eolian::out_traits<int>::type, int>(w, __out_param_w);
    ::efl::eolian::assign_out< ::efl::eolian::out_traits<int>::type, int>(h, __out_param_h);
    return ::efl::eolian::convert_to_return< ::efl::eolian::return_traits<bool>::type>(__return_value);
}
#endif
#ifdef EFL_BETA_API_SUPPORT
inline ::efl::eolian::return_traits<Efl_Text_Annotate_Annotation*>::type Text_Annotate::cursor_item_insert( ::efl::eolian::in_traits<Efl_Text_Cursor_Cursor const*>::type cur,  ::efl::eolian::in_traits< ::efl::eina::string_view>::type item,  ::efl::eolian::in_traits< ::efl::eina::string_view>::type format) const
{
    Efl_Text_Annotate_Annotation * __return_value =  ::efl_text_cursor_item_insert(_eo_ptr(),
         ::efl::eolian::convert_to_c<Efl_Text_Cursor_Cursor *,  ::efl::eolian::in_traits<Efl_Text_Cursor_Cursor const*>::type>(cur),
         ::efl::eolian::convert_to_c<const char *,  ::efl::eolian::in_traits< ::efl::eina::string_view>::type>(item),
         ::efl::eolian::convert_to_c<const char *,  ::efl::eolian::in_traits< ::efl::eina::string_view>::type>(format));
    return ::efl::eolian::convert_to_return< ::efl::eolian::return_traits<Efl_Text_Annotate_Annotation*>::type>(__return_value);
}
#endif
inline efl::Text_Annotate::operator ::efl::Text_Annotate() const { return *static_cast< ::efl::Text_Annotate const*>(static_cast<void const*>(this)); }
inline efl::Text_Annotate::operator ::efl::Text_Annotate&() { return *static_cast< ::efl::Text_Annotate*>(static_cast<void*>(this)); }
inline efl::Text_Annotate::operator ::efl::Text_Annotate const&() const { return *static_cast< ::efl::Text_Annotate const*>(static_cast<void const*>(this)); }
} }
#endif
