// TIZEN_ONLY(20161208): Support quickpanel callback
static void _indicator_hide_effect_del(void *data);
static void _indicator_hide_effect_set(void *data, double duration);
+static void _indicator_show_effect(Evas_Object *conformant, double duration);
static int conform_mod_init_cnt = 0;
static Elm_Conformant_Mod_Api *qp_mod = NULL;
return EINA_TRUE;
}
+//TIZEN_ONLY(20170104): add plug message feature.
+// procotol version - change this as needed
+#define MSG_DOMAIN_CONTROL_INDICATOR 0x10001
+#define MSG_ID_INDICATOR_REPEAT_EVENT 0x10002
+#define MSG_ID_INDICATOR_ROTATION 0x10003
+#define MSG_ID_INDICATOR_OPACITY 0X1004
+#define MSG_ID_INDICATOR_TYPE 0X1005
+#define MSG_ID_INDICATOR_START_ANIMATION 0X10006
+
+typedef struct _Indicator_Data_Animation Indicator_Data_Animation;
+
+struct _Indicator_Data_Animation
+{
+ double duration;
+};
+
+static Eina_Bool
+_plug_msg_handle(void *data,
+ Eo *obj EINA_UNUSED,
+ const Eo_Event_Description *desc EINA_UNUSED,
+ void *event_info)
+{
+ Evas_Object *conformant = data;
+ Elm_Plug_Message *pm = event_info;
+ int msg_domain = 0;
+ int msg_id = 0;
+ void *msg_data = NULL;
+ int msg_data_size = 0;
+
+ msg_domain = pm->msg_domain;
+ msg_id = pm->msg_id;
+ msg_data = pm->data;
+ msg_data_size = pm->size;
+
+ if (msg_domain == MSG_DOMAIN_CONTROL_INDICATOR)
+ {
+ if (msg_id == MSG_ID_INDICATOR_START_ANIMATION)
+ {
+ if (msg_data_size != (int)sizeof(Indicator_Data_Animation)) return EINA_FALSE;
+
+ Indicator_Data_Animation *anim_data = msg_data;
+ _indicator_show_effect(conformant, anim_data->duration);
+ }
+ }
+
+ return EINA_TRUE;
+}
+//
+
static Evas_Object *
_create_portrait_indicator(Evas_Object *obj)
{
}
elm_widget_sub_object_add(obj, port_indicator);
+ //TIZEN_ONLY(20170104): add plug message feature.
+ eo_do(port_indicator, eo_event_callback_add
+ (ELM_PLUG_EVENT_MESSAGE_RECEIVED, _plug_msg_handle, obj));
+ //
eo_do(port_indicator, eo_event_callback_add
(ELM_PLUG_EVENT_IMAGE_DELETED, _port_indicator_disconnected, obj));
evas_object_size_hint_min_set(port_indicator, -1, 0);
}
elm_widget_sub_object_add(obj, land_indicator);
+ //TIZEN_ONLY(20170104): add plug message feature.
+ eo_do(land_indicator, eo_event_callback_add
+ (ELM_PLUG_EVENT_MESSAGE_RECEIVED, _plug_msg_handle, obj));
+ //
eo_do(land_indicator, eo_event_callback_add
(ELM_PLUG_EVENT_IMAGE_DELETED, _land_indicator_disconnected, obj));
evas_object_size_hint_min_set(land_indicator, -1, 0);
ecore_job_del(sd->show_region_job);
ecore_timer_del(sd->port_indi_timer);
ecore_timer_del(sd->land_indi_timer);
+ //TIZEN_ONLY(20170104): add plug message feature.
+ eo_do(sd->portrait_indicator,
+ eo_event_callback_del(ELM_PLUG_EVENT_MESSAGE_RECEIVED,
+ _plug_msg_handle, obj),
+ eo_event_callback_del(ELM_PLUG_EVENT_IMAGE_DELETED,
+ _port_indicator_disconnected, obj));
+ eo_do(sd->landscape_indicator,
+ eo_event_callback_del(ELM_PLUG_EVENT_MESSAGE_RECEIVED,
+ _plug_msg_handle, obj),
+ eo_event_callback_del(ELM_PLUG_EVENT_IMAGE_DELETED,
+ _land_indicator_disconnected, obj));
+ //
evas_object_del(sd->portrait_indicator);
evas_object_del(sd->landscape_indicator);
return int_ret;
}
+//TIZEN_ONLY(20170104): add plug message feature.
+static void
+_elm_plug_ecore_evas_msg_handle(Ecore_Evas *ee, int msg_domain, int msg_id, void *data, int size)
+{
+ Evas_Object *plug, *parent;
+ Elm_Plug_Message pm;
+
+ if (!data) return;
+ DBG("Elm plug receive msg from socket ee=%p msg_domain=%x msg_id=%x size=%d", ee, msg_domain, msg_id, size);
+ //get plug object form ee
+ plug = (Evas_Object *)ecore_evas_data_get(ee, PLUG_KEY);
+ EINA_SAFETY_ON_NULL_RETURN(plug);
+
+ pm.msg_domain = msg_domain;
+ pm.msg_id = msg_id;
+ pm.data = data;
+ pm.size = size;
+
+ eo_do(plug, eo_event_callback_call(ELM_PLUG_EVENT_MESSAGE_RECEIVED, &pm));
+}
+//
+
static void
_on_mouse_up(void *data,
Evas *e EINA_UNUSED,
ecore_evas_data_set(ee, PLUG_KEY, obj);
ecore_evas_callback_delete_request_set(ee, _elm_plug_disconnected);
ecore_evas_callback_resize_set(ee, _elm_plug_resized);
+ //TIZEN_ONLY(20170104): add plug message feature.
+ ecore_evas_callback_msg_handle_set(ee, _elm_plug_ecore_evas_msg_handle);
+ //
if (_elm_config->atspi_mode)
{