popup: add popup compress mode UX(Tizen 2.4)
authorJinYong Park <j4939.park@samsung.com>
Mon, 27 Nov 2017 07:03:57 +0000 (16:03 +0900)
committerJiyoun Park <jy0703.park@samsung.com>
Thu, 21 Dec 2017 09:39:47 +0000 (18:39 +0900)
original patch : https://review.tizen.org/gerrit/#/c/76197/

Change-Id: I7c5b0ee0f6230380a3b8e43a8443a8029727bdf5
Signed-off-by: JinYong Park <j4939.park@samsung.com>
src/lib/elementary/elc_popup.c
src/lib/elementary/elm_widget_popup.h

index 6012896..7b8ba3c 100644 (file)
@@ -149,6 +149,9 @@ _scroller_size_calc(Evas_Object *obj)
    const char *action_area_height;
 
    ELM_POPUP_DATA_GET(obj, sd);
+   /* TIZEN_ONLY(20160623):Apply popup compress mode UX */
+   ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd);
+   /* END */
 
    if (!sd->scroll && !sd->items) return;
 
@@ -169,9 +172,36 @@ _scroller_size_calc(Evas_Object *obj)
                   / edje_object_base_scale_get(elm_layout_edje_get(sd->action_area));
      }
 
+   /* TIZEN_ONLY(20160623):Apply popup compress mode UX
    sd->max_sc_h = h - (h_title + h_action_area);
+   */
+   if ((sd->dispmode == EVAS_DISPLAY_MODE_COMPRESS) &&
+       ((wd->orient_mode == 90) || (wd->orient_mode == 270)))
+      sd->max_sc_h = h - h_action_area;
+   else
+      sd->max_sc_h = h - (h_title + h_action_area);
+   /* END */
 }
 
+/* TIZEN_ONLY(20160623):Apply popup compress mode UX */
+static void
+_on_obj_size_hints_changed(void *data EINA_UNUSED, Evas *e EINA_UNUSED,
+                           Evas_Object *obj, void *event_info EINA_UNUSED)
+{
+   Evas_Display_Mode dispmode;
+
+   ELM_POPUP_DATA_GET(obj, sd);
+
+   dispmode = evas_object_size_hint_display_mode_get(obj);
+   if (sd->dispmode == dispmode) return;
+
+   sd->dispmode = dispmode;
+
+   _scroller_size_calc(obj);
+   elm_layout_sizing_eval(obj);
+}
+/* END */
+
 static void
 _size_hints_changed_cb(void *data,
                        Evas *e EINA_UNUSED,
@@ -1540,6 +1570,13 @@ _elm_popup_efl_canvas_group_group_add(Eo *obj, Elm_Popup_Data *priv)
    /* END */
 
 
+   /* TIZEN_ONLY(20160623):Apply popup compress mode UX */
+   priv->dispmode = evas_object_size_hint_display_mode_get(obj);
+
+   evas_object_event_callback_add(obj, EVAS_CALLBACK_CHANGED_SIZE_HINTS,
+                                  _on_obj_size_hints_changed, NULL);
+   /* END */
+
    elm_notify_align_set(priv->notify,
                         _elm_config->popup_horizontal_align,
                         _elm_config->popup_vertical_align);
index 330b074..9d20026 100644 (file)
@@ -53,6 +53,10 @@ struct _Elm_Popup_Data
    unsigned int          last_button_number;
    Evas_Coord            max_sc_h;
 
+   /* TIZEN_ONLY(20160623): Apply popup compress mode UX */
+   Evas_Display_Mode     dispmode;
+   /* END */
+
    Eina_Bool             visible : 1;
    Eina_Bool             scr_size_recalc : 1;
    Eina_Bool             scroll : 1;