+ Refact TText util.
Change-Id: Ibaa6186fe10799ba2e14121676fc17a6e653e16f
Signed-off-by: Denis Dolzhenko <d.dolzhenko@samsung.com>
if (isLastFrame() || isEmpty())
App::getInst().exit();
else {
- // TODO: Check this code.
- bool isToastPopup = dynamic_cast<ToastPopup*>(App::getInst().getPopupManager().getTop()) != nullptr;
- if (!isToastPopup)
- App::getInst().getPopupManager().pop();
+ App::getInst().getPopupManager().pop(&frame);
NaviFrameView::pop(frame);
}
}
// Translatable Text
struct TText
{
+ // Constructor for nullptr;
TText(std::nullptr_t)
: m_pDomain(nullptr)
, m_pMsg(nullptr)
+ , m_IsTranslatable(false)
{
}
- explicit TText(const char *stringId, const char *domainName)
+ // Constructor for translatable string;
+ TText(bool dummy, const char *stringId, const char *domainName)
: m_pDomain(domainName)
, m_pMsg(stringId)
+ , m_IsTranslatable(true)
{
- };
+ }
+
+ // Constructor for plain C string;
+ TText(const char *str)
+ : m_pDomain(nullptr)
+ , m_pMsg(str)
+ , m_IsTranslatable(false)
+ {
+ }
+
+ // Constructor for plain std::string;
+ TText(std::string str)
+ : m_pDomain(nullptr)
+ , m_Str(std::move(str))
+ , m_pMsg(m_Str.c_str())
+ , m_IsTranslatable(false)
+ {
+ }
const char *getMsg() const
{
return m_pDomain;
}
+ bool isTranslatable() const
+ {
+ return m_IsTranslatable;
+ }
+
private:
TText(TText&) = delete;
TText operator =(TText&) = delete;
const char *m_pDomain;
+ std::string m_Str;
const char *m_pMsg;
+ bool m_IsTranslatable;
};
// dgettext
const char *m_pMsg;
};
- #define msgt(strId) TText(strId, MSG_DOMAIN)
+ #define msgt(strId) TText(true, strId, MSG_DOMAIN)
#define msg(strId) DText(strId, MSG_DOMAIN)
#define msgArgs(strId, ...) DText(0, strId, MSG_DOMAIN, __VA_ARGS__)
#define sys(strId) DText(strId, SYS_DOMAIN)
- #define syst(strId) TText(strId, SYS_DOMAIN)
+ #define syst(strId) TText(true, strId, SYS_DOMAIN)
#define sysArgs(strId, ...) DText(0, strId, SYS_DOMAIN, __VA_ARGS__)
}
IconTextPopup();
virtual ~IconTextPopup();
- void setText(const std::string &text);
+ void setText(const TText &text);
void setIcon(IconType type);
private:
public:
static void defaultButtonCb(Popup &popup, void *userData);
+ static const double defaultTimeOut;
public:
Popup();
virtual ~Popup();
void show(bool deferred = true);
- void setTitle(const std::string &title);
void setTitle(const TText &title);
- void setTimeOut(double timeout);
+ void setTimeOut(double timeout = defaultTimeOut);
+ double getTimeOut() const;
Evas_Object *addBottomButton(const TText &text, PopupButtonCb cb = defaultButtonCb, void *userData = nullptr);
Evas_Object *addBottomButton(const char *iconName, PopupButtonCb cb = defaultButtonCb, void *userData = nullptr);
: public Popup {
public:
- ToastPopup(double timeout = 2.0);
+ ToastPopup(double timeout = defaultTimeOut);
virtual ~ToastPopup();
void setIcon(const char *iconName);
void setText(const std::string &text);
static ToastPopup *toast(const TText &text, const char *iconName = nullptr);
- static ToastPopup *toast(const std::string &text, const char *iconName = nullptr);
};
}
*/
const char *getTextCStr(const char *part = nullptr) const;
- /**
- * @brief Sets text into specified part.
- * @param[in] text a text to be set in specified part
- * @param[in] part a part to get text from. If part is nullptr the default part is used.
- */
- void setText(const char *text, const char *part = nullptr);
-
- /**
- * @brief Sets text into specified part.
- * @param[in] text a text to be set in specified part
- * @param[in] part a part to get text from. If part is nullptr the default part is used.
- */
- void setText(const std::string &text, const char *part = nullptr);
-
/**
* @brief Sets IDS of translatable string into specified part.
* @param[in] text a translatable text to be set in specified part.
Evas *getEvas() const;
static void setText(Evas_Object *obj, const TText &text, const char *part = nullptr);
- static void setText(Evas_Object *obj, const std::string &text, const char *part = nullptr);
- static void setText(Evas_Object *obj, const char *text, const char *part = nullptr);
static Evas_Object *addLayout(Evas_Object *parent, const std::string &edjePath, const std::string &group);
static Evas_Object *addIconButton(Evas_Object *parent, const std::string &iconName, Evas_Smart_Cb clickedCb = nullptr, void *cbData = nullptr);
edje_message_signal_process();
}
- inline void View::setText(const char *text, const char *part)
- {
- const char *notNullText = text ? text : "";
- elm_object_part_text_set(m_pEo, part, notNullText);
- }
-
- inline void View::setText(const std::string &text, const char *part)
- {
- setText(text.c_str(), part);
- }
-
inline void View::setText(const TText &text, const char *part)
{
setText(m_pEo, text, part);
inline void View::setText(Evas_Object *obj, const TText &text, const char *part)
{
- elm_object_domain_translatable_part_text_set(obj, part, text.getDomain(), text.getMsg());
- }
-
- inline void View::setText(Evas_Object *obj, const std::string &text, const char *part)
- {
- setText(obj, text.c_str(), part);
- }
-
- inline void View::setText(Evas_Object *obj, const char *text, const char *part)
- {
- elm_object_part_text_set(obj, part, text);
+ if (text.isTranslatable())
+ elm_object_domain_translatable_part_text_set(obj, part, text.getDomain(), text.getMsg());
+ else {
+ elm_object_part_text_translatable_set(obj, part, false);
+ elm_object_part_text_set(obj, part, text.getMsg());
+ }
}
inline std::string View::getText(const char *part) const
*/
const char *getTextCStr(const char *part = nullptr) const;
- /**
- * @brief Sets text into specified part.
- * @param[in] text a text to be set in specified part
- * @param[in] part a part to get text from. If part is nullptr the default part is used.
- */
- void setText(const char *text, const char *part = nullptr);
-
- /**
- * @brief Sets text into specified part.
- * @param[in] text a text to be set in specified part
- * @param[in] part a part to get text from. If part is nullptr the default part is used.
- */
- void setText(const std::string &text, const char *part = nullptr);
-
/**
* @brief Sets IDS of translatable string into specified part.
* @param[in] text a translatable text to be set in specified part.
return elm_object_item_disabled_get(getElmObjItem());
}
- inline void ViewItem::setText(const char *text, const char *part)
- {
- elm_object_item_part_text_set(getElmObjItem(), part, text);
- }
-
inline void ViewItem::setTranslatable(bool translatable, const char *domain, const char *part)
{
elm_object_item_domain_part_text_translatable_set(getElmObjItem(), part, domain, translatable);
}
- inline void ViewItem::setText(const std::string &text, const char *part)
- {
- setText(text.c_str(), part);
- }
-
inline void ViewItem::setText(const TText &text, const char *part)
{
setText(getElmObjItem(), text, part);
inline void ViewItem::setText(Elm_Object_Item *it, const TText &text, const char *part)
{
- elm_object_item_domain_translatable_part_text_set(it, part, text.getDomain(), text.getMsg());
+ if (text.isTranslatable()) {
+ elm_object_item_domain_translatable_part_text_set(it, part, text.getDomain(), text.getMsg());
+ } else {
+ elm_object_item_part_text_translatable_set(it, part, false);
+ elm_object_item_part_text_set(it, part, text.getMsg());
+ }
}
inline std::string ViewItem::getText(const char *part) const
void Entry::setEditInfo(Entry &entry)
{
- setText(entry.getEntry());
+ View::setText(entry.getEntry());
setCursorPos(getCursorPos());
}
{
}
-void IconTextPopup::setText(const std::string &text)
+void IconTextPopup::setText(const TText &text)
{
View::setText(m_pLayout, text, "text");
}
const char *buttonRightStyle = "popup/circle/right";
}
+const double Popup::defaultTimeOut = 2.0;
+
Popup::Popup()
: BasePopup(elm_popup_add(getWindow()))
, m_pShowIdler(nullptr)
elm_popup_timeout_set(getEo(), timeout);
}
+double Popup::getTimeOut() const
+{
+ return elm_popup_timeout_get(getEo());
+}
+
Evas_Object *Popup::addButton(const char *part, PopupButtonCb buttonCb, void *userData)
{
Evas_Object *btn = elm_button_add(getEo());
return button;
}
-void Popup::setTitle(const std::string &title)
-{
- setText(title, titlePart);
-}
-
void Popup::setTitle(const TText &title)
{
setText(title, titlePart);
return toast;
}
-ToastPopup *ToastPopup::toast(const std::string &text, const char *iconName)
-{
- auto *toast = createToast(iconName);
- toast->setText(text);
- return toast;
-}
#include "MoreOption.h"
#include "SelectCtxPopup.h"
#include "ToastPopup.h"
+#include "IconTextPopup.h"
using namespace Msg;
void ConvFrame::onDelButtonClicked(Evas_Object *obj, void *event)
{
MSG_LOG("");
- if (m_pList->deleteCheckedItems())
- ToastPopup::toast(msgt("WDS_ALM_TPOP_DELETED_ABB"), DELETEG_MORE_ICON);
+ if (m_pList->deleteCheckedItems()) {
+ auto *popup = new IconTextPopup;
+ popup->setIcon(IconTextPopup::CheckIcon);
+ popup->setText(msgt("WDS_ALM_TPOP_DELETED_ABB"));
+ popup->setTimeOut();
+ popup->show();
+ }
setMode(NormalMode);
}
#include "SelectCtxPopup.h"
#include "StandardPopup.h"
#include "ToastPopup.h"
+#include "IconTextPopup.h"
#include "PopupManager.h"
#include "MsgThreadFrame.h"
#include "Callback.h"
void MsgThreadFrame::onDelButtonClicked(Evas_Object *obj, void *event)
{
MSG_LOG("");
- if (m_pThreadList->deleteCheckedItems())
- ToastPopup::toast(msgt("WDS_ALM_TPOP_DELETED_ABB"), DELETEG_MORE_ICON);
+ if (m_pThreadList->deleteCheckedItems()) {
+ auto *popup = new IconTextPopup;
+ popup->setIcon(IconTextPopup::CheckIcon);
+ popup->setText(msgt("WDS_ALM_TPOP_DELETED_ABB"));
+ popup->setTimeOut();
+ popup->show();
+ }
setNormalMode(true);
}