54 lines
1.5 KiB
C++
54 lines
1.5 KiB
C++
/** @file
|
|
* @author Edouard DUPIN
|
|
* @copyright 2011, Edouard DUPIN, all right reserved
|
|
* @license MPL v2.0 (see license file)
|
|
*/
|
|
#pragma once
|
|
|
|
#include <ewol/widget/TreeView.hpp>
|
|
#include <ewol/resource/ColorFile.hpp>
|
|
#include <esignal/Signal.hpp>
|
|
#include <etk/FlatTree.hpp>
|
|
|
|
namespace appl {
|
|
namespace widget {
|
|
class BasicTree;
|
|
using BasicTreeShared = ememory::SharedPtr<appl::widget::BasicTree>;
|
|
using BasicTreeWeak = ememory::WeakPtr<appl::widget::BasicTree>;
|
|
class TreeElement {
|
|
public:
|
|
TreeElement(const etk::String& _display="", bool _isSelected = false, bool _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 :
|
|
*/
|
|
class BasicTree : public ewol::widget::TreeView {
|
|
protected:
|
|
BasicTree();
|
|
void init() override;
|
|
public:
|
|
DECLARE_WIDGET_FACTORY(BasicTree, "BasicTree");
|
|
virtual ~BasicTree();
|
|
protected:
|
|
void updateFlatTree();
|
|
etk::Color<> getBasicBG() override;
|
|
ivec2 getMatrixSize() const override;
|
|
fluorine::Variant getData(int32_t _role, const ivec2& _pos) override;
|
|
//bool onItemEvent(const ewol::event::Input& _event, const ivec2& _pos, const vec2& _mousePosition) override;
|
|
void onItemExpandEvent(const ivec2& _pos) override;
|
|
ememory::SharedPtr<etk::TreeNode<TreeElement>> m_tree;
|
|
etk::FlatTree<TreeElement> m_flatTree;
|
|
};
|
|
};
|
|
};
|
|
|
|
|