2 * Copyright (c) 2015 Samsung Electronics Co., Ltd.
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
8 * http://www.apache.org/licenses/LICENSE-2.0
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.
19 #include <dali-toolkit/public-api/text/decorator/text-decorator.h>
22 #include <dali/public-api/common/constants.h>
23 #include <dali/public-api/images/image.h>
24 #include <dali/public-api/math/vector2.h>
25 #include <dali/public-api/math/vector4.h>
36 struct Decorator::Impl
44 color(Dali::Color::WHITE)
56 Impl(ControlImpl& parent)
58 mActiveCursor(ACTIVE_CURSOR_NONE),
59 mCursorBlinkInterval(0.5f),
60 mCursorBlinkDuration(0.0f)
64 void Relayout( const Vector2& size )
71 unsigned int mActiveCursor;
73 CursorImpl mCursor[CURSOR_COUNT];
75 float mCursorBlinkInterval;
76 float mCursorBlinkDuration;
79 DecoratorPtr Decorator::New(ControlImpl& parent)
81 return DecoratorPtr( new Decorator(parent) );
84 void Decorator::Relayout( const Vector2& size )
86 mImpl->Relayout( size );
89 void Decorator::SetActiveCursor( ActiveCursor activeCursor )
91 mImpl->mActiveCursor = activeCursor;
94 unsigned int Decorator::GetActiveCursor() const
96 return mImpl->mActiveCursor;
99 void Decorator::SetPosition( Cursor cursor, float x, float y, float height )
101 mImpl->mCursor[cursor].x = x;
102 mImpl->mCursor[cursor].y = y;
103 mImpl->mCursor[cursor].height = height;
106 void Decorator::GetPosition( Cursor cursor, float& x, float& y, float& height ) const
108 x = mImpl->mCursor[cursor].x;
109 y = mImpl->mCursor[cursor].y;
110 height = mImpl->mCursor[cursor].height;
113 void Decorator::SetImage( Cursor cursor, Dali::Image image )
115 mImpl->mCursor[cursor].image = image;
118 Dali::Image Decorator::GetImage( Cursor cursor ) const
120 return mImpl->mCursor[cursor].image;
123 void Decorator::SetColor( Cursor cursor, const Dali::Vector4& color )
125 mImpl->mCursor[cursor].color = color;
128 const Dali::Vector4& Decorator::GetColor( Cursor cursor ) const
130 return mImpl->mCursor[cursor].color;
133 void Decorator::StartCursorBlink()
138 void Decorator::StopCursorBlink()
143 void Decorator::SetCursorBlinkInterval( float seconds )
145 mImpl->mCursorBlinkInterval = seconds;
148 float Decorator::GetCursorBlinkInterval() const
150 return mImpl->mCursorBlinkInterval;
153 void Decorator::SetCursorBlinkDuration( float seconds )
155 mImpl->mCursorBlinkDuration = seconds;
158 float Decorator::GetCursorBlinkDuration() const
160 return mImpl->mCursorBlinkDuration;
163 Decorator::~Decorator()
168 Decorator::Decorator(ControlImpl& parent)
171 mImpl = new Decorator::Impl(parent);
176 } // namespace Toolkit