void appl::Windows::init() { ewol::widget::Windows::init(); etk::String composition = etk::String(""); composition += "<sizer mode='vert'>\n"; composition += " <sizer mode='hori'>\n"; composition += " <button name='bt-play1'>\n"; composition += " <label>\n"; composition += " Play 1\n"; composition += " </label>\n"; composition += " </button>\n"; composition += " <button name='bt-stop1'>\n"; composition += " <label>\n"; composition += " Stop 1\n"; composition += " </label>\n"; composition += " </button>\n"; composition += " <button name='bt-play-stop'>\n"; composition += " <label>\n"; composition += " Play / Stop\n"; composition += " </label>\n"; composition += " </button>\n"; composition += " </sizer>\n"; composition += " <spacer expand='true' fill='true'/>\n"; composition += "</sizer>\n"; m_composer = ewol::widget::Composer::create(); if (m_composer == null) { APPL_CRITICAL(" An error occured ... in the windows creatrion ..."); return; } m_composer->loadFromString(composition); setSubWidget(m_composer); subBind(ewol::widget::Button, "bt-play1", signalPressed, sharedFromThis(), &appl::Windows::onCallbackPlay); subBind(ewol::widget::Button, "bt-stop1", signalPressed, sharedFromThis(), &appl::Windows::onCallbackStop); subBind(ewol::widget::Button, "bt-play-stop", signalPressed, sharedFromThis(), &appl::Windows::onCallbackPlayStop); }
void appl::Windows::init() { ewol::widget::Windows::init(); getObjectManager().periodicCall.connect(sharedFromThis(), &appl::Windows::onCallbackPeriodicUpdateCamera); m_env = ege::Environement::create(); // Create basic Camera m_camera = ememory::makeShared<ege::camera::View>(vec3(30,30,-100), vec3(0,0,0)); m_env->addCamera("basic", m_camera); ememory::SharedPtr<ege::widget::Scene> tmpWidget = ege::widget::Scene::create(); if (tmpWidget == nullptr) { APPL_ERROR("Can not allocate widget ==> display might be in error"); } else { tmpWidget->setEnv(m_env); tmpWidget->propertyExpand.set(bvec2(true,true)); tmpWidget->propertyFill.set(bvec2(true,true)); tmpWidget->setCamera("basic"); setSubWidget(tmpWidget); } ememory::SharedPtr<ege::resource::Mesh> myMesh; // Create an external box : myMesh = createViewBoxStar(); if (myMesh != nullptr) { m_env->addStaticMeshToDraw(myMesh); } myMesh = ege::resource::Mesh::createGrid(10, vec3(0,0,0), 5); if (myMesh != nullptr) { m_env->addStaticMeshToDraw(myMesh); } }
void appl::Windows::init() { //! [ewol_sample_HW_windows_init] ewol::widget::Windows::init(); //! [ewol_sample_HW_windows_init] //! [ewol_sample_HW_windows_label] ewol::widget::LabelShared tmpWidget = ewol::widget::Label::create(); if (tmpWidget == nullptr) { APPL_ERROR("Can not allocate widget ==> display might be in error"); } else { tmpWidget->propertyValue.set("Hello <font color='blue'>World</font>"); tmpWidget->propertyExpand.set(bvec2(true,true)); // confidure the label as a windows sub-widget setSubWidget(tmpWidget); } //! [ewol_sample_HW_windows_label] }
bool ewol::widget::Container::loadXML(exml::Element* _node) { if (nullptr == _node) { return false; } // parse generic properties : ewol::Widget::loadXML(_node); // remove previous element : subWidgetRemove(); // parse all the elements : for(size_t iii=0; iii< _node->size(); iii++) { exml::Element* pNode = _node->getElement(iii); if (pNode == nullptr) { // trash here all that is not element continue; } std::string widgetName = pNode->getValue(); if (getWidgetManager().exist(widgetName) == false) { EWOL_ERROR("(l "<<pNode->getPos()<<") Unknown basic node=\"" << widgetName << "\" not in : [" << getWidgetManager().list() << "]" ); continue; } if (nullptr != getSubWidget()) { EWOL_ERROR("(l "<<pNode->getPos()<<") " << __class__ << " Can only have one subWidget ??? node=\"" << widgetName << "\"" ); continue; } EWOL_DEBUG("try to create subwidget : '" << widgetName << "'"); std::shared_ptr<ewol::Widget> tmpWidget = getWidgetManager().create(widgetName); if (tmpWidget == nullptr) { EWOL_ERROR ("(l "<<pNode->getPos()<<") Can not create the widget : \"" << widgetName << "\""); continue; } // add widget : setSubWidget(tmpWidget); if (false == tmpWidget->loadXML(pNode)) { EWOL_ERROR ("(l "<<pNode->getPos()<<") can not load widget properties : \"" << widgetName << "\""); return false; } } return true; }
/** * @brief Specify the current toggle widget * @param[in] _subWidget Widget to add Toggle */ void setSubWidgetToggle(ewol::WidgetShared _subWidget) { setSubWidget(_subWidget, 1); }
/** * @brief Specify the current widget * @param[in] _subWidget Widget to add normal */ void setSubWidget(ewol::WidgetShared _subWidget) { setSubWidget(_subWidget, 0); }
void ewol::widget::Parameter::init() { ewol::widget::PopUp::init(); std::shared_ptr<ewol::widget::Sizer> mySizerVert = nullptr; std::shared_ptr<ewol::widget::Sizer> mySizerHori = nullptr; std::shared_ptr<ewol::widget::Spacer> mySpacer = nullptr; #ifdef __TARGET_OS__Android setMinSize(ewol::Dimension(vec2(90, 90), ewol::Dimension::Pourcent)); #else setMinSize(ewol::Dimension(vec2(80, 80), ewol::Dimension::Pourcent)); #endif mySizerVert = ewol::widget::Sizer::create(widget::Sizer::modeVert); if (nullptr == mySizerVert) { EWOL_ERROR("Can not allocate widget == > display might be in error"); } else { EWOL_INFO("add widget"); mySizerVert->lockExpand(bvec2(true,true)); mySizerVert->setExpand(bvec2(true,true)); // set it in the pop-up-system : setSubWidget(mySizerVert); mySizerHori = ewol::widget::Sizer::create(widget::Sizer::modeHori); if (nullptr == mySizerHori) { EWOL_ERROR("Can not allocate widget == > display might be in error"); } else { mySizerVert->subWidgetAdd(mySizerHori); mySpacer = ewol::widget::Spacer::create(); if (nullptr == mySpacer) { EWOL_ERROR("Can not allocate widget == > display might be in error"); } else { mySpacer->setExpand(bvec2(true,false)); mySizerHori->subWidgetAdd(mySpacer); } std::shared_ptr<ewol::widget::Button> tmpButton = widget::Button::create(); if (nullptr == tmpButton) { EWOL_ERROR("Can not allocate widget == > display might be in error"); } else { tmpButton->setSubWidget(ewol::widget::Composer::create(widget::Composer::String, "<composer>\n" " <sizer mode=\"hori\">\n" " <image src=\"THEME:GUI:Save.svg\" expand=\"true\" size=\"8,8mm\"/>\n" " <label>Save</label>\n" " </sizer>\n" "</composer>\n")); tmpButton->signalPressed.bind(shared_from_this(), &ewol::widget::Parameter::onCallbackParameterSave); mySizerHori->subWidgetAdd(tmpButton); } mySpacer = ewol::widget::Spacer::create(); if (nullptr == mySpacer) { EWOL_ERROR("Can not allocate widget == > display might be in error"); } else { mySpacer->setExpand(bvec2(false,false)); mySpacer->setMinSize(ewol::Dimension(vec2(10,0))); mySizerHori->subWidgetAdd(mySpacer); } tmpButton = ewol::widget::Button::create(); if (nullptr == tmpButton) { EWOL_ERROR("Can not allocate widget == > display might be in error"); } else { tmpButton->setSubWidget(ewol::widget::Composer::create(widget::Composer::String, "<composer>\n" " <sizer mode=\"hori\">\n" " <image src=\"THEME:GUI:Remove.svg\" expand=\"true\" size=\"8,8mm\"/>\n" " <label>Close</label>\n" " </sizer>\n" "</composer>\n")); tmpButton->signalPressed.bind(shared_from_this(), &ewol::widget::Parameter::onCallbackMenuclosed); mySizerHori->subWidgetAdd(tmpButton); } } mySizerHori = ewol::widget::Sizer::create(widget::Sizer::modeHori); if (nullptr == mySizerHori) { EWOL_ERROR("Can not allocate widget == > display might be in error"); } else { mySizerVert->subWidgetAdd(mySizerHori); m_paramList = ewol::widget::ParameterList::create(); if (nullptr == m_paramList) { EWOL_ERROR("Can not allocate widget == > display might be in error"); } else { m_paramList->signalSelect.bind(shared_from_this(), &ewol::widget::Parameter::onCallbackMenuSelected); m_paramList->setFill(bvec2(false,true)); m_paramList->setExpand(bvec2(false,true)); mySizerHori->subWidgetAdd(m_paramList); } mySpacer = ewol::widget::Spacer::create(); if (nullptr == mySpacer) { EWOL_ERROR("Can not allocate widget == > display might be in error"); } else { mySpacer->setFill(bvec2(false,true)); mySpacer->setMinSize(vec2(5,5)); mySpacer->setColor(0x000000BF); mySizerHori->subWidgetAdd(mySpacer); } std::shared_ptr<ewol::widget::Sizer> mySizerVert2 = widget::Sizer::create(widget::Sizer::modeVert); if (nullptr == mySizerVert2) { EWOL_ERROR("Can not allocate widget == > display might be in error"); } else { mySizerHori->subWidgetAdd(mySizerVert2); mySpacer = ewol::widget::Spacer::create(); if (nullptr == mySpacer) { EWOL_ERROR("Can not allocate widget == > display might be in error"); } else { mySpacer->setExpand(bvec2(true,false)); mySpacer->setMinSize(vec2(5,5)); mySpacer->setColor(0x000000BF); mySizerVert2->subWidgetAdd(mySpacer); } m_wSlider = ewol::widget::WSlider::create(); if (nullptr == m_wSlider) { EWOL_ERROR("Can not allocate widget == > display might be in error"); } else { m_wSlider->setTransitionSpeed(0.5); m_wSlider->setTransitionMode(ewol::widget::WSlider::sladingTransitionVert); m_wSlider->setExpand(bvec2(true,true)); mySizerVert2->subWidgetAdd(m_wSlider); } } } mySpacer = ewol::widget::Spacer::create(); if (nullptr == mySpacer) { EWOL_ERROR("Can not allocate widget == > display might be in error"); } else { mySpacer->setExpand(bvec2(true,false)); mySpacer->setMinSize(vec2(5,5)); mySpacer->setColor(0x000000BF); mySizerVert->subWidgetAdd(mySpacer); } m_widgetTitle = ewol::widget::Label::create("File chooser ..."); if (nullptr == m_widgetTitle) { EWOL_ERROR("Can not allocate widget == > display might be in error"); } else { m_widgetTitle->setExpand(bvec2(true,false)); mySizerVert->subWidgetAdd(m_widgetTitle); } } markToRedraw(); }