/** * @author Edouard DUPIN * * @copyright 2010, Edouard DUPIN, all right reserved * * @license GPL v3 (see license file) */ #ifndef __BUFFER_VIEW_H__ #define __BUFFER_VIEW_H__ #include #include #include #include #include namespace appl { class dataBufferStruct { public: etk::FSNode m_bufferName; std::shared_ptr m_buffer; dataBufferStruct(const std::string& _bufferName, const std::shared_ptr& _buffer) : m_bufferName(_bufferName), m_buffer(_buffer) { }; virtual ~dataBufferStruct() { }; }; }; class BufferView; using BufferViewShared = ememory::SharedPtr; using BufferViewWeak = ememory::WeakPtr; class BufferView : public ewol::widget::List { private: std::shared_ptr m_bufferManager; //!< handle on the buffer manager private: std::shared_ptr m_paintingProperties; //!< element painting property int32_t m_colorBackground1; int32_t m_colorBackground2; int32_t m_colorBackgroundSelect; int32_t m_colorTextNormal; int32_t m_colorTextModify; private: int32_t m_selectedIdRequested; int32_t m_selectedID; std::vector m_list; /** * @brief Insert the element in the alphabetic order. * @param[in] _dataStruct element to add. */ void insertAlphabetic(const appl::dataBufferStruct& _dataStruct, bool _selectNewPosition = false); protected: // Constructeur BufferView(); void init(); public: DECLARE_FACTORY(BufferView); virtual ~BufferView(); private: bool m_openOrderMode; //!< true if the order is the opening order mode, otherwise, Alphabetic order protected: // function call to display the list : virtual etk::Color<> getBasicBG(); void removeAllElement(); // Derived function virtual uint32_t getNuberOfColomn(); virtual bool getTitle(int32_t _colomn, std::string& _myTitle, etk::Color<>& _fg, etk::Color<>& _bg); virtual uint32_t getNuberOfRaw(); virtual bool getElement(int32_t _colomn, int32_t _raw, std::string& _myTextToWrite, etk::Color<>& _fg, etk::Color<>& _bg); virtual bool onItemEvent(int32_t _IdInput, enum gale::key::status _typeEvent, int32_t _colomn, int32_t _raw, float _x, float _y); private: //callback function: void onCallbackChangeName(); void onCallbackIsSave(); void onCallbackIsModify(); void onCallbackNewBuffer(const std::string& _value); void onCallbackselectNewFile(const std::string& _value); void onCallbackBufferRemoved(const std::shared_ptr& _buffer); }; #endif