Files
react-native-svg/windows/RNSVG/PatternViewManager.cpp
Marlene Cota b80f102b09 feat(windows): add fabric support (#2321)
# Summary
This PR adds Fabric support and a FabricExample app for Windows.

Windows support for Fabric is experimental and as such APIs are subject
to change/break.

## Test Plan


https://github.com/software-mansion/react-native-svg/assets/1422161/2a7db119-44a8-4ee1-a837-41ca8320d8fa

## Compatibility

| OS      | Implemented |
| ------- | :---------: |
| iOS     |         |
| Android |         |
| Windows |         |

## Checklist
- [x] I have tested this on a device and a simulator
- [ ] I added documentation in `README.md`
- [ ] I updated the typed files (typescript)
- [ ] I added a test for the API in the `__tests__` folder
2024-08-19 08:18:45 +02:00

41 lines
1.6 KiB
C++

#include "pch.h"
#include "PatternViewManager.h"
#if __has_include("PatternViewManager.g.cpp")
#include "PatternViewManager.g.cpp"
#endif
using namespace winrt;
using namespace Microsoft::ReactNative;
namespace winrt::RNSVG::implementation {
PatternViewManager::PatternViewManager() {
m_class = RNSVG::SVGClass::RNSVGPattern;
m_name = L"RNSVGPattern";
}
IMapView<hstring, ViewManagerPropertyType> PatternViewManager::NativeProps() {
auto const &parentProps{__super::NativeProps()};
auto const &nativeProps{winrt::single_threaded_map<hstring, ViewManagerPropertyType>()};
for (auto const &prop : parentProps) {
nativeProps.Insert(prop.Key(), prop.Value());
}
nativeProps.Insert(L"x", ViewManagerPropertyType::String);
nativeProps.Insert(L"y", ViewManagerPropertyType::String);
nativeProps.Insert(L"width", ViewManagerPropertyType::String);
nativeProps.Insert(L"height", ViewManagerPropertyType::String);
nativeProps.Insert(L"patternUnits", ViewManagerPropertyType::Number);
nativeProps.Insert(L"patternContentUnits", ViewManagerPropertyType::Number);
nativeProps.Insert(L"patternTransform", ViewManagerPropertyType::Array);
nativeProps.Insert(L"minX", ViewManagerPropertyType::Number);
nativeProps.Insert(L"minY", ViewManagerPropertyType::Number);
nativeProps.Insert(L"vbWidth", ViewManagerPropertyType::Number);
nativeProps.Insert(L"vbHeight", ViewManagerPropertyType::Number);
nativeProps.Insert(L"align", ViewManagerPropertyType::String);
nativeProps.Insert(L"meetOrSlice", ViewManagerPropertyType::Number);
return nativeProps.GetView();
}
} // namespace winrt::RNSVG::implementation