[DEV] start rework on shared pointer
This commit is contained in:
parent
304ac2ba45
commit
08261def10
@ -25,23 +25,12 @@ appl::BufferManager::BufferManager() :
|
||||
}
|
||||
|
||||
appl::BufferManager::~BufferManager() {
|
||||
int32_t previousCount = m_list.size();
|
||||
for (int32_t iii = m_list.size()-1; iii >= 0 ; --iii) {
|
||||
if (m_list[iii] == NULL) {
|
||||
continue;
|
||||
}
|
||||
delete(m_list[iii]);
|
||||
if (previousCount == m_list.size()) {
|
||||
APPL_ERROR("Error in removing buffer !! ");
|
||||
}
|
||||
previousCount = m_list.size();
|
||||
}
|
||||
m_list.clear();
|
||||
}
|
||||
|
||||
|
||||
appl::Buffer* appl::BufferManager::createNewBuffer() {
|
||||
appl::Buffer* tmp = new appl::Buffer();
|
||||
ewol::object::Shared<appl::Buffer> appl::BufferManager::createNewBuffer() {
|
||||
ewol::object::Shared<appl::Buffer> tmp = ewol::object::makeShared(new appl::Buffer());
|
||||
if (tmp == NULL) {
|
||||
APPL_ERROR("Can not allocate the Buffer (empty).");
|
||||
return NULL;
|
||||
@ -51,7 +40,7 @@ appl::Buffer* appl::BufferManager::createNewBuffer() {
|
||||
return tmp;
|
||||
}
|
||||
|
||||
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 << ")");
|
||||
for (int32_t iii = 0; iii < m_list.size(); ++iii) {
|
||||
if (m_list[iii] == NULL) {
|
||||
@ -67,7 +56,7 @@ appl::Buffer* appl::BufferManager::get(const std::string& _fileName, bool _creat
|
||||
APPL_CRITICAL("plop");
|
||||
return NULL;
|
||||
}
|
||||
appl::Buffer* tmp = new appl::Buffer();
|
||||
ewol::object::Shared<appl::Buffer> tmp = ewol::object::makeShared(new appl::Buffer());
|
||||
if (tmp == NULL) {
|
||||
APPL_ERROR("Can not allocate the Buffer class : " << _fileName);
|
||||
return NULL;
|
||||
@ -78,12 +67,12 @@ appl::Buffer* appl::BufferManager::get(const std::string& _fileName, bool _creat
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
void appl::BufferManager::setBufferSelected(appl::Buffer* _bufferSelected) {
|
||||
void appl::BufferManager::setBufferSelected(ewol::object::Shared<appl::Buffer> _bufferSelected) {
|
||||
m_bufferSelected = _bufferSelected;
|
||||
sendMultiCast(appl::MsgSelectChange, "");
|
||||
}
|
||||
|
||||
void appl::BufferManager::onObjectRemove(ewol::Object * _removeObject) {
|
||||
void appl::BufferManager::onObjectRemove(const ewol::object::Shared<ewol::Object>& _removeObject) {
|
||||
if (m_bufferSelected == _removeObject) {
|
||||
setBufferSelected(NULL);
|
||||
}
|
||||
@ -123,15 +112,14 @@ void appl::BufferManager::onReceiveMessage(const ewol::object::Message& _msg) {
|
||||
APPL_DEBUG("receive message !!! " << _msg);
|
||||
}
|
||||
|
||||
appl::BufferManager* appl::BufferManager::keep() {
|
||||
//EWOL_INFO("KEEP : appl::GlyphPainting : file : \"" << _filename << "\"");
|
||||
appl::BufferManager* object = static_cast<appl::BufferManager*>(getManager().localKeep("???BufferManager???"));
|
||||
ewol::object::Shared<appl::BufferManager> appl::BufferManager::keep() {
|
||||
ewol::object::Shared<appl::BufferManager> object = ewol::dynamic_pointer_cast<appl::BufferManager>(getManager().localKeep("???BufferManager???"));
|
||||
if (NULL != object) {
|
||||
return object;
|
||||
}
|
||||
// this element create a new one every time ....
|
||||
EWOL_INFO("CREATE : appl::BufferManager: ???BufferManager???");
|
||||
object = new appl::BufferManager();
|
||||
object = ewol::object::makeShared(new appl::BufferManager());
|
||||
if (NULL == object) {
|
||||
EWOL_ERROR("allocation error of a resource : ???BufferManager???");
|
||||
return NULL;
|
||||
@ -140,11 +128,3 @@ appl::BufferManager* appl::BufferManager::keep() {
|
||||
return object;
|
||||
}
|
||||
|
||||
void appl::BufferManager::release(appl::BufferManager*& _object) {
|
||||
if (NULL == _object) {
|
||||
return;
|
||||
}
|
||||
ewol::Resource* object2 = static_cast<ewol::Resource*>(_object);
|
||||
getManager().release(object2);
|
||||
_object = NULL;
|
||||
}
|
||||
|
@ -18,9 +18,10 @@ namespace appl {
|
||||
class BufferManager : public ewol::Resource {
|
||||
protected:
|
||||
BufferManager();
|
||||
public:
|
||||
~BufferManager();
|
||||
private:
|
||||
std::vector<appl::Buffer*> m_list; // list of all buffer curently open
|
||||
std::vector<ewol::object::Owner<appl::Buffer>> m_list; // list of all buffer curently open
|
||||
public:
|
||||
/**
|
||||
* @brief Get a specific buffer with his name (can create a new buffer).
|
||||
@ -28,7 +29,7 @@ namespace appl {
|
||||
* @param[in] _createIfNeeded Create the buffer if not existed.
|
||||
* @return a pointer on the buffer
|
||||
*/
|
||||
appl::Buffer* get(const std::string& _fileName, bool _createIfNeeded=false);
|
||||
ewol::object::Shared<appl::Buffer> get(const std::string& _fileName, bool _createIfNeeded=false);
|
||||
/**
|
||||
* @brief Load a specific file, event if it not existed:
|
||||
* @param[in] _fileName Name of the file to open or create.
|
||||
@ -52,32 +53,32 @@ namespace appl {
|
||||
* @param[in] _id Number of buffer
|
||||
* @return pointer on the buffer
|
||||
*/
|
||||
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.
|
||||
* @return Created buffer or NULL.
|
||||
*/
|
||||
appl::Buffer* createNewBuffer();
|
||||
ewol::object::Shared<appl::Buffer> createNewBuffer();
|
||||
private:
|
||||
appl::Buffer* m_bufferSelected;
|
||||
ewol::object::Shared<appl::Buffer> m_bufferSelected;
|
||||
public:
|
||||
/**
|
||||
* @brief Set the current buffer selected
|
||||
* @param[in] _bufferSelected Pointer on the buffer selected
|
||||
*/
|
||||
void setBufferSelected(appl::Buffer* _bufferSelected);
|
||||
void setBufferSelected(ewol::object::Shared<appl::Buffer> _bufferSelected);
|
||||
/**
|
||||
* @brief Get the current buffer selected
|
||||
* @return Pointer on the buffer selected
|
||||
*/
|
||||
appl::Buffer* getBufferSelected() {
|
||||
ewol::object::Shared<appl::Buffer> getBufferSelected() {
|
||||
return m_bufferSelected;
|
||||
};
|
||||
public: // herited function
|
||||
void onReceiveMessage(const ewol::object::Message& _msg);
|
||||
void onObjectRemove(ewol::Object * _removeObject);
|
||||
void onObjectRemove(const ewol::object::Shared<ewol::Object>& _removeObject);
|
||||
public: // resource manager
|
||||
/**
|
||||
* @brief keep the resource pointer.
|
||||
@ -85,12 +86,7 @@ namespace appl {
|
||||
* @param[in] _filename Name of the configuration file.
|
||||
* @return pointer on the resource or NULL if an error occured.
|
||||
*/
|
||||
static appl::BufferManager* keep();
|
||||
/**
|
||||
* @brief release the keeped resources
|
||||
* @param[in,out] reference on the object pointer
|
||||
*/
|
||||
static void release(appl::BufferManager*& _object);
|
||||
static ewol::object::Shared<appl::BufferManager> keep();
|
||||
};
|
||||
};
|
||||
|
||||
|
@ -95,15 +95,15 @@ int32_t appl::GlyphPainting::request(const std::string& _name) {
|
||||
return m_list.size()-1;
|
||||
}
|
||||
|
||||
appl::GlyphPainting* appl::GlyphPainting::keep(const std::string& _filename) {
|
||||
ewol::object::Shared<appl::GlyphPainting> appl::GlyphPainting::keep(const std::string& _filename) {
|
||||
//EWOL_INFO("KEEP : appl::GlyphPainting : file : \"" << _filename << "\"");
|
||||
appl::GlyphPainting* object = static_cast<appl::GlyphPainting*>(getManager().localKeep(_filename));
|
||||
ewol::object::Shared<appl::GlyphPainting> object = ewol::dynamic_pointer_cast<appl::GlyphPainting>(getManager().localKeep(_filename));
|
||||
if (NULL != object) {
|
||||
return object;
|
||||
}
|
||||
// this element create a new one every time ....
|
||||
EWOL_INFO("CREATE : appl::GlyphPainting : file : \"" << _filename << "\"");
|
||||
object = new appl::GlyphPainting(_filename);
|
||||
object = ewol::object::makeShared(new appl::GlyphPainting(_filename));
|
||||
if (NULL == object) {
|
||||
EWOL_ERROR("allocation error of a resource : ??GlyphPainting??");
|
||||
return NULL;
|
||||
@ -111,13 +111,3 @@ appl::GlyphPainting* appl::GlyphPainting::keep(const std::string& _filename) {
|
||||
getManager().localAdd(object);
|
||||
return object;
|
||||
}
|
||||
|
||||
void appl::GlyphPainting::release(appl::GlyphPainting*& _object) {
|
||||
if (NULL == _object) {
|
||||
return;
|
||||
}
|
||||
ewol::Resource* object2 = static_cast<ewol::Resource*>(_object);
|
||||
getManager().release(object2);
|
||||
_object = NULL;
|
||||
}
|
||||
|
||||
|
@ -20,6 +20,7 @@ namespace appl {
|
||||
std::vector<appl::GlyphDecoration> m_list;
|
||||
protected:
|
||||
GlyphPainting(const std::string& _filename);
|
||||
public:
|
||||
virtual ~GlyphPainting();
|
||||
public:
|
||||
/**
|
||||
@ -55,12 +56,7 @@ namespace appl {
|
||||
* @param[in] _filename Name of the configuration file.
|
||||
* @return pointer on the resource or NULL if an error occured.
|
||||
*/
|
||||
static appl::GlyphPainting* keep(const std::string& _filename);
|
||||
/**
|
||||
* @brief release the keeped resources
|
||||
* @param[in,out] reference on the object pointer
|
||||
*/
|
||||
static void release(appl::GlyphPainting*& _object);
|
||||
static ewol::object::Shared<appl::GlyphPainting> keep(const std::string& _filename);
|
||||
};
|
||||
};
|
||||
|
||||
|
@ -75,9 +75,6 @@ void BufferView::removeAllElement() {
|
||||
}
|
||||
}
|
||||
m_list.clear();
|
||||
if (m_bufferManager != NULL) {
|
||||
appl::BufferManager::release(m_bufferManager);
|
||||
}
|
||||
}
|
||||
|
||||
void BufferView::insertAlphabetic(appl::dataBufferStruct* _dataStruct, bool _selectNewPosition) {
|
||||
@ -110,7 +107,7 @@ void BufferView::insertAlphabetic(appl::dataBufferStruct* _dataStruct, bool _sel
|
||||
void BufferView::onReceiveMessage(const ewol::object::Message& _msg) {
|
||||
ewol::widget::List::onReceiveMessage(_msg);
|
||||
if (_msg.getMessage() == appl::MsgSelectNewFile) {
|
||||
appl::Buffer* buffer = m_bufferManager->get(_msg.getData());
|
||||
ewol::object::Shared<appl::Buffer> buffer = m_bufferManager->get(_msg.getData());
|
||||
if (buffer == NULL) {
|
||||
APPL_ERROR("event on element nor exist : " << _msg.getData());
|
||||
return;
|
||||
@ -162,7 +159,7 @@ void BufferView::onReceiveMessage(const ewol::object::Message& _msg) {
|
||||
APPL_DEBUG("message : " << _msg);
|
||||
if (_msg.getMessage() == appl::MsgSelectChange) {
|
||||
m_selectedID = -1;
|
||||
appl::Buffer* tmpBuffer = NULL;
|
||||
ewol::object::Shared<appl::Buffer> tmpBuffer;
|
||||
if (m_bufferManager != NULL) {
|
||||
tmpBuffer = m_bufferManager->getBufferSelected();
|
||||
}
|
||||
@ -221,7 +218,7 @@ void BufferView::onReceiveMessage(const ewol::object::Message& _msg) {
|
||||
}
|
||||
}
|
||||
|
||||
void BufferView::onObjectRemove(ewol::Object* _removeObject) {
|
||||
void BufferView::onObjectRemove(const ewol::object::Shared<ewol::Object>& _removeObject) {
|
||||
ewol::widget::List::onObjectRemove(_removeObject);
|
||||
for (int32_t iii=0; iii<m_list.size(); iii++) {
|
||||
if (m_list[iii] == NULL) {
|
||||
|
@ -21,8 +21,8 @@ namespace appl
|
||||
{
|
||||
public:
|
||||
etk::FSNode m_bufferName;
|
||||
appl::Buffer* m_buffer;
|
||||
dataBufferStruct(const std::string& _bufferName, appl::Buffer* _buffer) :
|
||||
ewol::object::Shared<appl::Buffer> m_buffer;
|
||||
dataBufferStruct(const std::string& _bufferName, const ewol::object::Shared<appl::Buffer>& _buffer) :
|
||||
m_bufferName(_bufferName),
|
||||
m_buffer(_buffer) {
|
||||
|
||||
@ -34,9 +34,9 @@ namespace appl
|
||||
class BufferView : public ewol::widget::List
|
||||
{
|
||||
private:
|
||||
appl::BufferManager* m_bufferManager; //!< handle on the buffer manager
|
||||
ewol::object::Shared<appl::BufferManager> m_bufferManager; //!< handle on the buffer manager
|
||||
private:
|
||||
appl::GlyphPainting* m_paintingProperties; //!< element painting property
|
||||
ewol::object::Shared<appl::GlyphPainting> m_paintingProperties; //!< element painting property
|
||||
int32_t m_colorBackground1;
|
||||
int32_t m_colorBackground2;
|
||||
int32_t m_colorBackgroundSelect;
|
||||
@ -57,7 +57,7 @@ class BufferView : public ewol::widget::List
|
||||
~BufferView();
|
||||
// Derived function
|
||||
virtual void onReceiveMessage(const ewol::object::Message& _msg);
|
||||
virtual void onObjectRemove(ewol::Object* _removeObject);
|
||||
virtual void onObjectRemove(const ewol::object::Shared<ewol::Object>& _removeObject);
|
||||
private:
|
||||
bool m_openOrderMode; //!< true if the order is the opening order mode, otherwise, Alphabetic order
|
||||
protected:
|
||||
|
@ -61,9 +61,9 @@ class ParameterAboutGui : public ewol::widget::Sizer {
|
||||
public :
|
||||
ParameterAboutGui() :
|
||||
ewol::widget::Sizer(ewol::widget::Sizer::modeVert) {
|
||||
ewol::widget::Spacer* mySpacer = NULL;
|
||||
ewol::object::Shared<ewol::widget::Spacer> mySpacer = NULL;
|
||||
|
||||
mySpacer = new ewol::widget::Spacer();
|
||||
mySpacer = ewol::object::makeShared(new ewol::widget::Spacer());
|
||||
if (NULL == mySpacer) {
|
||||
APPL_ERROR("Can not allocate widget == > display might be in error");
|
||||
} else {
|
||||
@ -93,7 +93,7 @@ class ParameterAboutGui : public ewol::widget::Sizer {
|
||||
tmpLabel += " libPng, ogg-tremor, portaudio, libZip<br/>";
|
||||
tmpLabel += " tinyXml, freetype, agg2.4, etk<br/>";
|
||||
tmpLabel += "</left>";
|
||||
ewol::widget::Label* myLabel = new ewol::widget::Label(tmpLabel);
|
||||
ewol::object::Shared<ewol::widget::Label> myLabel = ewol::object::makeShared(new ewol::widget::Label(tmpLabel));
|
||||
if (NULL == myLabel) {
|
||||
APPL_ERROR("Can not allocate widget == > display might be in error");
|
||||
} else {
|
||||
@ -264,7 +264,7 @@ MainWindows::MainWindows() {
|
||||
|
||||
|
||||
MainWindows::~MainWindows() {
|
||||
appl::BufferManager::release(m_bufferManager);
|
||||
|
||||
}
|
||||
|
||||
|
||||
@ -290,7 +290,7 @@ void MainWindows::onReceiveMessage(const ewol::object::Message& _msg) {
|
||||
return;
|
||||
}
|
||||
// Get a ref on the buffer selected (if null, no buffer was selected ...)
|
||||
appl::Buffer* tmpBuffer = m_bufferManager->getBufferSelected();
|
||||
ewol::object::Shared<appl::Buffer> tmpBuffer = m_bufferManager->getBufferSelected();
|
||||
if (tmpBuffer != NULL) {
|
||||
etk::FSNode tmpFile = tmpBuffer->getFileName();
|
||||
tmpWidget->setFolder(tmpFile.getNameFolder());
|
||||
@ -371,7 +371,7 @@ void MainWindows::onReceiveMessage(const ewol::object::Message& _msg) {
|
||||
|| _msg.getMessage() == appl::Buffer::eventIsSave
|
||||
|| _msg.getMessage() == appl::Buffer::eventChangeName) {
|
||||
// select a new Buffer ==> change title:
|
||||
appl::Buffer* tmpp = m_bufferManager->getBufferSelected();
|
||||
ewol::object::Shared<appl::Buffer> tmpp = m_bufferManager->getBufferSelected();
|
||||
if (tmpp == NULL) {
|
||||
setTitle("Edn");
|
||||
if (m_widgetLabelFileName != NULL) {
|
||||
@ -421,7 +421,7 @@ void MainWindows::onReceiveMessage(const ewol::object::Message& _msg) {
|
||||
APPL_ERROR("Try to save an non-existant file :" << _msg.getData());
|
||||
return;
|
||||
}
|
||||
appl::Buffer* tmpBuffer = m_bufferManager->get(_msg.getData());
|
||||
ewol::object::Shared<appl::Buffer> tmpBuffer = m_bufferManager->get(_msg.getData());
|
||||
if (tmpBuffer == NULL) {
|
||||
APPL_ERROR("Error to get the buffer : " << _msg.getData());
|
||||
return;
|
||||
@ -440,7 +440,7 @@ void MainWindows::onReceiveMessage(const ewol::object::Message& _msg) {
|
||||
APPL_ERROR("Try to save an non-existant file :" << _msg.getData());
|
||||
return;
|
||||
}
|
||||
appl::Buffer* tmpBuffer = m_bufferManager->get(_msg.getData());
|
||||
ewol::object::Shared<appl::Buffer> tmpBuffer = m_bufferManager->get(_msg.getData());
|
||||
if (tmpBuffer == NULL) {
|
||||
APPL_ERROR("Error to get the buffer : " << _msg.getData());
|
||||
return;
|
||||
@ -451,7 +451,7 @@ void MainWindows::onReceiveMessage(const ewol::object::Message& _msg) {
|
||||
APPL_ERROR("Try to save an non-existant file :" << _msg.getData());
|
||||
return;
|
||||
}
|
||||
appl::Buffer* tmpBuffer = m_bufferManager->get(_msg.getData());
|
||||
ewol::object::Shared<appl::Buffer> tmpBuffer = m_bufferManager->get(_msg.getData());
|
||||
if (tmpBuffer == NULL) {
|
||||
APPL_ERROR("Error to get the buffer : " << _msg.getData());
|
||||
return;
|
||||
@ -462,7 +462,7 @@ void MainWindows::onReceiveMessage(const ewol::object::Message& _msg) {
|
||||
return;
|
||||
}
|
||||
|
||||
void MainWindows::saveAsPopUp(appl::Buffer* _buffer) {
|
||||
void MainWindows::saveAsPopUp(const ewol::object::Shared<appl::Buffer>& _buffer) {
|
||||
if (_buffer == NULL) {
|
||||
APPL_ERROR("Call With NULL input...");
|
||||
return;
|
||||
@ -470,7 +470,7 @@ void MainWindows::saveAsPopUp(appl::Buffer* _buffer) {
|
||||
appl::WorkerSaveFile* tmpObject = new appl::WorkerSaveFile(_buffer->getFileName());
|
||||
}
|
||||
|
||||
void MainWindows::closeNotSavedFile(appl::Buffer* _buffer) {
|
||||
void MainWindows::closeNotSavedFile(const ewol::object::Shared<appl::Buffer>& _buffer) {
|
||||
if (_buffer == NULL) {
|
||||
APPL_ERROR("Call With NULL input...");
|
||||
return;
|
||||
@ -506,7 +506,7 @@ void MainWindows::closeNotSavedFile(appl::Buffer* _buffer) {
|
||||
popUpWidgetPush(tmpPopUp);
|
||||
}
|
||||
|
||||
void MainWindows::onObjectRemove(const ewol::object::Shared<ewol::Object> _removeObject) {
|
||||
void MainWindows::onObjectRemove(const ewol::object::Shared<ewol::Object>& _removeObject) {
|
||||
ewol::widget::Windows::onObjectRemove(_removeObject);
|
||||
if (m_widgetLabelFileName == _removeObject) {
|
||||
m_widgetLabelFileName = NULL;
|
||||
|
@ -25,20 +25,20 @@ class MainWindows : public ewol::widget::Windows {
|
||||
MainWindows();
|
||||
~MainWindows();
|
||||
private:
|
||||
appl::BufferManager* m_bufferManager; //!< handle on the buffer manager
|
||||
ewol::object::Shared<appl::BufferManager> m_bufferManager; //!< handle on the buffer manager
|
||||
/**
|
||||
* @brief Display a pop-up to the select the name of the file.
|
||||
* @param[in] _buffer Buffer that might be saved with a new name.
|
||||
*/
|
||||
void saveAsPopUp(appl::Buffer* _buffer);
|
||||
void saveAsPopUp(const ewol::object::Shared<appl::Buffer>& _buffer);
|
||||
/**
|
||||
* @brief Display a pop-up to the user to confirm wat he want to do when he close a file not saved.
|
||||
* @param[in] _buffer Buffer that might be close.
|
||||
*/
|
||||
void closeNotSavedFile(appl::Buffer* _buffer);
|
||||
void closeNotSavedFile(const ewol::object::Shared<appl::Buffer>& _buffer);
|
||||
public: // Derived function
|
||||
virtual void onReceiveMessage(const ewol::object::Message& _msg);
|
||||
virtual void onObjectRemove(const ewol::object::Shared<ewol::Object> _removeObject);
|
||||
virtual void onObjectRemove(const ewol::object::Shared<ewol::Object>& _removeObject);
|
||||
};
|
||||
|
||||
|
||||
|
@ -64,7 +64,7 @@ Search::Search() :
|
||||
}
|
||||
|
||||
Search::~Search() {
|
||||
appl::ViewerManager::release(m_viewerManager);
|
||||
|
||||
}
|
||||
|
||||
void Search::find() {
|
||||
@ -165,13 +165,13 @@ void Search::onReceiveMessage(const ewol::object::Message& _msg) {
|
||||
void Search::onObjectRemove(const ewol::object::Shared<ewol::Object> _removeObject) {
|
||||
ewol::widget::Composer::onObjectRemove(_removeObject);
|
||||
if (_removeObject == m_searchEntry) {
|
||||
m_searchEntry = NULL;
|
||||
m_searchEntry.reset();
|
||||
}
|
||||
if (_removeObject == m_replaceEntry) {
|
||||
m_replaceEntry = NULL;
|
||||
m_replaceEntry.reset();
|
||||
}
|
||||
if (_removeObject == m_viewerManager) {
|
||||
m_viewerManager = NULL;
|
||||
m_viewerManager.reset();
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -17,7 +17,7 @@
|
||||
|
||||
class Search : public ewol::widget::Composer {
|
||||
private:
|
||||
appl::ViewerManager* m_viewerManager; //!< handle on the buffer manager
|
||||
ewol::object::Shared<appl::ViewerManager> m_viewerManager; //!< handle on the buffer manager
|
||||
bool m_forward;
|
||||
bool m_caseSensitive;
|
||||
bool m_wrap;
|
||||
|
@ -38,7 +38,7 @@ appl::TagFileList::~TagFileList() {
|
||||
delete(m_list[iii]);
|
||||
m_list[iii] = NULL;
|
||||
}
|
||||
ewol::resource::ColorFile::release(m_colorProperty);
|
||||
|
||||
}
|
||||
|
||||
etk::Color<> appl::TagFileList::getBasicBG() {
|
||||
|
@ -37,7 +37,7 @@ namespace appl {
|
||||
int32_t m_selectedLine;
|
||||
std::vector<appl::TagListElement*> m_list;
|
||||
protected:
|
||||
ewol::resource::ColorFile* m_colorProperty; //!< theme color property.
|
||||
ewol::object::Shared<ewol::resource::ColorFile> m_colorProperty; //!< theme color property.
|
||||
int32_t m_colorIdText; //!< Color of the text.
|
||||
int32_t m_colorIdBackground1; //!< Color of the Background.
|
||||
int32_t m_colorIdBackground2; //!< Color of the Background 2.
|
||||
|
@ -35,9 +35,9 @@ appl::TagFileSelection::TagFileSelection() {
|
||||
addEventId(applEventctagsSelection);
|
||||
addEventId(applEventctagsCancel);
|
||||
|
||||
ewol::widget::Label* myWidgetTitle = NULL;
|
||||
ewol::object::Shared<ewol::widget::Label> myWidgetTitle;
|
||||
|
||||
ewol::widget::Sizer * mySizerVert = NULL;
|
||||
ewol::object::Shared<ewol::widget::Sizer> mySizerVert;
|
||||
#if defined(__TARGET_OS__Android)
|
||||
setMinSize(ewol::Dimension(vec2(90,90),ewol::Dimension::Pourcent));
|
||||
#elif defined(__TARGET_OS__Windows)
|
||||
@ -46,7 +46,7 @@ appl::TagFileSelection::TagFileSelection() {
|
||||
setMinSize(ewol::Dimension(vec2(80,80),ewol::Dimension::Pourcent));
|
||||
#endif
|
||||
|
||||
mySizerVert = new ewol::widget::Sizer(ewol::widget::Sizer::modeVert);
|
||||
mySizerVert = ewol::object::makeShared(new ewol::widget::Sizer(ewol::widget::Sizer::modeVert));
|
||||
if (NULL == mySizerVert) {
|
||||
EWOL_ERROR("Can not allocate widget == > display might be in error");
|
||||
} else {
|
||||
@ -54,7 +54,7 @@ appl::TagFileSelection::TagFileSelection() {
|
||||
mySizerVert->setExpand(bvec2(true,true));
|
||||
// set it in the pop-up-system :
|
||||
setSubWidget(mySizerVert);
|
||||
ewol::widget::Composer* compose = new ewol::widget::Composer(ewol::widget::Composer::String,
|
||||
ewol::object::Shared<ewol::widget::Composer> compose = ewol::object::makeShared(new ewol::widget::Composer(ewol::widget::Composer::String,
|
||||
"<sizer mode=\"hori\" expand=\"true,false\" lock=\"false,true\">\n"
|
||||
" <spacer expand=\"true,false\"/>\n"
|
||||
" <button name=\"PLUGIN-CTAGS-jump\" expand=\"false\" fill=\"true\">"
|
||||
@ -69,14 +69,14 @@ appl::TagFileSelection::TagFileSelection() {
|
||||
" <label>Cancel</label>\n"
|
||||
" </sizer>\n"
|
||||
" </button>\n"
|
||||
"</sizer>\n");
|
||||
"</sizer>\n"));
|
||||
compose->setExpand(bvec2(true,false));
|
||||
compose->setFill(bvec2(true,true));
|
||||
mySizerVert->subWidgetAdd(compose);
|
||||
compose->registerOnEventNameWidget(this, "PLUGIN-CTAGS-jump", "pressed", applEventctagsSelection);
|
||||
compose->registerOnEventNameWidget(this, "PLUGIN-CTAGS-cancel", "pressed", applEventctagsCancel);
|
||||
|
||||
m_listTag = new appl::TagFileList();
|
||||
m_listTag = ewol::object::makeShared(new appl::TagFileList());
|
||||
if (NULL == m_listTag) {
|
||||
EWOL_ERROR("Can not allocate widget == > display might be in error");
|
||||
} else {
|
||||
@ -139,7 +139,7 @@ void appl::TagFileSelection::addCtagsNewItem(std::string _file, int32_t _line) {
|
||||
}
|
||||
}
|
||||
|
||||
void appl::TagFileSelection::onObjectRemove(const ewol::object::Shared<ewol::Object> _removeObject) {
|
||||
void appl::TagFileSelection::onObjectRemove(const ewol::object::Shared<ewol::Object>& _removeObject) {
|
||||
// First step call parrent :
|
||||
ewol::widget::PopUp::onObjectRemove(_removeObject);
|
||||
// second step find if in all the elements ...
|
||||
|
@ -19,7 +19,7 @@ extern const char * const applEventctagsCancel;
|
||||
namespace appl {
|
||||
class TagFileSelection : public ewol::widget::PopUp {
|
||||
private:
|
||||
appl::TagFileList* m_listTag;
|
||||
ewol::object::Shared<appl::TagFileList> m_listTag;
|
||||
std::string m_eventNamed;
|
||||
public:
|
||||
TagFileSelection();
|
||||
@ -32,7 +32,7 @@ namespace appl {
|
||||
void addCtagsNewItem(std::string file, int32_t line);
|
||||
public: // herited function
|
||||
void onReceiveMessage(const ewol::object::Message& _msg);
|
||||
void onObjectRemove(const ewol::object::Shared<ewol::Object> _removeObject);
|
||||
void onObjectRemove(const ewol::object::Shared<ewol::Object>& _removeObject);
|
||||
};
|
||||
};
|
||||
|
||||
|
@ -29,7 +29,6 @@
|
||||
APPL_DEBUG(comment << (float)((float)processTimeLocal / 1000.0) << "ms");
|
||||
|
||||
appl::TextViewer::TextViewer(const std::string& _fontName, int32_t _fontSize) :
|
||||
m_buffer(NULL),
|
||||
m_displayText(_fontName, _fontSize),
|
||||
m_insertMode(false) {
|
||||
addObjectType("appl::TextViewer");
|
||||
@ -65,9 +64,6 @@ appl::TextViewer::TextViewer(const std::string& _fontName, int32_t _fontSize) :
|
||||
|
||||
appl::TextViewer::~TextViewer() {
|
||||
appl::textPluginManager::disconnect(*this);
|
||||
appl::GlyphPainting::release(m_paintingProperties);
|
||||
appl::BufferManager::release(m_bufferManager);
|
||||
appl::ViewerManager::release(m_viewerManager);
|
||||
}
|
||||
|
||||
std::string appl::TextViewer::getBufferPath() {
|
||||
|
@ -24,7 +24,7 @@
|
||||
namespace appl {
|
||||
class TextViewer : public ewol::widget::WidgetScrolled {
|
||||
private:
|
||||
appl::GlyphPainting* m_paintingProperties; //!< element painting property
|
||||
ewol::object::Shared<appl::GlyphPainting> m_paintingProperties; //!< element painting property
|
||||
int32_t m_colorBackground;
|
||||
int32_t m_colorSpace;
|
||||
int32_t m_colorTabulation;
|
||||
@ -39,19 +39,19 @@ namespace appl {
|
||||
TextViewer(const std::string& _fontName="", int32_t _fontSize=-1);
|
||||
virtual ~TextViewer();
|
||||
private:
|
||||
appl::Buffer* m_buffer; //!< pointer on the current buffer to display (can be null if the buffer is remover or in state of changing buffer)
|
||||
ewol::object::Shared<appl::Buffer> m_buffer; //!< pointer on the current buffer to display (can be null if the buffer is remover or in state of changing buffer)
|
||||
public:
|
||||
/**
|
||||
* @brief Get the buffer property (only for the class : template <typename TYPE> class TextViewerPluginData)
|
||||
* @return pointer on buffer
|
||||
*/
|
||||
appl::Buffer* internalGetBuffer() {
|
||||
ewol::object::Shared<appl::Buffer> internalGetBuffer() {
|
||||
return m_buffer;
|
||||
}
|
||||
private:
|
||||
ewol::compositing::Text m_displayText; //!< Text display properties.
|
||||
ewol::compositing::Drawing m_displayDrawing; //!< Other diaplay requested.
|
||||
std::vector<std::pair<appl::Buffer*, vec2>> m_drawingRemenber;
|
||||
std::vector<std::pair<ewol::object::Shared<appl::Buffer>, vec2>> m_drawingRemenber;
|
||||
public:
|
||||
void setFontSize(int32_t _size);
|
||||
void setFontName(const std::string& _fontName);
|
||||
@ -399,9 +399,9 @@ namespace appl {
|
||||
* @param[in] _data Associate data wit the event
|
||||
*/
|
||||
virtual void ext_shortCutAdd(const char * _descriptiveString,
|
||||
const char * _generateEventId,
|
||||
std::string _data="",
|
||||
bool _broadcast=false) {
|
||||
const char * _generateEventId,
|
||||
std::string _data="",
|
||||
bool _broadcast=false) {
|
||||
shortCutAdd(_descriptiveString, _generateEventId, _data, _broadcast);
|
||||
}
|
||||
};
|
||||
|
@ -26,14 +26,14 @@ appl::ViewerManager::ViewerManager() :
|
||||
}
|
||||
|
||||
appl::ViewerManager::~ViewerManager() {
|
||||
appl::BufferManager::release(m_bufferManager);
|
||||
|
||||
}
|
||||
|
||||
bool appl::ViewerManager::isLastSelected(ewol::object::Shared<appl::TextViewer> _viewer) {
|
||||
bool appl::ViewerManager::isLastSelected(const ewol::object::Shared<appl::TextViewer>& _viewer) {
|
||||
return m_viewer == _viewer;
|
||||
}
|
||||
|
||||
void appl::ViewerManager::setViewerSelected(const ewol::object::Shared<appl::TextViewer>& _viewer, appl::Buffer* _buffer) {
|
||||
void appl::ViewerManager::setViewerSelected(const ewol::object::Shared<appl::TextViewer>& _viewer, const ewol::object::Shared<appl::Buffer>& _buffer) {
|
||||
if (m_viewer == _viewer) {
|
||||
return;
|
||||
}
|
||||
@ -55,15 +55,15 @@ void appl::ViewerManager::onObjectRemove(const ewol::object::Shared<ewol::Object
|
||||
}
|
||||
}
|
||||
|
||||
appl::ViewerManager* appl::ViewerManager::keep() {
|
||||
ewol::object::Shared<appl::ViewerManager> appl::ViewerManager::keep() {
|
||||
//EWOL_INFO("KEEP : appl::GlyphPainting : file : \"" << _filename << "\"");
|
||||
appl::ViewerManager* object = static_cast<appl::ViewerManager*>(getManager().localKeep("???ViewerManager???"));
|
||||
ewol::object::Shared<appl::ViewerManager> object = ewol::dynamic_pointer_cast<appl::ViewerManager>(getManager().localKeep("???ViewerManager???"));
|
||||
if (NULL != object) {
|
||||
return object;
|
||||
}
|
||||
// this element create a new one every time ....
|
||||
EWOL_INFO("CREATE : appl::ViewerManager: ???ViewerManager???");
|
||||
object = new appl::ViewerManager();
|
||||
object = ewol::object::makeShared(new appl::ViewerManager());
|
||||
if (NULL == object) {
|
||||
EWOL_ERROR("allocation error of a resource : ???ViewerManager???");
|
||||
return NULL;
|
||||
@ -71,12 +71,3 @@ appl::ViewerManager* appl::ViewerManager::keep() {
|
||||
getManager().localAdd(object);
|
||||
return object;
|
||||
}
|
||||
|
||||
void appl::ViewerManager::release(appl::ViewerManager*& _object) {
|
||||
if (NULL == _object) {
|
||||
return;
|
||||
}
|
||||
ewol::Resource* object2 = static_cast<ewol::Resource*>(_object);
|
||||
getManager().release(object2);
|
||||
_object = NULL;
|
||||
}
|
||||
|
@ -20,16 +20,17 @@ namespace appl {
|
||||
class ViewerManager : public ewol::Resource {
|
||||
protected:
|
||||
ViewerManager();
|
||||
public:
|
||||
~ViewerManager();
|
||||
private:
|
||||
appl::BufferManager* m_bufferManager; //!< handle on the buffer manager
|
||||
ewol::object::Shared<appl::BufferManager> m_bufferManager; //!< handle on the buffer manager
|
||||
ewol::object::Shared<appl::TextViewer> m_viewer;
|
||||
public:
|
||||
/**
|
||||
* @brief Set the current buffer selected
|
||||
* @param[in] _viewer Pointer on the viewer selected
|
||||
*/
|
||||
void setViewerSelected(const ewol::object::Shared<appl::TextViewer>& _viewer, appl::Buffer* _buffer);
|
||||
void setViewerSelected(const ewol::object::Shared<appl::TextViewer>& _viewer, const ewol::object::Shared<appl::Buffer>& _buffer);
|
||||
/**
|
||||
* @brief Get the current buffer selected
|
||||
* @return Pointer on the buffer selected
|
||||
@ -42,7 +43,7 @@ namespace appl {
|
||||
* @param[in] _viewer element selected.
|
||||
* @return true if the element is selected
|
||||
*/
|
||||
bool isLastSelected(ewol::object::Shared<appl::TextViewer> _viewer);
|
||||
bool isLastSelected(const ewol::object::Shared<appl::TextViewer>& _viewer);
|
||||
public: // herited function
|
||||
void onReceiveMessage(const ewol::object::Message& _msg);
|
||||
void onObjectRemove(const ewol::object::Shared<ewol::Object>& _removeObject);
|
||||
@ -53,12 +54,7 @@ namespace appl {
|
||||
* @param[in] _filename Name of the configuration file.
|
||||
* @return pointer on the resource or NULL if an error occured.
|
||||
*/
|
||||
static appl::ViewerManager* keep();
|
||||
/**
|
||||
* @brief release the keeped resources
|
||||
* @param[in,out] reference on the object pointer
|
||||
*/
|
||||
static void release(appl::ViewerManager*& _object);
|
||||
static ewol::object::Shared<appl::ViewerManager> keep();
|
||||
};
|
||||
};
|
||||
|
||||
|
@ -37,7 +37,7 @@ int main(int _argc, const char *_argv[]) {
|
||||
// only one things to do:
|
||||
return ewol::run(_argc, _argv);
|
||||
}
|
||||
appl::BufferManager* bufferManager = NULL;
|
||||
ewol::object::Shared<appl::BufferManager> bufferManager = NULL;
|
||||
|
||||
/**
|
||||
* @brief main application function initialisation
|
||||
@ -84,7 +84,7 @@ bool APP_Init(ewol::Context& _context, size_t _initId, size_t& _nbInitStep) {
|
||||
cCurrentPath[FILENAME_MAX - 1] = '\0';
|
||||
//APPL_INFO("The current working directory is " << cCurrentPath);
|
||||
|
||||
MainWindows* basicWindows = new MainWindows();
|
||||
ewol::object::Shared<MainWindows> basicWindows = ewol::object::makeShared(new MainWindows());
|
||||
|
||||
if (NULL == basicWindows) {
|
||||
APPL_ERROR("Can not allocate the basic windows");
|
||||
@ -126,7 +126,7 @@ bool APP_Init(ewol::Context& _context, size_t _initId, size_t& _nbInitStep) {
|
||||
*/
|
||||
void APP_UnInit(ewol::Context& _context) {
|
||||
APPL_INFO(" == > Un-Init " PROJECT_NAME " (START)");
|
||||
ewol::widget::Windows* tmpWindows = _context.getWindows();
|
||||
ewol::object::Shared<ewol::widget::Windows> tmpWindows = _context.getWindows();
|
||||
|
||||
_context.setWindows(NULL);
|
||||
|
||||
@ -139,11 +139,7 @@ void APP_UnInit(ewol::Context& _context) {
|
||||
APPL_INFO("Stop Hightlight");
|
||||
appl::highlightManager::unInit();
|
||||
//Kill all singleton
|
||||
if (bufferManager != NULL) {
|
||||
APPL_INFO("Stop BufferManager");
|
||||
appl::BufferManager::release(bufferManager);
|
||||
bufferManager = NULL;
|
||||
}
|
||||
bufferManager.reset();
|
||||
APPL_INFO(" == > Un-Init " PROJECT_NAME " (END)");
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user