react-native/ReactCommon/fabric/textlayoutmanager/platform/ios/TextLayoutManager.mm

42 lines
1.1 KiB
Plaintext

/**
* 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.
*/
#include "TextLayoutManager.h"
#import "RCTTextLayoutManager.h"
namespace facebook {
namespace react {
TextLayoutManager::TextLayoutManager(const SharedContextContainer &contextContainer) {
self_ = (__bridge_retained void *)[RCTTextLayoutManager new];
}
TextLayoutManager::~TextLayoutManager() {
CFRelease(self_);
self_ = nullptr;
}
void *TextLayoutManager::getNativeTextLayoutManager() const {
return self_;
}
Size TextLayoutManager::measure(
Tag reactTag,
AttributedString attributedString,
ParagraphAttributes paragraphAttributes,
LayoutConstraints layoutConstraints
) const {
RCTTextLayoutManager *textLayoutManager = (__bridge RCTTextLayoutManager *)self_;
return [textLayoutManager measureWithAttributedString:attributedString
paragraphAttributes:paragraphAttributes
layoutConstraints:layoutConstraints];
}
} // namespace react
} // namespace facebook