#ifndef EFL_UI_STACK_IMPL_HH
#define EFL_UI_STACK_IMPL_HH

#include "efl_ui_stack.eo.hh"

namespace efl { namespace ui { 
inline ::efl::eolian::return_traits<void>::type Stack::push( ::efl::eolian::in_traits< ::efl::canvas::Object>::type content) const
{
    ::efl_ui_stack_push(_eo_ptr()
      ,  ::efl::eolian::convert_to_c< ::Efl_Canvas_Object*,  ::efl::eolian::in_traits< ::efl::canvas::Object>::type>(content));
}
inline ::efl::eolian::return_traits< ::efl::canvas::Object>::type Stack::pop() const
{
    ::Efl_Canvas_Object* __return_value =  ::efl_ui_stack_pop(_eo_ptr());
   return ::efl::eolian::convert_to_return< ::efl::eolian::return_traits< ::efl::canvas::Object>::type>(__return_value);
}
inline ::efl::eolian::return_traits<void>::type Stack::insert_before( ::efl::eolian::in_traits< ::efl::canvas::Object>::type base_content,  ::efl::eolian::in_traits< ::efl::canvas::Object>::type content) const
{
    ::efl_ui_stack_insert_before(_eo_ptr()
      ,  ::efl::eolian::convert_to_c< ::Efl_Canvas_Object*,  ::efl::eolian::in_traits< ::efl::canvas::Object>::type>(base_content)
      ,  ::efl::eolian::convert_to_c< ::Efl_Canvas_Object*,  ::efl::eolian::in_traits< ::efl::canvas::Object>::type>(content));
}
inline ::efl::eolian::return_traits<void>::type Stack::insert_after( ::efl::eolian::in_traits< ::efl::canvas::Object>::type base_content,  ::efl::eolian::in_traits< ::efl::canvas::Object>::type content) const
{
    ::efl_ui_stack_insert_after(_eo_ptr()
      ,  ::efl::eolian::convert_to_c< ::Efl_Canvas_Object*,  ::efl::eolian::in_traits< ::efl::canvas::Object>::type>(base_content)
      ,  ::efl::eolian::convert_to_c< ::Efl_Canvas_Object*,  ::efl::eolian::in_traits< ::efl::canvas::Object>::type>(content));
}
inline ::efl::eolian::return_traits<void>::type Stack::insert_at( ::efl::eolian::in_traits<int>::type index,  ::efl::eolian::in_traits< ::efl::canvas::Object>::type content) const
{
    ::efl_ui_stack_insert_at(_eo_ptr()
      ,  ::efl::eolian::convert_to_c<int,  ::efl::eolian::in_traits<int>::type>(index)
      ,  ::efl::eolian::convert_to_c< ::Efl_Canvas_Object*,  ::efl::eolian::in_traits< ::efl::canvas::Object>::type>(content));
}
inline ::efl::eolian::return_traits<void>::type Stack::remove( ::efl::eolian::in_traits< ::efl::canvas::Object>::type content) const
{
    ::efl_ui_stack_remove(_eo_ptr()
      ,  ::efl::eolian::convert_to_c< ::Efl_Canvas_Object*,  ::efl::eolian::in_traits< ::efl::canvas::Object>::type>(content));
}
inline ::efl::eolian::return_traits<void>::type Stack::remove_at( ::efl::eolian::in_traits<int>::type index) const
{
    ::efl_ui_stack_remove_at(_eo_ptr()
      ,  ::efl::eolian::convert_to_c<int,  ::efl::eolian::in_traits<int>::type>(index));
}
inline ::efl::eolian::return_traits<int>::type Stack::index_get( ::efl::eolian::in_traits< ::efl::canvas::Object>::type content) const
{
   int __return_value =  ::efl_ui_stack_index_get(_eo_ptr()
      ,  ::efl::eolian::convert_to_c< ::Efl_Canvas_Object*,  ::efl::eolian::in_traits< ::efl::canvas::Object>::type>(content));
   return ::efl::eolian::convert_to_return< ::efl::eolian::return_traits<int>::type>(__return_value);
}
inline ::efl::eolian::return_traits< ::efl::canvas::Object>::type Stack::content_get( ::efl::eolian::in_traits<int>::type index) const
{
    ::Efl_Canvas_Object* __return_value =  ::efl_ui_stack_content_get(_eo_ptr()
      ,  ::efl::eolian::convert_to_c<int,  ::efl::eolian::in_traits<int>::type>(index));
   return ::efl::eolian::convert_to_return< ::efl::eolian::return_traits< ::efl::canvas::Object>::type>(__return_value);
}
inline ::efl::eolian::return_traits< ::efl::canvas::Object>::type Stack::top() const
{
    ::Efl_Canvas_Object* __return_value =  ::efl_ui_stack_top(_eo_ptr());
   return ::efl::eolian::convert_to_return< ::efl::eolian::return_traits< ::efl::canvas::Object>::type>(__return_value);
}
} } 
namespace eo_cxx {
namespace efl { namespace ui { 
inline ::efl::eolian::return_traits<void>::type Stack::push( ::efl::eolian::in_traits< ::efl::canvas::Object>::type content) const
{
    ::efl_ui_stack_push(_eo_ptr()
      ,  ::efl::eolian::convert_to_c< ::Efl_Canvas_Object*,  ::efl::eolian::in_traits< ::efl::canvas::Object>::type>(content));
}
inline ::efl::eolian::return_traits< ::efl::canvas::Object>::type Stack::pop() const
{
    ::Efl_Canvas_Object* __return_value =  ::efl_ui_stack_pop(_eo_ptr());
   return ::efl::eolian::convert_to_return< ::efl::eolian::return_traits< ::efl::canvas::Object>::type>(__return_value);
}
inline ::efl::eolian::return_traits<void>::type Stack::insert_before( ::efl::eolian::in_traits< ::efl::canvas::Object>::type base_content,  ::efl::eolian::in_traits< ::efl::canvas::Object>::type content) const
{
    ::efl_ui_stack_insert_before(_eo_ptr()
      ,  ::efl::eolian::convert_to_c< ::Efl_Canvas_Object*,  ::efl::eolian::in_traits< ::efl::canvas::Object>::type>(base_content)
      ,  ::efl::eolian::convert_to_c< ::Efl_Canvas_Object*,  ::efl::eolian::in_traits< ::efl::canvas::Object>::type>(content));
}
inline ::efl::eolian::return_traits<void>::type Stack::insert_after( ::efl::eolian::in_traits< ::efl::canvas::Object>::type base_content,  ::efl::eolian::in_traits< ::efl::canvas::Object>::type content) const
{
    ::efl_ui_stack_insert_after(_eo_ptr()
      ,  ::efl::eolian::convert_to_c< ::Efl_Canvas_Object*,  ::efl::eolian::in_traits< ::efl::canvas::Object>::type>(base_content)
      ,  ::efl::eolian::convert_to_c< ::Efl_Canvas_Object*,  ::efl::eolian::in_traits< ::efl::canvas::Object>::type>(content));
}
inline ::efl::eolian::return_traits<void>::type Stack::insert_at( ::efl::eolian::in_traits<int>::type index,  ::efl::eolian::in_traits< ::efl::canvas::Object>::type content) const
{
    ::efl_ui_stack_insert_at(_eo_ptr()
      ,  ::efl::eolian::convert_to_c<int,  ::efl::eolian::in_traits<int>::type>(index)
      ,  ::efl::eolian::convert_to_c< ::Efl_Canvas_Object*,  ::efl::eolian::in_traits< ::efl::canvas::Object>::type>(content));
}
inline ::efl::eolian::return_traits<void>::type Stack::remove( ::efl::eolian::in_traits< ::efl::canvas::Object>::type content) const
{
    ::efl_ui_stack_remove(_eo_ptr()
      ,  ::efl::eolian::convert_to_c< ::Efl_Canvas_Object*,  ::efl::eolian::in_traits< ::efl::canvas::Object>::type>(content));
}
inline ::efl::eolian::return_traits<void>::type Stack::remove_at( ::efl::eolian::in_traits<int>::type index) const
{
    ::efl_ui_stack_remove_at(_eo_ptr()
      ,  ::efl::eolian::convert_to_c<int,  ::efl::eolian::in_traits<int>::type>(index));
}
inline ::efl::eolian::return_traits<int>::type Stack::index_get( ::efl::eolian::in_traits< ::efl::canvas::Object>::type content) const
{
   int __return_value =  ::efl_ui_stack_index_get(_eo_ptr()
      ,  ::efl::eolian::convert_to_c< ::Efl_Canvas_Object*,  ::efl::eolian::in_traits< ::efl::canvas::Object>::type>(content));
   return ::efl::eolian::convert_to_return< ::efl::eolian::return_traits<int>::type>(__return_value);
}
inline ::efl::eolian::return_traits< ::efl::canvas::Object>::type Stack::content_get( ::efl::eolian::in_traits<int>::type index) const
{
    ::Efl_Canvas_Object* __return_value =  ::efl_ui_stack_content_get(_eo_ptr()
      ,  ::efl::eolian::convert_to_c<int,  ::efl::eolian::in_traits<int>::type>(index));
   return ::efl::eolian::convert_to_return< ::efl::eolian::return_traits< ::efl::canvas::Object>::type>(__return_value);
}
inline ::efl::eolian::return_traits< ::efl::canvas::Object>::type Stack::top() const
{
    ::Efl_Canvas_Object* __return_value =  ::efl_ui_stack_top(_eo_ptr());
   return ::efl::eolian::convert_to_return< ::efl::eolian::return_traits< ::efl::canvas::Object>::type>(__return_value);
}
inline efl::ui::Stack::operator ::efl::ui::Stack() const { return *static_cast< ::efl::ui::Stack const*>(static_cast<void const*>(this)); }
inline efl::ui::Stack::operator ::efl::ui::Stack&() { return *static_cast< ::efl::ui::Stack*>(static_cast<void*>(this)); }
inline efl::ui::Stack::operator ::efl::ui::Stack const&() const { return *static_cast< ::efl::ui::Stack const*>(static_cast<void const*>(this)); }
} } }
#endif
