summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVitor Sousa <vitorsousasilva@gmail.com>2016-06-21 13:58:47 -0300
committerVitor Sousa <vitorsousasilva@gmail.com>2016-06-21 14:04:38 -0300
commitc951b6b754534e496f1545ac65b611c6e66736fb (patch)
tree1665f4132bf2f8d6aa1677bdff062d49cf63b5a5
parent3186f3a5fd2e2659ae6084bae89ef602da8d7b6f (diff)
downloadefl-c951b6b754534e496f1545ac65b611c6e66736fb.tar.gz
elementary: Use callback array for monitoring callbacks in fileselector
Use callback array to register/unregister monitoring callbacks in fileselector for added safety and consistency.
-rw-r--r--src/lib/elementary/elc_fileselector.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/src/lib/elementary/elc_fileselector.c b/src/lib/elementary/elc_fileselector.c
index 68f5535713..88fa320c20 100644
--- a/src/lib/elementary/elc_fileselector.c
+++ b/src/lib/elementary/elc_fileselector.c
@@ -66,6 +66,10 @@ static void _resource_created(void *, const Eo_Event *);
static void _resource_deleted(void *, const Eo_Event *);
static void _listing_request_cleanup(Listing_Request *);
+EO_CALLBACKS_ARRAY_DEFINE(monitoring_callbacks,
+ { EFL_MODEL_EVENT_CHILD_ADDED, _resource_created },
+ { EFL_MODEL_EVENT_CHILD_REMOVED, _resource_deleted });
+
static void
_model_free_eo_cb(void *data)
{
@@ -77,16 +81,14 @@ static void
_monitoring_start(Elm_Fileselector *fs, Elm_Fileselector_Data *sd, Efl_Model *model)
{
sd->monitoring = EINA_TRUE;
- eo_event_callback_add(model, EFL_MODEL_EVENT_CHILD_ADDED, _resource_created, fs);
- eo_event_callback_add(model, EFL_MODEL_EVENT_CHILD_REMOVED, _resource_deleted, fs);
+ eo_event_callback_array_add(model, monitoring_callbacks(), fs);
}
static void
_monitoring_stop(Elm_Fileselector *fs, Elm_Fileselector_Data *sd, Efl_Model *model)
{
sd->monitoring = EINA_FALSE;
- eo_event_callback_del(model, EFL_MODEL_EVENT_CHILD_ADDED, _resource_created, fs);
- eo_event_callback_del(model, EFL_MODEL_EVENT_CHILD_REMOVED, _resource_deleted, fs);
+ eo_event_callback_array_del(model, monitoring_callbacks(), fs);
}
static void