@whetware/react-native-stroke-text 0.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +7 -0
- package/LICENSE.md +21 -0
- package/NitroStrokeText.podspec +31 -0
- package/README.md +45 -0
- package/android/CMakeLists.txt +29 -0
- package/android/build.gradle +142 -0
- package/android/fix-prefab.gradle +51 -0
- package/android/gradle.properties +5 -0
- package/android/src/main/AndroidManifest.xml +2 -0
- package/android/src/main/cpp/cpp-adapter.cpp +6 -0
- package/android/src/main/java/com/margelo/nitro/stroketext/HybridStrokeTextView.kt +107 -0
- package/android/src/main/java/com/margelo/nitro/stroketext/NitroStrokeTextPackage.kt +39 -0
- package/android/src/main/java/com/margelo/nitro/stroketext/StrokeTextView.kt +429 -0
- package/ios/Bridge.h +8 -0
- package/ios/HybridStrokeTextView.swift +114 -0
- package/ios/StrokeTextColor.swift +120 -0
- package/ios/StrokeTextView.swift +326 -0
- package/ios/StrokedTextLabel.swift +72 -0
- package/lib/StrokeText.d.ts +3 -0
- package/lib/StrokeText.js +109 -0
- package/lib/StrokeText.web.d.ts +3 -0
- package/lib/StrokeText.web.js +106 -0
- package/lib/index.d.ts +2 -0
- package/lib/index.js +1 -0
- package/lib/index.web.d.ts +2 -0
- package/lib/index.web.js +1 -0
- package/lib/specs/StrokeTextView.nitro.d.ts +37 -0
- package/lib/specs/StrokeTextView.nitro.js +1 -0
- package/lib/types.d.ts +17 -0
- package/lib/types.js +1 -0
- package/nitro.json +24 -0
- package/nitrogen/generated/.gitattributes +1 -0
- package/nitrogen/generated/android/NitroStrokeText+autolinking.cmake +83 -0
- package/nitrogen/generated/android/NitroStrokeText+autolinking.gradle +27 -0
- package/nitrogen/generated/android/NitroStrokeTextOnLoad.cpp +46 -0
- package/nitrogen/generated/android/NitroStrokeTextOnLoad.hpp +25 -0
- package/nitrogen/generated/android/c++/JHybridStrokeTextViewSpec.cpp +308 -0
- package/nitrogen/generated/android/c++/JHybridStrokeTextViewSpec.hpp +117 -0
- package/nitrogen/generated/android/c++/JStrokeTextAlign.hpp +67 -0
- package/nitrogen/generated/android/c++/JStrokeTextDecorationLine.hpp +64 -0
- package/nitrogen/generated/android/c++/JStrokeTextEllipsizeMode.hpp +64 -0
- package/nitrogen/generated/android/c++/JStrokeTextFontStyle.hpp +58 -0
- package/nitrogen/generated/android/c++/JStrokeTextTransform.hpp +64 -0
- package/nitrogen/generated/android/c++/views/JHybridStrokeTextViewStateUpdater.cpp +156 -0
- package/nitrogen/generated/android/c++/views/JHybridStrokeTextViewStateUpdater.hpp +49 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/stroketext/HybridStrokeTextViewSpec.kt +209 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/stroketext/NitroStrokeTextOnLoad.kt +35 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/stroketext/StrokeTextAlign.kt +26 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/stroketext/StrokeTextDecorationLine.kt +25 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/stroketext/StrokeTextEllipsizeMode.kt +25 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/stroketext/StrokeTextFontStyle.kt +23 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/stroketext/StrokeTextTransform.kt +25 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/stroketext/views/HybridStrokeTextViewManager.kt +70 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/stroketext/views/HybridStrokeTextViewStateUpdater.kt +23 -0
- package/nitrogen/generated/ios/NitroStrokeText+autolinking.rb +60 -0
- package/nitrogen/generated/ios/NitroStrokeText-Swift-Cxx-Bridge.cpp +33 -0
- package/nitrogen/generated/ios/NitroStrokeText-Swift-Cxx-Bridge.hpp +177 -0
- package/nitrogen/generated/ios/NitroStrokeText-Swift-Cxx-Umbrella.hpp +58 -0
- package/nitrogen/generated/ios/NitroStrokeTextAutolinking.mm +33 -0
- package/nitrogen/generated/ios/NitroStrokeTextAutolinking.swift +26 -0
- package/nitrogen/generated/ios/c++/HybridStrokeTextViewSpecSwift.cpp +11 -0
- package/nitrogen/generated/ios/c++/HybridStrokeTextViewSpecSwift.hpp +271 -0
- package/nitrogen/generated/ios/c++/views/HybridStrokeTextViewComponent.mm +232 -0
- package/nitrogen/generated/ios/swift/HybridStrokeTextViewSpec.swift +81 -0
- package/nitrogen/generated/ios/swift/HybridStrokeTextViewSpec_cxx.swift +620 -0
- package/nitrogen/generated/ios/swift/StrokeTextAlign.swift +52 -0
- package/nitrogen/generated/ios/swift/StrokeTextDecorationLine.swift +48 -0
- package/nitrogen/generated/ios/swift/StrokeTextEllipsizeMode.swift +48 -0
- package/nitrogen/generated/ios/swift/StrokeTextFontStyle.swift +40 -0
- package/nitrogen/generated/ios/swift/StrokeTextTransform.swift +48 -0
- package/nitrogen/generated/shared/c++/HybridStrokeTextViewSpec.cpp +72 -0
- package/nitrogen/generated/shared/c++/HybridStrokeTextViewSpec.hpp +128 -0
- package/nitrogen/generated/shared/c++/StrokeTextAlign.hpp +88 -0
- package/nitrogen/generated/shared/c++/StrokeTextDecorationLine.hpp +84 -0
- package/nitrogen/generated/shared/c++/StrokeTextEllipsizeMode.hpp +84 -0
- package/nitrogen/generated/shared/c++/StrokeTextFontStyle.hpp +76 -0
- package/nitrogen/generated/shared/c++/StrokeTextTransform.hpp +84 -0
- package/nitrogen/generated/shared/c++/views/HybridStrokeTextViewComponent.cpp +388 -0
- package/nitrogen/generated/shared/c++/views/HybridStrokeTextViewComponent.hpp +138 -0
- package/nitrogen/generated/shared/json/StrokeTextViewConfig.json +35 -0
- package/package.json +124 -0
- package/react-native.config.js +16 -0
|
@@ -0,0 +1,232 @@
|
|
|
1
|
+
///
|
|
2
|
+
/// HybridStrokeTextViewComponent.mm
|
|
3
|
+
/// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
|
|
4
|
+
/// https://github.com/mrousavy/nitro
|
|
5
|
+
/// Copyright © Marc Rousavy @ Margelo
|
|
6
|
+
///
|
|
7
|
+
|
|
8
|
+
#import "HybridStrokeTextViewComponent.hpp"
|
|
9
|
+
#import <memory>
|
|
10
|
+
#import <react/renderer/componentregistry/ComponentDescriptorProvider.h>
|
|
11
|
+
#import <React/RCTViewComponentView.h>
|
|
12
|
+
#import <React/RCTComponentViewFactory.h>
|
|
13
|
+
#import <React/UIView+ComponentViewProtocol.h>
|
|
14
|
+
#import <NitroModules/NitroDefines.hpp>
|
|
15
|
+
#import <UIKit/UIKit.h>
|
|
16
|
+
|
|
17
|
+
#import "HybridStrokeTextViewSpecSwift.hpp"
|
|
18
|
+
#import "NitroStrokeText-Swift-Cxx-Umbrella.hpp"
|
|
19
|
+
|
|
20
|
+
using namespace facebook;
|
|
21
|
+
using namespace margelo::nitro::stroketext;
|
|
22
|
+
using namespace margelo::nitro::stroketext::views;
|
|
23
|
+
|
|
24
|
+
/**
|
|
25
|
+
* Represents the React Native View holder for the Nitro "StrokeTextView" HybridView.
|
|
26
|
+
*/
|
|
27
|
+
@interface HybridStrokeTextViewComponent: RCTViewComponentView
|
|
28
|
+
+ (BOOL)shouldBeRecycled;
|
|
29
|
+
@end
|
|
30
|
+
|
|
31
|
+
@implementation HybridStrokeTextViewComponent {
|
|
32
|
+
std::shared_ptr<HybridStrokeTextViewSpecSwift> _hybridView;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
+ (void) load {
|
|
36
|
+
[super load];
|
|
37
|
+
[RCTComponentViewFactory.currentComponentViewFactory registerComponentViewClass:[HybridStrokeTextViewComponent class]];
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
+ (react::ComponentDescriptorProvider) componentDescriptorProvider {
|
|
41
|
+
return react::concreteComponentDescriptorProvider<HybridStrokeTextViewComponentDescriptor>();
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
- (instancetype) init {
|
|
45
|
+
if (self = [super init]) {
|
|
46
|
+
std::shared_ptr<HybridStrokeTextViewSpec> hybridView = NitroStrokeText::NitroStrokeTextAutolinking::createStrokeTextView();
|
|
47
|
+
_hybridView = std::dynamic_pointer_cast<HybridStrokeTextViewSpecSwift>(hybridView);
|
|
48
|
+
[self updateView];
|
|
49
|
+
}
|
|
50
|
+
return self;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
- (void) updateView {
|
|
54
|
+
// 1. Get Swift part
|
|
55
|
+
NitroStrokeText::HybridStrokeTextViewSpec_cxx& swiftPart = _hybridView->getSwiftPart();
|
|
56
|
+
|
|
57
|
+
// 2. Get UIView*
|
|
58
|
+
void* viewUnsafe = swiftPart.getView();
|
|
59
|
+
UIView* view = (__bridge_transfer UIView*) viewUnsafe;
|
|
60
|
+
|
|
61
|
+
// 3. Update RCTViewComponentView's [contentView]
|
|
62
|
+
[self setContentView:view];
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
- (void) updateProps:(const std::shared_ptr<const react::Props>&)props
|
|
66
|
+
oldProps:(const std::shared_ptr<const react::Props>&)oldProps {
|
|
67
|
+
// 1. Downcast props
|
|
68
|
+
const auto& newViewPropsConst = *std::static_pointer_cast<HybridStrokeTextViewProps const>(props);
|
|
69
|
+
auto& newViewProps = const_cast<HybridStrokeTextViewProps&>(newViewPropsConst);
|
|
70
|
+
NitroStrokeText::HybridStrokeTextViewSpec_cxx& swiftPart = _hybridView->getSwiftPart();
|
|
71
|
+
|
|
72
|
+
// 2. Update each prop individually
|
|
73
|
+
swiftPart.beforeUpdate();
|
|
74
|
+
|
|
75
|
+
// text: string
|
|
76
|
+
if (newViewProps.text.isDirty) {
|
|
77
|
+
swiftPart.setText(newViewProps.text.value);
|
|
78
|
+
newViewProps.text.isDirty = false;
|
|
79
|
+
}
|
|
80
|
+
// color: optional
|
|
81
|
+
if (newViewProps.color.isDirty) {
|
|
82
|
+
swiftPart.setColor(newViewProps.color.value);
|
|
83
|
+
newViewProps.color.isDirty = false;
|
|
84
|
+
}
|
|
85
|
+
// strokeColor: optional
|
|
86
|
+
if (newViewProps.strokeColor.isDirty) {
|
|
87
|
+
swiftPart.setStrokeColor(newViewProps.strokeColor.value);
|
|
88
|
+
newViewProps.strokeColor.isDirty = false;
|
|
89
|
+
}
|
|
90
|
+
// strokeWidth: optional
|
|
91
|
+
if (newViewProps.strokeWidth.isDirty) {
|
|
92
|
+
swiftPart.setStrokeWidth(newViewProps.strokeWidth.value);
|
|
93
|
+
newViewProps.strokeWidth.isDirty = false;
|
|
94
|
+
}
|
|
95
|
+
// fontSize: optional
|
|
96
|
+
if (newViewProps.fontSize.isDirty) {
|
|
97
|
+
swiftPart.setFontSize(newViewProps.fontSize.value);
|
|
98
|
+
newViewProps.fontSize.isDirty = false;
|
|
99
|
+
}
|
|
100
|
+
// fontWeight: optional
|
|
101
|
+
if (newViewProps.fontWeight.isDirty) {
|
|
102
|
+
swiftPart.setFontWeight(newViewProps.fontWeight.value);
|
|
103
|
+
newViewProps.fontWeight.isDirty = false;
|
|
104
|
+
}
|
|
105
|
+
// fontFamily: optional
|
|
106
|
+
if (newViewProps.fontFamily.isDirty) {
|
|
107
|
+
swiftPart.setFontFamily(newViewProps.fontFamily.value);
|
|
108
|
+
newViewProps.fontFamily.isDirty = false;
|
|
109
|
+
}
|
|
110
|
+
// fontStyle: optional
|
|
111
|
+
if (newViewProps.fontStyle.isDirty) {
|
|
112
|
+
swiftPart.setFontStyle(newViewProps.fontStyle.value);
|
|
113
|
+
newViewProps.fontStyle.isDirty = false;
|
|
114
|
+
}
|
|
115
|
+
// lineHeight: optional
|
|
116
|
+
if (newViewProps.lineHeight.isDirty) {
|
|
117
|
+
swiftPart.setLineHeight(newViewProps.lineHeight.value);
|
|
118
|
+
newViewProps.lineHeight.isDirty = false;
|
|
119
|
+
}
|
|
120
|
+
// letterSpacing: optional
|
|
121
|
+
if (newViewProps.letterSpacing.isDirty) {
|
|
122
|
+
swiftPart.setLetterSpacing(newViewProps.letterSpacing.value);
|
|
123
|
+
newViewProps.letterSpacing.isDirty = false;
|
|
124
|
+
}
|
|
125
|
+
// textAlign: optional
|
|
126
|
+
if (newViewProps.textAlign.isDirty) {
|
|
127
|
+
swiftPart.setTextAlign(newViewProps.textAlign.value);
|
|
128
|
+
newViewProps.textAlign.isDirty = false;
|
|
129
|
+
}
|
|
130
|
+
// textDecorationLine: optional
|
|
131
|
+
if (newViewProps.textDecorationLine.isDirty) {
|
|
132
|
+
swiftPart.setTextDecorationLine(newViewProps.textDecorationLine.value);
|
|
133
|
+
newViewProps.textDecorationLine.isDirty = false;
|
|
134
|
+
}
|
|
135
|
+
// textTransform: optional
|
|
136
|
+
if (newViewProps.textTransform.isDirty) {
|
|
137
|
+
swiftPart.setTextTransform(newViewProps.textTransform.value);
|
|
138
|
+
newViewProps.textTransform.isDirty = false;
|
|
139
|
+
}
|
|
140
|
+
// opacity: optional
|
|
141
|
+
if (newViewProps.opacity.isDirty) {
|
|
142
|
+
swiftPart.setOpacity(newViewProps.opacity.value);
|
|
143
|
+
newViewProps.opacity.isDirty = false;
|
|
144
|
+
}
|
|
145
|
+
// allowFontScaling: optional
|
|
146
|
+
if (newViewProps.allowFontScaling.isDirty) {
|
|
147
|
+
swiftPart.setAllowFontScaling(newViewProps.allowFontScaling.value);
|
|
148
|
+
newViewProps.allowFontScaling.isDirty = false;
|
|
149
|
+
}
|
|
150
|
+
// maxFontSizeMultiplier: optional
|
|
151
|
+
if (newViewProps.maxFontSizeMultiplier.isDirty) {
|
|
152
|
+
swiftPart.setMaxFontSizeMultiplier(newViewProps.maxFontSizeMultiplier.value);
|
|
153
|
+
newViewProps.maxFontSizeMultiplier.isDirty = false;
|
|
154
|
+
}
|
|
155
|
+
// includeFontPadding: optional
|
|
156
|
+
if (newViewProps.includeFontPadding.isDirty) {
|
|
157
|
+
swiftPart.setIncludeFontPadding(newViewProps.includeFontPadding.value);
|
|
158
|
+
newViewProps.includeFontPadding.isDirty = false;
|
|
159
|
+
}
|
|
160
|
+
// numberOfLines: optional
|
|
161
|
+
if (newViewProps.numberOfLines.isDirty) {
|
|
162
|
+
swiftPart.setNumberOfLines(newViewProps.numberOfLines.value);
|
|
163
|
+
newViewProps.numberOfLines.isDirty = false;
|
|
164
|
+
}
|
|
165
|
+
// ellipsizeMode: optional
|
|
166
|
+
if (newViewProps.ellipsizeMode.isDirty) {
|
|
167
|
+
swiftPart.setEllipsizeMode(newViewProps.ellipsizeMode.value);
|
|
168
|
+
newViewProps.ellipsizeMode.isDirty = false;
|
|
169
|
+
}
|
|
170
|
+
// padding: optional
|
|
171
|
+
if (newViewProps.padding.isDirty) {
|
|
172
|
+
swiftPart.setPadding(newViewProps.padding.value);
|
|
173
|
+
newViewProps.padding.isDirty = false;
|
|
174
|
+
}
|
|
175
|
+
// paddingVertical: optional
|
|
176
|
+
if (newViewProps.paddingVertical.isDirty) {
|
|
177
|
+
swiftPart.setPaddingVertical(newViewProps.paddingVertical.value);
|
|
178
|
+
newViewProps.paddingVertical.isDirty = false;
|
|
179
|
+
}
|
|
180
|
+
// paddingHorizontal: optional
|
|
181
|
+
if (newViewProps.paddingHorizontal.isDirty) {
|
|
182
|
+
swiftPart.setPaddingHorizontal(newViewProps.paddingHorizontal.value);
|
|
183
|
+
newViewProps.paddingHorizontal.isDirty = false;
|
|
184
|
+
}
|
|
185
|
+
// paddingTop: optional
|
|
186
|
+
if (newViewProps.paddingTop.isDirty) {
|
|
187
|
+
swiftPart.setPaddingTop(newViewProps.paddingTop.value);
|
|
188
|
+
newViewProps.paddingTop.isDirty = false;
|
|
189
|
+
}
|
|
190
|
+
// paddingRight: optional
|
|
191
|
+
if (newViewProps.paddingRight.isDirty) {
|
|
192
|
+
swiftPart.setPaddingRight(newViewProps.paddingRight.value);
|
|
193
|
+
newViewProps.paddingRight.isDirty = false;
|
|
194
|
+
}
|
|
195
|
+
// paddingBottom: optional
|
|
196
|
+
if (newViewProps.paddingBottom.isDirty) {
|
|
197
|
+
swiftPart.setPaddingBottom(newViewProps.paddingBottom.value);
|
|
198
|
+
newViewProps.paddingBottom.isDirty = false;
|
|
199
|
+
}
|
|
200
|
+
// paddingLeft: optional
|
|
201
|
+
if (newViewProps.paddingLeft.isDirty) {
|
|
202
|
+
swiftPart.setPaddingLeft(newViewProps.paddingLeft.value);
|
|
203
|
+
newViewProps.paddingLeft.isDirty = false;
|
|
204
|
+
}
|
|
205
|
+
|
|
206
|
+
swiftPart.afterUpdate();
|
|
207
|
+
|
|
208
|
+
// 3. Update hybridRef if it changed
|
|
209
|
+
if (newViewProps.hybridRef.isDirty) {
|
|
210
|
+
// hybridRef changed - call it with new this
|
|
211
|
+
const auto& maybeFunc = newViewProps.hybridRef.value;
|
|
212
|
+
if (maybeFunc.has_value()) {
|
|
213
|
+
maybeFunc.value()(_hybridView);
|
|
214
|
+
}
|
|
215
|
+
newViewProps.hybridRef.isDirty = false;
|
|
216
|
+
}
|
|
217
|
+
|
|
218
|
+
// 4. Continue in base class
|
|
219
|
+
[super updateProps:props oldProps:oldProps];
|
|
220
|
+
}
|
|
221
|
+
|
|
222
|
+
+ (BOOL)shouldBeRecycled {
|
|
223
|
+
return NitroStrokeText::NitroStrokeTextAutolinking::isStrokeTextViewRecyclable();
|
|
224
|
+
}
|
|
225
|
+
|
|
226
|
+
- (void)prepareForRecycle {
|
|
227
|
+
[super prepareForRecycle];
|
|
228
|
+
NitroStrokeText::HybridStrokeTextViewSpec_cxx& swiftPart = _hybridView->getSwiftPart();
|
|
229
|
+
swiftPart.maybePrepareForRecycle();
|
|
230
|
+
}
|
|
231
|
+
|
|
232
|
+
@end
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
///
|
|
2
|
+
/// HybridStrokeTextViewSpec.swift
|
|
3
|
+
/// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
|
|
4
|
+
/// https://github.com/mrousavy/nitro
|
|
5
|
+
/// Copyright © Marc Rousavy @ Margelo
|
|
6
|
+
///
|
|
7
|
+
|
|
8
|
+
import Foundation
|
|
9
|
+
import NitroModules
|
|
10
|
+
|
|
11
|
+
/// See ``HybridStrokeTextViewSpec``
|
|
12
|
+
public protocol HybridStrokeTextViewSpec_protocol: HybridObject, HybridView {
|
|
13
|
+
// Properties
|
|
14
|
+
var text: String { get set }
|
|
15
|
+
var color: String? { get set }
|
|
16
|
+
var strokeColor: String? { get set }
|
|
17
|
+
var strokeWidth: Double? { get set }
|
|
18
|
+
var fontSize: Double? { get set }
|
|
19
|
+
var fontWeight: String? { get set }
|
|
20
|
+
var fontFamily: String? { get set }
|
|
21
|
+
var fontStyle: StrokeTextFontStyle? { get set }
|
|
22
|
+
var lineHeight: Double? { get set }
|
|
23
|
+
var letterSpacing: Double? { get set }
|
|
24
|
+
var textAlign: StrokeTextAlign? { get set }
|
|
25
|
+
var textDecorationLine: StrokeTextDecorationLine? { get set }
|
|
26
|
+
var textTransform: StrokeTextTransform? { get set }
|
|
27
|
+
var opacity: Double? { get set }
|
|
28
|
+
var allowFontScaling: Bool? { get set }
|
|
29
|
+
var maxFontSizeMultiplier: Double? { get set }
|
|
30
|
+
var includeFontPadding: Bool? { get set }
|
|
31
|
+
var numberOfLines: Double? { get set }
|
|
32
|
+
var ellipsizeMode: StrokeTextEllipsizeMode? { get set }
|
|
33
|
+
var padding: Double? { get set }
|
|
34
|
+
var paddingVertical: Double? { get set }
|
|
35
|
+
var paddingHorizontal: Double? { get set }
|
|
36
|
+
var paddingTop: Double? { get set }
|
|
37
|
+
var paddingRight: Double? { get set }
|
|
38
|
+
var paddingBottom: Double? { get set }
|
|
39
|
+
var paddingLeft: Double? { get set }
|
|
40
|
+
|
|
41
|
+
// Methods
|
|
42
|
+
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
public extension HybridStrokeTextViewSpec_protocol {
|
|
46
|
+
/// Default implementation of ``HybridObject.toString``
|
|
47
|
+
func toString() -> String {
|
|
48
|
+
return "[HybridObject StrokeTextView]"
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
/// See ``HybridStrokeTextViewSpec``
|
|
53
|
+
open class HybridStrokeTextViewSpec_base {
|
|
54
|
+
private weak var cxxWrapper: HybridStrokeTextViewSpec_cxx? = nil
|
|
55
|
+
public init() { }
|
|
56
|
+
public func getCxxWrapper() -> HybridStrokeTextViewSpec_cxx {
|
|
57
|
+
#if DEBUG
|
|
58
|
+
guard self is any HybridStrokeTextViewSpec else {
|
|
59
|
+
fatalError("`self` is not a `HybridStrokeTextViewSpec`! Did you accidentally inherit from `HybridStrokeTextViewSpec_base` instead of `HybridStrokeTextViewSpec`?")
|
|
60
|
+
}
|
|
61
|
+
#endif
|
|
62
|
+
if let cxxWrapper = self.cxxWrapper {
|
|
63
|
+
return cxxWrapper
|
|
64
|
+
} else {
|
|
65
|
+
let cxxWrapper = HybridStrokeTextViewSpec_cxx(self as! any HybridStrokeTextViewSpec)
|
|
66
|
+
self.cxxWrapper = cxxWrapper
|
|
67
|
+
return cxxWrapper
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
/**
|
|
73
|
+
* A Swift base-protocol representing the StrokeTextView HybridObject.
|
|
74
|
+
* Implement this protocol to create Swift-based instances of StrokeTextView.
|
|
75
|
+
* ```swift
|
|
76
|
+
* class HybridStrokeTextView : HybridStrokeTextViewSpec {
|
|
77
|
+
* // ...
|
|
78
|
+
* }
|
|
79
|
+
* ```
|
|
80
|
+
*/
|
|
81
|
+
public typealias HybridStrokeTextViewSpec = HybridStrokeTextViewSpec_protocol & HybridStrokeTextViewSpec_base
|