1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-10-17 19:32:07 +00:00
serenity/Editor/Position.h
2018-12-04 00:27:16 +01:00

27 lines
710 B
C++

#pragma once
#include <unistd.h>
class Position {
public:
Position() { }
Position(size_t line, size_t column) : m_line(line), m_column(column) { }
size_t line() const { return m_line; }
size_t column() const { return m_column; }
void set_line(size_t l) { m_line = l; }
void set_column(size_t c) { m_column = c; }
void move_to(size_t l, size_t c) { m_line = l; m_column = c; }
void move_by(ssize_t l, ssize_t c) { m_line += l; m_column += c; }
bool is_valid() const { return m_line != InvalidValue && m_column != InvalidValue; }
private:
static const size_t InvalidValue = 0xFFFFFFFF;
size_t m_line { InvalidValue };
size_t m_column { InvalidValue };
};