#ifndef EFL_UI_DND_CONTAINER_IMPL_HH
#define EFL_UI_DND_CONTAINER_IMPL_HH

#include "efl_ui_dnd_container.eo.hh"

namespace efl { namespace ui { 
inline ::efl::eolian::return_traits<double>::type Dnd_Container::drag_delay_time_get() const
{
   double __return_value =  ::efl_ui_dnd_container_drag_delay_time_get(_eo_ptr());
   return ::efl::eolian::convert_to_return< ::efl::eolian::return_traits<double>::type>(__return_value);
}
inline ::efl::eolian::return_traits<void>::type Dnd_Container::drag_delay_time_set( ::efl::eolian::in_traits<double>::type time) const
{
    ::efl_ui_dnd_container_drag_delay_time_set(_eo_ptr()
      ,  ::efl::eolian::convert_to_c<double,  ::efl::eolian::in_traits<double>::type>(time));
}
template <typename F, typename G, typename H, typename I>
inline ::efl::eolian::return_traits<void>::type Dnd_Container::drag_item_add(F data_func, F item_func, F icon_func, F icon_list_func,  ::efl::eolian::in_traits< unsigned int>::type seat) const
{
   auto fw_data_func = new ::efl::eolian::function_wrapper<Efl_Dnd_Drag_Data_Get, F>(data_func);auto fw_item_func = new ::efl::eolian::function_wrapper<Efl_Dnd_Item_Get, G>(item_func);auto fw_icon_func = new ::efl::eolian::function_wrapper<Efl_Dnd_Drag_Icon_Create, H>(icon_func);auto fw_icon_list_func = new ::efl::eolian::function_wrapper<Efl_Dnd_Drag_Icon_List_Create, I>(icon_list_func);
    ::efl_ui_dnd_container_drag_item_add(_eo_ptr()
      , fw_data_func->data_to_c(), fw_data_func->func_to_c(), fw_data_func->free_to_c()
      , fw_item_func->data_to_c(), fw_item_func->func_to_c(), fw_item_func->free_to_c()
      , fw_icon_func->data_to_c(), fw_icon_func->func_to_c(), fw_icon_func->free_to_c()
      , fw_icon_list_func->data_to_c(), fw_icon_list_func->func_to_c(), fw_icon_list_func->free_to_c()
      ,  ::efl::eolian::convert_to_c<unsigned int,  ::efl::eolian::in_traits< unsigned int>::type>(seat));
}
inline ::efl::eolian::return_traits<void>::type Dnd_Container::drag_item_del( ::efl::eolian::in_traits< unsigned int>::type seat) const
{
    ::efl_ui_dnd_container_drag_item_del(_eo_ptr()
      ,  ::efl::eolian::convert_to_c<unsigned int,  ::efl::eolian::in_traits< unsigned int>::type>(seat));
}
template <typename F>
inline ::efl::eolian::return_traits<void>::type Dnd_Container::drop_item_add( ::efl::eolian::in_traits<Efl_Selection_Format>::type format, F item_func,  ::efl::eolian::in_traits< unsigned int>::type seat) const
{
   auto fw_item_func = new ::efl::eolian::function_wrapper<Efl_Dnd_Item_Get, F>(item_func);
    ::efl_ui_dnd_container_drop_item_add(_eo_ptr()
      ,  ::efl::eolian::convert_to_c<Efl_Selection_Format,  ::efl::eolian::in_traits<Efl_Selection_Format>::type>(format)
      , fw_item_func->data_to_c(), fw_item_func->func_to_c(), fw_item_func->free_to_c()
      ,  ::efl::eolian::convert_to_c<unsigned int,  ::efl::eolian::in_traits< unsigned int>::type>(seat));
}
inline ::efl::eolian::return_traits<void>::type Dnd_Container::drop_item_del( ::efl::eolian::in_traits< unsigned int>::type seat) const
{
    ::efl_ui_dnd_container_drop_item_del(_eo_ptr()
      ,  ::efl::eolian::convert_to_c<unsigned int,  ::efl::eolian::in_traits< unsigned int>::type>(seat));
}
} } 
namespace eo_cxx {
namespace efl { namespace ui { 
inline ::efl::eolian::return_traits<double>::type Dnd_Container::drag_delay_time_get() const
{
   double __return_value =  ::efl_ui_dnd_container_drag_delay_time_get(_eo_ptr());
   return ::efl::eolian::convert_to_return< ::efl::eolian::return_traits<double>::type>(__return_value);
}
inline ::efl::eolian::return_traits<void>::type Dnd_Container::drag_delay_time_set( ::efl::eolian::in_traits<double>::type time) const
{
    ::efl_ui_dnd_container_drag_delay_time_set(_eo_ptr()
      ,  ::efl::eolian::convert_to_c<double,  ::efl::eolian::in_traits<double>::type>(time));
}
template <typename F, typename G, typename H, typename I>
inline ::efl::eolian::return_traits<void>::type Dnd_Container::drag_item_add(F data_func, F item_func, F icon_func, F icon_list_func,  ::efl::eolian::in_traits< unsigned int>::type seat) const
{
   auto fw_data_func = new ::efl::eolian::function_wrapper<Efl_Dnd_Drag_Data_Get, F>(data_func);auto fw_item_func = new ::efl::eolian::function_wrapper<Efl_Dnd_Item_Get, G>(item_func);auto fw_icon_func = new ::efl::eolian::function_wrapper<Efl_Dnd_Drag_Icon_Create, H>(icon_func);auto fw_icon_list_func = new ::efl::eolian::function_wrapper<Efl_Dnd_Drag_Icon_List_Create, I>(icon_list_func);
    ::efl_ui_dnd_container_drag_item_add(_eo_ptr()
      , fw_data_func->data_to_c(), fw_data_func->func_to_c(), fw_data_func->free_to_c()
      , fw_item_func->data_to_c(), fw_item_func->func_to_c(), fw_item_func->free_to_c()
      , fw_icon_func->data_to_c(), fw_icon_func->func_to_c(), fw_icon_func->free_to_c()
      , fw_icon_list_func->data_to_c(), fw_icon_list_func->func_to_c(), fw_icon_list_func->free_to_c()
      ,  ::efl::eolian::convert_to_c<unsigned int,  ::efl::eolian::in_traits< unsigned int>::type>(seat));
}
inline ::efl::eolian::return_traits<void>::type Dnd_Container::drag_item_del( ::efl::eolian::in_traits< unsigned int>::type seat) const
{
    ::efl_ui_dnd_container_drag_item_del(_eo_ptr()
      ,  ::efl::eolian::convert_to_c<unsigned int,  ::efl::eolian::in_traits< unsigned int>::type>(seat));
}
template <typename F>
inline ::efl::eolian::return_traits<void>::type Dnd_Container::drop_item_add( ::efl::eolian::in_traits<Efl_Selection_Format>::type format, F item_func,  ::efl::eolian::in_traits< unsigned int>::type seat) const
{
   auto fw_item_func = new ::efl::eolian::function_wrapper<Efl_Dnd_Item_Get, F>(item_func);
    ::efl_ui_dnd_container_drop_item_add(_eo_ptr()
      ,  ::efl::eolian::convert_to_c<Efl_Selection_Format,  ::efl::eolian::in_traits<Efl_Selection_Format>::type>(format)
      , fw_item_func->data_to_c(), fw_item_func->func_to_c(), fw_item_func->free_to_c()
      ,  ::efl::eolian::convert_to_c<unsigned int,  ::efl::eolian::in_traits< unsigned int>::type>(seat));
}
inline ::efl::eolian::return_traits<void>::type Dnd_Container::drop_item_del( ::efl::eolian::in_traits< unsigned int>::type seat) const
{
    ::efl_ui_dnd_container_drop_item_del(_eo_ptr()
      ,  ::efl::eolian::convert_to_c<unsigned int,  ::efl::eolian::in_traits< unsigned int>::type>(seat));
}
inline efl::ui::Dnd_Container::operator ::efl::ui::Dnd_Container() const { return *static_cast< ::efl::ui::Dnd_Container const*>(static_cast<void const*>(this)); }
inline efl::ui::Dnd_Container::operator ::efl::ui::Dnd_Container&() { return *static_cast< ::efl::ui::Dnd_Container*>(static_cast<void*>(this)); }
inline efl::ui::Dnd_Container::operator ::efl::ui::Dnd_Container const&() const { return *static_cast< ::efl::ui::Dnd_Container const*>(static_cast<void const*>(this)); }
} } }
#endif
