-#ifndef __DALI_TOOLKIT_TEXT_MARKUP_PROCESSOR_HELPER_FUNCTIONS_H__
-#define __DALI_TOOLKIT_TEXT_MARKUP_PROCESSOR_HELPER_FUNCTIONS_H__
+#ifndef DALI_TOOLKIT_TEXT_MARKUP_PROCESSOR_HELPER_FUNCTIONS_H
+#define DALI_TOOLKIT_TEXT_MARKUP_PROCESSOR_HELPER_FUNCTIONS_H
/*
- * Copyright (c) 2015 Samsung Electronics Co., Ltd.
+ * Copyright (c) 2022 Samsung Electronics Co., Ltd.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
// INTERNAL INCLUDES
#include <dali-toolkit/internal/text/text-definitions.h>
+#include <dali-toolkit/public-api/text/text-enumerations.h>
namespace Dali
{
-
struct Vector2;
struct Vector4;
namespace Toolkit
{
-
namespace Text
{
-
/**
* @brief Stores an attribute pair: name, value.
*/
{
const char* nameBuffer;
const char* valueBuffer;
- Length nameLength;
- Length valueLength;
+ Length nameLength;
+ Length valueLength;
};
/**
* @brief Stores a tag and its attributes.
*/
- struct Tag
- {
- Vector<Attribute> attributes;
- const char* buffer;
- Length length;
- bool isEndTag;
- };
+struct Tag
+{
+ Vector<Attribute> attributes;
+ const char* buffer;
+ Length length;
+ bool isEndTag;
+};
/**
* @brief Compare if two tokens are equal.
*
* @return @e true if both strings are equal.
*/
-bool TokenComparison( const std::string& string1, const char* const stringBuffer2, Length length );
+bool TokenComparison(const std::string& string1, const char* const stringBuffer2, Length length);
/**
* @brief Skips any unnecessary white space.
* @param[in,out] stringBuffer The string buffer. It's a const iterator pointing the current character.
* @param[in] stringEndBuffer Pointer to one character after the end of the string buffer.
*/
-void SkipWhiteSpace( const char*& stringBuffer,
- const char* const stringEndBuffer );
+void SkipWhiteSpace(const char*& stringBuffer,
+ const char* const stringEndBuffer);
/**
* @Brief Jumps to the next white space.
* @param[in,out] stringBuffer The string buffer. It's a const iterator pointing the current character.
* @param[in] stringEndBuffer Pointer to one character after the end of the string buffer.
*/
-void JumpToWhiteSpace( const char*& stringBuffer,
- const char* const stringEndBuffer );
+void JumpToWhiteSpace(const char*& stringBuffer,
+ const char* const stringEndBuffer);
+
+/**
+* @brief Converts a string into an unsigned int.
+*
+* @param[in] uintStr An unsigned int packed inside a string.
+*
+* @return The unsigned int value.
+*/
+unsigned int StringToUint(const char* const uintStr);
/**
* @brief Converts a string into an hexadecimal unsigned int.
*
* @return The hexadecimal value.
*/
-unsigned int StringToHex( const char* const uintStr );
+unsigned int StringToHex(const char* const uintStr);
/**
* @brief Converts a string into a float value.
*
* @return The float value.
*/
-float StringToFloat( const char* const floatStr );
+float StringToFloat(const char* const floatStr);
/**
* @brief Converts a float into a string.
* @param[in] value The float value.
* @param[out] floatStr The string.
*/
-void FloatToString( float value, std::string& floatStr );
+void FloatToString(float value, std::string& floatStr);
/**
* @brief Converts an unsigned int into a string.
* @param[in] value The unsigned int value.
* @param[out] uIntStr The string.
*/
-void UintToString( unsigned int value, std::string& uIntStr );
+void UintToString(unsigned int value, std::string& uIntStr);
/**
* @brief Converts an ARGB color packed in 4 byte unsigned int into a Vector4 color used in Dali.
* @param[in] color An ARGB color packed in an unsigned int.
* @param[out] retColor A Vector4 with the converted color.
*/
-void UintColorToVector4( unsigned int color, Vector4& retColor );
+void UintColorToVector4(unsigned int color, Vector4& retColor);
/**
* @brief Converts a color packed inside a string into an ARGB Vector4 color.
* @param[in] length The length of the color string.
* @param[out] retColor A color packed inside a Vector4.
*/
-void ColorStringToVector4( const char* const colorStr, Length length, Vector4& retColor );
+void ColorStringToVector4(const char* const colorStr, Length length, Vector4& retColor);
/**
* @brief Converts a color packed in a Vector4 into a string.
* @param[in] value The color value.
* @param[out] colorStr The string.
*/
-void Vector4ToColorString( const Vector4& value, std::string& vector2Str );
+void Vector4ToColorString(const Vector4& value, std::string& vector2Str);
/**
* @brief Converts a two dimension vector packed inside a string into a Vector2.
* @param[in] length The length of the string.
* @param[out] vector2 The Vector2.
*/
-void StringToVector2( const char* const vectorStr, Length length, Vector2& vector2 );
+void StringToVector2(const char* const vectorStr, Length length, Vector2& vector2);
/**
* @brief Converts a Vector2 into a string.
* @param[in] value The vector2 value.
* @param[out] vector2Str The string.
*/
-void Vector2ToString( const Vector2& value, std::string& vector2Str );
+void Vector2ToString(const Vector2& value, std::string& vector2Str);
+
+/**
+ * @brief Converts a string into its value in the enum Text::Underline::Type.
+ *
+ * @param[in] typeStr The underline type value packed inside a string.
+ * @param[in] length The length of the string.
+ * @param[out] retType The Underline type.
+ */
+void UnderlineTypeStringToTypeValue(const char* const typeStr, Length length, Text::Underline::Type& retType);
+
+/**
+ * @brief Converts a string into a float value.
+ *
+ * @param[in] floatStr A float packed inside a string.
+ *
+ * @return The float value.
+ */
+float StringToFloat(const char* const floatStr);
+
+/**
+ * @brief Converts a string into its value in the enum Text::HorizontalAlignment::Type.
+ *
+ * @param[in] typeStr The horizontal-alignment type value packed inside a string.
+ * @param[in] length The length of the string.
+ * @param[out] retType The HorizontalAlignment type.
+ *
+ * @return Whether the value parsed or not.
+ */
+bool HorizontalAlignmentTypeStringToTypeValue(const char* const typeStr, Length length, Text::HorizontalAlignment::Type& retType);
} // namespace Text
} // namespace Dali
-#endif // __DALI_TOOLKIT_TEXT_MARKUP_PROCESSOR_HELPER_FUNCTIONS_H__
+#endif // DALI_TOOLKIT_TEXT_MARKUP_PROCESSOR_HELPER_FUNCTIONS_H