#ifndef ELMXX_LIST_H #define ELMXX_LIST_H /* STL */ #include /* EFL */ #include /* ELFxx */ #include "Object.h" namespace Elmxx { /*! * smart callbacks called: * "clicked,double" - when the user double-clicked an item * "selected" - when the user selected an item * "unselected" - when the user unselected an item */ class List : public Object { public: static List *factory (Evasxx::Object &parent); void clear (); void go (); void setMultiSelect (bool multi); void setHorizontal (bool horizontal); void setSelectMode (Elm_Object_Select_Mode mode); const Eina_List *getItems (); // TODO: port Eina_List Elm_Object_Item *getSelectedItem (); // TODO port Elm_List_Item const Eina_List *getSelectedItems (); // TODO: port Eina_List Elm_Object_Item *append (const std::string &label, void (*func) (void *data, Evas_Object *obj, void *event_info), const void *data); Elm_Object_Item *append (const std::string &label, const Evasxx::Object *icon, const Evasxx::Object *end, void (*func) (void *data, Evas_Object *obj, void *event_info), const void *data); protected: // allow only construction for child classes List (Evasxx::Object &parent); // private construction -> use factory () virtual ~List (); // forbid direct delete -> use Object::destroy() private: List (); // forbid standard constructor List (const List&); // forbid copy constructor }; #if 0 EAPI Elm_Object_Item *elm_list_item_append(Evas_Object *obj, const char *label, Evas_Object *icon, Evas_Object *end, void (*func) (void *data, Evas_Object *obj, void *event_info), const void *data); EAPI Elm_Object_Item *elm_list_item_prepend(Evas_Object *obj, const char *label, Evas_Object *icon, Evas_Object *end, void (*func) (void *data, Evas_Object *obj, void *event_info), const void *data); EAPI Elm_Object_Item *elm_list_item_insert_before(Evas_Object *obj, Elm_List_Item *before, const char *label, Evas_Object *icon, Evas_Object *end, void (*func) (void *data, Evas_Object *obj, void *event_info), const void *data); EAPI Elm_Object_Item *elm_list_item_insert_after(Evas_Object *obj, Elm_List_Item *after, const char *label, Evas_Object *icon, Evas_Object *end, void (*func) (void *data, Evas_Object *obj, void *event_info), const void *data); #endif } // end namespace Elmxx #endif // ELMXX_LIST_H