Exemplo n.º 1
0
 public virtual void Write(Res_value data)
 {
     _writer.Write(data.Size);
     _writer.Write(data.Res0);
     _writer.Write((byte) data.DataType);
     _writer.Write(data.RawData);
 }
Exemplo n.º 2
0
 private string FormatValue(Res_value value)
 {
     Color c;
     int index0;
     switch (value.DataType)
     {
         case Res.ValueType.TYPE_STRING:
             return _parser.Strings.GetString(value.StringValue);
         case Res.ValueType.TYPE_NULL:
             return "null";
         case Res.ValueType.TYPE_FLOAT:
             return value.FloatValue.ToString("g");
         case Res.ValueType.TYPE_FRACTION:
             index0 = (int) value.ComplexFractionUnit;
             return string.Format(
                 "{0:g}{1}", value.ComplexValue,
                 index0 < 2 ? new[] {"%", "%p"}[index0] : "?");
         case Res.ValueType.TYPE_DIMENSION:
             index0 = (int) value.ComplexDimensionUnit;
             return string.Format(
                 "{0:g}{1}", value.ComplexValue,
                 index0 < 6 ? new[] {"px", "dip", "sp", "pt", "in", "mm"}[index0] : "?");
         case Res.ValueType.TYPE_INT_DEC:
             return string.Format("{0:d}", value.IntValue);
         case Res.ValueType.TYPE_INT_HEX:
             return string.Format("0x{0:x}", value.IntValue);
         case Res.ValueType.TYPE_INT_BOOLEAN:
             return value.IntValue == 0 ? "false" : "true";
         case Res.ValueType.TYPE_INT_COLOR_ARGB8:
             c = value.ColorValue;
             return string.Format("#{0:x2}{1:x2}{2:x2}{3:x2}", c.A, c.R, c.G, c.B);
         case Res.ValueType.TYPE_INT_COLOR_ARGB4:
             c = value.ColorValue;
             return string.Format("#{0:x1}{1:x1}{2:x1}{3:x1}", c.A/51, c.R/51, c.G/51, c.B/51);
         case Res.ValueType.TYPE_INT_COLOR_RGB8:
             c = value.ColorValue;
             return string.Format("#{0:x2}{1:x2}{2:x2}", c.R, c.G, c.B);
         case Res.ValueType.TYPE_INT_COLOR_RGB4:
             c = value.ColorValue;
             return string.Format("#{0:x1}{1:x1}{2:x1}", c.R/51, c.G/51, c.B/51);
         case Res.ValueType.TYPE_REFERENCE:
             uint? ident = value.ReferenceValue.Ident;
             if (ident == null) return "@undef";
             return string.Format("@{0:x8}", ident.Value);
         default:
             return string.Format("({0}:{1:x8})", value.DataType, value.RawData);
     }
 }