implement initial Text functionality

This commit is contained in:
Josh Holtrop 2014-06-05 16:08:19 -04:00
parent 346dbaa783
commit 39aa6bbd42
2 changed files with 38 additions and 0 deletions

View File

@ -1,12 +1,29 @@
#ifndef JES_TEXT_H #ifndef JES_TEXT_H
#define JES_TEXT_H #define JES_TEXT_H
#include <stdint.h>
#include "jes/Ref.h" #include "jes/Ref.h"
namespace jes namespace jes
{ {
class Text class Text
{ {
public:
typedef char Character;
Text();
Text(const uint8_t buf[], size_t size);
size_t get_size() { return m_size - m_gap_size; }
Character operator[](int index)
{
return (Character)(m_buffer[index < m_insert_index ? index : index + m_gap_size]);
}
protected:
uint8_t * m_buffer;
size_t m_size;
size_t m_insert_index;
size_t m_gap_size;
}; };
typedef Ref<Text> TextRef; typedef Ref<Text> TextRef;
} }

View File

@ -1 +1,22 @@
#include "jes/Text.h" #include "jes/Text.h"
#include <string.h>
namespace jes
{
Text::Text()
{
m_buffer = NULL;
m_size = 0;
m_insert_index = 0;
m_gap_size = 0;
}
Text::Text(const uint8_t buf[], size_t size)
{
m_buffer = new uint8_t[size];
m_size = size;
m_insert_index = size;
m_gap_size = 0;
memcpy(m_buffer, &buf[0], size);
}
}