00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
#ifndef UBASICDOCUMENT_HPP
00029
#define UBASICDOCUMENT_HPP
00030
00031
#include "udocument.hpp"
00032
#include "ucaret.hpp"
00033
00034
namespace ufo {
00035
00044 class UFO_EXPORT UBasicDocument :
public UDocument {
00045 UFO_DECLARE_DYNAMIC_CLASS(UBasicDocument)
00046
public:
00047 UBasicDocument();
00048
00049
virtual UCaret * createCaret();
00050
00051
public:
00052
virtual const char * getText()
const;
00053
00054
virtual unsigned int getLength()
const;
00055
00056
virtual void clear();
00057
virtual void append(
const char * chars,
unsigned int nChars);
00058
00059
virtual void replaceSelection(
const char * chars,
unsigned int nChars);
00060
00061
virtual void insertString(
unsigned int offset,
00062
const char * chars,
unsigned int nChars);
00063
00064
virtual void remove(
unsigned int offset,
unsigned int length);
00065
00066
virtual void replace(
unsigned int offset,
unsigned int length,
00067
const char * chars,
unsigned int nChars);
00068
00069
virtual UCaret * getCaret()
const;
00070
00071
00072
protected:
00073
virtual void updateCaret(
unsigned int offset,
00074
unsigned int rmLength,
unsigned int insLength);
00075
00076
private:
00077 std::string m_content;
00078
UCaret * m_caret;
00079 };
00080
00084 class UFO_EXPORT UBasicCaret :
public UCaret {
00085 UFO_DECLARE_DYNAMIC_CLASS(UBasicCaret)
00086
public:
00087 UBasicCaret(
UDocument * document);
00088
virtual ~UBasicCaret();
00089
00090
public:
00091
virtual void setPosition(
unsigned int posA);
00092
virtual unsigned int getPosition()
const;
00093
00094
virtual void setMark(
unsigned int mark);
00095
virtual unsigned int getMark()
const;
00096
00097
virtual void movePosition(
unsigned int newPosition);
00098
00099
virtual UDocument * getDocument()
const;
00100
00101
private:
00102
UDocument * m_document;
00103
unsigned int m_position;
00104
unsigned int m_mark;
00105 };
00106
00107 }
00108
00109
#endif // UBASICDOCUMENT_HPP