/* * Copyright (c) Facebook, Inc. and its affiliates. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. */ #pragma once #include #include #include #include #include #include #include namespace facebook { namespace react { class TextLayoutManager; using SharedTextLayoutManager = std::shared_ptr; /* * Cross platform facade for Android-specific TextLayoutManager. */ class TextLayoutManager { public: TextLayoutManager(const ContextContainer::Shared &contextContainer) {} ~TextLayoutManager(); /* * Measures `attributedStringBox` using native text rendering infrastructure. */ TextMeasurement measure( AttributedStringBox attributedStringBox, ParagraphAttributes paragraphAttributes, LayoutConstraints layoutConstraints) const; /* * Measures lines of `attributedString` using native text rendering * infrastructure. */ LinesMeasurements measureLines( AttributedString attributedString, ParagraphAttributes paragraphAttributes, Size size) const; /* * Returns an opaque pointer to platform-specific TextLayoutManager. * Is used on a native views layer to delegate text rendering to the manager. */ void *getNativeTextLayoutManager() const; }; } // namespace react } // namespace facebook