/*
- * Copyright (c) 2017 Samsung Electronics Co., Ltd.
+ * Copyright (c) 2021 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.
// CLASS HEADER
#include <dali-toolkit/internal/text/text-model.h>
+// EXTERNAL INCLUDES
+#include <dali/devel-api/adaptor-framework/environment-variable.h>
+
namespace Dali
{
-
namespace Toolkit
{
-
namespace Text
{
+namespace
+{
+const char* DALI_ENV_MATCH_SYSTEM_LANGUAGE_DIRECTION("DALI_MATCH_SYSTEM_LANGUAGE_DIRECTION");
+}
ModelPtr Model::New()
{
- return ModelPtr( new Model() );
+ return ModelPtr(new Model());
}
const Size& Model::GetControlSize() const
return mVerticalAlignment;
}
+DevelText::VerticalLineAlignment::Type Model::GetVerticalLineAlignment() const
+{
+ return mVerticalLineAlignment;
+}
+
bool Model::IsTextElideEnabled() const
{
return mElideEnabled;
return mVisualModel->mColorIndices.Begin();
}
+const Vector4* const Model::GetBackgroundColors() const
+{
+ return mVisualModel->mBackgroundColors.Begin();
+}
+
+const ColorIndex* const Model::GetBackgroundColorIndices() const
+{
+ return mVisualModel->mBackgroundColorIndices.Begin();
+}
+
+bool const Model::IsMarkupBackgroundColorSet() const
+{
+ return (mVisualModel->mBackgroundColors.Count() > 0);
+}
+
const Vector4& Model::GetDefaultColor() const
{
return mVisualModel->mTextColor;
return mVisualModel->mShadowColor;
}
+const float& Model::GetShadowBlurRadius() const
+{
+ return mVisualModel->mShadowBlurRadius;
+}
+
const Vector4& Model::GetUnderlineColor() const
{
return mVisualModel->GetUnderlineColor();
return mVisualModel->GetNumberOfUnderlineRuns();
}
-void Model::GetUnderlineRuns( GlyphRun* underlineRuns, UnderlineRunIndex index, Length numberOfRuns ) const
+void Model::GetUnderlineRuns(GlyphRun* underlineRuns, UnderlineRunIndex index, Length numberOfRuns) const
{
- mVisualModel->GetUnderlineRuns( underlineRuns, index, numberOfRuns );
+ mVisualModel->GetUnderlineRuns(underlineRuns, index, numberOfRuns);
}
const Vector4& Model::GetOutlineColor() const
return mVisualModel->GetOutlineColor();
}
-float Model::GetOutlineWidth() const
+uint16_t Model::GetOutlineWidth() const
{
return mVisualModel->GetOutlineWidth();
}
+const Vector4& Model::GetBackgroundColor() const
+{
+ return mVisualModel->GetBackgroundColor();
+}
+
+bool Model::IsBackgroundEnabled() const
+{
+ return mVisualModel->IsBackgroundEnabled();
+}
+
+bool Model::IsMarkupProcessorEnabled() const
+{
+ return mVisualModel->IsMarkupProcessorEnabled();
+}
+
+const GlyphInfo* Model::GetHyphens() const
+{
+ return mVisualModel->mHyphen.glyph.Begin();
+}
+
+const Length* Model::GetHyphenIndices() const
+{
+ return mVisualModel->mHyphen.index.Begin();
+}
+
+Length Model::GetHyphensCount() const
+{
+ return mVisualModel->mHyphen.glyph.Size();
+}
+
Model::Model()
: mLogicalModel(),
mVisualModel(),
mScrollPosition(),
mScrollPositionLast(),
- mHorizontalAlignment( Text::HorizontalAlignment::BEGIN ),
- mVerticalAlignment( Text::VerticalAlignment::TOP ),
- mLineWrapMode( Text::LineWrap::WORD ),
- mAlignmentOffset( 0.0f ),
- mElideEnabled( false )
+ mHorizontalAlignment(Text::HorizontalAlignment::BEGIN),
+ mVerticalAlignment(Text::VerticalAlignment::TOP),
+ mVerticalLineAlignment(DevelText::VerticalLineAlignment::TOP),
+ mLineWrapMode(Text::LineWrap::WORD),
+ mAlignmentOffset(0.0f),
+ mElideEnabled(false),
+ mIgnoreSpacesAfterText(true),
+ mMatchSystemLanguageDirection(true)
{
mLogicalModel = LogicalModel::New();
- mVisualModel = VisualModel::New();
+ mVisualModel = VisualModel::New();
+
+ // Check environment variable for DALI_MATCH_SYSTEM_LANGUAGE_DIRECTION
+ auto match = Dali::EnvironmentVariable::GetEnvironmentVariable(DALI_ENV_MATCH_SYSTEM_LANGUAGE_DIRECTION);
+ mMatchSystemLanguageDirection = match ? (std::atoi(match) == 0 ? false : true) : mMatchSystemLanguageDirection;
}
Model::~Model()