/*
- * Copyright (c) 2014 Samsung Electronics Co., Ltd.
+ * Copyright (c) 2018 Samsung Electronics Co., Ltd.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
#include "ecore-callback-manager.h"
// EXTERNAL INCLUDES
+// Ecore is littered with C style cast
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wold-style-cast"
#include <Ecore.h>
#include <dali/integration-api/debug.h>
return false;
}
- CallbackData *callbackData = new CallbackData( callback );
+ CallbackData* callbackData = new CallbackData( callback );
callbackData->mRemoveFromContainerFunction = MakeCallback( this, &EcoreCallbackManager::RemoveCallbackFromContainer );
return true;
}
+void EcoreCallbackManager::RemoveIdleCallback( CallbackBase* callback )
+{
+ CallbackList::iterator it = mCallbackContainer.begin();
+
+ while( mCallbackContainer.end() != it )
+ {
+ CallbackData* data = *it;
+
+ if( data->mCallback == callback )
+ {
+ it = mCallbackContainer.erase( it );
+ ecore_idler_del( data->mIdler );
+
+ // delete our data
+ delete data;
+ }
+ else
+ {
+ it++;
+ }
+ }
+}
+
void EcoreCallbackManager::RemoveCallbackFromContainer(CallbackData *callbackData)
{
mCallbackContainer.remove(callbackData);
} // namespace Internal
} // namespace Dali
+
+#pragma GCC diagnostic pop