Fabric: Making `fabric/textlayoutmanager` compilable on Android
Summary: @public This compiles, but it works only on iOS for now. Reviewed By: mdvacca Differential Revision: D8655540 fbshipit-source-id: 7e9a73fadb317dd62298af6f347344ac4229a8a5
This commit is contained in:
parent
5786db3a26
commit
ee535fafe3
|
@ -13,14 +13,14 @@ rn_xplat_cxx_library(
|
|||
name = "textlayoutmanager",
|
||||
srcs = glob(
|
||||
[
|
||||
"**/*.cpp",
|
||||
"**/*.mm",
|
||||
"*.cpp",
|
||||
],
|
||||
exclude = glob(["tests/**/*.cpp"]),
|
||||
),
|
||||
headers = glob(
|
||||
["**/*.h"],
|
||||
exclude = glob(["tests/**/*.h"]),
|
||||
headers = subdir_glob(
|
||||
[
|
||||
("", "*.h"),
|
||||
],
|
||||
prefix = "",
|
||||
),
|
||||
header_namespace = "",
|
||||
exported_headers = subdir_glob(
|
||||
|
@ -35,6 +35,24 @@ rn_xplat_cxx_library(
|
|||
"-std=c++14",
|
||||
"-Wall",
|
||||
],
|
||||
fbandroid_exported_headers = subdir_glob(
|
||||
[
|
||||
("", "*.h"),
|
||||
("platform/android", "*.h"),
|
||||
],
|
||||
prefix = "fabric/textlayoutmanager",
|
||||
),
|
||||
fbandroid_headers = subdir_glob(
|
||||
[
|
||||
("platform/android", "**/*.h"),
|
||||
],
|
||||
prefix = "",
|
||||
),
|
||||
fbandroid_srcs = glob(
|
||||
[
|
||||
"platform/android/**/*.cpp",
|
||||
],
|
||||
),
|
||||
fbobjc_compiler_flags = APPLE_COMPILER_FLAGS,
|
||||
fbobjc_preprocessor_flags = get_debug_preprocessor_flags() + get_apple_inspector_flags(),
|
||||
fbobjc_tests = [
|
||||
|
@ -46,6 +64,26 @@ rn_xplat_cxx_library(
|
|||
"$SDKROOT/System/Library/Frameworks/Foundation.framework",
|
||||
"$SDKROOT/System/Library/Frameworks/UIKit.framework",
|
||||
],
|
||||
ios_deps = [
|
||||
],
|
||||
ios_exported_headers = subdir_glob(
|
||||
[
|
||||
("platform/ios", "*.h"),
|
||||
],
|
||||
prefix = "fabric/textlayoutmanager",
|
||||
),
|
||||
ios_headers = subdir_glob(
|
||||
[
|
||||
("platform/ios", "**/*.h"),
|
||||
],
|
||||
prefix = "",
|
||||
),
|
||||
ios_srcs = glob(
|
||||
[
|
||||
"platform/ios/**/*.cpp",
|
||||
"platform/ios/**/*.mm",
|
||||
],
|
||||
),
|
||||
macosx_tests_override = [],
|
||||
platforms = (ANDROID, APPLE),
|
||||
preprocessor_flags = [
|
||||
|
|
|
@ -0,0 +1,33 @@
|
|||
/**
|
||||
* Copyright (c) 2015-present, Facebook, Inc.
|
||||
*
|
||||
* 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"
|
||||
|
||||
namespace facebook {
|
||||
namespace react {
|
||||
|
||||
TextLayoutManager::TextLayoutManager() {
|
||||
}
|
||||
|
||||
TextLayoutManager::~TextLayoutManager() {
|
||||
}
|
||||
|
||||
void *TextLayoutManager::getNativeTextLayoutManager() const {
|
||||
return self_;
|
||||
}
|
||||
|
||||
Size TextLayoutManager::measure(
|
||||
AttributedString attributedString,
|
||||
ParagraphAttributes paragraphAttributes,
|
||||
LayoutConstraints layoutConstraints
|
||||
) const {
|
||||
// Not implemented.
|
||||
return {};
|
||||
}
|
||||
|
||||
} // namespace react
|
||||
} // namespace facebook
|
|
@ -0,0 +1,54 @@
|
|||
/**
|
||||
* Copyright (c) 2015-present, Facebook, Inc.
|
||||
*
|
||||
* 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 <memory>
|
||||
|
||||
#include <fabric/attributedstring/AttributedString.h>
|
||||
#include <fabric/attributedstring/ParagraphAttributes.h>
|
||||
#include <fabric/core/LayoutConstraints.h>
|
||||
|
||||
namespace facebook {
|
||||
namespace react {
|
||||
|
||||
class TextLayoutManager;
|
||||
|
||||
using SharedTextLayoutManager = std::shared_ptr<const TextLayoutManager>;
|
||||
|
||||
/*
|
||||
* Cross platform facade for Android-specific TextLayoutManager.
|
||||
*/
|
||||
class TextLayoutManager {
|
||||
|
||||
public:
|
||||
|
||||
TextLayoutManager();
|
||||
~TextLayoutManager();
|
||||
|
||||
/*
|
||||
* Measures `attributedString` using native text rendering infrastructure.
|
||||
*/
|
||||
Size measure(
|
||||
AttributedString attributedString,
|
||||
ParagraphAttributes paragraphAttributes,
|
||||
LayoutConstraints layoutConstraints
|
||||
) 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;
|
||||
|
||||
private:
|
||||
|
||||
void *self_;
|
||||
};
|
||||
|
||||
} // namespace react
|
||||
} // namespace facebook
|
Loading…
Reference in New Issue