예제 #1
0
        public static double ToPoint(this StringValue?value, double ifNull = 0)
        {
            if (value is null)
            {
                return(ifNull);
            }

            var(v, u) = value.ToValueWithUnit();
            switch (u)
            {
            case "mm":
                return(XUnit.FromMillimeter(v));

            case "cm":
                return(XUnit.FromCentimeter(v));

            case "in":
                return(0);    // v.InchToPoint();

            case "pt":
                return(v.DxaToPoint());

            case "pi":
                return(XUnit.FromPresentation(v));

            case "pc":
            default:
                throw new Exception($"Unhandled string value: {value}");
            }
        }
예제 #2
0
        public static float EpToPoint(this StringValue?value, float ifNull = 0)
        {
            if (value?.Value is null)
            {
                return(ifNull);
            }

            var v = Convert.ToInt32(value.Value);

            return(v.EpToPoint());
        }
예제 #3
0
        private static (double v, string unit) ToValueWithUnit(this StringValue?stringValue, double ifNull = 0)
        {
            if (stringValue?.Value is null)
            {
                return(ifNull, "pt");
            }

            var l = stringValue.Value.Length > 2
                ? stringValue.Value.Length - 2
                : 0;

            var u = stringValue.Value.Substring(l);

            if (!_units.Contains(u))
            {
                l = stringValue.Value.Length;
                u = "pt";
            }

            var v = stringValue.Value.Substring(0, l);

            return(Convert.ToDouble(v), u);
        }
예제 #4
0
 public InputObjectDefinition(
     StringValue?description,
     in Name name,
예제 #5
0
 public EnumDefinition(
     StringValue?description,
     in Name name,
예제 #6
0
 public EnumValueDefinition(
     StringValue?description,
     EnumValue value,
     IReadOnlyCollection <Directive>?directives,
     in Location?location = default)
예제 #7
0
 public DirectiveDefinition(
     StringValue?description,
     in Name name,
예제 #8
0
 public ScalarDefinition(
     StringValue?description,
     in Name name,
예제 #9
0
 public FieldDefinition(StringValue?description,
                        in Name name,
예제 #10
0
 public SchemaExtension(
     StringValue?description,
     Directives?directives,
     RootOperationTypeDefinitions?operations,
     in Location?location = default)
예제 #11
0
 public SchemaDefinition(
     StringValue?description,
     IReadOnlyCollection <Directive>?directives,
     IReadOnlyCollection <(OperationType Operation, NamedType NamedType)> operations,
예제 #12
0
 public EnumValueDefinition(
     StringValue?description,
     EnumValue value,
     Directives?directives,
     in Location?location = default)
예제 #13
0
 public UnionDefinition(
     StringValue?description,
     in Name name,
예제 #14
0
 public InterfaceDefinition(
     StringValue?description,
     in Name name,
예제 #15
0
 static Pixel EmuStringToPixel(StringValue?emuString)
 {
     if (emuString == null)
     {
         return(default);