[DEBUG] try to find remove error
This commit is contained in:
parent
f892d5981e
commit
27a6281357
2
external/etk
vendored
2
external/etk
vendored
@ -1 +1 @@
|
|||||||
Subproject commit 28d5740bf514df698c2cb1f31d9f65ec73fbc392
|
Subproject commit 070a4a3f99028b76dd6cc11fc9efcc37ba374221
|
@ -132,6 +132,10 @@ void ewol::EObject::AutoDestroy(void)
|
|||||||
{
|
{
|
||||||
ewol::EObjectManager::AutoRemove(this);
|
ewol::EObjectManager::AutoRemove(this);
|
||||||
}
|
}
|
||||||
|
void ewol::EObject::RemoveObject(void)
|
||||||
|
{
|
||||||
|
ewol::EObjectManager::AutoRemove(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
int32_t ewol::EObject::GetId(void)
|
int32_t ewol::EObject::GetId(void)
|
||||||
|
@ -54,18 +54,20 @@ namespace ewol {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Get the UniqueId of the EObject
|
* @brief Get the UniqueId of the EObject
|
||||||
* @param ---
|
|
||||||
* @return the requested ID
|
* @return the requested ID
|
||||||
*/
|
*/
|
||||||
int32_t GetId(void);
|
int32_t GetId(void);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Auto-destroy the object
|
* @brief Auto-destroy the object
|
||||||
* @param ---
|
|
||||||
* @return ---
|
|
||||||
*/
|
*/
|
||||||
void AutoDestroy(void);
|
void AutoDestroy(void);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Asynchronous removing the object
|
||||||
|
*/
|
||||||
|
void RemoveObject(void);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Get the current Object type of the EObject
|
* @brief Get the current Object type of the EObject
|
||||||
* @note In Embended platforme, it is many time no -rtti flag, then it is not possible to use dynamic cast ==> this will replace it
|
* @note In Embended platforme, it is many time no -rtti flag, then it is not possible to use dynamic cast ==> this will replace it
|
||||||
@ -77,7 +79,6 @@ namespace ewol {
|
|||||||
/**
|
/**
|
||||||
* @brief Add a specific event Id in the list to prevent wrong link on a EObject
|
* @brief Add a specific event Id in the list to prevent wrong link on a EObject
|
||||||
* @param[in] generateEventId event Id to add
|
* @param[in] generateEventId event Id to add
|
||||||
* @return ---
|
|
||||||
*/
|
*/
|
||||||
void AddEventId(const char * generateEventId);
|
void AddEventId(const char * generateEventId);
|
||||||
|
|
||||||
@ -85,7 +86,6 @@ namespace ewol {
|
|||||||
* @brief Generate event on all registered EObject
|
* @brief Generate event on all registered EObject
|
||||||
* @param[in] generateEventId event Id that is curetly generated
|
* @param[in] generateEventId event Id that is curetly generated
|
||||||
* @param[in] data data associated with the event
|
* @param[in] data data associated with the event
|
||||||
* @return ---
|
|
||||||
*/
|
*/
|
||||||
void GenerateEventId(const char * generateEventId, const etk::UString& data = "");
|
void GenerateEventId(const char * generateEventId, const etk::UString& data = "");
|
||||||
|
|
||||||
@ -93,14 +93,12 @@ namespace ewol {
|
|||||||
* @brief Generate Multicast event on all EObject requested the event
|
* @brief Generate Multicast event on all EObject requested the event
|
||||||
* @param[in] messageId Event Id that is generated
|
* @param[in] messageId Event Id that is generated
|
||||||
* @param[in] data String that is send at all the destinations
|
* @param[in] data String that is send at all the destinations
|
||||||
* @return ---
|
|
||||||
*/
|
*/
|
||||||
void SendMultiCast(const char* const messageId, const etk::UString& data = "");
|
void SendMultiCast(const char* const messageId, const etk::UString& data = "");
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Register of the arrival of a Multicast message
|
* @brief Register of the arrival of a Multicast message
|
||||||
* @param[in] messageId Event Id waiting for...
|
* @param[in] messageId Event Id waiting for...
|
||||||
* @return ---
|
|
||||||
*/
|
*/
|
||||||
void RegisterMultiCast(const char* const messageId);
|
void RegisterMultiCast(const char* const messageId);
|
||||||
public:
|
public:
|
||||||
@ -109,7 +107,6 @@ namespace ewol {
|
|||||||
* @param[in] destinationObject pointer on the object that might be call when an event is generated
|
* @param[in] destinationObject pointer on the object that might be call when an event is generated
|
||||||
* @param[in] eventId Event generate inside the object
|
* @param[in] eventId Event generate inside the object
|
||||||
* @param[in] eventIdgenerated event generated when call the distant EObject.OnReceiveMessage(...)
|
* @param[in] eventIdgenerated event generated when call the distant EObject.OnReceiveMessage(...)
|
||||||
* @return ---
|
|
||||||
*/
|
*/
|
||||||
void RegisterOnEvent(ewol::EObject * destinationObject, const char * eventId, const char * eventIdgenerated = NULL);
|
void RegisterOnEvent(ewol::EObject * destinationObject, const char * eventId, const char * eventIdgenerated = NULL);
|
||||||
|
|
||||||
@ -117,7 +114,6 @@ namespace ewol {
|
|||||||
* @brief Inform object that an other object is removed ...
|
* @brief Inform object that an other object is removed ...
|
||||||
* @param[in] removeObject Pointer on the EObject remeved ==> the user must remove all reference on this EObject
|
* @param[in] removeObject Pointer on the EObject remeved ==> the user must remove all reference on this EObject
|
||||||
* @note : Sub classes must call this class
|
* @note : Sub classes must call this class
|
||||||
* @return ---
|
|
||||||
*/
|
*/
|
||||||
virtual void OnObjectRemove(ewol::EObject * removeObject);
|
virtual void OnObjectRemove(ewol::EObject * removeObject);
|
||||||
|
|
||||||
@ -126,7 +122,6 @@ namespace ewol {
|
|||||||
* @param[in] CallerObject Pointer on the EObject that information came from
|
* @param[in] CallerObject Pointer on the EObject that information came from
|
||||||
* @param[in] eventId Message registered by this class
|
* @param[in] eventId Message registered by this class
|
||||||
* @param[in] data Data registered by this class
|
* @param[in] data Data registered by this class
|
||||||
* @return ---
|
|
||||||
*/
|
*/
|
||||||
virtual void OnReceiveMessage(ewol::EObject * CallerObject, const char * eventId, const etk::UString& data) { };
|
virtual void OnReceiveMessage(ewol::EObject * CallerObject, const char * eventId, const etk::UString& data) { };
|
||||||
};
|
};
|
||||||
|
@ -109,6 +109,7 @@ void ewol::EObjectManager::AutoRemove(ewol::EObject* object)
|
|||||||
// clean all EObject that request an autoRemove ...
|
// clean all EObject that request an autoRemove ...
|
||||||
void ewol::EObjectManager::RemoveAllAutoRemove(void)
|
void ewol::EObjectManager::RemoveAllAutoRemove(void)
|
||||||
{
|
{
|
||||||
|
//EWOL_DEBUG("Auto-Remove EObject section : " << m_eObjectAutoRemoveList.Size() << " elemeents");
|
||||||
while(0<m_eObjectAutoRemoveList.Size()) {
|
while(0<m_eObjectAutoRemoveList.Size()) {
|
||||||
if (m_eObjectAutoRemoveList[0]!=NULL) {
|
if (m_eObjectAutoRemoveList[0]!=NULL) {
|
||||||
EWOL_DEBUG("Real Auto-Remove EObject type=\"" << m_eObjectAutoRemoveList[0]->GetObjectType() << "\"");
|
EWOL_DEBUG("Real Auto-Remove EObject type=\"" << m_eObjectAutoRemoveList[0]->GetObjectType() << "\"");
|
||||||
|
@ -118,6 +118,13 @@ void widget::Layer::SubWidgetAdd(ewol::Widget* newWidget)
|
|||||||
m_subWidget.PushBack(newWidget);
|
m_subWidget.PushBack(newWidget);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void widget::Layer::SubWidgetAddFront(ewol::Widget* newWidget)
|
||||||
|
{
|
||||||
|
if (NULL == newWidget) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
m_subWidget.PushFront(newWidget);
|
||||||
|
}
|
||||||
|
|
||||||
void widget::Layer::SubWidgetRemove(ewol::Widget* newWidget)
|
void widget::Layer::SubWidgetRemove(ewol::Widget* newWidget)
|
||||||
{
|
{
|
||||||
|
@ -38,6 +38,7 @@ namespace widget {
|
|||||||
public:
|
public:
|
||||||
virtual void SubWidgetRemoveAll(void);
|
virtual void SubWidgetRemoveAll(void);
|
||||||
virtual void SubWidgetAdd(ewol::Widget* newWidget);
|
virtual void SubWidgetAdd(ewol::Widget* newWidget);
|
||||||
|
virtual void SubWidgetAddFront(ewol::Widget* newWidget);
|
||||||
virtual void SubWidgetRemove(ewol::Widget* newWidget);
|
virtual void SubWidgetRemove(ewol::Widget* newWidget);
|
||||||
virtual void SubWidgetUnLink(ewol::Widget* newWidget);
|
virtual void SubWidgetUnLink(ewol::Widget* newWidget);
|
||||||
protected:
|
protected:
|
||||||
|
Loading…
x
Reference in New Issue
Block a user