$(public_api_base_src_dir)/controls/scrollable/scroll-view/scroll-view-slide-effect.cpp \
$(public_api_base_src_dir)/controls/scrollable/scroll-view/scroll-view-wobble-effect.cpp \
$(public_api_base_src_dir)/controls/table-view/table-view.cpp \
+ $(public_api_base_src_dir)/text/logical-model.cpp \
+ $(public_api_base_src_dir)/text/text-view.cpp \
+ $(public_api_base_src_dir)/text/visual-model.cpp \
$(public_api_base_src_dir)/focus-manager/focus-manager.cpp \
$(public_api_base_src_dir)/focus-manager/keyboard-focus-manager.cpp \
$(public_api_base_src_dir)/focus-manager/keyinput-focus-manager.cpp \
public_api_base_table_view_header_files = \
$(public_api_base_src_dir)/controls/table-view/table-view.h
+public_api_base_text_header_files = \
+ $(public_api_base_src_dir)/text/logical-model.h \
+ $(public_api_base_src_dir)/text/text-definitions.h \
+ $(public_api_base_src_dir)/text/visual-model.h
+
public_api_base_focus_manager_header_files = \
$(public_api_base_src_dir)/focus-manager/keyinput-focus-manager.h \
$(public_api_base_src_dir)/focus-manager/focus-manager.h \
--- /dev/null
+/*
+ * Copyright (c) 2015 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 <dali-toolkit/public-api/text/logical-model.h>
+
+// EXTERNAL INCLUDES
+#include <string.h>
+
+namespace Dali
+{
+
+namespace Toolkit
+{
+
+namespace Text
+{
+
+struct LogicalModel::Impl
+{
+ Vector<Character> mText;
+};
+
+LogicalModelPtr LogicalModel::New()
+{
+ return LogicalModelPtr( new LogicalModel() );
+}
+
+void LogicalModel::SetText( const Character* text, Length length )
+{
+ Vector<Character>& modelText = mImpl->mText;
+ modelText.Resize( length );
+ memcpy( &modelText[0], text, length*sizeof(Character) );
+}
+
+Length LogicalModel::GetNumberOfCharacters() const
+{
+ return mImpl->mText.Count();
+}
+
+void LogicalModel::GetText( CharacterIndex characterIndex, Character* text, Length numberOfCharacters ) const
+{
+ Vector<Character>& modelText = mImpl->mText;
+ memcpy( text, &modelText[characterIndex], numberOfCharacters*sizeof(Character) );
+}
+
+LogicalModel::~LogicalModel()
+{
+}
+
+LogicalModel::LogicalModel()
+: mImpl( NULL )
+{
+ mImpl = new LogicalModel::Impl();
+}
+
+} // namespace Text
+
+} // namespace Toolkit
+
+} // namespace Dali
--- /dev/null
+#ifndef __DALI_TOOLKIT_TEXT_LOGICAL_MODEL_H__
+#define __DALI_TOOLKIT_TEXT_LOGICAL_MODEL_H__
+
+/*
+ * Copyright (c) 2015 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.
+ *
+ */
+
+// EXTERNAL INCLUDES
+#include <dali/public-api/common/intrusive-ptr.h>
+
+// INTERNAL INCLUDES
+#include <dali-toolkit/public-api/text/text-definitions.h>
+
+namespace Dali
+{
+
+namespace Toolkit
+{
+
+namespace Text
+{
+
+class LogicalModel;
+typedef IntrusivePtr<LogicalModel> LogicalModelPtr;
+
+/**
+ * @brief A logical text model contains layout independent information.
+ *
+ * This includes:
+ * - A series of UTF-32 characters in logical order
+ */
+class LogicalModel : public RefObject
+{
+public:
+
+ /**
+ * @brief Create a new instance of a LogicalModel.
+ *
+ * @return A pointer to a new LogicalModel.
+ */
+ static LogicalModelPtr New();
+
+ // Text interface.
+
+ /**
+ * @brief Replaces any text previously set.
+ *
+ * @param[in] text An array of UTF-32 characters.
+ * @param[in] length The length of the array.
+ */
+ void SetText( const Character* text,
+ Length length );
+
+ /**
+ * @brief Retrieves the number of characters of the text.
+ *
+ * @return The number of characters.
+ */
+ Length GetNumberOfCharacters() const;
+
+ /**
+ * @brief Retrieves characters from the text in the given buffer.
+ *
+ * @pre The size of the @p text buffer needs to be big enough to copy the @p numberOfCharacters.
+ * @param[in] characterIndex The index to the first character to copy.
+ * @param[out] text Pointer to a buffer where the text is copied.
+ * @param[in] numberOfCharacters The number of characters to be copied.
+ */
+ void GetText( CharacterIndex characterIndex,
+ Character* text,
+ Length numberOfCharacters ) const;
+
+protected:
+
+ /**
+ * @brief A reference counted object may only be deleted by calling Unreference().
+ */
+ virtual ~LogicalModel();
+
+private:
+
+ /**
+ * @brief Private constructor.
+ */
+ LogicalModel();
+
+ // Undefined
+ LogicalModel( const LogicalModel& handle );
+
+ // Undefined
+ LogicalModel& operator=( const LogicalModel& handle );
+
+private:
+
+ struct Impl;
+ Impl* mImpl;
+};
+
+} // namespace Text
+
+} // namespace Toolkit
+
+} // namespace Dali
+
+#endif // __DALI_TOOLKIT_TEXT_LOGICAL_MODEL_H__
--- /dev/null
+#ifndef __DALI_TEXT_ABSTRACTION_TEXT_TYPE_DEFINITIONS_H__
+#define __DALI_TEXT_ABSTRACTION_TEXT_TYPE_DEFINITIONS_H__
+
+/*
+ * Copyright (c) 2015 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.
+ *
+ */
+
+// EXTERNAL INCLUDES
+#include <dali/public-api/text-abstraction/text-abstraction.h>
+
+namespace Dali
+{
+
+namespace Toolkit
+{
+
+namespace Text
+{
+
+typedef TextAbstraction::FontId FontId; ///< The unique identifier for a font face (generated by FontClient)
+typedef TextAbstraction::PointSize26Dot6 PointSize26Dot6; ///< The point size in 26.6 fractional points
+typedef TextAbstraction::FaceIndex FaceIndex; ///< Used with fonts which allow several font faces
+typedef TextAbstraction::GlyphIndex GlyphIndex; ///< Uniquely identifies a glyph within a particular font
+typedef TextAbstraction::Character Character; ///< A UTF-32 representation of a character
+typedef TextAbstraction::GlyphInfo GlyphInfo; ///< The information describing a glyph (font ID, index, metrics)
+
+typedef uint32_t CharacterIndex; ///< An index into an array of characters
+typedef uint32_t GlyphIndex; ///< An index into an array of glyphs
+typedef uint32_t Length; ///< The length of an array
+
+} // namespace Text
+
+} // namespace Toolkit
+
+} // namespace Dali
+
+#endif // __DALI_TEXT_ABSTRACTION_TEXT_TYPE_DEFINITIONS_H__
--- /dev/null
+#ifndef __DALI_TOOLKIT_TEXT_VIEW_INTERFACE_H__
+#define __DALI_TOOLKIT_TEXT_VIEW_INTERFACE_H__
+
+/*
+ * Copyright (c) 2015 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.
+ *
+ */
+
+// INTERNAL INCLUDES
+#include <dali-toolkit/public-api/text/text-definitions.h>
+
+namespace Dali
+{
+
+struct Vector2;
+
+namespace Toolkit
+{
+
+namespace Text
+{
+
+/**
+ * @brief Abstract interface to provide the information necessary displaying text.
+ *
+ * This includes:
+ * - The font & glyph IDs needed to get bitmaps etc. from TextAbstraction
+ * - The visual position of each glyph within the layout
+ * - A window into the text layout e.g. which page of a document to view
+ */
+class ViewInterface
+{
+public:
+
+ /**
+ * @brief Constructor.
+ */
+ ViewInterface();
+
+ /**
+ * @brief Virtual destructor
+ */
+ virtual ~ViewInterface();
+
+ /**
+ * Retrieves the number of glyphs.
+ *
+ * @return The number of glyphs.
+ */
+ virtual Length GetNumberOfGlyphs() const = 0;
+
+ /**
+ * @brief Retrieves glyphs in the given buffer.
+ *
+ * The size of the @p glyphs buffer needs to be big enough to copy the @p numberOfGlyphs.
+ * @param[out] glyphs Pointer to a buffer where the glyphs are copied.
+ * @param[in] glyphIndex Index to the first glyph.
+ * @param[in] numberOfGlyphs Number of glyphs to be copied.
+ */
+ virtual void GetGlyphs( GlyphIndex glyphIndex,
+ GlyphInfo* glyphs,
+ Length numberOfGlyphs ) const = 0;
+
+ /**
+ * @brief Retrieves the glyph positions.
+ *
+ * @pre The size of the @p positions buffer needs to be big enough to copy the @p numberOfGlyphs positions.
+ * @param[in] glyphIndex Index to the first glyph position.
+ * @param[out] glyphPositions Pointer to a buffer where the glyph positions are copied.
+ * @param[in] numberOfGlyphs The number of positions to be copied.
+ */
+ virtual void GetGlyphPositions( GlyphIndex glyphIndex,
+ Vector2* glyphPositions,
+ Length numberOfGlyphs ) const = 0;
+};
+
+} // namespace Text
+
+} // namespace Toolkit
+
+} // namespace Dali
+
+#endif // __DALI_TOOLKIT_TEXT_VIEW_INTERFACE_H__
--- /dev/null
+/*
+ * Copyright (c) 2015 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 <dali-toolkit/public-api/text/text-view.h>
+
+// EXTERNAL INCLUDES
+#include <dali/public-api/math/vector2.h>
+
+namespace Dali
+{
+
+namespace Toolkit
+{
+
+namespace Text
+{
+
+struct View::Impl
+{
+ VisualModelPtr mVisualModel;
+};
+
+ViewPtr View::New()
+{
+ return ViewPtr( new View() );
+}
+
+void View::SetVisualModel( VisualModelPtr visualModel )
+{
+ mImpl->mVisualModel = visualModel;
+}
+
+Length View::GetNumberOfGlyphs() const
+{
+ if( mImpl->mVisualModel )
+ {
+ return mImpl->mVisualModel->GetNumberOfGlyphs();
+ }
+
+ return 0;
+}
+
+void View::GetGlyphs( GlyphIndex glyphIndex,
+ GlyphInfo* glyphs,
+ Length numberOfGlyphs ) const
+{
+ if( mImpl->mVisualModel )
+ {
+ mImpl->mVisualModel->GetGlyphs( glyphIndex, glyphs, numberOfGlyphs );
+ }
+}
+
+void View::GetGlyphPositions( GlyphIndex glyphIndex,
+ Vector2* glyphPositions,
+ Length numberOfGlyphs ) const
+{
+ if( mImpl->mVisualModel )
+ {
+ mImpl->mVisualModel->GetGlyphPositions( glyphIndex, glyphPositions, numberOfGlyphs );
+ }
+}
+
+View::~View()
+{
+}
+
+View::View()
+: mImpl( NULL )
+{
+ mImpl = new View::Impl();
+}
+
+} // namespace Text
+
+} // namespace Toolkit
+
+} // namespace Dali
--- /dev/null
+#ifndef __DALI_TOOLKIT_TEXT_VIEW_H__
+#define __DALI_TOOLKIT_TEXT_VIEW_H__
+
+/*
+ * Copyright (c) 2015 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.
+ *
+ */
+
+// EXTERNAL INCLUDES
+#include <dali/public-api/common/intrusive-ptr.h>
+#include <dali/public-api/object/ref-object.h>
+
+// INTERNAL INCLUDES
+#include <dali-toolkit/public-api/text/text-view-interface.h>
+#include <dali-toolkit/public-api/text/visual-model.h>
+
+namespace Dali
+{
+
+struct Vector2;
+
+namespace Toolkit
+{
+
+namespace Text
+{
+
+class View;
+typedef IntrusivePtr<View> ViewPtr;
+
+/**
+ * @brief View provides an interface between the Text layout engine and rendering back-end.
+ */
+class View : public RefObject, public ViewInterface
+{
+public:
+
+ /**
+ * @brief Create a new instance of a View.
+ *
+ * @return A pointer to a new View.
+ */
+ static ViewPtr New();
+
+ /**
+ * @brief Set the visual model.
+ *
+ * @param[in] visualModel The visual model used by the View.
+ */
+ void SetVisualModel( VisualModelPtr visualModel );
+
+ /**
+ * @copydoc Dali::Toolkit::Text::ViewInterface::GetNumberOfGlyphs()
+ */
+ virtual Length GetNumberOfGlyphs() const;
+
+ /**
+ * @copydoc Dali::Toolkit::Text::ViewInterface::GetGlyphs()
+ */
+ virtual void GetGlyphs( GlyphIndex glyphIndex,
+ GlyphInfo* glyphs,
+ Length numberOfGlyphs ) const;
+
+ /**
+ * @copydoc Dali::Toolkit::Text::ViewInterface::GetGlyphPositions()
+ */
+ virtual void GetGlyphPositions( GlyphIndex glyphIndex,
+ Vector2* glyphPositions,
+ Length numberOfGlyphs ) const;
+
+protected:
+
+ /**
+ * @brief A reference counted object may only be deleted by calling Unreference().
+ */
+ virtual ~View();
+
+private:
+
+ /**
+ * @brief Private constructor.
+ */
+ View();
+
+ // Undefined
+ View( const View& handle );
+
+ // Undefined
+ View& operator=( const View& handle );
+
+private:
+
+ struct Impl;
+ Impl* mImpl;
+};
+} // namespace Text
+
+} // namespace Toolkit
+
+} // namespace Dali
+
+#endif // __DALI_TOOLKIT_TEXT_VIEW_H__
--- /dev/null
+/*
+ * Copyright (c) 2015 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 <dali-toolkit/public-api/text/visual-model.h>
+
+// EXTERNAL INCLUDES
+#include <string.h>
+#include <vector>
+#include <dali/public-api/math/vector2.h>
+
+namespace Dali
+{
+
+namespace Toolkit
+{
+
+namespace Text
+{
+
+struct VisualModel::Impl
+{
+ Vector<GlyphInfo> mGlyphs;
+ Vector<CharacterIndex> mGlyphsToCharacters;
+ Vector<Length> mCharactersPerGlyph;
+ std::vector<Vector2> mGlyphPositions;
+};
+
+VisualModelPtr VisualModel::New()
+{
+ return VisualModelPtr( new VisualModel() );
+}
+
+void VisualModel::SetGlyphs( const GlyphInfo* glyphs,
+ const CharacterIndex* characterIndices,
+ const Length* charactersPerGlyph,
+ Length numberOfGlyphs )
+{
+ Vector<GlyphInfo>& modelGlyphs = mImpl->mGlyphs;
+ modelGlyphs.Resize( numberOfGlyphs );
+ memcpy( &modelGlyphs[0], glyphs, numberOfGlyphs*sizeof(GlyphInfo) );
+
+ Vector<CharacterIndex>& glyphsToCharacters = mImpl->mGlyphsToCharacters;
+ glyphsToCharacters.Resize( numberOfGlyphs );
+ memcpy( &glyphsToCharacters[0], characterIndices, numberOfGlyphs*sizeof(CharacterIndex) );
+
+ Vector<Length>& modelCharactersPerGlyph = mImpl->mCharactersPerGlyph;
+ modelCharactersPerGlyph.Resize( numberOfGlyphs );
+ memcpy( &modelCharactersPerGlyph[0], charactersPerGlyph, numberOfGlyphs*sizeof(Length) );
+}
+
+Length VisualModel::GetNumberOfGlyphs() const
+{
+ return mImpl->mGlyphs.Count();
+}
+
+void VisualModel::GetGlyphs( GlyphIndex glyphIndex,
+ GlyphInfo* glyphs,
+ Length numberOfGlyphs ) const
+{
+ Vector<GlyphInfo>& modelGlyphs = mImpl->mGlyphs;
+ memcpy( glyphs, &modelGlyphs[glyphIndex], numberOfGlyphs*sizeof(GlyphInfo) );
+}
+
+CharacterIndex VisualModel::GetCharacterIndex( GlyphIndex glyphIndex ) const
+{
+ return mImpl->mGlyphsToCharacters[glyphIndex];
+}
+
+Length VisualModel::GetCharactersPerGlyph( GlyphIndex glyphIndex ) const
+{
+ return mImpl->mCharactersPerGlyph[glyphIndex];
+}
+
+GlyphIndex VisualModel::GetGlyphIndex( CharacterIndex characterIndex ) const
+{
+ GlyphIndex index( 0 );
+
+ for( unsigned int i=0; i<mImpl->mGlyphsToCharacters.Count(); ++i )
+ {
+ if( mImpl->mGlyphsToCharacters[i] == characterIndex )
+ {
+ index = i;
+ break;
+ }
+ }
+
+ return index;
+}
+
+void VisualModel::SetGlyphPositions( const Vector2* glyphPositions,
+ Length numberOfGlyphs )
+{
+ std::vector<Vector2>& modelPositions = mImpl->mGlyphPositions;
+ modelPositions.resize( numberOfGlyphs );
+ memcpy( &modelPositions[0], glyphPositions, numberOfGlyphs*sizeof(Vector2) );
+}
+
+void VisualModel::GetGlyphPositions( GlyphIndex glyphIndex,
+ Vector2* glyphPositions,
+ Length numberOfGlyphs ) const
+{
+ std::vector<Vector2>& modelPositions = mImpl->mGlyphPositions;
+ memcpy( glyphPositions, &modelPositions[0], numberOfGlyphs*sizeof(Vector2) );
+}
+
+VisualModel::~VisualModel()
+{
+}
+
+VisualModel::VisualModel()
+: mImpl( NULL )
+{
+ mImpl = new VisualModel::Impl();
+}
+
+} // namespace Text
+
+} // namespace Toolkit
+
+} // namespace Dali
--- /dev/null
+#ifndef __DALI_TOOLKIT_TEXT_VISUAL_MODEL_H__
+#define __DALI_TOOLKIT_TEXT_VISUAL_MODEL_H__
+
+/*
+ * Copyright (c) 2015 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.
+ *
+ */
+
+// EXTERNAL INCLUDES
+#include <dali/public-api/common/intrusive-ptr.h>
+
+// INTERNAL INCLUDES
+#include <dali-toolkit/public-api/text/text-definitions.h>
+
+namespace Dali
+{
+
+struct Vector2;
+
+namespace Toolkit
+{
+
+namespace Text
+{
+
+class VisualModel;
+typedef IntrusivePtr<VisualModel> VisualModelPtr;
+
+/**
+ * @brief A visual text model contains layout specific information.
+ *
+ * This includes:
+ * - A series of glyphs in visual order i.e. after the bidirectional reordering.
+ * - The position of each glyph within a 2D bounding box.
+ */
+class VisualModel : public RefObject
+{
+public:
+
+ /**
+ * @brief Create a new instance of a VisualModel.
+ *
+ * @return A pointer to a new VisualModel.
+ */
+ static VisualModelPtr New();
+
+ // Glyph interface.
+
+ /**
+ * @brief Replaces any glyphs previously set.
+ *
+ * @param[in] glyphs An array of glyphs in the visual order.
+ * @param[in] characterIndices An array containing the first character in the logical model that each glyph relates to.
+ * @param[in] charactersPerGlyph An array of containing the number of characters per glyph.
+ * @param[in] numberOfGlyphs The number of glyphs.
+ */
+ void SetGlyphs( const GlyphInfo* glyphs,
+ const CharacterIndex* characterIndices,
+ const Length* charactersPerGlyph,
+ Length numberOfGlyphs );
+
+ /**
+ * Retrieves the number of glyphs.
+ *
+ * @return The number of glyphs.
+ */
+ Length GetNumberOfGlyphs() const;
+
+ /**
+ * @brief Retrieves glyphs in the given buffer.
+ *
+ * The size of the @p glyphs buffer needs to be big enough to copy the @p numberOfGlyphs.
+ * @param[out] glyphs Pointer to a buffer where the glyphs are copied.
+ * @param[in] glyphIndex Index to the first glyph.
+ * @param[in] numberOfGlyphs Number of glyphs to be copied.
+ */
+ void GetGlyphs( GlyphIndex glyphIndex,
+ GlyphInfo* glyphs,
+ Length numberOfGlyphs ) const;
+
+ // Character <--> Glyph conversion
+
+ /**
+ * @brief Retrieves the first character in the logical model which a glyph represents.
+ *
+ * @note After shaping several characters may be represented by the same glyph.
+ * Alternatively several glyphs may be required to display a character.
+ * @param[in] glyphIndex The glyph index.
+ * @return The character index.
+ */
+ CharacterIndex GetCharacterIndex( GlyphIndex glyphIndex ) const;
+
+ /**
+ * @brief Query the number of characters the glyph represents.
+ *
+ * @param[in] glyphIndex The glyph index.
+ * @return The number of characters represented by the glyph.
+ */
+ Length GetCharactersPerGlyph( GlyphIndex glyphIndex ) const;
+
+ /**
+ * Retrieves the first glyph in the visual model which represents a given character.
+ *
+ * @note After shaping several characters may be represented by the same glyph.
+ * Alternatively several glyphs may be required to display a character.
+ * @param[in] characterIndex The character index.
+ * @return The glyph index.
+ */
+ GlyphIndex GetGlyphIndex( CharacterIndex characterIndex ) const;
+
+ // Position interface
+
+ /**
+ * @brief Replaces any glyph positions previously set.
+ *
+ * @param[in] glyphPositions An array of visual positions for each glyph.
+ * @param[in] numberOfGlyphs The number of positions.
+ */
+ void SetGlyphPositions( const Vector2* glyphPositions,
+ Length numberOfGlyphs );
+
+ /**
+ * @brief Retrieves the glyph positions.
+ *
+ * @pre The size of the @p positions buffer needs to be big enough to copy the @p numberOfGlyphs positions.
+ * @param[in] glyphIndex Index to the first glyph position.
+ * @param[out] glyphPositions Pointer to a buffer where the glyph positions are copied.
+ * @param[in] numberOfGlyphs The number of positions to be copied.
+ */
+ void GetGlyphPositions( GlyphIndex glyphIndex,
+ Vector2* glyphPositions,
+ Length numberOfGlyphs ) const;
+
+protected:
+
+ /**
+ * @brief A reference counted object may only be deleted by calling Unreference().
+ */
+ virtual ~VisualModel();
+
+private:
+
+ /**
+ * @brief Private constructor.
+ */
+ VisualModel();
+
+ // Undefined
+ VisualModel( const VisualModel& handle );
+
+ // Undefined
+ VisualModel& operator=( const VisualModel& handle );
+
+private:
+
+ struct Impl;
+ Impl* mImpl;
+};
+} // namespace Text
+
+} // namespace Toolkit
+
+} // namespace Dali
+
+#endif // __DALI_TOOLKIT_TEXT_VISUAL_MODEL_H__
publicapibasescrollabledir = $(publicapibasedir)/controls/scrollable
publicapibasescrollviewdir = $(publicapibasedir)/controls/scrollable/scroll-view
publicapibasetableviewdir = $(publicapibasedir)/controls/table-view
-publicapibasetextviewdir = $(publicapibasedir)/controls/text-view
-publicapibasetextinputdir = $(publicapibasedir)/controls/text-input
+publicapibasetextdir = $(publicapibasedir)/text
publicapibasefactorydir = $(publicapibasedir)/factory
publicapibasefocusmanagerdir = $(publicapibasedir)/focus-manager
publicapibasemarkupprocessordir = $(publicapibasedir)/markup-processor
publicapibasescrollable_HEADERS = $(public_api_base_scrollable_header_files)
publicapibasescrollview_HEADERS = $(public_api_base_scroll_view_header_files)
publicapibasetableview_HEADERS = $(public_api_base_table_view_header_files)
-publicapibasetextview_HEADERS = $(public_api_base_text_view_header_files)
-publicapibasetextinput_HEADERS = $(public_api_base_text_input_header_files)
+publicapibasetext_HEADERS = $(public_api_base_text_header_files)
publicapibasefocusmanager_HEADERS = $(public_api_base_focus_manager_header_files)
publicapibasemarkupprocessor_HEADERS = $(public_api_base_markup_processor_header_files)
publicapibaseshadereffects_HEADERS = $(public_api_base_shader_effects_header_files)
#include <dali-toolkit/public-api/shader-effects/ripple-effect.h>
#include <dali-toolkit/public-api/shader-effects/ripple2d-effect.h>
#include <dali-toolkit/public-api/shader-effects/swirl-effect.h>
+#include <dali-toolkit/public-api/text/logical-model.h>
+#include <dali-toolkit/public-api/text/text-definitions.h>
+#include <dali-toolkit/public-api/text/text-view.h>
+#include <dali-toolkit/public-api/text/text-view-interface.h>
+#include <dali-toolkit/public-api/text/visual-model.h>
// INTERNAL INCLUDES