X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=dali-toolkit%2Finternal%2Ftext%2Fmarkup-processor-span.cpp;h=19810ee240857703dad85546c05be712c124f380;hb=702cdc29b907688eef62afbc63f0edb9e2dfb7d2;hp=40a508d80919c269fee19f1964d14e1867b04e27;hpb=e172c89c895d46d430b2cf0a0dbceeea0ae09b29;p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git diff --git a/dali-toolkit/internal/text/markup-processor-span.cpp b/dali-toolkit/internal/text/markup-processor-span.cpp index 40a508d..19810ee 100644 --- a/dali-toolkit/internal/text/markup-processor-span.cpp +++ b/dali-toolkit/internal/text/markup-processor-span.cpp @@ -24,8 +24,11 @@ // INTERNAL INCLUDES #include #include +#include #include #include +#include +#include namespace Dali { @@ -42,9 +45,39 @@ const std::string XHTML_WIDTH_ATTRIBUTE("font-width"); const std::string XHTML_SLANT_ATTRIBUTE("font-slant"); const std::string XHTML_COLOR_ATTRIBUTE("text-color"); +const std::string XHTML_BACKGROUND_COLOR_ATTRIBUTE("background-color"); + +//the underlined character's attributes +const std::string XHTML_UNDERLINE_COLOR_ATTRIBUTE("u-color"); +const std::string XHTML_UNDERLINE_HEIGHT_ATTRIBUTE("u-height"); +const std::string XHTML_UNDERLINE_TYPE_ATTRIBUTE("u-type"); +const std::string XHTML_UNDERLINE_DASH_GAP_ATTRIBUTE("u-dash-gap"); +const std::string XHTML_UNDERLINE_DASH_WIDTH_ATTRIBUTE("u-dash-width"); + +//the strikethroughed character's attributes +const std::string XHTML_STRIKETHROUGH_COLOR_ATTRIBUTE("s-color"); +const std::string XHTML_STRIKETHROUGH_HEIGHT_ATTRIBUTE("s-height"); + +//the character-spacing character's attributes +const std::string XHTML_CHARACTER_SPACING_VALUE_ATTRIBUTE("char-space-value"); + +//NOTE: the MAX_NUM_OF_ATTRIBUTES in "markup-processor.cpp" should be updated when add a new attribute for span tag. + } // namespace -void ProcessSpanTag(const Tag& tag, ColorRun& colorRun, FontDescriptionRun& fontRun, bool& isColorDefined, bool& isFontDefined) +void ProcessSpanTag(const Tag& tag, + ColorRun& colorRun, + FontDescriptionRun& fontRun, + UnderlinedCharacterRun& underlinedCharacterRun, + ColorRun& backgroundColorRun, + StrikethroughCharacterRun& strikethroughRun, + CharacterSpacingCharacterRun& characterSpacingCharacterRun, + bool& isColorDefined, + bool& isFontDefined, + bool& isUnderlinedCharacterDefined, + bool& isBackgroundColorDefined, + bool& isStrikethroughDefined, + bool& isCharacterSpacingDefined) { for(Vector::ConstIterator it = tag.attributes.Begin(), endIt = tag.attributes.End(); @@ -58,6 +91,11 @@ void ProcessSpanTag(const Tag& tag, ColorRun& colorRun, FontDescriptionRun& font isColorDefined = true; ProcessColor(attribute, colorRun); } + else if(TokenComparison(XHTML_BACKGROUND_COLOR_ATTRIBUTE, attribute.nameBuffer, attribute.nameLength)) + { + isBackgroundColorDefined = true; + ProcessColor(attribute, backgroundColorRun); + } else if(TokenComparison(XHTML_FAMILY_ATTRIBUTE, attribute.nameBuffer, attribute.nameLength)) { isFontDefined = true; @@ -83,6 +121,46 @@ void ProcessSpanTag(const Tag& tag, ColorRun& colorRun, FontDescriptionRun& font isFontDefined = true; ProcessFontSlant(attribute, fontRun); } + else if(TokenComparison(XHTML_UNDERLINE_COLOR_ATTRIBUTE, attribute.nameBuffer, attribute.nameLength)) + { + isUnderlinedCharacterDefined = true; + ProcessColorAttribute(attribute, underlinedCharacterRun); + } + else if(TokenComparison(XHTML_UNDERLINE_HEIGHT_ATTRIBUTE, attribute.nameBuffer, attribute.nameLength)) + { + isUnderlinedCharacterDefined = true; + ProcessHeightAttribute(attribute, underlinedCharacterRun); + } + else if(TokenComparison(XHTML_UNDERLINE_TYPE_ATTRIBUTE, attribute.nameBuffer, attribute.nameLength)) + { + isUnderlinedCharacterDefined = true; + ProcessTypeAttribute(attribute, underlinedCharacterRun); + } + else if(TokenComparison(XHTML_UNDERLINE_DASH_GAP_ATTRIBUTE, attribute.nameBuffer, attribute.nameLength)) + { + isUnderlinedCharacterDefined = true; + ProcessDashGapAttribute(attribute, underlinedCharacterRun); + } + else if(TokenComparison(XHTML_UNDERLINE_DASH_WIDTH_ATTRIBUTE, attribute.nameBuffer, attribute.nameLength)) + { + isUnderlinedCharacterDefined = true; + ProcessDashWidthAttribute(attribute, underlinedCharacterRun); + } + else if(TokenComparison(XHTML_STRIKETHROUGH_COLOR_ATTRIBUTE, attribute.nameBuffer, attribute.nameLength)) + { + isStrikethroughDefined = true; + ProcessColorAttribute(attribute, strikethroughRun); + } + else if(TokenComparison(XHTML_STRIKETHROUGH_HEIGHT_ATTRIBUTE, attribute.nameBuffer, attribute.nameLength)) + { + isStrikethroughDefined = true; + ProcessHeightAttribute(attribute, strikethroughRun); + } + else if(TokenComparison(XHTML_CHARACTER_SPACING_VALUE_ATTRIBUTE, attribute.nameBuffer, attribute.nameLength)) + { + isCharacterSpacingDefined = true; + ProcessValueAttribute(attribute, characterSpacingCharacterRun); + } } }