summaryrefslogtreecommitdiff
path: root/src/display_buffer.hh
diff options
context:
space:
mode:
authorMaxime Coste <frrrwww@gmail.com>2011-09-28 20:54:11 +0000
committerMaxime Coste <frrrwww@gmail.com>2011-09-28 20:54:11 +0000
commitba2800ddacf69f3f9cc8389b1f1aa415cdd3fac1 (patch)
tree784dcba32110ed847fe9291dea8da04aed134a7b /src/display_buffer.hh
parent7746c78cccef6cb35e193c85182a496b33bb0c7a (diff)
Window: refactor DisplayBuffer generation
Diffstat (limited to 'src/display_buffer.hh')
-rw-r--r--src/display_buffer.hh23
1 files changed, 16 insertions, 7 deletions
diff --git a/src/display_buffer.hh b/src/display_buffer.hh
index fd609134..d1a1eebb 100644
--- a/src/display_buffer.hh
+++ b/src/display_buffer.hh
@@ -4,6 +4,8 @@
#include <string>
#include <vector>
+#include "buffer.hh"
+
namespace Kakoune
{
@@ -33,13 +35,19 @@ enum class Color
struct DisplayAtom
{
- std::string content;
- Color fg_color;
- Color bg_color;
- Attribute attribute;
+ std::string content;
+ BufferIterator begin;
+ BufferIterator end;
+ Color fg_color;
+ Color bg_color;
+ Attribute attribute;
- DisplayAtom()
- : fg_color(Color::Default),
+ DisplayAtom(BufferIterator begin, BufferIterator end,
+ const std::string& content)
+ : content(content),
+ begin(begin),
+ end(end),
+ fg_color(Color::Default),
bg_color(Color::Default),
attribute(Attributes::Normal)
{}
@@ -48,7 +56,7 @@ struct DisplayAtom
class DisplayBuffer
{
public:
- typedef std::vector<DisplayAtom> AtomList;
+ typedef std::vector<DisplayAtom> AtomList;
typedef AtomList::iterator iterator;
typedef AtomList::const_iterator const_iterator;
@@ -56,6 +64,7 @@ public:
void clear() { m_atoms.clear(); }
void append(const DisplayAtom& atom) { m_atoms.push_back(atom); }
+ iterator insert(iterator where, const DisplayAtom& atom) { return m_atoms.insert(where, atom); }
iterator begin() { return m_atoms.begin(); }
iterator end() { return m_atoms.end(); }