{
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)
#include "Phone/Dialer/SearchResultsPopup.h"
#include "Phone/Dialer/SearchUtils.h"
+#include "Ui/Scale.h"
#include "Utils/Callback.h"
#include "Utils/Logger.h"
#include <app_i18n.h>
#define TITLE_BUFFER_SIZE 32
+#define BOX_MAX_HEIGHT 900
+#define GENLIST_ITEM_HEIGHT 144
using namespace Phone::Dialer;
{
}
-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);