﻿/*
** Xin YUAN, 2019, BSD (2)
*/

////////////////////////////////////////////////////////////////////////////////
#ifndef __TEXT_MODEL_H__
#define __TEXT_MODEL_H__
////////////////////////////////////////////////////////////////////////////////
#include "common/TextDef.h"
////////////////////////////////////////////////////////////////////////////////
namespace CSL {
////////////////////////////////////////////////////////////////////////////////

// TextModel

class TextModel : public PropertyTrigger
{
public:
	TextModel();
	TextModel(const TextModel&) = delete;
	TextModel& operator=(const TextModel&) = delete;
	~TextModel() noexcept;

//properties
	std::shared_ptr<Fl_Text_Buffer> get_TextBuf() noexcept;

//methods
	bool Load(const std::string& str);
	bool Save(const std::string& str);
	bool Replace(const ReplacePara& para);

private:
	std::shared_ptr<Fl_Text_Buffer>  m_spBuffer;
};

////////////////////////////////////////////////////////////////////////////////
}
////////////////////////////////////////////////////////////////////////////////
#endif
////////////////////////////////////////////////////////////////////////////////
