/** * @author Edouard DUPIN * * @copyright 2010, Edouard DUPIN, all right reserved * * @license BSD v3 (see license file) */ #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #undef __class__ #define __class__ "TestButton" appl::TestButton::TestButton() { addObjectType("appl::TestButton"); } void appl::TestButton::init() { ewol::widget::Composer::init(); APPL_INFO("Create " __class__ " (start)"); std::string myDescription = std::string("") + "\n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n" + ""; loadFromString(myDescription); setExpand(bvec2(true,true)); setFill(bvec2(true,true)); subBind(ewol::widget::Button, "[TEST]Button:Expand-x", signalValue, shared_from_this(), &appl::TestButton::onCallbackExpendX); subBind(ewol::widget::Button, "[TEST]Button:Expand-y", signalValue, shared_from_this(), &appl::TestButton::onCallbackExpendY); subBind(ewol::widget::Button, "[TEST]Button:Toggle", signalValue, shared_from_this(), &appl::TestButton::onCallbackToggle); subBind(ewol::widget::Button, "[TEST]Button:TextToggle", signalValue, shared_from_this(), &appl::TestButton::onCallbackTextToggle); subBind(ewol::widget::Button, "[TEST]Button:Fill-x", signalValue, shared_from_this(), &appl::TestButton::onCallbackFillX); subBind(ewol::widget::Button, "[TEST]Button:Fill-y", signalValue, shared_from_this(), &appl::TestButton::onCallbackFillY); subBind(ewol::widget::Button, "[TEST]Button:ChangeText", signalPressed, shared_from_this(), &appl::TestButton::onCallbackChangeText); m_testWidget = std::dynamic_pointer_cast(getSubObjectNamed("[TEST]Button:TO-TEST")); if (m_testWidget == nullptr) { APPL_CRITICAL("Can not get the pointer of the widget button pointer"); } APPL_INFO("Create " __class__ " (end)"); } void appl::TestButton::onCallbackExpendX(const bool& _value) { if (m_testWidget == nullptr) { return; } m_testWidget->setExpand(bvec2(_value, m_testWidget->getExpand().y())); } void appl::TestButton::onCallbackExpendY(const bool& _value) { if (m_testWidget == nullptr) { return; } m_testWidget->setExpand(bvec2(m_testWidget->getExpand().x(), _value)); } void appl::TestButton::onCallbackFillX(const bool& _value) { if (m_testWidget == nullptr) { return; } m_testWidget->setFill(bvec2(_value, m_testWidget->getFill().y())); } void appl::TestButton::onCallbackFillY(const bool& _value) { if (m_testWidget == nullptr) { return; } m_testWidget->setFill(bvec2(m_testWidget->getFill().x(), _value)); } void appl::TestButton::onCallbackToggle(const bool& _value) { if (m_testWidget == nullptr) { return; } m_testWidget->setToggleMode(_value); } void appl::TestButton::onCallbackTextToggle(const bool& _value) { if (m_testWidget == nullptr) { return; } if (_value == true) { m_testWidget->setSubWidgetToggle(ewol::widget::Label::create("A stupid very long text on toggle

and on multiple lines")); } else { m_testWidget->setSubWidgetToggle(nullptr); } } void appl::TestButton::onCallbackChangeText() { if (m_testWidget == nullptr) { return; } static int32_t countTextID = 1; switch (countTextID) { case 0: m_testWidget->setSubWidget(ewol::widget::Label::create("simple Text")); break; case 1: m_testWidget->setSubWidget(ewol::widget::Label::create("Align Left")); break; case 2: m_testWidget->setSubWidget(ewol::widget::Label::create("Align right")); break; case 3: m_testWidget->setSubWidget(ewol::widget::Label::create("
Align center
")); break; case 4: m_testWidget->setSubWidget(ewol::widget::Label::create("simple Text
With Some Other Lines
and more if you want ...
plop")); break; case 5: m_testWidget->setSubWidget(ewol::widget::Label::create("simple Text with bold")); break; case 6: m_testWidget->setSubWidget(ewol::widget::Label::create("simple Text with italic")); break; case 7: m_testWidget->setSubWidget(ewol::widget::Label::create("simple Text with italic bold")); break; case 8: m_testWidget->setSubWidget(nullptr); break; case 9: m_testWidget->setSubWidget(ewol::widget::Label::create("simple Text with colored text")); break; case 10: m_testWidget->setSubWidget(ewol::widget::Composer::create(ewol::widget::Composer::String, "\n")); break; case 11: m_testWidget->setSubWidget(ewol::widget::Composer::create(ewol::widget::Composer::String, " \n" " \n" " \n" " \n")); break; case 12: m_testWidget->setSubWidget(ewol::widget::Composer::create(ewol::widget::Composer::String, "\n")); break; default: m_testWidget->setSubWidget(ewol::widget::Label::create("My Button
And Some under line
plop
and an other super long line ...")); countTextID=-1; break; } // set at the subWidget all the space they can ... if (m_testWidget->getSubWidget() != nullptr){ m_testWidget->getSubWidget()->setFill(bvec2(true,true)); m_testWidget->getSubWidget()->setExpand(bvec2(true,true)); } countTextID++; }