X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=base%2Fdali-toolkit%2Finternal%2Fcontrols%2Ftext-view%2Ftext-view-impl.cpp;h=ddf6cd718b5ce6e026a27f2c7bc793bf532c9d5e;hb=refs%2Fchanges%2F47%2F27247%2F1;hp=7e9c5faeedeeb9b0fafcd8081d5090c915c04d63;hpb=53760bfd7bdb7fc5e6b121dd54f71b9d66087879;p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git diff --git a/base/dali-toolkit/internal/controls/text-view/text-view-impl.cpp b/base/dali-toolkit/internal/controls/text-view/text-view-impl.cpp index 7e9c5fa..ddf6cd7 100644 --- a/base/dali-toolkit/internal/controls/text-view/text-view-impl.cpp +++ b/base/dali-toolkit/internal/controls/text-view/text-view-impl.cpp @@ -1,30 +1,30 @@ -// -// Copyright (c) 2014 Samsung Electronics Co., Ltd. -// -// Licensed under the Flora License, Version 1.0 (the License); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://floralicense.org/license/ -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an AS IS BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// +/* + * Copyright (c) 2014 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. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ // CLASS HEADER -#include "text-view-impl.h" +#include // INTERNAL INCLUDES -#include "split-by-new-line-char-policies.h" -#include "split-by-word-policies.h" -#include "split-by-char-policies.h" -#include "text-view-processor.h" -#include "text-view-word-processor.h" -#include "relayout-utilities.h" -#include "text-view-processor-dbg.h" +#include +#include +#include +#include +#include +#include namespace Dali { @@ -49,7 +49,6 @@ namespace Internal namespace { - const char* MULTILINE_POLICY_NAME[] = {"SplitByNewLineChar", "SplitByWord", "SplitByChar"}; const char* EXCEED_POLICY_NAME[] = {"Original", "Truncate", "Fade", "Split","ShrinkToFit","EllipsizeEnd"}; const char* LINE_JUSTIFICATION_NAME[] = {"Left","Center","Right","Justified"}; @@ -140,8 +139,8 @@ Toolkit::TextView TextView::New() // This can only be done after the CustomActor connection has been made... textView->Initialize(); - // Enables by default the offscreen rendering. - textView->SetSnapshotModeEnabled( false ); /// @note Temporary disabled due to some issues with text quality and glyph loading. + // Disables by default the offscreen rendering. + textView->SetSnapshotModeEnabled( false ); return handle; } @@ -192,7 +191,7 @@ void TextView::InsertTextAt( std::size_t position, const std::string& text ) InsertTextAt( position, styledText ); } -void TextView::InsertTextAt( const std::size_t position, const MarkupProcessor::StyledTextArray& text ) +void TextView::InsertTextAt( std::size_t position, const MarkupProcessor::StyledTextArray& text ) { // Creates metadata with the Insert operation. TextViewProcessorMetadata metadata; @@ -213,7 +212,7 @@ void TextView::InsertTextAt( const std::size_t position, const MarkupProcessor:: mRelayoutOperations = RELAYOUT_ALL; } -void TextView::ReplaceTextFromTo( const std::size_t position, const std::size_t numberOfCharacters, const std::string& text ) +void TextView::ReplaceTextFromTo( std::size_t position, std::size_t numberOfCharacters, const std::string& text ) { // Creates a styled text with the markup or plain string. MarkupProcessor::StyledTextArray styledText; @@ -223,7 +222,7 @@ void TextView::ReplaceTextFromTo( const std::size_t position, const std::size_t ReplaceTextFromTo( position, numberOfCharacters, styledText ); } -void TextView::ReplaceTextFromTo( const std::size_t position, const std::size_t numberOfCharacters, const MarkupProcessor::StyledTextArray& text ) +void TextView::ReplaceTextFromTo( std::size_t position, std::size_t numberOfCharacters, const MarkupProcessor::StyledTextArray& text ) { // Creates metadata with the Insert operation. TextViewProcessorMetadata metadata; @@ -248,7 +247,7 @@ void TextView::ReplaceTextFromTo( const std::size_t position, const std::size_t mRelayoutOperations = RELAYOUT_ALL; } -void TextView::RemoveTextFrom( const std::size_t position, const std::size_t numberOfCharacters ) +void TextView::RemoveTextFrom( std::size_t position, std::size_t numberOfCharacters ) { // Creates metadata with the Remove operation. TextViewProcessorMetadata metadata; @@ -284,7 +283,7 @@ std::string TextView::GetText() const return text; } -void TextView::SetLineHeightOffset( const PointSize offset ) +void TextView::SetLineHeightOffset( PointSize offset ) { if( fabsf( mLayoutParameters.mLineHeightOffset - offset ) > Math::MACHINE_EPSILON_1000 ) { @@ -323,7 +322,7 @@ PointSize TextView::GetLineHeightOffset() const return PointSize( mLayoutParameters.mLineHeightOffset ); } -void TextView::SetStyleToCurrentText( const TextStyle& style, const TextStyle::Mask mask ) +void TextView::SetStyleToCurrentText( const TextStyle& style, TextStyle::Mask mask ) { if( !mCurrentStyledText.empty() ) { @@ -712,11 +711,13 @@ void TextView::SetSnapshotModeEnabled( bool enable ) mOffscreenImageActor.SetAnchorPoint( ParentOrigin::CENTER ); mOffscreenImageActor.SetParentOrigin( ParentOrigin::CENTER ); + mOffscreenImageActor.SetBlendFunc( BlendingFactor::ONE, BlendingFactor::ONE_MINUS_SRC_ALPHA, + BlendingFactor::ONE, BlendingFactor::ONE ); Actor self = Self(); self.Add( mOffscreenRootActor ); self.Add( mOffscreenImageActor ); - mOffscreenImageActor.SetScale(Vector3(1.f, -1.f, 1.f)); + mOffscreenImageActor.SetScale( Vector3( 1.f, -1.f, 1.f ) ); } else { @@ -762,7 +763,7 @@ bool TextView::IsMarkupProcessingEnabled() const return mMarkUpEnabled; } -void TextView::SetScrollEnabled( const bool enable ) +void TextView::SetScrollEnabled( bool enable ) { if( enable != mVisualParameters.mScrollEnabled ) { @@ -874,14 +875,14 @@ TextView::LayoutParameters::LayoutParameters() MarkupProcessor::GetStyledTextArray( std::string( "..." ), mEllipsizeText, false ); } -TextView::LayoutParameters::LayoutParameters( const Toolkit::TextView::MultilinePolicy multilinePolicy, - const Toolkit::TextView::ExceedPolicy widthExceedPolicy, - const Toolkit::TextView::ExceedPolicy heightExceedPolicy, - const Toolkit::Alignment::Type alignmentType, - const Toolkit::TextView::LineJustification lineJustification, - const float lineHeightOffset, - const std::string& ellipsizeText, - const bool markUpEnabled ) +TextView::LayoutParameters::LayoutParameters( Toolkit::TextView::MultilinePolicy multilinePolicy, + Toolkit::TextView::ExceedPolicy widthExceedPolicy, + Toolkit::TextView::ExceedPolicy heightExceedPolicy, + Toolkit::Alignment::Type alignmentType, + Toolkit::TextView::LineJustification lineJustification, + float lineHeightOffset, + const std::string& ellipsizeText, + bool markUpEnabled ) : mMultilinePolicy( multilinePolicy ), mWidthExceedPolicy( widthExceedPolicy ), mHeightExceedPolicy( heightExceedPolicy ), @@ -1010,7 +1011,7 @@ TextView::RelayoutData& TextView::RelayoutData::operator=( const TextView::Relay } TextView::TextView() -: ControlImpl( false ), // doesn't require touch events +: Control( REQUIRES_STYLE_CHANGE_SIGNALS ), mCurrentStyledText(), mTextViewProcessorOperations(), mLayoutParameters( Toolkit::TextView::SplitByNewLineChar, @@ -1150,7 +1151,7 @@ void TextView::OnInitialize() } -void TextView::OnStyleChange( StyleChange change ) +void TextView::OnFontChange( bool defaultFontChange, bool defaultFontSizeChange ) { mRelayoutData.mTextLayoutInfo.mEllipsizeLayoutInfo = TextViewProcessor::WordLayoutInfo(); TextViewProcessor::CreateWordTextInfo( mLayoutParameters.mEllipsizeText, @@ -1336,7 +1337,7 @@ void TextView::OptimizeTextViewProcessorOperations() mTextViewProcessorOperations = textViewProcessorOperations; } -void TextView::DoRelayOut( const Size& textViewSize, const RelayoutOperationMask relayoutOperationMask ) +void TextView::DoRelayOut( const Size& textViewSize, RelayoutOperationMask relayoutOperationMask ) { // Traverse the relayout operation vector. It fills the natural size, layout and glyph-actor data structures. if( !mTextViewProcessorOperations.empty() ) @@ -1779,6 +1780,11 @@ void TextView::CombineExceedPolicies() mLayoutParameters.mExceedPolicy = SplitShrink; break; } + case Toolkit::TextView::EllipsizeEnd: + { + mLayoutParameters.mExceedPolicy = SplitEllipsizeEnd; + break; + } default: { DALI_ASSERT_ALWAYS( !"TextView::CombineExceedPolicies() Invalid width and height exceed policies combination" ); @@ -1925,10 +1931,6 @@ void TextView::OnWidthExceedPolicyPropertySet( Property::Value propertyValue ) { SetWidthExceedPolicy(Toolkit::TextView::Original); } - else if(policyName == "Truncate") - { - SetWidthExceedPolicy(Toolkit::TextView::Truncate); - } else if(policyName == "Fade") { SetWidthExceedPolicy(Toolkit::TextView::Fade); @@ -1958,10 +1960,6 @@ void TextView::OnHeightExceedPolicyPropertySet( Property::Value propertyValue ) { SetHeightExceedPolicy(Toolkit::TextView::Original); } - else if(policyName == "Truncate") - { - SetHeightExceedPolicy(Toolkit::TextView::Truncate); - } else if(policyName == "Fade") { SetHeightExceedPolicy(Toolkit::TextView::Fade);