elm index: Added elm_index_delay_change_time_set/get APIs for changing delay change...
authorDaniel Juyung Seo <seojuyung2@gmail.com>
Sat, 26 Jan 2013 09:55:32 +0000 (09:55 +0000)
committerDaniel Juyung Seo <seojuyung2@gmail.com>
Sat, 26 Jan 2013 09:55:32 +0000 (09:55 +0000)
SVN revision: 83355

legacy/elementary/ChangeLog
legacy/elementary/NEWS
legacy/elementary/src/lib/elm_index.c
legacy/elementary/src/lib/elm_index.h
legacy/elementary/src/lib/elm_widget_index.h

index 682040d..6562210 100644 (file)
 2013-01-26  WooHyun Jung
 
         * A widget which doesn't have focus_region_get should give its width and height for correct focus_region_show.
+
+2013-01-26  Daniel Juyung Seo (SeoZ)
+
+        * Add elm_index_delay_change_time_set/get for changing delay change time in index.
index 71dbb3b..03da81d 100644 (file)
@@ -30,6 +30,7 @@ Additions:
    * Add elm_label_slide_go()
    * Add a label signal callback "slide,end"
    * Add "highlighted" and "unhighlighted" callbacks to list, genlist, and gengrid.
+   * Add elm_index_delay_change_time_set/get for changing delay change time in index.
 
 Improvements:
 
index bfef20d..daedd1b 100644 (file)
@@ -439,7 +439,7 @@ _sel_eval(Evas_Object *obj,
                   evas_object_smart_callback_call
                     (obj, SIG_CHANGED, (void *)it);
                   if (sd->delay) ecore_timer_del(sd->delay);
-                  sd->delay = ecore_timer_add(INDEX_DELAY_CHANGE_TIME,
+                  sd->delay = ecore_timer_add(sd->delay_change_time,
                                               _delay_change_cb, obj);
                }
           }
@@ -731,6 +731,8 @@ _elm_index_smart_add(Eo *obj, void *_pd, va_list *list EINA_UNUSED)
    elm_layout_content_set(obj, "elm.swallow.index.0", priv->bx[0]);
    evas_object_show(priv->bx[0]);
 
+   priv->delay_change_time = INDEX_DELAY_CHANGE_TIME;
+
    if (edje_object_part_exists
          (wd->resize_obj, "elm.swallow.index.1"))
      {
@@ -1416,6 +1418,38 @@ _horizontal_get(Eo *obj EINA_UNUSED, void *_pd, va_list *list)
    *ret = sd->horizontal;
 }
 
+EAPI void
+elm_index_delay_change_time_set(Evas_Object *obj, double delay_change_time)
+{
+   ELM_INDEX_CHECK(obj);
+   eo_do(obj, elm_obj_index_delay_change_time_set(delay_change_time));
+}
+
+static void
+_delay_change_time_set(Eo *obj __UNUSED__, void *_pd, va_list *list)
+{
+   double dtime = va_arg(*list, double);
+   Elm_Index_Smart_Data *sd = _pd;
+   sd->delay_change_time = dtime;
+}
+
+EAPI double
+elm_index_delay_change_time_get(const Evas_Object *obj)
+{
+   ELM_INDEX_CHECK(obj) 0.0;
+   double ret = 0.0;
+   eo_do((Eo *)obj, elm_obj_index_delay_change_time_get(&ret));
+   return ret;
+}
+
+static void
+_delay_change_time_get(Eo *obj __UNUSED__, void *_pd, va_list *list)
+{
+   double *ret = va_arg(*list, double *);
+   Elm_Index_Smart_Data *sd = _pd;
+   *ret = sd->delay_change_time;
+}
+
 static void
 _class_constructor(Eo_Class *klass)
 {
@@ -1450,6 +1484,8 @@ _class_constructor(Eo_Class *klass)
         EO_OP_FUNC(ELM_OBJ_INDEX_ID(ELM_OBJ_INDEX_SUB_ID_INDICATOR_DISABLED_GET), _indicator_disabled_get),
         EO_OP_FUNC(ELM_OBJ_INDEX_ID(ELM_OBJ_INDEX_SUB_ID_HORIZONTAL_SET), _horizontal_set),
         EO_OP_FUNC(ELM_OBJ_INDEX_ID(ELM_OBJ_INDEX_SUB_ID_HORIZONTAL_GET), _horizontal_get),
+        EO_OP_FUNC(ELM_OBJ_INDEX_ID(ELM_OBJ_INDEX_SUB_ID_DELAY_CHANGE_TIME_SET), _delay_change_time_set),
+        EO_OP_FUNC(ELM_OBJ_INDEX_ID(ELM_OBJ_INDEX_SUB_ID_DELAY_CHANGE_TIME_GET), _delay_change_time_get),
         EO_OP_FUNC_SENTINEL
    };
    eo_class_funcs_set(klass, func_desc);
@@ -1472,6 +1508,8 @@ static const Eo_Op_Description op_desc[] = {
      EO_OP_DESCRIPTION(ELM_OBJ_INDEX_SUB_ID_INDICATOR_DISABLED_GET, "Get the value of indicator's disabled status."),
      EO_OP_DESCRIPTION(ELM_OBJ_INDEX_SUB_ID_HORIZONTAL_SET, "Enable or disable horizontal mode on the index object."),
      EO_OP_DESCRIPTION(ELM_OBJ_INDEX_SUB_ID_HORIZONTAL_GET, "Get a value whether horizontal mode is enabled or not."),
+     EO_OP_DESCRIPTION(ELM_OBJ_INDEX_SUB_ID_DELAY_CHANGE_TIME_SET, "Set a delay change time value for index object."),
+     EO_OP_DESCRIPTION(ELM_OBJ_INDEX_SUB_ID_DELAY_CHANGE_TIME_GET, "Get a delay change time value for index object."),
      EO_OP_DESCRIPTION_SENTINEL
 };
 static const Eo_Class_Description class_desc = {
index 2aa6615..227def9 100644 (file)
@@ -77,6 +77,8 @@ enum
    ELM_OBJ_INDEX_SUB_ID_INDICATOR_DISABLED_GET,
    ELM_OBJ_INDEX_SUB_ID_HORIZONTAL_SET,
    ELM_OBJ_INDEX_SUB_ID_HORIZONTAL_GET,
+   ELM_OBJ_INDEX_SUB_ID_DELAY_CHANGE_TIME_SET,
+   ELM_OBJ_INDEX_SUB_ID_DELAY_CHANGE_TIME_GET,
    ELM_OBJ_INDEX_SUB_ID_LAST
 };
 
@@ -306,6 +308,31 @@ enum
  * @see elm_index_horizontal_get
  */
 #define elm_obj_index_horizontal_get(ret) ELM_OBJ_INDEX_ID(ELM_OBJ_INDEX_SUB_ID_HORIZONTAL_GET), EO_TYPECHECK(Eina_Bool *, ret)
+
+/**
+ * @def elm_obj_index_delay_change_time_set
+ * @since 1.8
+ *
+ * Change index delay change time.
+ *
+ * @param[out] ret
+ *
+ * @see elm_index_delay_change_time_get
+ */
+#define elm_obj_index_delay_change_time_set(dtime) ELM_OBJ_INDEX_ID(ELM_OBJ_INDEX_SUB_ID_DELAY_CHANGE_TIME_SET), EO_TYPECHECK(double, dtime)
+
+/**
+ * @def elm_obj_index_delay_change_time_get
+ * @since 1.8
+ *
+ * Get index delay change time.
+ *
+ * @param[out] ret
+ *
+ * @see elm_index_delay_change_time_set
+ */
+#define elm_obj_index_delay_change_time_get(ret) ELM_OBJ_INDEX_ID(ELM_OBJ_INDEX_SUB_ID_DELAY_CHANGE_TIME_GET), EO_TYPECHECK(double *, ret)
+
 /**
  * @addtogroup Index
  * @{
@@ -636,5 +663,31 @@ EAPI void                      elm_index_horizontal_set(Evas_Object *obj, Eina_B
 EAPI Eina_Bool                 elm_index_horizontal_get(const Evas_Object *obj);
 
 /**
+ * Set a delay change time for index object.
+ *
+ * @param obj The index object.
+ * @param delay_change_time The delay change time to set.
+ *
+ * @note delay time is 0.2 sec by default.
+ *
+ * @see elm_index_delay_change_time_get
+ *
+ * @ingroup Index
+ */
+EAPI void                      elm_index_delay_change_time_set(Evas_Object *obj, double delay_change_time);
+
+/**
+ * Get a delay change time for index object.
+ *
+ * @param obj The index object.
+ * @return delay change time in seconds
+ *
+ * @see elm_index_delay_change_time_set
+ *
+ * @ingroup Index
+ */
+EAPI double                    elm_index_delay_change_time_get(const Evas_Object *obj);
+
+/**
  * @}
  */
index 730cc74..9610961 100644 (file)
@@ -28,6 +28,7 @@ struct _Elm_Index_Smart_Data
    int                   level;
    Evas_Coord            dx, dy;
    Ecore_Timer          *delay;
+   double                delay_change_time;
    Eina_Bool             level_active[2];
 
    Eina_Bool             down : 1;