Minimal Model/View implementation
[platform/core/uifw/dali-toolkit.git] / base / dali-toolkit / public-api / text / text-view.cpp
1 /*
2  * Copyright (c) 2015 Samsung Electronics Co., Ltd.
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  *
16  */
17
18 // CLASS HEADER
19 #include <dali-toolkit/public-api/text/text-view.h>
20
21 // EXTERNAL INCLUDES
22 #include <dali/public-api/math/vector2.h>
23
24 namespace Dali
25 {
26
27 namespace Toolkit
28 {
29
30 namespace Text
31 {
32
33 struct View::Impl
34 {
35   VisualModelPtr mVisualModel;
36 };
37
38 ViewPtr View::New()
39 {
40   return ViewPtr( new View() );
41 }
42
43 void View::SetVisualModel( VisualModelPtr visualModel )
44 {
45   mImpl->mVisualModel = visualModel;
46 }
47
48 Length View::GetNumberOfGlyphs() const
49 {
50   if( mImpl->mVisualModel )
51   {
52     return mImpl->mVisualModel->GetNumberOfGlyphs();
53   }
54
55   return 0;
56 }
57
58 void View::GetGlyphs( GlyphIndex glyphIndex,
59                       GlyphInfo* glyphs,
60                       Length numberOfGlyphs ) const
61 {
62   if( mImpl->mVisualModel )
63   {
64     mImpl->mVisualModel->GetGlyphs( glyphIndex, glyphs, numberOfGlyphs );
65   }
66 }
67
68 void View::GetGlyphPositions( GlyphIndex glyphIndex,
69                               Vector2* glyphPositions,
70                               Length numberOfGlyphs ) const
71 {
72   if( mImpl->mVisualModel )
73   {
74     mImpl->mVisualModel->GetGlyphPositions( glyphIndex, glyphPositions, numberOfGlyphs );
75   }
76 }
77
78 View::~View()
79 {
80 }
81
82 View::View()
83 : mImpl( NULL )
84 {
85   mImpl = new View::Impl();
86 }
87
88 } // namespace Text
89
90 } // namespace Toolkit
91
92 } // namespace Dali