|
@@ -364,6 +364,23 @@ float ElementStyle::ResolveProperty(const Property* property, float base_value)
|
|
|
{
|
|
{
|
|
|
return property->value.Get< float >();
|
|
return property->value.Get< float >();
|
|
|
}
|
|
}
|
|
|
|
|
+
|
|
|
|
|
+ // Values based on pixels-per-inch.
|
|
|
|
|
+ if (property->unit & Property::PPI_UNIT)
|
|
|
|
|
+ {
|
|
|
|
|
+ float inch = property->value.Get< float >() * element->GetRenderInterface()->GetPixelsPerInch();
|
|
|
|
|
+
|
|
|
|
|
+ if (property->unit & Property::INCH) // inch
|
|
|
|
|
+ return inch;
|
|
|
|
|
+ if (property->unit & Property::CM) // centimeter
|
|
|
|
|
+ return inch / 2.54f;
|
|
|
|
|
+ if (property->unit & Property::MM) // millimeter
|
|
|
|
|
+ return inch / 25.4f;
|
|
|
|
|
+ if (property->unit & Property::PT) // point
|
|
|
|
|
+ return inch / 72.0f;
|
|
|
|
|
+ if (property->unit & Property::PC) // pica
|
|
|
|
|
+ return inch / 6.0f;
|
|
|
|
|
+ }
|
|
|
|
|
|
|
|
// We're not a numeric property; return 0.
|
|
// We're not a numeric property; return 0.
|
|
|
return 0.0f;
|
|
return 0.0f;
|
|
@@ -435,6 +452,23 @@ float ElementStyle::ResolveProperty(const String& name, float base_value)
|
|
|
{
|
|
{
|
|
|
return property->value.Get< float >();
|
|
return property->value.Get< float >();
|
|
|
}
|
|
}
|
|
|
|
|
+
|
|
|
|
|
+ // Values based on pixels-per-inch.
|
|
|
|
|
+ if (property->unit & Property::PPI_UNIT)
|
|
|
|
|
+ {
|
|
|
|
|
+ float inch = property->value.Get< float >() * element->GetRenderInterface()->GetPixelsPerInch();
|
|
|
|
|
+
|
|
|
|
|
+ if (property->unit & Property::INCH) // inch
|
|
|
|
|
+ return inch;
|
|
|
|
|
+ if (property->unit & Property::CM) // centimeter
|
|
|
|
|
+ return inch / 2.54f;
|
|
|
|
|
+ if (property->unit & Property::MM) // millimeter
|
|
|
|
|
+ return inch / 25.4f;
|
|
|
|
|
+ if (property->unit & Property::PT) // point
|
|
|
|
|
+ return inch / 72.0f;
|
|
|
|
|
+ if (property->unit & Property::PC) // pica
|
|
|
|
|
+ return inch / 6.0f;
|
|
|
|
|
+ }
|
|
|
|
|
|
|
|
// We're not a numeric property; return 0.
|
|
// We're not a numeric property; return 0.
|
|
|
return 0.0f;
|
|
return 0.0f;
|