[DEV] new staep to owner
This commit is contained in:
parent
d18b202e75
commit
2157099f0a
@ -42,12 +42,12 @@ ewol::object::Shared<appl::Buffer> appl::BufferManager::createNewBuffer() {
|
|||||||
|
|
||||||
ewol::object::Shared<appl::Buffer> appl::BufferManager::get(const std::string& _fileName, bool _createIfNeeded) {
|
ewol::object::Shared<appl::Buffer> appl::BufferManager::get(const std::string& _fileName, bool _createIfNeeded) {
|
||||||
APPL_INFO("get(" << _fileName << "," << _createIfNeeded << ")");
|
APPL_INFO("get(" << _fileName << "," << _createIfNeeded << ")");
|
||||||
for (int32_t iii = 0; iii < m_list.size(); ++iii) {
|
for (auto &it : m_list) {
|
||||||
if (m_list[iii] == NULL) {
|
if (it == NULL) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
if (m_list[iii]->getFileName() == _fileName) {
|
if (it->getFileName() == _fileName) {
|
||||||
return m_list[iii];
|
return it;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (_createIfNeeded == true) {
|
if (_createIfNeeded == true) {
|
||||||
@ -76,22 +76,32 @@ void appl::BufferManager::onObjectRemove(const ewol::object::Shared<ewol::Object
|
|||||||
if (m_bufferSelected == _removeObject) {
|
if (m_bufferSelected == _removeObject) {
|
||||||
setBufferSelected(NULL);
|
setBufferSelected(NULL);
|
||||||
}
|
}
|
||||||
for (int32_t iii = 0; iii < m_list.size(); ++iii) {
|
for (auto it(m_list.begin()); it!=m_list.end(); ++it) {
|
||||||
if (m_list[iii] != _removeObject) {
|
if (*it != _removeObject) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
m_list[iii] = NULL;
|
m_list.erase(it);
|
||||||
m_list.erase(m_list.begin()+iii);
|
it = m_list.begin();
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ewol::object::Shared<appl::Buffer> appl::BufferManager::get(int32_t _id) {
|
||||||
|
int32_t id = 0;
|
||||||
|
for (auto it : m_list) {
|
||||||
|
if (id == _id) {
|
||||||
|
return it;
|
||||||
|
}
|
||||||
|
id++;
|
||||||
|
}
|
||||||
|
return m_list.back();
|
||||||
|
}
|
||||||
|
|
||||||
bool appl::BufferManager::exist(const std::string& _fileName) {
|
bool appl::BufferManager::exist(const std::string& _fileName) {
|
||||||
for (int32_t iii = 0; iii < m_list.size(); ++iii) {
|
for (auto it : m_list) {
|
||||||
if (m_list[iii] == NULL) {
|
if (it == nullptr) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
if (m_list[iii]->getFileName() == _fileName) {
|
if (it->getFileName() == _fileName) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -9,6 +9,7 @@
|
|||||||
#ifndef __BUFFER_MANAGER_H__
|
#ifndef __BUFFER_MANAGER_H__
|
||||||
#define __BUFFER_MANAGER_H__
|
#define __BUFFER_MANAGER_H__
|
||||||
|
|
||||||
|
#include <list>
|
||||||
#include <appl/Buffer.h>
|
#include <appl/Buffer.h>
|
||||||
#include <appl/globalMsg.h>
|
#include <appl/globalMsg.h>
|
||||||
#include <ewol/widget/Widget.h>
|
#include <ewol/widget/Widget.h>
|
||||||
@ -21,7 +22,7 @@ namespace appl {
|
|||||||
public:
|
public:
|
||||||
~BufferManager();
|
~BufferManager();
|
||||||
private:
|
private:
|
||||||
std::vector<ewol::object::Shared<appl::Buffer>> m_list; // list of all buffer curently open
|
std::list<ewol::object::Owner<appl::Buffer>> m_list; // list of all buffer curently open
|
||||||
public:
|
public:
|
||||||
/**
|
/**
|
||||||
* @brief Get a specific buffer with his name (can create a new buffer).
|
* @brief Get a specific buffer with his name (can create a new buffer).
|
||||||
@ -53,9 +54,7 @@ namespace appl {
|
|||||||
* @param[in] _id Number of buffer
|
* @param[in] _id Number of buffer
|
||||||
* @return pointer on the buffer
|
* @return pointer on the buffer
|
||||||
*/
|
*/
|
||||||
ewol::object::Shared<appl::Buffer> get(int32_t _id) {
|
ewol::object::Shared<appl::Buffer> get(int32_t _id);
|
||||||
return m_list[_id];
|
|
||||||
}
|
|
||||||
/**
|
/**
|
||||||
* @brief Create a new buffer empty.
|
* @brief Create a new buffer empty.
|
||||||
* @return Created buffer or NULL.
|
* @return Created buffer or NULL.
|
||||||
|
@ -15,10 +15,8 @@
|
|||||||
#include <ewol/widget/List.h>
|
#include <ewol/widget/List.h>
|
||||||
#include <ewol/widget/Windows.h>
|
#include <ewol/widget/Windows.h>
|
||||||
|
|
||||||
namespace appl
|
namespace appl {
|
||||||
{
|
class dataBufferStruct {
|
||||||
class dataBufferStruct
|
|
||||||
{
|
|
||||||
public:
|
public:
|
||||||
etk::FSNode m_bufferName;
|
etk::FSNode m_bufferName;
|
||||||
ewol::object::Shared<appl::Buffer> m_buffer;
|
ewol::object::Shared<appl::Buffer> m_buffer;
|
||||||
@ -31,8 +29,7 @@ namespace appl
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
class BufferView : public ewol::widget::List
|
class BufferView : public ewol::widget::List {
|
||||||
{
|
|
||||||
private:
|
private:
|
||||||
ewol::object::Shared<appl::BufferManager> m_bufferManager; //!< handle on the buffer manager
|
ewol::object::Shared<appl::BufferManager> m_bufferManager; //!< handle on the buffer manager
|
||||||
private:
|
private:
|
||||||
|
@ -116,7 +116,12 @@ namespace appl {
|
|||||||
};
|
};
|
||||||
public:
|
public:
|
||||||
virtual void onObjectRemove(const ewol::object::Shared<ewol::Object>& _removeObject) {
|
virtual void onObjectRemove(const ewol::object::Shared<ewol::Object>& _removeObject) {
|
||||||
// TODO : plop
|
for (auto it(m_specificData.begin()); it != m_specificData.end(); ++it) {
|
||||||
|
if (it->first == _removeObject) {
|
||||||
|
m_specificData.erase(it);
|
||||||
|
it = m_specificData.begin();
|
||||||
|
}
|
||||||
|
}
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
Loading…
x
Reference in New Issue
Block a user