removed widgets forever...
authorChunEon Park <chuneon.park@samsung.com>
Tue, 2 Nov 2010 06:08:37 +0000 (15:08 +0900)
committerChunEon Park <chuneon.park@samsung.com>
Tue, 2 Nov 2010 06:08:37 +0000 (15:08 +0900)
elm_cabinet.c
elm_buttonpicker.c
elm_chronometer.c
elm_coverflow.c
elm_datepicker2.c
elm_datepicker3.c
elm_timepicker3.c
elm_toolbar2.c
elm_viewflipper.c

12 files changed:
src/lib/Elementary.h.in
src/lib/Makefile.am
src/lib/elm_buttonpicker.c [deleted file]
src/lib/elm_cabinet.c [deleted file]
src/lib/elm_chronometer.c [deleted file]
src/lib/elm_coverflow.c [deleted file]
src/lib/elm_ctxpopup.c
src/lib/elm_datepicker2.c [deleted file]
src/lib/elm_datepicker3.c [deleted file]
src/lib/elm_timepicker3.c [deleted file]
src/lib/elm_toolbar2.c [deleted file]
src/lib/elm_viewflipper.c [deleted file]

index e911127..fb29084 100644 (file)
@@ -1892,31 +1892,6 @@ extern "C" {
     * default
     */
 
-   typedef struct _Buttonpicker_Item Elm_Buttonpicker_Item;
-   EINA_DEPRECATED EAPI Evas_Object     *elm_buttonpicker_add(Evas_Object *parent);
-   EINA_DEPRECATED EAPI void             elm_buttonpicker_next(Evas_Object *obj);
-   EINA_DEPRECATED EAPI void             elm_buttonpicker_prev(Evas_Object *obj);
-   EINA_DEPRECATED EAPI Elm_Buttonpicker_Item *elm_buttonpicker_item_append(Evas_Object *obj, const char *label, void (*func)(void *data, Evas_Object *obj, void *event_info), void *data);
-   EINA_DEPRECATED EAPI Elm_Buttonpicker_Item *elm_buttonpicker_item_prepend(Evas_Object *obj, const char *label, void (*func)(void *data, Evas_Object *obj, void *event_info), void *data);
-   EINA_DEPRECATED EAPI const Eina_List *elm_buttonpicker_items_get(Evas_Object *obj);
-   EINA_DEPRECATED EAPI Elm_Buttonpicker_Item *elm_buttonpicker_first_item_get(Evas_Object *obj);
-   EINA_DEPRECATED EAPI Elm_Buttonpicker_Item *elm_buttonpicker_last_item_get(Evas_Object *obj);
-   EINA_DEPRECATED EAPI Elm_Buttonpicker_Item *elm_buttonpicker_selected_item_get(Evas_Object *obj);
-   EINA_DEPRECATED EAPI void             elm_buttonpicker_item_selected_set(Elm_Buttonpicker_Item *item);
-   EINA_DEPRECATED EAPI void             elm_buttonpicker_item_del(Elm_Buttonpicker_Item *item);
-   EINA_DEPRECATED EAPI const char      *elm_buttonpicker_item_label_get(Elm_Buttonpicker_Item *item);
-   EINA_DEPRECATED EAPI void             elm_buttonpicker_item_label_set(Elm_Buttonpicker_Item *item, const char *label);
-   EINA_DEPRECATED EAPI Elm_Buttonpicker_Item *elm_buttonpicker_item_prev(Elm_Buttonpicker_Item *item);
-   EINA_DEPRECATED EAPI Elm_Buttonpicker_Item *elm_buttonpicker_item_next(Elm_Buttonpicker_Item *item);
-   /* smart callback called:
-    * "changed" - when buttonpicker selected item is changed
-    * "overflowed" - when buttonpicker item is changed to first item from last item
-    * "underflowed" - when buttonpicker item is changed to last item from first item.
-    */
-   /* available styles:
-    * default
-    */
-
    EAPI Evas_Object *elm_timepicker_add(Evas_Object *parent);
    EAPI void         elm_timepicker_time_set(Evas_Object *obj, int hrs, int min, int sec);
    EAPI void         elm_timepicker_time_get(Evas_Object *obj, int *hrs, int *min, int *sec);
@@ -1929,18 +1904,6 @@ extern "C" {
     * default
     */
 
-   EINA_DEPRECATED EAPI Evas_Object *elm_timepicker3_add(Evas_Object *parent);
-   EINA_DEPRECATED EAPI void         elm_timepicker3_time_set(Evas_Object *obj, int hrs, int min, int sec);
-   EINA_DEPRECATED EAPI void         elm_timepicker3_time_get(Evas_Object *obj, int *hrs, int *min, int *sec);
-   EINA_DEPRECATED EAPI void         elm_timepicker3_show_am_pm_set(Evas_Object *obj, Eina_Bool am_pm);
-   EINA_DEPRECATED EAPI void         elm_timepicker3_show_seconds_set(Evas_Object *obj, Eina_Bool seconds);
-   /* smart callback called:
-    * "changed" - when timepicker3 selected item is changed
-    */
-   /* available styles:
-    * default
-    */
-
    EAPI Evas_Object *elm_datepicker_add(Evas_Object *parent);
    EAPI void         elm_datepicker_date_set(Evas_Object *obj, int year, int month, int day);
    EAPI void         elm_datepicker_date_get(Evas_Object *obj, int *year, int *month, int *day);
@@ -1957,38 +1920,6 @@ extern "C" {
     * default
     */
 
-   EINA_DEPRECATED EAPI Evas_Object *elm_datepicker2_add(Evas_Object *parent);
-   EINA_DEPRECATED EAPI void         elm_datepicker2_date_set(Evas_Object *obj, int year, int month, int day);
-   EINA_DEPRECATED EAPI void         elm_datepicker2_date_get(Evas_Object *obj, int *year, int *month, int *day);
-   EINA_DEPRECATED EAPI void         elm_datepicker2_date_min_set(Evas_Object *obj, int year, int month, int day);  // Not implemented
-   EINA_DEPRECATED EAPI void         elm_datepicker2_date_min_get(Evas_Object *obj, int *year, int *month, int *day);
-   EINA_DEPRECATED EAPI void         elm_datepicker2_date_max_set(Evas_Object *obj, int year, int month, int day); // Not implemented
-   EINA_DEPRECATED EAPI void         elm_datepicker2_date_max_get(Evas_Object *obj, int *year, int *month, int *day);
-   EINA_DEPRECATED EAPI void         elm_datepicker2_date_format_set(Evas_Object *obj, const char *fmt);
-   EINA_DEPRECATED EAPI const char  *elm_datepicker2_date_format_get(Evas_Object *obj);
-   /* smart callback called:
-    * "changed" - when datepicker selected item is changed
-    */
-   /* available styles:
-    * default
-    */
-    
-   EINA_DEPRECATED EAPI Evas_Object *elm_datepicker3_add(Evas_Object *parent);
-   EINA_DEPRECATED EAPI void         elm_datepicker3_date_set(Evas_Object *obj, int year, int month, int day);
-   EINA_DEPRECATED EAPI void         elm_datepicker3_date_get(Evas_Object *obj, int *year, int *month, int *day);
-   EINA_DEPRECATED EAPI void         elm_datepicker3_date_min_set(Evas_Object *obj, int year, int month, int day);  // Not implemented
-   EINA_DEPRECATED EAPI void         elm_datepicker3_date_min_get(Evas_Object *obj, int *year, int *month, int *day);
-   EINA_DEPRECATED EAPI void         elm_datepicker3_date_max_set(Evas_Object *obj, int year, int month, int day); // Not implemented
-   EINA_DEPRECATED EAPI void         elm_datepicker3_date_max_get(Evas_Object *obj, int *year, int *month, int *day); 
-   EINA_DEPRECATED EAPI void         elm_datepicker3_date_format_set(Evas_Object *obj, const char *fmt);
-   EINA_DEPRECATED EAPI const char  *elm_datepicker3_date_format_get(Evas_Object *obj);
-   /* smart callback called:
-    * "changed" - when datepicker3 selected item is changed
-    */
-   /* available styles:
-    * default
-    */
-
    /* datefield */
    typedef enum _Elm_Datefield_Layout
      {
@@ -2420,19 +2351,6 @@ extern "C" {
    EAPI void         elm_actionsheet_button_add(Evas_Object *obj, const Elm_Actionsheet_Button_Type type, const char *title, void (*button_clicked_cb) (void *data, Evas_Object *obj, void *event_info), void *event_info);
    EAPI int          elm_actionsheet_button_title_get(Evas_Object *obj, const int index, char **title);
 
-   /* Toolbar 2 */
-   typedef struct _Elm_Toolbar2_Item Elm_Toolbar2_Item;
-   EINA_DEPRECATED EAPI Evas_Object *elm_toolbar2_add(Evas_Object *parent);
-   EINA_DEPRECATED EAPI void         elm_toolbar2_icon_size_set(Evas_Object *obj, int icon_size);
-   EINA_DEPRECATED EAPI int          elm_toolbar2_icon_size_get(Evas_Object *obj);
-   EINA_DEPRECATED EAPI Elm_Toolbar2_Item *elm_toolbar2_item_add(Evas_Object *obj, Evas_Object *icon, const char *label, void (*func) (void *data, Evas_Object *obj, void *event_info), const void *data);
-   EINA_DEPRECATED EAPI Evas_Object *elm_toolbar2_item_icon_get(Elm_Toolbar2_Item *item);
-   EINA_DEPRECATED EAPI void         elm_toolbar2_item_del(Elm_Toolbar2_Item *it);
-   EINA_DEPRECATED EAPI void         elm_toolbar2_item_del_cb_set(Elm_Toolbar2_Item *it, void (*func)(void *data, Evas_Object *obj, void *event_info));
-   EINA_DEPRECATED EAPI void         elm_toolbar2_scrollable_set(Evas_Object *obj, Eina_Bool scrollable);
-   EINA_DEPRECATED EAPI void         elm_toolbar2_homogenous_set(Evas_Object *obj, Eina_Bool homogenous);
-   EINA_DEPRECATED EAPI void         elm_toolbar2_align_set(Evas_Object *obj, double align);
-
    /* colorpicker */
    EAPI Evas_Object *elm_colorpicker_add(Evas_Object *parent);
    EAPI void         elm_colorpicker_color_set(Evas_Object *obj, int r, int g , int b);
@@ -2556,50 +2474,6 @@ extern "C" {
     * "indicator,position" - when a button reaches to the special position like "left", "right" and "center".
     */
    
-   /* zoomcontrols */
-   EINA_DEPRECATED EAPI Evas_Object *elm_zoomcontrols_add(Evas_Object *parent);
-   EINA_DEPRECATED EAPI void         elm_zoomcontrols_range_set(Evas_Object *obj, int range);
-   /* smart callbacks called:
-    * "up_clicked" - when up button of zoomcontrols is clicked 
-    * "down_clicked" - when down button of zoomcontrols is clicked
-    */         
-
-   /* viewflipper */
-   typedef enum _Elm_Viewflipper_Policy
-     {
-        ERROR_0  = -1,    //can not find wanted value
-        SUCCESS =0,
-        FLIP_RANGE_X =30, 
-        ERROR_1  =1001,        //confrim parameter is layout or not
-        ERROR_2 ,      //confrim memory check
-        ERROR_3 ,      //data is empty
-        ERROR_4 ,      //check the range
-        ERROR_5 ,      //Non need operation
-        ERROR_6 ,      //waiting gui
-        ERROR_7 ,      //timer second is not setup or can not time setup
-        DIR_LEFT ,
-        DIR_RIGHT ,
-        EACH_LAST 
-     } Elm_Viewflipper_Policy;
-   EINA_DEPRECATED EAPI int          elm_viewflipper_isFlipbutton();
-   EINA_DEPRECATED EAPI int          elm_viewflipper_isAutoStart();
-   EINA_DEPRECATED EAPI int          elm_viewflipper_isValidPos(int pos);
-   EINA_DEPRECATED EAPI int          elm_viewflipper_addChild(Evas_Object * child_layout);
-   EINA_DEPRECATED EAPI int          elm_viewflipper_removeChild(Evas_Object * child_layout);
-   EINA_DEPRECATED EAPI int          elm_viewflipper_removeChildAt(int pos);
-   EINA_DEPRECATED EAPI int          elm_viewflipper_getPositionChild(Evas_Object * child_layout);
-   EINA_DEPRECATED EAPI Evas_Object *elm_viewflipper_getChildAt(int pos);
-   EINA_DEPRECATED EAPI int          elm_viewflipper_getCountChild();
-   EINA_DEPRECATED EAPI int          elm_viewflipper_setDisplayedChild(int pos);
-   EINA_DEPRECATED EAPI int          elm_viewflipper_setNowView();
-   EINA_DEPRECATED EAPI int          elm_viewflipper_setNextView();
-   EINA_DEPRECATED EAPI int          elm_viewflipper_setPreviousView();
-   EINA_DEPRECATED EAPI int          elm_viewflipper_setFlipInterval(int milliseconds);
-   EINA_DEPRECATED EAPI int          elm_viewflipper_setFlipbutton(int showbutton);
-   EINA_DEPRECATED EAPI int          elm_viewflipper_startAutoFlippingWithOption(int drection,int pos); 
-   EINA_DEPRECATED EAPI int          elm_viewflipper_startAutoFlipping();
-   EINA_DEPRECATED EAPI int          elm_viewflipper_stopAutoFlipping();
-          
    /* gallery */
    struct _Elm_Gallery_Item 
      {
@@ -2647,25 +2521,6 @@ extern "C" {
    EAPI void         elm_slidingdrawer_max_drag_value_set(Evas_Object *obj, double dw,  double dh);
    EAPI void         elm_slidingdrawer_drag_value_set(Evas_Object *obj, double dx, double dy);
    
-   /* wipercontrol*/
-   EINA_DEPRECATED EAPI Evas_Object *elm_wipercontrol_add(Evas_Object *parent);
-   EINA_DEPRECATED EAPI void         elm_wipercontrol_below_content_set (Evas_Object *obj, Evas_Object *content);
-   EINA_DEPRECATED EAPI void         elm_wipercontrol_above_content_set (Evas_Object *obj, Evas_Object *content);
-
-   /* AnalogClock */
-   EINA_DEPRECATED EAPI Evas_Object *elm_analogclock_add(Evas_Object *parent);
-
-   /* ratingbar */
-   EINA_DEPRECATED EAPI Evas_Object *elm_ratingbar_add(Evas_Object *parent);
-   EINA_DEPRECATED EAPI void         elm_ratingbar_rating_set(Evas_Object *obj, int rating);
-   EINA_DEPRECATED EAPI int          elm_ratingbar_rating_get(Evas_Object *obj);
-   /* smart callback called:
-    * "changed" - when a rating is changed
-    */
-   /* available styles:
-    * default
-    */
    /* multibuttonentry */
    typedef struct _Multibuttonentry_Item Elm_Multibuttonentry_Item;
    EAPI Evas_Object               *elm_multibuttonentry_add(Evas_Object *parent);
@@ -2714,15 +2569,6 @@ extern "C" {
     * default
     */
 
-   /* chronometer */
-   EINA_DEPRECATED EAPI Evas_Object *elm_chronometer_add(Evas_Object *parent);
-   EINA_DEPRECATED EAPI void         elm_chronometer_start(Evas_Object *obj);
-   EINA_DEPRECATED EAPI void         elm_chronometer_stop(Evas_Object *obj);
-   EINA_DEPRECATED EAPI void         elm_chronometer_time_set(Evas_Object *obj, int hrs, int min, int sec);
-   EINA_DEPRECATED EAPI void         elm_chronometer_time_get(const Evas_Object *obj, int *hrs, int *min, int *sec);
-   EINA_DEPRECATED EAPI void         elm_chronometer_format_set(Evas_Object *obj, Eina_Bool format);
-   EINA_DEPRECATED EAPI void         elm_chronometer_format_get(Evas_Object *obj, Eina_Bool *format);
-
    /* dialoguegroup */
    typedef struct _Dialogue_Item Dialogue_Item;
    
@@ -2765,46 +2611,6 @@ extern "C" {
    EAPI void         elm_autocompleteview_match_func_set(Evas_Object *obj, elmautocompleteview_matchfunction func, void *data);
    EAPI void         elm_autocompleteview_text_update(Evas_Object *obj, char *text);
 
-   /* coverflow */
-   typedef struct _Coverflow_Item Elm_Coverflow_Item;
-   typedef struct _Coverflow_Item_Class 
-     {
-        void (*CoverflowItemGenFunc)(void* data, Evas_Object* obj);
-        void (*CoverflowItemDelFunc)(void* data, Evas_Object* obj); 
-     } Elm_Coverflow_Item_Class;
-  
-   EINA_DEPRECATED EAPI Evas_Object *elm_coverflow_add( Evas_Object* parent );
-   EINA_DEPRECATED EAPI Elm_Coverflow_Item* elm_coverflow_item_append( Evas_Object* obj, Elm_Coverflow_Item_Class* cic, void* data, void (*func)(void* data, Evas_Object* obj, void* event_info ), void* func_data );
-   EINA_DEPRECATED EAPI void         elm_coverflow_clear( Evas_Object* obj );
-
-   /* Cabinet */
-   typedef struct _Cabinet_Item Elm_Cabinet_Item;
-   EINA_DEPRECATED EAPI Evas_Object        *elm_cabinet_add(Evas_Object *parent);
-   EINA_DEPRECATED EAPI void                elm_cabinet_next(Evas_Object *obj);
-   EINA_DEPRECATED EAPI void                elm_cabinet_prev(Evas_Object *obj);
-   EINA_DEPRECATED EAPI Eina_Bool           elm_cabinet_bounce_get(Evas_Object *obj);
-   EINA_DEPRECATED EAPI void                elm_cabinet_bounce_set(Evas_Object *obj, Eina_Bool bounce);
-   EINA_DEPRECATED EAPI Elm_Cabinet_Item   *elm_cabinet_item_append(Evas_Object *obj, const char *label, void (*func)(void *data, Evas_Object *obj, void *event_info), void *data);
-   EINA_DEPRECATED EAPI Elm_Cabinet_Item   *elm_cabinet_item_prepend(Evas_Object *obj, const char *label, void (*func)(void *data, Evas_Object *obj, void *event_info), void *data);
-   EINA_DEPRECATED EAPI const Eina_List    *elm_cabinet_items_get(Evas_Object *obj);
-   EINA_DEPRECATED EAPI Elm_Cabinet_Item   *elm_cabinet_first_item_get(Evas_Object *obj);
-   EINA_DEPRECATED EAPI Elm_Cabinet_Item   *elm_cabinet_last_item_get(Evas_Object *obj);
-   EINA_DEPRECATED EAPI Elm_Cabinet_Item   *elm_cabinet_selected_item_get(Evas_Object *obj);
-   EINA_DEPRECATED EAPI void                elm_cabinet_item_selected_set(Elm_Cabinet_Item *item);
-   EINA_DEPRECATED EAPI void                elm_cabinet_item_del(Elm_Cabinet_Item *item);
-   EINA_DEPRECATED EAPI const char         *elm_cabinet_item_label_get(Elm_Cabinet_Item *item);
-   EINA_DEPRECATED EAPI void                elm_cabinet_item_label_set(Elm_Cabinet_Item *item, const char *label);
-   EINA_DEPRECATED EAPI const char         *elm_cabinet_item_sub_info_get(Elm_Cabinet_Item *item);
-   EINA_DEPRECATED EAPI void                elm_cabinet_item_sub_info_set(Elm_Cabinet_Item *item, const char *sub_info);
-   EINA_DEPRECATED EAPI Elm_Cabinet_Item   *elm_cabinet_item_prev(Elm_Cabinet_Item *item);
-   EINA_DEPRECATED EAPI Elm_Cabinet_Item   *elm_cabinet_item_next(Elm_Cabinet_Item *item);
-   EINA_DEPRECATED EAPI void               *elm_cabinet_item_data_get(Elm_Cabinet_Item *item);
-   EINA_DEPRECATED EAPI void                elm_cabinet_item_data_set(Elm_Cabinet_Item *item, void *data);
-   EINA_DEPRECATED EAPI Eina_Bool           elm_cabinet_item_del_btn_disabled_get(Elm_Cabinet_Item *item);
-   EINA_DEPRECATED EAPI void                elm_cabinet_item_del_btn_disabled_set(Elm_Cabinet_Item *item, Eina_Bool disabled);
-   EINA_DEPRECATED EAPI Eina_Bool           elm_cabinet_item_sub_info_disabled_get(Elm_Cabinet_Item *item);
-   EINA_DEPRECATED EAPI void                elm_cabinet_item_sub_info_disabled_set(Elm_Cabinet_Item *item, Eina_Bool disabled);
-
    /* Dayselector */
    typedef enum 
      { 
index 1fd505c..c5590f6 100644 (file)
@@ -55,7 +55,6 @@ elm_entry.c \
 elm_bubble.c \
 elm_photo.c \
 elm_toolbar.c \
-elm_toolbar2.c \
 elm_searchbar.c \
 elm_list.c \
 elm_carousel.c \
@@ -83,12 +82,8 @@ elm_conform.c \
 elm_mapbuf.c \
 elm_picker.c \
 elm_discpicker.c \
-elm_buttonpicker.c \
 elm_timepicker.c \
-elm_timepicker3.c \
 elm_datepicker.c \
-elm_datepicker2.c \
-elm_datepicker3.c \
 elm_thumb.c \
 elm_config.c \
 elm_titlebar.c \
@@ -111,18 +106,11 @@ elm_softkey.c \
 elm_actionslider.c \
 elm_hor_scroller.c \
 elm_autocompleteview.c \
-elm_zoomcontrols.c \
 elm_controlbar.c \
-elm_viewflipper.c \
 elm_gallery.c \
 elm_slidingdrawer.c \ 
 elm_wipercontrol.c \
-elm_analogclock.c \
-elm_ratingbar.c \
-elm_chronometer.c \
 elm_dialoguegroup.c \
-elm_coverflow.c \
-elm_cabinet.c \
 elm_dayselector.c \
 elm_cnp_helper.c \
 elm_cbhm_helper.c \
diff --git a/src/lib/elm_buttonpicker.c b/src/lib/elm_buttonpicker.c
deleted file mode 100644 (file)
index 8e985cf..0000000
+++ /dev/null
@@ -1,672 +0,0 @@
-#include <Elementary.h>
-#include "elm_priv.h"
-
-/**
- * @defgroup Buttonpicker Buttonpicker
- * @ingroup Elementary
- *
- * This is a buttonpicker.
- */
-
-
-#define LONGPRESS_START_INTERVAL (0.7)
-#define UPDATE_INTERVAL (0.1)
-
-
-
-struct _Buttonpicker_Item {
-       Evas_Object *buttonpicker;
-       const char *label;
-       void (*func)(void *data, Evas_Object *obj, void *event_info);
-       void *data;
-       int walking;
-  int delete_me : 1;
-};
-
-typedef struct _Widget_Data Widget_Data;
-
-struct _Widget_Data {
-       Evas_Object *base;
-       Eina_List *items;
-       Eina_List *current;
-       int item_num;
-       unsigned char ani_lock;
-
-       Ecore_Timer *top_timer;
-       bool top_pressed;
-       bool top_count;
-       
-       Ecore_Timer *bottom_timer;
-       bool bottom_pressed;
-       bool bottom_count;
-};
-
-
-
-static void _del_hook(Evas_Object *obj);
-static void _theme_hook(Evas_Object *obj);
-static void _sizing_eval(Evas_Object *obj);
-static void _update_buttonpicker(Evas_Object *obj);
-static void    _changed(Evas_Object *obj);
-static void    _item_del(Elm_Buttonpicker_Item *item);
-
-
-
-static void
-_del_hook(Evas_Object *obj)
-{
-       Widget_Data *wd = elm_widget_data_get(obj);
-       if (!wd) return;
-       if (wd->items) {
-               Elm_Buttonpicker_Item *item;
-               EINA_LIST_FREE(wd->items, item) {
-                       if (item->label)
-                               eina_stringshare_del(item->label);
-                       free(item);
-               }
-       }
-       free(wd);
-}
-
-static void
-_theme_hook(Evas_Object *obj)
-{
-       Widget_Data *wd = elm_widget_data_get(obj);
-       if (!wd) return;
-       _elm_theme_object_set(obj, wd->base, "buttonpicker", "base", elm_widget_style_get(obj));
-       _update_buttonpicker(obj);
-       _sizing_eval(obj);
-}
-
-static void
-_sizing_eval(Evas_Object *obj)
-{
-       Widget_Data *wd = elm_widget_data_get(obj);
-       Evas_Coord minw = -1, minh = -1, maxw = -1, maxh = -1;
-
-       if (!wd) return;
-       elm_coords_finger_size_adjust(1, &minw, 1, &minh);
-       edje_object_size_min_restricted_calc(wd->base, &minw, &minh, minw, minh);
-       elm_coords_finger_size_adjust(1, &minw, 1, &minh);
-       evas_object_size_hint_min_set(obj, minw, minh);
-       evas_object_size_hint_max_set(obj, maxw, maxh);
-}
-
-static void
-_update_buttonpicker(Evas_Object *obj)
-{
-       Widget_Data *wd = elm_widget_data_get(obj);
-       const char *label = NULL;
-       Elm_Buttonpicker_Item *item;
-
-       if (!wd) return;
-       if (wd->current) {
-               item = eina_list_data_get(wd->current);
-               if (item && item->label)
-                       label = item->label;
-       }
-
-       if (label)
-               edje_object_part_text_set(wd->base, "elm.text", label);
-
-       _sizing_eval(obj);
-}
-
-static void
-_set_next(Evas_Object *obj)
-{
-       Widget_Data *wd = elm_widget_data_get(obj);     
-       if (!wd || !wd->current || !wd->items) return;  
-       if (eina_list_count(wd->items) <= 1) return;
-       wd->current = eina_list_next(wd->current);
-       if (!wd->current) {
-               wd->current = wd->items;
-               evas_object_smart_callback_call(obj, "overflowed", eina_list_data_get(wd->current));
-       }
-       _update_buttonpicker(obj);
-       _changed(obj);
-}
-
-static void
-_top_timer_del(Evas_Object *obj)
-{
-       Widget_Data *wd = elm_widget_data_get(obj);
-       if (!wd) return;
-
-       if(wd->top_timer){
-               ecore_timer_del(wd->top_timer);
-               wd->top_timer = NULL;   
-       }
-       wd->top_count = FALSE;          
-}
-
-static int 
-_top_timer_cb(void *data)
-{
-       Evas_Object *obj = (Evas_Object *)data;
-       Widget_Data *wd = elm_widget_data_get(obj);
-       if (!wd) return 0;
-       
-       if (wd->top_pressed == FALSE) {
-               _top_timer_del(obj);    
-               return 0;
-       }
-
-       if(wd->top_count == FALSE){     // set the timer interval again
-               wd->top_count = TRUE;
-               ecore_timer_interval_set(wd->top_timer, UPDATE_INTERVAL);
-       }else{ 
-               _set_next(obj);
-       }
-       
-       return 1;
-}
-
-static void
-_top_down(void *data, Evas_Object *obj, const char *emission, const char *source)
-{
-       Widget_Data *wd = elm_widget_data_get(data);
-       if (!wd) return;
-
-       wd->top_pressed = TRUE;
-       edje_object_signal_emit(obj, "elm,bg,top,pressed", "elm.bg.top");
-       _top_timer_del(data);           
-       wd->top_timer = ecore_timer_add(LONGPRESS_START_INTERVAL, (void *)_top_timer_cb, data);
-}
-
-static void
-_top_up(void *data, Evas_Object *obj, const char *emission, const char *source)
-{
-       Widget_Data *wd = elm_widget_data_get(data);    
-       if (!wd ) return;
-       
-       wd->top_pressed = FALSE;
-       edje_object_signal_emit(obj, "elm,bg,top,released", "elm.bg.top");
-       _top_timer_del(data);   
-       _set_next(data);
-}
-
-
-static void
-_set_prev(Evas_Object *obj)
-{
-       Widget_Data *wd = elm_widget_data_get(obj);             
-       if (!wd || !wd->current || !wd->items) return;
-       if (eina_list_count(wd->items) <= 1) return;
-       if (wd->current == wd->items) {
-               wd->current = eina_list_last(wd->items);
-               evas_object_smart_callback_call(obj, "underflowed", eina_list_data_get(wd->current));
-       } else {
-               wd->current = eina_list_prev(wd->current);
-       }
-       _update_buttonpicker(obj);
-       _changed(obj);
-}
-
-static void
-_bottom_timer_del(Evas_Object *obj)
-{
-       Widget_Data *wd = elm_widget_data_get(obj);
-       if (!wd) return;
-
-       if(wd->bottom_timer){
-               ecore_timer_del(wd->bottom_timer);
-               wd->bottom_timer = NULL;        
-       }
-       wd->bottom_count = FALSE;               
-}
-
-static int 
-_bottom_timer_cb(void *data)
-{
-       Evas_Object *obj = (Evas_Object *)data;
-       Widget_Data *wd = elm_widget_data_get(obj);
-       if (!wd) return 0;
-       
-       if (wd->bottom_pressed == FALSE) {
-               _bottom_timer_del(obj); 
-               return 0;
-       }
-
-       if(wd->bottom_count == FALSE){  // set the timer interval again
-               wd->bottom_count = TRUE;
-               ecore_timer_interval_set(wd->bottom_timer, UPDATE_INTERVAL);
-       }else{ 
-               _set_prev(obj);
-       }
-       
-       return 1;
-}
-
-static void
-_bottom_down(void *data, Evas_Object *obj, const char *emission, const char *source)
-{
-       Widget_Data *wd = elm_widget_data_get(data);
-       if (!wd) return;
-       
-       wd->bottom_pressed = TRUE;
-       edje_object_signal_emit(obj, "elm,bg,bottom,pressed", "elm.bg.bottom");
-       _bottom_timer_del(data);                
-       wd->bottom_timer = ecore_timer_add(LONGPRESS_START_INTERVAL, (void *)_bottom_timer_cb, data);
-}
-
-static void
-_bottom_up(void *data, Evas_Object *obj, const char *emission, const char *source)
-{
-       Widget_Data *wd = elm_widget_data_get(data);
-       if (!wd) return;
-
-       wd->bottom_pressed = FALSE;
-       edje_object_signal_emit(obj, "elm,bg,bottom,released", "elm.bg.bottom");
-       _bottom_timer_del(data);        
-       _set_prev(data);
-}
-
-static void
-_changed(Evas_Object *obj)
-{
-       Widget_Data *wd = elm_widget_data_get(obj);
-       Elm_Buttonpicker_Item *item;
-       if (!wd || !wd->current) return;
-
-       item = eina_list_data_get(wd->current);
-       if (!item) return;
-
-       item->walking++;
-
-       if (item->func)
-         item->func(item->data, obj, item);
-       if (!item->delete_me) 
-         evas_object_smart_callback_call(obj, "changed", eina_list_data_get(wd->current));
-
-       item->walking--;
-
-       if (!item->walking && item->delete_me)
-         _item_del(item);
-}
-
-static void
-_item_del(Elm_Buttonpicker_Item *item)
-{
-       Eina_List *l;
-       Elm_Buttonpicker_Item *_item;
-       Widget_Data *wd;
-
-       wd = elm_widget_data_get(item->buttonpicker);
-       if (!wd) return;
-
-       EINA_LIST_FOREACH(wd->items, l, _item) {
-               if (_item == item) {
-                       if (wd->current == l)
-                               wd->current = eina_list_prev(wd->current);
-                       wd->items = eina_list_remove(wd->items, _item);
-                       if (!wd->current)
-                               wd->current = wd->items;
-                       _update_buttonpicker(item->buttonpicker);
-                       free(_item);
-                       break;
-               }
-       }
-}
-
-/**
- * Add a new buttonpicker to the parent
- *
- * @param parent The parent object
- * @return The new object or NULL if it cannot be created
- *
- * @ingroup Buttonpicker
- */
-EAPI Evas_Object *
-elm_buttonpicker_add(Evas_Object *parent)
-{
-       Evas_Object *obj;
-       Evas *e;
-       Widget_Data *wd;
-
-       wd = ELM_NEW(Widget_Data);
-       e = evas_object_evas_get(parent);
-       obj = elm_widget_add(e);
-       elm_widget_type_set(obj, "buttonpicker");
-       elm_widget_sub_object_add(parent, obj);
-       elm_widget_data_set(obj, wd);
-
-       elm_widget_del_hook_set(obj, _del_hook);
-       elm_widget_theme_hook_set(obj, _theme_hook);
-
-       wd->base = edje_object_add(e);
-       _elm_theme_object_set(obj, wd->base, "buttonpicker", "base", "default");
-       elm_widget_resize_object_set(obj, wd->base);
-
-       wd->top_pressed = FALSE;
-       wd->top_count = FALSE;
-       wd->bottom_pressed = FALSE;
-       wd->bottom_count = FALSE;
-
-       edje_object_signal_callback_add(wd->base, "mouse,down,1", "elm.bg.top", _top_down, obj);
-       edje_object_signal_callback_add(wd->base, "mouse,up,1", "elm.bg.top", _top_up, obj);
-       edje_object_signal_callback_add(wd->base, "mouse,down,1", "elm.bg.bottom", _bottom_down, obj);
-       edje_object_signal_callback_add(wd->base, "mouse,up,1", "elm.bg.bottom", _bottom_up, obj);
-
-       _sizing_eval(obj);
-       return obj;
-}
-
-/**
- * Select next item of buttonpicker
- *
- * @param obj The buttonpicker object
- *
- * @ingroup Buttonpicker
- */
-EAPI void
-elm_buttonpicker_next(Evas_Object *obj)
-{
-       Widget_Data *wd = elm_widget_data_get(obj);
-       if (!wd) return;
-       _top_up(obj, wd->base, "mouse,up,1", "elm.bg.top");
-}
-
-/**
- * Select previous item of buttonpicker
- *
- * @param obj The buttonpicker object
- *
- * @ingroup Buttonpicker
- */
-EAPI void
-elm_buttonpicker_prev(Evas_Object *obj)
-{
-       Widget_Data *wd = elm_widget_data_get(obj);
-       if (!wd) return;
-       _bottom_up(obj, wd->base, "mouse,up,1", "elm.bg.bottom");
-}
-
-/**
- * Append item to the end of buttonpicker
- *
- * @param obj The buttonpicker object
- * @param label The label of new item
- * @param func Convenience function called when item selected
- * @param data Data passed to @p func above
- * @return A handle to the item added or NULL if not possible
- *
- * @ingroup Buttonpicker
- */
-EAPI Elm_Buttonpicker_Item *
-elm_buttonpicker_item_append(Evas_Object *obj, const char *label, void (*func)(void *data, Evas_Object *obj, void *event_info), void *data)
-{
-       Elm_Buttonpicker_Item *item;
-       Widget_Data *wd = elm_widget_data_get(obj);
-       if (!wd) return NULL;
-
-       item = ELM_NEW(Elm_Buttonpicker_Item);
-       if (item) {
-               if (label)
-                       item->label = eina_stringshare_add(label);
-               item->func = func;
-               item->data = data;
-               item->buttonpicker = obj;
-               wd->items = eina_list_append(wd->items, item);
-               if (!wd->current) {
-                       wd->current = wd->items;
-                       _update_buttonpicker(obj);
-               }
-       }
-       return item;
-}
-
-/**
- * Prepend item at start of buttonpicker
- *
- * @param obj The buttonpicker object
- * @param label The label of new item
- * @param func Convenience function called when item selected
- * @param data Data passed to @p func above
- * @return A handle to the item added or NULL if not possible
- *
- * @ingroup Buttonpicker
- */
-EAPI Elm_Buttonpicker_Item *
-elm_buttonpicker_item_prepend(Evas_Object *obj, const char *label, void (*func)(void *data, Evas_Object *obj, void *event_info), void *data)
-{
-       Elm_Buttonpicker_Item *item;
-       Widget_Data *wd = elm_widget_data_get(obj);
-       if (!wd) return NULL;
-
-       item = ELM_NEW(Elm_Buttonpicker_Item);
-       if (item) {
-               if (label)
-                       item->label = eina_stringshare_add(label);
-               item->func = func;
-               item->data = data;
-               item->buttonpicker = obj;
-               wd->items = eina_list_prepend(wd->items, item);
-               if (!wd->current) {
-                       wd->current = wd->items;
-                       _update_buttonpicker(obj);
-               }
-       }
-       return item;
-}
-
-/**
- * Get a list of items in the buttonpicker
- *
- * @param obj The buttonpicker object
- * @return The list of items, or NULL if none
- *
- * @ingroup Buttonpicker
- */
-EAPI const Eina_List *
-elm_buttonpicker_items_get(Evas_Object *obj)
-{
-       Widget_Data *wd = elm_widget_data_get(obj);
-       if (!wd) return NULL;
-       return wd->items;
-}
-
-/**
- * Get the first item in the buttonpicker
- *
- * @param obj The buttonpicker object
- * @return The first item, or NULL if none
- *
- * @ingroup Buttonpicker
- */
-EAPI Elm_Buttonpicker_Item *
-elm_buttonpicker_first_item_get(Evas_Object *obj)
-{
-       Widget_Data *wd;
-
-       if (!obj) return NULL;
-       wd = elm_widget_data_get(obj);
-       if (!wd || !wd->items) return NULL;
-       return eina_list_data_get(wd->items);
-}
-
-/**
- * Get the last item in the buttonpicker
- *
- * @param obj The buttonpicker object
- * @return The last item, or NULL if none
- *
- * @ingroup Buttonpicker
- */
-EAPI Elm_Buttonpicker_Item *
-elm_buttonpicker_last_item_get(Evas_Object *obj)
-{
-       Widget_Data *wd;
-       if (!obj) return NULL;
-       wd = elm_widget_data_get(obj);
-       if (!wd || !wd->items) return NULL;
-       return eina_list_data_get(eina_list_last(wd->items));
-}
-
-/**
- * Get the selected item in the buttonpicker
- *
- * @param obj The buttonpicker object
- * @return The selected item, or NULL if none
- *
- * @ingroup Buttonpicker
- */
-EAPI Elm_Buttonpicker_Item *
-elm_buttonpicker_selected_item_get(Evas_Object *obj)
-{
-       Widget_Data *wd = elm_widget_data_get(obj);
-       if (!wd || !wd->current) return NULL;
-       return eina_list_data_get(wd->current);
-}
-
-/**
- * Set the selected state of an item
- *
- * @param item The item
- *
- * @ingroup Buttonpicker
- */
-EAPI void
-elm_buttonpicker_item_selected_set(Elm_Buttonpicker_Item *item)
-{
-       Widget_Data *wd;
-       Eina_List *l;
-       Elm_Buttonpicker_Item *_item;
-
-       if (!item) return;
-       wd = elm_widget_data_get(item->buttonpicker);
-       if (!wd) return;
-
-       EINA_LIST_FOREACH(wd->items, l, _item) {
-               if (_item == item) {
-                       wd->current = l;
-                       _update_buttonpicker(item->buttonpicker);
-               }
-       }
-}
-
-/**
- * Delete a given item
- *
- * @param item The item
- *
- * @ingroup Buttonpicker
- */
-EAPI void
-elm_buttonpicker_item_del(Elm_Buttonpicker_Item *item)
-{
-       if (!item) return;
-       if (item->walking > 0)
-         item->delete_me = EINA_TRUE;
-       else
-         _item_del(item);
-}
-
-/**
- * Get the label of a given item
- *
- * @param item The item
- * @return The label of a given item, or NULL if none
- *
- * @ingroup Buttonpicker
- */
-EAPI const char *
-elm_buttonpicker_item_label_get(Elm_Buttonpicker_Item *item)
-{
-       Widget_Data *wd;
-       Eina_List *l;
-       Elm_Buttonpicker_Item *_item;
-
-       if (!item) return NULL;
-       wd = elm_widget_data_get(item->buttonpicker);
-       if (!wd || !wd->items) return NULL;
-
-       EINA_LIST_FOREACH(wd->items, l, _item)
-               if (_item == item)
-                       return item->label;
-
-       return NULL;
-}
-
-/**
- * Set the label of a given item
- *
- * @param item The item
- * @param label The text label string in UTF-8
- *
- * @ingroup Buttonpicker
- */
-EAPI void
-elm_buttonpicker_item_label_set(Elm_Buttonpicker_Item *item, const char *label)
-{
-       Widget_Data *wd;
-       Eina_List *l;
-       Elm_Buttonpicker_Item *_item;
-
-       if (!item || !label) return;
-       wd = elm_widget_data_get(item->buttonpicker);
-       if (!wd || !wd->items) return;
-
-       EINA_LIST_FOREACH(wd->items, l, _item)
-               if (_item == item) {
-                       eina_stringshare_del(item->label);
-                       item->label = eina_stringshare_add(label);
-                       _update_buttonpicker(item->buttonpicker);
-               }
-}
-
-/**
- * Get the previous item in the buttonpicker
- *
- * @param item The item
- * @return The item before the item @p item
- *
- * @ingroup Buttonpicker
- */
-EAPI Elm_Buttonpicker_Item *
-elm_buttonpicker_item_prev(Elm_Buttonpicker_Item *item)
-{
-       Widget_Data *wd;
-       Eina_List *l;
-       Elm_Buttonpicker_Item *_item;
-
-       if (!item) return NULL;
-       wd = elm_widget_data_get(item->buttonpicker);
-       if (!wd || !wd->items) return NULL;
-
-       EINA_LIST_FOREACH(wd->items, l, _item)
-               if (_item == item) {
-                       l = eina_list_prev(l);
-                       if (!l) return NULL;
-                       return eina_list_data_get(l);
-               }
-       return NULL;
-}
-
-/**
- * Get the next item in the buttonpicker
- *
- * @param item The item
- * @return The item after the item @p item
- *
- * @ingroup Buttonpicker
- */
-EAPI Elm_Buttonpicker_Item *
-elm_buttonpicker_item_next(Elm_Buttonpicker_Item *item)
-{
-       Widget_Data *wd;
-       Eina_List *l;
-       Elm_Buttonpicker_Item *_item;
-
-       if (!item) return NULL;
-       wd = elm_widget_data_get(item->buttonpicker);
-       if (!wd || !wd->items) return NULL;
-
-       EINA_LIST_FOREACH(wd->items, l, _item)
-               if (_item == item) {
-                       l = eina_list_next(l);
-                       if (!l) return NULL;
-                       return eina_list_data_get(l);
-               }
-       return NULL;
-}
diff --git a/src/lib/elm_cabinet.c b/src/lib/elm_cabinet.c
deleted file mode 100644 (file)
index 4618e85..0000000
+++ /dev/null
@@ -1,1097 +0,0 @@
-#include <Elementary.h>
-#include <math.h>
-#include "elm_priv.h"
-
-#define CELL_ITEM_NUMS (9)
-#define PI (3.141592)
-#define RADIAN_STEP (PI/14)
-#define MOUSE_MOVE_SAMPLE (5)
-#define SCALE_DOWN_FACTOR (0.25)
-#define VISIBLE_CONTENT_NUMS (2)
-#define DEF_ITEM_HEIGHT (74)
-#define FRAME_RATE (0.03)
-#define V_MIN (50)
-#define ITEM_DEL_MOVE_DISTANCE (30)
-
-//#define SCALE_DOWN_FACTOR (0.125)
-
-/**
- * @defgroup Cabinet Cabinet
- * @ingroup Elementary
- *
- * This is a cabinet.
- */
-struct _Cabinet_Item {
-       Evas_Object *cabinet;
-       const char *label;
-       const char *sub_info;
-       void (*func)(void *data, Evas_Object *obj, void *event_info);
-       void *data;
-       void *priv_data;
-       int btn_disabled : 1;
-       int info_disabled : 1;
-};
-
-typedef struct _Widget_Data Widget_Data;
-struct _Widget_Data {
-       Evas_Object *base;
-       Evas_Object *clip;
-       Evas_Object *cover;
-
-       Eina_List *its;
-       Eina_List *cur;
-       Eina_List *cells;
-       Evas_Coord x, y, w, h;
-       double rad_step, rad_gap, rad_tmp;
-       double v;
-       Evas_Coord d, item_d, item_h;
-       int item_cnt;
-
-       unsigned int prev_evt_t;
-       Evas_Coord prev_evt_y;
-       Evas_Coord_Point down_point;
-       Elm_Animator *ani;
-       Ecore_Timer *scroll_ani;
-
-       int bounce_enable : 1;
-       int bounce_flag : 1;
-       int item_del_flag : 1;
-       int dragged : 1;
-};
-
-static void _del_hook(Evas_Object *obj);
-static void _theme_hook(Evas_Object *obj);
-static void _sizing_eval(Evas_Object *obj);
-static void _mouse_init(Evas_Object *obj);
-
-static void _mouse_down_cb(void *data, Evas *e, Evas_Object *obj, void *event_info);
-static void _mouse_up_cb(void *data, Evas *e, Evas_Object *obj, void *event_info);
-static void _mouse_move_cb(void *data, Evas *e, Evas_Object *obj, void *event_info);
-static void _resize_cb(void *data, Evas *e, Evas_Object *obj, void *event_info);
-static void _move_cb(void *data, Evas *e, Evas_Object *obj, void *event_info);
-
-static Eina_List *_cells_add(Evas_Object *obj);
-static void _cells_del(Evas_Object *obj);
-static void _cells_update(Evas_Object *obj);
-static double _rad_next_get(Widget_Data *wd, double rad, Evas_Coord_Rectangle *pos);
-static void _items_reorder(Evas_Object *obj);
-
-static void _ani_stop_all(Evas_Object *obj);
-static void _ani_bounce_cb(void *data, Elm_Animator *animator, double frame);
-static void _ani_bounce_done_cb(void *data);
-static void _bounce(Evas_Object *obj);
-static Eina_Bool _ani_scroll_cb(void *data);
-static void _scroll(Evas_Object *obj);
-static void _ani_item_del_cb(void *data, Elm_Animator *animator, double frame);
-static void _ani_item_del_done_cb(void *data);
-static void _item_del(Evas_Object *obj, Evas_Object *item);
-
-static void
-_del_hook(Evas_Object *obj)
-{
-       Widget_Data *wd = elm_widget_data_get(obj);
-       Elm_Cabinet_Item *it;
-
-       if (!wd) return;
-
-       _ani_stop_all(obj);
-       if (wd->its) {
-               EINA_LIST_FREE(wd->its, it) {
-                       if (it->label) eina_stringshare_del(it->label);
-                       free(it);
-               }
-       }
-       free(wd);
-}
-
-static void
-_theme_hook(Evas_Object *obj)
-{
-       Widget_Data *wd = elm_widget_data_get(obj);
-       if (!wd) return;
-       _elm_theme_object_set(obj, wd->base, "cabinet", "base", elm_widget_style_get(obj));
-       _sizing_eval(obj);
-}
-
-static void
-_sizing_eval(Evas_Object *obj)
-{
-       int it_cnt;
-       Widget_Data *wd = elm_widget_data_get(obj);
-       Evas_Coord minw = -1, minh = -1, maxw = -1, maxh = -1;
-
-       if (!wd) return;
-       elm_coords_finger_size_adjust(1, &minw, 1, &minh);
-       edje_object_size_min_restricted_calc(wd->base, &minw, &minh, minw, minh);
-       elm_coords_finger_size_adjust(1, &minw, 1, &minh);
-       evas_object_size_hint_min_set(obj, minw, minh);
-       evas_object_size_hint_max_set(obj, maxw, maxh);
-
-       evas_object_geometry_get(obj, &wd->x, &wd->y, &wd->w, &wd->h);
-       wd->item_h = DEF_ITEM_HEIGHT * elm_scale_get();
-       if (!wd->h) return;
-
-       wd->rad_step = asin((double)wd->item_h / wd->h);
-       if (!wd->rad_step) return;
-       it_cnt = (PI / 2) / wd->rad_step;
-       if (wd->item_cnt != it_cnt) {
-               _cells_del(obj);
-               wd->item_cnt = it_cnt;
-               wd->cells = _cells_add(obj);
-               _cells_update(obj);
-       }
-       
-       wd->item_d = (Evas_Coord) (2 * wd->h * (sin(wd->rad_step / 2)));
-       _cells_update(obj);
-}
-
-static void
-_mouse_init(Evas_Object *obj)
-{
-       Widget_Data *wd = elm_widget_data_get(obj);
-       if (!wd) return;
-       evas_object_event_callback_add(wd->base, EVAS_CALLBACK_MOUSE_DOWN, _mouse_down_cb, obj);
-       evas_object_event_callback_add(wd->base, EVAS_CALLBACK_MOUSE_UP, _mouse_up_cb, obj);
-       evas_object_event_callback_add(wd->base, EVAS_CALLBACK_MOUSE_MOVE, _mouse_move_cb, obj);
-}
-
-static void
-_mouse_down_cb(void *data, Evas *e, Evas_Object *obj, void *event_info)
-{
-       Widget_Data *wd = elm_widget_data_get(data);
-       Evas_Event_Mouse_Down *ev = event_info;
-
-       if (!wd || wd->item_del_flag) return;
-
-       if (wd->ani) {
-               elm_animator_del(wd->ani);
-               wd->ani = NULL;
-       }
-
-       if (wd->scroll_ani) {
-               ecore_timer_del(wd->scroll_ani);
-               wd->scroll_ani = NULL;
-       }
-
-       wd->d = 0;
-       wd->prev_evt_t = ev->timestamp;
-       wd->prev_evt_y = ev->canvas.y;
-
-       wd->dragged = 0;
-       wd->down_point.x = ev->canvas.x;
-       wd->down_point.y = ev->canvas.y;
-}
-
-static void
-_mouse_up_cb(void *data, Evas *e, Evas_Object *obj, void *event_info)
-{
-       unsigned int t;
-       Evas_Coord d;
-       Widget_Data *wd = elm_widget_data_get(data);
-       Evas_Event_Mouse_Up *ev = event_info;
-
-       if (!wd || wd->item_del_flag) return;
-
-       t = ev->timestamp - wd->prev_evt_t;
-       d = ev->canvas.y - wd->prev_evt_y;
-
-       if (wd->bounce_flag || t <= 0) {
-               _bounce(data);
-       } else {
-               wd->d = -d;
-               wd->v = (double)(wd->d) / (double)t * 1000;
-               if (wd->v < V_MIN && wd->v > -V_MIN)
-                       wd->v = wd->v < 0 ? V_MIN : -V_MIN;
-               _scroll(data);
-       }
-       wd->prev_evt_t = 0;
-       wd->prev_evt_y = 0;
-}
-
-static void
-_mouse_move_cb(void *data, Evas *e, Evas_Object *obj, void *event_info)
-{
-       Widget_Data *wd = elm_widget_data_get(data);
-       Evas_Event_Mouse_Move *ev = event_info;
-       unsigned int t;
-       Evas_Coord d;
-       Evas_Coord x, y, distance;
-       static int sample = MOUSE_MOVE_SAMPLE;
-
-       if (!wd) return;
-       
-       if (!wd->dragged) {
-               x = ev->cur.canvas.x - wd->down_point.x;
-               y = ev->cur.canvas.y - wd->down_point.y;
-               distance = (x * x) + (y * y);
-               if (distance >= (elm_finger_size_get() >> 1)) wd->dragged = 1;
-       }
-
-       if (sample) {
-               sample--;
-               return;
-       }
-       sample = MOUSE_MOVE_SAMPLE;
-
-       if (wd->item_del_flag || !ev->timestamp) return;
-
-       if (wd->prev_evt_t) {
-               t = ev->timestamp - wd->prev_evt_t;
-               d = ev->cur.canvas.y - wd->prev_evt_y;
-               wd->d -= d;
-               _items_reorder(data);
-               wd->rad_gap = wd->rad_step * ((double)wd->d / (double)wd->item_d);
-               _cells_update(data);
-       }
-       wd->prev_evt_t = ev->timestamp;
-       wd->prev_evt_y = ev->cur.canvas.y;
-}
-
-static void
-_resize_cb(void *data, Evas *e, Evas_Object *obj, void *event_info)
-{
-       _sizing_eval(data);
-}
-
-static void
-_move_cb(void *data, Evas *e, Evas_Object *obj, void *event_info)
-{
-       _sizing_eval(data);
-}
-
-static void
-_item_del_cb(void *data, Evas_Object *obj, const char *emission, const char *source)
-{
-       Widget_Data *wd = elm_widget_data_get(data);
-       if (!wd || wd->item_del_flag || wd->dragged) return;
-       _ani_stop_all(data);
-       _item_del(data, obj);
-
-}
-
-static void
-_item_sel_cb(void *data, Evas_Object *obj, const char *emission, const char *source)
-{
-       Widget_Data *wd = elm_widget_data_get(data);
-       Elm_Cabinet_Item *it;
-
-       if (!wd) return;
-       if (wd->dragged) return;
-
-       it = evas_object_data_get(obj, "item");
-       if (it && it->func) {
-               it->func(it->data, it->cabinet, it);
-       }
-}
-
-static Eina_List *
-_cells_add(Evas_Object *obj)
-{
-       int i;
-       Evas *e;
-       Eina_List *cells = NULL;
-       Evas_Object *eo;
-       Widget_Data *wd = elm_widget_data_get(obj);
-       if (!wd) return NULL;
-
-       e = evas_object_evas_get(obj);
-       for (i = 0; i < wd->item_cnt; i++) {
-               eo = edje_object_add(e);
-               _elm_theme_object_set(obj, eo, "cabinet/item", "base", elm_widget_style_get(obj));
-               edje_object_signal_callback_add(eo, "elm,action,del", "*", _item_del_cb, obj);
-               edje_object_signal_callback_add(eo, "elm,action,clicked", "*", _item_sel_cb, obj);
-               cells = eina_list_append(cells, eo);
-               elm_widget_sub_object_add(obj, eo);
-               evas_object_smart_member_add(eo, obj);
-               evas_object_clip_set(eo, wd->clip);
-               evas_object_stack_below(eo, wd->base);
-       }
-       return cells;
-}
-
-static void
-_cells_del(Evas_Object *obj)
-{
-       Evas_Object *eo;
-       Widget_Data *wd = elm_widget_data_get(obj);
-
-       if (!wd || !wd->cells) return;
-       EINA_LIST_FREE(wd->cells, eo) evas_object_del(eo);
-}
-
-static void
-_cells_update(Evas_Object *obj)
-{
-       int color;
-       double rad;
-       Eina_List *l, *data;
-       Evas_Object *eo;
-       Elm_Cabinet_Item *it;
-       Widget_Data *wd = elm_widget_data_get(obj);
-       Evas_Coord_Rectangle pos = {0, };
-
-       if (!wd || !wd->cells) return;
-       data = wd->cur;
-       rad = wd->rad_gap;
-
-       EINA_LIST_REVERSE_FOREACH(wd->cells, l, eo) {
-               rad = _rad_next_get(wd, rad, &pos);
-               evas_object_move(eo, pos.x, pos.y);
-               evas_object_resize(eo, pos.w, wd->item_h);
-               
-               if (wd->h - wd->item_h) color = 255 * ((double)pos.y / (wd->h - wd->item_h));
-               else color = 255;
-               evas_object_color_set(eo, color, color, color, 255);
-
-               if (data) {
-                       it = eina_list_data_get(data);
-                       edje_object_part_text_set(eo, "elm.label", it->label);
-                       edje_object_part_text_set(eo, "elm.info_label", it->info_disabled ? NULL : it->sub_info);
-                       edje_object_signal_emit(eo, it->btn_disabled ? "info_disable" : "info_enable", "elm");
-                       data = eina_list_next(data);
-                       evas_object_show(eo);
-                       evas_object_data_set(eo, "item", it);
-               } else {
-                       evas_object_hide(eo);
-                       evas_object_data_set(eo, "item", NULL);
-               }
-       }
-}
-
-static double
-_rad_next_get(Widget_Data *wd, double rad, Evas_Coord_Rectangle *pos)
-{
-       if (rad >= 0) pos->w = wd->w * (cos(rad / 2));
-       else pos->w = wd->w;
-       rad += wd->rad_step;
-       pos->y = (wd->h * (1 - sin(rad))) + wd->y;
-       pos->x = wd->x + ((wd->w - pos->w) >> 1);
-       return rad;
-}
-
-static void
-_items_reorder(Evas_Object *obj)
-{
-       Eina_List *l;
-       Widget_Data *wd = elm_widget_data_get(obj);
-
-       if ((wd->d > 0 && wd->cur == wd->its)
-                       || (wd->d < 0 && wd->cur == eina_list_last(wd->its))) {
-               if (wd->bounce_enable)
-                       wd->bounce_flag = 1;
-               else
-                       wd->d = 0;
-               return;
-       }
-       wd->bounce_flag = 0;
-
-       l = wd->cur;
-       if (wd->d > 0) {
-               do {
-                       if (l) l = eina_list_prev(l);
-                       wd->d -= wd->item_d;
-               } while (wd->d > 0);
-       } else if (wd->d <= -wd->item_d) {
-               do {
-                       l = eina_list_next(l);
-                       if (!l) break;
-                       wd->d += wd->item_d;
-               } while (wd->d <= -wd->item_d);
-               wd->d = 0;
-       }
-
-       if (l) wd->cur = l;
-       return;
-}
-
-
-static void
-_ani_stop_all(Evas_Object *obj)
-{
-       Widget_Data *wd;
-       wd = elm_widget_data_get(obj);
-       if (!wd) return;
-
-       if (wd->ani) {
-               elm_animator_del(wd->ani);
-               wd->ani = NULL;
-       }
-
-       if (wd->scroll_ani) {
-               ecore_timer_del(wd->scroll_ani);
-               wd->scroll_ani = NULL;
-       }
-}
-
-static void
-_ani_bounce_cb(void *data, Elm_Animator *animator, double frame)
-{
-       Widget_Data *wd;
-       wd = elm_widget_data_get(data);
-       if (!wd) return;
-
-       wd->rad_gap = wd->rad_tmp * (1 - frame);
-       _cells_update(data);
-}
-
-static void
-_ani_bounce_done_cb(void *data)
-{
-       Widget_Data *wd = elm_widget_data_get(data);
-       wd->item_del_flag = 0;
-       wd->rad_gap = 0;
-       if (wd->ani) {
-               elm_animator_del(wd->ani);
-               wd->ani = NULL;
-       }
-
-       if (wd->cur)
-               evas_object_smart_callback_call(data, "changed", wd->cur ? eina_list_data_get(wd->cur) : NULL);
-}
-
-static void
-_bounce(Evas_Object *obj)
-{
-       double dur;
-       Widget_Data *wd;
-       wd = elm_widget_data_get(obj);
-       if (!wd || !wd->d) {
-               wd->item_del_flag = 0;
-               return;
-       }
-
-       if (wd->item_del_flag) dur = 0.2;
-       else dur = 0.5;
-
-       wd->d = 0;
-       wd->rad_tmp = wd->rad_gap;
-       if (wd->ani) elm_animator_del(wd->ani);
-       wd->ani = elm_animator_add(obj);
-       elm_animator_curve_style_set(wd->ani, ELM_ANIMATOR_CURVE_OUT);
-       elm_animator_duration_set(wd->ani, dur);
-       elm_animator_operation_callback_set(wd->ani, _ani_bounce_cb, obj);
-       elm_animator_completion_callback_set(wd->ani, _ani_bounce_done_cb, obj);
-       elm_animator_animate(wd->ani);
-}
-
-static Eina_Bool
-_ani_scroll_cb(void *data)
-{
-       Widget_Data *wd;
-       Evas_Coord d;
-       wd = elm_widget_data_get(data);
-       if (!wd) return 0;
-
-       d = wd->v * FRAME_RATE;
-       wd->d += d;
-
-       if (wd->v > (V_MIN >> 1) || wd->v < (-V_MIN >> 1)) {
-               if (wd->cur == eina_list_last(wd->its) || wd->cur == wd->its)
-                       wd->v *= 0.5;
-               else
-                       wd->v *= 0.9;
-       } else {
-               wd->scroll_ani = NULL;
-               _bounce(data);
-               return 0;
-       }
-
-       _items_reorder(data);
-       wd->rad_gap = wd->rad_step * ((double)wd->d / (double)wd->item_d);
-       _cells_update(data);
-
-       return 1;
-}
-
-static void
-_scroll(Evas_Object *obj)
-{
-       Widget_Data *wd;
-       wd = elm_widget_data_get(obj);
-       if (!wd) return;
-
-
-       if (wd->ani) {
-               elm_animator_del(wd->ani);
-               wd->ani = NULL;
-       }
-
-       if (wd->scroll_ani) ecore_timer_del(wd->scroll_ani);
-       wd->scroll_ani = ecore_timer_add(FRAME_RATE, _ani_scroll_cb, obj);
-}
-
-static void
-_ani_item_del_cb(void *data, Elm_Animator *animator, double frame)
-{
-       Evas_Object *it = data;
-       int color;
-       Evas_Coord x, y;
-       x = (Evas_Coord)evas_object_data_get(it, "X");
-       y = (Evas_Coord)evas_object_data_get(it, "Y");
-
-       if (frame == 1) {
-               evas_object_color_set(it, 255, 255, 255, 255);
-       } else {
-               y -= ITEM_DEL_MOVE_DISTANCE * elm_scale_get() * frame;
-               evas_object_move(it, x, y);
-               color = 255 * (1 - frame);
-               evas_object_color_set(it, color, color, color, color);
-       }
-}
-
-static void
-_ani_item_del_done_cb(void *data)
-{
-       Evas_Object *obj;
-       Widget_Data *wd;
-       Eina_List *l;
-       Elm_Cabinet_Item *it, *_it;
-       it = data;
-       if (!it) return;
-       obj = it->cabinet;
-       wd = elm_widget_data_get(obj);
-       if (!wd) return;
-       if (wd->ani) {
-               elm_animator_del(wd->ani);
-               wd->ani = NULL;
-       }
-
-       EINA_LIST_FOREACH(wd->its, l, _it) {
-               if (_it == it) {
-                       wd->its = eina_list_remove_list(wd->its, l);
-                       if (wd->cur == l) {
-                               wd->cur = eina_list_prev(l);
-                               if (!wd->cur) wd->cur = wd->its;
-                       }
-                       evas_object_smart_callback_call(obj, "item,deleted", _it);
-                       free(_it);
-                       break;
-               }
-       }
-
-       _cells_update(obj);
-       if (wd->cur == NULL) {
-               evas_object_smart_callback_call(obj, "item,deleted,all", NULL);
-       } else {
-               _bounce(obj);
-       }
-}
-
-static void
-_item_del(Evas_Object *obj, Evas_Object *item)
-{
-       Evas_Coord x, y;
-       Widget_Data *wd;
-       Elm_Cabinet_Item *it;
-       wd = elm_widget_data_get(obj);
-       if (!wd) return;
-
-       it = evas_object_data_get(item, "item");
-       if (!it) return;
-       wd->item_del_flag = 1;
-
-       evas_object_geometry_get(item, &x, &y, NULL, NULL);
-       evas_object_data_set(item, "X", (void *)x);
-       evas_object_data_set(item, "Y", (void *)y);
-
-       wd->ani = elm_animator_add(obj);
-       elm_animator_curve_style_set(wd->ani, ELM_ANIMATOR_CURVE_OUT);
-       elm_animator_duration_set(wd->ani, 0.5);
-
-       elm_animator_operation_callback_set(wd->ani, _ani_item_del_cb, item);
-       elm_animator_completion_callback_set(wd->ani, _ani_item_del_done_cb, it);
-       elm_animator_animate(wd->ani);
-}
-
-/**
- * Add a new cabinet to the parent
- *
- * @param parent The parent object
- * @return The new object or NULL if it cannot be created
- *
- * @ingroup Cabinet
- */
-EAPI Evas_Object *
-elm_cabinet_add(Evas_Object *parent)
-{
-       Evas_Object *obj;
-       Evas *e;
-       Widget_Data *wd;
-
-       wd = ELM_NEW(Widget_Data);
-       e = evas_object_evas_get(parent);
-       obj = elm_widget_add(e);
-       elm_widget_type_set(obj, "cabinet");
-       elm_widget_sub_object_add(parent, obj);
-       elm_widget_data_set(obj, wd);
-
-       elm_widget_del_hook_set(obj, _del_hook);
-       elm_widget_theme_hook_set(obj, _theme_hook);
-
-       wd->clip = evas_object_rectangle_add(e);
-       elm_widget_resize_object_set(obj, wd->clip);
-       evas_object_event_callback_add(obj, EVAS_CALLBACK_RESIZE, _resize_cb, obj);
-       evas_object_event_callback_add(obj, EVAS_CALLBACK_MOVE, _move_cb, obj);
-
-       wd->base = edje_object_add(e);
-       _elm_theme_object_set(obj, wd->base, "cabinet", "base", "default");
-       elm_widget_hover_object_set(obj, wd->base);
-       evas_object_clip_set(wd->base, wd->clip);
-       evas_object_smart_member_add(wd->base, obj);
-       evas_object_show(wd->base);
-
-       _mouse_init(obj);
-       _sizing_eval(obj);
-       return obj;
-}
-
-EAPI Eina_Bool
-elm_cabinet_bounce_get(Evas_Object *obj)
-{
-       Widget_Data *wd = elm_widget_data_get(obj);
-       if (!wd) return EINA_FALSE;
-       return wd->bounce_enable ? EINA_TRUE : EINA_FALSE;
-}
-
-EAPI void
-elm_cabinet_bounce_set(Evas_Object *obj, Eina_Bool bounce)
-{
-       Widget_Data *wd = elm_widget_data_get(obj);
-       if (!wd) return;
-       wd->bounce_enable = bounce ? 1 : 0;
-}
-
-/**
- * Select next item of cabinet
- *
- * @param obj The cabinet object
- *
- * @ingroup Cabinet
- */
-EAPI void
-elm_cabinet_next(Evas_Object *obj)
-{
-}
-
-/**
- * Select previous item of cabinet
- *
- * @param obj The cabinet object
- *
- * @ingroup Cabinet
- */
-EAPI void
-elm_cabinet_prev(Evas_Object *obj)
-{
-}
-
-/**
- * Append item to the end of cabinet
- *
- * @param obj The cabinet object
- * @param label The label of new item
- * @param func Convenience function called when item selected
- * @param data Data passed to @p func above
- * @return A handle to the item added or NULL if not possible
- *
- * @ingroup Cabinet
- */
-EAPI Elm_Cabinet_Item *
-elm_cabinet_item_append(Evas_Object *obj, const char *label, void (*func)(void *data, Evas_Object *obj, void *event_info), void *data)
-{
-       Elm_Cabinet_Item *item;
-       Widget_Data *wd = elm_widget_data_get(obj);
-       if (!wd) return NULL;
-
-       item = ELM_NEW(Elm_Cabinet_Item);
-       if (item) {
-               if (label) item->label = eina_stringshare_add(label);
-               item->func = func;
-               item->data = data;
-               item->cabinet = obj;
-               wd->its = eina_list_append(wd->its, item);
-               if (!wd->cur) {
-                       wd->cur = wd->its;
-               }
-               _sizing_eval(obj);
-       }
-       return item;
-}
-
-/**
- * Prepend item at start of cabinet
- *
- * @param obj The cabinet object
- * @param label The label of new item
- * @param func Convenience function called when item selected
- * @param data Data passed to @p func above
- * @return A handle to the item added or NULL if not possible
- *
- * @ingroup Cabinet
- */
-EAPI Elm_Cabinet_Item *
-elm_cabinet_item_prepend(Evas_Object *obj, const char *label, void (*func)(void *data, Evas_Object *obj, void *event_info), void *data)
-{
-       Elm_Cabinet_Item *item;
-       Widget_Data *wd = elm_widget_data_get(obj);
-       if (!wd) return NULL;
-
-       item = ELM_NEW(Elm_Cabinet_Item);
-       if (item) {
-               if (label) item->label = eina_stringshare_add(label);
-               item->func = func;
-               item->data = data;
-               item->cabinet = obj;
-               wd->its = eina_list_prepend(wd->its, item);
-               if (!wd->cur) wd->cur = wd->its;
-               _sizing_eval(obj);
-       }
-       return item;
-}
-
-/**
- * Get a list of items in the cabinet
- *
- * @param obj The cabinet object
- * @return The list of items, or NULL if none
- *
- * @ingroup Cabinet
- */
-EAPI const Eina_List *
-elm_cabinet_items_get(Evas_Object *obj)
-{
-       Widget_Data *wd = elm_widget_data_get(obj);
-       if (!wd) return NULL;
-       return wd->its;
-}
-
-/**
- * Get the first item in the cabinet
- *
- * @param obj The cabinet object
- * @return The first item, or NULL if none
- *
- * @ingroup Cabinet
- */
-EAPI Elm_Cabinet_Item *
-elm_cabinet_first_item_get(Evas_Object *obj)
-{
-       Widget_Data *wd;
-       if (!obj) return NULL;
-       wd = elm_widget_data_get(obj);
-       if (!wd || !wd->its) return NULL;
-       return eina_list_data_get(wd->its);
-}
-
-/**
- * Get the last item in the cabinet
- *
- * @param obj The cabinet object
- * @return The last item, or NULL if none
- *
- * @ingroup Cabinet
- */
-EAPI Elm_Cabinet_Item *
-elm_cabinet_last_item_get(Evas_Object *obj)
-{
-       Widget_Data *wd;
-       if (!obj) return NULL;
-       wd = elm_widget_data_get(obj);
-       if (!wd || !wd->its) return NULL;
-       return eina_list_data_get(eina_list_last(wd->its));
-}
-
-/**
- * Get the selected item in the cabinet
- *
- * @param obj The cabinet object
- * @return The selected item, or NULL if none
- *
- * @ingroup Cabinet
- */
-EAPI Elm_Cabinet_Item *
-elm_cabinet_selected_item_get(Evas_Object *obj)
-{
-       Widget_Data *wd = elm_widget_data_get(obj);
-       if (!wd || !wd->cur) return NULL;
-       return eina_list_data_get(wd->cur);
-}
-
-/**
- * Set the selected state of an item
- *
- * @param item The item
- *
- * @ingroup Cabinet
- */
-EAPI void
-elm_cabinet_item_selected_set(Elm_Cabinet_Item *item)
-{
-       Widget_Data *wd;
-       Eina_List *l;
-       Elm_Cabinet_Item *_item;
-
-       if (!item) return;
-       wd = elm_widget_data_get(item->cabinet);
-       if (!wd) return;
-
-       EINA_LIST_FOREACH(wd->its, l, _item) {
-               if (_item == item) {
-                       ;
-                       //TODO: NOT YET
-               }
-       }
-}
-
-/**
- * Delete a given item
- *
- * @param item The item
- *
- * @ingroup Cabinet
- */
-EAPI void
-elm_cabinet_item_del(Elm_Cabinet_Item *item)
-{
-       Widget_Data *wd;
-       Eina_List *l;
-       Elm_Cabinet_Item *_item;
-
-       if (!item) return;
-       wd = elm_widget_data_get(item->cabinet);
-       if (!wd) return;
-
-       EINA_LIST_FOREACH(wd->its, l, _item) {
-               if (_item == item) {
-                       wd->its = eina_list_remove_list(wd->its, l);
-                       if (wd->cur == l)
-                               wd->cur = wd->its;
-                       free(_item);
-                       break;
-               }
-       }
-}
-
-/**
- * Get the label of a given item
- *
- * @param item The item
- * @return The label of a given item, or NULL if none
- *
- * @ingroup Cabinet
- */
-EAPI const char *
-elm_cabinet_item_label_get(Elm_Cabinet_Item *item)
-{
-       Widget_Data *wd;
-       Eina_List *l;
-       Elm_Cabinet_Item *_item;
-
-       if (!item) return NULL;
-       wd = elm_widget_data_get(item->cabinet);
-       if (!wd || !wd->its) return NULL;
-
-       EINA_LIST_FOREACH(wd->its, l, _item)
-               if (_item == item)
-                       return item->label;
-
-       return NULL;
-}
-
-/**
- * Set the label of a given item
- *
- * @param item The item
- * @param label The text label string in UTF-8
- *
- * @ingroup Cabinet
- */
-EAPI void
-elm_cabinet_item_label_set(Elm_Cabinet_Item *item, const char *label)
-{
-       Widget_Data *wd;
-       Eina_List *l;
-       Elm_Cabinet_Item *_item;
-
-       if (!item || !label) return;
-       wd = elm_widget_data_get(item->cabinet);
-       if (!wd || !wd->its) return;
-
-       EINA_LIST_FOREACH(wd->its, l, _item)
-               if (_item == item) {
-                       eina_stringshare_del(item->label);
-                       item->label = eina_stringshare_add(label);
-               }
-}
-
-/**
- * Get the sub info of a given item
- *
- * @param item The item
- * @return The label of a given item, or NULL if none
- *
- * @ingroup Cabinet
- */
-EAPI const char *
-elm_cabinet_item_sub_info_get(Elm_Cabinet_Item *item)
-{
-       Widget_Data *wd;
-       Eina_List *l;
-       Elm_Cabinet_Item *_item;
-
-       if (!item) return NULL;
-       wd = elm_widget_data_get(item->cabinet);
-       if (!wd || !wd->its) return NULL;
-
-       EINA_LIST_FOREACH(wd->its, l, _item)
-               if (_item == item)
-                       return item->sub_info;
-
-       return NULL;
-}
-
-/**
- * Set the sub info of a given item
- *
- * @param item The item
- * @param label The text label string in UTF-8
- *
- * @ingroup Cabinet
- */
-EAPI void
-elm_cabinet_item_sub_info_set(Elm_Cabinet_Item *item, const char *sub_info)
-{
-       Widget_Data *wd;
-       Eina_List *l;
-       Elm_Cabinet_Item *_item;
-
-       if (!item || !sub_info) return;
-       wd = elm_widget_data_get(item->cabinet);
-       if (!wd || !wd->its) return;
-
-       EINA_LIST_FOREACH(wd->its, l, _item)
-               if (_item == item) {
-                       eina_stringshare_del(item->sub_info);
-                       item->sub_info = eina_stringshare_add(sub_info);
-               }
-}
-
-/**
- * Get the previous item in the cabinet
- *
- * @param item The item
- * @return The item before the item @p item
- *
- * @ingroup Cabinet
- */
-EAPI Elm_Cabinet_Item *
-elm_cabinet_item_prev(Elm_Cabinet_Item *item)
-{
-       Widget_Data *wd;
-       Eina_List *l;
-       Elm_Cabinet_Item *_item;
-
-       if (!item) return NULL;
-       wd = elm_widget_data_get(item->cabinet);
-       if (!wd || !wd->its) return NULL;
-
-       EINA_LIST_FOREACH(wd->its, l, _item)
-               if (_item == item) {
-                       l = eina_list_prev(l);
-                       if (!l) return NULL;
-                       return eina_list_data_get(l);
-               }
-       return NULL;
-}
-
-/**
- * Get the next item in the cabinet
- *
- * @param item The item
- * @return The item after the item @p item
- *
- * @ingroup Cabinet
- */
-EAPI Elm_Cabinet_Item *
-elm_cabinet_item_next(Elm_Cabinet_Item *item)
-{
-       Widget_Data *wd;
-       Eina_List *l;
-       Elm_Cabinet_Item *_item;
-
-       if (!item) return NULL;
-       wd = elm_widget_data_get(item->cabinet);
-       if (!wd || !wd->its) return NULL;
-
-       EINA_LIST_FOREACH(wd->its, l, _item)
-               if (_item == item) {
-                       l = eina_list_next(l);
-                       if (!l) return NULL;
-                       return eina_list_data_get(l);
-               }
-       return NULL;
-}
-
-/**
- * Get private data of item
- *
- * @param item The item
- * @return Private data of the item @p item
- *
- * @ingroup Cabinet
- */
-EAPI void *
-elm_cabinet_item_data_get(Elm_Cabinet_Item *item)
-{
-       if (!item) return NULL;
-       return item->priv_data;
-}
-
-/**
- * Set private data of item
- *
- * @param item The item
- * @param data data
- *
- * @ingroup Cabinet
- */
-EAPI void
-elm_cabinet_item_data_set(Elm_Cabinet_Item *item, void *data)
-{
-       if (!item) return;
-       item->priv_data = data;
-}
-
-EAPI Eina_Bool
-elm_cabinet_item_del_btn_disabled_get(Elm_Cabinet_Item *item)
-{
-       if (!item) return EINA_FALSE;
-       return item->btn_disabled ? EINA_TRUE : EINA_FALSE;
-}
-
-EAPI void
-elm_cabinet_item_del_btn_disabled_set(Elm_Cabinet_Item *item, Eina_Bool disabled)
-{
-       if (!item) return;
-
-       if (item->btn_disabled == !!disabled) return;
-       item->btn_disabled = !!disabled;
-       _cells_update(item->cabinet);
-}
-
-EAPI Eina_Bool
-elm_cabinet_item_sub_info_disabled_get(Elm_Cabinet_Item *item)
-{
-       if (!item) return EINA_FALSE;
-       return item->info_disabled ? EINA_TRUE : EINA_FALSE;
-}
-
-EAPI void
-elm_cabinet_item_sub_info_disabled_set(Elm_Cabinet_Item *item, Eina_Bool disabled)
-{
-       if (!item) return;
-       
-       if (item->info_disabled == !!disabled) return;
-       item->info_disabled = !!disabled;
-       _cells_update(item->cabinet);
-}
diff --git a/src/lib/elm_chronometer.c b/src/lib/elm_chronometer.c
deleted file mode 100644 (file)
index eb3ba68..0000000
+++ /dev/null
@@ -1,299 +0,0 @@
-#include <Elementary.h>
-#include "elm_priv.h"
-
-/**
- * @defgroup Chronometer Chronometer
- * @ingroup Elementary
- *
- * It's a widget to show chronometer. 
- *
- */
-
-typedef struct _Widget_Data Widget_Data;
-
-struct _Widget_Data
-{
-   int sec1, sec2;
-   Evas_Object *chronometer;
-   Ecore_Timer *ticker;
-   struct
-     {
-        int hrs, min, sec;
-       Eina_Bool format: 1;
-       Eina_Bool run: 1;
-     } cur;
-};
-
-static void _del_hook(Evas_Object *obj);
-static void _theme_hook(Evas_Object *obj);
-static Eina_Bool _ticker(void *data);
-static void _signal_chronometer_val_changed(void *data,Evas_Object *obj,const char *emission,const char *source);
-static void _time_update(Evas_Object *obj);
-
-static void
-_del_hook(Evas_Object *obj)
-{
-   Widget_Data *wd = elm_widget_data_get(obj);
-   if (!wd) return;
-   if (wd->ticker) ecore_timer_del(wd->ticker);
-
-   free(wd);
-}
-
-static void
-_theme_hook(Evas_Object *obj)
-{
-   _time_update(obj);
-}
-
-static Eina_Bool
-_ticker(void *data)
-{
-   Widget_Data *wd = elm_widget_data_get(data);
-   double t;
-   struct timeval timev;
-   struct tm *tm;
-   time_t tt;
-
-   gettimeofday(&timev, NULL);
-   t = ((double)(1000000 - timev.tv_usec)) / 1000000.0;
-   wd->ticker = ecore_timer_add(t, _ticker, data);
-
-   tt=(time_t)(timev.tv_sec);
-   tzset();
-   tm=localtime(&tt);
-   if(tm)
-   {
-       wd->sec1=tm->tm_sec;
-       _time_update(data);
-   }
-  return 0;
-}
-
-/*
- * FIXME:
- */
-static void 
-_signal_chronometer_val_changed(void *data,Evas_Object *obj,const char *emission,const char *source)
-{
-//     Widget_Data *wd=elm_widget_data_get(data);
-       
-       evas_object_smart_callback_call(data,"changed",NULL);
-}
-
-static void
-_sizing_eval(Evas_Object *obj)
-{
-       Widget_Data *wd = elm_widget_data_get(obj);
-       Evas_Coord minw = -1, minh = -1, maxw = -1, maxh = -1;
-       Evas_Coord w, h;
-
-       if (!wd) return;
-
-       elm_coords_finger_size_adjust(1, &minw, 1, &minh);
-       edje_object_size_min_restricted_calc(wd->chronometer, &minw, &minh, minw, minh);   
-       elm_coords_finger_size_adjust(1, &minw, 1, &minh);
-
-       evas_object_size_hint_min_get(obj, &w, &h);
-       if (w > minw) minw = w;
-       if (h > minw) minh = h;
-
-       evas_object_size_hint_min_set(obj, minw, minh);
-       evas_object_size_hint_max_set(obj, maxw, maxh);
-}
-
-static void
-_time_update(Evas_Object *obj)
-{
-       Widget_Data *wd = elm_widget_data_get(obj);
-       const char *style = elm_widget_style_get(obj);
-       char buf1[9], buf2[7]; 
-
-        if(wd->sec1==wd->sec2)
-         return 0;        
-
-       wd->sec2 = wd->sec1;            
-
-       _elm_theme_object_set(obj,wd->chronometer, "chronometer", "base", style); 
-
-       if(wd->cur.run)
-               wd->cur.sec++;
-
-        if(wd->cur.sec==60){
-               wd->cur.min++;
-               if(wd->cur.min==60){
-                       wd->cur.hrs++;
-                       if(wd->cur.hrs==100)
-                               wd->cur.hrs=0;
-                       wd->cur.min=0;
-               }
-               wd->cur.sec=0;
-       }
-
-       if (wd->cur.format) {
-               snprintf(buf1,sizeof(buf1),"%02d:%02d:%02d",wd->cur.hrs,wd->cur.min,wd->cur.sec);
-               edje_object_part_text_set(wd->chronometer,"digit",buf1);
-       }
-       else {
-               snprintf(buf2,sizeof(buf2),"%02d:%02d",wd->cur.min,wd->cur.sec);
-               edje_object_part_text_set(wd->chronometer,"digit",buf2);
-       }
-
-}
-
-/**
- * Add a new chronometer to the parent
- *
- * @param parent The parent object
- *
- * This function inserts a chronometer widget on a given canvas.
- *
- * @ingroup Chronometer
- */
-EAPI Evas_Object *
-elm_chronometer_add(Evas_Object *parent)
-{
-   Evas_Object *obj;
-   Evas *e;
-   Widget_Data *wd;
-
-   wd = ELM_NEW(Widget_Data);
-   e = evas_object_evas_get(parent);
-   obj = elm_widget_add(e);
-   elm_widget_type_set(obj, "chronometer");
-   elm_widget_sub_object_add(parent, obj);
-   elm_widget_data_set(obj, wd);
-   elm_widget_del_hook_set(obj, _del_hook);
-   elm_widget_theme_hook_set(obj, _theme_hook);
-
-   wd->chronometer = edje_object_add(e);
-   elm_widget_resize_object_set(obj, wd->chronometer);
-
-   wd->cur.format = EINA_TRUE;
-   wd->cur.run = EINA_FALSE;
-
-   _sizing_eval(obj);
-
-   _time_update(obj);
-   _ticker(obj);
-
-   return obj;
-}
-
-/**
- * Run the chronometer
- *
- * @param obj The chronometer object
- *
- * This function start the chronometer time 
- *
- * @ingroup Chronometer
- */
-EAPI void
-elm_chronometer_start(Evas_Object *obj)
-{
-   Widget_Data *wd = elm_widget_data_get(obj);
-   wd->cur.run = EINA_TRUE;
-   _time_update(obj);
-}
-
-/**
- * Run the chronometer
- *
- * @param obj The chronometer object
- *
- * This function stop the chronometer time 
- *
- * @ingroup Chronometer
- */
-EAPI void
-elm_chronometer_stop(Evas_Object *obj)
-{
-   Widget_Data *wd = elm_widget_data_get(obj);
-   wd->cur.run = EINA_FALSE;
-   _time_update(obj);
-}
-
-/**
- * Set the chronometer time
- *
- * @param obj The chronometer object
- * @param hrs The hours to set
- * @param min The minutes to set
- * @param sec The secondes to set
- *
- * This function updates the time that is showed by the chronometer widget
- *
- * @ingroup Chronometer
- */
-EAPI void
-elm_chronometer_time_set(Evas_Object *obj, int hrs, int min, int sec)
-{
-   Widget_Data *wd = elm_widget_data_get(obj);
-   wd->cur.hrs = hrs;
-   wd->cur.min = min;
-   wd->cur.sec = sec;
-   _time_update(obj);
-}
-
-/**
- * Get chronometer time
- *
- * @param obj The chronometer object
- * @param hrs Pointer to the variable to get the hour of this chronometer
- * object
- * @param min Pointer to the variable to get the minute of this chronometer
- * object
- * @param sec Pointer to the variable to get the second of this chronometer
- * object
- *
- * This function gets the time set of the chronometer widget and returns it
- * on the variables passed as the arguments to function
- *
- * @ingroup Chronometer
- */
-EAPI void
-elm_chronometer_time_get(const Evas_Object *obj, int *hrs, int *min, int *sec)
-{
-   Widget_Data *wd = elm_widget_data_get(obj);
-   if (hrs) *hrs = wd->cur.hrs;
-   if (min) *min = wd->cur.min;
-   if (sec) *sec = wd->cur.sec;
-}
-
-/**
- * Set the chronometer format 
- *
- * @param obj The chronometer object
- * @param format Bool option for the show hours
- * (1 = show hours, 0 = not show hours)
- *
- * This function sets the chronometer format.
- *
- * @ingroup Chronometer
- */
-EAPI void
-elm_chronometer_format_set(Evas_Object *obj, Eina_Bool format)
-{
-   Widget_Data *wd = elm_widget_data_get(obj);
-   wd->cur.format = format;
-   _time_update(obj);
-}
-
-/**
- * Get the chronometer format
- *
- * @param obj The chronometer object
- * @param format Bool option for the show hours
- * (1 = show hours, 0 = not show hours)
- *
- * This function gets the chronometer format
- *
- * @ingroup Chronometer
- */
-EAPI void
-elm_chronometer_format_get(Evas_Object *obj, Eina_Bool *format)
-{
-   Widget_Data *wd = elm_widget_data_get(obj);
-   *format = wd->cur.format;
-}
diff --git a/src/lib/elm_coverflow.c b/src/lib/elm_coverflow.c
deleted file mode 100644 (file)
index 0a82ca2..0000000
+++ /dev/null
@@ -1,1580 +0,0 @@
-/*
- * SLP
- * Copyright (c) 2009 Samsung Electronics, Inc.
- * All rights reserved.
- *
- * This software is a confidential and proprietary information
- * of Samsung Electronics, Inc. ("Confidential Information").  You
- * shall not disclose such Confidential Information and shall use
- * it only in accordance with the terms of the license agreement
- * you entered into with Samsung Electronics.
- */
-
-
-
-#include <Elementary.h>
-#include "elm_priv.h"
-
-#define COVER_SIZE 180
-#define HALF_COVER_SIZE COVER_SIZE / 2
-#define TI_BUFFER_SIZE 30
-#define SLIDING_DURATION 1.5
-#define BOUNCING_DURATION (SLIDING_DURATION*0.75)
-#define REFLECTION_COLOR 150 
-#define ROTATION_DEGREE 35 
-#define CACHED_ITEM_COUNT 50
-#define CACHED_ITEM_SIZE (CACHED_ITEM_COUNT * COVER_SIZE )
-#define DISTANCE_BETWEEN_ITEMS 130 
-#define BEGIN_POS_X -22
-#define ROTATION_DURATION 0.25 
-#define ZOOM_OUT_DISTANCE   500
-#define ZOOM_OUT_DURATION   0.5
-#define MOVE_ON_LIMIT 3
-#define SELECTED_ITEM_POS_Z  -200
-
-typedef struct _Widget_Data Widget_Data;
-typedef struct _Touch_Info_Node TI_Node;
-typedef struct _Touch_Info_Queue TI_Queue;
-typedef struct _Point Point;
-typedef enum _Shift_Direction Shift_Direction;
-typedef struct _Float_Ani_Data Float_Ani_Data;
-typedef struct _EvasCoord_Ani_Data EvasCoord_Ani_Data;
-typedef struct _Select_Ani_Data Select_Ani_Data;
-
-enum _Shift_Direction { Shift_Left, Shift_Right, Shift_None };
-
-struct _Touch_Info_Node {
-       Evas_Coord pos;
-       TI_Node* prev;
-       TI_Node* next;
-};
-
-struct _Touch_Info_Queue {
-       TI_Node*        head;
-       TI_Node*        tail;
-       unsigned int    cnt;
-};
-
-struct _Coverflow_Item
-{
-       Widget_Data* wd;
-       Evas_Object* base;
-       Evas_Object* reflection;
-       Elm_Coverflow_Item_Class cic;
-       void* data;
-       void (*func)( void*, Evas_Object*, void* );
-       void* func_data;
-       int idx;
-       Eina_Bool   visible : 1;
-};
-/*
-struct _Animation_Data {
-       Elm_Animator* animator;
-       Evas_Coord from;
-};
-*/
-struct _Point {
-       Evas_Coord x;
-       Evas_Coord y;
-       Evas_Coord z;
-};
-
-struct _Float_Ani_Data {
-       Elm_Animator*  animator;
-       float cur;
-       float from;
-       float to;
-};
-
-struct _EvasCoord_Ani_Data {
-       Elm_Animator*  animator;
-       Evas_Coord cur;
-       Evas_Coord from;
-       Evas_Coord to;
-};
-
-struct _Select_Ani_Data {
-       Elm_Animator* animator;
-       Evas_Coord orig_pos_x;
-       Evas_Coord orig_pos_y;
-       Evas_Coord from_x, from_z;
-       Evas_Coord to_x, to_z;
-       float      orig_rot;
-       float from_rot, to_rot;
-};
-
-
-
-struct _Widget_Data 
-{
-       Evas_Object*            parent;
-       Evas_Object*            obj;
-       Evas_Object*            base;
-       Eina_List*              all_item_list;
-       Eina_List*              valid_item_list;
-       Point                   base_pos;
-       Point                   cur_pos;
-       Evas_Coord              sliding_vector;
-       TI_Queue                ti_queue;
-       Float_Ani_Data          rot_ani_data;
-       EvasCoord_Ani_Data      base_ani_data;
-       Select_Ani_Data*        select_ani_data;        
-       unsigned long           valid_item_cnt;
-       unsigned long           valid_item_length;
-       Evas_Map*               original_map;
-       Evas_Map*               reflection_map;
-       Elm_Coverflow_Item*     selected_item;
-       Evas_Coord              dist_between_items;
-
-       Eina_Bool               stack_raise : 1;
-       Eina_Bool               horizontal : 1;
-       Eina_Bool               move_on : 1;
-       Eina_Bool               show : 1;
-};
-
-
-
-
-static void _parent_resize( void* data, Evas* evas, Evas_Object* obj, void* event_info );
-static void _coverflow_show( void* data, Evas* evas, Evas_Object* obj, void* event_info );
-static void _coverflow_hide( void* data, Evas* evas, Evas_Object* obj, void* event_info );
-static void _coverflow_move( void* data, Evas* evas, Evas_Object* obj, void* event_info );
-static void _coverflow_resize( void* data, Evas* evas, Evas_Object* obj, void* event_info );
-static void _del_pre_hook( Evas_Object* obj );
-static void _del_hook( Evas_Object* obj );
-static void _sizing_eval( Widget_Data* wd );
-static void _render_visible_items( Widget_Data* wd );
-static void _mouse_down_ev( void* data, Evas* evas, Evas_Object* obj, void* event_info );
-static void _mouse_move_ev( void* data, Evas* evas, Evas_Object* obj, void* event_info );
-static void _mouse_up_ev( void* data, Evas* evas, Evas_Object* obj, void* event_info );
-static TI_Node* _create_tinode( const Evas_Coord pos );
-static void _clear_ti_queue( TI_Queue* ti_queue ); 
-static void _push_back_tinode( TI_Queue* ti_queue, TI_Node* tinode );
-static void _sliding_completion_cb( void* data );
-static void _sliding_operation_cb( void* data, Elm_Animator* animator, const double key_frame );
-static void _update_items( Widget_Data* wd, Shift_Direction dir, Eina_Bool stack_raise );
-static Evas_Map* _create_original_map();
-static Evas_Map* _create_reflection_map( const Evas_Coord reflection_size );
-static void _init_item_obj( Evas_Object* obj );
-static Eina_Bool _left_shift_item( Widget_Data* wd, Elm_Coverflow_Item* item );
-static Eina_Bool _right_shift_item( Widget_Data* wd, Elm_Coverflow_Item* item );
-static void _create_item_obj( Widget_Data* wd, Elm_Coverflow_Item* item );
-static void _remove_item_obj( Widget_Data* wd, Elm_Coverflow_Item* item );
-static void _calc_base_pos( Widget_Data* wd, Evas_Coord x, Evas_Coord y, Evas_Coord w, Evas_Coord h );
-static void _direct_bounce( Widget_Data* wd, Evas_Coord to );
-static void _left_bounce_cb( void* data );
-static void _right_bounce_cb( void* data );
-static Eina_Bool _bounce_to_left( Widget_Data* wd );
-static void _rotation_operation_cb( void* data, Elm_Animator* animator, const double key_frame );
-static void _rotation_completion_cb( void* data );
-static void _update_rotation_degree( Widget_Data* wd, float degree );
-static void _zoom_out_completion_cb( void* data );
-static void _zoom_out_operation_cb( void* data, Elm_Animator* animator, const double key_frame );
-
-
-inline static TI_Node* _create_tinode( const Evas_Coord pos )
-{
-       TI_Node* tinode = (TI_Node*) calloc( 1, sizeof( TI_Node ) );
-
-       if( tinode ) {
-               tinode->pos = pos;
-       }
-
-       return tinode;
-}
-
-
-
-static void _push_back_tinode( TI_Queue* ti_queue, TI_Node* tinode )
-{
-       if( tinode == NULL ) {
-               return ;
-       }
-
-       tinode->next = NULL;
-
-       if( ti_queue->head == NULL ) {
-               ++ti_queue->cnt;
-               tinode->prev = NULL;
-               ti_queue->head = tinode;
-               ti_queue->tail = tinode;
-               return ;
-       }
-
-       ti_queue->tail->next = tinode;
-       tinode->prev = ti_queue->tail;
-       ti_queue->tail = tinode;
-
-       if( ti_queue->cnt >= TI_BUFFER_SIZE ) {
-               TI_Node* head = ti_queue->head;
-               ti_queue->head = head->next;
-               ti_queue->head->prev = NULL;
-               free( head );
-               return ;
-       }
-
-       ++ti_queue->cnt;
-}
-
-
-
-static void _clear_ti_queue( TI_Queue* ti_queue ) 
-{
-       TI_Node* head = ti_queue->head; 
-       TI_Node* tinode;
-
-       while( head ) {
-               tinode = head->next;
-               free( head );
-               head = tinode;
-       }
-
-       ti_queue->head = ti_queue->tail = NULL;
-       ti_queue->cnt = 0;
-       
-}
-
-
-
-static void _coverflow_show( void* data, Evas* evas, Evas_Object* obj, void* event_info )
-{
-       Widget_Data* wd = (Widget_Data*) data;
-
-       int idx = 0;
-       Eina_List* elist;
-       Elm_Coverflow_Item* item;
-
-       EINA_LIST_FOREACH( wd->valid_item_list, elist, item ) {
-               
-               evas_object_show( item->base );
-               evas_object_show( item->reflection );
-
-               if( ++idx == wd->valid_item_cnt ) {
-                       break;
-               }
-
-       }
-
-       evas_object_show( wd->base );
-       wd->show = EINA_TRUE;
-
-       _render_visible_items( wd );
-
-}
-
-static void _coverflow_hide( void* data, Evas* evas, Evas_Object* obj, void* event_info )
-{
-       Widget_Data* wd = (Widget_Data*) data;
-
-       int idx = 0;
-       Eina_List* elist;
-       Elm_Coverflow_Item* item;
-
-       EINA_LIST_FOREACH( wd->valid_item_list, elist, item ) {
-               
-               evas_object_hide( item->base );
-               evas_object_hide( item->reflection );
-
-               if( ++idx == wd->valid_item_cnt ) {
-                       break;
-               }
-       }
-
-       evas_object_hide( wd->base );
-       
-}
-
-static void _coverflow_move( void* data, Evas* evas, Evas_Object* obj, void* event_info )
-{
-       Widget_Data* wd = (Widget_Data*) data;
-
-       Evas_Coord x, y, w, h;
-       evas_object_geometry_get( obj, &x, &y, &w, &h );
-       evas_object_move( wd->base, x, y );
-               
-       wd->valid_item_cnt = w / COVER_SIZE + 2 + CACHED_ITEM_COUNT * 2;
-
-       _calc_base_pos( wd, x, y, w, h );       
-       _update_items( wd, Shift_None, wd->stack_raise ); 
-       _render_visible_items( wd );
-
-
-}
-
-static void _calc_base_pos( Widget_Data* wd, 
-                           Evas_Coord x, Evas_Coord y, Evas_Coord w, Evas_Coord h )
-{
-       Evas_Coord valid_item_size;
-       
-       if( wd->valid_item_cnt < eina_list_count( wd->valid_item_list ) ) {
-               valid_item_size = wd->valid_item_cnt * wd->dist_between_items;
-       }else {
-               valid_item_size = eina_list_count( wd->valid_item_list ) * wd->dist_between_items;
-       }
-
-       //horizontal mode 
-       if( valid_item_size < w ) {
-               wd->cur_pos.x = wd->base_pos.x = (w >> 1) - (valid_item_size >>1) + x; 
-       }else {
-               wd->cur_pos.x = wd->base_pos.x = x;
-       }
-
-       wd->cur_pos.y = wd->base_pos.y = y + ( h >> 1 ) - HALF_COVER_SIZE;
-
-}
-
-
-static void _parent_resize( void* data, Evas* evas, Evas_Object* obj, void* event_info )
-{
-
-}
-
-
-static void _coverflow_resize( void* data, Evas* evas, Evas_Object* obj, void* event_info )
-{
-       Widget_Data* wd = (Widget_Data*) data;
-
-       Evas_Coord x, y, w, h;
-       evas_object_geometry_get( obj, &x, &y, &w, &h );
-       evas_object_resize( wd->base, w, h );
-
-       wd->valid_item_cnt = w / COVER_SIZE + 2 + CACHED_ITEM_COUNT * 2;
-
-       _calc_base_pos( wd, x, y, w, h );
-
-       //TODO: re-create items. 
-       
-       _update_items( wd, Shift_None, wd->stack_raise );
-       _render_visible_items( wd );
-
-}
-
-
-
-
-static void _del_pre_hook( Evas_Object* obj )
-{
-       Widget_Data* wd = (Widget_Data*) elm_widget_data_get( obj );
-
-       if( wd->base_ani_data.animator ) {
-               elm_animator_stop( wd->base_ani_data.animator );
-               elm_animator_del( wd->base_ani_data.animator );
-       }
-       
-}
-
-
-
-
-static void _del_hook( Evas_Object* obj )
-{
-       Widget_Data* wd = (Widget_Data*) elm_widget_data_get( obj );
-
-       _clear_ti_queue( &wd->ti_queue );
-
-       evas_map_free( wd->original_map );
-       evas_map_free( wd->reflection_map );
-
-       elm_coverflow_clear( obj );
-       
-
-       evas_object_del( wd->base );
-
-
-}
-
-
-
-
-static void _sizing_eval( Widget_Data* wd )
-{
-/*     Eina_List* elist;
-       Elm_Coverflow_Item* item;
-
-       EINA_LIST_FOREACH( wd->all_item_list, elist, item ) {
-               evas_object_resize( item->obj, COVER_SIZE, COVER_SIZE );
-               evas_object_resize( item->reflection, COVER_SIZE, COVER_SIZE );
-       }
-*/
-}
-
-inline static Evas_Map* _create_original_map()
-{
-       Evas_Map* map = evas_map_new( 4 );
-
-       if( map == NULL ) {
-               return NULL;
-       }
-
-       evas_map_smooth_set( map, EINA_TRUE );
-
-       return map;
-}
-
-
-inline static Evas_Map* _create_reflection_map( const Evas_Coord reflection_size )
-{
-       Evas_Map* map = _create_original_map();
-
-       evas_map_point_image_uv_set( map, 0, 0, COVER_SIZE );
-       evas_map_point_image_uv_set( map, 1, COVER_SIZE, COVER_SIZE );
-       evas_map_point_image_uv_set( map, 2, COVER_SIZE, COVER_SIZE-reflection_size );
-       evas_map_point_image_uv_set( map, 3, 0, COVER_SIZE-reflection_size );
-
-       evas_map_point_color_set( map, 0, 
-               REFLECTION_COLOR, REFLECTION_COLOR, REFLECTION_COLOR, REFLECTION_COLOR );
-
-       evas_map_point_color_set( map, 1, 
-               REFLECTION_COLOR, REFLECTION_COLOR, REFLECTION_COLOR, REFLECTION_COLOR );
-       
-       evas_map_point_color_set( map, 2, 
-               0, 0, 0, 0 );
-       
-       evas_map_point_color_set( map, 3, 
-               0, 0, 0, 0 );
-
-       return map;
-
-}
-
-
-
-
-
-
-static void _render_visible_items( Widget_Data* wd )
-{
-       Evas_Coord reflection_size = COVER_SIZE / 3;
-
-       Eina_List* elist;
-       Elm_Coverflow_Item* item;
-       Evas_Coord x, y, z = wd->cur_pos.z;
-       int idx = 0;
-
-       EINA_LIST_FOREACH( wd->valid_item_list, elist, item ) {
-
-               ++idx;
-
-               if( item->visible == EINA_FALSE ) {
-                       continue;
-               }
-
-               if( item == wd->selected_item ) {
-                       continue;
-               }
-
-               evas_object_geometry_get( item->base, &x, &y, NULL, NULL );
-
-               //Geometry 
-               //ToDo: Check coord_set . 
-               evas_map_util_points_populate_from_object_full( wd->original_map, item->base, z );
-
-               evas_map_point_coord_set( wd->reflection_map, 0, 
-                                   x, y + COVER_SIZE, z );
-               evas_map_point_coord_set( wd->reflection_map, 1, 
-                                   x + COVER_SIZE, y + COVER_SIZE, z );
-               evas_map_point_coord_set( wd->reflection_map, 2,
-                                   x + COVER_SIZE, y + COVER_SIZE + reflection_size, z );
-               evas_map_point_coord_set( wd->reflection_map, 3,
-                                   x, y + COVER_SIZE + reflection_size, z );
-
-               //Rotation
-               evas_map_util_3d_rotate( wd->original_map, 0, wd->rot_ani_data.cur, 0, 
-                               x + HALF_COVER_SIZE, y + HALF_COVER_SIZE, z );
-
-               evas_map_util_3d_rotate( wd->reflection_map, 0, wd->rot_ani_data.cur, 0,
-                               x + HALF_COVER_SIZE, y + HALF_COVER_SIZE, z );
-
-               //Perspective 
-               evas_map_util_3d_perspective( wd->original_map, 
-                                             x + HALF_COVER_SIZE, 
-                                             y + HALF_COVER_SIZE, 0, 750 );
-
-               evas_map_util_3d_perspective( wd->reflection_map, 
-                                             x + HALF_COVER_SIZE, 
-                                             y + HALF_COVER_SIZE, 0, 750 );
-
-               evas_object_map_set( item->base, wd->original_map );
-               evas_object_map_set( item->reflection, wd->reflection_map );
-
-               evas_object_show( item->base );
-               evas_object_show( item->reflection );
-
-               if( idx == wd->valid_item_cnt ) {
-                       break;
-               }
-
-       }
-
-       evas_object_raise( wd->base );
-
-}
-
-static void _mouse_down_ev( void* data, Evas* evas, Evas_Object* obj, void* event_info )
-{
-       Widget_Data* wd = (Widget_Data*) data;
-
-       if( wd->base_ani_data.animator ) {
-               elm_animator_stop( wd->base_ani_data.animator );
-               elm_animator_del( wd->base_ani_data.animator );
-               wd->base_ani_data.animator = NULL;
-       }
-
-       _clear_ti_queue( &wd->ti_queue );
-
-       Evas_Event_Mouse_Down* ev = event_info;
-       _push_back_tinode( &wd->ti_queue, _create_tinode( ev->output.x ) );
-
-       wd->move_on = EINA_FALSE;
-
-}
-
-
-inline static void _remove_item_obj( Widget_Data* wd, Elm_Coverflow_Item* item )
-{
-       if( item == NULL ) {
-               return ;
-       }
-
-       evas_object_del( item->base );
-       evas_object_del( item->reflection );
-
-       wd->valid_item_length -= wd->dist_between_items;
-
-}
-
-       
-
-static Eina_Bool _left_shift_item( Widget_Data* wd, Elm_Coverflow_Item* item )
-{
-       //valid items are less than cached item count !
-       if(  eina_list_count( wd->all_item_list ) - item->idx <= wd->valid_item_cnt ) {
-               return EINA_FALSE;
-       }
-               
-       _remove_item_obj( wd, item );
-
-
-       //Generate
-       Elm_Coverflow_Item* gen_item = (Elm_Coverflow_Item*) eina_list_data_get( 
-                       eina_list_nth_list( wd->all_item_list, item->idx + wd->valid_item_cnt ) );
-
-       _create_item_obj( wd, gen_item );
-
-       //shift item.
-       wd->valid_item_list = eina_list_next(wd->valid_item_list);
-
-       return EINA_TRUE;
-}
-
-
-static Eina_Bool _right_shift_item( Widget_Data* wd, Elm_Coverflow_Item* item ) {
-
-       //valid items are less than cached item count !
-       if( ((Elm_Coverflow_Item*) eina_list_data_get( wd->valid_item_list ))->idx  <= 0  ) {
-               return EINA_FALSE;
-       }
-       _remove_item_obj( wd, item );
-
-       //Generate
-       Elm_Coverflow_Item* gen_item = (Elm_Coverflow_Item*) eina_list_data_get( 
-                       eina_list_nth_list( wd->all_item_list, item->idx - wd->valid_item_cnt ) );
-
-       _create_item_obj( wd, gen_item );
-
-       //shift_item. 
-       wd->valid_item_list = eina_list_prev(wd->valid_item_list);
-
-       return EINA_TRUE;
-}
-
-
-static void _update_items( Widget_Data* wd, Shift_Direction dir, Eina_Bool stack_raise )
-
-{
-       Evas_Coord body_x, body_y, body_w, body_h;
-       evas_object_geometry_get( wd->base, &body_x, &body_y, &body_w, &body_h );       
-
-       Eina_List* elist;
-       Elm_Coverflow_Item* item;
-       int idx = 0;
-       int shift_cnt = 0;
-
-       Evas_Coord cur_pos; 
-       Evas_Object* prev_obj = NULL;
-
-       EINA_LIST_FOREACH( wd->valid_item_list, elist, item ) {
-
-               //horizontal mode
-               cur_pos = idx++ * wd->dist_between_items + wd->cur_pos.x + BEGIN_POS_X;
-               evas_object_move( item->base, cur_pos, wd->cur_pos.y ); 
-
-               //Clipping!
-               if( cur_pos + COVER_SIZE < body_x || cur_pos - COVER_SIZE > body_x + body_w ) {
-                       item->visible = EINA_FALSE;
-                       evas_object_hide( item->base );
-                       evas_object_hide( item->reflection );
-               }else {
-                       item->visible = EINA_TRUE;
-               }
-               
-               if( item->visible == EINA_FALSE ) {
-
-                       switch( dir ) {
-                               case Shift_Left:
-                                       //Shift Left Side item!
-                                       if( cur_pos + COVER_SIZE < body_x - CACHED_ITEM_SIZE ) {
-
-                                               if( _left_shift_item( wd, item ) == EINA_TRUE ) {
-                                                       ++shift_cnt;
-                                               }
-                                       }
-                                       break;
-                               case Shift_Right:
-                                       //Shift Right Side item!
-                                        if( cur_pos > body_x + body_w + CACHED_ITEM_SIZE ) {
-
-                                               if( _right_shift_item( wd, item ) == EINA_TRUE ) {
-                                                       --shift_cnt;
-                                               }
-                                        }
-                                        break;
-                               case Shift_None:
-                               default:
-                                        break;
-                       }               
-               
-               //Z Order
-               }else {
-
-                       if( stack_raise == EINA_TRUE ) {
-                               evas_object_raise( item->base );
-                               evas_object_raise( item->reflection );
-                       }else {                                 
-                               evas_object_stack_above( prev_obj, item->reflection );
-                               evas_object_stack_above( item->reflection, item->base );
-                       }
-
-               }
-
-               prev_obj = item->base;
-
-               if( idx == wd->valid_item_cnt ) {
-                       break ;
-               }
-
-       }
-
-       //The base position should be shifted by size of removed items. 
-       if( shift_cnt ) {
-               shift_cnt *= wd->dist_between_items;
-               wd->cur_pos.x += shift_cnt;
-               wd->base_ani_data.from += shift_cnt;
-       }
-
-}
-
-static void _rotation_operation_cb( void* data, Elm_Animator* animator, const double key_frame )
-{
-       Widget_Data* wd = (Widget_Data*) data;
-       wd->rot_ani_data.cur = wd->rot_ani_data.from + wd->rot_ani_data.to * key_frame;
-}
-
-static void _rotation_completion_cb( void* data )
-{
-       Widget_Data* wd = (Widget_Data*) data;
-       elm_animator_del( wd->rot_ani_data.animator );
-       wd->rot_ani_data.animator = NULL;
-}
-
-static void _update_rotation_degree( Widget_Data* wd, float degree )
-{
-       if( wd->rot_ani_data.cur == degree ) {
-               return ;
-       }
-
-       if( wd->rot_ani_data.animator ) {
-               elm_animator_stop( wd->rot_ani_data.animator );
-       }else {
-               wd->rot_ani_data.animator = elm_animator_add( wd->obj );
-               elm_animator_operation_callback_set( wd->rot_ani_data.animator, _rotation_operation_cb, wd );
-               elm_animator_completion_callback_set( wd->rot_ani_data.animator, _rotation_completion_cb, wd );
-               elm_animator_duration_set( wd->rot_ani_data.animator, ROTATION_DURATION );
-       }
-
-       wd->rot_ani_data.from = wd->rot_ani_data.cur;
-       wd->rot_ani_data.to = degree - wd->rot_ani_data.cur;
-       elm_animator_animate( wd->rot_ani_data.animator );
-
-}
-
-static void _mouse_move_ev( void* data, Evas* evas, Evas_Object* obj, void* event_info )
-{
-       Evas_Event_Mouse_Move* ev = ( Evas_Event_Mouse_Move* ) event_info;
-
-       if( ev->buttons == 0 ) {
-               return ;
-       }
-
-       Widget_Data* wd = (Widget_Data*) data;
-
-       if( wd->move_on == EINA_FALSE ) {
-               if( abs( ev->cur.output.x - wd->ti_queue.head->pos ) < MOVE_ON_LIMIT ) {
-                       return ;
-               }else {
-                       wd->move_on = EINA_TRUE;
-               }
-       }
-
-#ifdef SKIP_EVENT
-       static int skip_count = 0;
-               
-       ++skip_count;
-
-       if( skip_count < 4 ) {
-               ++skip_count;
-               return ;
-       }
-       skip_count = 0;
-#endif 
-
-       Evas_Coord vector; 
-
-       //horizontal mode
-       vector =  ev->cur.output.x - ev->prev.output.x; 
-       wd->cur_pos.x += vector;
-
-       if( wd->rot_ani_data.cur > (180-ROTATION_DEGREE)/2+ROTATION_DEGREE) {
-               wd->stack_raise = EINA_FALSE;
-       }else {
-               wd->stack_raise = EINA_TRUE;
-       }
-
-       if( vector > 0 ) {
-               _update_items(wd, Shift_Right, wd->stack_raise );
-               wd->rot_ani_data.cur += 3;
-               if( wd->rot_ani_data.cur > 180 - ROTATION_DEGREE ) {
-                       wd->rot_ani_data.cur = 180 - ROTATION_DEGREE;
-               }
-       }else {
-               _update_items(wd, Shift_Left, wd->stack_raise );
-               wd->rot_ani_data.cur -= 3;
-               if( wd->rot_ani_data.cur < ROTATION_DEGREE ) {
-                       wd->rot_ani_data.cur = ROTATION_DEGREE;
-               }
-       }
-
-       //TODO: if Drag Direction is changed, let's clear queue!
-       
-       _push_back_tinode( &wd->ti_queue, _create_tinode( ev->cur.output.x ) );
-       _render_visible_items( wd );
-
-}
-
-
-static void _direct_bounce( Widget_Data* wd, Evas_Coord to )
-{
-       wd->sliding_vector = to - wd->cur_pos.x;
-       wd->base_ani_data.animator = elm_animator_add( wd->obj );
-       elm_animator_curve_style_set( wd->base_ani_data.animator, ELM_ANIMATOR_CURVE_OUT );
-       elm_animator_operation_callback_set( wd->base_ani_data.animator, _sliding_operation_cb, wd );
-       elm_animator_completion_callback_set( wd->base_ani_data.animator, _sliding_completion_cb, wd );
-       elm_animator_duration_set( wd->base_ani_data.animator, BOUNCING_DURATION );
-       elm_animator_animate( wd->base_ani_data.animator );
-}
-
-
-static void _sliding_completion_cb( void* data )
-{
-       Widget_Data* wd = (Widget_Data*) data;
-       elm_animator_del( wd->base_ani_data.animator );
-       wd->base_ani_data.animator = NULL;
-}
-
-static void _right_bounce_cb( void* data )
-{
-       Widget_Data* wd = (Widget_Data*) data;
-
-       Evas_Coord w;
-       evas_object_geometry_get( wd->obj, NULL, NULL, &w, NULL );
-
-       wd->sliding_vector = w - wd->cur_pos.x + wd->valid_item_length;
-       wd->base_ani_data.from = wd->cur_pos.x;
-       wd->stack_raise = EINA_FALSE;
-
-       elm_animator_duration_set( wd->base_ani_data.animator, BOUNCING_DURATION * 0.5  );
-       elm_animator_completion_callback_set( wd->base_ani_data.animator, _sliding_completion_cb, wd );
-       elm_animator_animate( wd->base_ani_data.animator );
-
-}
-
-
-
-static void _left_bounce_cb( void* data )
-{
-       Widget_Data* wd = (Widget_Data*) data;
-
-       wd->sliding_vector = -wd->cur_pos.x;
-       wd->base_ani_data.from = wd->cur_pos.x;
-       wd->stack_raise = EINA_FALSE;
-
-       elm_animator_duration_set( wd->base_ani_data.animator, BOUNCING_DURATION * 0.5  );
-       elm_animator_completion_callback_set( wd->base_ani_data.animator, _sliding_completion_cb, wd );
-       elm_animator_animate( wd->base_ani_data.animator );
-
-}
-
-
-
-static void _sliding_operation_cb( void* data, Elm_Animator* animator, const double key_frame )
-{
-       Widget_Data* wd = (Widget_Data*) data;
-       
-       wd->cur_pos.x = wd->base_ani_data.from + (Evas_Coord) ( (double) wd->sliding_vector * key_frame );
-
-       if( wd->sliding_vector > 0 ) {
-               _update_items( wd, Shift_Right, wd->stack_raise );
-       }else {
-               _update_items( wd, Shift_Left, wd->stack_raise );
-       }
-
-       _render_visible_items( wd );
-
-}
-
-
-static Eina_Bool _bounce_to_right( Widget_Data* wd )
-{
-       Evas_Coord w;
-       evas_object_geometry_get( wd->obj, NULL, NULL, &w, NULL );
-       
-       Elm_Coverflow_Item* item =  eina_list_data_get( wd->valid_item_list );  
-               
-       Evas_Coord right_outside_length = wd->cur_pos.x + (Evas_Coord) wd->valid_item_length - w;
-       Evas_Coord sliding_length = wd->sliding_vector;
-
-       if( right_outside_length + sliding_length <= 0 ) {
-               return EINA_FALSE;
-       }
-
-       Evas_Coord bounce_pos  = (right_outside_length + sliding_length) / 2;
-       
-       wd->sliding_vector = bounce_pos - right_outside_length;
-
-       wd->base_ani_data.animator = elm_animator_add( wd->obj );
-       elm_animator_duration_set( wd->base_ani_data.animator, SLIDING_DURATION * 0.5 );
-       elm_animator_curve_style_set( wd->base_ani_data.animator, ELM_ANIMATOR_CURVE_OUT );
-       elm_animator_operation_callback_set( wd->base_ani_data.animator, _sliding_operation_cb, wd );
-       elm_animator_completion_callback_set( wd->base_ani_data.animator, _sliding_completion_cb, wd );
-//     elm_animator_completion_callback_set( wd->base_ani_data.animator, _right_bounce_cb, wd );
-       elm_animator_animate( wd->base_ani_data.animator );
-
-       return EINA_TRUE;
-
-}
-
-
-
-static Eina_Bool _bounce_to_left( Widget_Data* wd )
-{
-       Elm_Coverflow_Item* item = eina_list_data_get( wd->valid_item_list );
-       Evas_Coord left_outside_length = wd->cur_pos.x -item->idx * wd->dist_between_items;
-       Evas_Coord sliding_length = wd->sliding_vector;
-
-       if( left_outside_length + sliding_length < 0 ) {
-               return EINA_FALSE;
-       }
-
-       Evas_Coord bounce_pos  = (left_outside_length + sliding_length) / 2;
-       
-       wd->sliding_vector = bounce_pos - left_outside_length;
-
-       wd->base_ani_data.animator = elm_animator_add( wd->obj );
-       elm_animator_duration_set( wd->base_ani_data.animator, SLIDING_DURATION * 0.5 );
-       elm_animator_curve_style_set( wd->base_ani_data.animator, ELM_ANIMATOR_CURVE_OUT );
-       elm_animator_operation_callback_set( wd->base_ani_data.animator, _sliding_operation_cb, wd );
-       elm_animator_completion_callback_set( wd->base_ani_data.animator, _left_bounce_cb, wd );
-       elm_animator_animate( wd->base_ani_data.animator );
-
-       return EINA_TRUE;
-
-}
-
-
-
-static void _mouse_up_ev( void* data, Evas* evas, Evas_Object* obj, void* event_info )
-{
-       Widget_Data* wd = (Widget_Data*) data;
-
-       if( wd->move_on == EINA_FALSE ) {
-               return ;
-       }
-
-       if( wd->ti_queue.cnt == 0 ) {
-               return ;
-       }
-
-       wd->base_ani_data.from = wd->cur_pos.x;
-       wd->sliding_vector = wd->ti_queue.tail->pos - wd->ti_queue.head->pos;
-
-       //TODO:Please check animator in direct_bouce and update_rotation_degree, bounce_to_left..
-
-       //Rotation 
-       if( wd->sliding_vector > 0 ) {
-               wd->stack_raise = EINA_FALSE;
-               _update_rotation_degree( wd, 180 - ROTATION_DEGREE );
-       }else {
-               wd->stack_raise = EINA_TRUE;
-               _update_rotation_degree( wd, ROTATION_DEGREE );
-       }
-
-       //Check Bouncing
-       Evas_Coord w;
-       evas_object_geometry_get( obj, NULL, NULL, &w, NULL );
-       
-       //bounce to left directly  
-       if( wd->cur_pos.x > 0 ) {
-               _direct_bounce( wd, 0 );
-               return ;
-       //bounce to right directly
-       }else if( wd->cur_pos.x + (Evas_Coord) wd->valid_item_length < w ) {
-               _direct_bounce( wd, w - (Evas_Coord) wd->valid_item_length );
-               return ;
-       }
-
-       if( _bounce_to_left( wd ) == EINA_TRUE ) {
-               return ;
-       }
-/*
-       if( _bounce_to_right( wd ) == EINA_TRUE ) {
-               return ;
-       }
-*/
-       //sliding effect
-       wd->base_ani_data.animator = elm_animator_add( obj );
-       elm_animator_duration_set( wd->base_ani_data.animator, SLIDING_DURATION );
-       elm_animator_curve_style_set( wd->base_ani_data.animator, ELM_ANIMATOR_CURVE_OUT );
-       elm_animator_operation_callback_set( wd->base_ani_data.animator, _sliding_operation_cb, wd );
-       elm_animator_completion_callback_set( wd->base_ani_data.animator, _sliding_completion_cb, wd );
-       elm_animator_animate( wd->base_ani_data.animator );
-
-}
-
-
-
-EAPI Evas_Object* elm_coverflow_add( Evas_Object* parent )
-{
-       Evas* evas;
-       Evas_Object* obj;
-       Widget_Data* wd;
-       evas = evas_object_evas_get( parent );
-
-       if( evas == NULL ) {
-               return NULL;
-       }
-
-       obj = ( Evas_Object* ) elm_widget_add( evas );
-
-       if( obj == NULL ) {
-               return NULL;
-       }
-
-       elm_widget_type_set( obj, "coverflow" );
-       elm_widget_sub_object_add( parent, obj );
-
-       wd = calloc( 1, sizeof( Widget_Data ) );
-
-       if( wd == NULL ) {
-               return NULL;
-       }
-
-       elm_widget_data_set( obj, wd );
-       elm_widget_del_pre_hook_set( obj, _del_pre_hook );
-       elm_widget_del_hook_set( obj, _del_hook );
-
-       wd->parent = parent;
-       wd->obj = obj;
-       wd->horizontal = EINA_TRUE;
-       wd->rot_ani_data.cur = ROTATION_DEGREE;
-       wd->dist_between_items = DISTANCE_BETWEEN_ITEMS;
-       wd->stack_raise = EINA_TRUE;
-       wd->original_map = _create_original_map();
-       wd->reflection_map = _create_reflection_map( COVER_SIZE / 3 );
-
-       //body
-       wd->base = evas_object_rectangle_add( evas );
-       evas_object_color_set( wd->base, 0, 0, 0, 0 );
-       evas_object_resize( wd->base, 99999999, 9999999 );
-       evas_object_size_hint_weight_set( wd->base, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND );
-       evas_object_size_hint_align_set( wd->base, EVAS_HINT_FILL, EVAS_HINT_FILL );
-       evas_object_event_callback_add( wd->base, EVAS_CALLBACK_MOUSE_DOWN, _mouse_down_ev, wd );
-       evas_object_event_callback_add( wd->base, EVAS_CALLBACK_MOUSE_MOVE, _mouse_move_ev, wd );
-       evas_object_event_callback_add( wd->base, EVAS_CALLBACK_MOUSE_UP, _mouse_up_ev, wd );
-       evas_object_repeat_events_set( wd->base, EINA_TRUE );
-
-       //Set widget base callbacks. 
-       evas_object_event_callback_add( parent, EVAS_CALLBACK_RESIZE, _parent_resize, obj );
-       evas_object_event_callback_add( obj, EVAS_CALLBACK_SHOW, _coverflow_show, wd );
-       evas_object_event_callback_add( obj, EVAS_CALLBACK_HIDE, _coverflow_hide, wd );
-       evas_object_event_callback_add( obj, EVAS_CALLBACK_MOVE, _coverflow_move, wd );
-       evas_object_event_callback_add( obj, EVAS_CALLBACK_RESIZE, _coverflow_resize, wd );
-
-       //calculate count of initial valid item.
-       Evas_Coord w, h;
-       evas_object_geometry_get( wd->parent, NULL, NULL, &w, &h );
-       wd->valid_item_cnt = w / COVER_SIZE + 2 + CACHED_ITEM_COUNT * 2;
-
-       return obj;
-
-}
-
-
-
-
-EAPI void elm_coverflow_clear( Evas_Object* obj )
-{
-       Widget_Data* wd = (Widget_Data*) elm_widget_data_get( obj );
-
-       if( wd == NULL ) {
-               return ;
-       }
-
-       Eina_List* elist;
-       Elm_Coverflow_Item* item;
-
-       EINA_LIST_FOREACH( wd->all_item_list, elist, item ) {
-               _remove_item_obj( wd, item );
-               wd->all_item_list = eina_list_remove( wd->all_item_list, item );
-               free( item );
-       }
-
-       wd->valid_item_length = 0;
-
-}
-
-
-
-/*
-EAPI void elm_coverflow_vertical_set( Evas_Object* obj )
-{
-       fprintf( stderr, "Sorry, It does not support yet!\n" );
-
-}
-
-EAPI void elm_coverflow_vertical_get( Evas_Object* obj )
-{
-       fprintf( stderr, "Sorry, It does not support yet!\n" );
-
-}
-*/
-
-
-static Evas_Object* _TEMP_CREATE_ICON( Evas_Object* parent, int idx  )
-{
-       char file_path[ 256 ];
-       sprintf( file_path, "/usr/share/beat_winset_test/icon/coverflow_img/%d_raw.png", idx+1  );
-/*     
-       Evas_Object* icon = elm_icon_add( parent );
-       elm_icon_file_set( icon, file_path, NULL );
-       elm_icon_scale_set( icon, 1, 1 );
-       return icon; */
-
-       Evas_Object* img = evas_object_image_add( evas_object_evas_get( parent ) );
-       evas_object_image_load_size_set( img, 80, 80 );
-       evas_object_image_fill_set( img, 0, 0, 80, 80 );
-       evas_object_image_file_set( img, file_path, NULL );
-       evas_object_image_smooth_scale_set( img, EINA_TRUE );
-
-       return img;     
-}
-
-static void _selected_item_completion_cb( void* data )
-{
-       Widget_Data* wd = (Widget_Data*) data;
-       elm_animator_del( wd->select_ani_data->animator );
-
-       free( wd->select_ani_data );
-       wd->select_ani_data = NULL;
-       wd->selected_item = NULL;
-
-       _update_items( wd, Shift_None, wd->stack_raise ); 
-
-       evas_object_show( wd->base );
-       evas_object_raise( wd->base );  
-
-}
-
-
-static void _selected_item_operation_cb( void* data, Elm_Animator* animator, const double key_frame )
-{
-       Widget_Data* wd = (Widget_Data*) data;
-       
-       Evas_Coord reflection_size = COVER_SIZE / 3;
-
-       Elm_Coverflow_Item* item = wd->selected_item;
-
-       Evas_Coord x = wd->select_ani_data->from_x + wd->select_ani_data->to_x * key_frame;
-       Evas_Coord y = wd->select_ani_data->orig_pos_y;
-       Evas_Coord z = wd->select_ani_data->from_z + wd->select_ani_data->to_z * key_frame;
-       float rot_degree =
-               wd->select_ani_data->from_rot + wd->select_ani_data->to_rot * key_frame;
-
-       //Geometry 
-       //ToDo: Check coord_set . 
-       evas_map_point_coord_set( wd->original_map, 0, 
-                           x, y, z );
-       evas_map_point_coord_set( wd->original_map, 1, 
-                           x + COVER_SIZE, y, z );
-       evas_map_point_coord_set( wd->original_map, 2,
-                           x + COVER_SIZE, y + COVER_SIZE, z );
-       evas_map_point_coord_set( wd->original_map, 3,
-                           x, y + COVER_SIZE, z );
-
-       evas_map_point_coord_set( wd->reflection_map, 0, 
-                           x, y + COVER_SIZE, z );
-       evas_map_point_coord_set( wd->reflection_map, 1, 
-                           x + COVER_SIZE, y + COVER_SIZE, z );
-       evas_map_point_coord_set( wd->reflection_map, 2,
-                           x + COVER_SIZE, y + COVER_SIZE + reflection_size, z );
-       evas_map_point_coord_set( wd->reflection_map, 3,
-                           x, y + COVER_SIZE + reflection_size, z );
-
-       //Rotation
-       evas_map_util_3d_rotate( wd->original_map, 0, rot_degree, 0, 
-                       x + HALF_COVER_SIZE, y + HALF_COVER_SIZE, z );
-
-       evas_map_util_3d_rotate( wd->reflection_map, 0, rot_degree, 0,
-                       x + HALF_COVER_SIZE, y + HALF_COVER_SIZE, z );
-
-       //Perspective 
-       evas_map_util_3d_perspective( wd->original_map, 
-                                     x + HALF_COVER_SIZE, 
-                                     y + HALF_COVER_SIZE, 0, 750 );
-
-       evas_map_util_3d_perspective( wd->reflection_map, 
-                                     x + HALF_COVER_SIZE, 
-                                     y + HALF_COVER_SIZE, 0, 750 );
-
-       evas_object_map_set( item->base, wd->original_map );
-       evas_object_map_set( item->reflection, wd->reflection_map );
-       
-}
-
-
-
-
-
-static void _unselect_item( Widget_Data* wd, Elm_Coverflow_Item* item )
-{
-       Select_Ani_Data* ani_data = wd->select_ani_data;
-
-       ani_data->from_x = ani_data->from_x + ani_data->to_x;
-       ani_data->to_x = ani_data->orig_pos_x - ani_data->from_x;
-       ani_data->from_z = SELECTED_ITEM_POS_Z;
-       ani_data->to_z = -SELECTED_ITEM_POS_Z;
-       ani_data->from_rot = 0;
-       ani_data->to_rot = wd->rot_ani_data.cur;
-
-       elm_animator_completion_callback_set( ani_data->animator, _selected_item_completion_cb, wd );
-       elm_animator_animate( ani_data->animator );
-}
-
-
-
-
-
-
-static void _zoom_in_completion_cb( void* data )
-{
-       Widget_Data* wd = (Widget_Data*) data;
-
-       elm_animator_del( wd->base_ani_data.animator );
-       wd->base_ani_data.animator = NULL;
-
-
-}
-
-
-
-
-static void _zoom_in_operation_cb( void* data, Elm_Animator* animator, const double key_frame )
-{
-       Widget_Data* wd = (Widget_Data*) data;
-       wd->cur_pos.z = ZOOM_OUT_DISTANCE -ZOOM_OUT_DISTANCE * key_frame; 
-       _render_visible_items( wd );
-}
-
-
-inline static void _zoom_in( Widget_Data* wd ) 
-{
-       wd->base_ani_data.animator = elm_animator_add( wd->obj );
-       elm_animator_duration_set( wd->base_ani_data.animator, ZOOM_OUT_DURATION );
-       elm_animator_curve_style_set( wd->base_ani_data.animator, ELM_ANIMATOR_CURVE_OUT );
-       elm_animator_operation_callback_set( wd->base_ani_data. animator,
-                                            _zoom_in_operation_cb, wd );
-       elm_animator_completion_callback_set( wd->base_ani_data.animator,
-                                            _zoom_in_completion_cb, wd );
-       elm_animator_animate( wd->base_ani_data.animator );
-}
-
-
-static void _zoom_in_ev( void* data, Evas* e, Evas_Object* obj, void* event_info )
-{
-       Widget_Data* wd = (Widget_Data*) data;
-       
-       evas_object_del( obj );
-       
-       _zoom_in( wd ); 
-       _unselect_item( wd, wd->selected_item );
-       
-}
-
-
-static void _zoom_out_completion_cb( void* data )
-{
-       Widget_Data* wd = (Widget_Data*) data;
-
-       elm_animator_del( wd->base_ani_data.animator );
-
-       //Create Zoom In Event Delegator
-       Evas_Coord x, y, w, h;
-       evas_object_geometry_get( wd->base, &x, &y, &w, &h );
-       Evas_Object* rect = evas_object_rectangle_add( evas_object_evas_get( wd->obj ) );
-       evas_object_color_set( rect, 0, 0, 0, 0 );
-       evas_object_move( rect, x, y );
-       evas_object_resize( rect, w, h );
-       evas_object_show( rect );
-       evas_object_event_callback_add( rect, EVAS_CALLBACK_MOUSE_UP, _zoom_in_ev, wd );
-
-}
-
-static void _zoom_out_operation_cb( void* data, Elm_Animator* animator, const double key_frame )
-{
-       Widget_Data* wd = (Widget_Data*) data;
-       wd->cur_pos.z = ZOOM_OUT_DISTANCE * key_frame; 
-
-       _render_visible_items( wd );
-}
-
-
-
-
-inline static void _zoom_out( Widget_Data* wd )
-{
-       wd->base_ani_data.animator = elm_animator_add( wd->obj );
-       elm_animator_duration_set( wd->base_ani_data.animator, ZOOM_OUT_DURATION );
-       elm_animator_curve_style_set( wd->base_ani_data.animator, ELM_ANIMATOR_CURVE_OUT );
-       elm_animator_operation_callback_set( wd->base_ani_data.animator, 
-                                            _zoom_out_operation_cb, wd );
-       elm_animator_completion_callback_set( wd->base_ani_data.animator, 
-                                        _zoom_out_completion_cb, wd );
-       elm_animator_animate( wd->base_ani_data.animator );
-
-}
-
-
-static void _select_item( Widget_Data* wd, Elm_Coverflow_Item* item )
-{
-       wd->selected_item = item;
-       evas_object_raise( item->base );
-       evas_object_raise( item->reflection );
-
-       Select_Ani_Data* ani_data = calloc( 1, sizeof( Select_Ani_Data ) );
-
-       evas_object_geometry_get( item->base, &ani_data->orig_pos_x, &ani_data->orig_pos_y, NULL, NULL );
-       ani_data->from_x = ani_data->orig_pos_x;
-
-       Evas_Coord w;
-       evas_object_geometry_get( wd->base, NULL, NULL, &w, NULL );
-       ani_data->to_x = w / 2 - COVER_SIZE / 2 - ani_data->from_x;
-
-       ani_data->from_z = 0;
-       ani_data->to_z = SELECTED_ITEM_POS_Z;
-       ani_data->from_rot = wd->rot_ani_data.cur;
-       ani_data->to_rot = -wd->rot_ani_data.cur;
-
-       ani_data->animator = elm_animator_add( wd->obj );
-       elm_animator_duration_set( ani_data->animator, ZOOM_OUT_DURATION );
-       elm_animator_curve_style_set( ani_data->animator, ELM_ANIMATOR_CURVE_OUT );
-       elm_animator_operation_callback_set( ani_data->animator, _selected_item_operation_cb, wd );
-       elm_animator_animate( ani_data->animator );
-
-       wd->select_ani_data = ani_data;
-}
-
-
-
-static void _item_clicked_ev( void* data, Evas* e, Evas_Object* obj, void* event_info )
-{
-       Elm_Coverflow_Item* item = (Elm_Coverflow_Item*) data;
-
-       Widget_Data* wd = item->wd;
-
-       if( wd->move_on == EINA_TRUE ) {
-               return ;
-       }
-
-       if( evas_object_visible_get( wd->base ) == EINA_FALSE ) {
-               return;
-       }
-               
-       evas_object_hide( wd->base );
-
-       if( wd->base_ani_data.animator ) {
-               elm_animator_stop( wd->base_ani_data.animator );
-               elm_animator_del( wd->base_ani_data.animator );
-       }
-
-       _zoom_out( wd );
-       _select_item( wd, item );
-
-}
-
-
-static void _create_item_obj( Widget_Data* wd, Elm_Coverflow_Item* item )
-{
-       if( item == NULL ) {
-               return ;
-       }
-       
-       //Original Object
-       item->base = _TEMP_CREATE_ICON( wd->parent, (int) item->data );
-       _init_item_obj( item->base );
-//     evas_object_smart_callback_add( item->base, "clicked", _item_clicked_ev, item );
-       evas_object_event_callback_add( item->base, EVAS_CALLBACK_MOUSE_UP, _item_clicked_ev, item );
-
-       item->wd = wd;
-
-       //Reflection Object
-       item->reflection = _TEMP_CREATE_ICON( wd->parent, (int) item->data );
-       _init_item_obj( item->reflection );
-
-       wd->valid_item_length += wd->dist_between_items;
-}
-
-
-inline static void _init_item_obj( Evas_Object* obj )
-{
-       evas_object_size_hint_weight_set( obj, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND );
-       evas_object_size_hint_align_set( obj, EVAS_HINT_FILL, EVAS_HINT_FILL );
-       evas_object_resize( obj, COVER_SIZE, COVER_SIZE );
-       evas_object_map_enable_set( obj, EINA_TRUE );
-
-}
-
-
-
-EAPI Elm_Coverflow_Item* elm_coverflow_item_append( 
-               Evas_Object* obj,
-               Elm_Coverflow_Item_Class* cic,
-               void* data,
-               void (*func)(void*data, Evas_Object* obj, void* event_info), 
-               void* func_data )
-{
-       if( cic == NULL ) {
-               return NULL;
-       }
-       
-       Widget_Data* wd = (Widget_Data*) elm_widget_data_get( obj );
-
-       if( wd == NULL ) {
-               return NULL;
-       }
-
-       Elm_Coverflow_Item* item = calloc( 1, sizeof( Elm_Coverflow_Item ) );
-
-       if( item == NULL ) {
-               return NULL;
-       }
-
-       item->cic.CoverflowItemGenFunc = cic->CoverflowItemGenFunc;
-       item->cic.CoverflowItemDelFunc = cic->CoverflowItemDelFunc;
-       item->data = data;
-       item->func = func;
-       item->func_data = func_data;
-       item->idx = eina_list_count( wd->all_item_list );
-
-       wd->all_item_list = eina_list_append( wd->all_item_list, item ); 
-
-       //If the item count is less than valid item count 
-       if( eina_list_count( wd->all_item_list ) <= wd->valid_item_cnt ) {
-
-               _create_item_obj( wd, item );
-               
-               //For First item. 
-               wd->valid_item_list = wd->all_item_list;
-
-               //Exactly It does not need to update_items.
-               if( wd->show == EINA_TRUE ) {
-                       _update_items( wd, Shift_Left, EINA_FALSE );
-               }
-
-       }
-
-       return item;
-}
-
-
-
-/*
-EAPI Elm_Coverflow_Item* elm_coverflow_item_prepend( Evas_Object* obj, Evas_Object* item )
-{
-       Elm_Coverflow_Item* item;
-       fprintf( stderr, "Sorry, It does not support yet!\n" );
-
-       return item;
-}
-
-
-
-EAPI Elm_Coverflow_Item* elm_coverflow_item_insert_before( Evas_Object* obj, Elm_Coverflow_Item* before_item, Evas_Object* item ) {
-       Elm_Coverflow_Item* item;
-       fprintf( stderr, "Sorry, It does not support yet!\n" );
-
-       return item;
-}
-
-
-EAPI Elm_Coverflow_Item* elm_coverflow_item_insert_after( Evas_Object* obj, Elm_Coverflow_Item* after_item, Evas_Object* item ) {
-
-       Elm_Coverflow_Item* item;
-       fprintf( stderr, "Sorry, It does not support yet!\n" );
-       
-       return item;
-}
-
-
-EAPI Elm_Coverflow_Item* elm_coverflow_first_item_get( Evas_Object* obj )
-{
-fprintf( stderr, "Sorry, It does not support yet!\n" );
-       return NULL;
-}
-
-
-EAPI Elm_Coverflow_Item* elm_coverflow_last_item_get( Evas_Object* obj )
-{
-       fprintf( stderr, "Sorry, It does not support yet!\n" );
-
-       return NULL;
-}
-
-
-
-EAPI void elm_coverflow_item_del( Evas_Object* obj, Elm_Coverflow_Item* item )
-{
-       fprintf( stderr, "Sorry, It does not support yet!\n" );
-
-       if( --wd->item_cnt == 0 ) {
-               wd->visible_item_head = NULL;
-       }
-
-}
-
-
-EAPI unsigned int elm_coverflow_item_count_get( Evas_Object* obj )
-{
-       fprintf( stderr, "Sorry, It does not support yet!\n" );
-       return 0;
-}
-
-
-EAPI void elm_coverflow_item_disabled_set( Elm_Coverflow_Item* item )
-{
-       fprintf( stderr, "Sorry, It does not support yet!\n" );
-}
-
-EAPI Eina_Bool elm_coverflow_item_disabled_get( Elm_Coverflow_Item* item )
-{
-       fprintf( stderr, "Sorry, It does not support yet!\n" );
-       return EINA_FALSE;
-}
-
-
-EAPI const Eina_List* elm_coverflow_items_get( Evas_Object* obj )
-{
-       fprintf( stderr, "Sorry, It does not support yet!\n" );
-       return NULL;
-}
-
-
-
-
-EAPI void elm_coverflow_multiselect_set( Evas_Object* obj, Eina_Bool multi )
-{
-       fprintf( stderr, "Sorry, It does not support yet!\n" );
-}
-
-EAPI Eina_Bool elm_coverflow_multiselect_get( Evas_Object* obj )
-{
-       fprintf( stderr, "Sorry, It does not support yet!\n" );
-
-       return EINA_FALSE;
-}
-
-EAPI Eina_List* elm_coverflow_selected_items_get( Evas_Object* obj )
-{
-       fprintf( stderr, "Sorry, It does not support yet!\n" );
-       return NULL;
-}
-
-
-EAPI unsigned int elm_coverflow_selected_items_count_get( Evas_Object* obj )
-{
-       fprintf( stderr, "Sorry, It does not support yet!\n" );
-       return 0;
-}
-
-
-EAPI void elm_coverflow_multiselected_cancel( Evas_Object* obj )
-{
-       fprintf( stderr, "Sorry, It does not support yet!\n" );
-}
-
-
-EAPI void elm_coverflow_multiselected_showup( Evas_Object* obj )
-{
-       fprintf( stderr, "Sorry, It does not support yet!\n" );
-}
-
-
-
-EAPI Elm_Coverflow_Item* elm_coverflow_item_next_get( Elm_Coverflow_Item* item )
-{
-       fprintf( stderr, "Sorry, It does not support yet!\n" );
-       return NULL;
-}
-
-
-EAPI Elm_Coverflow_Item* elm_coverflow_item_prev_get( Elm_Coverflow_Item* item )
-{
-       fprintf( stderr, "Sorry, It does not support yet!\n" );
-       return NULL;
-}
-
-
-EAPI void elm_coverflow_item_bring_in( Elm_Coverflow_Item* item )
-{
-       fprintf( stderr, "Sorry, It does not support yet!\n" );
-}
-
-
-EAPI void elm_coverflow_item_top_bring_in( Elm_Coverflow_Item* item )
-{
-       fprintf( stderr, "Sorry, It does not support yet!\n" );
-}
-
-
-EAPI void elm_coverflow_item_middle_bring_in( Elm_Coverflow_Item* item )
-{
-       fprintf( stderr, "Sorry, It does not support yet!\n" );
-}
-
-
-EAPI Evas_Object* elm_coverflow_item_object_get( Elm_Coverflow_Item* item )
-{
-       fprintf( stderr, "Sorry, It does not support yet!\n" );
-       return NULL;
-}
-
-*/
index 1e24542..93477fe 100644 (file)
@@ -303,10 +303,13 @@ _get_indicator_h(Evas_Object *parent)
        if (h < 0) h = 0;
 
        if( (rotation == 0) || (rotation ==180)) {
+               printf( "indicator  %d\n", h);
                return h;
        }else {
+               printf( "indicator  %d\n", w);
                return w;
        }
+
 }
 
 static Elm_Ctxpopup_Arrow
@@ -346,6 +349,9 @@ _calc_base_geometry(Evas_Object *obj, Evas_Coord_Rectangle *rect)
    if (base_w > max_width_size)
       base_w = max_width_size;
 
+   //s -a
+   //evas_object_size_hint_max_get
+
    if(wd->position_forced)
    {
           rect->x = x;
@@ -444,14 +450,13 @@ _calc_base_geometry(Evas_Object *obj, Evas_Coord_Rectangle *rect)
        break;
      }
 
-   //Not enough space to locate. In this case, just show with down arrow.
-   //And prevent to show the arrow.
+   //Not enough space to locate. In this case, just show And prevent to show the arrow.
    if( !(available_direction[0] | available_direction[1] | available_direction[2] | available_direction[3]) )
    {
-            ADJUST_POS_X(x);
-            arrow = -1;
-            y = indicator_h;
-            evas_object_hide(wd->arrow);
+          x = area_x + (area_w/2) - (base_w / 2);
+          y = area_y + (area_y/2) - (base_h / 2);
+          arrow = -1;
+          evas_object_hide(wd->arrow);
    }
 
    rect->x = x;
@@ -891,13 +896,13 @@ elm_ctxpopup_item_label_get(Elm_Ctxpopup_Item *item)
 /**
  * Add a new ctxpopup object to the parent.
  *
- * @param[in] parent   Parent object
+ * @param[in] obj      window object
  * @return             New object or NULL if it cannot be created
  *
  * @ingroup Ctxpopup
  */
 EAPI Evas_Object *
-elm_ctxpopup_add(Evas_Object *parent)
+elm_ctxpopup_add(Evas_Object *obj)
 {
    Evas_Object *obj;
    Evas *e;
diff --git a/src/lib/elm_datepicker2.c b/src/lib/elm_datepicker2.c
deleted file mode 100644 (file)
index bb3af08..0000000
+++ /dev/null
@@ -1,653 +0,0 @@
-#include <Elementary.h>
-#include "elm_priv.h"
-#include <langinfo.h>
-#include <string.h>
-
-/**
- * @defgroup Datepicker2 Datepicker2
- * @ingroup Elementary
- *
- * This is a date picker.
- */
-
-enum {
-       PICKER_YEAR,
-       PICKER_MON,
-       PICKER_DAY,
-       PICKER_MAX
-};
-
-#define YEAR_MIN (1900)
-#define YEAR_MAX (2099)
-#define MONTH_MIN (1)
-#define MONTH_MAX (12)
-#define DAY_MIN (1)
-#define DAY_MAX (31)
-#define MONTH_MAX (12)
-#define DAY_MAX (31)
-
-typedef struct _Widget_Data Widget_Data;
-
-struct _Widget_Data {
-       Evas_Object *base;
-       Evas_Object *pickers[PICKER_MAX];
-       int y_max, m_max, d_max;
-       int y_min, m_min, d_min;
-       int day_of_month;
-       int year, month, day;
-       char fmt[8];
-};
-
-static void _del_hook(Evas_Object *obj);
-static void _theme_hook(Evas_Object *obj);
-static void _disable_hook(Evas_Object *obj);
-static void _sizing_eval(Evas_Object *obj);
-static void _i18n(Evas_Object *obj);
-static Evas_Object *_picker_add(Evas_Object *ly, const char *part, int min, int max, const char *fmt);
-static void _pickers_del(Evas_Object *obj);
-static void _picker_item_add(Evas_Object *eo, int min, int max, const char *fmt);
-static void _picker_item_del(Evas_Object *eo);
-static void _update_day_of_month(Evas_Object *obj, int month);
-static void _update_picker(Evas_Object *picker, int nth);
-static void _changed(Evas_Object *picker, Evas_Object *child, Evas_Object *obj);
-static void _overflow_cb(void *data, Evas_Object *obj, void *event_info);
-static void _underflow_cb(void *data, Evas_Object *obj, void *event_info);
-static void _year_changed_cb(void *data, Evas_Object *obj, void *event_info);
-static void _month_changed_cb(void *data, Evas_Object *obj, void *event_info);
-static void _day_changed_cb(void *data, Evas_Object *obj, void *event_info);
-static void _pickers_add(Evas_Object *obj);
-static void _callback_init(Evas_Object *obj);
-
-static Eina_Bool
-_is_valid_date(Evas_Object *obj)
-{
-       Widget_Data *wd = elm_widget_data_get(obj);
-       int cur, min, max;
-       if (!wd) return EINA_FALSE;
-
-       cur = wd->year * 10000 + wd->month * 100 + wd->day;
-       max = wd->y_max * 10000 + wd->m_max * 100 + wd->d_max;
-       min = wd->y_min * 10000 + wd->m_min * 100 + wd->d_min;
-
-       if (cur > max || cur < min) return EINA_FALSE;
-       return EINA_TRUE;
-}
-
-static void
-_del_hook(Evas_Object *obj)
-{
-       Widget_Data *wd = elm_widget_data_get(obj);
-       if (!wd) return;
-       _pickers_del(obj);
-       free(wd);
-}
-
-static void
-_theme_hook(Evas_Object *obj)
-{
-       Widget_Data *wd = elm_widget_data_get(obj);
-       if (!wd) return;
-
-       _pickers_del(obj);
-       _elm_theme_object_set(obj, wd->base, "datepicker2", "base", elm_widget_style_get(obj));
-       _pickers_add(obj);
-       _i18n(obj);
-
-       _update_picker(wd->pickers[PICKER_YEAR], wd->year - wd->y_min);
-       _update_picker(wd->pickers[PICKER_MON], wd->month - 1);
-       _update_picker(wd->pickers[PICKER_DAY], wd->day - 1);
-
-       _sizing_eval(obj);
-}
-
-static void
-_disable_hook(Evas_Object *obj)
-{
-
-}
-
-static void
-_sizing_eval(Evas_Object *obj)
-{
-       Widget_Data *wd = elm_widget_data_get(obj);
-       Evas_Coord minw = -1, minh = -1, maxw = -1, maxh = -1;
-
-       if (!wd) return;
-       elm_coords_finger_size_adjust(1, &minw, 1, &minh);
-       edje_object_size_min_restricted_calc(wd->base, &minw, &minh, minw, minh);
-       elm_coords_finger_size_adjust(1, &minw, 1, &minh);
-       evas_object_size_hint_min_set(obj, minw, minh);
-       evas_object_size_hint_max_set(obj, maxw, maxh);
-}
-
-static void
-_i18n(Evas_Object *obj)
-{
-       Widget_Data *wd = elm_widget_data_get(obj);
-       const char *fmt;
-       char sig[32] = { "elm,state," };
-       int i = 0, j, k;
-
-       if (!wd) return;
-
-       j = strlen(sig);
-       k = j;
-       fmt = nl_langinfo(D_FMT);
-
-       while (fmt[i] && j < 32) {
-               if (fmt[i] == '%' && fmt[i+1]) {
-                       i++;
-                       switch (fmt[i]) {
-                       case 'Y': case 'M': case 'D': case 'y': case 'm': case 'd':
-                               sig[j++] = tolower(fmt[i]);
-                               sig[j++] = tolower(fmt[i]);
-                               break;
-                       default:
-                               break;
-                       }
-               }
-               i++;
-       }
-       sig[j] = '\0';
-       edje_object_signal_emit(wd->base, sig, "elm");
-       snprintf(wd->fmt, 8, sig + k);
-}
-
-static void
-_picker_item_add(Evas_Object *eo, int min, int max, const char *fmt)
-{
-       char buf[8];
-       for (; min <= max; min++) {
-               snprintf(buf, 8, fmt, min);
-               elm_discpicker_item_append(eo, buf, NULL, NULL);
-       }
-}
-
-static void
-_picker_item_del(Evas_Object *eo)
-{
-       Elm_Picker_Item *item;
-       item = elm_discpicker_first_item_get(eo);
-       while (item) {
-               elm_discpicker_item_del(item);
-               item = elm_discpicker_first_item_get(eo);
-       }
-}
-
-static Evas_Object *
-_picker_add(Evas_Object *ly, const char *part, int min, int max, const char *fmt)
-{
-       Evas_Object *eo;
-       eo = elm_discpicker_add(ly);
-       _picker_item_add(eo, min, max, fmt);
-       evas_object_data_set(eo, "freeze", 0);
-       if (part)
-               edje_object_part_swallow(ly, part, eo);
-       return eo;
-}
-
-static Evas_Object *
-_picker_month_add(Evas_Object *ly, const char *part, const char *fmt)
-{
-       int i;
-       char buf[32];
-       struct tm tm = {0, };
-       
-       Evas_Object *eo;
-       Elm_Discpicker_Item *it;
-       eo = elm_discpicker_add(ly);
-
-       for (i = 0; i < 12; i++) {
-               tm.tm_mon = i;
-               strftime(buf, 32, fmt, &tm);
-               it = elm_discpicker_item_append(eo, buf, NULL, NULL);
-               elm_discpicker_item_data_set(it, (void *)(i + 1));
-       }
-
-       if (part)
-               edje_object_part_swallow(ly, part, eo);
-       return eo;
-}
-
-static void
-_update_day_of_month(Evas_Object *obj, int month)
-{
-       int tmp, need_move = 0;
-       Elm_Picker_Item *item, *selected_item;
-       Widget_Data *wd = elm_widget_data_get(obj);
-       if (!wd) return;
-
-       tmp = wd->day_of_month;
-       switch (month) {
-       case 4: case 6: case 9: case 11:
-               wd->day_of_month = 30;
-               break;
-       case 2:
-               if ((!(wd->year % 4) && (wd->year % 100)) || !(wd->year % 400))
-                       wd->day_of_month = 29;
-               else
-                       wd->day_of_month = 28;
-               break;
-       default:
-               wd->day_of_month = 31;
-               break;
-       }
-
-       if (wd->day > wd->day_of_month) {
-               wd->day = wd->day_of_month;
-       }
-
-       if (tmp == wd->day_of_month) return;
-       item = elm_discpicker_last_item_get(wd->pickers[PICKER_DAY]);
-
-       if (tmp > wd->day_of_month) {
-               selected_item = elm_discpicker_selected_item_get(wd->pickers[PICKER_DAY]);
-               for (; tmp > wd->day_of_month; tmp--) {
-                       elm_discpicker_item_disabled_set(item, EINA_TRUE);
-                       if (selected_item == item) need_move = 1;
-                       item = elm_discpicker_item_prev(item);
-               }
-               if (need_move) elm_discpicker_prev(wd->pickers[PICKER_DAY]);
-       } else {
-               while (item && elm_discpicker_item_disabled_get(item)) {
-                       elm_discpicker_item_disabled_set(item, EINA_FALSE);
-                       item = elm_discpicker_item_prev(item);
-               }
-       }
-}
-
-static void
-_update_picker(Evas_Object *picker, int nth)
-{
-       const Eina_List *l;
-       Elm_Picker_Item *item;
-       int i;
-       l = elm_discpicker_items_get(picker);
-       for (i = 0; i < nth; i++) {
-               l = l->next;
-               if (!l) break;
-       }
-       item = eina_list_data_get(l);
-       evas_object_data_set(picker, "freeze", 1);
-       elm_discpicker_item_selected_set(item);
-}
-
-static void
-_changed(Evas_Object *picker, Evas_Object *child, Evas_Object *obj)
-{
-       int c1, c2 = 0;
-       c1 = (int)(evas_object_data_get(picker, "carryon"));
-       evas_object_data_set(picker, "carryon", (void *)0);
-
-       if (child) {
-               c2 = (int)(evas_object_data_get(child, "carryon"));
-               evas_object_data_set(child, "carryon", (void *)0);
-       }
-
-       if (!c1 && !c2)
-               evas_object_smart_callback_call(obj, "selected", NULL);
-}
-
-static void
-_overflow_cb(void *data, Evas_Object *obj, void *event_info)
-{
-       int freeze;
-       Evas_Object *eo;
-       eo = evas_object_data_get(obj, "parent");
-       
-       freeze = (int)evas_object_data_get(obj, "freeze");
-       if (freeze) {
-               evas_object_data_set(obj, "freeze", 0);
-               return;
-       }
-
-       if (eo) {
-               elm_discpicker_next(eo);
-               evas_object_data_set(obj, "carryon", (void *)1);
-       }
-}
-
-static void
-_underflow_cb(void *data, Evas_Object *obj, void *event_info)
-{
-       int freeze;
-       Evas_Object *eo;
-       eo = evas_object_data_get(obj, "parent");
-       Widget_Data *wd = elm_widget_data_get(data);
-
-       freeze = (int)evas_object_data_get(obj, "freeze");
-       if (freeze) {
-               evas_object_data_set(obj, "freeze", 0);
-               return;
-       }
-
-       if (eo) {
-               elm_discpicker_prev(eo);
-               evas_object_data_set(obj, "carryon", (void *)-1);
-       }
-
-       if (obj == wd->pickers[PICKER_DAY]) {
-               Elm_Picker_Item *item;
-               _update_day_of_month(data, wd->month - 1);
-               wd->day = wd->day_of_month;
-               item = elm_discpicker_last_item_get(obj);
-               elm_discpicker_item_selected_set(item);
-       }
-}
-
-static void
-_year_changed_cb(void *data, Evas_Object *obj, void *event_info)
-{
-       const char *year;
-       Widget_Data *wd = elm_widget_data_get(data);
-       Evas_Object *child;
-       if (!wd) return;
-
-       year = elm_discpicker_item_label_get(event_info);
-       wd->year = atoi(year);
-
-       if (wd->month == 2)
-               _update_day_of_month(data, wd->month);
-       child = evas_object_data_get(obj, "child");
-       _changed(obj, child, data);
-}
-
-static void
-_month_changed_cb(void *data, Evas_Object *obj, void *event_info)
-{
-       Widget_Data *wd = elm_widget_data_get(data);
-       Evas_Object *child;
-       if (!wd) return;
-
-       wd->month = (int)elm_discpicker_item_data_get(event_info);
-
-       _update_day_of_month(data, wd->month);
-       child = evas_object_data_get(obj, "child");
-       _changed(obj, child, data);
-}
-
-static void
-_day_changed_cb(void *data, Evas_Object *obj, void *event_info)
-{
-       const char *day;
-       Widget_Data *wd = elm_widget_data_get(data);
-       Evas_Object *child;
-       if (!wd) return;
-
-       day = elm_discpicker_item_label_get(event_info);
-       wd->day = atoi(day);
-
-       if (elm_discpicker_item_disabled_get(event_info) == EINA_TRUE) {
-               elm_discpicker_prev(obj);
-       } else {
-               child = evas_object_data_get(obj, "child");
-               _changed(obj, child, data);
-       }
-}
-
-static void
-_pickers_add(Evas_Object *obj)
-{
-       Widget_Data *wd = elm_widget_data_get(obj);
-       if (!wd) return;
-
-       wd->pickers[PICKER_YEAR] = _picker_add(wd->base, "elm.swallow.year", wd->y_min, wd->y_max, "%04d");
-       wd->pickers[PICKER_MON] = _picker_month_add(wd->base, "elm.swallow.mon", "%B");
-       wd->pickers[PICKER_DAY] = _picker_add(wd->base, "elm.swallow.day", 1, wd->day_of_month, "%02d");
-       _callback_init(obj);
-}
-
-static void
-_pickers_del(Evas_Object *obj)
-{
-       int i = 0;
-       Widget_Data *wd = elm_widget_data_get(obj);
-       if (!wd) return;
-       for (i = 0; i < PICKER_MAX; i++) {
-               if (wd->pickers[i]) {
-                       evas_object_del(wd->pickers[i]);
-                       wd->pickers[i] = NULL;
-               }
-       }
-}
-
-static void
-_callback_init(Evas_Object *obj)
-{
-       Widget_Data *wd = elm_widget_data_get(obj);
-       if (!wd) return;
-
-       evas_object_data_set(wd->pickers[PICKER_YEAR], "child", wd->pickers[PICKER_MON]);
-       evas_object_data_set(wd->pickers[PICKER_MON], "child", wd->pickers[PICKER_DAY]);
-       evas_object_data_set(wd->pickers[PICKER_MON], "parent", wd->pickers[PICKER_YEAR]);
-       evas_object_data_set(wd->pickers[PICKER_DAY], "parent", wd->pickers[PICKER_MON]);
-
-       evas_object_smart_callback_add(wd->pickers[PICKER_MON], "overflowed", _overflow_cb, obj);
-       evas_object_smart_callback_add(wd->pickers[PICKER_MON], "underflowed", _underflow_cb, obj);
-       evas_object_smart_callback_add(wd->pickers[PICKER_DAY], "overflowed", _overflow_cb, obj);
-       evas_object_smart_callback_add(wd->pickers[PICKER_DAY], "underflowed", _underflow_cb, obj);
-
-       evas_object_smart_callback_add(wd->pickers[PICKER_YEAR], "selected", _year_changed_cb, obj);
-       evas_object_smart_callback_add(wd->pickers[PICKER_MON], "selected", _month_changed_cb, obj);
-       evas_object_smart_callback_add(wd->pickers[PICKER_DAY], "selected", _day_changed_cb, obj);
-}
-
-/**
- * Add a new datepicker to the parent
- *
- * @param parent The parent object
- * @return The new object or NULL if it cannot be created
- *
- * @ingroup Datepicker2
- */
-EAPI Evas_Object *
-elm_datepicker2_add(Evas_Object *parent)
-{
-       Evas_Object *obj;
-       Evas *e;
-       Widget_Data *wd;
-
-       wd = ELM_NEW(Widget_Data);
-       e = evas_object_evas_get(parent);
-       obj = elm_widget_add(e);
-       elm_widget_type_set(obj, "datepicker2");
-       elm_widget_sub_object_add(parent, obj);
-       elm_widget_data_set(obj, wd);
-
-       elm_widget_del_hook_set(obj, _del_hook);
-       elm_widget_theme_hook_set(obj, _theme_hook);
-       elm_widget_disable_hook_set(obj, _disable_hook);
-
-       wd->base = edje_object_add(e);
-       _elm_theme_object_set(obj, wd->base, "datepicker2", "base", "default");
-       elm_widget_resize_object_set(obj, wd->base);
-
-       wd->y_max = YEAR_MAX;
-       wd->y_min = YEAR_MIN;
-       wd->m_max = MONTH_MAX;
-       wd->m_min = MONTH_MIN;
-       wd->d_min = DAY_MIN;
-       wd->d_max = DAY_MAX;
-       wd->day_of_month = DAY_MAX;
-
-       wd->year = YEAR_MIN;
-       wd->month = 1;
-       wd->day = 1;
-
-       _pickers_add(obj);
-
-       _i18n(obj);
-
-       _sizing_eval(obj);
-       return obj;
-}
-
-/**
- * Set selected date of the datepicker
- *
- * @param obj The datepicker object
- * @param year The year to set
- * @param month The month to set
- * @param day The day to set
- *
- * @ingroup Datepicker2
- */
-EAPI void
-elm_datepicker2_date_set(Evas_Object *obj, int year, int month, int day)
-{
-       Widget_Data *wd = elm_widget_data_get(obj);
-       if (!wd) return;
-       if (year < wd->y_min || year > wd->y_max
-                       || month < 1 || month > 12
-                       || day < 1 || day > 31)
-               return;
-       wd->year = year;
-       wd->month = month;
-       wd->day = day;
-       _update_day_of_month(obj, month);
-       _update_picker(wd->pickers[PICKER_YEAR], wd->year - wd->y_min);
-       _update_picker(wd->pickers[PICKER_MON], wd->month - 1);
-       _update_picker(wd->pickers[PICKER_DAY], wd->day - 1);
-}
-
-/**
- * Get selected date of the datepicker
- *
- * @param obj The datepicker object
- * @param year The pointer to the variable get the selected year
- * @param month The pointer to the variable get the selected month
- * @param day The pointer to the variable get the selected day
- *
- * @ingroup Datepicker2
- */
-EAPI void
-elm_datepicker2_date_get(Evas_Object *obj, int *year, int *month, int *day)
-{
-       Widget_Data *wd = elm_widget_data_get(obj);
-       if (!wd) return;
-       if (year)
-               *year = wd->year;
-       if (month)
-               *month = wd->month;
-       if (day)
-               *day = wd->day;
-}
-
-/**
- * Set upper bound of the datepicker
- *
- * @param obj The datepicker object
- * @param year The year to set
- * @param month The month to set
- * @param day The day to set
- *
- * @ingroup Datepicker2
- */
-EAPI void
-elm_datepicker2_date_min_set(Evas_Object *obj, int year, int month, int day)
-{
-       // TODO
-}
-
-/**
- * Get lower bound of the datepicker
- *
- * @param obj The datepicker object
- * @param year The pointer to the variable get the minimum year
- * @param month The pointer to the variable get the minimum month
- * @param day The pointer to the variable get the minimum day
- *
- * @ingroup Datepicker2
- */
-EAPI void
-elm_datepicker2_date_min_get(Evas_Object *obj, int *year, int *month, int *day)
-{
-       Widget_Data *wd = elm_widget_data_get(obj);
-       if (!wd) return;
-       if (year)
-               *year = wd->y_min;
-       if (month)
-               *month = wd->m_min;
-       if (day)
-               *day = wd->d_min;
-}
-
-/**
- * Set lower bound of the datepicker
- *
- * @param obj The datepicker object
- * @param year The year to set
- * @param month The month to set
- * @param day The day to set
- *
- * @ingroup Datepicker2
- */
-EAPI void
-elm_datepicker2_date_max_set(Evas_Object *obj, int year, int month, int day)
-{
-       // TODO
-}
-
-/**
- * Get upper bound of the datepicker
- *
- * @param obj The datepicker object
- * @param year The pointer to the variable get the maximum year
- * @param month The pointer to the variable get the maximum month
- * @param day The pointer to the variable get the maximum day
- *
- * @ingroup Datepicker2
- */
-EAPI void
-elm_datepicker2_date_max_get(Evas_Object *obj, int *year, int *month, int *day)
-{
-       Widget_Data *wd = elm_widget_data_get(obj);
-       if (!wd) return;
-       if (year)
-               *year = wd->y_max;
-       if (month)
-               *month = wd->m_max;
-       if (day)
-               *day = wd->d_max;
-}
-
-/**
- * Set date format of datepicker
- *
- * @param obj The datepicker object
- * @param fmt The date format, ex) yymmdd
- *
- * @ingroup Datepicker2
- */
-EAPI void
-elm_datepicker2_date_format_set(Evas_Object *obj, const char *fmt)
-{
-       char sig[32] = "elm,state,";
-       int i = 0, j;
-       Widget_Data *wd = elm_widget_data_get(obj);
-
-       if (!wd || !fmt) return;
-
-       j = strlen(sig);
-       while (j < 32) {
-               sig[j++] = tolower(fmt[i++]);
-       }
-
-       edje_object_signal_emit(wd->base, sig, "elm");
-}
-
-/**
- * Get date format of datepicker
- *
- * @param obj The datepicker object
- * @return The date format of given datepicker
- *
- * @ingroup Datepicker2
- */
-EAPI const char *
-elm_datepicker2_date_format_get(Evas_Object *obj)
-{
-       Widget_Data *wd = elm_widget_data_get(obj);
-       if (!wd) return NULL;
-       return  wd->fmt;
-}
diff --git a/src/lib/elm_datepicker3.c b/src/lib/elm_datepicker3.c
deleted file mode 100644 (file)
index d98d6ae..0000000
+++ /dev/null
@@ -1,655 +0,0 @@
-#include <Elementary.h>
-#include "elm_priv.h"
-#include <langinfo.h>
-#include <string.h>
-
-/**
- * @defgroup Datepicker3 Datepicker3
- * @ingroup Elementary
- *
- * This is a date picker3.
- */
-
-enum {
-       PICKER_YEAR,
-       PICKER_MON,
-       PICKER_DAY,
-       PICKER_MAX
-};
-
-#define YEAR_MIN (1900)
-#define YEAR_MAX (2099)
-#define MONTH_MIN (1)
-#define MONTH_MAX (12)
-#define DAY_MIN (1)
-#define DAY_MAX (31)
-#define MONTH_MAX (12)
-#define DAY_MAX (31)
-
-typedef struct _Widget_Data Widget_Data;
-
-struct _Widget_Data {
-       Evas_Object *base;
-       Evas_Object *pickers[PICKER_MAX];
-       int y_max, m_max, d_max;
-       int y_min, m_min, d_min;
-       int day_of_month;
-       int year, month, day;
-       char fmt[8];
-};
-
-static void _del_hook(Evas_Object *obj);
-static void _theme_hook(Evas_Object *obj);
-static void _disable_hook(Evas_Object *obj);
-static void _sizing_eval(Evas_Object *obj);
-static void _i18n(Evas_Object *obj);
-static Evas_Object *_picker_add(Evas_Object *ly, const char *part, int min, int max, const char *fmt);
-static void _pickers_del(Evas_Object *obj);
-static void _picker_item_add(Evas_Object *eo, int min, int max, const char *fmt);
-static void _picker_item_del(Evas_Object *eo);
-static void _update_day_of_month(Evas_Object *obj, int month);
-static void _update_picker(Evas_Object *picker, int nth);
-static void _changed(Evas_Object *picker, Evas_Object *child, Evas_Object *obj);
-static void _overflow_cb(void *data, Evas_Object *obj, void *event_info);
-static void _underflow_cb(void *data, Evas_Object *obj, void *event_info);
-static void _year_changed_cb(void *data, Evas_Object *obj, void *event_info);
-static void _month_changed_cb(void *data, Evas_Object *obj, void *event_info);
-static void _day_changed_cb(void *data, Evas_Object *obj, void *event_info);
-static void _pickers_add(Evas_Object *obj);
-static void _callback_init(Evas_Object *obj);
-
-static Eina_Bool
-_is_valid_date(Evas_Object *obj)
-{
-       Widget_Data *wd = elm_widget_data_get(obj);
-       int cur, min, max;
-       if (!wd) return EINA_FALSE;
-
-       cur = wd->year * 10000 + wd->month * 100 + wd->day;
-       max = wd->y_max * 10000 + wd->m_max * 100 + wd->d_max;
-       min = wd->y_min * 10000 + wd->m_min * 100 + wd->d_min;
-
-       if (cur > max || cur < min) return EINA_FALSE;
-       return EINA_TRUE;
-}
-
-static void
-_del_hook(Evas_Object *obj)
-{
-       Widget_Data *wd = elm_widget_data_get(obj);
-       if (!wd) return;
-       _pickers_del(obj);
-       free(wd);
-}
-
-static void
-_theme_hook(Evas_Object *obj)
-{
-       Widget_Data *wd = elm_widget_data_get(obj);
-       if (!wd) return;
-
-       _pickers_del(obj);
-       _elm_theme_object_set(obj, wd->base, "datepicker3", "base", elm_widget_style_get(obj));
-       _pickers_add(obj);
-       _i18n(obj);
-
-       _update_picker(wd->pickers[PICKER_YEAR], wd->year - wd->y_min);
-       _update_picker(wd->pickers[PICKER_MON], wd->month - 1);
-       _update_picker(wd->pickers[PICKER_DAY], wd->day - 1);
-
-       _sizing_eval(obj);
-}
-
-static void
-_disable_hook(Evas_Object *obj)
-{
-
-}
-
-static void
-_sizing_eval(Evas_Object *obj)
-{
-       Widget_Data *wd = elm_widget_data_get(obj);
-       Evas_Coord minw = -1, minh = -1, maxw = -1, maxh = -1;
-
-       if (!wd) return;
-       elm_coords_finger_size_adjust(1, &minw, 1, &minh);
-       edje_object_size_min_restricted_calc(wd->base, &minw, &minh, minw, minh);
-       elm_coords_finger_size_adjust(1, &minw, 1, &minh);
-       evas_object_size_hint_min_set(obj, minw, minh);
-       evas_object_size_hint_max_set(obj, maxw, maxh);
-}
-
-static void
-_i18n(Evas_Object *obj)
-{
-       Widget_Data *wd = elm_widget_data_get(obj);
-       const char *fmt;
-       char sig[32] = { "elm,state," };
-       int i = 0, j, k;
-
-       if (!wd) return;
-
-       j = strlen(sig);
-       k = j;
-       fmt = nl_langinfo(D_FMT);
-
-       while (fmt[i] && j < 32) {
-               if (fmt[i] == '%' && fmt[i+1]) {
-                       i++;
-                       switch (fmt[i]) {
-                       case 'Y': case 'M': case 'D': case 'y': case 'm': case 'd':
-                               sig[j++] = tolower(fmt[i]);
-                               sig[j++] = tolower(fmt[i]);
-                               break;
-                       default:
-                               break;
-                       }
-               }
-               i++;
-       }
-       sig[j] = '\0';
-       edje_object_signal_emit(wd->base, sig, "elm");
-       snprintf(wd->fmt, 8, sig + k);
-}
-
-static void
-_picker_item_add(Evas_Object *eo, int min, int max, const char *fmt)
-{
-       char buf[8];
-       for (; min <= max; min++) {
-               snprintf(buf, 8, fmt, min);
-               elm_buttonpicker_item_append(eo, buf, NULL, NULL);
-       }
-}
-
-static void
-_picker_item_del(Evas_Object *eo)
-{
-       Elm_Buttonpicker_Item *item;
-       item = elm_buttonpicker_first_item_get(eo);
-       while (item) {
-               elm_buttonpicker_item_del(item);
-               item = elm_buttonpicker_first_item_get(eo);
-       }
-}
-
-static Evas_Object *
-_picker_add(Evas_Object *ly, const char *part, int min, int max, const char *fmt)
-{
-       Evas_Object *eo;
-       eo = elm_buttonpicker_add(ly);
-       _picker_item_add(eo, min, max, fmt);
-       if (part)
-               edje_object_part_swallow(ly, part, eo);
-       return eo;
-}
-
-static void
-_update_day_of_month(Evas_Object *obj, int month)
-{
-       int tmp;
-       Elm_Buttonpicker_Item *item;
-       Widget_Data *wd = elm_widget_data_get(obj);
-       if (!wd) return;
-
-       tmp = wd->day_of_month;
-       switch (month) {
-       case 4: case 6: case 9: case 11:
-               wd->day_of_month = 30;
-               break;
-       case 2:
-               if ((!(wd->year % 4) && (wd->year % 100)) || !(wd->year % 400))
-                       wd->day_of_month = 29;
-               else
-                       wd->day_of_month = 28;
-               break;
-       default:
-               wd->day_of_month = 31;
-               break;
-       }
-
-       if (wd->day > wd->day_of_month) {
-               wd->day = wd->day_of_month;
-       }
-
-       if (tmp == wd->day_of_month) return;
-       if (tmp > wd->day_of_month) {
-               for (; tmp > wd->day_of_month; tmp--) {
-                       item = elm_buttonpicker_last_item_get(wd->pickers[PICKER_DAY]);
-                       elm_buttonpicker_item_del(item);
-               }
-       } else {
-               char buf[8];
-               tmp++;
-               for (; tmp <= wd->day_of_month; tmp++) {
-                       snprintf(buf, 8, "%2d", tmp);
-                       elm_buttonpicker_item_append(wd->pickers[PICKER_DAY], buf, NULL, NULL);
-               }
-       }
-}
-
-static void
-_update_picker(Evas_Object *picker, int nth)
-{
-       const Eina_List *l;
-       Elm_Buttonpicker_Item *item;
-       int i;
-       l = elm_buttonpicker_items_get(picker);
-       for (i = 0; i < nth; i++) {
-               l = l->next;
-               if (!l) break;
-       }
-       item = eina_list_data_get(l);
-       elm_buttonpicker_item_selected_set(item);
-}
-
-static void
-_changed(Evas_Object *picker, Evas_Object *child, Evas_Object *obj)
-{
-       int c1, c2 = 0;
-       c1 = (int)(evas_object_data_get(picker, "carryon"));
-       evas_object_data_set(picker, "carryon", (void *)0);
-
-       if (child) {
-               c2 = (int)(evas_object_data_get(child, "carryon"));
-               evas_object_data_set(child, "carryon", (void *)0);
-       }
-
-       if (!c1 && !c2)
-               evas_object_smart_callback_call(obj, "changed", NULL);
-}
-
-static void
-_overflow_cb(void *data, Evas_Object *obj, void *event_info)
-{
-       Evas_Object *eo;
-       eo = evas_object_data_get(obj, "parent");
-       if (eo) {
-               elm_buttonpicker_next(eo);
-               evas_object_data_set(obj, "carryon", (void *)1);
-       }
-}
-
-static void
-_underflow_cb(void *data, Evas_Object *obj, void *event_info)
-{
-       Evas_Object *eo;
-       eo = evas_object_data_get(obj, "parent");
-       Widget_Data *wd = elm_widget_data_get(data);
-
-       if (eo) {
-               elm_buttonpicker_prev(eo);
-               evas_object_data_set(obj, "carryon", (void *)-1);
-       }
-
-       if (obj == wd->pickers[PICKER_DAY]) {
-               Elm_Buttonpicker_Item *item;
-               _update_day_of_month(data, wd->month - 1);
-               wd->day = wd->day_of_month;
-               item = elm_buttonpicker_last_item_get(obj);
-               elm_buttonpicker_item_selected_set(item);
-       }
-}
-
-static void
-_year_changed_cb(void *data, Evas_Object *obj, void *event_info)
-{
-       const char *year;
-       Widget_Data *wd = elm_widget_data_get(data);
-       Evas_Object *child;
-       if (!wd) return;
-
-       year = elm_buttonpicker_item_label_get(event_info);
-       wd->year = atoi(year);
-
-       if (wd->month == 2)
-               _update_day_of_month(data, wd->month);
-       child = evas_object_data_get(obj, "child");
-       _changed(obj, child, data);
-}
-
-static void
-_month_changed_cb(void *data, Evas_Object *obj, void *event_info)
-{
-       const char *month;
-       Widget_Data *wd = elm_widget_data_get(data);
-       Evas_Object *child;
-       if (!wd) return;
-
-       month = elm_buttonpicker_item_label_get(event_info);
-       //wd->month = atoi(month);
-
-       if(strcmp(month, "Jan")==0)
-               wd->month = 1;
-       else if(strcmp(month, "Feb")==0)
-               wd->month = 2;
-       else if(strcmp(month, "Mar")==0)
-               wd->month = 3;
-       else if(strcmp(month, "Apr")==0)
-               wd->month = 4;
-       else if(strcmp(month, "May")==0)
-               wd->month = 5;
-       else if(strcmp(month, "Jun")==0)
-               wd->month = 6;
-       else if(strcmp(month, "Jul")==0)
-               wd->month = 7;
-       else if(strcmp(month, "Aug")==0)
-               wd->month = 8;
-       else if(strcmp(month, "Sep")==0)
-               wd->month = 9;
-       else if(strcmp(month, "Oct")==0)
-               wd->month = 10;
-       else if(strcmp(month, "Nov")==0)
-               wd->month = 11;
-       else if(strcmp(month, "Dec")==0)
-               wd->month = 12;
-
-       _update_day_of_month(data, wd->month);
-       child = evas_object_data_get(obj, "child");
-       _changed(obj, child, data);
-}
-
-static void
-_day_changed_cb(void *data, Evas_Object *obj, void *event_info)
-{
-       const char *day;
-       Widget_Data *wd = elm_widget_data_get(data);
-       Evas_Object *child;
-       if (!wd) return;
-
-       day = elm_buttonpicker_item_label_get(event_info);
-       wd->day = atoi(day);
-
-       child = evas_object_data_get(obj, "child");
-       _changed(obj, child, data);
-}
-
-static Evas_Object *
-_picker_month_add(Evas_Object *ly, const char *part, const char *fmt)
-{
-       int i;
-       char buf[32];
-       struct tm tm = {0, };
-       
-       Evas_Object *eo;
-       Elm_Buttonpicker_Item *it;
-       eo = elm_buttonpicker_add(ly);
-
-       for (i = 0; i < 12; i++) {
-               tm.tm_mon = i;
-               strftime(buf, 32, fmt, &tm);
-               it = elm_buttonpicker_item_append(eo, buf, NULL, NULL);
-       }
-
-       if (part)
-               edje_object_part_swallow(ly, part, eo);
-       return eo;
-}
-
-static void
-_pickers_add(Evas_Object *obj)
-{
-       Widget_Data *wd = elm_widget_data_get(obj);
-       if (!wd) return;
-
-       wd->pickers[PICKER_YEAR] = _picker_add(wd->base, "elm.swallow.year", wd->y_min, wd->y_max, "%04d");
-       wd->pickers[PICKER_MON] = _picker_month_add(wd->base, "elm.swallow.mon", "%b");
-       wd->pickers[PICKER_DAY] = _picker_add(wd->base, "elm.swallow.day", 1, wd->day_of_month, "%02d");
-       _callback_init(obj);
-}
-
-static void
-_pickers_del(Evas_Object *obj)
-{
-       int i = 0;
-       Widget_Data *wd = elm_widget_data_get(obj);
-       if (!wd) return;
-       for (i = 0; i < PICKER_MAX; i++) {
-               if (wd->pickers[i]) {
-                       evas_object_del(wd->pickers[i]);
-                       wd->pickers[i] = NULL;
-               }
-       }
-}
-
-static void
-_callback_init(Evas_Object *obj)
-{
-       Widget_Data *wd = elm_widget_data_get(obj);
-       if (!wd) return;
-
-       evas_object_data_set(wd->pickers[PICKER_YEAR], "child", wd->pickers[PICKER_MON]);
-       evas_object_data_set(wd->pickers[PICKER_MON], "child", wd->pickers[PICKER_DAY]);
-       evas_object_data_set(wd->pickers[PICKER_MON], "parent", wd->pickers[PICKER_YEAR]);
-       evas_object_data_set(wd->pickers[PICKER_DAY], "parent", wd->pickers[PICKER_MON]);
-
-       evas_object_smart_callback_add(wd->pickers[PICKER_MON], "overflowed", _overflow_cb, obj);
-       evas_object_smart_callback_add(wd->pickers[PICKER_MON], "underflowed", _underflow_cb, obj);
-       evas_object_smart_callback_add(wd->pickers[PICKER_DAY], "overflowed", _overflow_cb, obj);
-       evas_object_smart_callback_add(wd->pickers[PICKER_DAY], "underflowed", _underflow_cb, obj);
-
-       evas_object_smart_callback_add(wd->pickers[PICKER_YEAR], "changed", _year_changed_cb, obj);
-       evas_object_smart_callback_add(wd->pickers[PICKER_MON], "changed", _month_changed_cb, obj);
-       evas_object_smart_callback_add(wd->pickers[PICKER_DAY], "changed", _day_changed_cb, obj);
-}
-
-/**
- * Add a new datepicker3 to the parent
- *
- * @param parent The parent object
- * @return The new object or NULL if it cannot be created
- *
- * @ingroup Datepicker3
- */
-EAPI Evas_Object *
-elm_datepicker3_add(Evas_Object *parent)
-{
-       Evas_Object *obj;
-       Evas *e;
-       Widget_Data *wd;
-
-       wd = ELM_NEW(Widget_Data);
-       e = evas_object_evas_get(parent);
-       obj = elm_widget_add(e);
-       elm_widget_type_set(obj, "datepicker3");
-       elm_widget_sub_object_add(parent, obj);
-       elm_widget_data_set(obj, wd);
-
-       elm_widget_del_hook_set(obj, _del_hook);
-       elm_widget_theme_hook_set(obj, _theme_hook);
-       elm_widget_disable_hook_set(obj, _disable_hook);
-
-       wd->base = edje_object_add(e);
-       _elm_theme_object_set(obj, wd->base, "datepicker3", "base", "default");
-       elm_widget_resize_object_set(obj, wd->base);
-
-       wd->y_max = YEAR_MAX;
-       wd->y_min = YEAR_MIN;
-       wd->m_max = MONTH_MAX;
-       wd->m_min = MONTH_MIN;
-       wd->d_min = DAY_MIN;
-       wd->d_max = DAY_MAX;
-       wd->day_of_month = DAY_MAX;
-
-       wd->year = YEAR_MIN;
-       wd->month = 1;
-       wd->day = 1;
-
-       _pickers_add(obj);
-
-       _i18n(obj);
-
-       _sizing_eval(obj);
-       return obj;
-}
-
-/**
- * Set selected date of the datepicker3
- *
- * @param obj The datepicker3 object
- * @param year The year to set
- * @param month The month to set
- * @param day The day to set
- *
- * @ingroup Datepicker3
- */
-EAPI void
-elm_datepicker3_date_set(Evas_Object *obj, int year, int month, int day)
-{
-       Widget_Data *wd = elm_widget_data_get(obj);
-       if (!wd) return;
-       if (year < wd->y_min || year > wd->y_max
-                       || month < 1 || month > 12
-                       || day < 1 || day > 31)
-               return;
-       wd->year = year;
-       wd->month = month;
-       wd->day = day;
-       _update_day_of_month(obj, month);
-       _update_picker(wd->pickers[PICKER_YEAR], wd->year - wd->y_min);
-       _update_picker(wd->pickers[PICKER_MON], wd->month - 1);
-       _update_picker(wd->pickers[PICKER_DAY], wd->day - 1);
-}
-
-/**
- * Get selected date of the datepicker3
- *
- * @param obj The datepicker3 object
- * @param year The pointer to the variable get the selected year
- * @param month The pointer to the variable get the selected month
- * @param day The pointer to the variable get the selected day
- *
- * @ingroup Datepicker3
- */
-EAPI void
-elm_datepicker3_date_get(Evas_Object *obj, int *year, int *month, int *day)
-{
-       Widget_Data *wd = elm_widget_data_get(obj);
-       if (!wd) return;
-       if (year)
-               *year = wd->year;
-       if (month)
-               *month = wd->month;
-       if (day)
-               *day = wd->day;
-}
-
-/**
- * Set upper bound of the datepicker3
- *
- * @param obj The datepicker3 object
- * @param year The year to set
- * @param month The month to set
- * @param day The day to set
- *
- * @ingroup Datepicker3
- */
-EAPI void
-elm_datepicker3_date_min_set(Evas_Object *obj, int year, int month, int day)
-{
-       // TODO
-}
-
-/**
- * Get lower bound of the datepicker3
- *
- * @param obj The datepicker3 object
- * @param year The pointer to the variable get the minimum year
- * @param month The pointer to the variable get the minimum month
- * @param day The pointer to the variable get the minimum day
- *
- * @ingroup Datepicker3
- */
-EAPI void
-elm_datepicker3_date_min_get(Evas_Object *obj, int *year, int *month, int *day)
-{
-       Widget_Data *wd = elm_widget_data_get(obj);
-       if (!wd) return;
-       if (year)
-               *year = wd->y_min;
-       if (month)
-               *month = wd->m_min;
-       if (day)
-               *day = wd->d_min;
-}
-
-/**
- * Set lower bound of the datepicker3
- *
- * @param obj The datepicker3 object
- * @param year The year to set
- * @param month The month to set
- * @param day The day to set
- *
- * @ingroup Datepicker3
- */
-EAPI void
-elm_datepicker3_date_max_set(Evas_Object *obj, int year, int month, int day)
-{
-       // TODO
-}
-
-/**
- * Get upper bound of the datepicker3
- *
- * @param obj The datepicker3 object
- * @param year The pointer to the variable get the maximum year
- * @param month The pointer to the variable get the maximum month
- * @param day The pointer to the variable get the maximum day
- *
- * @ingroup Datepicker3
- */
-EAPI void
-elm_datepicker3_date_max_get(Evas_Object *obj, int *year, int *month, int *day)
-{
-       Widget_Data *wd = elm_widget_data_get(obj);
-       if (!wd) return;
-       if (year)
-               *year = wd->y_max;
-       if (month)
-               *month = wd->m_max;
-       if (day)
-               *day = wd->d_max;
-}
-
-/**
- * Set date format of datepicker3
- *
- * @param obj The datepicker3 object
- * @param fmt The date format, ex) yymmdd
- *
- * @ingroup Datepicker3
- */
-EAPI void
-elm_datepicker3_date_format_set(Evas_Object *obj, const char *fmt)
-{
-       char sig[32] = "elm,state,";
-       int i = 0, j;
-       Widget_Data *wd = elm_widget_data_get(obj);
-
-       if (!wd || !fmt) return;
-
-       j = strlen(sig);
-       while (j < 32) {
-               sig[j++] = tolower(fmt[i++]);
-       }
-
-       edje_object_signal_emit(wd->base, sig, "elm");
-}
-
-/**
- * Get date format of datepicker3
- *
- * @param obj The datepicker3 object
- * @return The date format of given datepicker3
- *
- * @ingroup Datepicker3
- */
-EAPI const char *
-elm_datepicker3_date_format_get(Evas_Object *obj)
-{
-       Widget_Data *wd = elm_widget_data_get(obj);
-       if (!wd) return NULL;
-       return  wd->fmt;
-}
diff --git a/src/lib/elm_timepicker3.c b/src/lib/elm_timepicker3.c
deleted file mode 100644 (file)
index 448d23f..0000000
+++ /dev/null
@@ -1,589 +0,0 @@
-#include <Elementary.h>
-#include "elm_priv.h"
-
-/**
- * @defgroup Timepicker3 Timepicker3
- * @ingroup Elementary
- *
- * This is a time picker3.
- */
-
-
-#define PICKER_DRAG_BOUND (10)
-
-#define MAX_HOUR (12)
-#define MAX_HOUR2 (23)
-#define MAX_DIGIT (59)
-
-enum {
-       PICKER_HRS,
-       PICKER_MIN,
-       PICKER_SUB,
-       PICKER_AMPM,
-       PICKER_MAX
-};
-
-typedef struct _Widget_Data Widget_Data;
-
-struct _Widget_Data {
-       Evas_Object *base;
-       Evas_Object *pickers[PICKER_MAX];
-
-       int hrs, min, sec;
-       Eina_Bool is_pm;
-
-       Eina_Bool ampm;
-       Eina_Bool seconds;
-};
-
-static inline Eina_Bool _is_time_valid(int hrs, int min, int sec);
-static void _del_hook(Evas_Object *obj);
-static void _theme_hook(Evas_Object *obj);
-static void _disable_hook(Evas_Object *obj);
-static void _sizing_eval(Evas_Object *obj);
-static void _update_ampm(Evas_Object *obj);
-static void _update_seconds(Evas_Object *obj);
-static void _update_picker(Evas_Object *picker, int nth);
-static void _update_all(Evas_Object *obj);
-static void _hrs_reload(Evas_Object *picker, Eina_Bool ampm);
-static void _digit_reload(Evas_Object *picker, Eina_Bool seconds, int max);
-static Evas_Object *_hrs_add(Evas_Object *ly, const char *part, Eina_Bool ampm);
-static Evas_Object *_digit_add(Evas_Object *ly, const char *part, unsigned char max);
-static Evas_Object *_ampm_add(Evas_Object *ly, const char *part);
-static void _callback_init(Evas_Object *obj);
-static void _pickers_add(Evas_Object *obj);
-static void _pickers_del(Evas_Object *obj);
-static void _changed(Evas_Object *picker, Evas_Object *child, Evas_Object *obj);
-static void _overflow_cb(void *data, Evas_Object *obj, void *event_info);
-static void _underflow_cb(void *data, Evas_Object *obj, void *event_info);
-static void _hrs_changed_cb(void *data, Evas_Object *obj, void *event_info);
-static void _min_changed_cb(void *data, Evas_Object *obj, void *event_info);
-static void _sub_changed_cb(void *data, Evas_Object *obj, void *event_info);
-static void _ampm_changed_cb(void *data, Evas_Object *obj, void *event_info);
-
-static inline Eina_Bool
-_is_time_valid(int hrs, int min, int sec)
-{
-       if (hrs < 0 || hrs > 23 || min < 0 || min > 59 || sec < 0 || sec > 59)
-               return EINA_FALSE;
-       return EINA_TRUE;
-}
-
-static void
-_del_hook(Evas_Object *obj)
-{
-       Widget_Data *wd = elm_widget_data_get(obj);
-       if (!wd) return;
-       _pickers_del(obj);
-       free(wd);
-}
-
-static void
-_theme_hook(Evas_Object *obj)
-{
-       Widget_Data *wd = elm_widget_data_get(obj);
-       if (!wd) return;
-
-       _pickers_del(obj);
-       _elm_theme_object_set(obj, wd->base, "timepicker3", "base", elm_widget_style_get(obj));
-       _pickers_add(obj);
-
-       _update_ampm(obj);
-       _update_seconds(obj);
-       _sizing_eval(obj);
-}
-
-static void
-_disable_hook(Evas_Object *obj)
-{
-
-}
-
-static void
-_sizing_eval(Evas_Object *obj)
-{
-       Widget_Data *wd = elm_widget_data_get(obj);
-       Evas_Coord minw = -1, minh = -1, maxw = -1, maxh = -1;
-
-               if (!wd) return;
-       elm_coords_finger_size_adjust(1, &minw, 1, &minh);
-       edje_object_size_min_restricted_calc(wd->base, &minw, &minh, minw, minh);
-       elm_coords_finger_size_adjust(1, &minw, 1, &minh);
-       evas_object_size_hint_min_set(obj, minw, minh);
-       evas_object_size_hint_max_set(obj, maxw, maxh);
-}
-
-static void
-_update_ampm(Evas_Object *obj)
-{
-       const char *sig;
-       Widget_Data *wd = elm_widget_data_get(obj);
-       if (!wd) return;
-
-       if (wd->ampm)
-               sig = "elm,state,ampm,visible";
-
-       else
-               sig = "elm,state,ampm,hidden";
-
-       _hrs_reload(wd->pickers[PICKER_HRS], wd->ampm);
-       edje_object_signal_emit(wd->base, sig, "elm");
-       _update_all(obj);
-}
-
-static void
-_update_seconds(Evas_Object *obj)
-{
-       Widget_Data *wd = elm_widget_data_get(obj);
-       const char *sig;
-       if (!wd) return;
-
-       if (wd->seconds)
-               sig = "elm,state,sec,visible";
-       else
-               sig = "elm,state,sec,hidden";
-
-       _digit_reload(wd->pickers[PICKER_MIN], wd->seconds, MAX_DIGIT);
-       _digit_reload(wd->pickers[PICKER_SUB], wd->seconds, MAX_DIGIT);
-
-       edje_object_signal_emit(wd->base, sig, "elm");
-       _update_all(obj);
-}
-
-static void
-_update_picker(Evas_Object *picker, int nth)
-{
-       const Eina_List *l;
-       Elm_Buttonpicker_Item *item;
-       int i;
-       l = elm_buttonpicker_items_get(picker);
-       for (i = 0; i < nth; i++) {
-               l = l->next;
-               if (!l) break;
-       }
-
-       item = eina_list_data_get(l);
-
-       elm_buttonpicker_item_selected_set(item);
-}
-
-static void
-_update_all(Evas_Object *obj)
-{
-       Widget_Data *wd = elm_widget_data_get(obj);
-       int hrs;
-       if (!wd) return;
-
-       hrs = wd->hrs;
-       if (wd->ampm)
-               hrs = wd->hrs % 12;
-
-       _update_picker(wd->pickers[PICKER_HRS],  hrs);
-       if (wd->hrs >= 12)
-               wd->is_pm = 1;
-       else
-               wd->is_pm = 0;
-       _update_picker(wd->pickers[PICKER_AMPM], wd->is_pm);
-
-       _update_picker(wd->pickers[PICKER_MIN],  wd->min);
-       _update_picker(wd->pickers[PICKER_SUB],  wd->sec);
-       
-       _sizing_eval(obj);
-}
-
-static void
-_hrs_reload(Evas_Object *picker, Eina_Bool ampm)
-{
-       int i, max;
-       char buf[8];
-       Elm_Buttonpicker_Item *item;
-
-       item = elm_buttonpicker_first_item_get(picker);
-
-       while (item) {
-               elm_buttonpicker_item_del(item);
-               item = elm_buttonpicker_first_item_get(picker);
-       }
-
-       if (ampm) {
-               i = 1;
-               snprintf(buf, 8, "%02d", MAX_HOUR);
-               elm_buttonpicker_item_append(picker, buf, NULL, NULL);
-               max = MAX_HOUR - 1;
-       } else {
-               i = 0;
-               max = MAX_HOUR2;
-       }
-
-       for (; i <= max; i++) {
-               snprintf(buf, 8, "%02d", i);
-               elm_buttonpicker_item_append(picker, buf, NULL, NULL);
-       }
-}
-
-static void
-_digit_reload(Evas_Object *picker, Eina_Bool seconds, int max)
-{
-       int i;
-       char buf[8];
-       Elm_Buttonpicker_Item *item;
-
-       item = elm_buttonpicker_first_item_get(picker);
-
-       while (item) {
-               elm_buttonpicker_item_del(item);
-               item = elm_buttonpicker_first_item_get(picker);
-       }
-
-       for (i = 0; i <= max; i++) {
-               snprintf(buf, 8, "%02d", i);
-               elm_buttonpicker_item_append(picker, buf, NULL, NULL);
-       }
-}
-
-static Evas_Object *
-_hrs_add(Evas_Object *ly, const char *part, Eina_Bool ampm)
-{
-       int i, max;
-       char buf[8];
-       Evas_Object *eo;
-       eo = elm_buttonpicker_add(ly);
-
-       if (ampm) {
-               i = 1;
-               snprintf(buf, 8, "%02d", MAX_HOUR);
-               elm_buttonpicker_item_append(eo, buf, NULL, NULL);
-               max = MAX_HOUR - 1;
-       } else {
-               i = 0;
-               max = MAX_HOUR2;
-       }
-
-       for (; i <= max; i++) {
-               snprintf(buf, 8, "%02d", i);
-               elm_buttonpicker_item_append(eo, buf, NULL, NULL);
-       }
-       if (part)
-               edje_object_part_swallow(ly, part, eo);
-       return eo;
-}
-
-static Evas_Object *
-_digit_add(Evas_Object *ly, const char *part, unsigned char max)
-{
-       int i;
-       char buf[8];
-       Evas_Object *eo;
-       eo = elm_buttonpicker_add(ly);
-       for (i = 0; i <= max; i++) {
-               snprintf(buf, 8, "%02d", i);
-               elm_buttonpicker_item_append(eo, buf, NULL, NULL);
-       }
-       if (part)
-               edje_object_part_swallow(ly, part, eo);
-       return eo;
-}
-
-static Evas_Object *
-_ampm_add(Evas_Object *ly, const char *part)
-{
-       Evas_Object *eo;
-       eo = elm_buttonpicker_add(ly);
-       elm_buttonpicker_item_append(eo, "AM", NULL, NULL);
-       elm_buttonpicker_item_append(eo, "PM", NULL, NULL);
-       if (part)
-               edje_object_part_swallow(ly, part, eo);
-       return eo;
-}
-
-static void
-_callback_init(Evas_Object *obj)
-{
-       Widget_Data *wd = elm_widget_data_get(obj);
-       if (!wd) return;
-
-       evas_object_data_set(wd->pickers[PICKER_HRS], "child", wd->pickers[PICKER_MIN]);
-       evas_object_data_set(wd->pickers[PICKER_MIN], "child", wd->pickers[PICKER_SUB]);
-       evas_object_data_set(wd->pickers[PICKER_SUB], "child", NULL);
-       evas_object_data_set(wd->pickers[PICKER_AMPM], "child", wd->pickers[PICKER_HRS]);
-       evas_object_data_set(wd->pickers[PICKER_HRS], "parent", wd->pickers[PICKER_AMPM]);
-       evas_object_data_set(wd->pickers[PICKER_MIN], "parent", wd->pickers[PICKER_HRS]);
-       evas_object_data_set(wd->pickers[PICKER_SUB], "parent", wd->pickers[PICKER_MIN]);
-
-       evas_object_smart_callback_add(wd->pickers[PICKER_HRS], "overflowed", _overflow_cb, obj);
-       evas_object_smart_callback_add(wd->pickers[PICKER_HRS], "underflowed", _underflow_cb, obj);
-       evas_object_smart_callback_add(wd->pickers[PICKER_MIN], "overflowed", _overflow_cb, obj);
-       evas_object_smart_callback_add(wd->pickers[PICKER_MIN], "underflowed", _underflow_cb, obj);
-       evas_object_smart_callback_add(wd->pickers[PICKER_SUB], "overflowed", _overflow_cb, obj);
-       evas_object_smart_callback_add(wd->pickers[PICKER_SUB], "underflowed", _underflow_cb, obj);
-
-       evas_object_smart_callback_add(wd->pickers[PICKER_HRS], "changed", _hrs_changed_cb, obj);
-       evas_object_smart_callback_add(wd->pickers[PICKER_MIN], "changed", _min_changed_cb, obj);
-       evas_object_smart_callback_add(wd->pickers[PICKER_SUB], "changed", _sub_changed_cb, obj);
-       evas_object_smart_callback_add(wd->pickers[PICKER_AMPM], "changed", _ampm_changed_cb, obj);
-}
-
-static void
-_pickers_add(Evas_Object *obj)
-{
-       Widget_Data *wd = elm_widget_data_get(obj);
-       if (!wd) return;
-
-       wd->pickers[PICKER_HRS] = _hrs_add(wd->base, "elm.swallow.hour", EINA_TRUE);
-       wd->pickers[PICKER_MIN] = _digit_add(wd->base, "elm.swallow.min", MAX_DIGIT);
-       wd->pickers[PICKER_SUB] = _digit_add(wd->base, "elm.swallow.sub", MAX_DIGIT);
-       wd->pickers[PICKER_AMPM] = _ampm_add(wd->base, "elm.swallow.ampm");
-       edje_object_signal_emit(wd->base, "elm,state,ampm,visible", "elm");
-       wd->ampm = EINA_TRUE;
-
-       _callback_init(obj);
-}
-
-static void
-_pickers_del(Evas_Object *obj)
-{
-       int i = 0;
-       Widget_Data *wd = elm_widget_data_get(obj);
-       if (!wd) return;
-       for (i = 0; i < PICKER_MAX; i++) {
-               if (wd->pickers[i]) {
-                       evas_object_del(wd->pickers[i]);
-                       wd->pickers[i] = NULL;
-               }
-       }
-}
-
-static void
-_changed(Evas_Object *picker, Evas_Object *child, Evas_Object *obj)
-{
-       int c1, c2 = 0;
-       c1 = (int)(evas_object_data_get(picker, "carryon"));
-       evas_object_data_set(picker, "carryon", (void *)0);
-
-       if (child) {
-               c2 = (int)(evas_object_data_get(child, "carryon"));
-               evas_object_data_set(child, "carryon", (void *)0);
-       }
-
-       if (!c1 && !c2)
-               evas_object_smart_callback_call(obj, "changed", NULL);
-}
-
-static void
-_overflow_cb(void *data, Evas_Object *obj, void *event_info)
-{
-       Evas_Object *eo;
-       eo = evas_object_data_get(obj, "parent");
-       if (eo) {
-               elm_buttonpicker_next(eo);
-               evas_object_data_set(obj, "carryon", (void *)1);
-       }
-}
-
-static void
-_underflow_cb(void *data, Evas_Object *obj, void *event_info)
-{
-       Evas_Object *eo;
-       eo = evas_object_data_get(obj, "parent");
-       if (eo) {
-               elm_buttonpicker_prev(eo);
-               evas_object_data_set(obj, "carryon", (void *)1);
-       }
-}
-
-static void
-_hrs_changed_cb(void *data, Evas_Object *obj, void *event_info)
-{
-       const char *hrs;
-       Widget_Data *wd = elm_widget_data_get(data);
-       Evas_Object *child;
-       if (!wd) return;
-
-       hrs = elm_buttonpicker_item_label_get(event_info);
-       wd->hrs = atoi(hrs);
-
-       if (wd->ampm) {
-               wd->hrs %= 12;
-               if (wd->is_pm)
-                       wd->hrs += 12;
-       }
-
-       child = evas_object_data_get(obj, "child");
-       _changed(obj, child, data);
-}
-
-static void
-_min_changed_cb(void *data, Evas_Object *obj, void *event_info)
-{
-       const char *min;
-       Widget_Data *wd = elm_widget_data_get(data);
-       Evas_Object *child;
-       if (!wd) return;
-
-       min = elm_buttonpicker_item_label_get(event_info);
-
-       wd->min = atoi(min);
-
-       child = evas_object_data_get(obj, "child");
-       _changed(obj, child, data);
-}
-
-static void
-_sub_changed_cb(void *data, Evas_Object *obj, void *event_info)
-{
-       const char *sub;
-       Widget_Data *wd = elm_widget_data_get(data);
-       Evas_Object *child;
-       if (!wd) return;
-
-       sub = elm_buttonpicker_item_label_get(event_info);
-
-       wd->sec = atoi(sub);
-
-       child = evas_object_data_get(obj, "child");
-       _changed(obj, child, data);
-}
-
-static void
-_ampm_changed_cb(void *data, Evas_Object *obj, void *event_info)
-{
-       const char *ampm;
-       Widget_Data *wd = elm_widget_data_get(data);
-       Evas_Object *child;
-       if (!wd) return;
-
-       ampm = elm_buttonpicker_item_label_get(event_info);
-
-       wd->hrs = (wd->hrs) % 12;
-       if (!strcmp(ampm, "AM")) {
-               wd->is_pm = 0;
-       } else {
-               wd->is_pm = 1;
-               wd->hrs += 12;
-       }
-
-       child = evas_object_data_get(obj, "child");
-       _changed(obj, child, data);
-}
-
-/**
- * Add a new timepicker3 to the parent
- *
- * @param parent The parent object
- * @return The new object or NULL if it cannot be created
- *
- * @ingroup Timepicker3
- */
-EAPI Evas_Object *
-elm_timepicker3_add(Evas_Object *parent)
-{
-       Evas_Object *obj;
-       Evas *e;
-       Widget_Data *wd;
-
-       wd = ELM_NEW(Widget_Data);
-       e = evas_object_evas_get(parent);
-       obj = elm_widget_add(e);
-       elm_widget_type_set(obj, "timepicker3");
-       elm_widget_sub_object_add(parent, obj);
-       elm_widget_data_set(obj, wd);
-
-       elm_widget_del_hook_set(obj, _del_hook);
-       elm_widget_theme_hook_set(obj, _theme_hook);
-       elm_widget_disable_hook_set(obj, _disable_hook);
-
-       wd->base = edje_object_add(e);
-       _elm_theme_object_set(obj, wd->base, "timepicker3", "base", "default");
-       elm_widget_resize_object_set(obj, wd->base);
-       _pickers_add(obj);
-       _sizing_eval(obj);
-       return obj;
-}
-
-/**
- * Set selected time of the timepicker3
- *
- * @param obj The timepicker3 object
- * @param hrs The hours to set
- * @param min The minutes to set
- * @param sec The seconds to set
- *
- * @ingroup Timepicker3
- */
-EAPI void
-elm_timepicker3_time_set(Evas_Object *obj, int hrs, int min, int sec)
-{
-       Widget_Data *wd = elm_widget_data_get(obj);
-       if (!wd) return;
-       if (!_is_time_valid(hrs, min, sec)) return;
-
-       wd->hrs = hrs;
-       wd->min = min;
-       wd->sec = sec;
-
-       _update_all(obj);
-}
-
-/**
- * Get selected time of the timepicker3
- *
- * @param obj The timepicker3 object
- * @param hrs The Pointer to the variable to get the selected hours
- * @param min The Pointer to the variable to get the selected minute
- * @param sec The Pointer to the variable to get the selected seconds
- *
- * @ingroup Timepicker3
- */
-EAPI void
-elm_timepicker3_time_get(Evas_Object *obj, int *hrs, int *min, int *sec)
-{
-       Widget_Data *wd = elm_widget_data_get(obj);
-       if (!wd) return;
-
-       if (hrs)
-               *hrs = wd->hrs;
-       if (min)
-               *min = wd->min;
-       if (sec)
-               *sec = wd->sec;
-}
-
-/**
- * Set if the timepicker3 show hours in military or am/pm mode
- *
- * @param obj The timepicker3 object
- * @param am_pm Bool option for the hours mode
- *
- * @ingroup Timepicker3
- */
-EAPI void
-elm_timepicker3_show_am_pm_set(Evas_Object *obj, Eina_Bool am_pm)
-{
-       Widget_Data *wd = elm_widget_data_get(obj);
-       if (!wd) return;
-
-       if (wd->ampm != am_pm) {
-               wd->ampm = am_pm;
-               _update_ampm(obj);
-       }
-}
-
-/**
- * Set if the timepicker3 show seconds picker3 or not
- *
- * @param obj The timepicker3 object
- * @param am_pm Bool option for the show seconds picker3
- *
- * @ingroup Timepicker3
- */
-EAPI void
-elm_timepicker3_show_seconds_set(Evas_Object *obj, Eina_Bool seconds)
-{
-       Widget_Data *wd = elm_widget_data_get(obj);
-       if (!wd) return;
-
-       if (wd->seconds != seconds) {
-               wd->seconds = seconds;
-               _update_seconds(obj);
-       }
-}
diff --git a/src/lib/elm_toolbar2.c b/src/lib/elm_toolbar2.c
deleted file mode 100644 (file)
index ecb0cdb..0000000
+++ /dev/null
@@ -1,520 +0,0 @@
-/*
- * vim:ts=8:sw=3:sts=8:noexpandtab:cino=>5n-3f0^-2{2
- */
-#include <Elementary.h>
-#include "elm_priv.h"
-#include "els_scroller.h"
-
-/**
- * @defgroup Toolbar Toolbar
- * @ingroup Elementary
- *
- * For listing a selection of items in a list within a "bar", each item having an icon and label.
- * This is more or less intended for use when selecting different modes - much like a tab widget,
- * but this is just the bar piece.
- */
-
-typedef struct _Widget_Data Widget_Data;
-
-struct _Widget_Data
-{
-   Evas_Object *scr, *bx;
-   Eina_List *items;
-   int icon_size;
-   Eina_Bool scrollable : 1;
-   Eina_Bool homogeneous : 1;
-   double align;
-};
-
-struct _Elm_Toolbar2_Item
-{
-   Evas_Object *obj;
-   Evas_Object *base;
-   Evas_Object *icon;
-   void (*func) (void *data, Evas_Object *obj, void *event_info);
-   void (*del_cb) (void *data, Evas_Object *obj, void *event_info);
-   const void *data;
-};
-
-static void _item_show(Elm_Toolbar2_Item *it);
-static void _del_pre_hook(Evas_Object *obj);
-static void _del_hook(Evas_Object *obj);
-static void _theme_hook(Evas_Object *obj);
-static void _sizing_eval(Evas_Object *obj);
-static void _resize(void *data, Evas *e, Evas_Object *obj, void *event_info);
-static void press_down_cb(void *data, Evas *evas, Evas_Object *obj, void *event_info);
-static void press_up_cb(void *data, Evas *evas, Evas_Object *obj, void *event_info);
-
-static void _layout(Evas_Object *o, Evas_Object_Box_Data *priv, void *data);
-
-static void _item_show(Elm_Toolbar2_Item *it)
-{
-   Widget_Data *wd = elm_widget_data_get(it->obj);
-   Evas_Coord x, y, w, h, bx, by, bw, bh;
-
-   if (!wd) return;
-   evas_object_geometry_get(wd->bx, &bx, &by, &bw, &bh);
-   evas_object_geometry_get(it->base, &x, &y, &w, &h);
-   elm_smart_scroller_child_region_show(wd->scr, x - bx, y - by, w, h);
-}
-
-static void _del_pre_hook(Evas_Object *obj)
-{
-   Widget_Data *wd = elm_widget_data_get(obj);
-   Elm_Toolbar2_Item *it;
-
-   if (!wd) return;
-   EINA_LIST_FREE(wd->items, it)
-     {
-       if (it->del_cb) it->del_cb((void *)it->data, it->obj, it);
-       if (it->icon) evas_object_del(it->icon);
-       evas_object_del(it->base);
-       free(it);
-     }
-}
-
-static void _del_hook(Evas_Object *obj)
-{
-   Widget_Data *wd = elm_widget_data_get(obj);
-
-   if (!wd) return;
-   free(wd);
-}
-
-static void _theme_hook(Evas_Object *obj)
-{
-   Widget_Data *wd = elm_widget_data_get(obj);
-   const Eina_List *l;
-   Elm_Toolbar2_Item *it;
-   const char *style = elm_widget_style_get(obj);
-   int ms = 0;
-   int scale = 0;
-
-   if (!wd) return;
-   scale = (elm_widget_scale_get(obj) * _elm_config->scale);
-   edje_object_scale_set(wd->scr, scale);
-   EINA_LIST_FOREACH(wd->items, l, it)
-     {
-       //         Evas_Coord mw, mh;
-       Evas_Coord ic_w, ic_h;
-
-       edje_object_scale_set(it->base, scale);
-
-
-       _elm_theme_object_set(obj, it->base, "toolbar2", "item", style);
-       if (it->icon)
-         {
-            evas_object_size_hint_min_get(it->icon, &ic_w, &ic_h);
-
-            ms = ((double)wd->icon_size * _elm_config->scale);
-            if (ic_w > 0 && ic_h > 0)
-              {
-                 if (ic_h > wd->icon_size) ic_h = wd->icon_size;
-                 evas_object_size_hint_min_set(it->icon, ic_w, ic_h);
-                 evas_object_size_hint_max_set(it->icon, ic_w, ic_h);
-              }
-            else 
-              {
-                 evas_object_size_hint_min_set(it->icon, ms, ms);
-                 evas_object_size_hint_max_set(it->icon, ms, ms);
-              }
-
-            evas_object_size_hint_align_set(it->icon, 0.5, 0.5);
-            edje_object_part_swallow(it->base, "elm.swallow.icon", it->icon);
-            evas_object_show(it->icon);
-            elm_widget_sub_object_add(obj, it->icon);
-         }
-       /*
-          mw = mh = -1;
-          elm_coords_finger_size_adjust(1, &mw, 1, &mh);
-          edje_object_size_min_restricted_calc(it->base, &mw, &mh, mw, mh);
-          elm_coords_finger_size_adjust(1, &mw, 1, &mh);
-          */
-       evas_object_size_hint_weight_set(it->base, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
-       evas_object_size_hint_align_set(it->base, 0.5, 0.5);
-
-       if (ic_w > 0 && ic_h > 0) 
-         {
-            evas_object_size_hint_min_set(it->base, ic_w, ic_h);
-         }
-       else 
-         {
-            //            evas_object_size_hint_min_set(it->base, mw, mh);
-            ms = ((double)wd->icon_size * _elm_config->scale);
-
-            evas_object_size_hint_min_set(it->base, ms, ms);
-         }
-     }
-   _sizing_eval(obj);
-}
-
-static void _sizing_eval(Evas_Object *obj)
-{
-   Widget_Data *wd = elm_widget_data_get(obj);
-   Evas_Coord minw = -1, minh = -1;
-   Evas_Coord vw = 0, vh = 0;
-   Evas_Coord w, h;
-
-   if (!wd) return;
-
-   evas_object_smart_calculate(wd->bx);
-   edje_object_size_min_calc(elm_smart_scroller_edje_object_get(wd->scr), &minw, &minh);
-   evas_object_geometry_get(obj, NULL, NULL, &w, &h);
-
-   if (w < minw) w = minw;
-   if (h < minh) h = minh;
-
-   evas_object_resize(wd->scr, w, h);
-
-   evas_object_size_hint_min_get(wd->bx, &minw, &minh);
-   if (w > minw) minw = w;
-
-   evas_object_resize(wd->bx, minw, 66);
-   if (w > minw) minw = w;
-   elm_smart_scroller_child_viewport_size_get(wd->scr, &vw, &vh);
-
-   if (wd->scrollable)
-     minw = w - vw;
-   else
-     minw = minw + (w - vw);
-
-   minh = minh + (h - vh);
-
-   evas_object_size_hint_min_set(obj, vw, vh);
-   evas_object_size_hint_max_set(obj, -1, -1);
-}
-
-static void _resize(void *data, Evas *e, Evas_Object *obj, void *event_info)
-{
-   Widget_Data *wd = elm_widget_data_get(data);
-   Evas_Coord mw, mh, vw, vh, w, h;
-
-   if (!wd) return;
-
-   elm_smart_scroller_child_viewport_size_get(wd->scr, &vw, &vh);
-   evas_object_size_hint_min_get(wd->bx, &mw, &mh);
-   evas_object_geometry_get(wd->bx, NULL, NULL, &w, &h);
-
-   if (vw >= mw)
-     {
-       if (w != vw) evas_object_resize(wd->bx, vw, h);
-     }
-}
-
-static void press_down_cb(void *data, Evas *evas, Evas_Object *obj, void *event_info)
-{
-   //Evas_Event_Mouse_Down *ev = event_info;
-   //printf("\nDown %d\n", ev->flags);
-   //Evas_Event_Mouse_Down *ev = event_info;
-   Elm_Toolbar2_Item *it = (Elm_Toolbar2_Item *)data;
-   edje_object_signal_emit(it->base, "elm,state,selected", "elm");
-   _item_show(it);
-}
-
-static void press_up_cb(void *data, Evas *evas, Evas_Object *obj, void *event_info)
-{
-   Elm_Toolbar2_Item *it = (Elm_Toolbar2_Item *)data;
-
-   edje_object_signal_emit(it->base, "elm,state,unselected", "elm");
-
-   Evas_Event_Mouse_Up *ev = event_info;
-   //  printf("\nUp %d\n", ev->flags);
-   if (ev->event_flags & EVAS_EVENT_FLAG_ON_HOLD) 
-     {
-       //printf("\nReturn\n");
-       return;
-     }
-
-   //  printf("\nSend\n");
-   if (it->func) it->func((void *)(it->data), it->obj, it);
-   evas_object_smart_callback_call(it->obj, "clicked", it);
-}
-
-static void _layout(Evas_Object *o, Evas_Object_Box_Data *priv, void *data)
-{
-   Widget_Data *wd = data;
-
-   _els_box_layout(o, priv, 1, wd->homogeneous);
-}
-
-/**
- * Add a new Toolbar object
- *
- * @param parent The parent object
- * @return The new object or NULL if it cannot be created
- *
- * @ingroup Toolbar
- */
-EAPI Evas_Object *elm_toolbar2_add(Evas_Object *parent)
-{
-   Evas_Object *obj;
-   Evas *e;
-   Widget_Data *wd;
-
-   wd = ELM_NEW(Widget_Data);
-   e = evas_object_evas_get(parent);
-   obj = elm_widget_add(e);
-   elm_widget_type_set(obj, "toolbar");
-   elm_widget_sub_object_add(parent, obj);
-   elm_widget_data_set(obj, wd);
-   elm_widget_del_pre_hook_set(obj, _del_pre_hook);
-   elm_widget_del_hook_set(obj, _del_hook);
-   elm_widget_theme_hook_set(obj, _theme_hook);
-   elm_widget_can_focus_set(obj, 0);
-
-   wd->scr = elm_smart_scroller_add(e);
-   elm_smart_scroller_bounce_allow_set(wd->scr, 0, 0);
-   elm_smart_scroller_object_theme_set(obj, wd->scr, "toolbar2", "base", "default");
-   elm_widget_resize_object_set(obj, wd->scr);
-   elm_smart_scroller_policy_set(wd->scr,
-                                ELM_SMART_SCROLLER_POLICY_AUTO,
-                                ELM_SMART_SCROLLER_POLICY_OFF);
-
-   wd->icon_size = 50;
-   wd->scrollable = EINA_TRUE;
-   wd->homogeneous = EINA_TRUE;
-   wd->align = 0.5;
-
-   wd->bx = evas_object_box_add(e);
-   evas_object_size_hint_align_set(wd->bx, wd->align, 0.5);
-   evas_object_box_layout_set(wd->bx, _layout, wd, NULL);
-   elm_widget_sub_object_add(obj, wd->bx);
-   elm_smart_scroller_child_set(wd->scr, wd->bx);
-   evas_object_show(wd->bx);
-
-   evas_object_event_callback_add(wd->scr, EVAS_CALLBACK_RESIZE, _resize, obj);
-
-   _sizing_eval(obj);
-   return obj;
-}
-
-/**
- * Set the size of icon of Toolbar object
- *
- * @param obj The Toolbar object
- * @param icon_size The size of icon to be set
- *
- * @ingroup Toolbar
- */
-EAPI void elm_toolbar2_icon_size_set(Evas_Object *obj, int icon_size)
-{
-   Widget_Data *wd = elm_widget_data_get(obj);
-
-   if (!wd) return;
-   if (icon_size > 50) return;
-   if (wd->icon_size == icon_size) return;
-   wd->icon_size = icon_size;
-   _theme_hook(obj);
-}
-
-/**
- * Get the size of icon of Toolbar object
- *
- * @param obj The Toolbar object
- * @return The size of icon to be set
- *
- * @ingroup Toolbar
- */
-EAPI int elm_toolbar2_icon_size_get(Evas_Object *obj)
-{
-   Widget_Data *wd = elm_widget_data_get(obj);
-
-   if (!wd) return 0;
-   return wd->icon_size;
-}
-
-/**
- * Add items to Toolbar object
- *
- * @param obj The Toolbar object
- * @param icon The icon
- * @param label The Label
- * @param func The function
- * @param data The data
- * @return TheToolbar item
- *
- * @ingroup Toolbar
- */
-EAPI Elm_Toolbar2_Item *elm_toolbar2_item_add(Evas_Object *obj, Evas_Object *icon, const char *label, void (*func) (void *data, Evas_Object *obj, void *event_info), const void *data)
-{
-   Widget_Data *wd = elm_widget_data_get(obj);
-   int ms = 0;
-   //  Evas_Coord mw, mh;
-   Evas_Coord ic_w, ic_h;
-   Elm_Toolbar2_Item *it;
-
-   if (!wd) return NULL;
-   it = ELM_NEW(Elm_Toolbar2_Item);
-   if (!it) return NULL;
-   wd->items = eina_list_append(wd->items, it);
-
-   it->obj = obj;
-   it->icon = icon;
-   it->func = func;
-   it->data = data;
-   it->base = edje_object_add(evas_object_evas_get(obj));
-
-   _elm_theme_object_set(obj, it->base, "toolbar2", "item", elm_widget_style_get(obj));
-
-   evas_object_event_callback_add(it->icon, EVAS_CALLBACK_MOUSE_DOWN,  press_down_cb, it);
-   evas_object_event_callback_add(it->icon, EVAS_CALLBACK_MOUSE_UP,  press_up_cb, it);
-
-   elm_widget_sub_object_add(obj, it->base);
-
-   ic_w = 0;
-   ic_h = 0;
-   if (it->icon)
-     {
-       evas_object_size_hint_min_get(it->icon, &ic_w, &ic_h);
-
-       if (ic_w > 0 && ic_h > 0)
-         {
-            if (ic_h > wd->icon_size) ic_h = wd->icon_size;
-            evas_object_size_hint_min_set(it->icon, ic_w, ic_h);
-            evas_object_size_hint_max_set(it->icon, ic_w, ic_h);
-         }
-       else 
-         {
-            ms = ((double)wd->icon_size * _elm_config->scale);
-
-            evas_object_size_hint_min_set(it->icon, ms, ms);
-            evas_object_size_hint_max_set(it->icon, ms, ms);
-         }
-
-       //evas_object_size_hint_weight_set(it->icon, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
-       //evas_object_size_hint_align_set(it->icon, 0.5, 0.5);
-
-       edje_object_part_swallow(it->base, "elm.swallow.icon", it->icon);
-       evas_object_show(it->icon);
-       elm_widget_sub_object_add(obj, it->icon);
-     }
-   /*
-      mw = mh = -1;
-
-      elm_coords_finger_size_adjust(1, &mw, 1, &mh);
-      edje_object_size_min_restricted_calc(it->base, &mw, &mh, mw, mh);
-      elm_coords_finger_size_adjust(1, &mw, 1, &mh);
-      */
-   evas_object_size_hint_weight_set(it->base, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
-   evas_object_size_hint_align_set(it->base, 0.5, 0.5);
-
-   if (ic_w > 0 && ic_h > 0) 
-     {
-       evas_object_size_hint_min_set(it->base, ic_w, ic_h);
-     }
-   else 
-     {
-       //              evas_object_size_hint_min_set(it->base, mw, mh);
-       ms = ((double)wd->icon_size * _elm_config->scale);
-
-       evas_object_size_hint_min_set(it->base, ms, ms);
-     }
-   evas_object_box_append(wd->bx, it->base);
-   evas_object_show(it->base);
-   _sizing_eval(obj);
-   return it;
-}
-
-/**
- * Get icon of item of Toolbar object
- *
- * @param item TheToolbar item
- * @return The icon object
- *
- * @ingroup Toolbar
- */
-EAPI Evas_Object *elm_toolbar2_item_icon_get(Elm_Toolbar2_Item *item)
-{
-   if (!item) return NULL;
-   return item->icon;
-}
-
-/**
- * Delete the Toolbar item
- *
- * @param it TheToolbar item
- *
- * @ingroup Toolbar
- */
-EAPI void elm_toolbar2_item_del(Elm_Toolbar2_Item *it)
-{
-   Widget_Data *wd = elm_widget_data_get(it->obj);
-   Evas_Object *obj2 = it->obj;
-
-   if ((!wd) || (!it)) return;
-   if (it->del_cb) it->del_cb((void *)it->data, it->obj, it);
-   wd->items = eina_list_remove(wd->items, it);
-   if (it->icon) evas_object_del(it->icon);
-   evas_object_del(it->base);
-   free(it);
-   _theme_hook(obj2);
-}
-
-/**
- * Set the function called when a toolbar item is freed.
- *
- * @param it The item to set the callback on
- * @param func The function called
- *
- * @ingroup Toolbar
- */
-EAPI void elm_toolbar2_item_del_cb_set(Elm_Toolbar2_Item *it, void (*func)(void *data, Evas_Object *obj, void *event_info))
-{
-   if(!it) return;
-
-   it->del_cb = func;
-}
-
-/**
- * Whether toolbar is scrollable
- *
- * @param obj The Toolbar
- * @param scrollable The scrollable flag (1 if toolbar is scrollable, 0 otherwise)
- *
- * @ingroup Toolbar
- */
-EAPI void elm_toolbar2_scrollable_set(Evas_Object *obj, Eina_Bool scrollable)
-{
-   Widget_Data *wd = elm_widget_data_get(obj);
-
-   if (!wd) return;
-   wd->scrollable = scrollable;
-   _sizing_eval(obj);
-}
-
-/**
- * Whether toolbar is homogenous
- *
- * @param obj The Toolbar
- * @param homogenous The homogenous flag (1 if toolbar is homogenous, 0 otherwise)
- *
- * @ingroup Toolbar
- *
- */
-EAPI void
-elm_toolbar2_homogenous_set(Evas_Object *obj, Eina_Bool homogenous)
-{
-   Widget_Data *wd = elm_widget_data_get(obj);
-
-   if (!wd) return;
-   wd->homogeneous = !!homogenous;
-   evas_object_smart_calculate(wd->bx);
-}
-
-/**
- * Set if the alignment of the items.
- *
- * @param obj The toolbar object
- * @param align The new alignment. (left) 0.0 ... 1.0 (right)
- *
- * @ingroup Toolbar
- */
-EAPI void elm_toolbar2_align_set(Evas_Object *obj, double align)
-{
-   Widget_Data *wd = elm_widget_data_get(obj);
-
-   if (!wd) return;
-   if(wd->align != align)
-     evas_object_size_hint_align_set(wd->bx, align, 0.5);
-    wd->align = align;
-}
diff --git a/src/lib/elm_viewflipper.c b/src/lib/elm_viewflipper.c
deleted file mode 100644 (file)
index a8f26c7..0000000
+++ /dev/null
@@ -1,879 +0,0 @@
-/**\r
-  *\r
-  * @defgroup Viewflipper Viewflipper\r
-  * @ingroup Elementary\r
-  *\r
-  * This is an viewflipper.\r
-  * viewflipper api can retrun the following values \r
-  *    ERROR_0  = -1,    //can not find wanted value\r
-  *   SUCCESS =0,              \r
-  *    ERROR_1  =1001, //confrim parameter is layout or not\r
-  *    ERROR_2 ,       //confrim memory check\r
-  *    ERROR_3 ,       //data is empty\r
-  *    ERROR_4 ,       //check the range\r
-  *    ERROR_5 ,       //Non need operation\r
-  *    ERROR_6 ,       //waiting gui\r
-  *    ERROR_7 ,       //timer second is not setup or can not time setup\r
-  */\r
-\r
-\r
-#include <Elementary.h>\r
-#include "elm_priv.h"\r
-\r
-#define TRUE   1\r
-#define FALSE 0\r
-\r
-typedef struct _Widget_Data Widget_Data;\r
-\r
-struct _Widget_Data\r
-{\r
-   Evas_Object * viewflipper;\r
-   Evas_Object * left_lay;\r
-   Evas_Object * middle_lay;\r
-   Evas_Object * right_lay;\r
-\r
-   int is_left_show;\r
-   int is_middle_show;\r
-   int is_right_show;   \r
-\r
-   int is_can_move;\r
-\r
-   int is_auto_start;\r
-   int is_show_button;\r
-\r
-   int request_direction;\r
-   int request_pos;\r
-   int time_sec;\r
-   Ecore_Timer * auto_timer;\r
-\r
-   int temp_x_down;\r
-   int temp_x_up;\r
-   \r
-   Eina_List *view_list;\r
-   int selected_view;\r
-   int all_count;\r
-};\r
-\r
-Widget_Data * this_pointer=NULL;\r
-\r
-static const char *widtype = NULL;\r
-\r
-static void _set_this(Widget_Data * in_this_pointer);\r
-static void _del_hook(Evas_Object *obj);\r
-static void _theme_hook(Evas_Object *obj);\r
-static void _sizing_eval(Evas_Object *obj);\r
-static int    _is_can_move();\r
-static int    _is_first_view();\r
-static int    _is_last_view();\r
-static void _mouse_flip_cb(int mouse_direction);\r
-static void _mouse_up(void *data, Evas *e, Evas_Object *o, void *event_info);\r
-static void _mouse_down(void *data, Evas *e, Evas_Object *o, void *event_info);\r
-static void _complete_move(void *data, Evas_Object *obj __UNUSED__, const char *emission __UNUSED__, const char *source __UNUSED__);\r
-static void _left_button_click(void *data, Evas_Object *obj __UNUSED__, const char *emission __UNUSED__, const char *source __UNUSED__);\r
-static void _right_button_click(void *data, Evas_Object *obj __UNUSED__, const char *emission __UNUSED__, const char *source __UNUSED__);\r
-static Eina_Bool  _flipping_timer_cb(void *data);\r
-static void _set_layout_each_view(Evas_Object * left,Evas_Object * middle,Evas_Object *right);\r
-static int   _setView();\r
-static void _setup_button_show_left_right();\r
-\r
-\r
-\r
-       \r
-static void\r
-_set_this(Widget_Data * in_this_pointer)\r
-{\r
-       this_pointer=in_this_pointer;\r
-}\r
-\r
-Widget_Data * _get_this()\r
-{\r
-       return this_pointer;\r
-}\r
-static void\r
-_del_pre_hook(Evas_Object *obj)\r
-{\r
-   Widget_Data *wd = elm_widget_data_get(obj);\r
-   elm_viewflipper_stopAutoFlipping();\r
-  _set_layout_each_view(NULL,NULL,NULL);\r
-  if(wd->viewflipper!=NULL)\r
-  {\r
-       evas_object_del(wd->viewflipper);\r
-  }\r
-  eina_list_free(wd->view_list);\r
-  wd->view_list=NULL;\r
-}\r
-static void\r
-_del_hook(Evas_Object *obj)\r
-{\r
-   Widget_Data *wd = elm_widget_data_get(obj);   \r
-\r
-   if (!wd) return;\r
-   free(wd);\r
-}\r
-\r
-static void\r
-_theme_hook(Evas_Object *obj)\r
-{\r
-   printf("_theme_hook  \n");\r
-   \r
-   Widget_Data *wd = elm_widget_data_get(obj);\r
-   if (!wd) return;\r
-\r
-   _sizing_eval(obj);\r
-   evas_object_show(wd->viewflipper);\r
-}\r
-static void\r
-_sizing_eval(Evas_Object *obj)\r
-{\r
-    Widget_Data *wd = elm_widget_data_get(obj);\r
-   Evas_Coord minw = -1, minh = -1;\r
-\r
-   edje_object_size_min_calc(wd->viewflipper, &minw, &minh);\r
-   evas_object_size_hint_min_set(obj, minw, minh);\r
-   evas_object_size_hint_max_set(obj, -1, -1);\r
-   evas_object_resize(wd->viewflipper, minw, minh);    \r
-\r
-    printf("_sizing_eval %d %d  \n",minw,minh);\r
-\r
-    Eina_List *l;\r
-    Evas_Object * it;\r
-\r
-    EINA_LIST_FOREACH(_get_this()->view_list, l, it)\r
-    {\r
-          evas_object_resize(it, minw, minh);  \r
-    }  \r
-}  \r
-\r
-static int\r
-_is_can_move()\r
-{\r
-       Widget_Data *wd = _get_this();\r
-       return wd->is_can_move;\r
-}\r
-\r
-static int\r
-_is_first_view()\r
-{\r
-       if(elm_viewflipper_getCountChild()==0)\r
-               return FALSE;\r
-\r
-       if(_get_this()->selected_view==0)\r
-               return TRUE;\r
-       return FALSE;\r
-}\r
-\r
-static int\r
-_is_last_view()\r
-{\r
-       if(elm_viewflipper_getCountChild()==0)\r
-               return FALSE;\r
-\r
-       Widget_Data *wd = _get_this();\r
-       if(wd->selected_view==(elm_viewflipper_getCountChild()-1))\r
-               return TRUE;\r
-       return FALSE;\r
-}\r
-\r
-static void\r
-_mouse_flip_cb(int mouse_direction)\r
-{\r
-       if(mouse_direction == DIR_RIGHT)\r
-               elm_viewflipper_setNextView();\r
-       else elm_viewflipper_setPreviousView();\r
-}\r
-\r
-static void\r
-_mouse_up(void *data, Evas *e, Evas_Object *o, void *event_info)\r
-{\r
-   Evas_Event_Mouse_Up *ev = event_info;\r
-   _get_this()->temp_x_up = ev->canvas.x;\r
-   printf("mouse up start\n");\r
-\r
-  int temp_value= _get_this()->temp_x_up - _get_this()->temp_x_down;\r
-  if(temp_value <0)\r
-       temp_value = temp_value * -1;\r
-\r
-   if(temp_value < FLIP_RANGE_X)\r
-        return;\r
-   \r
-   if(_get_this()->temp_x_up>_get_this()->temp_x_down)\r
-   {\r
-               printf("left flip\n");\r
-               _mouse_flip_cb(DIR_LEFT);\r
-   }\r
-   else\r
-   {\r
-               printf("right flip\n");\r
-               _mouse_flip_cb(DIR_RIGHT);\r
-   }\r
-     printf("mouse up end\n");\r
-}\r
-\r
-static void\r
-_mouse_down(void *data, Evas *e, Evas_Object *o, void *event_info)\r
-{\r
-   Evas_Event_Mouse_Down *ev = event_info;\r
-  _get_this()->temp_x_down = ev->canvas.x; \r
-  printf("mouse down\n");\r
-}\r
-\r
-static void\r
-_complete_move(void *data, Evas_Object *obj __UNUSED__, const char *emission __UNUSED__, const char *source __UNUSED__)\r
-{\r
-       _get_this()->is_can_move=TRUE;\r
-       _setView();\r
-}\r
-static void\r
-_left_button_click(void *data, Evas_Object *obj __UNUSED__, const char *emission __UNUSED__, const char *source __UNUSED__)\r
-{\r
-       elm_viewflipper_setPreviousView();\r
-       printf("_left_button_click\n");\r
-}\r
-static void\r
-_right_button_click(void *data, Evas_Object *obj __UNUSED__, const char *emission __UNUSED__, const char *source __UNUSED__)\r
-{\r
-       elm_viewflipper_setNextView();\r
-       printf("_right_button_click\n");\r
-}\r
-\r
-static Eina_Bool\r
-_flipping_timer_cb(void *data)\r
-{\r
-       if(elm_viewflipper_isAutoStart()==FALSE)\r
-               return 0;\r
-\r
-       if(_get_this()->request_pos!=EACH_LAST && _get_this()->selected_view ==_get_this()->request_pos)\r
-       {\r
-               printf("_flipping_timer_cb stop using each_last");\r
-               elm_viewflipper_stopAutoFlipping();\r
-               return 0;\r
-       }\r
-\r
-       if(_get_this()->request_direction==DIR_RIGHT)\r
-               elm_viewflipper_setNextView();\r
-       else elm_viewflipper_setPreviousView();\r
-       \r
-       if(_is_last_view()==TRUE)\r
-       {       \r
-               printf("_flipping_timer_cb stop");\r
-               elm_viewflipper_stopAutoFlipping();\r
-               return 0;\r
-       }       \r
-        printf("_flipping_timer_cb ing");\r
-}\r
-\r
-static void\r
-_set_layout_each_view(Evas_Object * left,Evas_Object * middle,Evas_Object *right)\r
-{\r
-       Widget_Data *wd = _get_this();\r
-       edje_object_signal_emit(_get_this()->viewflipper, "change_default_pos", "elm");\r
-       \r
-       if(wd->left_lay!=NULL)\r
-       {\r
-               edje_object_part_unswallow(wd->viewflipper, wd->left_lay);\r
-               evas_object_hide(wd->left_lay);\r
-               wd->left_lay=NULL;      \r
-       }       \r
-       if(wd->middle_lay!=NULL)\r
-       {\r
-               edje_object_part_unswallow(wd->viewflipper, wd->middle_lay);\r
-               evas_object_hide(wd->middle_lay);\r
-               wd->middle_lay=NULL;    \r
-       }\r
-       if(wd->right_lay!=NULL)\r
-       {\r
-               edje_object_part_unswallow(wd->viewflipper, wd->right_lay);     \r
-               evas_object_hide(wd->right_lay);\r
-               wd->right_lay=NULL;\r
-       }\r
-\r
-         if(left==NULL)\r
-        {\r
-               wd->is_left_show = FALSE;               \r
-        }\r
-        else \r
-        {\r
-               wd->left_lay=left;                              \r
-               edje_object_part_swallow(wd->viewflipper, "first_view",left);\r
-               wd->is_left_show = TRUE;                        \r
-\r
-               printf("_set_layout_each_view 1\n");            \r
-        }\r
-\r
-        if(middle==NULL)\r
-        {\r
-               _get_this()->is_middle_show=FALSE;\r
-        }\r
-        else\r
-        {\r
-               wd->middle_lay=middle;  \r
-               edje_object_part_swallow(wd->viewflipper, "second_view",middle );\r
-               _get_this()->is_left_show = TRUE;\r
-               \r
-               printf("_set_layout_each_view 2\n");    \r
-        }\r
-\r
-       if(right==NULL)\r
-       {       \r
-               _get_this()->is_right_show=FALSE;\r
-       }\r
-       else\r
-       {\r
-               wd->right_lay=right;    \r
-               edje_object_part_swallow(wd->viewflipper, "third_view", right);         \r
-               _get_this()->is_right_show = TRUE;\r
-\r
-                printf("_set_layout_each_view 3\n");   \r
-       }\r
-}\r
-static int \r
-_setView()\r
-{\r
-       Widget_Data *wd = _get_this();\r
-       if(elm_viewflipper_getCountChild()==0)\r
-               return ERROR_3;\r
-       if(_is_first_view()==TRUE)\r
-       {\r
-               if(elm_viewflipper_getCountChild()==1)\r
-               {\r
-                       _set_layout_each_view(NULL, elm_viewflipper_getChildAt(0),NULL);\r
-                        printf("_setView 1\n");\r
-               }\r
-               else//than 1\r
-               {\r
-                       _set_layout_each_view(NULL, elm_viewflipper_getChildAt(0), elm_viewflipper_getChildAt(1));      \r
-                       printf("_setView 2\n");\r
-               }               \r
-       }\r
-       else if(_is_last_view()==TRUE)\r
-       {\r
-               if(elm_viewflipper_getCountChild()==1)\r
-               {\r
-                       _set_layout_each_view(NULL, elm_viewflipper_getChildAt(wd->selected_view),NULL);\r
-                        printf("_setView 3\n");\r
-               }\r
-               else//than 1\r
-               {\r
-                       _set_layout_each_view( elm_viewflipper_getChildAt((wd->selected_view)-1), elm_viewflipper_getChildAt(wd->selected_view),NULL);\r
-                        printf("_setView 4\n");\r
-               }       \r
-       }\r
-       else\r
-       {\r
-               _set_layout_each_view( elm_viewflipper_getChildAt((wd->selected_view)-1), elm_viewflipper_getChildAt(wd->selected_view), elm_viewflipper_getChildAt((wd->selected_view)+1));\r
-                printf("_setView 5\n");\r
-       }\r
-       _setup_button_show_left_right();        \r
-}      \r
-\r
-static void \r
-_setup_button_show_left_right()\r
-{\r
-       if(_get_this()->is_show_button==TRUE)\r
-       {\r
-               if(elm_viewflipper_getCountChild()==0)\r
-                       return;\r
-               else if(_is_first_view()==TRUE)\r
-               {\r
-                       edje_object_signal_emit(_get_this()->viewflipper, "right_button_show", "elm");\r
-                       edje_object_signal_emit(_get_this()->viewflipper, "left_button_hide", "elm");\r
-               }\r
-               else if(_is_last_view()==TRUE)\r
-               {\r
-                       edje_object_signal_emit(_get_this()->viewflipper, "left_button_show", "elm");\r
-                       edje_object_signal_emit(_get_this()->viewflipper, "right_button_hide", "elm");\r
-               }\r
-               else \r
-               {               \r
-                       edje_object_signal_emit(_get_this()->viewflipper, "button_show", "elm");\r
-               }\r
-       }\r
-}\r
-\r
-/**\r
-  * This function  makes a new viewflipper object\r
-  * @param parent The parent object\r
-  * @return  new viewflipper object \r
-  *\r
-  * @ingroup Viewflipper\r
-  */\r
-EAPI Evas_Object * \r
-elm_viewflipper_add(Evas_Object * parent)\r
-{\r
-   Evas_Object *obj;\r
-   Evas *e;\r
-   Widget_Data *wd;\r
-\r
-   wd = ELM_NEW(Widget_Data);\r
-   e = evas_object_evas_get(parent);\r
-   obj = elm_widget_add(e);\r
-   ELM_SET_WIDTYPE(widtype, "viewflipper");\r
-   elm_widget_type_set(obj, "viewflipper");\r
-   elm_widget_sub_object_add(parent, obj);\r
-   elm_widget_data_set(obj, wd);\r
-   elm_widget_del_pre_hook_set(obj, _del_pre_hook);\r
-   elm_widget_del_hook_set(obj, _del_hook);\r
-   elm_widget_theme_hook_set(obj, _theme_hook);\r
-   \r
-    wd->viewflipper = edje_object_add(evas_object_evas_get(obj));\r
-    _elm_theme_object_set(obj,wd->viewflipper,  "viewflipper", "base", "default");\r
-\r
-    evas_object_event_callback_add(wd->viewflipper, EVAS_CALLBACK_MOUSE_DOWN,\r
-                                  _mouse_down, obj);\r
-    evas_object_event_callback_add(wd->viewflipper, EVAS_CALLBACK_MOUSE_UP,\r
-                                  _mouse_up, obj);\r
\r
-\r
-    edje_object_signal_callback_add(wd->viewflipper, "elm,action,moving", "elm",\r
-                                   _complete_move, obj);\r
-    edje_object_signal_callback_add(wd->viewflipper, "clicked", "btn_left",\r
-                                   _left_button_click, obj);\r
-    edje_object_signal_callback_add(wd->viewflipper, "clicked", "btn_right",\r
-                                   _right_button_click, obj);\r
-\r
-   \r
-    _set_this(wd);\r
-    _get_this()->is_can_move=TRUE;\r
-\r
-   elm_widget_resize_object_set(obj, wd->viewflipper);\r
-   _sizing_eval(obj);\r
-\r
-   printf("create_viewflipper\n");\r
-   return obj;\r
-}\r
-\r
-/**\r
-  * This function returns the value of button show setting\r
-  *\r
-  * @return  the value of button show setting (TRUE,FALSE)\r
-  *\r
-  * @ingroup Viewflipper\r
-  */\r
-EAPI int \r
-elm_viewflipper_isFlipbutton()\r
-{\r
-       return _get_this()->is_show_button;\r
-}\r
-\r
-\r
-\r
-/**\r
-  * This function checks if auto sliding is in use\r
-  *\r
-  * @return  the value of auto sliding is in use (TRUE,FALSE)\r
-  *\r
-  * @ingroup Viewflipper\r
-  */\r
-EAPI \r
-int elm_viewflipper_isAutoStart()\r
-{\r
-       return _get_this()->is_auto_start;\r
-}\r
-\r
-\r
-\r
-/**\r
-  * This function checks if the index is valid\r
-  * @param pos index of layout\r
-  * @return  TRUE , FALSE \r
-  *\r
-  * @ingroup Viewflipper\r
-  */\r
-EAPI int \r
-elm_viewflipper_isValidPos(int pos)\r
-{\r
-       if(elm_viewflipper_getCountChild()==0)\r
-               return FALSE;\r
-\r
-       if(pos<0 || pos >=elm_viewflipper_getCountChild())\r
-               return FALSE;\r
-\r
-       return TRUE;    \r
-}\r
-\r
-\r
-\r
-/**\r
-  * This function appends(adds) a layout to viewflipper\r
-  * @param child_layout  the item(layout)\r
-  * @return  SUCCESS , ERROR_1 ,ERROR_2\r
-  *\r
-  * @ingroup Viewflipper\r
-  */\r
-EAPI int \r
-elm_viewflipper_addChild(Evas_Object * child_layout)\r
-{\r
-       if(_get_this()==NULL)\r
-               return ERROR_2;\r
-       \r
-       if(strncmp(elm_widget_style_get(child_layout),"layout",6)==0)\r
-               return ERROR_1;\r
-       \r
-       _get_this()->view_list = eina_list_append(_get_this()->view_list, child_layout);\r
-        printf("addChild\n");\r
-       return SUCCESS;\r
-}\r
-\r
-\r
-/**\r
-  * This function removes a child layout from the viewflipper\r
-  * @param child_layout  the item(layout)\r
-  * @return  SUCCESS ,ERROR_0, ERROR_1 ,ERROR_2 \r
-  *\r
-  * @ingroup Viewflipper\r
-  */\r
-EAPI int \r
-elm_viewflipper_removeChild(Evas_Object * child_layout)\r
-{\r
-       if(_get_this()==NULL)\r
-               return ERROR_2;\r
-       \r
-       if(strncmp(elm_widget_style_get(child_layout),"layout",6)==0)\r
-               return ERROR_1;\r
-       \r
\r
-       Eina_List *l;\r
-       Evas_Object * it;\r
-\r
-       EINA_LIST_FOREACH(_get_this()->view_list, l, it)\r
-       {\r
-                 if (it == child_layout)\r
-                 {             \r
-                    evas_object_hide(child_layout);\r
-                    _get_this()->view_list = eina_list_remove_list(_get_this()->view_list, l);\r
-                    _setView();\r
-                    return SUCCESS;\r
-                 }\r
-        }   \r
-        return ERROR_0;  \r
-}\r
-\r
-\r
-/**\r
-  * This function removes a child a layout using it's index\r
-  * @param pos index of layout\r
-  * @return  SUCCESS ,ERROR_0,ERROR_2,ERROR_4\r
-  *\r
-  * @ingroup Viewflipper\r
-  */\r
-EAPI int \r
-elm_viewflipper_removeChildAt(int pos)\r
-{\r
-       if(_get_this()==NULL)\r
-               return ERROR_2;\r
-\r
-       if(elm_viewflipper_isValidPos(pos)==FALSE)\r
-               return ERROR_4;\r
-       \r
-       int i=0;\r
-       Eina_List *l;_set_layout_each_view(NULL, elm_viewflipper_getChildAt(0), elm_viewflipper_getChildAt(1));         \r
-      Evas_Object * it;\r
-\r
-       EINA_LIST_FOREACH(_get_this()->view_list, l, it)\r
-       {\r
-                 if (i == pos)\r
-                 {\r
-                     Evas_Object * child_layout = elm_viewflipper_getChildAt(pos);\r
-                    if(child_layout!=NULL)//defense code\r
-                          evas_object_hide(child_layout);\r
-                    _get_this()->view_list = eina_list_remove_list(_get_this()->view_list, l);\r
-                    _setView();         \r
-                    return SUCCESS;\r
-                 }\r
-                 i++;\r
-        }   \r
-        return ERROR_0;  \r
-}\r
-\r
-\r
-/**\r
-  * This function gets the index of  layout\r
-  * @param child_layout the item(layout)\r
-  * @return  index, ERROR_0,ERROR_1,ERROR_2\r
-  *\r
-  * @ingroup Viewflipper\r
-  */\r
-EAPI int \r
-elm_viewflipper_getPositionChild(Evas_Object * child_layout)\r
-{\r
-       if(_get_this()==NULL)\r
-               return ERROR_2;\r
-       \r
-       if(strncmp(elm_widget_style_get(child_layout),"layout",6)==0)\r
-               return ERROR_1;\r
-\r
-       int i=0;\r
-       Eina_List *l;\r
-        Evas_Object * it;\r
-\r
-       EINA_LIST_FOREACH(_get_this()->view_list, l, it)\r
-       {\r
-                 if (it == child_layout)\r
-                 {\r
-                    return i;\r
-                 }\r
-                 i++;\r
-        }   \r
-        return ERROR_0;  \r
-}\r
-\r
-/**\r
-  * This function gets the layout using index\r
-  * @param pos index of layout\r
-  * @return  NULL, layout object \r
-  *\r
-  * @ingroup Viewflipper\r
-  */\r
-EAPI Evas_Object * \r
-elm_viewflipper_getChildAt(int pos)//start 0\r
-{\r
-   if(_get_this()==NULL)\r
-               return NULL;\r
-\r
-   if(elm_viewflipper_isValidPos(pos)==FALSE)\r
-               return NULL;\r
-\r
-   int i=0;    \r
-   Eina_List *l;\r
-   Evas_Object *it;\r
-   EINA_LIST_FOREACH(_get_this()->view_list, l, it)\r
-   {\r
-         if (i== pos)\r
-         {\r
-              return it;\r
-         }\r
-         i++;\r
-   } \r
-   return NULL;\r
-}\r
-\r
-/**\r
-  * This function gets the count of layouts in a viewflipper\r
-  *\r
-  * @return  Count Number  , ERROR_2\r
-  *\r
-  * @ingroup Viewflipper\r
-  */\r
-EAPI int \r
-elm_viewflipper_getCountChild()\r
-{\r
-       if(_get_this()==NULL)\r
-               return ERROR_2;\r
-          \r
-       return eina_list_count(_get_this()->view_list);\r
-}\r
-\r
-\r
-/**\r
-  * This function slides to given index from current one\r
-  * @param pos index of layout\r
-  * @return  SUCCESS ,ERROR_4,ERROR_5\r
-  *\r
-  * @ingroup Viewflipper\r
-  */\r
-EAPI int \r
-elm_viewflipper_setDisplayedChild(int pos)\r
-{\r
-       if(elm_viewflipper_isValidPos(pos)==FALSE)\r
-               return ERROR_4;\r
-\r
-       if(_get_this()->selected_view==pos)\r
-               return ERROR_5;\r
-       \r
-       elm_viewflipper_stopAutoFlipping();\r
-\r
-       if(_get_this()->selected_view>pos)\r
-       {\r
-               elm_viewflipper_startAutoFlippingWithOption(DIR_LEFT,pos);\r
-       }\r
-       else\r
-       {\r
-               elm_viewflipper_startAutoFlippingWithOption(DIR_RIGHT,pos);\r
-       }\r
-       return SUCCESS;\r
-       \r
-}\r
-\r
-\r
-/**\r
-  * This function show the viewflipper\r
-  *\r
-  * @return  SUCCESS , ERROR_3\r
-  *\r
-  * @ingroup Viewflipper\r
-  */\r
-EAPI int \r
-elm_viewflipper_setNowView()\r
-{\r
-       return _setView();      \r
-}\r
-\r
-\r
-\r
-/**\r
-  * This function show the next layout\r
-  *\r
-  * @return  SUCCESS ,ERROR_5, ERROR_6\r
-  *\r
-  * @ingroup Viewflipper\r
-  */\r
-EAPI int \r
-elm_viewflipper_setNextView()\r
-{\r
-       if(_is_last_view()==TRUE)\r
-               return ERROR_5;\r
-\r
-       if(_get_this()->is_can_move==FALSE)\r
-               return ERROR_6;\r
-\r
-       _get_this()->selected_view = _get_this()->selected_view+1;\r
-       _get_this()->is_can_move=FALSE;\r
-       \r
-       edje_object_signal_emit(_get_this()->viewflipper, "moving_left_pos", "elm");\r
-       printf("elm_viewflipper_setNextView\n");\r
-       return SUCCESS;\r
-}\r
-\r
-\r
-\r
-\r
-/**\r
-  * This function show the previous layout\r
-  *\r
-  * @return  SUCCESS , ERROR_5, ERROR_6\r
-  *\r
-  * @ingroup Viewflipper\r
-  */\r
-EAPI int \r
-elm_viewflipper_setPreviousView()\r
-{\r
-       if(_is_first_view()==TRUE)\r
-               return ERROR_5;\r
-       \r
-       if(_get_this()->is_can_move==FALSE)\r
-               return ERROR_6;\r
-\r
-       _get_this()->selected_view = _get_this()->selected_view-1;\r
-       _get_this()->is_can_move=FALSE;\r
-       \r
-       edje_object_signal_emit(_get_this()->viewflipper, "moving_right_pos", "elm");   \r
-       printf("elm_viewflipper_setPreviousView\n");\r
-       return SUCCESS;\r
-}\r
-\r
-\r
-\r
-/**\r
-  * This function sets the value of sliding interval time\r
-  * @param milliseconds milliseconds(interval time)\r
-  * @return  SUCCESS , ERROR_7\r
-  *\r
-  * @ingroup Viewflipper\r
-  */\r
-EAPI int \r
-elm_viewflipper_setFlipInterval(int milliseconds) \r
-{\r
-       if(milliseconds<=0)\r
-               return ERROR_7;\r
-\r
-       _get_this()->time_sec=milliseconds;\r
-       return SUCCESS;\r
-}\r
-\r
-\r
-\r
-/**\r
-  * This function sets the option of showing buttons or not\r
-  * @param showbutton TRUE,FALSE\r
-  * @return  SUCCESS \r
-  *\r
-  * @ingroup Viewflipper\r
-  */\r
-EAPI int \r
-elm_viewflipper_setFlipbutton(int showbutton)\r
-{\r
-       if(showbutton==TRUE)\r
-       {\r
-               _get_this()->is_show_button=TRUE;\r
-               _setup_button_show_left_right();\r
-       }\r
-       else\r
-       {\r
-               _get_this()->is_show_button=FALSE;\r
-               edje_object_signal_emit(_get_this()->viewflipper, "button_hide", "elm");        \r
-       }\r
-       return SUCCESS;\r
-}\r
-\r
-\r
-EAPI int \r
-elm_viewflipper_startAutoFlippingWithOption(int drection,int pos)\r
-{      \r
-       if(_get_this()->time_sec==0)\r
-               return ERROR_7;\r
-\r
-       if(elm_viewflipper_isValidPos(pos)==FALSE)\r
-               return ERROR_4;\r
-       \r
-       if(elm_viewflipper_isAutoStart()==TRUE)\r
-               elm_viewflipper_stopAutoFlipping();\r
-\r
-       _get_this()->request_direction= drection;\r
-       _get_this()->request_pos = pos;\r
-\r
-       _get_this()->auto_timer=  ecore_timer_add(_get_this()->time_sec , _flipping_timer_cb, NULL);\r
-       _get_this()->is_auto_start=TRUE;\r
-       printf("elm_viewflipper_startAutoFlippingWithOption\n");\r
-          return SUCCESS;\r
-}\r
-\r
-/**\r
-  * This function  starts the auto sliding\r
-  *\r
-  * @return  ERROR_7 , SUCCESS\r
-  *\r
-  * @ingroup Viewflipper\r
-  */\r
-EAPI int \r
-elm_viewflipper_startAutoFlipping() \r
-{\r
-       if(_get_this()->time_sec==0)\r
-               return ERROR_7;\r
-       \r
-       if(elm_viewflipper_isAutoStart()==TRUE)\r
-               elm_viewflipper_stopAutoFlipping();\r
-\r
-       _get_this()->request_direction= DIR_RIGHT;\r
-       _get_this()->request_pos = EACH_LAST;\r
-\r
-       _get_this()->auto_timer=  ecore_timer_add(_get_this()->time_sec , _flipping_timer_cb, NULL);\r
-       _get_this()->is_auto_start=TRUE;\r
-       printf("elm_viewflipper_startAutoFlipping\n");\r
-       return SUCCESS;\r
-}\r
-\r
-/**\r
-  * This function steps the auto sliding.\r
-  *\r
-  * @return  ERROR_5 , SUCCESS\r
-  *\r
-  * @ingroup Viewflipper\r
-  */\r
-\r
-EAPI int \r
-elm_viewflipper_stopAutoFlipping()\r
-{      \r
-       if(elm_viewflipper_isAutoStart()==FALSE)\r
-               return ERROR_5;\r
-\r
-       if(_get_this()->auto_timer)//defense code\r
-               ecore_timer_del(_get_this()->auto_timer);\r
-       _get_this()->auto_timer=NULL;\r
-       _get_this()->is_auto_start=FALSE;       \r
-       _get_this()->request_direction= 0;\r
-       _get_this()->request_pos = 0;   \r
-        printf("elm_viewflipper_stopAutoFlipping\n");\r
-       return SUCCESS;\r
-}\r
-\r
-\r