From ed8626e6a76f1b4eebce6daa9f3a1701d92cc91c Mon Sep 17 00:00:00 2001 From: Edouard DUPIN Date: Sun, 22 Jun 2014 19:07:07 +0200 Subject: [PATCH] [DEV] add composer in the xml widget list creatable --- sources/ewol/widget/Button.cpp | 3 +++ sources/ewol/widget/Composer.cpp | 15 ++++++++++----- sources/ewol/widget/Composer.h | 2 ++ sources/ewol/widget/Manager.cpp | 2 ++ 4 files changed, 17 insertions(+), 5 deletions(-) diff --git a/sources/ewol/widget/Button.cpp b/sources/ewol/widget/Button.cpp index 45a8b284..fe23add0 100644 --- a/sources/ewol/widget/Button.cpp +++ b/sources/ewol/widget/Button.cpp @@ -145,6 +145,9 @@ void ewol::widget::Button::setEnableSingle(bool _single){ && m_subWidget[1] == nullptr && m_subWidget[0] != nullptr) { m_idWidgetDisplayed = 0; + } else if ( m_subWidget[0] == nullptr + && m_subWidget[1] == nullptr) { + m_idWidgetDisplayed = 0; } } } diff --git a/sources/ewol/widget/Composer.cpp b/sources/ewol/widget/Composer.cpp index fcbbbc95..261c75ce 100644 --- a/sources/ewol/widget/Composer.cpp +++ b/sources/ewol/widget/Composer.cpp @@ -15,6 +15,11 @@ #undef __class__ #define __class__ "ewol::widget::Composer" +#include +void ewol::widget::Composer::init(ewol::widget::Manager& _widgetManager) { + _widgetManager.addWidgetCreator("Composer",[]() -> ewol::Widget* { return new ewol::widget::Composer(); }); +} + ewol::widget::Composer::Composer() { // nothing to do ... } @@ -45,10 +50,10 @@ bool ewol::widget::Composer::loadFromFile(const std::string& _fileName) { return false; } exml::Element* root = (exml::Element*)doc.getNamed("composer"); - if (nullptr == root ) { + if (root == nullptr) { // Maybe a multiple node XML for internal config: root = doc.toElement(); - if (nullptr == root ) { + if (root == nullptr) { EWOL_ERROR("[" << getId() << "] {" << getObjectType() << "} (l ?) main node not find: \"composer\" ..."); return false; } @@ -70,10 +75,10 @@ bool ewol::widget::Composer::loadFromString(const std::string& _composerXmlStrin return false; } exml::Element* root = (exml::Element*)doc.getNamed("composer"); - if (nullptr == root ) { + if (root == nullptr) { // Maybe a multiple node XML for internal config: root = doc.toElement(); - if (nullptr == root ) { + if (root == nullptr) { EWOL_ERROR("[" << getId() << "] {" << getObjectType() << "} (l ?) main node not find: \"composer\" ..."); return false; } @@ -84,7 +89,7 @@ bool ewol::widget::Composer::loadFromString(const std::string& _composerXmlStrin } // call upper class to parse his elements ... ewol::widget::Container::loadXML(root); - + requestUpdateSize(); return true; } diff --git a/sources/ewol/widget/Composer.h b/sources/ewol/widget/Composer.h index 0dcf64a3..4cb56a7e 100644 --- a/sources/ewol/widget/Composer.h +++ b/sources/ewol/widget/Composer.h @@ -20,6 +20,8 @@ namespace ewol { * @brief the composer widget is a widget that create a link on a string.file to parse the data and generate some widget tree */ class Composer : public ewol::widget::Container { + public: + static void init(ewol::widget::Manager& _widgetManager); public: enum composerMode { None, diff --git a/sources/ewol/widget/Manager.cpp b/sources/ewol/widget/Manager.cpp index fae71d0f..dfab31fc 100644 --- a/sources/ewol/widget/Manager.cpp +++ b/sources/ewol/widget/Manager.cpp @@ -26,6 +26,7 @@ #include #include #include +#include #include #undef __class__ @@ -60,6 +61,7 @@ ewol::widget::Manager::Manager() : ewol::widget::PopUp::init(*this); ewol::widget::WSlider::init(*this); ewol::widget::ListFileSystem::init(*this); + ewol::widget::Composer::init(*this); } ewol::widget::Manager::~Manager() {