mirror of
https://github.com/IoTManagerProject/IoTManager.git
synced 2026-03-26 22:22:16 +03:00
reverting version
This commit is contained in:
68
include/Module/EditLine.h
Normal file
68
include/Module/EditLine.h
Normal file
@@ -0,0 +1,68 @@
|
||||
#pragma once
|
||||
|
||||
#include "Module/CharBuffer.h"
|
||||
|
||||
class EditLine : public CharBuffer {
|
||||
public:
|
||||
EditLine(size_t size) : CharBuffer(size){};
|
||||
|
||||
char &operator[](size_t i) { return _pool[i]; }
|
||||
|
||||
char operator[](size_t i) const { return _pool[i]; }
|
||||
|
||||
EditLine &operator=(const EditLine &src) {
|
||||
delete[] _pool;
|
||||
_pool = new char[src._capacity];
|
||||
memcpy(_pool, src._pool, src._capacity);
|
||||
_read = src._read;
|
||||
_write = src._write;
|
||||
return *this;
|
||||
}
|
||||
|
||||
void del() {
|
||||
size_t i;
|
||||
for (i = _write; i < _capacity; ++i)
|
||||
_pool[i] = _pool[i + 1];
|
||||
_pool[i] = '\x00';
|
||||
}
|
||||
|
||||
bool backspace() {
|
||||
bool res = false;
|
||||
if (prev()) {
|
||||
del();
|
||||
res = true;
|
||||
}
|
||||
return res;
|
||||
}
|
||||
|
||||
bool next() {
|
||||
bool res = false;
|
||||
if (_write < _capacity - 1) {
|
||||
_write++;
|
||||
res = true;
|
||||
}
|
||||
return res;
|
||||
}
|
||||
|
||||
bool prev() {
|
||||
bool res = false;
|
||||
if (_write > 0) {
|
||||
_write--;
|
||||
res = true;
|
||||
}
|
||||
return res;
|
||||
}
|
||||
|
||||
size_t home() {
|
||||
size_t res = _write;
|
||||
_write = 0;
|
||||
return res;
|
||||
}
|
||||
|
||||
size_t end() {
|
||||
size_t n;
|
||||
for (n = 0; n < _capacity - 1; ++n)
|
||||
if (_pool[n] == '\x00') break;
|
||||
return n;
|
||||
}
|
||||
};
|
||||
Reference in New Issue
Block a user