TizenRefApp-5801 Predictive Search Results List isn't Scrollable 24/65924/5
authorNataliia Kamyshna <n.kamyshna@samsung.com>
Thu, 14 Apr 2016 05:10:35 +0000 (08:10 +0300)
committerEugene Kurzberg <i.kurtsberg@samsung.com>
Fri, 15 Apr 2016 08:52:44 +0000 (01:52 -0700)
Change-Id: Ib3dbc9853ac926bef22172c5b13a471f306f46c5
Signed-off-by: Nataliia Kamyshna <n.kamyshna@samsung.com>
lib-apps-common/inc/Ui/ListPopup.h
lib-apps-common/src/Ui/ListPopup.cpp
lib-phone/inc/Phone/Dialer/SearchResultsPopup.h
lib-phone/src/Phone/Dialer/SearchResultsPopup.cpp

index 70192110a64f5b679b2a50d1ca1f7d443931a1de..77283c5aed2f37c781003e6b5a16a0f00a759e3e 100644 (file)
@@ -65,6 +65,11 @@ namespace Ui
                 */
                virtual Evas_Object *onCreate(Evas_Object *parent) override;
 
+               /**
+                * @brief Create genlist
+                */
+               Evas_Object *createGenlist(Evas_Object *parent);
+
                /**
                 * @brief Called when item's text part needs to be updated.
                 * @details If "elm.text" part is not handled in this function then it will
index 6cf7bc00ae262fb5c99fb7d0b7fd17fa1d448567..67d22130365bb6a35aaebb0ce1c2ae07301fb7b0 100644 (file)
@@ -64,17 +64,22 @@ Evas_Object *ListPopup::onCreate(Evas_Object *parent)
 {
        Evas_Object *popup = Popup::onCreate(parent);
 
+       elm_object_part_content_set(popup, "elm.swallow.content", createGenlist(popup));
+
+       return popup;
+}
+
+Evas_Object *ListPopup::createGenlist(Evas_Object *parent)
+{
        m_Genlist = elm_genlist_add(parent);
        elm_genlist_homogeneous_set(m_Genlist, EINA_TRUE);
        elm_genlist_mode_set(m_Genlist, ELM_LIST_COMPRESS);
        elm_scroller_content_min_limit(m_Genlist, EINA_FALSE, EINA_TRUE);
-       elm_object_part_content_set(popup, "elm.swallow.content", m_Genlist);
 
        evas_object_smart_data_set(m_Genlist, this);
        evas_object_smart_callback_add(m_Genlist, "selected",
                        (Evas_Smart_Cb) &ListPopup::onSelected, this);
-
-       return popup;
+       return m_Genlist;
 }
 
 char *ListPopup::getText(ItemData *itemData, Evas_Object *genlist, const char *part)
index da7e826cca6fc8ebf765bf6fe6338de808767ff0..fa2e9bbeb031a8081c205420b2351a4e57e2fd1d 100644 (file)
@@ -40,6 +40,7 @@ namespace Phone
                        SearchResultsPopup(const SearchResults *results);
 
                private:
+                       virtual Evas_Object *onCreate(Evas_Object *parent) override;
                        virtual void onCreated() override;
 
                        virtual char *getItemText(void *data, const char *part) override;
index 4cdd3cacdb419a4f86085c3d27ea2f0555ad1528..658d06b9123a20f53f3545862697592ebc72b30e 100644 (file)
@@ -17,6 +17,7 @@
 
 #include "Phone/Dialer/SearchResultsPopup.h"
 #include "Phone/Dialer/SearchUtils.h"
+#include "Ui/Scale.h"
 #include "Utils/Callback.h"
 #include "Utils/Logger.h"
 
@@ -25,6 +26,8 @@
 #include <app_i18n.h>
 
 #define TITLE_BUFFER_SIZE 32
+#define BOX_MAX_HEIGHT 900
+#define GENLIST_ITEM_HEIGHT 144
 
 using namespace Phone::Dialer;
 
@@ -33,10 +36,30 @@ SearchResultsPopup::SearchResultsPopup(const SearchResults *results)
 {
 }
 
-void SearchResultsPopup::onCreated()
+Evas_Object *SearchResultsPopup::onCreate(Evas_Object *parent)
 {
-       elm_popup_orient_set(getEvasObject(), ELM_POPUP_ORIENT_CENTER);
+       Evas_Object *popup = Popup::onCreate(parent);
+
+       Evas_Object *box = elm_box_add(popup);
+       Evas_Object *genlist = ListPopup::createGenlist(box);
+       evas_object_size_hint_weight_set(genlist, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+       evas_object_size_hint_align_set(genlist, EVAS_HINT_FILL, EVAS_HINT_FILL);
+
+       int genlistHeight = m_Results->size() * GENLIST_ITEM_HEIGHT;
+       if (genlistHeight > BOX_MAX_HEIGHT) {
+               evas_object_size_hint_min_set(box, 0, Ui::getScaledValue(BOX_MAX_HEIGHT));
+               elm_scroller_content_min_limit(genlist, EINA_FALSE, EINA_FALSE);
+       }
+
+       evas_object_show(genlist);
+       elm_box_pack_end(box, genlist);
+       elm_object_part_content_set(popup, "elm.swallow.content", box);
 
+       return popup;
+}
+
+void SearchResultsPopup::onCreated()
+{
        char buffer[TITLE_BUFFER_SIZE];
        snprintf(buffer, sizeof(buffer), _("IDS_KPD_HEADER_SEARCH_RESULTS_HPD_ABB"), m_Results->size());
        setTitle(buffer);