in FigmaSharp.Controls/FigmaSharp.Controls.Cocoa/Converters/CocoaConverter.cs [81:124]
public override string ConvertToCode(CodeNode currentNode, CodeNode parentNode, ICodeRenderService rendererService)
{
var builder = OnConvertToCode(currentNode, parentNode, rendererService);
if (builder != null)
{
currentNode.Node.TryGetNativeControlType(out var nativeControlType);
if (!currentNode.Node.visible)
builder.WritePropertyEquality(currentNode.Name, nameof(NSView.Hidden), true);
builder.WritePropertyEquality(currentNode.Name, nameof(NSView.TranslatesAutoresizingMaskIntoConstraints), false);
if (currentNode.Node.IsA11Enabled ()) {
bool hasAccessibility = false;
if (CanSetAccessibilityRole && currentNode.Node.IsA11Group()) {
var fullRoleName = $"{typeof(AppKit.NSAccessibilityRoles).FullName}.{nameof(AppKit.NSAccessibilityRoles.GroupRole)}";
builder.WritePropertyEquality(currentNode.Name, nameof(AppKit.NSView.AccessibilityRole), fullRoleName);
hasAccessibility = true;
}
if (CanSetAccessibilityLabel && currentNode.Node.TrySearchA11Label(out var label))
{
builder.WriteTranslatedEquality(currentNode.Name, GetAccessibilityTitle(nativeControlType), label, rendererService);
hasAccessibility = true;
}
if (CanSetAccessibilityHelp && currentNode.Node.TrySearchA11Help(out var help))
{
help = rendererService.GetTranslatedText (help);
builder.WritePropertyEquality(currentNode.Name, nameof(AppKit.NSView.AccessibilityHelp), help, inQuotes: !rendererService.Options.TranslateLabels);
hasAccessibility = true;
}
if (hasAccessibility)
builder.AppendLine();
}
return builder.ToString();
}
return string.Empty;
}