//Lazy deletion of gestures
Eina_Array *m_gestures_to_delete;
//Kepps config values for gesture recognize
- Eina_Hash *m_config;
Eina_Bool processing : 1;
} Efl_Canvas_Gesture_Manager_Data;
EOLIAN static Efl_Object *
_efl_canvas_gesture_manager_efl_object_constructor(Eo *obj, Efl_Canvas_Gesture_Manager_Data *pd)
{
+ Eo *config;
obj = efl_constructor(efl_super(obj, MY_CLASS));
pd->m_recognizers = eina_hash_pointer_new(EINA_FREE_CB(_hash_unref_cb));
pd->m_object_gestures = NULL;
pd->m_gestures_to_delete = eina_array_new(1);;
- pd->m_config = eina_hash_string_superfast_new(EINA_FREE_CB(eina_value_free));
/* this needs to always be present */
- eina_hash_add(pd->m_config, "glayer_tap_finger_size", eina_value_int_new(EFL_GESTURE_RECOGNIZER_TYPE_TAP_FINGER_SIZE));
+ config = efl_provider_find(efl_main_loop_get(), EFL_CONFIG_INTERFACE);
+ efl_config_int_set(config, "glayer_tap_finger_size", EFL_GESTURE_RECOGNIZER_TYPE_TAP_FINGER_SIZE);
//Register all types of recognizers at very first time.
efl_gesture_manager_recognizer_register(obj, efl_add(EFL_CANVAS_GESTURE_RECOGNIZER_TAP_CLASS, obj));
return obj;
}
-EOLIAN static Eina_Value *
-_efl_canvas_gesture_manager_config_get(const Eo *obj EINA_UNUSED, Efl_Canvas_Gesture_Manager_Data *pd, const char *name)
-{
- return eina_hash_find(pd->m_config, name);
-}
-
-EOLIAN static void
-_efl_canvas_gesture_manager_config_set(Eo *obj, Efl_Canvas_Gesture_Manager_Data *pd, const char *name, Eina_Value *value)
-{
- Eina_Value *v;
- int finger_size;
-
- EINA_SAFETY_ON_NULL_RETURN(name);
- v = eina_value_new(eina_value_type_get(value));
- eina_value_copy(value, v);
- eina_hash_add(pd->m_config, name, v);
- efl_event_callback_call(obj, EFL_GESTURE_MANAGER_EVENT_CONFIG_CHANGED, (void*)name);
- if (!eina_streq(name, "glayer_tap_finger_size")) return;
- eina_value_get(value, &finger_size);
- _update_finger_sizes(pd, finger_size);
-}
-
EOLIAN static void
_efl_canvas_gesture_manager_efl_object_destructor(Eo *obj, Efl_Canvas_Gesture_Manager_Data *pd EINA_UNUSED)
{
Efl_Canvas_Gesture_Recognizer *recognizer;
void *ptr;
- eina_hash_free(pd->m_config);
eina_hash_free(pd->m_recognizers);
EINA_LIST_FREE(pd->custom_recognizers, recognizer)
efl_unref(recognizer);
Eina_Value *
_recognizer_config_get(const Eo *obj, const char *name)
{
- Eo *manager = efl_provider_find(obj, EFL_CANVAS_GESTURE_MANAGER_CLASS);
- EINA_SAFETY_ON_NULL_RETURN_VAL(manager, NULL);
- return efl_gesture_manager_config_get(manager, name);
+ Eo *config = efl_provider_find(efl_main_loop_get(), EFL_CONFIG_INTERFACE);
+ EINA_SAFETY_ON_NULL_RETURN_VAL(config, NULL);
+ return efl_config_get(config, name);
}
EOLIAN static void