/** @file * @author Edouard DUPIN * @copyright 2016, Edouard DUPIN, all right reserved * @license PROPRIETARY (see license file) */ #include #include #include #include #include #include #include #include appl::Windows::Windows() : m_composer(null), m_currentId(0), m_currentTypeId(0), m_userName("Edouard DUPIN") { addObjectType("appl::Windows"); propertyTitle.setDirectCheck(etk::String("sample ") + PROJECT_NAME); } void appl::Windows::init() { ewol::widget::Windows::init(); m_listType.pushBack("hand"); m_listType.pushBack("print"); m_currentTypeId = 0; etk::String tmp; for (char iii='0'; iii<='9'; ++iii) { tmp = iii; m_listValue.pushBack(tmp); } for (char iii='a'; iii<='z'; ++iii) { tmp = iii; m_listValue.pushBack(tmp); } for (char iii='A'; iii<='Z'; ++iii) { tmp = iii; m_listValue.pushBack(tmp); } m_listValue.pushBack("+"); m_listValue.pushBack("-"); m_listValue.pushBack("*"); m_listValue.pushBack("="); m_listValue.pushBack("/"); m_listValue.pushBack("?"); m_listValue.pushBack("!"); m_listValue.pushBack("@"); m_listValue.pushBack("#"); m_listValue.pushBack("~"); m_listValue.pushBack("&"); m_listValue.pushBack("("); m_listValue.pushBack(")"); m_listValue.pushBack("["); m_listValue.pushBack("]"); m_listValue.pushBack("{"); m_listValue.pushBack("}"); m_listValue.pushBack("^"); m_listValue.pushBack("%"); m_listValue.pushBack(";"); m_listValue.pushBack("."); m_listValue.pushBack(","); m_listValue.pushBack("<"); m_listValue.pushBack(">"); m_listValue.pushBack("µ"); m_listValue.pushBack("$"); m_listValue.pushBack("\""); m_listValue.pushBack("'"); m_listValue.pushBack("|"); m_listValue.pushBack("\\"); m_listValue.pushBack("€"); m_listValue.pushBack("ù"); m_listValue.pushBack("é"); m_listValue.pushBack("è"); m_listValue.pushBack("ç"); m_listValue.pushBack("à"); m_listValue.pushBack("÷"); m_listValue.pushBack("≠"); m_listValue.pushBack("≡"); m_listValue.pushBack("≤"); m_listValue.pushBack("≥"); m_listValue.pushBack("∀"); m_listValue.pushBack("∧"); m_listValue.pushBack("→"); m_listValue.pushBack("←"); m_listValue.pushBack("⇔"); m_listValue.pushBack("⌊"); m_listValue.pushBack("⌋"); m_listValue.pushBack("⌈"); m_listValue.pushBack("⌉"); m_listValue.pushBack("∆"); m_listValue.pushBack("∇"); m_listValue.pushBack("□"); m_listValue.pushBack("◊"); m_listValue.pushBack("⊳"); m_listValue.pushBack("⊵"); m_listValue.pushBack("⊲"); m_listValue.pushBack("⊴"); m_listValue.pushBack("∃"); m_listValue.pushBack("∑"); m_listValue.pushBack("≈"); m_listValue.pushBack("∝"); m_listValue.pushBack("∞"); m_currentId = 0; etk::String composition = etk::String(""); composition += "\n"; composition += " \n"; composition += " \n"; composition += " \n"; composition += " \n"; composition += " \n"; composition += " \n"; composition += " \n"; composition += " \n"; composition += " \n"; composition += " \n"; composition += " \n"; composition += " \n"; composition += " \n"; composition += " \n"; composition += " \n"; composition += " \n"; composition += " \n"; composition += " \n"; composition += " \n"; composition += " \n"; composition += " \n"; composition += " \n"; composition += "\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-clear", signalPressed, sharedFromThis(), &appl::Windows::onCallbackClear); subBind(ewol::widget::Button, "bt-undo", signalPressed, sharedFromThis(), &appl::Windows::onCallbackUndo); subBind(ewol::widget::Button, "bt-store", signalPressed, sharedFromThis(), &appl::Windows::onCallbackStore); subBind(ewol::widget::Button, "bt-previous", signalPressed, sharedFromThis(), &appl::Windows::onCallbackPrevious); subBind(ewol::widget::Button, "bt-next", signalPressed, sharedFromThis(), &appl::Windows::onCallbackNext); subBind(ewol::widget::Button, "bt-previous-type", signalPressed, sharedFromThis(), &appl::Windows::onCallbackPreviousType); subBind(ewol::widget::Button, "bt-next-type", signalPressed, sharedFromThis(), &appl::Windows::onCallbackNextType); subBind(ewol::widget::Entry, "user-name", signalModify, sharedFromThis(), &appl::Windows::onCallbackChangeNameUser); propertySetOnWidgetNamed("current-lettre", "value", m_listValue[m_currentId]); propertySetOnWidgetNamed("current-type", "value", m_listType[m_currentTypeId]); auto tmpDisp = ememory::dynamicPointerCast(getSubObjectNamed("recorder")); if (tmpDisp != null) { tmpDisp->setCompare(m_listType[m_currentTypeId] + " " + m_listValue[m_currentId]); } } void appl::Windows::onCallbackChangeNameUser(const etk::String& _value) { m_userName = _value; } void appl::Windows::onCallbackClear() { auto tmpDisp = ememory::dynamicPointerCast(getSubObjectNamed("recorder")); if (tmpDisp != null) { tmpDisp->clear(); } } void appl::Windows::onCallbackStore() { auto tmpDisp = ememory::dynamicPointerCast(getSubObjectNamed("recorder")); if (tmpDisp != null) { tmpDisp->store(m_userName, m_listValue[m_currentId], m_listType[m_currentTypeId]); tmpDisp->clear(); } } void appl::Windows::onCallbackUndo() { auto tmpDisp = ememory::dynamicPointerCast(getSubObjectNamed("recorder")); if (tmpDisp != null) { tmpDisp->undo(); } } void appl::Windows::onCallbackPrevious() { if (m_currentId == 0) { m_currentId = m_listValue.size(); } m_currentId--; if (m_listValue[m_currentId] == "<") { propertySetOnWidgetNamed("current-lettre", "value", "<"); } else if (m_listValue[m_currentId] == ">") { propertySetOnWidgetNamed("current-lettre", "value", ">"); } else { propertySetOnWidgetNamed("current-lettre", "value", m_listValue[m_currentId]); } auto tmpDisp = ememory::dynamicPointerCast(getSubObjectNamed("recorder")); if (tmpDisp != null) { tmpDisp->setCompare(m_listType[m_currentTypeId] + " " + m_listValue[m_currentId]); } onCallbackClear(); } void appl::Windows::onCallbackNext() { m_currentId++; if (m_currentId == m_listValue.size()) { m_currentId = 0; } if (m_listValue[m_currentId] == "<") { propertySetOnWidgetNamed("current-lettre", "value", "<"); } else if (m_listValue[m_currentId] == ">") { propertySetOnWidgetNamed("current-lettre", "value", ">"); } else { propertySetOnWidgetNamed("current-lettre", "value", m_listValue[m_currentId]); } auto tmpDisp = ememory::dynamicPointerCast(getSubObjectNamed("recorder")); if (tmpDisp != null) { tmpDisp->setCompare(m_listType[m_currentTypeId] + " " + m_listValue[m_currentId]); } onCallbackClear(); } void appl::Windows::onCallbackPreviousType() { if (m_currentTypeId == 0) { m_currentTypeId = m_listType.size(); } m_currentTypeId--; propertySetOnWidgetNamed("current-type", "value", m_listType[m_currentTypeId]); auto tmpDisp = ememory::dynamicPointerCast(getSubObjectNamed("recorder")); if (tmpDisp != null) { tmpDisp->setCompare(m_listType[m_currentTypeId] + " " + m_listValue[m_currentId]); } onCallbackClear(); } void appl::Windows::onCallbackNextType() { m_currentTypeId++; if (m_currentTypeId == m_listType.size()) { m_currentTypeId = 0; } propertySetOnWidgetNamed("current-type", "value", m_listType[m_currentTypeId]); auto tmpDisp = ememory::dynamicPointerCast(getSubObjectNamed("recorder")); if (tmpDisp != null) { tmpDisp->setCompare(m_listType[m_currentTypeId] + " " + m_listValue[m_currentId]); } onCallbackClear(); }