eflxx/elementaryxx/include/elementaryxx/List.h

66 lines
2.3 KiB
C++

#ifndef ELMXX_LIST_H
#define ELMXX_LIST_H
/* STL */
#include <string>
/* EFL */
#include <Elementary.h>
/* 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