Merge branch 'master' of 165.213.180.234:/git/slp/pkgs/elementary
authorSohyun Kim <anna1014.kim@samsung.com>
Wed, 1 Sep 2010 11:14:39 +0000 (20:14 +0900)
committerSohyun Kim <anna1014.kim@samsung.com>
Wed, 1 Sep 2010 11:14:39 +0000 (20:14 +0900)
src/lib/Elementary.h.in
src/lib/elm_searchbar.c
src/lib/elm_slidingdrawer.c
src/lib/els_touch.c

index b58004f..8a68fb3 100755 (executable)
@@ -2417,9 +2417,17 @@ extern "C" {
    EAPI void         elm_gallery_set_max_count(Evas_Object *obj,int max_value);
 
    /* Sliding Drawer */
+   typedef enum _Elm_SlidingDrawer_Pos {
+               ELM_SLIDINGDRAWER_BOTTOM,
+               ELM_SLIDINGDRAWER_LEFT,
+               ELM_SLIDINGDRAWER_RIGHT,
+               ELM_SLIDINGDRAWER_TOP
+   } Elm_SlidingDrawer_Pos;
    EAPI Evas_Object *elm_slidingdrawer_add(Evas_Object *parent);
    EAPI void         elm_slidingdrawer_content_set (Evas_Object *obj, Evas_Object *content);
-   EAPI Evas_Object *elm_slidingdrawer_content_get(Evas_Object *obj);
+   EAPI Evas_Object *elm_slidingdrawer_content_unset(Evas_Object *obj);
+   EAPI void           elm_slidingdrawer_pos_set(Evas_Object *obj, Elm_SlidingDrawer_Pos pos);
+   EAPI void           elm_slidingdrawer_max_drag_set(Evas_Object *obj, double dw,  double dh);
 
    /* wipercontrol*/
    EAPI Evas_Object *elm_wipercontrol_add(Evas_Object *parent);
index dba2ce5..96c8df2 100644 (file)
@@ -26,7 +26,6 @@ static void _sizing_eval(Evas_Object *obj);
 static void _clicked(void *data, Evas_Object *obj, const char *emission, const char *source);
 static void _changed(void *data, Evas_Object *obj, const char *emission, const char *source);
 static void _cancel_clicked(void *data, Evas_Object *obj, const char *emission, const char *source);
-static void _signal_reset_clicked(void *data, Evas_Object *obj, const char *emission, const char *source);
 
 static void _del_hook(Evas_Object *obj)
 {
@@ -49,8 +48,6 @@ static void _theme_hook(Evas_Object *obj)
    if (wd->cancel_btn)
      edje_object_part_swallow(wd->base, "button_cancel", wd->cancel_btn);
 
-   edje_object_signal_callback_add(wd->base, "elm,action,click", "", _signal_reset_clicked, obj);
-
    edje_object_scale_set(wd->cancel_btn, elm_widget_scale_get(obj) * _elm_config->scale);
    _sizing_eval(obj);
 }
@@ -68,6 +65,13 @@ static void _sizing_eval(Evas_Object *obj)
    evas_object_size_hint_max_set(obj, maxw, maxh);
 }
 
+static void
+_searchicon_clicked(void *data, Evas_Object *obj, const char *emission, const char *source)
+{
+       if (!strcmp(source, "search_icon"))
+               evas_object_smart_callback_call(data, "searchsymbol,clicked", NULL);
+}
+
 static void _clicked(void *data, Evas_Object *obj, const char *emission, const char *source)
 {
    Widget_Data *wd = elm_widget_data_get(data);
@@ -111,13 +115,6 @@ static void _cancel_clicked(void *data, Evas_Object *obj, const char *emission,
    evas_object_smart_callback_call(data, "cancel,clicked", NULL);
 }
 
-static void _signal_reset_clicked(void *data, Evas_Object *obj, const char *emission, const char *source)
-{
-   Widget_Data *wd = elm_widget_data_get(data);
-   if (!wd) return;
-   elm_entry_entry_set(elm_editfield_entry_get(wd->eb), NULL);
-}
-
 /**
  * Add a new searchbar to the parent
  * @param parent The parent object
@@ -160,6 +157,8 @@ EAPI Evas_Object *elm_searchbar_add(Evas_Object *parent)
    elm_editfield_eraser_set(wd->eb, EINA_TRUE);
    evas_object_smart_callback_add(wd->eb, "clicked", _clicked, obj);
    evas_object_smart_callback_add(elm_editfield_entry_get(wd->eb), "changed", _changed, obj);
+   edje_object_signal_callback_add(wd->base, "mouse,up,1", "search_icon", _searchicon_clicked, obj);
+
    elm_widget_sub_object_add(obj, wd->eb);
 
    // Add Button
@@ -172,8 +171,6 @@ EAPI Evas_Object *elm_searchbar_add(Evas_Object *parent)
 
    wd->cancel_btn_ani_flag = EINA_FALSE;
 
-   edje_object_signal_callback_add(wd->base, "elm,action,click", "", _signal_reset_clicked, obj);
-
    elm_widget_resize_object_set(obj, wd->base);
 
    _sizing_eval(obj);
@@ -182,12 +179,12 @@ EAPI Evas_Object *elm_searchbar_add(Evas_Object *parent)
 }
 
 /**
- * get the text of entry
+ * set the text of entry
  *
- * @param obj The entry object
- * @return The title of entry
+ * @param obj The searchbar object
+ * @return void
  *
- * @ingroup entry
+ * @ingroup Searchbar
  */
 EAPI void elm_searchbar_text_set(Evas_Object *obj, const char *entry)
 {
@@ -200,10 +197,10 @@ EAPI void elm_searchbar_text_set(Evas_Object *obj, const char *entry)
 /**
  * get the text of entry
  *
- * @param obj The entry object
- * @return The title of entry
+ * @param obj The searchbar object
+ * @return string pointer of entry
  *
- * @ingroup entry
+ * @ingroup Searchbar
  */
 EAPI const char* elm_searchbar_text_get(Evas_Object *obj)
 {
@@ -216,10 +213,10 @@ EAPI const char* elm_searchbar_text_get(Evas_Object *obj)
 /**
  * get the pointer of entry
  *
- * @param obj The entry object
- * @return The title of entry
+ * @param obj The searchbar object
+ * @return the entry object
  *
- * @ingroup entry
+ * @ingroup Searchbar
  */
 EAPI Evas_Object *elm_searchbar_entry_get(Evas_Object *obj)
 {
@@ -230,12 +227,13 @@ EAPI Evas_Object *elm_searchbar_entry_get(Evas_Object *obj)
 }
 
 /**
- * get the pointer of entry
+ * set the cancel button animation flag
  *
- * @param obj The entry object
- * @return The title of entry
+ * @param obj The searchbar object
+ * @param cancel_btn_ani_flag The flag of animating cancen button or not
+ * @return void
  *
- * @ingroup entry
+ * @ingroup Searchbar
  */
 EAPI void elm_searchbar_cancel_button_animation_set(Evas_Object *obj, Eina_Bool cancel_btn_ani_flag)
 {
index 8ae846a..319db7e 100644 (file)
@@ -11,22 +11,17 @@ typedef struct _Widget_Data Widget_Data;
 \r
 struct _Widget_Data\r
 {\r
-       Evas_Object *win;\r
        Evas_Object *parent;\r
        Evas_Object *base;\r
-       Evas_Coord_Rectangle win_rect;\r
-       Evas_Coord_Rectangle base_rect;\r
-       Evas_Coord handler_h;\r
-       Evas_Coord drag;\r
-       Evas_Coord_Point down_pos;\r
+       Evas_Object *handler;\r
+       Evas_Object *dragable_rect;\r
+       Elm_SlidingDrawer_Pos pos;\r
 };\r
 \r
 static const char *widtype = NULL;\r
 static void _del_hook(Evas_Object *obj);\r
 static void _theme_hook(Evas_Object *obj);\r
 static void _sizing_eval(Evas_Object *obj);\r
-static void _slidingdrawer_show(void *data, Evas *e, Evas_Object *obj, void *event_info);\r
-static void _slidingdrawer_hide(void *data, Evas *e, Evas_Object *obj, void *event_info);\r
 static void _parent_resize(void *data, Evas *e, Evas_Object *obj, void *event_info);\r
 \r
 static void\r
@@ -40,7 +35,7 @@ static void
 _theme_hook(Evas_Object *obj)\r
 {\r
        Widget_Data *wd = (Widget_Data *) elm_widget_data_get(obj);\r
-       _elm_theme_object_set(obj, wd->base, "slidingdrawer", "base", elm_widget_style_get(obj));\r
+       elm_slidingdrawer_pos_set(obj, wd->pos);\r
 }\r
 \r
 static void\r
@@ -50,24 +45,11 @@ _parent_resize(void *data, Evas *e, Evas_Object *obj, void *event_info)
 }\r
 \r
 static void\r
-_slidingdrawer_show(void *data, Evas *e, Evas_Object *obj, void *event_info)\r
-{\r
-       Widget_Data *wd = (Widget_Data*) data;\r
-       evas_object_show(wd->win);\r
-}\r
-\r
-static void\r
-_slidingdrawer_hide(void *data, Evas *e, Evas_Object *obj, void *event_info)\r
-{\r
-       Widget_Data *wd = (Widget_Data*) data;\r
-       evas_object_hide(wd->win);\r
-}\r
-\r
-static void\r
 _sizing_eval(Evas_Object *obj)\r
 {\r
-       Evas_Coord x, y, w, h;\r
        Widget_Data *wd;\r
+       Evas_Coord x, y, w, h;\r
+       const Evas_Object  *part;\r
 \r
        wd = elm_widget_data_get(obj);\r
 \r
@@ -75,75 +57,19 @@ _sizing_eval(Evas_Object *obj)
        evas_object_move(obj, x, y);\r
        evas_object_resize(obj, w, h);\r
 \r
-       /*\r
-       ecore_x_window_geometry_get(ecore_x_window_root_get(ecore_x_window_focus_get()), &wd->win_rect.x, &wd->win_rect.y, &wd->win_rect.w, &wd->win_rect.h);\r
-       edje_object_part_geometry_get(wd->base, "handler", NULL, NULL, NULL, &wd->handler_h);\r
-       evas_object_resize(wd->win, wd->win_rect.w, wd->handler_h);\r
-       evas_object_move(wd->win, 0, wd->win_rect.h - wd->handler_h);\r
-       evas_object_resize(wd->base, wd->win_rect.w, wd->handler_h);\r
-       wd->base_rect.y = 0;\r
-       wd->base_rect.h = wd->handler_h;\r
-       */\r
-}\r
-\r
-void\r
-_down(void *data, Evas *e, Evas_Object *obj, void *event_info)\r
-{\r
-       Evas_Event_Mouse_Down *ev;\r
-       Widget_Data *wd = (Widget_Data*) data;\r
-\r
-       ev = (Evas_Event_Mouse_Down *) event_info;\r
-       wd = (Widget_Data*) data;\r
+       part = edje_object_part_object_get(wd->base, "elm.dragable.handler");\r
 \r
-       evas_object_move(wd->win, 0, 0 );\r
-       evas_object_resize(wd->win, wd->win_rect.w, wd->win_rect.h);\r
-       evas_object_move(wd->base, 0, wd->win_rect.h - wd->base_rect.h);\r
-       wd->base_rect.y = wd->win_rect.h - wd->base_rect.h;\r
-       wd->down_pos.x = ev->output.x;\r
-       wd->down_pos.y = wd->win_rect.h - wd->base_rect.h + ev->output.y;\r
-       fprintf( stderr, "DOWN! window - %d %d %d %d\n", 0, 0, wd->win_rect.w, wd->win_rect.h);\r
-       fprintf( stderr, "DOWN! base - %d %d\n", 0, wd->win_rect.h - wd->base_rect.h );\r
+       if((wd->pos == ELM_SLIDINGDRAWER_TOP) || (wd->pos == ELM_SLIDINGDRAWER_BOTTOM)) {\r
+               edje_object_size_min_get(part, NULL, &h);\r
+       }else {\r
+               edje_object_size_min_get(part, &w, NULL);\r
+       }\r
 \r
-}\r
-\r
-void\r
-_move(void *data, Evas *e, Evas_Object *obj, void *event_info)\r
-{\r
-       Evas_Event_Mouse_Move *ev;\r
-       Widget_Data *wd;\r
-\r
-       ev = (Evas_Event_Mouse_Move *) event_info;\r
-\r
-       if(!ev->buttons)\r
-                       return ;\r
-\r
-       wd  = (Widget_Data*) data;\r
-\r
-       wd->drag = ev->cur.output.y - wd->down_pos.y;\r
-       evas_object_move(wd->base, 0, wd->base_rect.y + wd->drag );\r
-       evas_object_resize(wd->base, wd->win_rect.w, wd->handler_h - wd->drag );\r
-}\r
-\r
-void\r
-_up(void *data, Evas *e, Evas_Object *obj, void *event_info)\r
-{\r
-       Evas_Event_Mouse_Up *ev;\r
-       Widget_Data *wd;\r
-       ev = (Evas_Event_Mouse_Up *) event_info;\r
-\r
-       wd = (Widget_Data *) data;\r
-\r
-       wd->base_rect.y = wd->base_rect.y + wd->drag;\r
-       wd->base_rect.h = wd->handler_h - wd->drag;\r
-       evas_object_move(wd->win, 0, wd->base_rect.y);\r
-       evas_object_resize(wd->win, wd->win_rect.w, wd->base_rect.h);\r
-       evas_object_move(wd->base, 0, 0);\r
-       wd->drag = 0;\r
-//     fprintf( stderr, "UP! window - %d %d %d %d\n", 0, wd->base_rect.y, wd->win_rect.w, wd->base_rect.h);\r
+       evas_object_size_hint_min_set(wd->handler, w, h);\r
 }\r
 \r
 EAPI Evas_Object *\r
-elm_slidingdrawer_content_get(Evas_Object *obj)\r
+elm_slidingdrawer_content_unset(Evas_Object *obj)\r
 {\r
        ELM_CHECK_WIDTYPE(obj, widtype) NULL;\r
 \r
@@ -156,7 +82,6 @@ elm_slidingdrawer_content_get(Evas_Object *obj)
        return swallow;\r
 }\r
 \r
-\r
 EAPI void\r
 elm_slidingdrawer_content_set (Evas_Object *obj, Evas_Object *content)\r
 {\r
@@ -168,6 +93,46 @@ elm_slidingdrawer_content_set (Evas_Object *obj, Evas_Object *content)
        edje_object_part_swallow (wd->base, "elm.swallow.content", content);\r
 }\r
 \r
+EAPI void\r
+elm_slidingdrawer_pos_set(Evas_Object *obj, Elm_SlidingDrawer_Pos pos)\r
+{\r
+       ELM_CHECK_WIDTYPE(obj, widtype);\r
+\r
+       Widget_Data *wd = elm_widget_data_get(obj);\r
+\r
+       switch(pos)\r
+       {\r
+       case ELM_SLIDINGDRAWER_BOTTOM:\r
+               _elm_theme_object_set(obj, wd->base, "slidingdrawer", "bottom", elm_widget_style_get(obj));\r
+               break;\r
+       case ELM_SLIDINGDRAWER_LEFT:\r
+               _elm_theme_object_set(obj, wd->base, "slidingdrawer", "left", elm_widget_style_get(obj));\r
+               break;\r
+       case ELM_SLIDINGDRAWER_RIGHT:\r
+               _elm_theme_object_set(obj, wd->base, "slidingdrawer", "right", elm_widget_style_get(obj));\r
+               break;\r
+       case ELM_SLIDINGDRAWER_TOP:\r
+               _elm_theme_object_set(obj, wd->base, "slidingdrawer", "top", elm_widget_style_get(obj));\r
+               break;\r
+       }\r
+\r
+       edje_object_part_drag_value_set(wd->base, "elm.dragable.handler", 0, 0);\r
+       wd->pos = pos;\r
+       _sizing_eval(obj);\r
+}\r
+\r
+EAPI void\r
+elm_slidingdrawer_max_drag_set(Evas_Object *obj, double dw,  double dh)\r
+{\r
+       ELM_CHECK_WIDTYPE(obj, widtype);\r
+       Widget_Data *wd;\r
+       Evas_Coord w, h;\r
+\r
+       wd = elm_widget_data_get(obj);\r
+       evas_object_geometry_get(wd->parent, NULL, NULL, &w, &h);\r
+       evas_object_size_hint_max_set(wd->dragable_rect, ((double) w) * dw, ((double) h) * dh);\r
+}\r
+\r
 \r
 EAPI Evas_Object *\r
 elm_slidingdrawer_add(Evas_Object *parent)\r
@@ -178,7 +143,7 @@ elm_slidingdrawer_add(Evas_Object *parent)
        Widget_Data *wd;\r
 \r
        if(!parent)\r
-               return ;\r
+               return  NULL;\r
 \r
        wd = ELM_NEW(Widget_Data);\r
        if(!wd) return NULL;\r
@@ -225,17 +190,20 @@ elm_slidingdrawer_add(Evas_Object *parent)
 \r
        //base\r
        wd->base = edje_object_add(e);\r
-       _elm_theme_object_set(obj, wd->base, "slidingdrawer", "base", "default");\r
+       _elm_theme_object_set(obj, wd->base, "slidingdrawer", "bottom", "default");\r
        elm_widget_sub_object_add(obj, wd->base);\r
        elm_widget_resize_object_set(obj, wd->base);\r
 \r
+       //dragable_rect\r
+       wd->dragable_rect = evas_object_rectangle_add(e);\r
+       edje_object_part_swallow(wd->base, "elm.swallow.dragable_rect", wd->dragable_rect);\r
+\r
        //handler\r
+       wd->handler = evas_object_rectangle_add(e);\r
+       evas_object_color_set(wd->handler, 0, 0, 0, 0);\r
+       edje_object_part_swallow(wd->base, "elm.dragable.handler", wd->handler);\r
+\r
        evas_object_event_callback_add(parent, EVAS_CALLBACK_RESIZE, _parent_resize, obj);\r
-       //evas_object_event_callback_add(handler, EVAS_CALLBACK_MOUSE_DOWN, _down, wd);\r
-       //evas_object_event_callback_add(handler, EVAS_CALLBACK_MOUSE_MOVE, _move, wd);\r
-       //evas_object_event_callback_add(handler, EVAS_CALLBACK_MOUSE_UP, _up, wd);\r
-       //evas_object_event_callback_add(obj, EVAS_CALLBACK_SHOW, _slidingdrawer_show, wd);\r
-       //evas_object_event_callback_add(obj, EVAS_CALLBACK_HIDE, _slidingdrawer_hide, wd);\r
 \r
        _sizing_eval(obj);\r
 \r
index 41d1744..29e764d 100644 (file)
@@ -573,6 +573,10 @@ _smart_multi_down(void *data, Evas *e, Evas_Object *obj, void *ev)
    switch (sd->state)
      {
       case TOUCH_STATE_DOWN:
+        // add TOUCH_STATE_NONE,
+        // because sometimes multi down is faster then mouse down
+        // in that case, the two touch is recognized as one touch
+      case TOUCH_STATE_NONE:
         sd->numOfTouch++;
         if (sd->numOfTouch == 1)
           {