#ifdef HAVE_CONFIG_H
# include "elementary_config.h"
#endif

#define EFL_UI_LIST_DEFAULT_ITEM_PROTECTED
#define EFL_PART_PROTECTED

#include <Elementary.h>

#include "elm_priv.h"
#include "elm_part_helper.h"

#define MY_CLASS EFL_UI_DEFAULT_ITEM_CLASS
#define MY_CLASS_PFX  efl_ui_default_item

#define MY_CLASS_NAME "Efl.Ui.Default_Item"

ELM_PART_TEXT_DEFAULT_GET(efl_ui_default_item, "efl.text")
ELM_PART_TEXT_DEFAULT_IMPLEMENT(efl_ui_default_item, void)
ELM_PART_MARKUP_DEFAULT_IMPLEMENT(efl_ui_default_item, void)
ELM_PART_CONTENT_DEFAULT_GET(efl_ui_default_item, "efl.icon")
ELM_PART_CONTENT_DEFAULT_IMPLEMENT(efl_ui_default_item, void)

EOLIAN static Efl_Object *
_efl_ui_default_item_efl_part_part_get(const Eo *obj, void *pd EINA_UNUSED, const char *part)
{
   EINA_SAFETY_ON_NULL_RETURN_VAL(part, NULL);
   if (eina_streq(part, "text"))
     return ELM_PART_IMPLEMENT(EFL_UI_LAYOUT_PART_TEXT_CLASS, obj, "efl.text");
   else if (eina_streq(part, "icon"))
     return ELM_PART_IMPLEMENT(EFL_UI_LAYOUT_PART_CONTENT_CLASS, obj, "efl.icon");
   else if (eina_streq(part, "extra"))
     return ELM_PART_IMPLEMENT(EFL_UI_LAYOUT_PART_CONTENT_CLASS, obj, "efl.extra");

   return efl_part_get(efl_super(obj, MY_CLASS), part);
}


#define EFL_UI_DEFAULT_ITEM_EXTRA_OPS             \
  ELM_PART_TEXT_DEFAULT_OPS(efl_ui_default_item), \
  ELM_PART_CONTENT_DEFAULT_OPS(efl_ui_default_item)

#include "efl_ui_default_item.eo.c"
