#include <memory>
#include <Evas.h>
#include <Elementary.h>
+#include <efl_assist.h>
#include <dpl/log/log.h>
#include <dpl/log/secure_log.h>
#include <dpl/unused.h>
{
_D("called");
- DPL_UNUSED_PARAM(data);
+ Assert(obj);
+
DPL_UNUSED_PARAM(e);
DPL_UNUSED_PARAM(eventInfo);
- Assert(obj);
+ CallbackData* callbackData = static_cast<CallbackData*>(data);
+ if (callbackData) {
+ ea_object_event_callback_del(obj, EA_CALLBACK_BACK, callbackData->eaKeyCallback);
+ delete callbackData;
+ }
evas_object_event_callback_del(obj, EVAS_CALLBACK_RESIZE, resizeCallback);
}
+
static void resizeCallback(void* data, Evas* e, Evas_Object* obj, void* eventInfo)
{
_D("called");
+ Assert(obj);
+
DPL_UNUSED_PARAM(data);
DPL_UNUSED_PARAM(e);
DPL_UNUSED_PARAM(eventInfo);
- Assert(obj);
Evas_Object* popup = obj;
int popupH;
evas_object_geometry_get(popup, 0, 0, 0, &popupH);
Evas_Object* window,
const char* bodyText,
const char* checkText,
- Evas_Smart_Cb
- buttonCallback,
+ Evas_Smart_Cb buttonCallback,
+ Evas_Smart_Cb keyCallback,
void* data)
{
LogDebug("createPopup");
Evas_Object* parentWindow = PopupUtil::getParentWindow(window);
Evas_Object* popup = elm_popup_add(parentWindow);
- evas_object_event_callback_add(popup, EVAS_CALLBACK_DEL, deleteCallback, NULL);
+ CallbackData* callbackData = NULL;
+ if (keyCallback) {
+ callbackData = new CallbackData;
+ callbackData->eaKeyCallback = keyCallback;
+ ea_object_event_callback_add(popup, EA_CALLBACK_BACK, keyCallback, data);
+ }
+ evas_object_event_callback_add(popup, EVAS_CALLBACK_DEL, deleteCallback, static_cast<void*>(callbackData));
evas_object_event_callback_add(popup, EVAS_CALLBACK_RESIZE, resizeCallback, NULL);
elm_object_style_set(popup, "popup/default");