[DEV] update sharedPtr

This commit is contained in:
Edouard DUPIN 2016-07-19 21:43:58 +02:00
parent 0d94650b4b
commit ad554b54ed
14 changed files with 42 additions and 41 deletions

View File

@ -39,7 +39,7 @@ void ewol::object::Manager::displayListObject() {
for (auto &it : m_eObjectList) { for (auto &it : m_eObjectList) {
ewol::ObjectShared element = it.lock(); ewol::ObjectShared element = it.lock();
if (element != nullptr) { if (element != nullptr) {
EWOL_INFO(" [" << element->getId() << "] ref=" << element.use_count()-1 << " name='" << element->propertyName.get() << "' type=" << element->getObjectType()); EWOL_INFO(" [" << element->getId() << "] ref=" << element.useCount()-1 << " name='" << element->propertyName.get() << "' type=" << element->getObjectType());
} }
} }
} }

View File

@ -76,7 +76,7 @@ void ewol::Object::init() {
m_objectHasBeenInit = true; m_objectHasBeenInit = true;
} }
const char * const ewol::Object::getObjectType() { const char * const ewol::Object::getObjectType() const {
if (m_listType.size() == 0) { if (m_listType.size() == 0) {
return "ewol::Object"; return "ewol::Object";
} }
@ -90,7 +90,7 @@ void ewol::Object::addObjectType(const char* _type) {
} }
m_listType.push_back(_type); m_listType.push_back(_type);
} }
std::string ewol::Object::getTypeDescription() { std::string ewol::Object::getTypeDescription() const {
std::string ret("ewol::Object"); std::string ret("ewol::Object");
for(auto element : m_listType) { for(auto element : m_listType) {
ret += "|"; ret += "|";
@ -99,7 +99,7 @@ std::string ewol::Object::getTypeDescription() {
return ret; return ret;
} }
bool ewol::Object::isTypeCompatible(const std::string& _type) { bool ewol::Object::isTypeCompatible(const std::string& _type) const {
if (_type == "ewol::Object") { if (_type == "ewol::Object") {
return true; return true;
} }

View File

@ -179,18 +179,18 @@ namespace ewol {
* @brief get the current Object type of the Object * @brief get the current Object type of the Object
* @return the last type name of the element * @return the last type name of the element
*/ */
const char * const getObjectType(); const char * const getObjectType() const;
/** /**
* @brief Get the herarchie of the Object type. * @brief Get the herarchie of the Object type.
* @return descriptive string. * @return descriptive string.
*/ */
std::string getTypeDescription(); std::string getTypeDescription() const;
/** /**
* @brief check if the element herited from a specific type * @brief check if the element herited from a specific type
* @param[in] _type Type to check. * @param[in] _type Type to check.
* @return true if the element is compatible. * @return true if the element is compatible.
*/ */
bool isTypeCompatible(const std::string& _type); bool isTypeCompatible(const std::string& _type) const;
protected: protected:
/** /**
* @brief Add a type of the list of Object. * @brief Add a type of the list of Object.

View File

@ -68,7 +68,7 @@ ememory::SharedPtr<ewol::resource::TextureFile> ewol::resource::TextureFile::cre
EWOL_VERBOSE("KEEP: TextureFile: '" << _filename << "' size=" << _size << " sizeRegister=" << _sizeRegister); EWOL_VERBOSE("KEEP: TextureFile: '" << _filename << "' size=" << _size << " sizeRegister=" << _sizeRegister);
if (_filename == "") { if (_filename == "") {
ememory::SharedPtr<ewol::resource::TextureFile> object(new ewol::resource::TextureFile()); ememory::SharedPtr<ewol::resource::TextureFile> object(new ewol::resource::TextureFile());
if (nullptr == object) { if (object == nullptr) {
EWOL_ERROR("allocation error of a resource : ??TEX??"); EWOL_ERROR("allocation error of a resource : ??TEX??");
return nullptr; return nullptr;
} }

View File

@ -154,7 +154,7 @@ ememory::SharedPtr<ewol::resource::ImageDF> ewol::resource::ImageDF::create(cons
EWOL_VERBOSE("KEEP: TextureFile: '" << _filename << "' size=" << _size); EWOL_VERBOSE("KEEP: TextureFile: '" << _filename << "' size=" << _size);
if (_filename == "") { if (_filename == "") {
ememory::SharedPtr<ewol::resource::ImageDF> object(new ewol::resource::ImageDF()); ememory::SharedPtr<ewol::resource::ImageDF> object(new ewol::resource::ImageDF());
if (nullptr == object) { if (object == nullptr) {
EWOL_ERROR("allocation error of a resource : ??TEX??"); EWOL_ERROR("allocation error of a resource : ??TEX??");
return nullptr; return nullptr;
} }
@ -171,14 +171,15 @@ ememory::SharedPtr<ewol::resource::ImageDF> ewol::resource::ImageDF::create(cons
//EWOL_ERROR("Error Request the image size.y() =0 ???"); //EWOL_ERROR("Error Request the image size.y() =0 ???");
} }
std::string TmpFilename = _filename; std::string TmpFilename = _filename;
if (false == etk::end_with(_filename, ".svg") ) { if (etk::end_with(_filename, ".svg") == false) {
_size = ivec2(-1,-1); _size = ivec2(-1,-1);
} }
#ifdef __TARGET_OS__MacOs #ifdef __TARGET_OS__MacOs
EWOL_ERROR("TODO : remove this strange hack"); EWOL_ERROR("TODO : remove this strange hack");
_size = ivec2(64,64); _size = ivec2(64,64);
#endif #endif
if (_size.x()>0 && _size.y()>0) { if ( _size.x() > 0
&& _size.y() > 0) {
EWOL_VERBOSE(" == > specific size : " << _size); EWOL_VERBOSE(" == > specific size : " << _size);
#ifdef __TARGET_OS__Android #ifdef __TARGET_OS__Android
_size.setValue(nextP2(_size.x()), nextP2(_size.y())); _size.setValue(nextP2(_size.x()), nextP2(_size.y()));
@ -192,20 +193,20 @@ ememory::SharedPtr<ewol::resource::ImageDF> ewol::resource::ImageDF::create(cons
EWOL_VERBOSE("KEEP: TextureFile: '" << TmpFilename << "' new size=" << _size); EWOL_VERBOSE("KEEP: TextureFile: '" << TmpFilename << "' new size=" << _size);
ememory::SharedPtr<ewol::resource::ImageDF> object = nullptr; ememory::SharedPtr<ewol::resource::ImageDF> object = nullptr;
ememory::SharedPtr<gale::Resource> object2 = getManager().localKeep("DF__" + TmpFilename); ememory::SharedPtr<gale::Resource> object2 = getManager().localKeep("DF__" + TmpFilename);
if (nullptr != object2) { if (object2 != nullptr) {
object = ememory::dynamicPointerCast<ewol::resource::ImageDF>(object2); object = ememory::dynamicPointerCast<ewol::resource::ImageDF>(object2);
if (nullptr == object) { if (object == nullptr) {
EWOL_CRITICAL("Request resource file : '" << TmpFilename << "' With the wrong type (dynamic cast error)"); EWOL_CRITICAL("Request resource file : '" << TmpFilename << "' With the wrong type (dynamic cast error)");
return nullptr; return nullptr;
} }
} }
if (nullptr != object) { if (object != nullptr) {
return object; return object;
} }
EWOL_INFO("CREATE: ImageDF: '" << TmpFilename << "' size=" << _size); EWOL_INFO("CREATE: ImageDF: '" << TmpFilename << "' size=" << _size);
// need to crate a new one ... // need to crate a new one ...
object = ememory::SharedPtr<ewol::resource::ImageDF>(new ewol::resource::ImageDF()); object = ememory::SharedPtr<ewol::resource::ImageDF>(new ewol::resource::ImageDF());
if (nullptr == object) { if (object == nullptr) {
EWOL_ERROR("allocation error of a resource : " << _filename); EWOL_ERROR("allocation error of a resource : " << _filename);
return nullptr; return nullptr;
} }

View File

@ -157,7 +157,7 @@ bool ewol::widget::ButtonColor::onEventInput(const ewol::event::Input& _event) {
m_mouseHover = false; m_mouseHover = false;
// create a context menu : // create a context menu :
m_widgetContextMenu = ewol::widget::ContextMenu::create(); m_widgetContextMenu = ewol::widget::ContextMenu::create();
if (nullptr == m_widgetContextMenu) { if (m_widgetContextMenu == nullptr) {
EWOL_ERROR("Allocation Error"); EWOL_ERROR("Allocation Error");
return true; return true;
} }
@ -183,10 +183,10 @@ bool ewol::widget::ButtonColor::onEventInput(const ewol::event::Input& _event) {
} }
if( m_mouseHover != previousHoverState if( m_mouseHover != previousHoverState
|| m_buttonPressed != previousPressed) { || m_buttonPressed != previousPressed) {
if (true == m_buttonPressed) { if (m_buttonPressed == true) {
changeStatusIn(STATUS_PRESSED); changeStatusIn(STATUS_PRESSED);
} else { } else {
if (true == m_mouseHover) { if (m_mouseHover == true) {
changeStatusIn(STATUS_HOVER); changeStatusIn(STATUS_HOVER);
} else { } else {
changeStatusIn(STATUS_UP); changeStatusIn(STATUS_UP);

View File

@ -45,8 +45,8 @@ void ewol::widget::ContainerN::onChangePropertyLockExpand() {
requestUpdateSize(); requestUpdateSize();
} }
void ewol::widget::ContainerN::subWidgetReplace(const ewol::WidgetShared& _oldWidget, void ewol::widget::ContainerN::subWidgetReplace(ewol::WidgetShared _oldWidget,
const ewol::WidgetShared& _newWidget) { ewol::WidgetShared _newWidget) {
bool haveChange = false; bool haveChange = false;
for (auto &it : m_subWidget) { for (auto &it : m_subWidget) {
if (it != _oldWidget) { if (it != _oldWidget) {
@ -82,7 +82,7 @@ int32_t ewol::widget::ContainerN::subWidgetAdd(ewol::WidgetShared _newWidget) {
} }
int32_t ewol::widget::ContainerN::subWidgetAddStart(ewol::WidgetShared _newWidget) { int32_t ewol::widget::ContainerN::subWidgetAddStart(ewol::WidgetShared _newWidget) {
if (nullptr == _newWidget) { if (_newWidget == nullptr) {
EWOL_ERROR("[" << getId() << "] {" << getObjectType() << "} Try to add start An empty Widget ... "); EWOL_ERROR("[" << getId() << "] {" << getObjectType() << "} Try to add start An empty Widget ... ");
return -1; return -1;
} }
@ -96,7 +96,7 @@ int32_t ewol::widget::ContainerN::subWidgetAddStart(ewol::WidgetShared _newWidge
} }
void ewol::widget::ContainerN::subWidgetRemove(ewol::WidgetShared _newWidget) { void ewol::widget::ContainerN::subWidgetRemove(ewol::WidgetShared _newWidget) {
if (nullptr == _newWidget) { if (_newWidget == nullptr) {
return; return;
} }
size_t errorControl = m_subWidget.size(); size_t errorControl = m_subWidget.size();
@ -116,7 +116,7 @@ void ewol::widget::ContainerN::subWidgetRemove(ewol::WidgetShared _newWidget) {
} }
void ewol::widget::ContainerN::subWidgetUnLink(ewol::WidgetShared _newWidget) { void ewol::widget::ContainerN::subWidgetUnLink(ewol::WidgetShared _newWidget) {
if (nullptr == _newWidget) { if (_newWidget == nullptr) {
return; return;
} }
auto it(m_subWidget.begin()); auto it(m_subWidget.begin());

View File

@ -52,8 +52,8 @@ namespace ewol {
* @param[in] _oldWidget The widget to replace. * @param[in] _oldWidget The widget to replace.
* @param[in] _newWidget The widget to set. * @param[in] _newWidget The widget to set.
*/ */
virtual void subWidgetReplace(const ewol::WidgetShared& _oldWidget, virtual void subWidgetReplace(ewol::WidgetShared _oldWidget,
const ewol::WidgetShared& _newWidget); ewol::WidgetShared _newWidget);
/** /**
* @brief add at end position a Widget (note : This system use an inverted phylisophie (button to top, and left to right) * @brief add at end position a Widget (note : This system use an inverted phylisophie (button to top, and left to right)
* @param[in] _newWidget the element pointer * @param[in] _newWidget the element pointer

View File

@ -213,7 +213,7 @@ void ewol::widget::Gird::subWidgetAdd(int32_t _colId, int32_t _rowId, ewol::Widg
// The element already exist == > replace it ... // The element already exist == > replace it ...
m_tmpWidget = m_subWidget[iii].widget; m_tmpWidget = m_subWidget[iii].widget;
m_subWidget[iii].widget = _newWidget; m_subWidget[iii].widget = _newWidget;
if (nullptr != m_tmpWidget) { if (m_tmpWidget != nullptr) {
m_tmpWidget.reset(); m_tmpWidget.reset();
if (m_tmpWidget != nullptr) { if (m_tmpWidget != nullptr) {
EWOL_CRITICAL("[" << getId() << "] Error while replacing a widget ... == > never call when free"); EWOL_CRITICAL("[" << getId() << "] Error while replacing a widget ... == > never call when free");

View File

@ -68,7 +68,7 @@ ewol::widget::Manager::~Manager() {
* focus Area : * focus Area :
* *************************************************************************/ * *************************************************************************/
void ewol::widget::Manager::focusKeep(const ewol::WidgetShared& _newWidget) { void ewol::widget::Manager::focusKeep(ewol::WidgetShared _newWidget) {
if (_newWidget == nullptr) { if (_newWidget == nullptr) {
// nothing to do ... // nothing to do ...
return; return;
@ -96,7 +96,7 @@ void ewol::widget::Manager::focusKeep(const ewol::WidgetShared& _newWidget) {
} }
} }
void ewol::widget::Manager::focusSetDefault(const ewol::WidgetShared& _newWidget) { void ewol::widget::Manager::focusSetDefault(ewol::WidgetShared _newWidget) {
if( _newWidget != nullptr if( _newWidget != nullptr
&& _newWidget->propertyCanFocus.get() == false) { && _newWidget->propertyCanFocus.get() == false) {
EWOL_VERBOSE("Widget can not have focus, id=" << _newWidget->getId() ); EWOL_VERBOSE("Widget can not have focus, id=" << _newWidget->getId() );

View File

@ -28,12 +28,12 @@ namespace ewol {
* @brief Request a focus on a specify widget. * @brief Request a focus on a specify widget.
* @param[in] _newWidget Widget that might get the focus. * @param[in] _newWidget Widget that might get the focus.
*/ */
void focusKeep(const ewol::WidgetShared& _newWidget); void focusKeep(ewol::WidgetShared _newWidget);
/** /**
* @brief Set the default focus when none selected. * @brief Set the default focus when none selected.
* @param[in] _newWidget Widget that might get the focus (when nothing else). * @param[in] _newWidget Widget that might get the focus (when nothing else).
*/ */
void focusSetDefault(const ewol::WidgetShared& _newWidget); void focusSetDefault(ewol::WidgetShared _newWidget);
/** /**
* @brief Release the current focus (back on default if possible). * @brief Release the current focus (back on default if possible).
*/ */

View File

@ -299,7 +299,7 @@ ewol::WidgetShared ewol::widget::WSlider::getWidgetAtPos(const vec2& _pos) {
&& (tmpOrigin.y() <= _pos.y() && tmpOrigin.y() + tmpSize.y() >= _pos.y()) ) && (tmpOrigin.y() <= _pos.y() && tmpOrigin.y() + tmpSize.y() >= _pos.y()) )
{ {
ewol::WidgetShared tmpWidget = (*it)->getWidgetAtPos(_pos); ewol::WidgetShared tmpWidget = (*it)->getWidgetAtPos(_pos);
if (nullptr != tmpWidget) { if (tmpWidget != nullptr) {
return tmpWidget; return tmpWidget;
} }
return nullptr; return nullptr;
@ -316,7 +316,7 @@ ewol::WidgetShared ewol::widget::WSlider::getWidgetAtPos(const vec2& _pos) {
&& (tmpOrigin.y() <= _pos.y() && tmpOrigin.y() + tmpSize.y() >= _pos.y()) ) && (tmpOrigin.y() <= _pos.y() && tmpOrigin.y() + tmpSize.y() >= _pos.y()) )
{ {
ewol::WidgetShared tmpWidget = (*it)->getWidgetAtPos(_pos); ewol::WidgetShared tmpWidget = (*it)->getWidgetAtPos(_pos);
if (nullptr != tmpWidget) { if (tmpWidget != nullptr) {
return tmpWidget; return tmpWidget;
} }
return nullptr; return nullptr;
@ -332,7 +332,7 @@ ewol::WidgetShared ewol::widget::WSlider::getWidgetAtPos(const vec2& _pos) {
&& (tmpOrigin.y() <= _pos.y() && tmpOrigin.y() + tmpSize.y() >= _pos.y()) ) && (tmpOrigin.y() <= _pos.y() && tmpOrigin.y() + tmpSize.y() >= _pos.y()) )
{ {
ewol::WidgetShared tmpWidget = (*it)->getWidgetAtPos(_pos); ewol::WidgetShared tmpWidget = (*it)->getWidgetAtPos(_pos);
if (nullptr != tmpWidget) { if (tmpWidget != nullptr) {
return tmpWidget; return tmpWidget;
} }
return nullptr; return nullptr;

View File

@ -134,7 +134,7 @@ void ewol::widget::Windows::systemDraw(const ewol::DrawProperty& _displayProp) {
#endif #endif
//EWOL_WARNING(" WINDOWS draw on " << m_currentDrawId); //EWOL_WARNING(" WINDOWS draw on " << m_currentDrawId);
// first display the windows on the display // first display the windows on the display
if (nullptr != m_subWidget) { if (m_subWidget != nullptr) {
m_subWidget->systemDraw(_displayProp); m_subWidget->systemDraw(_displayProp);
//EWOL_DEBUG("Draw Windows"); //EWOL_DEBUG("Draw Windows");
} }

View File

@ -207,15 +207,15 @@ void ewol::widget::Parameter::onCallbackMenuSelected(const int32_t& _value) {
} }
void ewol::widget::Parameter::menuAdd(std::string _label, std::string _image, ewol::WidgetShared _associateWidget) { void ewol::widget::Parameter::menuAdd(std::string _label, std::string _image, ewol::WidgetShared _associateWidget) {
if (nullptr != m_paramList) { if (m_paramList != nullptr) {
m_paramList->menuAdd(_label, m_currentIdList, _image); m_paramList->menuAdd(_label, m_currentIdList, _image);
if (nullptr != m_wSlider) { if (m_wSlider != nullptr) {
if (nullptr != _associateWidget) { if (_associateWidget != nullptr) {
m_wSlider->subWidgetAdd(_associateWidget); m_wSlider->subWidgetAdd(_associateWidget);
} else { } else {
EWOL_DEBUG("Associate an empty widget on it ..."); EWOL_DEBUG("Associate an empty widget on it ...");
ewol::widget::LabelShared myLabel = widget::Label::create(); ewol::widget::LabelShared myLabel = widget::Label::create();
if (nullptr == myLabel) { if (myLabel == nullptr) {
EWOL_ERROR("Can not allocate widget == > display might be in error"); EWOL_ERROR("Can not allocate widget == > display might be in error");
} else { } else {
myLabel->propertyValue.set(std::string("No widget for : ") + _label); myLabel->propertyValue.set(std::string("No widget for : ") + _label);
@ -231,21 +231,21 @@ void ewol::widget::Parameter::menuAdd(std::string _label, std::string _image, ew
} }
} }
void ewol::widget::Parameter::menuAddGroup(std::string _label) { void ewol::widget::Parameter::menuAddGroup(std::string _label) {
if (nullptr != m_paramList) { if (m_paramList != nullptr) {
m_paramList->menuSeparator(); m_paramList->menuSeparator();
m_paramList->menuAddGroup(_label); m_paramList->menuAddGroup(_label);
} }
} }
void ewol::widget::Parameter::menuClear() { void ewol::widget::Parameter::menuClear() {
if (nullptr != m_paramList) { if (m_paramList != nullptr) {
m_paramList->menuClear(); m_paramList->menuClear();
m_currentIdList = 0; m_currentIdList = 0;
} }
} }
void ewol::widget::Parameter::menuSeparator() { void ewol::widget::Parameter::menuSeparator() {
if (nullptr != m_paramList) { if (m_paramList != nullptr) {
m_paramList->menuSeparator(); m_paramList->menuSeparator();
} }
} }