blob: 0b40e61fcee2e7992f5623e1e39181ffbcc1b991 [file] [log] [blame]
// Copyright 2013 The Flutter Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef FLUTTER_IMPELLER_TOOLKIT_INTEROP_GLYPH_INFO_H_
#define FLUTTER_IMPELLER_TOOLKIT_INTEROP_GLYPH_INFO_H_
#include "flutter/third_party/skia/modules/skparagraph/include/Paragraph.h"
#include "impeller/toolkit/interop/impeller.h"
#include "impeller/toolkit/interop/object.h"
namespace impeller::interop {
//------------------------------------------------------------------------------
/// @brief Internal C++ peer of ImpellerGlyphInfo. For detailed
/// documentation, refer to the headerdocs in the public API in
/// impeller.h.
///
class GlyphInfo final
: public Object<GlyphInfo,
IMPELLER_INTERNAL_HANDLE_NAME(ImpellerGlyphInfo)> {
public:
explicit GlyphInfo(skia::textlayout::Paragraph::GlyphInfo info)
: info_(info) {}
~GlyphInfo();
GlyphInfo(const GlyphInfo&) = delete;
GlyphInfo& operator=(const GlyphInfo&) = delete;
//----------------------------------------------------------------------------
/// @see ImpellerGlyphInfoGetGraphemeClusterCodeUnitRangeBegin.
///
size_t GetGraphemeClusterCodeUnitRangeBegin() const;
//----------------------------------------------------------------------------
/// @see ImpellerGlyphInfoGetGraphemeClusterCodeUnitRangeEnd.
///
size_t GetGraphemeClusterCodeUnitRangeEnd() const;
//----------------------------------------------------------------------------
/// @see ImpellerGlyphInfoGetGraphemeClusterBounds.
///
ImpellerRect GetGraphemeClusterBounds() const;
//----------------------------------------------------------------------------
/// @see ImpellerGlyphInfoIsEllipsis.
///
bool IsEllipsis() const;
//----------------------------------------------------------------------------
/// @see ImpellerGlyphInfoGetTextDirection.
///
ImpellerTextDirection GetTextDirection() const;
private:
const skia::textlayout::Paragraph::GlyphInfo info_;
};
} // namespace impeller::interop
#endif // FLUTTER_IMPELLER_TOOLKIT_INTEROP_GLYPH_INFO_H_