Browse Source

Add number_percent parser and combined unit

Michael Ragazzon 2 years ago
parent
commit
679c615818
2 changed files with 4 additions and 1 deletions
  1. 1 0
      Include/RmlUi/Core/Unit.h
  2. 3 1
      Source/Core/StyleSheetSpecification.cpp

+ 1 - 0
Include/RmlUi/Core/Unit.h

@@ -81,6 +81,7 @@ enum class Unit {
 
 	LENGTH = PX | DP | VW | VH | EM | REM | PPI_UNIT,
 	LENGTH_PERCENT = LENGTH | PERCENT,
+	NUMBER_PERCENT = NUMBER | PERCENT,
 	NUMBER_LENGTH_PERCENT = NUMBER | LENGTH | PERCENT,
 	DP_SCALABLE_LENGTH = DP | PPI_UNIT,
 	ANGLE = DEG | RAD,

+ 3 - 1
Source/Core/StyleSheetSpecification.cpp

@@ -45,10 +45,11 @@ namespace Rml {
 
 static StyleSheetSpecification* instance = nullptr;
 
-struct DefaultStyleSheetParsers {
+struct DefaultStyleSheetParsers : NonCopyMoveable {
 	PropertyParserNumber number = PropertyParserNumber(Unit::NUMBER);
 	PropertyParserNumber length = PropertyParserNumber(Unit::LENGTH, Unit::PX);
 	PropertyParserNumber length_percent = PropertyParserNumber(Unit::LENGTH_PERCENT, Unit::PX);
+	PropertyParserNumber number_percent = PropertyParserNumber(Unit::NUMBER_PERCENT);
 	PropertyParserNumber number_length_percent = PropertyParserNumber(Unit::NUMBER_LENGTH_PERCENT, Unit::PX);
 	PropertyParserNumber angle = PropertyParserNumber(Unit::ANGLE, Unit::RAD);
 	PropertyParserKeyword keyword = PropertyParserKeyword();
@@ -242,6 +243,7 @@ void StyleSheetSpecification::RegisterDefaultParsers()
 	RegisterParser("number", &default_parsers->number);
 	RegisterParser("length", &default_parsers->length);
 	RegisterParser("length_percent", &default_parsers->length_percent);
+	RegisterParser("number_percent", &default_parsers->number_percent);
 	RegisterParser("number_length_percent", &default_parsers->number_length_percent);
 	RegisterParser("angle", &default_parsers->angle);
 	RegisterParser("keyword", &default_parsers->keyword);