Added files elm_gridbox.c and elm_softkey.c
authorRajeev Ranjan <rajeev.r@samsung.com>
Wed, 19 May 2010 14:29:06 +0000 (23:29 +0900)
committerRajeev Ranjan <rajeev.r@samsung.com>
Wed, 19 May 2010 14:29:06 +0000 (23:29 +0900)
src/lib/Elementary.h
src/lib/Elementary.h.in
src/lib/Makefile
src/lib/Makefile.am
src/lib/Makefile.in
src/lib/elm_gridbox.c [new file with mode: 0755]
src/lib/elm_softkey.c [new file with mode: 0755]

index 87fb185..bd142b9 100644 (file)
@@ -17,7 +17,8 @@
 #undef ELM_WINCE
 #define ELM_EDBUS
 #define ELM_EFREET
-#undef ELM_ETHUMB
+#define ELM_ETHUMB
+#define ELM_IMF
 #define ELM_ALLOCA_H
 #define ELM_LIBINTL_H
 
 # include <Ethumb_Client.h>
 #endif
 
+#ifdef ELM_IMF
+# include <Ecore_IMF.h>
+#endif
+
+
 #ifdef EAPI
 # undef EAPI
 #endif
@@ -329,6 +335,8 @@ extern "C" {
    EAPI void         elm_win_quickpanel_priority_minor_set(Evas_Object *obj, int priority);
    EAPI int          elm_win_quickpanel_priority_minor_get(const Evas_Object *obj);
    EAPI void         elm_win_quickpanel_zone_set(Evas_Object *obj, int zone);
+   EAPI void         elm_win_indicator_state_set(Evas_Object *obj, int show_state);
+   EAPI int          elm_win_indicator_state_get(Evas_Object *obj);
 
    /*...
     * ecore_x_icccm_hints_set -> accepts_focus (add to ecore_evas)
@@ -420,10 +428,19 @@ extern "C" {
    EAPI void         elm_box_unpack_all(Evas_Object *obj);
    /* smart callbacks called:
     */
+       typedef enum {
+          UIControlStateDefault,
+          UIControlStateHighlighted,
+          UIControlStateDisabled,
+          UIControlStateFocused,
+          UIControlStateReserved
+       }UIControlState;
 
    EAPI Evas_Object *elm_button_add(Evas_Object *parent);
    EAPI void         elm_button_label_set(Evas_Object *obj, const char *label);
+   EAPI void         elm_button_label_set_for_state(Evas_Object *obj, const char *label, UIControlState state);
    EAPI const char  *elm_button_label_get(const Evas_Object *obj);
+   EAPI const char  *elm_button_label_get_for_state(const Evas_Object *obj, UIControlState state);
    EAPI void         elm_button_icon_set(Evas_Object *obj, Evas_Object *icon);
    EAPI Evas_Object *elm_button_icon_get(const Evas_Object *obj);
    EAPI void         elm_button_autorepeat_set(Evas_Object *obj, Eina_Bool on);
@@ -506,6 +523,11 @@ extern "C" {
    EAPI Eina_Bool    elm_label_line_wrap_get(const Evas_Object *obj);
    EAPI void         elm_label_wrap_width_set(Evas_Object *obj, Evas_Coord w);
    EAPI Evas_Coord   elm_label_wrap_width_get(const Evas_Object *obj);
+   EAPI void         elm_label_fontsize_set(Evas_Object *obj, const int fontsize);
+   EAPI void         elm_label_text_color_set(Evas_Object *obj, unsigned int r, unsigned int g, unsigned int b, unsigned int a);
+   EAPI void         elm_label_text_align_set(Evas_Object *obj, char *alignmode);
+   EAPI void         elm_label_background_color_set(Evas_Object *obj, unsigned int r, unsigned int g, unsigned int b, unsigned int a);
+   EAPI void         elm_label_ellipsis_set(Evas_Object *obj, Eina_Bool ellipsis);
    /* available styles:
     * default
     * marker
@@ -733,6 +755,15 @@ extern "C" {
    EAPI void         elm_entry_item_provider_remove(Evas_Object *obj, Evas_Object *(*func) (void *data, Evas_Object *entry, const char *item), void *data);
    EAPI char        *elm_entry_markup_to_utf8(const char *s);
    EAPI char        *elm_entry_utf8_to_markup(const char *s);
+
+   EAPI void        elm_entry_autocapitalization_set(Evas_Object *obj, Eina_Bool on);
+   EAPI void        elm_entry_autoenable_returnkey_set(Evas_Object *obj, Eina_Bool on);
+#ifdef ELM_IMF
+   EAPI const Ecore_IMF_Context *elm_entry_imf_context_get(Evas_Object *obj);
+#else
+   EAPI void        *elm_entry_imf_context_get(Evas_Object *obj);
+#endif
+
    /* smart callbacks called:
     * "changed" - the text content changed
     * "selection,start" - the user started selecting text
@@ -1151,14 +1182,30 @@ extern "C" {
    EAPI void         elm_radio_value_set(Evas_Object *obj, int value);
    EAPI int          elm_radio_value_get(const Evas_Object *obj);
    EAPI void         elm_radio_value_pointer_set(Evas_Object *obj, int *valuep);
-
+   typedef struct _Elm_Segment_Item Elm_Segment_Item;
+   EAPI Evas_Object *elm_segment_control_add(Evas_Object *parent);
+   EAPI Elm_Segment_Item * elm_segment_control_add_segment(Evas_Object *obj, Evas_Object *icon, const char *label, Eina_Bool animate);
+   EAPI void            elm_segment_control_insert_segment_at(Evas_Object *obj, Evas_Object *icon, const char *label, unsigned int index, Eina_Bool animate);
+   EAPI Evas_Object *elm_segment_control_get_segment_at(Evas_Object *obj, unsigned int index);
+   EAPI void            elm_segment_control_delete_segment(Evas_Object *obj, Elm_Segment_Item *item, Eina_Bool animate);
+   EAPI void            elm_segment_control_delete_segment_at(Evas_Object *obj,  unsigned int index, Eina_Bool animate);
+   EAPI const char  *elm_segment_control_get_segment_label_at(Evas_Object *obj, unsigned int index);
+   EAPI Evas_Object *elm_segment_control_get_segment_icon_at(Evas_Object *obj, unsigned int index);
+   EAPI Elm_Segment_Item *elm_segment_control_selected_segment_get(const Evas_Object *obj, int *value);
+   EAPI int         elm_segment_control_get_segment_count(Evas_Object *obj);
+
+   EAPI Evas_Object *elm_page_control_add(Evas_Object *parent);
+   EAPI void           elm_page_control_page_count_set(Evas_Object *obj, unsigned int page_count);
+   EAPI        void            elm_page_control_page_id_set(Evas_Object *obj, unsigned int page_id);
+   EAPI unsigned int elm_page_control_page_id_get(Evas_Object *obj);
    EAPI Evas_Object *elm_pager_add(Evas_Object *parent);
    EAPI void         elm_pager_content_push(Evas_Object *obj, Evas_Object *content);
    EAPI void         elm_pager_content_pop(Evas_Object *obj);
    EAPI void         elm_pager_content_promote(Evas_Object *obj, Evas_Object *content);
    EAPI Evas_Object *elm_pager_content_bottom_get(const Evas_Object *obj);
    EAPI Evas_Object *elm_pager_content_top_get(const Evas_Object *obj);
-   /* available item styles:
+   EAPI void         elm_pager_animation_set(Evas_Object *obj, Eina_Bool animation);
+  /* available item styles:
     * default
     * fade
     * fade_translucide
@@ -1511,7 +1558,162 @@ extern "C" {
    EAPI void         elm_mapbuf_alpha_set(Evas_Object *obj, Eina_Bool alpha);
    EAPI Eina_Bool    elm_mapbuf_alpha_get(const Evas_Object *obj);
 
+   typedef struct _Picker_Item Elm_Picker_Item;
+   EAPI Evas_Object     *elm_picker_add(Evas_Object *parent);
+   EAPI void            elm_picker_next(Evas_Object *obj);
+   EAPI void            elm_picker_prev(Evas_Object *obj);
+   EAPI Elm_Picker_Item *elm_picker_item_append(Evas_Object *obj, const char *label, void (*func)(void *data, Evas_Object *obj, void *event_info), void *data);
+   EAPI Elm_Picker_Item *elm_picker_item_prepend(Evas_Object *obj, const char *label, void (*func)(void *data, Evas_Object *obj, void *event_info), void *data);
+   EAPI const Eina_List *elm_picker_items_get(Evas_Object *obj);
+   EAPI Elm_Picker_Item *elm_picker_first_item_get(Evas_Object *obj);
+   EAPI Elm_Picker_Item *elm_picker_last_item_get(Evas_Object *obj);
+   EAPI Elm_Picker_Item *elm_picker_selected_item_get(Evas_Object *obj);
+   EAPI void             elm_picker_item_selected_set(Elm_Picker_Item *item);
+   EAPI void             elm_picker_item_del(Elm_Picker_Item *item);
+   EAPI const char      *elm_picker_item_label_get(Elm_Picker_Item *item);
+   EAPI void             elm_picker_item_label_set(Elm_Picker_Item *item, const char *label);
+   EAPI Elm_Picker_Item *elm_picker_item_prev(Elm_Picker_Item *item);
+   EAPI Elm_Picker_Item *elm_picker_item_next(Elm_Picker_Item *item);
+   /* smart callback called:
+    * "changed" - when picker selected item is changed
+    * "overflowed" - when picker item is changed to first item from last item
+    * "underflowed" - when picker item is changed to last item from first item.
+    */
+   /* available styles:
+    * default
+    * no_button
+    * timepicker/ampm
+    */
+
+   typedef struct _Picker2_Item Elm_Picker2_Item;
+   EAPI Evas_Object     *elm_picker2_add(Evas_Object *parent);
+   EAPI void           elm_picker2_row_height_set(Evas_Object *obj, unsigned int row_height);
+   EAPI void            elm_picker2_next(Evas_Object *obj);
+   EAPI void            elm_picker2_prev(Evas_Object *obj);
+   EAPI Elm_Picker2_Item *elm_picker2_item_append(Evas_Object *obj, const char *label, void (*func)(void *data, Evas_Object *obj, void *event_info), void *data);
+   EAPI Elm_Picker2_Item *elm_picker2_item_prepend(Evas_Object *obj, const char *label, void (*func)(void *data, Evas_Object *obj, void *event_info), void *data);
+   EAPI const Eina_List *elm_picker2_items_get(Evas_Object *obj);
+   EAPI Elm_Picker2_Item *elm_picker2_first_item_get(Evas_Object *obj);
+   EAPI Elm_Picker2_Item *elm_picker2_last_item_get(Evas_Object *obj);
+   EAPI Elm_Picker2_Item *elm_picker2_selected_item_get(Evas_Object *obj);
+   EAPI void             elm_picker2_item_selected_set(Elm_Picker2_Item *item);
+   EAPI void             elm_picker2_item_del(Elm_Picker2_Item *item);
+   EAPI const char      *elm_picker2_item_label_get(Elm_Picker2_Item *item);
+   EAPI void             elm_picker2_item_label_set(Elm_Picker2_Item *item, const char *label);
+   EAPI Elm_Picker2_Item *elm_picker2_item_prev(Elm_Picker2_Item *item);
+   EAPI Elm_Picker2_Item *elm_picker2_item_next(Elm_Picker2_Item *item);
+   EAPI void             *elm_picker2_item_data_get(Elm_Picker2_Item *item);
+   EAPI void              elm_picker2_item_data_set(Elm_Picker2_Item *item, void *data);
+   EAPI Eina_Bool         elm_picker2_item_disabled_get(Elm_Picker2_Item *item);
+   EAPI void              elm_picker2_item_disabled_set(Elm_Picker2_Item *item, Eina_Bool disabled);
+    /* smart callback called:
+    * "selected" - when picker selected item is changed
+    * "overflowed" - when picker item is changed to first item from last item
+    * "underflowed" - when picker 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);
+   EAPI void         elm_timepicker_show_am_pm_set(Evas_Object *obj, Eina_Bool am_pm);
+   EAPI void         elm_timepicker_show_seconds_set(Evas_Object *obj, Eina_Bool seconds);
+   /* smart callback called:
+    * "changed" - when timepicker 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);
+   EAPI void         elm_datepicker_date_min_set(Evas_Object *obj, int year, int month, int day);  // Not implemented
+   EAPI void         elm_datepicker_date_min_get(Evas_Object *obj, int *year, int *month, int *day);
+   EAPI void         elm_datepicker_date_max_set(Evas_Object *obj, int year, int month, int day);  // Not implemented
+   EAPI void         elm_datepicker_date_max_get(Evas_Object *obj, int *year, int *month, int *day);
+   EAPI void         elm_datepicker_date_format_set(Evas_Object *obj, const char *fmt);
+   EAPI const char  *elm_datepicker_date_format_get(Evas_Object *obj);
+   /* smart callback called:
+    * "changed" - when datepicker selected item is changed
+    */
+   /* available styles:
+    * default
+    */
 
+   EAPI Evas_Object *elm_datepicker2_add(Evas_Object *parent);
+   EAPI void         elm_datepicker2_date_set(Evas_Object *obj, int year, int month, int day);
+   EAPI void         elm_datepicker2_date_get(Evas_Object *obj, int *year, int *month, int *day);
+   EAPI void         elm_datepicker2_date_min_set(Evas_Object *obj, int year, int month, int day);  // Not implemented
+   EAPI void         elm_datepicker2_date_min_get(Evas_Object *obj, int *year, int *month, int *day);
+   EAPI void         elm_datepicker2_date_max_set(Evas_Object *obj, int year, int month, int day);  // Not implemented
+   EAPI void         elm_datepicker2_date_max_get(Evas_Object *obj, int *year, int *month, int *day);
+   EAPI void         elm_datepicker2_date_format_set(Evas_Object *obj, const char *fmt);
+   EAPI const char  *elm_datepicker2_date_format_get(Evas_Object *obj);
+   /* smart callback called:
+    * "changed" - when datepicker selected item is changed
+    */
+   /* available styles:
+    * default
+    */
+    
+    /* titlebar */
+   EAPI Evas_Object *elm_titlebar_add(Evas_Object *parent);
+   EAPI void         elm_titlebar_label_set(Evas_Object *obj, const char *label);
+   EAPI const char  *elm_titlebar_label_get(Evas_Object *obj);
+   EAPI void         elm_titlebar_icon_set(Evas_Object *obj, Evas_Object *icon);
+   EAPI Evas_Object *elm_titlebar_icon_get(Evas_Object *obj);
+   EAPI void         elm_titlebar_end_set(Evas_Object *obj, Evas_Object *end);
+   EAPI Evas_Object *elm_titlebar_end_get(Evas_Object *obj);    \r
+       /* popup */
+       typedef enum _Elm_Popup_Response
+       {
+               ELM_POPUP_RESPONSE_NONE = -1,
+               ELM_POPUP_RESPONSE_TIMEOUT = -2,
+               ELM_POPUP_RESPONSE_OK = -3,
+               ELM_POPUP_RESPONSE_CANCEL = -4, 
+               ELM_POPUP_RESPONSE_CLOSE = -5
+\r
+       }Elm_Popup_Response;
+
+       typedef enum _Elm_Popup_Mode
+       {
+               ELM_POPUP_TYPE_NONE = 0,
+               ELM_POPUP_TYPE_ALERT = (1 << 0)
+               
+       }Elm_Popup_Mode;
+       typedef enum _Elm_Popup_Orient
+       {
+                ELM_POPUP_ORIENT_TOP,
+                ELM_POPUP_ORIENT_CENTER,
+                ELM_POPUP_ORIENT_BOTTOM,
+                ELM_POPUP_ORIENT_LEFT,
+                ELM_POPUP_ORIENT_RIGHT,
+                ELM_POPUP_ORIENT_TOP_LEFT,
+                ELM_POPUP_ORIENT_TOP_RIGHT,
+                ELM_POPUP_ORIENT_BOTTOM_LEFT,
+                ELM_POPUP_ORIENT_BOTTOM_RIGHT
+       }Elm_Popup_Orient;
+
+        /* smart callbacks called:
+    * "response" - when ever popup is closed, this signal is sent with appropriate response id.".
+    */
+
+       EAPI Evas_Object *elm_popup_add(Evas_Object *parent);
+       EAPI void elm_popup_desc_set(Evas_Object *obj, const char *text);
+       EAPI const char* elm_popup_desc_get(Evas_Object *obj);
+       EAPI void elm_popup_title_set(Evas_Object *obj, const char *text);
+       EAPI const char* elm_popup_title_get(Evas_Object *obj);
+       EAPI void elm_popup_content_set(Evas_Object *obj, Evas_Object *content);
+       EAPI Evas_Object* elm_popup_content_get(Evas_Object *obj);
+       EAPI void elm_popup_buttons_add(Evas_Object *obj,int no_of_buttons, char *first_button_text,  ...);
+       Evas_Object* elm_popup_add_with_buttons(Evas_Object *parent, char *title, char *desc_text,int no_of_buttons, char *first_button_text, ... );
+       EAPI void elm_popup_timeout_set(Evas_Object *popup, int timeout);
+       EAPI void elm_popup_set_mode(Evas_Object *popup, Elm_Popup_Mode mode);
+       EAPI void elm_popup_response(Evas_Object *popup, int  response_id);
+       EAPI void elm_popup_orient_set(Evas_Object *popup, Elm_Popup_Orient orient);
    /* Contextual Popup */
    typedef struct _Ctx_Popup_Item Elm_Ctxpopup_Item;
 
@@ -1667,8 +1869,6 @@ extern "C" {
    EAPI void elm_fx_transform_multiply( Elm_Fx_Matrix* m, Elm_Fx_Matrix* m1, Elm_Fx_Matrix* m2 );
    */
 
-
-
    /* NavigationBar */
    EAPI Evas_Object *elm_navigationbar_add(Evas_Object *parent);
    EAPI void elm_navigationbar_push(Evas_Object *obj, const char *title, Evas_Object *left_btn, Evas_Object *right_btn, Evas_Object *content, Eina_Bool animation);
@@ -1728,6 +1928,18 @@ extern "C" {
    EAPI Evas_Object *elm_searchbar_entry_get(Evas_Object *obj);
    EAPI void elm_searchbar_cancel_button_animation_set(Evas_Object *obj, Eina_Bool cancel_btn_ani_flag);
 
+   /* actionsheet */
+   typedef enum _Elm_Actionsheet_Button_Type {
+      ELM_ACTIONSHEET_BT_NORMAL = 0,
+      ELM_ACTIONSHEET_BT_CANCEL,
+      ELM_ACTIONSHEET_BT_DESTRUCTIVE
+   } Elm_Actionsheet_Button_Type;
+
+   EAPI Evas_Object *elm_actionsheet_add(Evas_Object *parent);
+   EAPI void elm_actionsheet_title_set(Evas_Object *obj, const char *title);
+   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;
    EAPI Evas_Object *elm_toolbar2_add(Evas_Object *parent);
@@ -1777,7 +1989,49 @@ extern "C" {
    EAPI Eina_Bool elm_editfield_left_icon_set(Evas_Object *obj, Evas_Object *icon);
    EAPI Evas_Object *elm_editfield_lett_icon_get(Evas_Object *obj);
    EAPI void elm_editfield_entry_single_line_set(Evas_Object *obj, Eina_Bool single_line);
+
+ /* softkey */
+   typedef enum {
+               ELM_SK_LEFT_BTN,
+               ELM_SK_RIGHT_BTN,
+   } Elm_Softkey_Type;
+
+   /* softkey */
+   typedef struct _Elm_Softkey_Item Elm_Softkey_Item;
+   EAPI Evas_Object *elm_softkey_add(Evas_Object *parent);
+   EAPI Elm_Softkey_Item *elm_softkey_button_add(Evas_Object *obj, Elm_Softkey_Type type, Evas_Object *icon, const char *label, void (*func)(void *data, Evas_Object *obj, void *event_info), const void *data);
+   EAPI void         elm_softkey_button_del(Evas_Object *obj, Elm_Softkey_Type type);
+   EAPI void         elm_softkey_button_show(Evas_Object *obj, Elm_Softkey_Type type);
+   EAPI void         elm_softkey_button_hide(Evas_Object *obj, Elm_Softkey_Type type);
+
+   EAPI Elm_Softkey_Item *elm_softkey_panel_item_add(Evas_Object *obj, Evas_Object *icon, const char *label, void (*func)(void *data, Evas_Object *obj, void *event_info), const void *data);
+   EAPI int          elm_softkey_panel_del(Evas_Object *obj);
+   EAPI int          elm_softkey_panel_close(Evas_Object *obj);
+   EAPI int          elm_softkey_panel_open(Evas_Object *obj);
+
+   EAPI void         elm_softkey_item_icon_set(Elm_Softkey_Item *item, Evas_Object *icon);
+   EAPI Evas_Object *elm_softkey_item_icon_get(Elm_Softkey_Item * item);
+   EAPI void         elm_softkey_item_label_set(Elm_Softkey_Item *item, const char *label);
+   EAPI const char  *elm_softkey_item_label_get(Elm_Softkey_Item * item);
+   EAPI Eina_Bool    elm_softkey_item_disabled_get(Elm_Softkey_Item *item);
+   EAPI void         elm_softkey_item_disabled_set(Elm_Softkey_Item *item, Eina_Bool disabled);
+   EAPI void         elm_softkey_item_callback_set(Elm_Softkey_Item* item, void (*func)(void *data, Evas_Object *obj, void *event_info), const void *data );
+   /* smart callback called: 
+    * "clicked" - the user clicked the button, event_info: Softkey item
+    * "press"   - the user press the button, event_info: Softkey item
+    * "panel,show" - when the panel is shown
+       * "panel,hide" - when the panel is hidden
+    */
        
+   /* gridbox */
+   EAPI Evas_Object *elm_gridbox_add(Evas_Object *parent);
+   EAPI void elm_gridbox_padding_set(Evas_Object *obj, Evas_Coord horizontal, Evas_Coord vertical);
+   EAPI void elm_gridbox_item_size_set(Evas_Object *obj, Evas_Coord h_itemsize, Evas_Coord v_itemsize);
+   EAPI void elm_gridbox_pack(Evas_Object *obj, Evas_Object *subobj);
+   EAPI Eina_Bool elm_gridbox_unpack(Evas_Object *obj, Evas_Object *subobj);
+   EAPI Eina_List *elm_gridbox_children_get(Evas_Object *obj);
+   EAPI void elm_gridbox_homogenous_padding_set(Evas_Object *obj, Eina_Bool homogenous);
+
 
 #ifdef __cplusplus
 }
index 2cd74c9..5880970 100755 (executable)
@@ -1989,7 +1989,49 @@ extern "C" {
    EAPI Eina_Bool elm_editfield_left_icon_set(Evas_Object *obj, Evas_Object *icon);
    EAPI Evas_Object *elm_editfield_lett_icon_get(Evas_Object *obj);
    EAPI void elm_editfield_entry_single_line_set(Evas_Object *obj, Eina_Bool single_line);
+
+ /* softkey */
+   typedef enum {
+               ELM_SK_LEFT_BTN,
+               ELM_SK_RIGHT_BTN,
+   } Elm_Softkey_Type;
+
+   /* softkey */
+   typedef struct _Elm_Softkey_Item Elm_Softkey_Item;
+   EAPI Evas_Object *elm_softkey_add(Evas_Object *parent);
+   EAPI Elm_Softkey_Item *elm_softkey_button_add(Evas_Object *obj, Elm_Softkey_Type type, Evas_Object *icon, const char *label, void (*func)(void *data, Evas_Object *obj, void *event_info), const void *data);
+   EAPI void         elm_softkey_button_del(Evas_Object *obj, Elm_Softkey_Type type);
+   EAPI void         elm_softkey_button_show(Evas_Object *obj, Elm_Softkey_Type type);
+   EAPI void         elm_softkey_button_hide(Evas_Object *obj, Elm_Softkey_Type type);
+
+   EAPI Elm_Softkey_Item *elm_softkey_panel_item_add(Evas_Object *obj, Evas_Object *icon, const char *label, void (*func)(void *data, Evas_Object *obj, void *event_info), const void *data);
+   EAPI int          elm_softkey_panel_del(Evas_Object *obj);
+   EAPI int          elm_softkey_panel_close(Evas_Object *obj);
+   EAPI int          elm_softkey_panel_open(Evas_Object *obj);
+
+   EAPI void         elm_softkey_item_icon_set(Elm_Softkey_Item *item, Evas_Object *icon);
+   EAPI Evas_Object *elm_softkey_item_icon_get(Elm_Softkey_Item * item);
+   EAPI void         elm_softkey_item_label_set(Elm_Softkey_Item *item, const char *label);
+   EAPI const char  *elm_softkey_item_label_get(Elm_Softkey_Item * item);
+   EAPI Eina_Bool    elm_softkey_item_disabled_get(Elm_Softkey_Item *item);
+   EAPI void         elm_softkey_item_disabled_set(Elm_Softkey_Item *item, Eina_Bool disabled);
+   EAPI void         elm_softkey_item_callback_set(Elm_Softkey_Item* item, void (*func)(void *data, Evas_Object *obj, void *event_info), const void *data );
+   /* smart callback called: 
+    * "clicked" - the user clicked the button, event_info: Softkey item
+    * "press"   - the user press the button, event_info: Softkey item
+    * "panel,show" - when the panel is shown
+       * "panel,hide" - when the panel is hidden
+    */
        
+   /* gridbox */
+   EAPI Evas_Object *elm_gridbox_add(Evas_Object *parent);
+   EAPI void elm_gridbox_padding_set(Evas_Object *obj, Evas_Coord horizontal, Evas_Coord vertical);
+   EAPI void elm_gridbox_item_size_set(Evas_Object *obj, Evas_Coord h_itemsize, Evas_Coord v_itemsize);
+   EAPI void elm_gridbox_pack(Evas_Object *obj, Evas_Object *subobj);
+   EAPI Eina_Bool elm_gridbox_unpack(Evas_Object *obj, Evas_Object *subobj);
+   EAPI Eina_List *elm_gridbox_children_get(Evas_Object *obj);
+   EAPI void elm_gridbox_homogenous_padding_set(Evas_Object *obj, Eina_Bool homogenous);
+
 
 #ifdef __cplusplus
 }
index 6f54063..008ecc9 100644 (file)
@@ -77,6 +77,8 @@ am_libelementary_la_OBJECTS = libelementary_la-elm_main.lo \
        libelementary_la-elm_carousel.lo \
        libelementary_la-elm_slider.lo libelementary_la-elm_genlist.lo \
        libelementary_la-elm_check.lo libelementary_la-elm_radio.lo \
+       libelementary_la-elm_segment_control.lo \
+       libelementary_la-elm_pagecontrol.lo \
        libelementary_la-elm_pager.lo \
        libelementary_la-elm_progressbar.lo \
        libelementary_la-elm_separator.lo \
@@ -86,8 +88,13 @@ am_libelementary_la_OBJECTS = libelementary_la-elm_main.lo \
        libelementary_la-elm_slideshow.lo libelementary_la-elm_menu.lo \
        libelementary_la-elm_panel.lo libelementary_la-elm_map.lo \
        libelementary_la-elm_flip.lo libelementary_la-elm_conform.lo \
-       libelementary_la-elm_mapbuf.lo libelementary_la-elm_thumb.lo \
-       libelementary_la-elm_config.lo \
+       libelementary_la-elm_mapbuf.lo libelementary_la-elm_picker.lo \
+       libelementary_la-elm_picker2.lo \
+       libelementary_la-elm_timepicker.lo \
+       libelementary_la-elm_datepicker.lo \
+       libelementary_la-elm_datepicker2.lo \
+       libelementary_la-elm_thumb.lo libelementary_la-elm_config.lo \
+       libelementary_la-elm_titlebar.lo libelementary_la-elm_popup.lo \
        libelementary_la-elm_diskcontroller.lo \
        libelementary_la-elm_tab.lo \
        libelementary_la-elm_navigationbar.lo \
@@ -97,6 +104,9 @@ am_libelementary_la_OBJECTS = libelementary_la-elm_main.lo \
        libelementary_la-elm_colorpicker.lo \
        libelementary_la-elm_colorpalette.lo \
        libelementary_la-elm_ctxpopup.lo \
+       libelementary_la-elm_actionsheet.lo \
+       libelementary_la-elm_gridbox.lo \
+       libelementary_la-elm_softkey.lo \
        libelementary_la-elc_anchorblock.lo \
        libelementary_la-elc_anchorview.lo \
        libelementary_la-elc_fileselector.lo \
@@ -129,14 +139,14 @@ HEADERS = $(include_HEADERS)
 ETAGS = etags
 CTAGS = ctags
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-ACLOCAL = ${SHELL} /home/hermet/slp2/EFL/slp2-efl-upgrade-tools/efl-git/elementary/missing --run aclocal-1.10
+ACLOCAL = ${SHELL} /home/rajeev/git_repo/efl_git/slp2-efl-upgrade-tools/efl-git/elementary/missing --run aclocal-1.10
 ALLOCA = 
-AMTAR = ${SHELL} /home/hermet/slp2/EFL/slp2-efl-upgrade-tools/efl-git/elementary/missing --run tar
+AMTAR = ${SHELL} /home/rajeev/git_repo/efl_git/slp2-efl-upgrade-tools/efl-git/elementary/missing --run tar
 AR = ar
 AS = as
-AUTOCONF = ${SHELL} /home/hermet/slp2/EFL/slp2-efl-upgrade-tools/efl-git/elementary/missing --run autoconf
-AUTOHEADER = ${SHELL} /home/hermet/slp2/EFL/slp2-efl-upgrade-tools/efl-git/elementary/missing --run autoheader
-AUTOMAKE = ${SHELL} /home/hermet/slp2/EFL/slp2-efl-upgrade-tools/efl-git/elementary/missing --run automake-1.10
+AUTOCONF = ${SHELL} /home/rajeev/git_repo/efl_git/slp2-efl-upgrade-tools/efl-git/elementary/missing --run autoconf
+AUTOHEADER = ${SHELL} /home/rajeev/git_repo/efl_git/slp2-efl-upgrade-tools/efl-git/elementary/missing --run autoheader
+AUTOMAKE = ${SHELL} /home/rajeev/git_repo/efl_git/slp2-efl-upgrade-tools/efl-git/elementary/missing --run automake-1.10
 AWK = gawk
 CC = cc
 CCDEPMODE = depmode=none
@@ -158,12 +168,14 @@ ELEMENTARY_EDBUS_CFLAGS = -I/usr/include/dbus-1.0 -I/usr/lib/dbus-1.0/include -I
 ELEMENTARY_EDBUS_LIBS = -ledbus -lehal  
 ELEMENTARY_EFREET_CFLAGS = -I/usr/include/efreet -I/usr/include/eina-0 -I/usr/include/eina-0/eina -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include  
 ELEMENTARY_EFREET_LIBS = -lefreet -lefreet_mime -lefreet_trash  
-ELEMENTARY_ETHUMB_CFLAGS = 
-ELEMENTARY_ETHUMB_LIBS = 
+ELEMENTARY_ETHUMB_CFLAGS = -I/usr/include/eina-0 -I/usr/include/eina-0/eina -I/usr/include/fribidi -I/usr/include/freetype2 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/dbus-1.0 -I/usr/lib/dbus-1.0/include  
+ELEMENTARY_ETHUMB_LIBS = -lethumb_client -lethumb -ledbus -leina -levas -lecore -lecore_evas -lecore_file -ledje  
 ELEMENTARY_EWEATHER_CFLAGS = 
 ELEMENTARY_EWEATHER_LIBS = 
 ELEMENTARY_FB_CFLAGS = -I/usr/include/eina-0 -I/usr/include/eina-0/eina -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include  
 ELEMENTARY_FB_LIBS = -lecore_fb  
+ELEMENTARY_IMF_CFLAGS = -I/usr/include/eina-0 -I/usr/include/eina-0/eina -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include  
+ELEMENTARY_IMF_LIBS = -lecore_imf  
 ELEMENTARY_LIBS = -leina -leet -levas -lecore -lecore_evas -lecore_file -ledje  
 ELEMENTARY_SDL_CFLAGS = 
 ELEMENTARY_SDL_LIBS = 
@@ -176,8 +188,9 @@ ELEMENTARY_X_LIBS = -lecore_x
 ELM_ALLOCA_H_DEF = #define
 ELM_EDBUS_DEF = #define
 ELM_EFREET_DEF = #define
-ELM_ETHUMB_DEF = #undef
+ELM_ETHUMB_DEF = #define
 ELM_EWEATHER_DEF = #undef
+ELM_IMF_DEF = #define
 ELM_LIBINTL_H_DEF = #define
 ELM_UNIX_DEF = #define
 ELM_WIN32_DEF = #undef
@@ -200,7 +213,7 @@ LIBTOOL = $(SHELL) $(top_builddir)/libtool
 LIPO = 
 LN_S = ln -s
 LTLIBOBJS = 
-MAKEINFO = ${SHELL} /home/hermet/slp2/EFL/slp2-efl-upgrade-tools/efl-git/elementary/missing --run makeinfo
+MAKEINFO = ${SHELL} /home/rajeev/git_repo/efl_git/slp2-efl-upgrade-tools/efl-git/elementary/missing --run makeinfo
 MKDIR_P = /scratchbox/tools/bin/mkdir -p
 MODULE_ARCH = linux-gnu-i686-ver-pre-svn-05
 NM = /scratchbox/compilers/bin/nm -B
@@ -223,10 +236,10 @@ SET_MAKE =
 SHELL = /bin/sh
 STRIP = strip
 VERSION = 0.6.0.063
-abs_builddir = /home/hermet/slp2/EFL/slp2-efl-upgrade-tools/efl-git/elementary/src/lib
-abs_srcdir = /home/hermet/slp2/EFL/slp2-efl-upgrade-tools/efl-git/elementary/src/lib
-abs_top_builddir = /home/hermet/slp2/EFL/slp2-efl-upgrade-tools/efl-git/elementary
-abs_top_srcdir = /home/hermet/slp2/EFL/slp2-efl-upgrade-tools/efl-git/elementary
+abs_builddir = /home/rajeev/git_repo/efl_git/slp2-efl-upgrade-tools/efl-git/elementary/src/lib
+abs_srcdir = /home/rajeev/git_repo/efl_git/slp2-efl-upgrade-tools/efl-git/elementary/src/lib
+abs_top_builddir = /home/rajeev/git_repo/efl_git/slp2-efl-upgrade-tools/efl-git/elementary
+abs_top_srcdir = /home/rajeev/git_repo/efl_git/slp2-efl-upgrade-tools/efl-git/elementary
 ac_ct_CC = cc
 ac_ct_DUMPBIN = 
 am__include = include
@@ -259,7 +272,7 @@ host_vendor = pc
 htmldir = ${docdir}
 includedir = ${prefix}/include
 infodir = ${prefix}/share/info
-install_sh = $(SHELL) /home/hermet/slp2/EFL/slp2-efl-upgrade-tools/efl-git/elementary/install-sh
+install_sh = $(SHELL) /home/rajeev/git_repo/efl_git/slp2-efl-upgrade-tools/efl-git/elementary/install-sh
 libdir = ${exec_prefix}/lib
 libexecdir = ${prefix}/lib/elementary
 localedir = ${datarootdir}/locale
@@ -276,7 +289,7 @@ prefix = /usr
 program_transform_name = s,x,x,
 psdir = ${docdir}
 release_info = -release ver-pre-svn-05
-requirement_elm = efreet efreet-mime efreet-trash ehal edbus ecore-fb ecore-x edje ecore-file ecore-evas ecore evas eet eina-0 
+requirement_elm = ecore-imf ethumb efreet efreet-mime efreet-trash ehal edbus ecore-fb ecore-x edje ecore-file ecore-evas ecore evas eet eina-0 
 sbindir = ${exec_prefix}/sbin
 sharedstatedir = ${prefix}/com
 srcdir = .
@@ -294,8 +307,8 @@ AM_CPPFLAGS = -I. -I$(top_builddir) -I$(top_srcdir) \
        -I/usr/include/eina-0 -I/usr/include/eina-0/eina -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include   -I/usr/include/eina-0 -I/usr/include/eina-0/eina -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include   \
          \
         -I/usr/include/dbus-1.0 -I/usr/lib/dbus-1.0/include -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/eina-0 -I/usr/include/eina-0/eina   \
-       -I/usr/include/efreet -I/usr/include/eina-0 -I/usr/include/eina-0/eina -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include    \
-       $(am__append_1)
+       -I/usr/include/efreet -I/usr/include/eina-0 -I/usr/include/eina-0/eina -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include   -I/usr/include/eina-0 -I/usr/include/eina-0/eina -I/usr/include/fribidi -I/usr/include/freetype2 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/dbus-1.0 -I/usr/lib/dbus-1.0/include   \
+       -I/usr/include/eina-0 -I/usr/include/eina-0/eina -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include   $(am__append_1)
 lib_LTLIBRARIES = libelementary.la
 include_HEADERS = Elementary.h
 libelementary_la_SOURCES = \
@@ -332,6 +345,8 @@ elm_slider.c \
 elm_genlist.c \
 elm_check.c \
 elm_radio.c \
+elm_segment_control.c \
+elm_pagecontrol.c \
 elm_pager.c \
 elm_progressbar.c \
 elm_separator.c \
@@ -346,8 +361,15 @@ elm_map.c \
 elm_flip.c \
 elm_conform.c \
 elm_mapbuf.c \
+elm_picker.c \
+elm_picker2.c \
+elm_timepicker.c \
+elm_datepicker.c \
+elm_datepicker2.c \
 elm_thumb.c \
 elm_config.c \
+elm_titlebar.c \
+elm_popup.c \
 elm_diskcontroller.c \
 elm_tab.c \
 elm_navigationbar.c \
@@ -358,6 +380,9 @@ elm_editfield.c \
 elm_colorpicker.c \
 elm_colorpalette.c \
 elm_ctxpopup.c \
+elm_actionsheet.c \
+elm_gridbox.c \
+elm_softkey.c \
 \
 elc_anchorblock.c \
 elc_anchorview.c \
@@ -377,7 +402,7 @@ els_icon.c \
 els_icon.h
 
 libelementary_la_CFLAGS = 
-libelementary_la_LIBADD = -lm -ldl -leina -leet -levas -lecore -lecore_evas -lecore_file -ledje   -lecore_x   -lecore_fb      -ledbus -lehal   -lefreet -lefreet_mime -lefreet_trash   
+libelementary_la_LIBADD = -lm -ldl -leina -leet -levas -lecore -lecore_evas -lecore_file -ledje   -lecore_x   -lecore_fb      -ledbus -lehal   -lefreet -lefreet_mime -lefreet_trash   -lethumb_client -lethumb -ledbus -leina -levas -lecore -lecore_evas -lecore_file -ledje   -lecore_imf  
 libelementary_la_LDFLAGS = -no-undefined  -version-info 6:0:6 -release ver-pre-svn-05
 all: all-am
 
@@ -457,6 +482,7 @@ distclean-compile:
 #include ./$(DEPDIR)/libelementary_la-elc_hoversel.Plo
 #include ./$(DEPDIR)/libelementary_la-elc_notepad.Plo
 #include ./$(DEPDIR)/libelementary_la-elc_scrolled_entry.Plo
+#include ./$(DEPDIR)/libelementary_la-elm_actionsheet.Plo
 #include ./$(DEPDIR)/libelementary_la-elm_animator.Plo
 #include ./$(DEPDIR)/libelementary_la-elm_bg.Plo
 #include ./$(DEPDIR)/libelementary_la-elm_box.Plo
@@ -470,12 +496,15 @@ distclean-compile:
 #include ./$(DEPDIR)/libelementary_la-elm_config.Plo
 #include ./$(DEPDIR)/libelementary_la-elm_conform.Plo
 #include ./$(DEPDIR)/libelementary_la-elm_ctxpopup.Plo
+#include ./$(DEPDIR)/libelementary_la-elm_datepicker.Plo
+#include ./$(DEPDIR)/libelementary_la-elm_datepicker2.Plo
 #include ./$(DEPDIR)/libelementary_la-elm_diskcontroller.Plo
 #include ./$(DEPDIR)/libelementary_la-elm_editfield.Plo
 #include ./$(DEPDIR)/libelementary_la-elm_entry.Plo
 #include ./$(DEPDIR)/libelementary_la-elm_flip.Plo
 #include ./$(DEPDIR)/libelementary_la-elm_frame.Plo
 #include ./$(DEPDIR)/libelementary_la-elm_genlist.Plo
+#include ./$(DEPDIR)/libelementary_la-elm_gridbox.Plo
 #include ./$(DEPDIR)/libelementary_la-elm_hover.Plo
 #include ./$(DEPDIR)/libelementary_la-elm_icon.Plo
 #include ./$(DEPDIR)/libelementary_la-elm_image.Plo
@@ -490,24 +519,32 @@ distclean-compile:
 #include ./$(DEPDIR)/libelementary_la-elm_module.Plo
 #include ./$(DEPDIR)/libelementary_la-elm_navigationbar.Plo
 #include ./$(DEPDIR)/libelementary_la-elm_notify.Plo
+#include ./$(DEPDIR)/libelementary_la-elm_pagecontrol.Plo
 #include ./$(DEPDIR)/libelementary_la-elm_pager.Plo
 #include ./$(DEPDIR)/libelementary_la-elm_panel.Plo
 #include ./$(DEPDIR)/libelementary_la-elm_photo.Plo
 #include ./$(DEPDIR)/libelementary_la-elm_photocam.Plo
+#include ./$(DEPDIR)/libelementary_la-elm_picker.Plo
+#include ./$(DEPDIR)/libelementary_la-elm_picker2.Plo
+#include ./$(DEPDIR)/libelementary_la-elm_popup.Plo
 #include ./$(DEPDIR)/libelementary_la-elm_progressbar.Plo
 #include ./$(DEPDIR)/libelementary_la-elm_radio.Plo
 #include ./$(DEPDIR)/libelementary_la-elm_scrolled_grid.Plo
 #include ./$(DEPDIR)/libelementary_la-elm_scroller.Plo
 #include ./$(DEPDIR)/libelementary_la-elm_searchbar.Plo
+#include ./$(DEPDIR)/libelementary_la-elm_segment_control.Plo
 #include ./$(DEPDIR)/libelementary_la-elm_separator.Plo
 #include ./$(DEPDIR)/libelementary_la-elm_slider.Plo
 #include ./$(DEPDIR)/libelementary_la-elm_slideshow.Plo
+#include ./$(DEPDIR)/libelementary_la-elm_softkey.Plo
 #include ./$(DEPDIR)/libelementary_la-elm_spinner.Plo
 #include ./$(DEPDIR)/libelementary_la-elm_tab.Plo
 #include ./$(DEPDIR)/libelementary_la-elm_tabbar.Plo
 #include ./$(DEPDIR)/libelementary_la-elm_table.Plo
 #include ./$(DEPDIR)/libelementary_la-elm_theme.Plo
 #include ./$(DEPDIR)/libelementary_la-elm_thumb.Plo
+#include ./$(DEPDIR)/libelementary_la-elm_timepicker.Plo
+#include ./$(DEPDIR)/libelementary_la-elm_titlebar.Plo
 #include ./$(DEPDIR)/libelementary_la-elm_toggle.Plo
 #include ./$(DEPDIR)/libelementary_la-elm_toolbar.Plo
 #include ./$(DEPDIR)/libelementary_la-elm_toolbar2.Plo
@@ -757,6 +794,20 @@ libelementary_la-elm_radio.lo: elm_radio.c
 #      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) 
        $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libelementary_la_CFLAGS) $(CFLAGS) -c -o libelementary_la-elm_radio.lo `test -f 'elm_radio.c' || echo '$(srcdir)/'`elm_radio.c
 
+libelementary_la-elm_segment_control.lo: elm_segment_control.c
+#      $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libelementary_la_CFLAGS) $(CFLAGS) -MT libelementary_la-elm_segment_control.lo -MD -MP -MF $(DEPDIR)/libelementary_la-elm_segment_control.Tpo -c -o libelementary_la-elm_segment_control.lo `test -f 'elm_segment_control.c' || echo '$(srcdir)/'`elm_segment_control.c
+#      mv -f $(DEPDIR)/libelementary_la-elm_segment_control.Tpo $(DEPDIR)/libelementary_la-elm_segment_control.Plo
+#      source='elm_segment_control.c' object='libelementary_la-elm_segment_control.lo' libtool=yes 
+#      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) 
+       $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libelementary_la_CFLAGS) $(CFLAGS) -c -o libelementary_la-elm_segment_control.lo `test -f 'elm_segment_control.c' || echo '$(srcdir)/'`elm_segment_control.c
+
+libelementary_la-elm_pagecontrol.lo: elm_pagecontrol.c
+#      $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libelementary_la_CFLAGS) $(CFLAGS) -MT libelementary_la-elm_pagecontrol.lo -MD -MP -MF $(DEPDIR)/libelementary_la-elm_pagecontrol.Tpo -c -o libelementary_la-elm_pagecontrol.lo `test -f 'elm_pagecontrol.c' || echo '$(srcdir)/'`elm_pagecontrol.c
+#      mv -f $(DEPDIR)/libelementary_la-elm_pagecontrol.Tpo $(DEPDIR)/libelementary_la-elm_pagecontrol.Plo
+#      source='elm_pagecontrol.c' object='libelementary_la-elm_pagecontrol.lo' libtool=yes 
+#      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) 
+       $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libelementary_la_CFLAGS) $(CFLAGS) -c -o libelementary_la-elm_pagecontrol.lo `test -f 'elm_pagecontrol.c' || echo '$(srcdir)/'`elm_pagecontrol.c
+
 libelementary_la-elm_pager.lo: elm_pager.c
 #      $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libelementary_la_CFLAGS) $(CFLAGS) -MT libelementary_la-elm_pager.lo -MD -MP -MF $(DEPDIR)/libelementary_la-elm_pager.Tpo -c -o libelementary_la-elm_pager.lo `test -f 'elm_pager.c' || echo '$(srcdir)/'`elm_pager.c
 #      mv -f $(DEPDIR)/libelementary_la-elm_pager.Tpo $(DEPDIR)/libelementary_la-elm_pager.Plo
@@ -855,6 +906,41 @@ libelementary_la-elm_mapbuf.lo: elm_mapbuf.c
 #      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) 
        $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libelementary_la_CFLAGS) $(CFLAGS) -c -o libelementary_la-elm_mapbuf.lo `test -f 'elm_mapbuf.c' || echo '$(srcdir)/'`elm_mapbuf.c
 
+libelementary_la-elm_picker.lo: elm_picker.c
+#      $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libelementary_la_CFLAGS) $(CFLAGS) -MT libelementary_la-elm_picker.lo -MD -MP -MF $(DEPDIR)/libelementary_la-elm_picker.Tpo -c -o libelementary_la-elm_picker.lo `test -f 'elm_picker.c' || echo '$(srcdir)/'`elm_picker.c
+#      mv -f $(DEPDIR)/libelementary_la-elm_picker.Tpo $(DEPDIR)/libelementary_la-elm_picker.Plo
+#      source='elm_picker.c' object='libelementary_la-elm_picker.lo' libtool=yes 
+#      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) 
+       $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libelementary_la_CFLAGS) $(CFLAGS) -c -o libelementary_la-elm_picker.lo `test -f 'elm_picker.c' || echo '$(srcdir)/'`elm_picker.c
+
+libelementary_la-elm_picker2.lo: elm_picker2.c
+#      $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libelementary_la_CFLAGS) $(CFLAGS) -MT libelementary_la-elm_picker2.lo -MD -MP -MF $(DEPDIR)/libelementary_la-elm_picker2.Tpo -c -o libelementary_la-elm_picker2.lo `test -f 'elm_picker2.c' || echo '$(srcdir)/'`elm_picker2.c
+#      mv -f $(DEPDIR)/libelementary_la-elm_picker2.Tpo $(DEPDIR)/libelementary_la-elm_picker2.Plo
+#      source='elm_picker2.c' object='libelementary_la-elm_picker2.lo' libtool=yes 
+#      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) 
+       $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libelementary_la_CFLAGS) $(CFLAGS) -c -o libelementary_la-elm_picker2.lo `test -f 'elm_picker2.c' || echo '$(srcdir)/'`elm_picker2.c
+
+libelementary_la-elm_timepicker.lo: elm_timepicker.c
+#      $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libelementary_la_CFLAGS) $(CFLAGS) -MT libelementary_la-elm_timepicker.lo -MD -MP -MF $(DEPDIR)/libelementary_la-elm_timepicker.Tpo -c -o libelementary_la-elm_timepicker.lo `test -f 'elm_timepicker.c' || echo '$(srcdir)/'`elm_timepicker.c
+#      mv -f $(DEPDIR)/libelementary_la-elm_timepicker.Tpo $(DEPDIR)/libelementary_la-elm_timepicker.Plo
+#      source='elm_timepicker.c' object='libelementary_la-elm_timepicker.lo' libtool=yes 
+#      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) 
+       $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libelementary_la_CFLAGS) $(CFLAGS) -c -o libelementary_la-elm_timepicker.lo `test -f 'elm_timepicker.c' || echo '$(srcdir)/'`elm_timepicker.c
+
+libelementary_la-elm_datepicker.lo: elm_datepicker.c
+#      $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libelementary_la_CFLAGS) $(CFLAGS) -MT libelementary_la-elm_datepicker.lo -MD -MP -MF $(DEPDIR)/libelementary_la-elm_datepicker.Tpo -c -o libelementary_la-elm_datepicker.lo `test -f 'elm_datepicker.c' || echo '$(srcdir)/'`elm_datepicker.c
+#      mv -f $(DEPDIR)/libelementary_la-elm_datepicker.Tpo $(DEPDIR)/libelementary_la-elm_datepicker.Plo
+#      source='elm_datepicker.c' object='libelementary_la-elm_datepicker.lo' libtool=yes 
+#      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) 
+       $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libelementary_la_CFLAGS) $(CFLAGS) -c -o libelementary_la-elm_datepicker.lo `test -f 'elm_datepicker.c' || echo '$(srcdir)/'`elm_datepicker.c
+
+libelementary_la-elm_datepicker2.lo: elm_datepicker2.c
+#      $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libelementary_la_CFLAGS) $(CFLAGS) -MT libelementary_la-elm_datepicker2.lo -MD -MP -MF $(DEPDIR)/libelementary_la-elm_datepicker2.Tpo -c -o libelementary_la-elm_datepicker2.lo `test -f 'elm_datepicker2.c' || echo '$(srcdir)/'`elm_datepicker2.c
+#      mv -f $(DEPDIR)/libelementary_la-elm_datepicker2.Tpo $(DEPDIR)/libelementary_la-elm_datepicker2.Plo
+#      source='elm_datepicker2.c' object='libelementary_la-elm_datepicker2.lo' libtool=yes 
+#      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) 
+       $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libelementary_la_CFLAGS) $(CFLAGS) -c -o libelementary_la-elm_datepicker2.lo `test -f 'elm_datepicker2.c' || echo '$(srcdir)/'`elm_datepicker2.c
+
 libelementary_la-elm_thumb.lo: elm_thumb.c
 #      $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libelementary_la_CFLAGS) $(CFLAGS) -MT libelementary_la-elm_thumb.lo -MD -MP -MF $(DEPDIR)/libelementary_la-elm_thumb.Tpo -c -o libelementary_la-elm_thumb.lo `test -f 'elm_thumb.c' || echo '$(srcdir)/'`elm_thumb.c
 #      mv -f $(DEPDIR)/libelementary_la-elm_thumb.Tpo $(DEPDIR)/libelementary_la-elm_thumb.Plo
@@ -869,6 +955,20 @@ libelementary_la-elm_config.lo: elm_config.c
 #      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) 
        $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libelementary_la_CFLAGS) $(CFLAGS) -c -o libelementary_la-elm_config.lo `test -f 'elm_config.c' || echo '$(srcdir)/'`elm_config.c
 
+libelementary_la-elm_titlebar.lo: elm_titlebar.c
+#      $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libelementary_la_CFLAGS) $(CFLAGS) -MT libelementary_la-elm_titlebar.lo -MD -MP -MF $(DEPDIR)/libelementary_la-elm_titlebar.Tpo -c -o libelementary_la-elm_titlebar.lo `test -f 'elm_titlebar.c' || echo '$(srcdir)/'`elm_titlebar.c
+#      mv -f $(DEPDIR)/libelementary_la-elm_titlebar.Tpo $(DEPDIR)/libelementary_la-elm_titlebar.Plo
+#      source='elm_titlebar.c' object='libelementary_la-elm_titlebar.lo' libtool=yes 
+#      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) 
+       $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libelementary_la_CFLAGS) $(CFLAGS) -c -o libelementary_la-elm_titlebar.lo `test -f 'elm_titlebar.c' || echo '$(srcdir)/'`elm_titlebar.c
+
+libelementary_la-elm_popup.lo: elm_popup.c
+#      $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libelementary_la_CFLAGS) $(CFLAGS) -MT libelementary_la-elm_popup.lo -MD -MP -MF $(DEPDIR)/libelementary_la-elm_popup.Tpo -c -o libelementary_la-elm_popup.lo `test -f 'elm_popup.c' || echo '$(srcdir)/'`elm_popup.c
+#      mv -f $(DEPDIR)/libelementary_la-elm_popup.Tpo $(DEPDIR)/libelementary_la-elm_popup.Plo
+#      source='elm_popup.c' object='libelementary_la-elm_popup.lo' libtool=yes 
+#      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) 
+       $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libelementary_la_CFLAGS) $(CFLAGS) -c -o libelementary_la-elm_popup.lo `test -f 'elm_popup.c' || echo '$(srcdir)/'`elm_popup.c
+
 libelementary_la-elm_diskcontroller.lo: elm_diskcontroller.c
 #      $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libelementary_la_CFLAGS) $(CFLAGS) -MT libelementary_la-elm_diskcontroller.lo -MD -MP -MF $(DEPDIR)/libelementary_la-elm_diskcontroller.Tpo -c -o libelementary_la-elm_diskcontroller.lo `test -f 'elm_diskcontroller.c' || echo '$(srcdir)/'`elm_diskcontroller.c
 #      mv -f $(DEPDIR)/libelementary_la-elm_diskcontroller.Tpo $(DEPDIR)/libelementary_la-elm_diskcontroller.Plo
@@ -939,6 +1039,27 @@ libelementary_la-elm_ctxpopup.lo: elm_ctxpopup.c
 #      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) 
        $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libelementary_la_CFLAGS) $(CFLAGS) -c -o libelementary_la-elm_ctxpopup.lo `test -f 'elm_ctxpopup.c' || echo '$(srcdir)/'`elm_ctxpopup.c
 
+libelementary_la-elm_actionsheet.lo: elm_actionsheet.c
+#      $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libelementary_la_CFLAGS) $(CFLAGS) -MT libelementary_la-elm_actionsheet.lo -MD -MP -MF $(DEPDIR)/libelementary_la-elm_actionsheet.Tpo -c -o libelementary_la-elm_actionsheet.lo `test -f 'elm_actionsheet.c' || echo '$(srcdir)/'`elm_actionsheet.c
+#      mv -f $(DEPDIR)/libelementary_la-elm_actionsheet.Tpo $(DEPDIR)/libelementary_la-elm_actionsheet.Plo
+#      source='elm_actionsheet.c' object='libelementary_la-elm_actionsheet.lo' libtool=yes 
+#      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) 
+       $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libelementary_la_CFLAGS) $(CFLAGS) -c -o libelementary_la-elm_actionsheet.lo `test -f 'elm_actionsheet.c' || echo '$(srcdir)/'`elm_actionsheet.c
+
+libelementary_la-elm_gridbox.lo: elm_gridbox.c
+#      $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libelementary_la_CFLAGS) $(CFLAGS) -MT libelementary_la-elm_gridbox.lo -MD -MP -MF $(DEPDIR)/libelementary_la-elm_gridbox.Tpo -c -o libelementary_la-elm_gridbox.lo `test -f 'elm_gridbox.c' || echo '$(srcdir)/'`elm_gridbox.c
+#      mv -f $(DEPDIR)/libelementary_la-elm_gridbox.Tpo $(DEPDIR)/libelementary_la-elm_gridbox.Plo
+#      source='elm_gridbox.c' object='libelementary_la-elm_gridbox.lo' libtool=yes 
+#      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) 
+       $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libelementary_la_CFLAGS) $(CFLAGS) -c -o libelementary_la-elm_gridbox.lo `test -f 'elm_gridbox.c' || echo '$(srcdir)/'`elm_gridbox.c
+
+libelementary_la-elm_softkey.lo: elm_softkey.c
+#      $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libelementary_la_CFLAGS) $(CFLAGS) -MT libelementary_la-elm_softkey.lo -MD -MP -MF $(DEPDIR)/libelementary_la-elm_softkey.Tpo -c -o libelementary_la-elm_softkey.lo `test -f 'elm_softkey.c' || echo '$(srcdir)/'`elm_softkey.c
+#      mv -f $(DEPDIR)/libelementary_la-elm_softkey.Tpo $(DEPDIR)/libelementary_la-elm_softkey.Plo
+#      source='elm_softkey.c' object='libelementary_la-elm_softkey.lo' libtool=yes 
+#      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) 
+       $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libelementary_la_CFLAGS) $(CFLAGS) -c -o libelementary_la-elm_softkey.lo `test -f 'elm_softkey.c' || echo '$(srcdir)/'`elm_softkey.c
+
 libelementary_la-elc_anchorblock.lo: elc_anchorblock.c
 #      $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libelementary_la_CFLAGS) $(CFLAGS) -MT libelementary_la-elc_anchorblock.lo -MD -MP -MF $(DEPDIR)/libelementary_la-elc_anchorblock.Tpo -c -o libelementary_la-elc_anchorblock.lo `test -f 'elc_anchorblock.c' || echo '$(srcdir)/'`elc_anchorblock.c
 #      mv -f $(DEPDIR)/libelementary_la-elc_anchorblock.Tpo $(DEPDIR)/libelementary_la-elc_anchorblock.Plo
index 6f65744..0775ee6 100755 (executable)
@@ -98,6 +98,8 @@ elm_colorpicker.c \
 elm_colorpalette.c \
 elm_ctxpopup.c \
 elm_actionsheet.c \
+elm_gridbox.c \
+elm_softkey.c \
 \
 elc_anchorblock.c \
 elc_anchorview.c \
index b53912e..d44506c 100644 (file)
@@ -77,6 +77,8 @@ am_libelementary_la_OBJECTS = libelementary_la-elm_main.lo \
        libelementary_la-elm_carousel.lo \
        libelementary_la-elm_slider.lo libelementary_la-elm_genlist.lo \
        libelementary_la-elm_check.lo libelementary_la-elm_radio.lo \
+       libelementary_la-elm_segment_control.lo \
+       libelementary_la-elm_pagecontrol.lo \
        libelementary_la-elm_pager.lo \
        libelementary_la-elm_progressbar.lo \
        libelementary_la-elm_separator.lo \
@@ -86,8 +88,13 @@ am_libelementary_la_OBJECTS = libelementary_la-elm_main.lo \
        libelementary_la-elm_slideshow.lo libelementary_la-elm_menu.lo \
        libelementary_la-elm_panel.lo libelementary_la-elm_map.lo \
        libelementary_la-elm_flip.lo libelementary_la-elm_conform.lo \
-       libelementary_la-elm_mapbuf.lo libelementary_la-elm_thumb.lo \
-       libelementary_la-elm_config.lo \
+       libelementary_la-elm_mapbuf.lo libelementary_la-elm_picker.lo \
+       libelementary_la-elm_picker2.lo \
+       libelementary_la-elm_timepicker.lo \
+       libelementary_la-elm_datepicker.lo \
+       libelementary_la-elm_datepicker2.lo \
+       libelementary_la-elm_thumb.lo libelementary_la-elm_config.lo \
+       libelementary_la-elm_titlebar.lo libelementary_la-elm_popup.lo \
        libelementary_la-elm_diskcontroller.lo \
        libelementary_la-elm_tab.lo \
        libelementary_la-elm_navigationbar.lo \
@@ -97,6 +104,9 @@ am_libelementary_la_OBJECTS = libelementary_la-elm_main.lo \
        libelementary_la-elm_colorpicker.lo \
        libelementary_la-elm_colorpalette.lo \
        libelementary_la-elm_ctxpopup.lo \
+       libelementary_la-elm_actionsheet.lo \
+       libelementary_la-elm_gridbox.lo \
+       libelementary_la-elm_softkey.lo \
        libelementary_la-elc_anchorblock.lo \
        libelementary_la-elc_anchorview.lo \
        libelementary_la-elc_fileselector.lo \
@@ -164,6 +174,8 @@ ELEMENTARY_EWEATHER_CFLAGS = @ELEMENTARY_EWEATHER_CFLAGS@
 ELEMENTARY_EWEATHER_LIBS = @ELEMENTARY_EWEATHER_LIBS@
 ELEMENTARY_FB_CFLAGS = @ELEMENTARY_FB_CFLAGS@
 ELEMENTARY_FB_LIBS = @ELEMENTARY_FB_LIBS@
+ELEMENTARY_IMF_CFLAGS = @ELEMENTARY_IMF_CFLAGS@
+ELEMENTARY_IMF_LIBS = @ELEMENTARY_IMF_LIBS@
 ELEMENTARY_LIBS = @ELEMENTARY_LIBS@
 ELEMENTARY_SDL_CFLAGS = @ELEMENTARY_SDL_CFLAGS@
 ELEMENTARY_SDL_LIBS = @ELEMENTARY_SDL_LIBS@
@@ -178,6 +190,7 @@ ELM_EDBUS_DEF = @ELM_EDBUS_DEF@
 ELM_EFREET_DEF = @ELM_EFREET_DEF@
 ELM_ETHUMB_DEF = @ELM_ETHUMB_DEF@
 ELM_EWEATHER_DEF = @ELM_EWEATHER_DEF@
+ELM_IMF_DEF = @ELM_IMF_DEF@
 ELM_LIBINTL_H_DEF = @ELM_LIBINTL_H_DEF@
 ELM_UNIX_DEF = @ELM_UNIX_DEF@
 ELM_WIN32_DEF = @ELM_WIN32_DEF@
@@ -295,7 +308,7 @@ AM_CPPFLAGS = -I. -I$(top_builddir) -I$(top_srcdir) \
        @ELEMENTARY_SDL_CFLAGS@ @ELEMENTARY_WIN32_CFLAGS@ \
        @ELEMENTARY_WINCE_CFLAGS@ @ELEMENTARY_EDBUS_CFLAGS@ \
        @ELEMENTARY_EFREET_CFLAGS@ @ELEMENTARY_ETHUMB_CFLAGS@ \
-       $(am__append_1)
+       @ELEMENTARY_IMF_CFLAGS@ $(am__append_1)
 lib_LTLIBRARIES = libelementary.la
 include_HEADERS = Elementary.h
 libelementary_la_SOURCES = \
@@ -332,6 +345,8 @@ elm_slider.c \
 elm_genlist.c \
 elm_check.c \
 elm_radio.c \
+elm_segment_control.c \
+elm_pagecontrol.c \
 elm_pager.c \
 elm_progressbar.c \
 elm_separator.c \
@@ -346,8 +361,15 @@ elm_map.c \
 elm_flip.c \
 elm_conform.c \
 elm_mapbuf.c \
+elm_picker.c \
+elm_picker2.c \
+elm_timepicker.c \
+elm_datepicker.c \
+elm_datepicker2.c \
 elm_thumb.c \
 elm_config.c \
+elm_titlebar.c \
+elm_popup.c \
 elm_diskcontroller.c \
 elm_tab.c \
 elm_navigationbar.c \
@@ -358,6 +380,9 @@ elm_editfield.c \
 elm_colorpicker.c \
 elm_colorpalette.c \
 elm_ctxpopup.c \
+elm_actionsheet.c \
+elm_gridbox.c \
+elm_softkey.c \
 \
 elc_anchorblock.c \
 elc_anchorview.c \
@@ -377,7 +402,7 @@ els_icon.c \
 els_icon.h
 
 libelementary_la_CFLAGS = 
-libelementary_la_LIBADD = @my_libs@ @dlopen_libs@ @ELEMENTARY_LIBS@ @ELEMENTARY_X_LIBS@ @ELEMENTARY_FB_LIBS@ @ELEMENTARY_SDL_LIBS@ @ELEMENTARY_WIN32_LIBS@ @ELEMENTARY_WINCE_LIBS@ @ELEMENTARY_EDBUS_LIBS@ @ELEMENTARY_EFREET_LIBS@ @ELEMENTARY_ETHUMB_LIBS@
+libelementary_la_LIBADD = @my_libs@ @dlopen_libs@ @ELEMENTARY_LIBS@ @ELEMENTARY_X_LIBS@ @ELEMENTARY_FB_LIBS@ @ELEMENTARY_SDL_LIBS@ @ELEMENTARY_WIN32_LIBS@ @ELEMENTARY_WINCE_LIBS@ @ELEMENTARY_EDBUS_LIBS@ @ELEMENTARY_EFREET_LIBS@ @ELEMENTARY_ETHUMB_LIBS@ @ELEMENTARY_IMF_LIBS@
 libelementary_la_LDFLAGS = -no-undefined @lt_enable_auto_import@ -version-info @version_info@ @release_info@
 all: all-am
 
@@ -457,6 +482,7 @@ distclean-compile:
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libelementary_la-elc_hoversel.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libelementary_la-elc_notepad.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libelementary_la-elc_scrolled_entry.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libelementary_la-elm_actionsheet.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libelementary_la-elm_animator.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libelementary_la-elm_bg.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libelementary_la-elm_box.Plo@am__quote@
@@ -470,12 +496,15 @@ distclean-compile:
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libelementary_la-elm_config.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libelementary_la-elm_conform.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libelementary_la-elm_ctxpopup.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libelementary_la-elm_datepicker.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libelementary_la-elm_datepicker2.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libelementary_la-elm_diskcontroller.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libelementary_la-elm_editfield.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libelementary_la-elm_entry.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libelementary_la-elm_flip.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libelementary_la-elm_frame.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libelementary_la-elm_genlist.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libelementary_la-elm_gridbox.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libelementary_la-elm_hover.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libelementary_la-elm_icon.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libelementary_la-elm_image.Plo@am__quote@
@@ -490,24 +519,32 @@ distclean-compile:
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libelementary_la-elm_module.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libelementary_la-elm_navigationbar.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libelementary_la-elm_notify.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libelementary_la-elm_pagecontrol.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libelementary_la-elm_pager.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libelementary_la-elm_panel.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libelementary_la-elm_photo.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libelementary_la-elm_photocam.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libelementary_la-elm_picker.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libelementary_la-elm_picker2.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libelementary_la-elm_popup.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libelementary_la-elm_progressbar.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libelementary_la-elm_radio.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libelementary_la-elm_scrolled_grid.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libelementary_la-elm_scroller.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libelementary_la-elm_searchbar.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libelementary_la-elm_segment_control.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libelementary_la-elm_separator.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libelementary_la-elm_slider.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libelementary_la-elm_slideshow.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libelementary_la-elm_softkey.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libelementary_la-elm_spinner.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libelementary_la-elm_tab.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libelementary_la-elm_tabbar.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libelementary_la-elm_table.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libelementary_la-elm_theme.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libelementary_la-elm_thumb.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libelementary_la-elm_timepicker.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libelementary_la-elm_titlebar.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libelementary_la-elm_toggle.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libelementary_la-elm_toolbar.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libelementary_la-elm_toolbar2.Plo@am__quote@
@@ -757,6 +794,20 @@ libelementary_la-elm_radio.lo: elm_radio.c
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@  $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libelementary_la_CFLAGS) $(CFLAGS) -c -o libelementary_la-elm_radio.lo `test -f 'elm_radio.c' || echo '$(srcdir)/'`elm_radio.c
 
+libelementary_la-elm_segment_control.lo: elm_segment_control.c
+@am__fastdepCC_TRUE@   $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libelementary_la_CFLAGS) $(CFLAGS) -MT libelementary_la-elm_segment_control.lo -MD -MP -MF $(DEPDIR)/libelementary_la-elm_segment_control.Tpo -c -o libelementary_la-elm_segment_control.lo `test -f 'elm_segment_control.c' || echo '$(srcdir)/'`elm_segment_control.c
+@am__fastdepCC_TRUE@   mv -f $(DEPDIR)/libelementary_la-elm_segment_control.Tpo $(DEPDIR)/libelementary_la-elm_segment_control.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='elm_segment_control.c' object='libelementary_la-elm_segment_control.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libelementary_la_CFLAGS) $(CFLAGS) -c -o libelementary_la-elm_segment_control.lo `test -f 'elm_segment_control.c' || echo '$(srcdir)/'`elm_segment_control.c
+
+libelementary_la-elm_pagecontrol.lo: elm_pagecontrol.c
+@am__fastdepCC_TRUE@   $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libelementary_la_CFLAGS) $(CFLAGS) -MT libelementary_la-elm_pagecontrol.lo -MD -MP -MF $(DEPDIR)/libelementary_la-elm_pagecontrol.Tpo -c -o libelementary_la-elm_pagecontrol.lo `test -f 'elm_pagecontrol.c' || echo '$(srcdir)/'`elm_pagecontrol.c
+@am__fastdepCC_TRUE@   mv -f $(DEPDIR)/libelementary_la-elm_pagecontrol.Tpo $(DEPDIR)/libelementary_la-elm_pagecontrol.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='elm_pagecontrol.c' object='libelementary_la-elm_pagecontrol.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libelementary_la_CFLAGS) $(CFLAGS) -c -o libelementary_la-elm_pagecontrol.lo `test -f 'elm_pagecontrol.c' || echo '$(srcdir)/'`elm_pagecontrol.c
+
 libelementary_la-elm_pager.lo: elm_pager.c
 @am__fastdepCC_TRUE@   $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libelementary_la_CFLAGS) $(CFLAGS) -MT libelementary_la-elm_pager.lo -MD -MP -MF $(DEPDIR)/libelementary_la-elm_pager.Tpo -c -o libelementary_la-elm_pager.lo `test -f 'elm_pager.c' || echo '$(srcdir)/'`elm_pager.c
 @am__fastdepCC_TRUE@   mv -f $(DEPDIR)/libelementary_la-elm_pager.Tpo $(DEPDIR)/libelementary_la-elm_pager.Plo
@@ -855,6 +906,41 @@ libelementary_la-elm_mapbuf.lo: elm_mapbuf.c
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@  $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libelementary_la_CFLAGS) $(CFLAGS) -c -o libelementary_la-elm_mapbuf.lo `test -f 'elm_mapbuf.c' || echo '$(srcdir)/'`elm_mapbuf.c
 
+libelementary_la-elm_picker.lo: elm_picker.c
+@am__fastdepCC_TRUE@   $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libelementary_la_CFLAGS) $(CFLAGS) -MT libelementary_la-elm_picker.lo -MD -MP -MF $(DEPDIR)/libelementary_la-elm_picker.Tpo -c -o libelementary_la-elm_picker.lo `test -f 'elm_picker.c' || echo '$(srcdir)/'`elm_picker.c
+@am__fastdepCC_TRUE@   mv -f $(DEPDIR)/libelementary_la-elm_picker.Tpo $(DEPDIR)/libelementary_la-elm_picker.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='elm_picker.c' object='libelementary_la-elm_picker.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libelementary_la_CFLAGS) $(CFLAGS) -c -o libelementary_la-elm_picker.lo `test -f 'elm_picker.c' || echo '$(srcdir)/'`elm_picker.c
+
+libelementary_la-elm_picker2.lo: elm_picker2.c
+@am__fastdepCC_TRUE@   $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libelementary_la_CFLAGS) $(CFLAGS) -MT libelementary_la-elm_picker2.lo -MD -MP -MF $(DEPDIR)/libelementary_la-elm_picker2.Tpo -c -o libelementary_la-elm_picker2.lo `test -f 'elm_picker2.c' || echo '$(srcdir)/'`elm_picker2.c
+@am__fastdepCC_TRUE@   mv -f $(DEPDIR)/libelementary_la-elm_picker2.Tpo $(DEPDIR)/libelementary_la-elm_picker2.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='elm_picker2.c' object='libelementary_la-elm_picker2.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libelementary_la_CFLAGS) $(CFLAGS) -c -o libelementary_la-elm_picker2.lo `test -f 'elm_picker2.c' || echo '$(srcdir)/'`elm_picker2.c
+
+libelementary_la-elm_timepicker.lo: elm_timepicker.c
+@am__fastdepCC_TRUE@   $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libelementary_la_CFLAGS) $(CFLAGS) -MT libelementary_la-elm_timepicker.lo -MD -MP -MF $(DEPDIR)/libelementary_la-elm_timepicker.Tpo -c -o libelementary_la-elm_timepicker.lo `test -f 'elm_timepicker.c' || echo '$(srcdir)/'`elm_timepicker.c
+@am__fastdepCC_TRUE@   mv -f $(DEPDIR)/libelementary_la-elm_timepicker.Tpo $(DEPDIR)/libelementary_la-elm_timepicker.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='elm_timepicker.c' object='libelementary_la-elm_timepicker.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libelementary_la_CFLAGS) $(CFLAGS) -c -o libelementary_la-elm_timepicker.lo `test -f 'elm_timepicker.c' || echo '$(srcdir)/'`elm_timepicker.c
+
+libelementary_la-elm_datepicker.lo: elm_datepicker.c
+@am__fastdepCC_TRUE@   $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libelementary_la_CFLAGS) $(CFLAGS) -MT libelementary_la-elm_datepicker.lo -MD -MP -MF $(DEPDIR)/libelementary_la-elm_datepicker.Tpo -c -o libelementary_la-elm_datepicker.lo `test -f 'elm_datepicker.c' || echo '$(srcdir)/'`elm_datepicker.c
+@am__fastdepCC_TRUE@   mv -f $(DEPDIR)/libelementary_la-elm_datepicker.Tpo $(DEPDIR)/libelementary_la-elm_datepicker.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='elm_datepicker.c' object='libelementary_la-elm_datepicker.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libelementary_la_CFLAGS) $(CFLAGS) -c -o libelementary_la-elm_datepicker.lo `test -f 'elm_datepicker.c' || echo '$(srcdir)/'`elm_datepicker.c
+
+libelementary_la-elm_datepicker2.lo: elm_datepicker2.c
+@am__fastdepCC_TRUE@   $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libelementary_la_CFLAGS) $(CFLAGS) -MT libelementary_la-elm_datepicker2.lo -MD -MP -MF $(DEPDIR)/libelementary_la-elm_datepicker2.Tpo -c -o libelementary_la-elm_datepicker2.lo `test -f 'elm_datepicker2.c' || echo '$(srcdir)/'`elm_datepicker2.c
+@am__fastdepCC_TRUE@   mv -f $(DEPDIR)/libelementary_la-elm_datepicker2.Tpo $(DEPDIR)/libelementary_la-elm_datepicker2.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='elm_datepicker2.c' object='libelementary_la-elm_datepicker2.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libelementary_la_CFLAGS) $(CFLAGS) -c -o libelementary_la-elm_datepicker2.lo `test -f 'elm_datepicker2.c' || echo '$(srcdir)/'`elm_datepicker2.c
+
 libelementary_la-elm_thumb.lo: elm_thumb.c
 @am__fastdepCC_TRUE@   $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libelementary_la_CFLAGS) $(CFLAGS) -MT libelementary_la-elm_thumb.lo -MD -MP -MF $(DEPDIR)/libelementary_la-elm_thumb.Tpo -c -o libelementary_la-elm_thumb.lo `test -f 'elm_thumb.c' || echo '$(srcdir)/'`elm_thumb.c
 @am__fastdepCC_TRUE@   mv -f $(DEPDIR)/libelementary_la-elm_thumb.Tpo $(DEPDIR)/libelementary_la-elm_thumb.Plo
@@ -869,6 +955,20 @@ libelementary_la-elm_config.lo: elm_config.c
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@  $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libelementary_la_CFLAGS) $(CFLAGS) -c -o libelementary_la-elm_config.lo `test -f 'elm_config.c' || echo '$(srcdir)/'`elm_config.c
 
+libelementary_la-elm_titlebar.lo: elm_titlebar.c
+@am__fastdepCC_TRUE@   $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libelementary_la_CFLAGS) $(CFLAGS) -MT libelementary_la-elm_titlebar.lo -MD -MP -MF $(DEPDIR)/libelementary_la-elm_titlebar.Tpo -c -o libelementary_la-elm_titlebar.lo `test -f 'elm_titlebar.c' || echo '$(srcdir)/'`elm_titlebar.c
+@am__fastdepCC_TRUE@   mv -f $(DEPDIR)/libelementary_la-elm_titlebar.Tpo $(DEPDIR)/libelementary_la-elm_titlebar.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='elm_titlebar.c' object='libelementary_la-elm_titlebar.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libelementary_la_CFLAGS) $(CFLAGS) -c -o libelementary_la-elm_titlebar.lo `test -f 'elm_titlebar.c' || echo '$(srcdir)/'`elm_titlebar.c
+
+libelementary_la-elm_popup.lo: elm_popup.c
+@am__fastdepCC_TRUE@   $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libelementary_la_CFLAGS) $(CFLAGS) -MT libelementary_la-elm_popup.lo -MD -MP -MF $(DEPDIR)/libelementary_la-elm_popup.Tpo -c -o libelementary_la-elm_popup.lo `test -f 'elm_popup.c' || echo '$(srcdir)/'`elm_popup.c
+@am__fastdepCC_TRUE@   mv -f $(DEPDIR)/libelementary_la-elm_popup.Tpo $(DEPDIR)/libelementary_la-elm_popup.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='elm_popup.c' object='libelementary_la-elm_popup.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libelementary_la_CFLAGS) $(CFLAGS) -c -o libelementary_la-elm_popup.lo `test -f 'elm_popup.c' || echo '$(srcdir)/'`elm_popup.c
+
 libelementary_la-elm_diskcontroller.lo: elm_diskcontroller.c
 @am__fastdepCC_TRUE@   $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libelementary_la_CFLAGS) $(CFLAGS) -MT libelementary_la-elm_diskcontroller.lo -MD -MP -MF $(DEPDIR)/libelementary_la-elm_diskcontroller.Tpo -c -o libelementary_la-elm_diskcontroller.lo `test -f 'elm_diskcontroller.c' || echo '$(srcdir)/'`elm_diskcontroller.c
 @am__fastdepCC_TRUE@   mv -f $(DEPDIR)/libelementary_la-elm_diskcontroller.Tpo $(DEPDIR)/libelementary_la-elm_diskcontroller.Plo
@@ -939,6 +1039,27 @@ libelementary_la-elm_ctxpopup.lo: elm_ctxpopup.c
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@  $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libelementary_la_CFLAGS) $(CFLAGS) -c -o libelementary_la-elm_ctxpopup.lo `test -f 'elm_ctxpopup.c' || echo '$(srcdir)/'`elm_ctxpopup.c
 
+libelementary_la-elm_actionsheet.lo: elm_actionsheet.c
+@am__fastdepCC_TRUE@   $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libelementary_la_CFLAGS) $(CFLAGS) -MT libelementary_la-elm_actionsheet.lo -MD -MP -MF $(DEPDIR)/libelementary_la-elm_actionsheet.Tpo -c -o libelementary_la-elm_actionsheet.lo `test -f 'elm_actionsheet.c' || echo '$(srcdir)/'`elm_actionsheet.c
+@am__fastdepCC_TRUE@   mv -f $(DEPDIR)/libelementary_la-elm_actionsheet.Tpo $(DEPDIR)/libelementary_la-elm_actionsheet.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='elm_actionsheet.c' object='libelementary_la-elm_actionsheet.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libelementary_la_CFLAGS) $(CFLAGS) -c -o libelementary_la-elm_actionsheet.lo `test -f 'elm_actionsheet.c' || echo '$(srcdir)/'`elm_actionsheet.c
+
+libelementary_la-elm_gridbox.lo: elm_gridbox.c
+@am__fastdepCC_TRUE@   $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libelementary_la_CFLAGS) $(CFLAGS) -MT libelementary_la-elm_gridbox.lo -MD -MP -MF $(DEPDIR)/libelementary_la-elm_gridbox.Tpo -c -o libelementary_la-elm_gridbox.lo `test -f 'elm_gridbox.c' || echo '$(srcdir)/'`elm_gridbox.c
+@am__fastdepCC_TRUE@   mv -f $(DEPDIR)/libelementary_la-elm_gridbox.Tpo $(DEPDIR)/libelementary_la-elm_gridbox.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='elm_gridbox.c' object='libelementary_la-elm_gridbox.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libelementary_la_CFLAGS) $(CFLAGS) -c -o libelementary_la-elm_gridbox.lo `test -f 'elm_gridbox.c' || echo '$(srcdir)/'`elm_gridbox.c
+
+libelementary_la-elm_softkey.lo: elm_softkey.c
+@am__fastdepCC_TRUE@   $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libelementary_la_CFLAGS) $(CFLAGS) -MT libelementary_la-elm_softkey.lo -MD -MP -MF $(DEPDIR)/libelementary_la-elm_softkey.Tpo -c -o libelementary_la-elm_softkey.lo `test -f 'elm_softkey.c' || echo '$(srcdir)/'`elm_softkey.c
+@am__fastdepCC_TRUE@   mv -f $(DEPDIR)/libelementary_la-elm_softkey.Tpo $(DEPDIR)/libelementary_la-elm_softkey.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='elm_softkey.c' object='libelementary_la-elm_softkey.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libelementary_la_CFLAGS) $(CFLAGS) -c -o libelementary_la-elm_softkey.lo `test -f 'elm_softkey.c' || echo '$(srcdir)/'`elm_softkey.c
+
 libelementary_la-elc_anchorblock.lo: elc_anchorblock.c
 @am__fastdepCC_TRUE@   $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libelementary_la_CFLAGS) $(CFLAGS) -MT libelementary_la-elc_anchorblock.lo -MD -MP -MF $(DEPDIR)/libelementary_la-elc_anchorblock.Tpo -c -o libelementary_la-elc_anchorblock.lo `test -f 'elc_anchorblock.c' || echo '$(srcdir)/'`elc_anchorblock.c
 @am__fastdepCC_TRUE@   mv -f $(DEPDIR)/libelementary_la-elc_anchorblock.Tpo $(DEPDIR)/libelementary_la-elc_anchorblock.Plo
diff --git a/src/lib/elm_gridbox.c b/src/lib/elm_gridbox.c
new file mode 100755 (executable)
index 0000000..ddf0892
--- /dev/null
@@ -0,0 +1,317 @@
+#include <Elementary.h>
+#include "elm_priv.h"
+
+/**
+ * @addtogroup Gridbox
+ *
+ * This is a gridbox
+ */
+
+typedef struct _Widget_Data Widget_Data;
+struct _Widget_Data {
+       Evas_Object *tbl, *scr;
+       Evas_Coord itemsize_h, itemsize_v;
+       Evas_Coord minw, minh;
+       Evas_Coord horizontal, vertical;
+       int x, y;
+       Eina_Bool homogeneous :1;
+};
+
+static void _del_hook(Evas_Object *obj);
+static void _sizing_eval(Evas_Object *obj, int mode);
+static void _changed_size_hints(void *data, Evas *e, Evas_Object *obj,
+               void *event_info);
+static void _changed_size_min(void *data, Evas *e, Evas_Object *obj,
+               void *event_info);
+static void _sub_del(void *data, Evas_Object *obj, void *event_info);
+static void _show_event(void *data, Evas_Object *obj, void *event_info);
+
+static void _del_pre_hook(Evas_Object *obj) {
+       Widget_Data *wd = elm_widget_data_get(obj);
+
+       evas_object_event_callback_del_full(wd->tbl,
+                       EVAS_CALLBACK_CHANGED_SIZE_HINTS, _changed_size_hints, obj);
+       evas_object_event_callback_del_full(wd->tbl, EVAS_CALLBACK_RESIZE,
+                       _changed_size_min, obj);
+       evas_object_del(wd->tbl);
+       evas_object_del(wd->scr);
+}
+
+static void _del_hook(Evas_Object *obj) {
+       Widget_Data *wd = elm_widget_data_get(obj);
+       free(wd);
+}
+
+static Eina_Bool _arrange_table(Evas_Object *obj) {
+       Widget_Data *wd = elm_widget_data_get(obj);
+       Eina_List* l, *l_temp = NULL;
+       Evas_Object* item;
+       int i = 0;
+
+       if (wd) {
+               if (wd->tbl) {
+                       int index =
+                                       eina_list_count(evas_object_table_children_get(wd->tbl));
+                       if (!index)
+                               return EINA_FALSE;
+
+                       elm_gridbox_item_size_set(obj, wd->itemsize_h, wd->itemsize_v);
+                       l = evas_object_table_children_get(wd->tbl);
+
+EINA_LIST_FOREACH              (l, l_temp, item)
+               {
+                       evas_object_table_unpack(wd->tbl, item);
+                       elm_widget_sub_object_del(wd->tbl, item);
+                       evas_object_table_pack(wd->tbl, item, i%wd->x , i/wd->x, 1, 1);
+                       i++;
+               }
+       }
+}
+
+return EINA_TRUE;
+}
+
+static void _sizing_eval(Evas_Object *obj, int mode) {
+       Widget_Data *wd = elm_widget_data_get(obj);
+       Evas_Coord minw = -1, minh = -1, maxw = -1, maxh = -1;
+       Evas_Coord w, h;
+
+       evas_object_size_hint_min_get(wd->scr, &minw, &minh);
+       evas_object_size_hint_max_get(wd->scr, &maxw, &maxh);
+       evas_object_size_hint_min_set(obj, minw, minh);
+       evas_object_size_hint_max_set(obj, maxw, maxh);
+       //   evas_object_geometry_get(obj, NULL, NULL, &w, &h);
+       evas_object_geometry_get(wd->scr, NULL, NULL, &w, &h);
+
+       if (w < minw)
+               w = minw;
+       if (h < minh)
+               h = minh;
+       if ((maxw >= 0) && (w > maxw))
+               w = maxw;
+       if ((maxh >= 0) && (h > maxh))
+               h = maxh;
+       evas_object_resize(obj, w, h);
+
+       wd->minw = w;
+       wd->minh = h;
+
+       if (wd->homogeneous) {
+               wd->x = w / wd->itemsize_h;
+               wd->y = h / wd->itemsize_v;
+               wd->horizontal = (wd->minw - wd->x * wd->itemsize_h) / wd->x;
+               wd->vertical = (wd->minh - wd->y * wd->itemsize_v) / wd->y;
+               elm_gridbox_padding_set(obj, wd->horizontal, wd->vertical);
+       }
+
+       if (!mode)
+               _arrange_table(obj);
+}
+
+static void _changed_size_hints(void *data, Evas *e, Evas_Object *obj,
+               void *event_info) {
+       _sizing_eval(data, 0);
+}
+
+static void _changed_size_min(void *data, Evas *e, Evas_Object *obj,
+               void *event_info) {
+       _sizing_eval(data, 0);
+}
+
+static void _sub_del(void *data, Evas_Object *obj, void *event_info) {
+       _sizing_eval(obj, 1);
+}
+
+static void _show_event(void *data, Evas_Object *obj, void *event_info) {
+       _sizing_eval(data, 0);
+}
+
+static void _freeze_on(void *data, Evas_Object *obj, void *event_info) {
+       Widget_Data *wd = elm_widget_data_get(obj);
+
+       if (!wd)
+               return;
+       evas_object_smart_callback_call(wd->scr, "scroll-freeze-on", NULL);
+}
+
+static void _freeze_off(void *data, Evas_Object *obj, void *event_info) {
+       Widget_Data *wd = elm_widget_data_get(obj);
+
+       if (!wd)
+               return;
+       evas_object_smart_callback_call(wd->scr, "scroll-freeze-off", NULL);
+}
+
+/**
+ * Add a new gridbox to the parent
+ *
+ * @param parent The parent object
+ * @return The new object or NULL if it cannot be created
+ *
+ * @ingroup Gridbox
+ */
+EAPI Evas_Object *
+elm_gridbox_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, "gridbox");
+       elm_widget_sub_object_add(parent, obj);
+       elm_widget_data_set(obj, wd);
+       elm_widget_del_hook_set(obj, _del_hook);
+       elm_widget_del_pre_hook_set(obj, _del_pre_hook);
+
+       wd->scr = elm_scroller_add(parent);
+       elm_widget_resize_object_set(obj, wd->scr);
+       elm_scroller_bounce_set(wd->scr, 0, 1);
+
+       wd->tbl = evas_object_table_add(e);
+       //evas_object_size_hint_weight_set(wd->tbl, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       evas_object_size_hint_weight_set(wd->tbl, 0.0, 0.0);
+       //evas_object_size_hint_weight_set(wd->tbl, EVAS_HINT_EXPAND, 0.0);
+       elm_scroller_content_set(wd->scr, wd->tbl);
+       evas_object_show(wd->tbl);
+
+       evas_object_event_callback_add(wd->scr, EVAS_CALLBACK_CHANGED_SIZE_HINTS,
+                       _changed_size_hints, obj);
+       evas_object_event_callback_add(wd->scr, EVAS_CALLBACK_RESIZE,
+                       _changed_size_min, obj);
+       evas_object_event_callback_add(wd->scr, EVAS_CALLBACK_SHOW, _show_event,
+                       obj);
+
+       evas_object_smart_callback_add(obj, "sub-object-del", _sub_del, obj);
+       evas_object_smart_callback_add(obj, "scroll-freeze-on", _freeze_on, obj);
+       evas_object_smart_callback_add(obj, "scroll-freeze-off", _freeze_off, obj);
+
+       _sizing_eval(obj, 0);
+
+       return obj;
+}
+
+/**
+ * Set padding between cells.
+ *
+ * @param obj The layout object.
+ * @param horizontal set the horizontal padding.
+ * @param vertical set the vertical padding.
+ *
+ * @ingroup Gridbox
+ */
+EAPI void elm_gridbox_padding_set(Evas_Object *obj, Evas_Coord horizontal,
+               Evas_Coord vertical) {
+       Widget_Data *wd = elm_widget_data_get(obj);
+
+       wd->horizontal = horizontal;
+       wd->vertical = vertical;
+
+       if (wd)
+               evas_object_table_padding_set(wd->tbl, horizontal, vertical);
+}
+
+/**
+ * Set gridbox item size
+ *
+ * @param obj The gridbox object
+ * @param h_pagesize The horizontal item size
+ * @param v_pagesize The vertical item size
+ *
+ * @ingroup Gridbox
+ */
+EAPI void elm_gridbox_item_size_set(Evas_Object *obj, Evas_Coord h_itemsize,
+               Evas_Coord v_itemsize) {
+       Widget_Data *wd = elm_widget_data_get(obj);
+       Evas_Coord minw = -1, minh = -1;
+       Evas_Coord w, h;
+
+       if (!wd)
+               return;
+
+       wd->itemsize_h = h_itemsize;
+       wd->itemsize_v = v_itemsize;
+       evas_object_size_hint_min_get(wd->scr, &minw, &minh);
+       evas_object_geometry_get(obj, NULL, NULL, &w, &h);
+       if (w < minw)
+               w = minw;
+       if (h < minh)
+               h = minh;
+       wd->x = w / h_itemsize;
+       wd->y = h / v_itemsize;
+
+       if (!wd->x)
+               wd->x = 1;
+       if (!wd->y)
+               wd->y = 1;
+}
+
+/**
+ * Add a subobject on the gridbox
+ *
+ * @param obj The table object
+ * @param subobj The subobject to be added to the gridbox
+ *
+ * @ingroup Gridbox
+ */
+EAPI void elm_gridbox_pack(Evas_Object *obj, Evas_Object *subobj) {
+       Widget_Data *wd = elm_widget_data_get(obj);
+       int index = eina_list_count(evas_object_table_children_get(wd->tbl));
+       evas_object_size_hint_min_set(subobj, wd->itemsize_h, wd->itemsize_v);
+       evas_object_size_hint_max_set(subobj, wd->itemsize_h, wd->itemsize_v);
+       elm_widget_sub_object_add(obj, subobj);
+       evas_object_table_pack(wd->tbl, subobj, index % wd->x, index / wd->x, 1, 1);
+}
+
+/**
+ * Unpack a subobject on the gridbox
+ *
+ * @param obj The gribox object
+ * @param subobj The subobject to be removed to the gridbox
+ *
+ * @ingroup Gridbox
+ */
+EAPI Eina_Bool elm_gridbox_unpack(Evas_Object *obj, Evas_Object *subobj) {
+       Widget_Data *wd = elm_widget_data_get(obj);
+       Eina_Bool ret = 0;
+
+       elm_widget_sub_object_del(wd->tbl, subobj);
+       ret = evas_object_table_unpack(wd->tbl, subobj);
+
+       _arrange_table(obj);
+
+       return ret;
+}
+
+/**
+ * Get the list of children for the gridbox.
+ *
+ * @param obj The gribox object
+ *
+ * @ingroup Gridbox
+ */
+EAPI Eina_List *
+elm_gridbox_children_get(Evas_Object *obj) {
+       Widget_Data *wd = elm_widget_data_get(obj);
+       Eina_List *new_list = NULL;
+
+       new_list = evas_object_table_children_get(wd->tbl);
+
+       return new_list;
+}
+
+/**
+ * Set homogenous paddding layout
+ *
+ * @param obj The gribox object
+ * @param homogenous The homogenous flag (1 = on, 0 = off)
+ *
+ * @ingroup Gridbox
+ */
+EAPI void elm_gridbox_homogenous_padding_set(Evas_Object *obj,
+               Eina_Bool homogenous) {
+       Widget_Data *wd = elm_widget_data_get(obj);
+       wd->homogeneous = homogenous;
+}
+
diff --git a/src/lib/elm_softkey.c b/src/lib/elm_softkey.c
new file mode 100755 (executable)
index 0000000..c5b7723
--- /dev/null
@@ -0,0 +1,1360 @@
+#include <Elementary.h>
+#include "elm_priv.h"
+
+/**
+ * @addtogroup Softkey Softkey
+ *
+ * This is a softkey
+ */
+
+/**
+ * internal data structure of softkey object
+ */
+#define BTN_ANIMATOR_MAX       4
+#define PANEL_ANIMATOR_MAX     1
+typedef struct _Widget_Data Widget_Data;
+
+struct _Widget_Data {
+       Evas_Object *lay;
+       Evas_Object *button[2];
+       Evas_Object *bg_rect;
+       Evas_Object *panel;
+       Evas_Object *glow_obj;
+
+       Evas_Coord x, y, w, h;
+       Evas_Coord glow_w, glow_h;
+       Evas_Coord win_h;
+       Evas_Coord panel_height;
+       Ecore_Animator *animator;
+       Eina_List *items;
+       unsigned int panel_btn_idx;
+       Eina_Bool button_show[2];
+       Eina_Bool show_panel :1;
+       Eina_Bool animating :1;
+       Eina_Bool is_horizontal;
+       double scale_factor;
+       int max_button;
+       Eina_Bool panel_suppported;
+};
+
+struct _Elm_Softkey_Item {
+       Evas_Object *obj;
+       Evas_Object *base;
+       Evas_Object *icon;
+       const char *label;
+       void (*func)(void *data, Evas_Object *obj, void *event_info);
+       const void *data;
+       Eina_Bool disabled :1;
+};
+
+static void _item_disable(Elm_Softkey_Item *it, Eina_Bool disabled);
+static void _del_hook(Evas_Object *obj);
+static void _theme_hook(Evas_Object *obj);
+static void _sizing_eval(Evas_Object *obj);
+static void _sub_del(void *data, Evas_Object *obj, void *event_info);
+
+/*
+ * callback functions
+ */
+static void _softkey_down_cb(void *data, Evas_Object *obj,
+               const char *emission, const char *source);
+static void _softkey_up_cb(void *data, Evas_Object *obj, const char *emission,
+               const char *source);
+
+static void _panel_down_cb(void *data, Evas *e, Evas_Object *obj,
+               void *event_info);
+static void _panel_up_cb(void *data, Evas *e, Evas_Object *obj,
+               void *event_info);
+
+static void _more_btn_click_cb(void *data, Evas_Object *obj,
+               const char *emission, const char *source);
+static void _close_btn_click_cb(void *data, Evas_Object *obj,
+               const char *emission, const char *source);
+static void _bg_click_cb(void *data, Evas *e, Evas_Object *obj,
+               void *event_info);
+
+static int _show_button_animator_cb(void *data);
+static int _hide_button_animator_cb(void *data);
+static int _panel_up_animator_cb(void *data);
+static int _panel_down_animator_cb(void *data);
+
+/*
+ * internal function
+ */
+static int
+               _show_button(Evas_Object *obj, Elm_Softkey_Type type, Eina_Bool show);
+static int _delete_button(Evas_Object *obj);
+
+static void _softkey_object_move(void *data, Evas *e, Evas_Object *obj,
+               void *event_info);
+static void _softkey_object_resize(void *data, Evas *e, Evas_Object *obj,
+               void *event_info);
+static void _softkey_object_show(void *data, Evas *e, Evas_Object *obj,
+               void *event_info);
+static void _softkey_object_hide(void *data, Evas *e, Evas_Object *obj,
+               void *event_info);
+
+static void _icon_disable(Evas_Object *icon, Eina_Bool disabled) {
+       Evas_Object *edj;
+
+       if (!icon)
+               return;
+       edj = elm_layout_edje_get(icon);
+
+       if (disabled) {
+               if (!edj) {
+                       edje_object_signal_emit(icon, "elm,state,disabled", "elm");
+               } else {
+                       edje_object_signal_emit(edj, "elm,state,disabled", "elm");
+               }
+       } else {
+               if (!edj) {
+                       edje_object_signal_emit(icon, "elm,state,enabled", "elm");
+               } else {
+                       edje_object_signal_emit(edj, "elm,state,enabled", "elm");
+               }
+       }
+}
+
+static void _item_disable(Elm_Softkey_Item *it, Eina_Bool disabled) {
+       Widget_Data *wd = elm_widget_data_get(it->obj);
+       if (!wd)
+               return;
+       if (it->disabled == disabled)
+               return;
+       it->disabled = disabled;
+       if (it->disabled) {
+               edje_object_signal_emit(it->base, "elm,state,disabled", "elm");
+       } else {
+               edje_object_signal_emit(it->base, "elm,state,enabled", "elm");
+       }
+
+       _icon_disable(it->icon, disabled);
+}
+
+static void _del_hook(Evas_Object *obj) {
+       int i;
+       Evas_Object *btn;
+       Widget_Data *wd = elm_widget_data_get(obj);
+
+       if (!wd)
+               return;
+
+       if (wd->lay) {
+               evas_object_smart_member_del(wd->lay);
+               evas_object_del(wd->lay);
+               wd->lay = NULL;
+       }
+
+       /* delete button */
+       for (i = 0; i < 2; i++) {
+               btn = wd->button[i];
+               if (btn != NULL) {
+                       evas_object_smart_member_del(btn);
+                       _delete_button(btn);
+               }
+       }
+
+       /* delete background */
+       if (wd->bg_rect) {
+               evas_object_smart_member_del(wd->bg_rect);
+               evas_object_del(wd->bg_rect);
+               wd->bg_rect = NULL;
+       }
+
+       /* delete panel */
+       if (wd->panel) {
+               elm_softkey_panel_del(obj);
+               //<Commenting as clean up for panel is being done in method elm_softkey_panel_del()
+               /*evas_object_smart_member_del(wd->panel);
+                evas_object_del(wd->panel);
+                wd->panel = NULL;*/
+               //<Commenting as clean up for panel is being done in method elm_softkey_panel_del()
+       }
+
+       /* delete glow effect image */
+       if (wd->glow_obj) {
+               evas_object_del(wd->glow_obj);
+               wd->glow_obj = NULL;
+       }
+
+       free(wd);
+}
+
+static void _theme_hook(Evas_Object *obj) {
+       Elm_Softkey_Item* item;
+       Widget_Data *wd = elm_widget_data_get(obj);
+       Elm_Softkey_Item *it;
+       const Eina_List *l;
+
+       if (!wd) {
+               return;
+       }
+       _elm_theme_object_set(obj, wd->lay, "softkey", "bg", elm_widget_style_get(
+                       obj));
+       _elm_theme_object_set(obj, wd->glow_obj, "softkey", "glow", "default");
+
+       if (wd->button[ELM_SK_LEFT_BTN]) {
+
+               item = evas_object_data_get(wd->button[ELM_SK_LEFT_BTN], "item_data");
+               _elm_theme_object_set(obj, wd->button[ELM_SK_LEFT_BTN], "softkey",
+                               "button_left", elm_widget_style_get(obj));
+
+               elm_softkey_item_label_set(item, item->label);
+
+       }
+
+       if (wd->button[ELM_SK_RIGHT_BTN]) {
+
+               item = evas_object_data_get(wd->button[ELM_SK_RIGHT_BTN], "item_data");
+
+               _elm_theme_object_set(obj, wd->button[ELM_SK_RIGHT_BTN], "softkey",
+                               "button_right", elm_widget_style_get(obj));
+
+               elm_softkey_item_label_set(item, item->label);
+
+       }
+
+       if (wd->panel) {
+               _elm_theme_object_set(obj, wd->panel, "softkey", "panel",
+                               elm_widget_style_get(obj));
+               if (wd->panel_btn_idx > 0) {
+                       //show more button 
+                       edje_object_signal_emit(wd->lay, "more_btn_show", "");
+EINA_LIST_FOREACH              (wd->items, l, it)
+               {
+                       _elm_theme_object_set(obj, it->base, "softkey", "panel_button", elm_widget_style_get(obj));
+                       if(it->label) {
+                               edje_object_part_text_set(it->base, "elm.text", it->label); // set text
+                       }
+               }
+       }
+}
+
+_sizing_eval( obj );
+}
+
+static void _sub_del(void *data, Evas_Object *obj, void *event_info) {
+       Widget_Data *wd = elm_widget_data_get(obj);
+       Evas_Object *sub = event_info;
+       const Eina_List *l;
+       Elm_Softkey_Item *it;
+       if (!wd)
+               return;
+
+EINA_LIST_FOREACH(wd->items, l, it)
+{
+       if(sub == it->icon) {
+               it->icon = NULL;
+       }
+       break;
+}
+}
+
+static void _sizing_eval(Evas_Object *obj) {
+       Widget_Data *wd = elm_widget_data_get(obj);
+
+       if (!wd)
+               return;
+
+       _softkey_object_move(obj, NULL, obj, NULL);
+       _softkey_object_resize(obj, NULL, obj, NULL);
+}
+
+static int _panel_up_animator_cb(void *data) {
+       int max = PANEL_ANIMATOR_MAX;
+       static int progress = 0;
+       Widget_Data *wd;
+       Evas_Coord ypos;
+
+       wd = elm_widget_data_get(data);
+       if (!wd)
+               return 0;
+
+       progress++;
+       wd->animating = EINA_TRUE;
+
+       if (progress > max) {
+               if (!wd->animator)
+                       return 0;
+               ecore_animator_del(wd->animator);
+               wd->animating = EINA_FALSE;
+               wd->show_panel = EINA_TRUE;
+               progress = 0;
+               return 0;
+       }
+
+       /* move up panel */
+       if (wd->panel) {
+               ypos = wd->win_h - (wd->panel_height * progress / max);
+               evas_object_move(wd->panel, 0, ypos);
+       }
+
+       return 1;
+}
+
+static int _panel_down_animator_cb(void *data) {
+       int max = PANEL_ANIMATOR_MAX;
+       static int progress = 0;
+       Widget_Data *wd;
+       Evas_Coord ypos;
+
+       wd = elm_widget_data_get(data);
+       if (!wd)
+               return 0;
+
+       progress++;
+       wd->animating = EINA_TRUE;
+
+       if (progress > max) {
+               if (!wd->animator)
+                       return 0;
+               ecore_animator_del(wd->animator);
+               wd->animating = EINA_FALSE;
+               wd->animator = ecore_animator_add(_show_button_animator_cb, data);
+               wd->show_panel = EINA_FALSE;
+               progress = 0;
+
+               evas_object_smart_callback_call(data, "panel,hide", NULL);
+
+               return 0;
+       }
+
+       /* move down panel */
+       if (wd->panel) {
+               ypos = wd->win_h - wd->panel_height + (wd->panel_height * progress
+                               / max);
+               evas_object_move(wd->panel, 0, ypos);
+       }
+
+       return 1;
+}
+
+static int _hide_button_animator_cb(void *data) {
+       int max = BTN_ANIMATOR_MAX;
+       static int progress = 0;
+       Widget_Data *wd;
+       Evas_Coord btn_w, xpos;
+
+       wd = elm_widget_data_get(data);
+       if (!wd)
+               return 0;
+
+       progress++;
+       wd->animating = EINA_TRUE;
+
+       if (progress > max) {
+               if (!wd->animator)
+                       return 0;
+               ecore_animator_del(wd->animator);
+               wd->animating = EINA_FALSE;
+               wd->animator = ecore_animator_add(_panel_up_animator_cb, data);
+               progress = 0;
+               return 0;
+       }
+
+       /* move left button */
+       if (wd->button[ELM_SK_LEFT_BTN]) {
+               edje_object_part_geometry_get(wd->button[ELM_SK_LEFT_BTN],
+                               "button_rect", NULL, NULL, &btn_w, NULL);
+
+               xpos = -1 * btn_w * progress / max;
+               evas_object_move(wd->button[ELM_SK_LEFT_BTN], xpos, wd->y);
+       }
+
+       /* move right button */
+       if (wd->button[ELM_SK_RIGHT_BTN]) {
+               edje_object_part_geometry_get(wd->button[ELM_SK_RIGHT_BTN],
+                               "button_rect", NULL, NULL, &btn_w, NULL);
+
+               xpos = (wd->w - btn_w) + (btn_w * progress / max);
+               evas_object_move(wd->button[ELM_SK_RIGHT_BTN], xpos, wd->y);
+       }
+
+       return 1;
+}
+
+static int _show_button_animator_cb(void *data) {
+       int max = BTN_ANIMATOR_MAX;
+       static int progress = 0;
+       Widget_Data *wd;
+       Evas_Coord btn_w, xpos;
+
+       wd = elm_widget_data_get(data);
+       if (!wd)
+               return 0;
+
+       progress++;
+
+       wd->animating = EINA_TRUE;
+
+       if (progress > max) {
+               if (!wd->animator)
+                       return 0;
+               ecore_animator_del(wd->animator);
+               wd->animating = EINA_FALSE;
+               progress = 0;
+               return 0;
+       }
+
+       /* move left button */
+       if (wd->button[ELM_SK_LEFT_BTN]) {
+               edje_object_part_geometry_get(wd->button[ELM_SK_LEFT_BTN],
+                               "button_rect", NULL, NULL, &btn_w, NULL);
+
+               xpos = (-1 * btn_w) + (btn_w * progress / max);
+               evas_object_move(wd->button[ELM_SK_LEFT_BTN], xpos, wd->y);
+       }
+
+       /* move right button */
+       if (wd->button[ELM_SK_RIGHT_BTN]) {
+               edje_object_part_geometry_get(wd->button[ELM_SK_RIGHT_BTN],
+                               "button_rect", NULL, NULL, &btn_w, NULL);
+
+               xpos = wd->w - (btn_w * progress / max);
+               evas_object_move(wd->button[ELM_SK_RIGHT_BTN], xpos, wd->y);
+       }
+
+       return 1;
+}
+
+static void _more_btn_click_cb(void *data, Evas_Object *obj,
+               const char *emission, const char *source) {
+       Widget_Data *wd;
+       wd = elm_widget_data_get(data);
+       if (!wd)
+               return;
+
+       evas_object_smart_callback_call(data, "panel,show", NULL);
+
+       if (!wd->panel)
+               return;
+       evas_object_show(wd->panel);
+
+       if (wd->bg_rect) {
+               evas_object_show(wd->bg_rect);
+       }
+
+       if (wd->animating == EINA_FALSE) {
+               wd->animator = ecore_animator_add(_hide_button_animator_cb, data);
+       }
+}
+
+static void _close_panel(Evas_Object *obj) {
+       Widget_Data *wd;
+       wd = elm_widget_data_get(obj);
+       if (!wd)
+               return;
+
+       if (wd->bg_rect) {
+               evas_object_hide(wd->bg_rect);
+       }
+
+       if (!wd->panel)
+               return;
+
+       if (wd->animating == EINA_FALSE) {
+               wd->animator = ecore_animator_add(_panel_down_animator_cb, obj);
+       }
+}
+
+static void _bg_click_cb(void *data, Evas *e, Evas_Object *obj,
+               void *event_info) {
+       _close_panel(data);
+}
+
+static void _close_btn_click_cb(void *data, Evas_Object *obj,
+               const char *emission, const char *source) {
+       _close_panel(data);
+}
+
+static int _show_button(Evas_Object *obj, Elm_Softkey_Type type, Eina_Bool show) {
+       if (!obj)
+               return -1;
+
+       Widget_Data *wd = elm_widget_data_get(obj);
+       Evas_Object *btn = wd->button[type];
+       if (!btn)
+               return -1;
+
+       /* Make visible button */
+       if (show) {
+               wd->button_show[type] = EINA_TRUE;
+               evas_object_show(btn);
+       } else {
+               wd->button_show[type] = EINA_FALSE;
+               evas_object_hide(btn);
+       }
+
+       return 0;
+}
+
+static int _arrange_button(Evas_Object *obj, Elm_Softkey_Type type) {
+       Widget_Data *wd;
+       Evas_Coord btn_w = 0;
+       Evas_Object *btn;
+
+       if (!obj)
+               return -1;
+       wd = elm_widget_data_get(obj);
+       if (!wd)
+               return -1;
+
+       btn = wd->button[type];
+       if (!btn)
+               return -1;
+
+       switch (type) {
+       case ELM_SK_LEFT_BTN:
+               evas_object_move(btn, wd->x, wd->y);
+               break;
+       case ELM_SK_RIGHT_BTN:
+               edje_object_part_geometry_get(btn, "button_rect", NULL, NULL, &btn_w,
+                               NULL);
+               evas_object_move(btn, wd->w - btn_w, wd->y);
+               break;
+       default:
+               break;
+       }
+
+       return 0;
+}
+
+static void _softkey_up_cb(void *data, Evas_Object *obj, const char *emission,
+               const char *source) {
+       Evas_Object *edj;
+
+       Elm_Softkey_Item *it = (Elm_Softkey_Item *) data;
+       elm_softkey_panel_close(it->obj);
+       if (it->func)
+               it->func((void *) (it->data), it->obj, it);
+       evas_object_smart_callback_call(it->obj, "clicked", it);
+
+       if (!it->icon)
+               return;
+       edj = elm_layout_edje_get(it->icon);
+       if (!edj)
+               return;
+
+       edje_object_signal_emit(edj, "elm,state,unselected", "elm");
+}
+
+static void _softkey_down_cb(void *data, Evas_Object *obj,
+               const char *emission, const char *source) {
+       Evas_Object *edj;
+
+       Elm_Softkey_Item *it = (Elm_Softkey_Item *) data;
+       evas_object_smart_callback_call(it->obj, "press", it);
+
+       if (!it->icon)
+               return;
+       edj = elm_layout_edje_get(it->icon);
+       if (!edj)
+               return;
+
+       edje_object_signal_emit(edj, "elm,state,selected", "elm");
+}
+
+static void _panel_up_cb(void *data, Evas *e, Evas_Object *obj,
+               void *event_info) {
+       Elm_Softkey_Item *it = (Elm_Softkey_Item *) data;
+
+       Widget_Data *wd;
+       wd = elm_widget_data_get(it->obj);
+       if (wd == NULL)
+               return;
+
+       /* hide glow effect */
+       if (wd->glow_obj) {
+               evas_object_hide(wd->glow_obj);
+       }
+
+       elm_softkey_panel_close(it->obj);
+       if (it->func)
+               it->func((void *) (it->data), it->obj, it);
+       evas_object_smart_callback_call(it->obj, "clicked", it);
+}
+
+static void _panel_down_cb(void *data, Evas *e, Evas_Object *obj,
+               void *event_info) {
+       Evas_Coord glow_x, glow_y;
+       Widget_Data *wd;
+
+       Elm_Softkey_Item *it = (Elm_Softkey_Item *) data;
+       wd = elm_widget_data_get(it->obj);
+       if (wd == NULL)
+               return;
+
+       /* show glow effect */
+       if (wd->glow_obj) {
+               Evas_Event_Mouse_Down *ev = (Evas_Event_Mouse_Down *) event_info;
+               glow_x = ev->canvas.x - (wd->glow_w / 2);
+               glow_y = ev->canvas.y - (wd->glow_h / 2);
+
+               evas_object_move(wd->glow_obj, glow_x, glow_y);
+               evas_object_show(wd->glow_obj);
+       }
+
+       evas_object_smart_callback_call(it->obj, "press", it);
+}
+
+static int _delete_button(Evas_Object *obj) {
+       if (!obj)
+               return -1;
+
+       if (obj) {
+               evas_object_del(obj);
+               obj = NULL;
+       }
+
+       return 0;
+}
+
+static void _calc_win_height(Widget_Data *wd) {
+       wd->win_h = wd->y + wd->h;
+
+       if (wd->bg_rect) {
+               evas_object_resize(wd->bg_rect, wd->w, wd->win_h);
+       }
+
+       if (wd->show_panel) {
+               evas_object_move(wd->panel, wd->x, (wd->win_h - wd->panel_height));
+       } else {
+               evas_object_move(wd->panel, wd->x, wd->win_h);
+       }
+}
+
+static void _softkey_object_move(void *data, Evas *e, Evas_Object *obj,
+               void *event_info) {
+       Widget_Data *wd;
+       int i;
+       Evas_Coord x, y;
+
+       if (!data)
+               return;
+       wd = elm_widget_data_get((Evas_Object *) data);
+       if (!wd)
+               return;
+
+       evas_object_geometry_get(wd->lay, &x, &y, NULL, NULL);
+
+       wd->x = x;
+       wd->y = y;
+
+       //      evas_object_move(wd->lay, x, y);
+
+       for (i = 0; i < 2; i++) {
+               _arrange_button((Evas_Object *) data, i);
+       }
+
+       _calc_win_height(wd);
+}
+
+static void _softkey_object_resize(void *data, Evas *e, Evas_Object *obj,
+               void *event_info) {
+       Widget_Data *wd;
+       Evas_Object *btn;
+       int i;
+       Evas_Coord btn_w;
+       Evas_Coord w, h;
+
+       if (!data)
+               return;
+       wd = elm_widget_data_get((Evas_Object *) data);
+       if (!wd)
+               return;
+
+       evas_object_geometry_get(wd->lay, NULL, NULL, &w, &h);
+
+       wd->w = w;
+       wd->h = h;
+
+       if (!wd->lay)
+               return;
+       evas_object_resize(wd->lay, w, h);
+
+       /* resize button */
+       for (i = 0; i < 2; i++) {
+               btn = wd->button[i];
+               if (btn != NULL) {
+                       edje_object_part_geometry_get(btn, "button_rect", NULL, NULL,
+                                       &btn_w, NULL);
+                       evas_object_resize(btn, btn_w, h);
+                       _arrange_button((Evas_Object *) data, i);
+               }
+       }
+
+       if (wd->w >= wd->win_h) {
+               _softkey_horizontal_set(data, EINA_TRUE);
+       } else {
+               _softkey_horizontal_set(data, EINA_FALSE);
+       }
+       _calc_win_height(wd);
+}
+
+static void _softkey_object_show(void *data, Evas *e, Evas_Object *obj,
+               void *event_info) {
+       Widget_Data *wd = NULL;
+       Evas_Object *btn;
+       int i;
+       if (data == NULL)
+               return;
+       wd = elm_widget_data_get((Evas_Object *) data);
+       if (wd == NULL)
+               return;
+
+       if (wd->lay) {
+               evas_object_show(wd->lay);
+       }
+
+       /* show button */
+       for (i = 0; i < 2; i++) {
+               btn = wd->button[i];
+               if (btn != NULL && wd->button_show[i] == EINA_TRUE) {
+                       evas_object_show(btn);
+                       //evas_object_clip_set(btn, evas_object_clip_get((Evas_Object *)data));
+               }
+       }
+       if (wd->panel_btn_idx > 0) {
+               /* show more button */
+               edje_object_signal_emit(wd->lay, "more_btn_show", "");
+       }
+}
+
+static void _softkey_object_hide(void *data, Evas *e, Evas_Object *obj,
+               void *event_info) {
+       Widget_Data *wd = NULL;
+       Evas_Object *btn;
+       int i;
+
+       if (data == NULL)
+               return;
+       wd = elm_widget_data_get((Evas_Object *) data);
+       if (wd == NULL)
+               return;
+
+       if (wd->lay) {
+               evas_object_hide(wd->lay);
+       }
+
+       /* hide button */
+       for (i = 0; i < 2; i++) {
+               btn = wd->button[i];
+               if (btn != NULL) {
+                       evas_object_hide(btn);
+               }
+       }
+
+       if (wd->panel_btn_idx > 0) {
+               /* hide more button */
+               edje_object_signal_emit(wd->lay, "more_btn_hide", "");
+       }
+}
+
+/**
+ * Add a new softkey to the parent
+
+ * @param parent the parent of the smart object
+ * @return             Evas_Object* pointer of softkey(evas object) or NULL
+ * @ingroup            Softkey 
+ */
+EAPI Evas_Object *
+elm_softkey_add(Evas_Object *parent) {
+       Evas_Object *obj = NULL;
+       Widget_Data *wd = NULL;
+       Evas *e;
+
+       wd = ELM_NEW(Widget_Data);
+       e = evas_object_evas_get(parent);
+       if (e == NULL)
+               return NULL;
+       obj = elm_widget_add(e);
+       elm_widget_type_set(obj, "softkey");
+       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);
+
+       /* load background edj */
+       wd->lay = edje_object_add(e);
+       _elm_theme_object_set(obj, wd->lay, "softkey", "bg", "default");
+       if (wd->lay == NULL) {
+               printf("Cannot load bg edj\n");
+               return NULL;
+       }
+       elm_widget_resize_object_set(obj, wd->lay);
+       edje_object_signal_callback_add(wd->lay, "clicked", "more_btn",
+                       _more_btn_click_cb, obj);
+
+       evas_object_event_callback_add(obj, EVAS_CALLBACK_RESIZE,
+                       _softkey_object_resize, obj);
+       evas_object_event_callback_add(obj, EVAS_CALLBACK_MOVE,
+                       _softkey_object_move, obj);
+       evas_object_event_callback_add(obj, EVAS_CALLBACK_SHOW,
+                       _softkey_object_show, obj);
+       evas_object_event_callback_add(obj, EVAS_CALLBACK_HIDE,
+                       _softkey_object_hide, obj);
+       wd->is_horizontal = EINA_FALSE;
+       wd->panel_suppported = EINA_TRUE;
+       wd->scale_factor = elm_scale_get();
+       if (wd->scale_factor == 0.0) {
+               wd->scale_factor = 1.0;
+       }
+
+       /* load glow effect */
+       wd->glow_obj = edje_object_add(e);
+       _elm_theme_object_set(obj, wd->glow_obj, "softkey", "glow", "default");
+       evas_object_geometry_get(wd->glow_obj, NULL, NULL, &wd->glow_w, &wd->glow_h);
+       evas_object_resize(wd->glow_obj, wd->glow_w, wd->glow_h);
+
+       // FIXME
+       evas_object_smart_callback_add(obj, "sub-object-del", _sub_del, obj);
+
+       //      _sizing_eval(obj);
+
+       return obj;
+}
+
+EAPI void _softkey_horizontal_set(Evas_Object *obj, Eina_Bool horizontal_mode) {
+       Widget_Data *wd;
+       char buff[32];
+       if (!obj)
+               return;
+       wd = elm_widget_data_get(obj);
+       if (!wd)
+               return;
+       wd->is_horizontal = horizontal_mode;
+       if (wd->panel) {
+               if ((edje_object_data_get(wd->panel, "max_item_count") == NULL)
+                               || (edje_object_data_get(wd->panel, "panel_height") == NULL)
+                               || (edje_object_data_get(wd->panel, "panel_height_horizontal")
+                                               == NULL)) {
+                       wd->panel_suppported = EINA_FALSE;
+               } else
+                       wd->panel_suppported = EINA_TRUE;
+               if (wd->panel_suppported == EINA_TRUE) {
+                       if (wd->is_horizontal == EINA_TRUE) {
+                               sprintf(buff, "button_%d", (wd->panel_btn_idx + wd->max_button));
+                               edje_object_signal_emit(wd->panel, buff, "panel_rect");
+                               wd->panel_height = (int) (atoi(edje_object_data_get(wd->panel,
+                                               buff)) * wd->scale_factor);
+                               evas_object_resize(
+                                               wd->panel,
+                                               wd->w,
+                                               ((int) (atoi(edje_object_data_get(wd->panel,
+                                                               "panel_height_horizontal")) * wd->scale_factor)));
+                       } else {
+                               sprintf(buff, "button_%d", (wd->panel_btn_idx));
+                               edje_object_signal_emit(wd->panel, buff, "panel_rect");
+                               wd->panel_height = (int) (atoi(edje_object_data_get(wd->panel,
+                                               buff)) * wd->scale_factor);
+                               evas_object_resize(wd->panel, wd->w, ((int) (atoi(
+                                               edje_object_data_get(wd->panel, "panel_height"))
+                                               * wd->scale_factor)));
+                       }
+               }
+               _calc_win_height(wd);
+       }
+
+}
+
+/**
+ * add side button of softkey
+ * @param      obj     softkey object 
+ * @param      type softkey button type
+ * @param      icon The icon object to use for the item
+ * @param      label The text label to use for the item
+ * @param      func Convenience function to call when this item is selected
+ * @param      data Data to pass to convenience function
+ * @return     A handle to the item added
+ * 
+ * @ingroup    Softkey  
+ */
+EAPI Elm_Softkey_Item *
+elm_softkey_button_add(Evas_Object *obj, Elm_Softkey_Type type,
+               Evas_Object *icon, const char *label, void(*func)(void *data,
+                               Evas_Object *obj, void *event_info), const void *data) {
+       Widget_Data *wd;
+       Evas* evas;
+       char button_type[64];
+       Elm_Softkey_Item *it;
+
+       if (!obj)
+               return NULL;
+       wd = elm_widget_data_get(obj);
+       if (!wd)
+               return NULL;
+
+       if (wd->button[type]) {
+               printf("already created.\n");
+               return NULL;
+       }
+
+       /* set item data */
+       it = ELM_NEW(Elm_Softkey_Item);
+       it->obj = obj;
+       it->func = func;
+       it->data = data;
+
+       /* get evas */
+       evas = evas_object_evas_get(obj);
+       if (!evas)
+               return NULL;
+
+       /* load button edj */
+       if (wd->button[type] == NULL) {
+               if (type == ELM_SK_LEFT_BTN) {
+                       strcpy(button_type, "button_left");
+               } else {
+                       strcpy(button_type, "button_right");
+               }
+
+               it->base = wd->button[type] = edje_object_add(evas);
+               if (!wd->button[type])
+                       return NULL;
+               _elm_theme_object_set(obj, wd->button[type], "softkey", button_type,
+                               elm_widget_style_get(obj));
+
+               wd->button_show[type] = EINA_TRUE;
+               if (evas_object_visible_get(obj)) {
+                       evas_object_show(wd->button[type]);
+               }
+               evas_object_smart_member_add(wd->button[type], obj);
+
+               edje_object_signal_callback_add(wd->button[type], "elm,action,down",
+                               "", _softkey_down_cb, it);
+               edje_object_signal_callback_add(wd->button[type], "elm,action,click",
+                               "", _softkey_up_cb, it);
+
+               evas_object_clip_set(wd->button[type], evas_object_clip_get(obj));
+               if (wd->panel)
+                       evas_object_raise(wd->panel);
+       }
+
+       _sizing_eval(obj);
+
+       elm_softkey_item_label_set(it, label);
+       elm_softkey_item_icon_set(it, icon);
+
+       evas_object_data_set(wd->button[type], "item_data", it);
+
+       return it;
+}
+
+/**
+ * delete side button of softkey
+ * @param      obj     softkey object 
+ * @param      type softkey button type
+ * 
+ * @ingroup    Softkey  
+ */
+EAPI void elm_softkey_button_del(Evas_Object *obj, Elm_Softkey_Type type) {
+       Widget_Data *wd;
+       Elm_Softkey_Item *it;
+       Evas_Object *btn;
+
+       if (!obj) {
+               printf("Invalid argument: softkey object is NULL\n");
+               return;
+       }
+
+       wd = elm_widget_data_get(obj);
+       if (!wd)
+               return;
+
+       btn = wd->button[type];
+       if (!btn)
+               return;
+
+       it = evas_object_data_get(btn, "item_data");
+       free(it);
+
+       evas_object_smart_member_del(btn);
+       _delete_button(btn);
+       wd->button[type] = NULL;
+}
+
+/**
+ * show button of softkey
+ * @param      obj     softkey object 
+ * @param      type    softkey button type
+ *
+ * @ingroup    Softkey  
+ */
+EAPI void elm_softkey_button_show(Evas_Object *obj, Elm_Softkey_Type type) {
+       _show_button(obj, type, EINA_TRUE);
+}
+
+/**
+ * hide button of softkey
+ * @param      obj     softkey object 
+ * @param      type    softkey button type
+ *
+ * @ingroup    Softkey  
+ */
+EAPI void elm_softkey_button_hide(Evas_Object *obj, Elm_Softkey_Type type) {
+       _show_button(obj, type, EINA_FALSE);
+}
+
+/**
+ * add item in panel
+ * @param      obj     softkey object 
+ * @param      icon The icon object
+ * @param      label The text label to use for the item
+ * @param      func Convenience function to call when this item is selected
+ * @param      data Data to pass to convenience function
+ * @return     A handle to the item added
+ * 
+ * @ingroup    Softkey  
+ */
+EAPI Elm_Softkey_Item *
+elm_softkey_panel_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;
+       Evas *evas;
+       char button_name[32];
+       Evas_Object *btn;
+       Elm_Softkey_Item *it;
+       char buff[PATH_MAX];
+
+       wd = elm_widget_data_get(obj);
+       if (!wd) {
+               printf("Cannot get smart data\n");
+               return NULL;
+       }
+
+       /* set item data */
+       it = ELM_NEW(Elm_Softkey_Item);
+       wd->items = eina_list_append(wd->items, it);
+       it->obj = obj;
+       it->label = eina_stringshare_add(label);
+       it->icon = icon;
+       it->func = func;
+       it->data = data;
+
+       /* get evas */
+       evas = evas_object_evas_get(obj);
+       if (!evas)
+               return NULL;
+
+       if (wd->panel == NULL) {
+               /* create panel */
+               wd->bg_rect = evas_object_rectangle_add(evas);
+               if (!wd->bg_rect)
+                       return NULL;
+               evas_object_color_set(wd->bg_rect, 10, 10, 10, 150);
+               evas_object_pass_events_set(wd->bg_rect, 0);
+
+               if (wd->bg_rect) {
+                       evas_object_resize(wd->bg_rect, wd->w, wd->win_h);
+                       evas_object_event_callback_add(wd->bg_rect, EVAS_CALLBACK_MOUSE_UP,
+                                       _bg_click_cb, obj);
+                       evas_object_smart_member_add(wd->bg_rect, obj);
+               }
+
+               wd->panel = edje_object_add(evas);
+               if (!wd->panel)
+                       return NULL;
+               _elm_theme_object_set(obj, wd->panel, "softkey", "panel",
+                               elm_widget_style_get(obj));
+
+               evas_object_move(wd->panel, 0, wd->win_h);
+               edje_object_signal_callback_add(wd->panel, "clicked", "close_btn",
+                               _close_btn_click_cb, obj);
+               evas_object_smart_member_add(wd->panel, obj);
+               if (evas_object_visible_get(obj)) {
+                       evas_object_show(wd->panel);
+               }
+               wd->panel_height = 0;
+               if ((edje_object_data_get(wd->panel, "max_item_count") == NULL)
+                               || (edje_object_data_get(wd->panel, "panel_height") == NULL)
+                               || (edje_object_data_get(wd->panel, "panel_height_horizontal")
+                                               == NULL)) {
+                       //If this key is not found in data section, then it means the panel won't come.
+                       wd->max_button = 0;
+                       // delete panel 
+                       if (wd->panel) {
+                               elm_softkey_panel_del(obj);
+                       }
+                       wd->panel_suppported = EINA_FALSE;
+                       return NULL;
+               } else {
+                       wd->max_button = (int) (atoi(edje_object_data_get(wd->panel,
+                                       "max_item_count")));
+                       if (wd->is_horizontal) {
+                               evas_object_resize(
+                                               wd->panel,
+                                               wd->w,
+                                               ((int) (atoi(edje_object_data_get(wd->panel,
+                                                               "panel_height_horizontal")) * wd->scale_factor)));
+                       } else {
+                               evas_object_resize(wd->panel, wd->w, ((int) (atoi(
+                                               edje_object_data_get(wd->panel, "panel_height"))
+                                               * wd->scale_factor)));
+                       }
+               }
+
+               evas_object_clip_set(wd->panel, evas_object_clip_get(obj));
+       }
+
+       if (wd->panel_btn_idx >= wd->max_button)
+               return NULL;
+
+       wd->panel_btn_idx++;
+
+       if (evas_object_visible_get(obj)) {
+               /* show more button */
+               edje_object_signal_emit(wd->lay, "more_btn_show", "");
+       }
+
+       /* load panel button */
+       it->base = btn = edje_object_add(evas);
+       if (!btn)
+               return NULL;
+       _elm_theme_object_set(obj, btn, "softkey", "panel_button",
+                       elm_widget_style_get(obj));
+
+       edje_object_part_text_set(btn, "elm.text", label); /* set text */
+       edje_object_message_signal_process(btn);
+
+       evas_object_event_callback_add(btn, EVAS_CALLBACK_MOUSE_DOWN,
+                       _panel_down_cb, it);
+       evas_object_event_callback_add(btn, EVAS_CALLBACK_MOUSE_UP, _panel_up_cb,
+                       it);
+
+       /* swallow button */
+       sprintf(button_name, "panel_button_area_%d", wd->panel_btn_idx);
+       edje_object_part_swallow(wd->panel, button_name, btn);
+       if (wd->is_horizontal) {
+               sprintf(buff, "button_%d", wd->max_button + wd->panel_btn_idx);
+               edje_object_signal_emit(wd->panel, buff, "panel_rect");
+               wd->panel_height = (int) (atoi(edje_object_data_get(wd->panel, buff))
+                               * wd->scale_factor);
+       } else {
+               sprintf(buff, "button_%d", wd->panel_btn_idx);
+               edje_object_signal_emit(wd->panel, buff, "panel_rect");
+               wd->panel_height = (int) (atoi(edje_object_data_get(wd->panel, buff))
+                               * wd->scale_factor);
+       }
+
+       return it;
+}
+
+/**
+ * delete panel
+
+ * @param obj softkey object
+ * @return int 0 (SUCCESS) or -1 (FAIL)
+ *
+ * @ingroup Softkey
+ */
+EAPI int elm_softkey_panel_del(Evas_Object *obj) {
+       Widget_Data *wd;
+       char button_name[32];
+       Evas_Object *btn;
+       int i;
+       Elm_Softkey_Item *it;
+
+       wd = elm_widget_data_get(obj);
+       if (!wd)
+               return -1;
+       if (wd->panel == NULL)
+               return -1;
+
+       for (i = 1; i <= wd->panel_btn_idx; i++) {
+               sprintf(button_name, "panel_button_area_%d", i);
+               btn = edje_object_part_swallow_get(wd->panel, button_name);
+               _delete_button(btn);
+       }
+
+       EINA_LIST_FREE(wd->items, it)
+       {
+               eina_stringshare_del(it->label);
+               free(it);
+       }
+
+       wd->panel_btn_idx = 0;
+       wd->panel_height = 0;
+
+       //hide more button
+       edje_object_signal_emit(wd->lay, "more_btn_hide", "");
+
+       if (wd->panel) {
+               evas_object_move(wd->panel, 0, wd->win_h);
+               evas_object_clip_unset(wd->panel);
+               //<Added to delete the panel completely>
+               evas_object_smart_member_del(wd->panel);
+               evas_object_del(wd->panel);
+               wd->panel = NULL;
+               //<Added to delete the panel completely>
+       }
+
+       return 0;
+}
+
+/**
+ * sliding up panel if it is closed
+
+ * @param obj softkey object
+ * @return int 0 (SUCCESS) or -1 (FAIL)
+ *
+ * @ingroup Softkey
+ */
+EAPI int elm_softkey_panel_open(Evas_Object *obj) {
+       Widget_Data *wd;
+       wd = elm_widget_data_get(obj);
+
+       if (!wd)
+               return -1;
+       if (!wd->panel)
+               return -1;
+
+       if (wd->show_panel == EINA_FALSE) {
+               _more_btn_click_cb(obj, NULL, NULL, NULL);
+       }
+
+       return 0;
+}
+
+/**
+ * sliding down panel if it is opened
+
+ * @param obj softkey object
+ * @return int 0 (SUCCESS) or -1 (FAIL)
+ *
+ * @ingroup Softkey
+ */
+EAPI int elm_softkey_panel_close(Evas_Object *obj) {
+       Widget_Data *wd;
+       wd = elm_widget_data_get(obj);
+       if (!wd)
+               return -1;
+
+       if (wd->panel == NULL)
+               return -1;
+
+       if (wd->show_panel == EINA_TRUE) {
+               _close_btn_click_cb(obj, obj, NULL, NULL);
+       }
+
+       return 0;
+}
+
+/**
+ * Set the icon of an softkey item
+ *
+ * @param it The item to set the icon
+ * @param icon The icon object
+ *
+ * @ingroup Softkey
+ */
+EAPI void elm_softkey_item_icon_set(Elm_Softkey_Item *it, Evas_Object *icon) {
+       if (!it)
+               return;
+
+       if ((it->icon != icon) && (it->icon))
+               elm_widget_sub_object_del(it->obj, it->icon);
+
+       if ((icon) && (it->icon != icon)) {
+               it->icon = icon;
+               elm_widget_sub_object_add(it->obj, icon);
+               //evas_object_event_callback_add(icon, EVAS_CALLBACK_CHANGED_SIZE_HINTS, _changed_size_hints, obj);
+               //edje_object_part_swallow(it->base, "elm.swallow.content", icon);
+               edje_object_part_swallow(it->base, "elm.swallow.icon", icon);
+               edje_object_signal_emit(it->base, "elm,state,icon,visible", "elm");
+               edje_object_message_signal_process(it->base);
+               _sizing_eval(it->obj);
+       } else
+               it->icon = icon;
+}
+
+/**
+ * Get the icon of an softkey item
+ *
+ * @param it The item to get the icon
+ * @return The icon object
+ *
+ * @ingroup Softkey
+ */
+EAPI Evas_Object *
+elm_softkey_item_icon_get(Elm_Softkey_Item *it) {
+       if (!it)
+               return NULL;
+       return it->icon;
+}
+
+/**
+ * Get the text label of an softkey item
+ *
+ * @param it The item to set the label
+ * @param label label
+ *
+ * @ingroup Softkey
+ */
+EAPI void elm_softkey_item_label_set(Elm_Softkey_Item *it, const char *label) {
+       if (!it)
+               return;
+       if (it->label)
+               eina_stringshare_del(it->label);
+
+       if (label) {
+               it->label = eina_stringshare_add(label);
+               edje_object_signal_emit(it->base, "elm,state,text,visible", "elm");
+
+               /* set text */
+               edje_object_part_text_set(it->base, "elm.text", label == NULL ? ""
+                               : label);
+       } else {
+               it->label = NULL;
+               edje_object_signal_emit(it->base, "elm,state,text,hidden", "elm");
+       }
+       edje_object_message_signal_process(it->base);
+}
+
+/**
+ * Set the item callback function 
+ *
+ * @param it Item to set callback function.
+ * @param func callback function pointer.
+ * @param data callback function argument data.
+ *
+ * @ingroup Softkey
+ */
+EAPI void elm_softkey_item_callback_set(Elm_Softkey_Item* item, void(*func)(
+               void *data, Evas_Object *obj, void *event_info), const void *data) {
+       if (!item)
+               return;
+
+       item->func = func;
+       item->data = data;
+
+}
+
+/**
+ * Get the text label of an softkey item
+ *
+ * @param it The item to get the label
+ * @return The text label of the softkey item
+ *
+ * @ingroup Softkey
+ */
+EAPI const char *
+elm_softkey_item_label_get(Elm_Softkey_Item *it) {
+       if (!it)
+               return NULL;
+       return it->label;
+}
+
+EAPI Eina_Bool elm_softkey_item_disabled_get(Elm_Softkey_Item *it) {
+       if (!it)
+               return EINA_FALSE;
+       return it->disabled;
+}
+
+EAPI void elm_softkey_item_disabled_set(Elm_Softkey_Item *it,
+               Eina_Bool disabled) {
+       if (!it)
+               return;
+       _item_disable(it, disabled);
+}