Add a display coord to buffer coord method to Window

This commit is contained in:
Maxime Coste 2015-03-18 23:40:26 +00:00
parent d3738b858b
commit 3e28539b81
2 changed files with 10 additions and 2 deletions

View File

@ -234,7 +234,7 @@ ByteCoord find_buffer_coord(const DisplayLine& line, const Buffer& buffer,
}
}
CharCoord Window::display_position(ByteCoord coord)
CharCoord Window::display_position(ByteCoord coord) const
{
LineCount l = 0;
for (auto& line : m_display_buffer.lines())
@ -247,6 +247,13 @@ CharCoord Window::display_position(ByteCoord coord)
return { 0, 0 };
}
ByteCoord Window::buffer_coord(CharCoord coord) const
{
if (0_line <= coord.line and coord.line < m_display_buffer.lines().size())
return find_buffer_coord(m_display_buffer.lines()[(int)coord.line], buffer(), coord.column);
return { 0, 0 };
}
ByteCoord Window::offset_coord(ByteCoord coord, CharCount offset)
{
return buffer().offset_coord(coord, offset);

View File

@ -31,7 +31,8 @@ public:
void scroll(CharCount offset);
void update_display_buffer(const Context& context);
CharCoord display_position(ByteCoord coord);
CharCoord display_position(ByteCoord coord) const;
ByteCoord buffer_coord(CharCoord coord) const;
Highlighter& highlighters() { return m_highlighters; }