3 * Copyright (c) 2014 Samsung Electronics Co., Ltd.
5 * Licensed under the Apache License, Version 2.0 (the "License");
6 * you may not use this file except in compliance with the License.
7 * You may obtain a copy of the License at
9 * http://www.apache.org/licenses/LICENSE-2.0
11 * Unless required by applicable law or agreed to in writing, software
12 * distributed under the License is distributed on an "AS IS" BASIS,
13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 * See the License for the specific language governing permissions and
15 * limitations under the License.
20 #include <dali/internal/event/text/atlas/atlas-ranking.h>
28 AtlasRanking::AtlasRanking( unsigned int unMatchedCharacters )
29 : mUnMatchedCharacters( unMatchedCharacters ),
30 mChararacterMatch( NO_CHARACTERS_MATCHED ),
31 mFontMatch( NO_FONT_MATCHED ),
32 mSpaceStatus( FULL_CANNOT_BE_RESIZED )
36 AtlasRanking::AtlasRanking( CharacterMatch characterMatch,
38 SpaceStatus spaceStatus,
39 unsigned int unMatchedCharacters )
40 : mUnMatchedCharacters( unMatchedCharacters ),
41 mChararacterMatch( characterMatch ),
42 mFontMatch( fontMatch ),
43 mSpaceStatus( spaceStatus )
48 AtlasRanking::~AtlasRanking()
53 AtlasRanking::AtlasRanking( const AtlasRanking& rhs)
54 : mUnMatchedCharacters( rhs.mUnMatchedCharacters ),
55 mChararacterMatch( rhs.mChararacterMatch ),
56 mFontMatch( rhs.mFontMatch ),
57 mSpaceStatus( rhs.mSpaceStatus )
62 AtlasRanking& AtlasRanking::operator=( const AtlasRanking& rhs)
64 mUnMatchedCharacters = rhs.mUnMatchedCharacters;
65 mChararacterMatch = rhs.mChararacterMatch;
66 mFontMatch = rhs.mFontMatch;
67 mSpaceStatus = rhs.mSpaceStatus;
71 bool AtlasRanking::HigherRanked(const AtlasRanking &atlasRank) const
73 int ret = Compare( *this , atlasRank );
77 bool AtlasRanking::TextFits() const
79 return ( mSpaceStatus == HAS_SPACE ) || (mChararacterMatch == ALL_CHARACTERS_MATCHED);
82 bool AtlasRanking::AllCharactersMatched() const
84 return ( mChararacterMatch == ALL_CHARACTERS_MATCHED );
87 AtlasRanking::SpaceStatus AtlasRanking::GetSpaceStatus() const
92 int AtlasRanking::Compare( const AtlasRanking &a, const AtlasRanking &b) const
94 if( a.mChararacterMatch != b.mChararacterMatch )
96 return a.mChararacterMatch > b.mChararacterMatch ? 1 : -1;
99 if( a.mFontMatch != b.mFontMatch )
101 return a.mFontMatch > b.mFontMatch ? 1 : -1;
104 if( a.mSpaceStatus != b.mSpaceStatus )
106 return a.mSpaceStatus > b.mSpaceStatus ? 1 : -1;
109 if( a.mUnMatchedCharacters != b.mUnMatchedCharacters )
111 return a.mUnMatchedCharacters < b.mUnMatchedCharacters ? 1: -1;
116 } // namespace Internal