TizenRefApp-7118 Review and update Log List GUI 34/88234/7
authorNataliia Sydorchuk <n.sydorchuk@samsung.com>
Tue, 20 Sep 2016 15:02:29 +0000 (18:02 +0300)
committerNataliia Sydorchuk <n.sydorchuk@samsung.com>
Wed, 21 Sep 2016 06:19:00 +0000 (09:19 +0300)
Change-Id: Iaa461027421d88005284df85aa92e0bce89eb789
Signed-off-by: Nataliia Sydorchuk <n.sydorchuk@samsung.com>
contacts-widget/src/Widget.cpp
lib-logs/inc/Logs/List/LogItem.h
lib-logs/project_def.prop
lib-logs/res/logs/edje/LogItemLayout.h
lib-logs/res/logs/edje/log-colors.edc [deleted file]
lib-logs/res/logs/edje/log-item.edc
lib-logs/src/Logs/Details/LogDetailItem.cpp
lib-logs/src/Logs/List/LogItem.cpp
lib-phone/src/Phone/Dialer/SearchResultsControl.cpp

index 25cbf78..33331d4 100644 (file)
@@ -109,7 +109,7 @@ Evas_Object *Widget::createEmptyLayout(Evas_Object *parent)
 {
        Evas_Object *layout = elm_layout_add(parent);
        elm_layout_file_set(layout, layoutPath.c_str(), GROUP_NO_CONTACTS);
-       edje_object_signal_callback_add(elm_layout_edje_get(layout), "mouse,clicked,*", "*",
+       elm_layout_signal_callback_add(layout, "mouse,clicked,*", "*",
                        (Edje_Signal_Cb) makeCallback(&Widget::onAddPressed), this);
 
        elm_object_translatable_part_text_set(layout, PART_TITLE,
index dff84ca..5a718c2 100644 (file)
@@ -70,9 +70,11 @@ namespace Logs
                        virtual void onSelected() override;
                        void onInfoIconPressed();
 
+                       const char *getName(const char *name, const char *number) const;
+                       const char *getNumber(const char *name, const char *number) const;
+                       std::string formatCount() const;
+
                        Evas_Object *createThumbnail(Evas_Object *parent);
-                       Evas_Object *createLayout(Evas_Object *parent, const char *layoutName);
-                       Evas_Object *createIcon(Evas_Object *parent, const char *path);
                        const char *getImagePath(int type);
 
                        void updateItem(int type);
index 44af0a4..d602937 100644 (file)
@@ -60,7 +60,7 @@ USER_EDCS_FONT_DIRS_ABS =
 # EDC Flags
 USER_EXT_EDC_KEYS = EDC0
 
-USER_EXT_EDC0_EDCS = res/details/edje/logs-details-item-layout.edc res/logs/edje/log-item.edc res/logs/edje/log-colors.edc
+USER_EXT_EDC0_EDCS = res/details/edje/logs-details-item-layout.edc res/logs/edje/log-item.edc
 USER_EXT_EDC0_EDCS_IMAGE_DIRS = res
 USER_EXT_EDC0_EDCS_IMAGE_DIRS_ABS =
 USER_EXT_EDC0_EDCS_SOUND_DIRS = edje/sounds
index a47b83e..e3645ba 100644 (file)
 #ifndef LOG_ITEM_LAYOUT_H
 #define LOG_ITEM_LAYOUT_H
 
-#define LOG_ITEM                  "log_item"
+#define LAYOUT_LOG_ITEM           "log_item"
 
-#define ICON_INCOMING             "icon_incoming"
-#define ICON_OUTGOING             "icon_outgoing"
-#define ICON_MISSED               "icon_missed"
-#define ICON_REJECTED             "icon_rejected"
-#define ICON_AUTO_REJECTED        "icon_auto_rejected"
-#define ICON_INFO                 "icon_info"
+#define LAYOUT_ICON_INCOMING      "icon_incoming"
+#define LAYOUT_ICON_OUTGOING      "icon_outgoing"
+#define LAYOUT_ICON_MISSED        "icon_missed"
+#define LAYOUT_ICON_REJECTED      "icon_rejected"
+#define LAYOUT_ICON_AUTO_REJECTED "icon_auto_rejected"
+#define LAYOUT_ICON_INFO          "icon_info"
 
-#define THUMBNAIL_PART            "swallow.content"
-#define LOG_TYPE_PART             "swallow.call.type"
+#define PART_THUMBNAIL            "swallow.thumbnail"
+#define PART_LOG_TYPE             "swallow.log_type"
+#define PART_BG                   "rect.bg"
 
 #endif /* LOG_ITEM_LAYOUT_H */
diff --git a/lib-logs/res/logs/edje/log-colors.edc b/lib-logs/res/logs/edje/log-colors.edc
deleted file mode 100644 (file)
index 142f816..0000000
+++ /dev/null
@@ -1,47 +0,0 @@
-/*
- * Copyright (c) 2015-2016 Samsung Electronics Co., Ltd All Rights Reserved
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-
-color_classes {
-       color_class {
-               name: "log_type_incoming";
-               color: 42 134 176 255;
-       }
-       color_class {
-               name: "log_type_outgoing";
-               color: 52 158 91 255;
-       }
-       color_class {
-               name: "log_type_missed_reject";
-               color: 224 34 34 255;
-       }
-       color_class {
-               name: "log_type_bg";
-               color: 255 255 255 255;
-       }
-       color_class {
-               name: "info_icon";
-               color:  249 249 249 255;
-       }
-       color_class {
-               name: "info_icon_bg";
-               color: 61 184 204 255;
-       }
-       color_class {
-               name: "info_icon_bg_pressed";
-               color: 45 138 153 255;
-       }
-}
\ No newline at end of file
index 6769d38..99290b5 100644 (file)
 #include "LogPath.h"
 #include "LogItemLayout.h"
 
-#include "log-colors.edc"
 #include "../../../../lib-apps-common/res/apps-common/edje/apps-common-utils.edc"
 
-#define LAYOUT_H 104
-#define LAYOUT_W 105
-#define THUMBNAIL_SIZE 98
-#define LOG_TYPE_X 60
-#define LOG_TYPE_Y 59
+#define THUMBNAIL_WH 98
+#define LOG_TYPE_WH 45
+#define LOG_TYPE_R 7
+#define LOG_TYPE_B 6
+
+#define ICON_INFO_WH 50
+#define ICON_INFO_L 32
+#define ICON_INFO_T 47
+
+color_classes {
+       color_class {
+               name: "log_type_incoming";
+               color: 42 134 176 255;
+       }
+       color_class {
+               name: "log_type_outgoing";
+               color: 52 158 91 255;
+       }
+       color_class {
+               name: "log_type_missed_reject";
+               color: 224 34 34 255;
+       }
+       color_class {
+               name: "log_type_bg";
+               color: 255 255 255 255;
+       }
+       color_class {
+               name: "info_icon";
+               color:  249 249 249 255;
+       }
+       color_class {
+               name: "info_icon_bg";
+               color: 61 184 204 255;
+       }
+       color_class {
+               name: "info_icon_bg_pressed";
+               color: 45 138 153 255;
+       }
+}
 
 collections
 {
        base_scale: 2.6;
-       IMAGE_WITH_COLOR_AND_BG(ICON_INCOMING, LOG_ICON_INCOMING, "log_type_bg",  LOG_ICON_CONTAINER, "log_type_incoming")
-       IMAGE_WITH_COLOR_AND_BG(ICON_OUTGOING, LOG_ICON_OUTGOING, "log_type_bg",  LOG_ICON_CONTAINER, "log_type_outgoing")
-       IMAGE_WITH_COLOR_AND_BG(ICON_MISSED, LOG_ICON_MISSED, "log_type_bg",  LOG_ICON_CONTAINER, "log_type_missed_reject")
-       IMAGE_WITH_COLOR_AND_BG(ICON_REJECTED, LOG_ICON_REJECTED, "log_type_bg",  LOG_ICON_CONTAINER, "log_type_missed_reject")
-       IMAGE_WITH_COLOR_AND_BG(ICON_AUTO_REJECTED, LOG_ICON_AUTO_REJECTED, "log_type_bg",  LOG_ICON_CONTAINER, "log_type_missed_reject")
+       IMAGE_WITH_COLOR_AND_BG(LAYOUT_ICON_INCOMING, LOG_ICON_INCOMING, "log_type_bg",  LOG_ICON_CONTAINER, "log_type_incoming")
+       IMAGE_WITH_COLOR_AND_BG(LAYOUT_ICON_OUTGOING, LOG_ICON_OUTGOING, "log_type_bg",  LOG_ICON_CONTAINER, "log_type_outgoing")
+       IMAGE_WITH_COLOR_AND_BG(LAYOUT_ICON_MISSED, LOG_ICON_MISSED, "log_type_bg",  LOG_ICON_CONTAINER, "log_type_missed_reject")
+       IMAGE_WITH_COLOR_AND_BG(LAYOUT_ICON_REJECTED, LOG_ICON_REJECTED, "log_type_bg",  LOG_ICON_CONTAINER, "log_type_missed_reject")
+       IMAGE_WITH_COLOR_AND_BG(LAYOUT_ICON_AUTO_REJECTED, LOG_ICON_AUTO_REJECTED, "log_type_bg",  LOG_ICON_CONTAINER, "log_type_missed_reject")
 
-       group {
-               name: LOG_ITEM;
+       group { LAYOUT_LOG_ITEM;
                parts {
-                       part {
-                               name: THUMBNAIL_PART;
-                               type: SWALLOW;
-                               scale: 1;
-                               description {
-                                       state: "default" 0.0;
-                                       rel1.relative: 0.0 0.0;
-                                       rel2.relative: (THUMBNAIL_SIZE/LAYOUT_W) (THUMBNAIL_SIZE/LAYOUT_H);
+                       swallow { PART_THUMBNAIL; scale;
+                               desc { "default";
+                                       min: THUMBNAIL_WH THUMBNAIL_WH;
                                }
                        }
-                       part {
-                               name: LOG_TYPE_PART;
-                               type: SWALLOW;
-                               scale: 1;
-                               description {
-                                       state: "default" 0.0;
-                                       rel1.relative: (LOG_TYPE_X/LAYOUT_W) (LOG_TYPE_Y/LAYOUT_H);
-                                       rel2.relative: 1.0 1.0;
+                       spacer { "spacer.log_type.right_bottom"; scale;
+                               desc { "default";
+                                       align: 0.0 0.0;
+                                       min: LOG_TYPE_R LOG_TYPE_B;
+                                       rel1 { relative: 1.0 1.0; to: PART_THUMBNAIL; }
+                                       rel2 { relative: 1.0 1.0; to: PART_THUMBNAIL; }
                                }
                        }
-          }
+                       swallow { PART_LOG_TYPE; scale;
+                               desc { "default";
+                                       align: 1.0 1.0;
+                                       min: LOG_TYPE_WH LOG_TYPE_WH;
+                                       rel1 { relative: 1.0 1.0; to: "spacer.log_type.right_bottom"; }
+                                       rel2 { relative: 1.0 1.0; to: "spacer.log_type.right_bottom"; }
+                               }
+                       }
+               }
        }
 
-       group {
-               name: ICON_INFO;
+       group { LAYOUT_ICON_INFO;
                images.image: LOG_ICON_INFO_BG COMP;
                images.image: LOG_ICON_INFO COMP;
                parts {
-                       part { name: "rect.bg";
-                               scale: 1;
-                               type: RECT;
-                               description {
-                                       state: "default" 0.0;
+                       rect { PART_BG;
+                               desc { "default";
                                        color: 255 255 255 0;
-                                       rel1.relative: 0.0 0.0;
-                                       rel2.relative: 1.0 1.0;
-                                       aspect: 1 1;
                                }
                        }
-                       part { name: "image.bg";
-                               description {
-                                       state: "default" 0.0;
+                       image { "image.bg"; scale; repeat;
+                               desc { "default";
+                                       min: ICON_INFO_WH ICON_INFO_WH;
+                                       rel1.relative: 0.5 0.5;
+                                       rel2.relative: 0.5 0.5;
                                        image.normal: LOG_ICON_INFO_BG;
                                        color_class: "info_icon_bg";
-                                       aspect: 1 1;
-                                       aspect_preference: SOURCE;
                                }
-                               description {
-                                       state: "pressed" 0.0;
-                                       inherit:  "default" 0.0;
+                               desc { "pressed";
+                                       inherit: "default";
                                        color_class: "info_icon_bg_pressed";
                                }
                        }
-                       part { name: "image";
-                               description {
-                                       state: "default" 0.0;
+                       image { "image"; scale; repeat;
+                               desc { "default";
+                                       min: ICON_INFO_WH ICON_INFO_WH;
+                                       rel1.to: "image.bg";
+                                       rel2.to: "image.bg";
                                        image.normal: LOG_ICON_INFO;
                                        color_class: "info_icon";
-                                       aspect: 1 1;
-                                       aspect_preference: SOURCE;
                                }
                        }
                }
index dae6a85..7fb23e8 100644 (file)
@@ -28,7 +28,7 @@
 #define BUFFER_SIZE             64
 #define LOG_TYPE_SIZE           45
 
-#define PART_LOG_TYPE           "elm.text.sub"
+#define PART_LOG_TYPE_TEXT      "elm.text.sub"
 #define PART_LOG_TYPE_ICON      "elm.swallow.icon"
 #define PART_CHECK              "elm.swallow.end"
 
@@ -49,7 +49,7 @@ LogDetailItem::LogDetailItem(Log *log)
 
 char *LogDetailItem::getText(Evas_Object *parent, const char *part)
 {
-       if (strcmp(part, PART_LOG_TYPE) == 0) {
+       if (strcmp(part, PART_LOG_TYPE_TEXT) == 0) {
                time_t duration = m_Log->getDuration();
                return strdup(formatDuration(*gmtime(&duration)).c_str());
        } else if (strcmp(part, PART_LOG_TIME) == 0) {
@@ -99,20 +99,20 @@ const char *LogDetailItem::getImagePath(int type)
        const char *path = nullptr;
        switch (type) {
                case CONTACTS_PLOG_TYPE_VOICE_OUTGOING:
-                       path = ICON_OUTGOING;
+                       path = LAYOUT_ICON_OUTGOING;
                        break;
                case CONTACTS_PLOG_TYPE_VOICE_INCOMING:
-                       path = ICON_INCOMING;
+                       path = LAYOUT_ICON_INCOMING;
                        break;
                case CONTACTS_PLOG_TYPE_VOICE_INCOMING_UNSEEN:
                case CONTACTS_PLOG_TYPE_VOICE_INCOMING_SEEN:
-                       path = ICON_MISSED;
+                       path = LAYOUT_ICON_MISSED;
                        break;
                case CONTACTS_PLOG_TYPE_VOICE_REJECT:
-                       path = ICON_REJECTED;
+                       path = LAYOUT_ICON_REJECTED;
                        break;
                case CONTACTS_PLOG_TYPE_VOICE_BLOCKED:
-                       path = ICON_AUTO_REJECTED;
+                       path = LAYOUT_ICON_AUTO_REJECTED;
                        break;
        }
 
index 10a9f67..47c2f61 100644 (file)
@@ -36,9 +36,6 @@
 #include <time.h>
 
 #define BUFFER_SIZE             32
-#define LOG_TYPE_SIZE           50
-#define LOG_INFO_BG_SIZE        100
-#define LOG_TIME_TEXT_SIZE      22
 #define LOG_GROUP_MAX_COUNT     999
 
 #define PART_LOG_NAME           "elm.text"
@@ -87,38 +84,14 @@ char *LogItem::getText(Evas_Object *parent, const char *part)
        const char *name = log->getName();
        const char *number = log->getNumber();
 
-       if (!name) {
-               if (number) {
-                       name = number;
-                       number = _("IDS_LOGS_SBODY_UNSAVED_M_STATUS");
-               } else {
-                       name = _("IDS_LOGS_MBODY_UNKNOWN");
-                       number = _("IDS_LOGS_SBODY_NO_NUMBER_ABB");
-               }
-       } else if (Utils::safeCmp(name, number)){
-               number = _("IDS_LOGS_SBODY_SAVED_M_STATUS");
-       }
-
        if (strcmp(part, PART_LOG_NAME) == 0) {
-               return Utils::safeDup(name);
+               return strdup(getName(name, number));
        } else if (strcmp(part, PART_LOG_NUMBER) == 0) {
-               return Utils::safeDup(number);
+               return Utils::safeDup(getNumber(name, number));
        } else if (strcmp(part, PART_LOG_COUNT) == 0) {
-               size_t size = m_Group->getLogList().size();
-               if (size == 1) {
-                       return nullptr;
-               }
-               char buffer[BUFFER_SIZE];
-               if (size > LOG_GROUP_MAX_COUNT) {
-                       snprintf(buffer, sizeof(buffer), "(%d+)", LOG_GROUP_MAX_COUNT);
-               } else {
-                       snprintf(buffer, sizeof(buffer), "(%zu)", size);
-               }
-               return strdup(buffer);
+               return strdup(formatCount().c_str());
        } else if (strcmp(part, PART_LOG_TIME) == 0) {
-               char buffer[BUFFER_SIZE];
-               snprintf(buffer, sizeof(buffer), "<font_size=%d>%s</font_size>", LOG_TIME_TEXT_SIZE, Logs::Common::formatTime(log->getTime()).c_str());
-               return strdup(buffer);
+               return strdup(Logs::Common::formatTime(log->getTime()).c_str());
        }
 
        return nullptr;
@@ -130,13 +103,12 @@ Evas_Object *LogItem::getContent(Evas_Object *parent, const char *part)
                return createThumbnail(parent);
        } else if (strcmp(part, PART_END) == 0) {
                if (getSelectMode() == Ux::SelectNone) {
-                       Evas_Object *icon = elm_image_add(parent);
-                       elm_image_file_set(icon, layoutPath.c_str(), ICON_INFO);
-                       evas_object_size_hint_min_set(icon, getScaledValue(LOG_TYPE_SIZE), getScaledValue(LOG_INFO_BG_SIZE));
-                       evas_object_propagate_events_set(icon, EINA_FALSE);
-                       evas_object_smart_callback_add(icon, "clicked",
-                               (Evas_Smart_Cb) makeCallback(&LogItem::onInfoIconPressed), this);
-                       return icon;
+                       Evas_Object *layout = elm_layout_add(parent);
+                       elm_layout_file_set(layout, layoutPath.c_str(), LAYOUT_ICON_INFO);
+                       evas_object_propagate_events_set(layout, EINA_FALSE);
+                       elm_layout_signal_callback_add(layout, "mouse,clicked,*", PART_BG,
+                                       (Edje_Signal_Cb) makeCallback(&LogItem::onInfoIconPressed), this);
+                       return layout;
                } else {
                        return SelectItem::getContent(parent, part);
                }
@@ -175,59 +147,77 @@ void LogItem::onInfoIconPressed()
        navigator->navigateTo(new DetailsView(getGroup()->getLogList().back()->getNumber()));
 }
 
-Evas_Object *LogItem::createThumbnail(Evas_Object *parent)
+const char *LogItem::getName(const char *name, const char *number) const
 {
-       using Ui::Thumbnail;
+       if (!name) {
+               name = number ? number : _("IDS_LOGS_MBODY_UNKNOWN");
+       }
 
-       const Log *log = m_Group->getLogList().back();
-       Evas_Object *layout = createLayout(parent, LOG_ITEM);
+       return name;
+}
 
-       Thumbnail *thumbnail = Thumbnail::create(parent, Thumbnail::SizeSmall, log->getImagePath());
-       thumbnail->setSizeHint(true);
+const char *LogItem::getNumber(const char *name, const char *number) const
+{
+       if (!name) {
+               return _(number ? "IDS_LOGS_SBODY_UNSAVED_M_STATUS" : "IDS_LOGS_SBODY_NO_NUMBER_ABB");
+       } else if (Utils::safeCmp(name, number)) {
+               return _("IDS_LOGS_SBODY_SAVED_M_STATUS");
+       }
 
-       elm_layout_content_set(layout, THUMBNAIL_PART, thumbnail->getEvasObject());
-       elm_layout_content_set(layout, LOG_TYPE_PART, createIcon(layout, getImagePath(log->getType())));
+       return number;
+}
 
-       return layout;
+std::string LogItem::formatCount() const
+{
+       size_t size = m_Group->getLogList().size();
+       if (size == 1) {
+               return std::string();
+       }
+       char count[BUFFER_SIZE] = { 0, };
+       if (size > LOG_GROUP_MAX_COUNT) {
+               snprintf(count, sizeof(count), "(%d+)", LOG_GROUP_MAX_COUNT);
+       } else {
+               snprintf(count, sizeof(count), "(%zu)", size);
+       }
+       return count;
 }
 
-Evas_Object *LogItem::createLayout(Evas_Object *parent, const char *layoutName)
+Evas_Object *LogItem::createThumbnail(Evas_Object *parent)
 {
+       using Ui::Thumbnail;
+
+       const Log *log = m_Group->getLogList().back();
        Evas_Object *layout = elm_layout_add(parent);
-       elm_layout_file_set(layout, layoutPath.c_str(), layoutName);
+       elm_layout_file_set(layout, layoutPath.c_str(), LAYOUT_LOG_ITEM);
 
-       return layout;
-}
+       Thumbnail *thumbnail = Thumbnail::create(parent, Thumbnail::SizeSmall, log->getImagePath());
+       elm_layout_content_set(layout, PART_THUMBNAIL, thumbnail->getEvasObject());
 
-Evas_Object *LogItem::createIcon(Evas_Object *parent, const char *path)
-{
        Evas_Object *icon = elm_image_add(parent);
-       elm_image_file_set(icon, layoutPath.c_str(), path);
+       elm_image_file_set(icon, layoutPath.c_str(), getImagePath(log->getType()));
+       elm_layout_content_set(layout, PART_LOG_TYPE, icon);
 
-       static int size = getScaledValue(LOG_TYPE_SIZE);
-       evas_object_size_hint_min_set(icon, size, size);
-       return icon;
+       return layout;
 }
-
 const char *LogItem::getImagePath(int type)
 {
        const char *path = nullptr;
        switch (type) {
                case CONTACTS_PLOG_TYPE_VOICE_OUTGOING:
-                       path = ICON_OUTGOING;
+                       path = LAYOUT_ICON_OUTGOING;
                        break;
                case CONTACTS_PLOG_TYPE_VOICE_INCOMING:
-                       path = ICON_INCOMING;
+                       path = LAYOUT_ICON_INCOMING;
                        break;
                case CONTACTS_PLOG_TYPE_VOICE_INCOMING_UNSEEN:
                case CONTACTS_PLOG_TYPE_VOICE_INCOMING_SEEN:
-                       path = ICON_MISSED;
+                       path = LAYOUT_ICON_MISSED;
                        break;
                case CONTACTS_PLOG_TYPE_VOICE_REJECT:
-                       path = ICON_REJECTED;
+                       path = LAYOUT_ICON_REJECTED;
                        break;
                case CONTACTS_PLOG_TYPE_VOICE_BLOCKED:
-                       path = ICON_AUTO_REJECTED;
+                       path = LAYOUT_ICON_AUTO_REJECTED;
                        break;
        }
 
index 479730d..1413113 100644 (file)
@@ -71,9 +71,7 @@ Evas_Object *SearchResultsControl::onCreate(Evas_Object *parent)
 {
        Evas_Object *layout = elm_layout_add(parent);
        elm_layout_file_set(layout, layoutFilePath.c_str(), LAYOUT_PREDICTIVE);
-
-       Evas_Object *edje = elm_layout_edje_get(layout);
-       edje_object_signal_callback_add(edje, "mouse,clicked,*", PART_BG,
+       elm_layout_signal_callback_add(layout, "mouse,clicked,*", PART_BG,
                        (Edje_Signal_Cb) makeCallback(&SearchResultsControl::onResultPressed), this);
 
        return layout;
@@ -120,9 +118,7 @@ void SearchResultsControl::setResultsCount(size_t count)
 
                        m_ResultsCount = elm_layout_add(getEvasObject());
                        elm_layout_file_set(m_ResultsCount, layoutFilePath.c_str(), LAYOUT_BUTTON_MORE);
-
-                       Evas_Object *edje = elm_layout_edje_get(m_ResultsCount);
-                       edje_object_signal_callback_add(edje, "mouse,clicked,*", PART_BG,
+                       elm_layout_signal_callback_add(m_ResultsCount, "mouse,clicked,*", PART_BG,
                                        (Edje_Signal_Cb) makeCallback(&SearchResultsControl::onShowResultsPressed), this);
                }