[DEV] add subElement
This commit is contained in:
parent
0b2e9d4129
commit
0d0cb02b85
@ -14,16 +14,22 @@ ETK_DECLARE_TYPE(appl::widget::BasicTree);
|
|||||||
appl::widget::BasicTree::BasicTree() {
|
appl::widget::BasicTree::BasicTree() {
|
||||||
addObjectType("appl::widget::BasicTree");
|
addObjectType("appl::widget::BasicTree");
|
||||||
setMouseLimit(1);
|
setMouseLimit(1);
|
||||||
m_tree = NodeElement::create("root");
|
m_tree = NodeElement::create(TreeElement("root", false, true));
|
||||||
for (size_t iii=0; iii<10; ++iii) {
|
for (size_t iii=0; iii<10; ++iii) {
|
||||||
auto elem_iii = NodeElement::create("elem_" + etk::toString(iii));
|
auto elem_iii = NodeElement::create(TreeElement("elem_" + etk::toString(iii)));
|
||||||
m_tree->addChild(elem_iii);
|
m_tree->addChild(elem_iii);
|
||||||
for (size_t jjj=0; jjj<iii; ++jjj) {
|
for (size_t jjj=0; jjj<iii; ++jjj) {
|
||||||
auto elem_iii_jjj = NodeElement::create("elem_" + etk::toString(iii) + "____" + etk::toString(jjj));
|
auto elem_iii_jjj = NodeElement::create(TreeElement("elem_" + etk::toString(iii) + "____" + etk::toString(jjj)));
|
||||||
elem_iii->addChild(elem_iii_jjj);
|
elem_iii->addChild(elem_iii_jjj);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
m_flatTree.setRoot(m_tree);
|
m_flatTree.setRoot(m_tree,
|
||||||
|
[&](TreeElement* _value){
|
||||||
|
return true;
|
||||||
|
},
|
||||||
|
[&](TreeElement* _value){
|
||||||
|
return _value.m_isExpand;
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
appl::widget::BasicTree::~BasicTree() {
|
appl::widget::BasicTree::~BasicTree() {
|
||||||
@ -41,11 +47,11 @@ ivec2 appl::widget::BasicTree::getMatrixSize() const {
|
|||||||
|
|
||||||
fluorine::Variant appl::widget::BasicTree::getData(int32_t _role, const ivec2& _pos) {
|
fluorine::Variant appl::widget::BasicTree::getData(int32_t _role, const ivec2& _pos) {
|
||||||
auto elem = m_flatTree[_pos.y()];
|
auto elem = m_flatTree[_pos.y()];
|
||||||
etk::String value = elem->getData();
|
TreeElement& value = elem->getData();
|
||||||
switch (_role) {
|
switch (_role) {
|
||||||
case ewol::widget::ListRole::Text:
|
case ewol::widget::ListRole::Text:
|
||||||
if (_pos.x() == 0) {
|
if (_pos.x() == 0) {
|
||||||
return value;
|
return value.m_display;
|
||||||
}
|
}
|
||||||
if (_pos.x() == 1) {
|
if (_pos.x() == 1) {
|
||||||
//return etk::toString(countToRoot);
|
//return etk::toString(countToRoot);
|
||||||
|
@ -16,6 +16,18 @@ namespace appl {
|
|||||||
class BasicTree;
|
class BasicTree;
|
||||||
using BasicTreeShared = ememory::SharedPtr<appl::widget::BasicTree>;
|
using BasicTreeShared = ememory::SharedPtr<appl::widget::BasicTree>;
|
||||||
using BasicTreeWeak = ememory::WeakPtr<appl::widget::BasicTree>;
|
using BasicTreeWeak = ememory::WeakPtr<appl::widget::BasicTree>;
|
||||||
|
class TreeElement {
|
||||||
|
public:
|
||||||
|
TreeElement(const etk::String& _display="", bool _isSelected = false, bool m_isExpand=false):
|
||||||
|
m_display(_display),
|
||||||
|
m_isSelected(_isSelected),
|
||||||
|
m_isExpand(_isExpand) {
|
||||||
|
|
||||||
|
}
|
||||||
|
etk::String m_display;
|
||||||
|
bool m_isSelected = false;
|
||||||
|
bool m_isExpand = false;
|
||||||
|
}
|
||||||
/**
|
/**
|
||||||
* @brief Generic display folder class. This widget display the content of a single folder :
|
* @brief Generic display folder class. This widget display the content of a single folder :
|
||||||
*/
|
*/
|
||||||
@ -31,9 +43,8 @@ namespace appl {
|
|||||||
fluorine::Variant getData(int32_t _role, const ivec2& _pos) override;
|
fluorine::Variant getData(int32_t _role, const ivec2& _pos) override;
|
||||||
bool onItemEvent(int32_t _IdInput, enum gale::key::status _typeEvent, const ivec2& _pos, const vec2& _mousePosition) override;
|
bool onItemEvent(int32_t _IdInput, enum gale::key::status _typeEvent, const ivec2& _pos, const vec2& _mousePosition) override;
|
||||||
|
|
||||||
using NodeElement = etk::TreeNode<etk::String>;
|
ememory::SharedPtr<etk::TreeNode<NodeElement>> m_tree;
|
||||||
ememory::SharedPtr<NodeElement> m_tree;
|
etk::FlatTree<TreeElement> m_flatTree;
|
||||||
etk::FlatTree<etk::String> m_flatTree;
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
Loading…
x
Reference in New Issue
Block a user