66 lines
1.7 KiB
C++
66 lines
1.7 KiB
C++
|
/*++
|
||
|
Copyright (c) Microsoft Corporation
|
||
|
Licensed under the MIT license.
|
||
|
|
||
|
Module Name:
|
||
|
- CharRowCellReference.hpp
|
||
|
|
||
|
Abstract:
|
||
|
- reference class for the glyph data of a char row cell
|
||
|
|
||
|
Author(s):
|
||
|
- Austin Diviness (AustDi) 02-May-2018
|
||
|
--*/
|
||
|
|
||
|
#pragma once
|
||
|
|
||
|
#include "DbcsAttribute.hpp"
|
||
|
#include "CharRowCell.hpp"
|
||
|
#include <utility>
|
||
|
|
||
|
class CharRow;
|
||
|
|
||
|
class CharRowCellReference final
|
||
|
{
|
||
|
public:
|
||
|
|
||
|
using const_iterator = const wchar_t*;
|
||
|
|
||
|
CharRowCellReference(CharRow& parent, const size_t index) :
|
||
|
_parent{ parent },
|
||
|
_index{ index }
|
||
|
{
|
||
|
}
|
||
|
|
||
|
~CharRowCellReference() = default;
|
||
|
CharRowCellReference(const CharRowCellReference&) = default;
|
||
|
CharRowCellReference(CharRowCellReference&&) = default;
|
||
|
|
||
|
void operator=(const CharRowCellReference&) = delete;
|
||
|
void operator=(CharRowCellReference&&) = delete;
|
||
|
|
||
|
void operator=(const std::wstring_view chars);
|
||
|
operator std::wstring_view() const;
|
||
|
|
||
|
const_iterator begin() const;
|
||
|
const_iterator end() const;
|
||
|
|
||
|
|
||
|
friend bool operator==(const CharRowCellReference& ref, const std::vector<wchar_t>& glyph);
|
||
|
friend bool operator==(const std::vector<wchar_t>& glyph, const CharRowCellReference& ref);
|
||
|
|
||
|
private:
|
||
|
// what char row the object belongs to
|
||
|
CharRow& _parent;
|
||
|
// the index of the cell in the parent char row
|
||
|
const size_t _index;
|
||
|
|
||
|
CharRowCell& _cellData();
|
||
|
const CharRowCell& _cellData() const;
|
||
|
|
||
|
std::wstring_view _glyphData() const;
|
||
|
};
|
||
|
|
||
|
bool operator==(const CharRowCellReference& ref, const std::vector<wchar_t>& glyph);
|
||
|
bool operator==(const std::vector<wchar_t>& glyph, const CharRowCellReference& ref);
|