218 lines
6.5 KiB
C++
218 lines
6.5 KiB
C++
/**
|
|
* @author Edouard DUPIN
|
|
*
|
|
* @copyright 2010, Edouard DUPIN, all right reserved
|
|
*
|
|
* @license GPL v3 (see license file)
|
|
*/
|
|
|
|
#ifndef __APPL_TEXT_PLUGIN_H__
|
|
#define __APPL_TEXT_PLUGIN_H__
|
|
|
|
#include <etk/types.h>
|
|
#include <ewol/object/Object.h>
|
|
#include <appl/Gui/TextViewer.h>
|
|
#include <ewol/compositing/Text.h>
|
|
|
|
namespace appl {
|
|
class TextViewerPlugin : public ewol::Object {
|
|
friend class appl::TextViewer;
|
|
public:
|
|
TextViewerPlugin(void);
|
|
virtual ~TextViewerPlugin(void);
|
|
private:
|
|
bool m_isEnable; //!< The plugin is enable or not (for all viewer).
|
|
public:
|
|
/**
|
|
* @brief Set activity status of the plugin
|
|
* @param[in] _status new activity status
|
|
*/
|
|
void setEnableStatus(bool _status);
|
|
/**
|
|
* @brief Get the activity status.
|
|
* @return true if the plugin is active, false otherwise.
|
|
*/
|
|
bool isEnable(void) {
|
|
return m_isEnable;
|
|
};
|
|
public:
|
|
/**
|
|
* @brief On plugin global enable.
|
|
*/
|
|
virtual void onPluginEnable(void) {
|
|
// nothing to do here ...
|
|
};
|
|
/**
|
|
* @brief On plugin global disable.
|
|
*/
|
|
virtual void onPluginDisable(void) {
|
|
// nothing to do here ...
|
|
};
|
|
/**
|
|
* @brief On plugin enable on a specific text viewer.
|
|
* @param[in] _widget Reference on the widget caller.
|
|
*/
|
|
virtual void onPluginEnable(appl::TextViewer& _textDrawer) {
|
|
// nothing to do here ...
|
|
};
|
|
/**
|
|
* @brief On plugin disable on a specific text viewer.
|
|
* @param[in] _widget Reference on the widget caller.
|
|
*/
|
|
virtual void onPluginDisable(appl::TextViewer& _textDrawer) {
|
|
// nothing to do here ...
|
|
};
|
|
protected:
|
|
bool m_activateOnEventEntry; //!< onEventEntry is availlable for this plugin.
|
|
public:
|
|
/**
|
|
* @brief Get the availlability of a callback
|
|
* @return true if availlable
|
|
*/
|
|
bool isAvaillableOnEventEntry(void) {
|
|
return m_activateOnEventEntry;
|
|
}
|
|
/**
|
|
* @brief On entry event call.
|
|
* @param[in] _widget Reference on the widget caller.
|
|
* @param[in] _event Generic event.
|
|
* @return true if the event might not propagate anymore.
|
|
*/
|
|
virtual bool onEventEntry(appl::TextViewer& _textDrawer,
|
|
const ewol::event::Entry& _event) {
|
|
return false;
|
|
};
|
|
protected:
|
|
bool m_activateOnEventInput; //!< onEventInput is availlable for this plugin.
|
|
public:
|
|
/**
|
|
* @brief Get the availlability of a callback
|
|
* @return true if availlable
|
|
*/
|
|
bool isAvaillableOnEventInput(void) {
|
|
return m_activateOnEventInput;
|
|
}
|
|
/**
|
|
* @brief On Input event call.
|
|
* @param[in] _widget Reference on the widget caller.
|
|
* @param[in] _event Generic event.
|
|
* @return true if the event might not propagate anymore
|
|
*/
|
|
virtual bool onEventInput(appl::TextViewer& _textDrawer,
|
|
const ewol::event::Input& _event) {
|
|
return false;
|
|
};
|
|
protected:
|
|
bool m_activateOnWrite; //!< onWrite is availlable for this plugin.
|
|
public:
|
|
/**
|
|
* @brief Get the availlability of a callback
|
|
* @return true if availlable
|
|
*/
|
|
bool isAvaillableOnWrite(void) {
|
|
return m_activateOnWrite;
|
|
}
|
|
/**
|
|
* @brief Called when data is written in the buffer.
|
|
* @param[in] _widget Reference on the widget caller.
|
|
* @param[in] _pos Position in the buffer where data might be witten.
|
|
* @param[in] _data Input stream written.
|
|
* @return true if the event might not propagate anymore
|
|
*/
|
|
virtual bool onWrite(appl::TextViewer& _textDrawer,
|
|
const appl::Buffer::Iterator& _pos,
|
|
const std::string& _data) {
|
|
return false;
|
|
};
|
|
protected:
|
|
bool m_activateOnReplace; //!< onReplace is availlable for this plugin.
|
|
public:
|
|
/**
|
|
* @brief Get the availlability of a callback
|
|
* @return true if availlable
|
|
*/
|
|
bool isAvaillableOnReplace(void) {
|
|
return m_activateOnReplace;
|
|
}
|
|
/**
|
|
* @brief Called when data is written in the buffer, and some are removed.
|
|
* @param[in] _widget Reference on the widget caller.
|
|
* @param[in] _pos Position in the buffer where data might be witten.
|
|
* @param[in] _data Input stream written.
|
|
* @param[in] _posEnd end replace position.
|
|
* @return true if the event might not propagate anymore
|
|
*/
|
|
virtual bool onReplace(appl::TextViewer& _textDrawer,
|
|
const appl::Buffer::Iterator& _pos,
|
|
const std::string& _data,
|
|
const appl::Buffer::Iterator& _posEnd) {
|
|
return false;
|
|
};
|
|
protected:
|
|
bool m_activateOnRemove; //!< onRemove is availlable for this plugin.
|
|
public:
|
|
/**
|
|
* @brief Get the availlability of a callback
|
|
* @return true if availlable
|
|
*/
|
|
bool isAvaillableOnRemove(void) {
|
|
return m_activateOnRemove;
|
|
}
|
|
/**
|
|
* @brief Called when data is removed.
|
|
* @param[in] _widget Reference on the widget caller.
|
|
* @param[in] _pos Position in the buffer where data might be witten.
|
|
* @param[in] _posEnd end replace position.
|
|
* @return true if the event might not propagate anymore
|
|
*/
|
|
virtual bool onRemove(appl::TextViewer& _textDrawer,
|
|
const appl::Buffer::Iterator& _pos,
|
|
const appl::Buffer::Iterator& _posEnd) {
|
|
return false;
|
|
};
|
|
protected:
|
|
bool m_activateOnReceiveMessage; //!< onReceiveMessage is availlable for this plugin.
|
|
public:
|
|
/**
|
|
* @brief Get the availlability of a callback
|
|
* @return true if availlable
|
|
*/
|
|
bool isAvaillableOnReceiveMessage(void) {
|
|
return m_activateOnReceiveMessage;
|
|
}
|
|
/**
|
|
* @brief Called when a message arrive.
|
|
* @param[in] _widget Reference on the widget caller.
|
|
* @param[in] _msg Generic message.
|
|
* @return true if the event might not propagate anymore
|
|
*/
|
|
virtual bool onReceiveMessage(appl::TextViewer& _textDrawer,
|
|
const ewol::object::Message& _msg) {
|
|
return false;
|
|
}
|
|
protected:
|
|
bool m_activateOnCursorMove; //!< onCursorMove is availlable for this plugin.
|
|
public:
|
|
/**
|
|
* @brief Get the availlability of a callback
|
|
* @return true if availlable
|
|
*/
|
|
bool isAvaillableOnCursorMove(void) {
|
|
return m_activateOnCursorMove;
|
|
}
|
|
/**
|
|
* @brief Called when Cursor move of position.
|
|
* @param[in] _widget Reference on the widget caller.
|
|
* @param[in] _pos New cursor position.
|
|
* @return true if the event might not propagate anymore
|
|
*/
|
|
virtual bool onCursorMove(appl::TextViewer& _textDrawer,
|
|
const appl::Buffer::Iterator& _pos) {
|
|
return false;
|
|
}
|
|
};
|
|
};
|
|
|
|
|
|
#endif
|