* limitations under the License.
*/
-
-#define EEXT_POPUP_DATA_KEY "eext_popup_data"
-
#include "efl_extension.h"
#include "efl_extension_private.h"
-#include "wearable/circle/efl_extension_circle_private.h"
-#include "wearable/efl_extension_common_private.h"
+
+static const char SIGNAL_ACTIVATED[] = "rotary,activated";
static void
-_eext_popup_del_cb(void *data, Evas *e, Evas_Object *obj, void *event_info)
+_rotary_activated_cb(void *data, Evas_Object *obj, void *event_info)
{
- Eext_Popup_Data *pd = (Eext_Popup_Data *)evas_object_data_get(obj, EEXT_POPUP_DATA_KEY);
- if (!pd)
- {
- LOGE("Eext Popup Data is NULL");
- return;
- }
+ eext_rotary_object_event_activated_set(data, EINA_TRUE);
+}
- free(pd);
+static void
+_eext_popup_del_cb(void *data, Evas *e, Evas_Object *obj, void *event_info)
+{
+ evas_object_smart_callback_del(obj, SIGNAL_ACTIVATED, _rotary_activated_cb);
}
EAPI Evas_Object *
return NULL;
}
-
elm_popup_scrollable_set(obj, EINA_TRUE);
Evas_Object *popup_scr = evas_object_data_get(obj, "popup_scroller");
if (popup_scr == NULL)
return NULL;
}
- Eext_Popup_Data *pd = (Eext_Popup_Data *)calloc(1, sizeof(Eext_Popup_Data));
- if (!pd)
- {
- LOGE("Eext Popup Data is NULL");
- return NULL;
- }
-
- pd->circle_scroller = circle_scr;
- evas_object_data_set(obj, EEXT_POPUP_DATA_KEY, pd);
-
+ evas_object_smart_callback_add(obj, SIGNAL_ACTIVATED, _rotary_activated_cb, circle_scr);
evas_object_event_callback_add(obj, EVAS_CALLBACK_DEL, _eext_popup_del_cb, NULL);
return obj;
}
-
-EAPI void
-eext_popup_rotary_event_activated_set(Evas_Object *eext_popup, Eina_Bool activated)
-{
- Eext_Popup_Data *pd = (Eext_Popup_Data *)evas_object_data_get(eext_popup, EEXT_POPUP_DATA_KEY);
- if (!pd)
- {
- LOGE("Eext Popup Data is NULL, Rotary event activated set failed");
- return;
- }
-
- eext_rotary_object_event_activated_set(pd->circle_scroller, activated);
-}