#ifndef DETAILS_ITEM_LAYOUT_H
#define DETAILS_ITEM_LAYOUT_H
-#define DETAILS_ITEM_STYLE "details_item"
-
-#define PART_THUMBNAIL "swallow.thumbnail"
+#define STYLE_ITEM_DETAILS "details"
+#define PART_THUMBNAIL "swallow.thumbnail"
#endif /* DETAILS_ITEM_LAYOUT_H */
+++ /dev/null
-/*
- * Copyright 2016 Samsung Electronics Co., Ltd
- *
- * Licensed under the Flora License, Version 1.1 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://floralicense.org/license/
- *
- * 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.
- */
-
-#ifndef DETAILS_ITEM_LAYOUT_METRICS_H
-#define DETAILS_ITEM_LAYOUT_METRICS_H
-
-#define THUMBNAIL_WH 270
-#define THUMBNAIL_T 60
-#define THUMBNAIL_B 110
-
-#endif /* DETAILS_ITEM_LAYOUT_METRICS_H */
*/
#include "DetailsItemLayout.h"
-#include "DetailsItemLayoutMetrics.h"
+
+#define THUMBNAIL_WH 270
+#define THUMBNAIL_T 60
+#define THUMBNAIL_B 110
collections
{
base_scale: 2.6;
- group {
- name: "elm/genlist/item/"DETAILS_ITEM_STYLE"/default";
- alias: "elm/genlist/item_compress/"DETAILS_ITEM_STYLE"/default";
- alias: "elm/genlist/tree/"DETAILS_ITEM_STYLE"/default";
- alias: "elm/genlist/tree_compress/"DETAILS_ITEM_STYLE"/default";
+ group { "elm/genlist/item/"STYLE_ITEM_DETAILS"/default";
+ alias: "elm/genlist/item_compress/"STYLE_ITEM_DETAILS"/default";
+ alias: "elm/genlist/tree/"STYLE_ITEM_DETAILS"/default";
+ alias: "elm/genlist/tree_compress/"STYLE_ITEM_DETAILS"/default";
data.item: "contents" PART_THUMBNAIL;
desc { "default";
min: 0 THUMBNAIL_T;
align: 0.5 0.0;
- rel1.relative: 0.0 0.0;
rel2.relative: 1.0 0.0;
}
}
swallow { PART_THUMBNAIL; scale;
desc { "default";
- align: 0.5 0.0;
min: THUMBNAIL_WH THUMBNAIL_WH;
+ align: 0.5 0.0;
rel1 { relative: 0.5 1.0; to_y: "spacer.thumbnail_top"; }
rel2 { relative: 0.5 1.0; to_y: "spacer.thumbnail_top"; }
}
min: 0 THUMBNAIL_B;
align: 0.5 0.0;
rel1 { relative: 0.0 1.0; to_y: PART_THUMBNAIL; }
- rel2 { relative: 1.0 1.0; }
}
}
}
Elm_Genlist_Item_Class *BasicInfoItem::getItemClass() const
{
- static Elm_Genlist_Item_Class itc = createItemClass(DETAILS_ITEM_STYLE);
+ static Elm_Genlist_Item_Class itc = createItemClass(STYLE_ITEM_DETAILS);
return &itc;
}
virtual Evas_Object *getContent(Evas_Object *parent, const char *part) override;
/**
- * @see GenItem::getState()
- */
- virtual Eina_Bool getState(Evas_Object *parent, const char *part) override;
-
- /**
* @see GenItem::onSelected()
*/
virtual void onSelected() override;
private:
bool isSavedLog();
- Evas_Object *createUnsavedButtons(Evas_Object *parent);
- Evas_Object *createUnsavedButton(Evas_Object *box, const char *text, Evas_Smart_Cb func);
+ Evas_Object *createButton(Evas_Object *parent, const char *text, Evas_Smart_Cb func);
void onCreatePressed();
void onUpdatePressed();
# 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
+USER_EXT_EDC0_EDCS = res/details/edje/log-details-item-layout.edc res/logs/edje/log-item.edc
USER_EXT_EDC0_EDCS_IMAGE_DIRS = edje
USER_EXT_EDC0_EDCS_IMAGE_DIRS_ABS =
USER_EXT_EDC0_EDCS_SOUND_DIRS = edje
-set(EDC_FILES logs-details-item-layout.edc)
+set(EDC_FILES log-details-item-layout.edc)
set(EDJ_DIR "${RES_DIR}/details/edje")
foreach(EDC_FILE ${EDC_FILES})
#ifndef LOGS_DETAILS_ITEM_LAYOUT_H
#define LOGS_DETAILS_ITEM_LAYOUT_H
-#include "LogsDetailsPath.h"
+#include "LogDetailsPath.h"
#include "../../../../lib-common/res/details/edje/DetailsItemLayout.h"
-#define LOGS_DETAILS_ITEM_STYLE "logs_details_item"
+#define LAYOUT_LOG_TYPE "log_type"
+#define STYLE_ITEM_LOG_DETAILS "log_details"
-#define STATE_SAVED "state_saved"
-#define PART_UNSAVED_BTNS "swallow.unsaved_btns"
+#define PART_BTN_LEFT "swallow.btn_left"
+#define PART_BTN_RIGHT "swallow.btn_right"
-#define LAYOUT_ICON_CALL "icon_call"
-#define LAYOUT_ICON_MESSAGE "icon_message"
-
-#define LAYOUT_LOG_TYPE "log_type"
-#define PART_LOG_TYPE "swallow.log_type"
-
-#define COLOR_UNSAVED_BUTTON_NORMAL 0, 0, 0, 40
-#define UNSAVED_BTN_PAD_BETWEEN 16
+#define COLOR_BUTTON_NORMAL 0, 0, 0, 46
+#define COLOR_BUTTON_PRESSED 0, 0, 0, 70
#endif /* LOGS_DETAILS_ITEM_LAYOUT_H */
#define DETAILS_IMG_DIR "details/images/"
#define DETAILS_EDJ_DIR "details/edje/"
-#define LOGS_DETAILS_ITEM_LAYOUT_EDJ DETAILS_EDJ_DIR"logs-details-item-layout.edj"
+#define LOG_DETAILS_ITEM_LAYOUT_EDJ DETAILS_EDJ_DIR"log-details-item-layout.edj"
#endif /* LOGS_DETAILS_PATH_H */
--- /dev/null
+/*
+ * Copyright 2016 Samsung Electronics Co., Ltd
+ *
+ * Licensed under the Flora License, Version 1.1 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://floralicense.org/license/
+ *
+ * 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.
+ */
+
+#include "LogDetailsItemLayout.h"
+
+#include "../../../../lib-common/res/details/edje/details-item-layout.edc"
+
+#define BTN_LR 32
+#define BTN_M 16
+#define BTN_T 25
+
+#define ICON_T 6
+#define ICON_WH 45
+
+collections
+{
+ base_scale: 2.6;
+
+ group { "elm/genlist/item/"STYLE_ITEM_LOG_DETAILS"/default";
+ alias: "elm/genlist/item_compress/"STYLE_ITEM_LOG_DETAILS"/default";
+ alias: "elm/genlist/tree/"STYLE_ITEM_LOG_DETAILS"/default";
+ alias: "elm/genlist/tree_compress/"STYLE_ITEM_LOG_DETAILS"/default";
+ inherit: "elm/genlist/item/"STYLE_ITEM_DETAILS"/default";
+
+ data.item: "contents" PART_THUMBNAIL" "PART_BTN_LEFT" "PART_BTN_RIGHT;
+
+ parts {
+ spacer { "spacer.btn.top"; scale;
+ desc { "default";
+ min: 0 BTN_T;
+ align: 0.5 1.0;
+ rel1 { relative: 0.0 1.0; to_y: PART_THUMBNAIL; }
+ rel2 { relative: 1.0 1.0; to_y: PART_THUMBNAIL; }
+ }
+ }
+ spacer { "spacer.btn.left"; scale;
+ desc { "default";
+ min: BTN_LR 0;
+ align: 0.0 0.5;
+ rel2.relative: 0.0 1.0;
+ }
+ }
+ spacer { "spacer.btn.right"; scale;
+ desc { "default";
+ min: BTN_LR 0;
+ align: 1.0 0.5;
+ rel1.relative: 1.0 0.0;
+ }
+ }
+ spacer { "spacer.btn.middle"; scale;
+ desc { "default";
+ min: BTN_M 0;
+ rel1.relative: 0.5 0.0;
+ rel2.relative: 0.5 1.0;
+ }
+ }
+ swallow { PART_BTN_LEFT;
+ desc { "default";
+ align: 0.5 0.0;
+ rel1 { relative: 1.0 0.0; to_x: "spacer.btn.left"; to_y: "spacer.btn.top"; }
+ rel2 { relative: 0.0 0.0; to_x: "spacer.btn.middle"; to_y: "spacer.btn.top"; }
+ }
+ }
+ swallow { PART_BTN_RIGHT;
+ desc { "default";
+ align: 0.5 0.0;
+ rel1 { relative: 1.0 0.0; to_x: "spacer.btn.middle"; to_y: "spacer.btn.top"; }
+ rel2 { relative: 0.0 0.0; to_x: "spacer.btn.right"; to_y: "spacer.btn.top"; }
+ }
+ }
+ }
+ }
+
+ group { LAYOUT_LOG_TYPE;
+ parts {
+ spacer { "spacer.top"; scale;
+ desc { "default";
+ min: 0.0 ICON_T;
+ align: 0.5 0.0;
+ rel2.relative: 1.0 0.0;
+ }
+ }
+ swallow { "elm.swallow.content"; scale;
+ desc { "default";
+ min: ICON_WH ICON_WH;
+ align: 0.5 0.0;
+ rel1 { relative: 0.5 1.0; to_y: "spacer.top"; }
+ rel2 { relative: 0.5 1.0; to_y: "spacer.top"; }
+ }
+ }
+ }
+ }
+}
+++ /dev/null
-/*
- * Copyright 2016 Samsung Electronics Co., Ltd
- *
- * Licensed under the Flora License, Version 1.1 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://floralicense.org/license/
- *
- * 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.
- */
-
-#include "LogsDetailsItemLayout.h"
-
-#include "../../../../lib-common/res/details/edje/details-item-layout.edc"
-
-#define UNSAVED_BTN_H 78
-#define UNSAVED_BTN_T 46
-#define UNSAVED_BTN_B 30
-
-#define LOG_TYPE_WH 45
-#define LOG_TYPE_T 6
-
-collections
-{
- base_scale: 2.6;
-
- group {
- name: "elm/genlist/item/"LOGS_DETAILS_ITEM_STYLE"/default";
- alias: "elm/genlist/item_compress/"LOGS_DETAILS_ITEM_STYLE"/default";
- alias: "elm/genlist/tree/"LOGS_DETAILS_ITEM_STYLE"/default";
- alias: "elm/genlist/tree_compress/"LOGS_DETAILS_ITEM_STYLE"/default";
- inherit: "elm/genlist/item/"DETAILS_ITEM_STYLE"/default";
-
- data.item: "contents" PART_THUMBNAIL" "PART_UNSAVED_BTNS;
- data.item: "states" STATE_SAVED;
-
- parts {
- spacer { "spacer.unsaved.top"; scale;
- desc { "default";
- min: 0 UNSAVED_BTN_T;
- align: 0.5 0.0;
- rel1 { relative: 0.0 1.0; to_y: PART_THUMBNAIL; }
- rel2 { relative: 1.0 1.0; to_y: PART_THUMBNAIL; }
- }
- }
- swallow { PART_UNSAVED_BTNS; scale;
- desc { "default";
- align: 0.5 0.0;
- rel1 { relative: 0.0 1.0; to_y: "spacer.unsaved.top"; }
- rel2 { relative: 1.0 1.0; }
- }
- desc { "visible";
- inherit: "default";
- min: 0 UNSAVED_BTN_H;
- max: -1 UNSAVED_BTN_H;
- }
- }
- spacer { "spacer.unsaved.bottom"; scale;
- desc { "default";
- min: 0 UNSAVED_BTN_B;
- align: 0.5 0.0;
- rel1 { relative: 0.0 1.0; to_y: PART_UNSAVED_BTNS; }
- rel2 { relative: 1.0 1.0; }
- }
- }
- }
- programs {
- program {
- signal: "elm,state,"STATE_SAVED",active";
- source: "elm";
- action: STATE_SET "default" 0.0;
- target: PART_UNSAVED_BTNS;
- }
- program {
- signal: "elm,state,"STATE_SAVED",passive";
- source: "elm";
- action: STATE_SET "visible" 0.0;
- target: PART_UNSAVED_BTNS;
- }
- }
- }
-
- group { LAYOUT_LOG_TYPE;
- parts {
- spacer { "spacer.log_type.top"; scale;
- desc { "default";
- align: 0.5 0.0;
- min: 0.0 LOG_TYPE_T;
- rel1.relative: 0.0 0.0;
- rel2.relative: 1.0 0.0;
- }
- }
- swallow { PART_LOG_TYPE; scale;
- desc { "default";
- align: 0.5 0.0;
- min: LOG_TYPE_WH LOG_TYPE_WH;
- rel1 { relative: 0.5 1.0; to_y: "spacer.log_type.top"; }
- rel2 { relative: 0.5 1.0; to_y: "spacer.log_type.top"; }
- }
- }
- }
- }
-}
#include "Logs/Model/LogGroup.h"
#include "Logs/Model/Log.h"
-#include "AppsCommonButtons.h"
-#include "LogsDetailsItemLayout.h"
+#include "LogDetailsItemLayout.h"
#include <app_i18n.h>
Elm_Genlist_Item_Class *BasicInfoItem::getItemClass() const
{
- static Elm_Genlist_Item_Class itc = createItemClass(LOGS_DETAILS_ITEM_STYLE);
+ static Elm_Genlist_Item_Class itc = createItemClass(STYLE_ITEM_LOG_DETAILS);
return &itc;
}
if (strcmp(part, PART_THUMBNAIL) == 0) {
auto control = Ui::Thumbnail::create(parent, Ui::Thumbnail::SizeLarge, m_Log->getImagePath());
return control->getEvasObject();
- } else if (!isSavedLog() && m_Log->getNumber() && strcmp(part, PART_UNSAVED_BTNS) == 0) {
- return createUnsavedButtons(parent);
+ } else if (!isSavedLog() && m_Log->getNumber()) {
+ if (strcmp(part, PART_BTN_LEFT) == 0) {
+ return createButton(parent, "IDS_LOGS_BUTTON_CREATE_CONTACT_ABB",
+ (Evas_Smart_Cb) makeCallback(&BasicInfoItem::onCreatePressed));
+ } else if (strcmp(part, PART_BTN_RIGHT) == 0) {
+ return createButton(parent, "IDS_LOGS_BUTTON_UPDATE_CONTACT_ABB2",
+ (Evas_Smart_Cb) makeCallback(&BasicInfoItem::onUpdatePressed));
+ }
}
return nullptr;
}
-Eina_Bool BasicInfoItem::getState(Evas_Object *parent, const char *part)
-{
- return (isSavedLog() || !m_Log->getNumber());
-}
-
void BasicInfoItem::onSelected()
{
if (isSavedLog()) {
return m_Log->getPersonId() > 0;
}
-Evas_Object *BasicInfoItem::createUnsavedButtons(Evas_Object *parent)
+Evas_Object *BasicInfoItem::createButton(Evas_Object *parent, const char *text, Evas_Smart_Cb func)
{
- Evas_Object *box = elm_box_add(parent);
- elm_box_padding_set(box, UNSAVED_BTN_PAD_BETWEEN, 0);
- elm_box_horizontal_set(box, EINA_TRUE);
-
- createUnsavedButton(box, "IDS_LOGS_BUTTON_CREATE_CONTACT_ABB",
- (Evas_Smart_Cb) makeCallback(&BasicInfoItem::onCreatePressed));
-
- createUnsavedButton(box, "IDS_LOGS_BUTTON_UPDATE_CONTACT_ABB2",
- (Evas_Smart_Cb) makeCallback(&BasicInfoItem::onUpdatePressed));
-
- return box;
-}
-
-Evas_Object *BasicInfoItem::createUnsavedButton(Evas_Object *box, const char *text, Evas_Smart_Cb func)
-{
- Evas_Object *button = elm_button_add(box);
- elm_object_style_set(button, STYLE_BUTTON_CUSTOM_DEFAULT);
-
+ Evas_Object *button = elm_button_add(parent);
Evas_Object *edje = elm_layout_edje_get(button);
- edje_object_color_class_set(edje, BUTTON_COLOR_CLASS_NORMAL, COLOR_UNSAVED_BUTTON_NORMAL,
+ edje_object_color_class_set(edje, "button/default/bg", COLOR_BUTTON_NORMAL,
+ 0, 0, 0, 0, 0, 0, 0, 0);
+ edje_object_color_class_set(edje, "button/default/bg_pressed", COLOR_BUTTON_PRESSED,
0, 0, 0, 0, 0, 0, 0, 0);
elm_object_translatable_text_set(button, text);
evas_object_smart_callback_add(button, "clicked", func, this);
- evas_object_show(button);
- elm_box_pack_end(box, button);
return button;
}
if (!(type & LogGroup::ChangeRemoved)) {
m_Log = m_Group->getLogList().back();
if (type & LogGroup::ChangePerson) {
- elm_genlist_item_fields_update(getObjectItem(), STATE_SAVED, ELM_GENLIST_ITEM_FIELD_STATE);
- elm_genlist_item_fields_update(getObjectItem(), PART_UNSAVED_BTNS, ELM_GENLIST_ITEM_FIELD_CONTENT);
+ elm_genlist_item_fields_update(getObjectItem(), PART_BTN_LEFT, ELM_GENLIST_ITEM_FIELD_CONTENT);
+ elm_genlist_item_fields_update(getObjectItem(), PART_BTN_RIGHT, ELM_GENLIST_ITEM_FIELD_CONTENT);
}
if (type & LogGroup::ChangeName) {
updateTitle();
if (m_Page) {
if (!m_Log->getNumber()) {
m_Page->setTitle(_("IDS_LOGS_MBODY_UNKNOWN"));
- } else if (isSavedLog()) {
+ } else {
m_Page->setTitle(m_Log->getName());
}
}
#include "Logs/Details/LogDetailItem.h"
#include "Logs/List/LogGroupItem.h"
#include "Logs/Model/Log.h"
-#include "LogsDetailsItemLayout.h"
#include "Common/Strings.h"
#include "App/Path.h"
#include "Ui/Menu.h"
#include "Utils/Callback.h"
+#include "LogDetailsItemLayout.h"
+
#include <algorithm>
using namespace Logs::Model;
Evas_Object *DetailsView::onCreate(Evas_Object *parent)
{
- elm_theme_extension_add(nullptr, App::getResourcePath(LOGS_DETAILS_ITEM_LAYOUT_EDJ).c_str());
+ elm_theme_extension_add(nullptr, App::getResourcePath(LOG_DETAILS_ITEM_LAYOUT_EDJ).c_str());
m_Genlist = new Ui::Genlist();
m_Genlist->create(parent);
#include "Logs/Details/LogDetailItem.h"
#include "Logs/Model/Log.h"
#include "Logs/Common/Utils.h"
-#include "LogsDetailsItemLayout.h"
#include "LogItemLayout.h"
#include "LogPath.h"
#include "App/Path.h"
#include "Ui/Scale.h"
+#include "LogDetailsItemLayout.h"
+
#include <app_i18n.h>
+
#define BUFFER_SIZE 64
#define PART_LOG_TYPE_TEXT "elm.text.sub"
namespace
{
const std::string layoutPath = App::getResourcePath(LOG_ITEM_LAYOUT_EDJ);
- const std::string detailsLayoutPath = App::getResourcePath(LOGS_DETAILS_ITEM_LAYOUT_EDJ);
+ const std::string detailsLayoutPath = App::getResourcePath(LOG_DETAILS_ITEM_LAYOUT_EDJ);
}
LogDetailItem::LogDetailItem(Log *log)
Evas_Object *icon = elm_image_add(parent);
elm_image_file_set(icon, layoutPath.c_str(), path);
- elm_layout_content_set(layout, PART_LOG_TYPE, icon);
+ elm_object_content_set(layout, icon);
return layout;
}