projects
/
platform
/
core
/
uifw
/
dali-toolkit.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Multiple text background color support for left-to-right text only in TextField
[platform/core/uifw/dali-toolkit.git]
/
dali-toolkit
/
internal
/
text
/
text-controller-impl.h
diff --git
a/dali-toolkit/internal/text/text-controller-impl.h
b/dali-toolkit/internal/text/text-controller-impl.h
old mode 100644
(file)
new mode 100755
(executable)
index
52dad25
..
064d644
--- a/
dali-toolkit/internal/text/text-controller-impl.h
+++ b/
dali-toolkit/internal/text/text-controller-impl.h
@@
-21,6
+21,7
@@
// EXTERNAL INCLUDES
#include <dali/devel-api/adaptor-framework/clipboard.h>
#include <dali/devel-api/text-abstraction/font-client.h>
// EXTERNAL INCLUDES
#include <dali/devel-api/adaptor-framework/clipboard.h>
#include <dali/devel-api/text-abstraction/font-client.h>
+#include <dali/public-api/rendering/shader.h>
// INTERNAL INCLUDES
#include <dali-toolkit/internal/text/input-style.h>
// INTERNAL INCLUDES
#include <dali-toolkit/internal/text/input-style.h>
@@
-39,6
+40,10
@@
namespace Toolkit
namespace Text
{
namespace Text
{
+const float DEFAULT_TEXTFIT_MIN = 10.f;
+const float DEFAULT_TEXTFIT_MAX = 100.f;
+const float DEFAULT_TEXTFIT_STEP = 1.f;
+
//Forward declarations
struct CursorInfo;
struct FontDefaults;
//Forward declarations
struct CursorInfo;
struct FontDefaults;
@@
-97,7
+102,7
@@
struct EventData
TEXT_PANNING
};
TEXT_PANNING
};
- EventData( DecoratorPtr decorator );
+ EventData( DecoratorPtr decorator
, InputMethodContext& inputMethodContext
);
~EventData();
~EventData();
@@
-107,7
+112,7
@@
struct EventData
}
DecoratorPtr mDecorator; ///< Pointer to the decorator.
}
DecoratorPtr mDecorator; ///< Pointer to the decorator.
- I
mfManager mImfManager;
///< The Input Method Framework Manager.
+ I
nputMethodContext mInputMethodContext;
///< The Input Method Framework Manager.
FontDefaults* mPlaceholderFont; ///< The placeholder default font.
std::string mPlaceholderTextActive; ///< The text to display when the TextField is empty with key-input focus.
std::string mPlaceholderTextInactive; ///< The text to display when the TextField is empty and inactive.
FontDefaults* mPlaceholderFont; ///< The placeholder default font.
std::string mPlaceholderTextActive; ///< The text to display when the TextField is empty with key-input focus.
std::string mPlaceholderTextInactive; ///< The text to display when the TextField is empty and inactive.
@@
-163,6
+168,7
@@
struct EventData
bool mIsPlaceholderElideEnabled : 1; ///< True if the placeholder text's elide is enabled.
bool mPlaceholderEllipsisFlag : 1; ///< True if the text controller sets the placeholder ellipsis.
bool mShiftSelectionFlag : 1; ///< True if the text selection using Shift key is enabled.
bool mIsPlaceholderElideEnabled : 1; ///< True if the placeholder text's elide is enabled.
bool mPlaceholderEllipsisFlag : 1; ///< True if the text controller sets the placeholder ellipsis.
bool mShiftSelectionFlag : 1; ///< True if the text selection using Shift key is enabled.
+ bool mUpdateAlignment : 1; ///< True if the whole text needs to be full aligned..
};
struct ModifyEvent
};
struct ModifyEvent
@@
-182,6
+188,7
@@
struct FontDefaults
FontDefaults()
: mFontDescription(),
mDefaultPointSize( 0.f ),
FontDefaults()
: mFontDescription(),
mDefaultPointSize( 0.f ),
+ mFitPointSize( 0.f ),
mFontId( 0u ),
familyDefined( false ),
weightDefined( false ),
mFontId( 0u ),
familyDefined( false ),
weightDefined( false ),
@@
-207,6
+214,7
@@
struct FontDefaults
TextAbstraction::FontDescription mFontDescription; ///< The default font's description.
float mDefaultPointSize; ///< The default font's point size.
TextAbstraction::FontDescription mFontDescription; ///< The default font's description.
float mDefaultPointSize; ///< The default font's point size.
+ float mFitPointSize; ///< The fit font's point size.
FontId mFontId; ///< The font's id of the default font.
bool familyDefined:1; ///< Whether the default font's family name is defined.
bool weightDefined:1; ///< Whether the default font's weight is defined.
FontId mFontId; ///< The font's id of the default font.
bool familyDefined:1; ///< Whether the default font's family name is defined.
bool weightDefined:1; ///< Whether the default font's weight is defined.
@@
-329,7
+337,12
@@
struct Controller::Impl
mShadowSetByString( false ),
mOutlineSetByString( false ),
mFontStyleSetByString( false ),
mShadowSetByString( false ),
mOutlineSetByString( false ),
mFontStyleSetByString( false ),
- mShouldClearFocusOnEscape( true )
+ mShouldClearFocusOnEscape( true ),
+ mLayoutDirection( LayoutDirection::LEFT_TO_RIGHT ),
+ mTextFitMinSize( DEFAULT_TEXTFIT_MIN ),
+ mTextFitMaxSize( DEFAULT_TEXTFIT_MAX ),
+ mTextFitStepSize( DEFAULT_TEXTFIT_STEP ),
+ mTextFitEnabled( false )
{
mModel = Model::New();
{
mModel = Model::New();
@@
-455,14
+468,14
@@
struct Controller::Impl
}
}
}
}
- void ResetI
mfManager
()
+ void ResetI
nputMethodContext
()
{
if( mEventData )
{
// Reset incase we are in a pre-edit state.
{
if( mEventData )
{
// Reset incase we are in a pre-edit state.
- if( mEventData->mI
mfManager
)
+ if( mEventData->mI
nputMethodContext
)
{
{
- mEventData->mI
mfManager
.Reset(); // Will trigger a message ( commit, get surrounding )
+ mEventData->mI
nputMethodContext
.Reset(); // Will trigger a message ( commit, get surrounding )
}
ClearPreEditFlag();
}
ClearPreEditFlag();
@@
-470,14
+483,14
@@
struct Controller::Impl
}
/**
}
/**
- * @brief Helper to notify I
MF manager
with surrounding text & cursor changes.
+ * @brief Helper to notify I
nputMethodContext
with surrounding text & cursor changes.
*/
*/
- void NotifyI
mfManager
();
+ void NotifyI
nputMethodContext
();
/**
/**
- * @brief Helper to notify I
MF manager
with multi line status.
+ * @brief Helper to notify I
nputMethodContext
with multi line status.
*/
*/
- void NotifyI
mf
MultiLineStatus();
+ void NotifyI
nputMethodContext
MultiLineStatus();
/**
* @brief Retrieve the current cursor position.
/**
* @brief Retrieve the current cursor position.
@@
-712,6
+725,13
@@
struct Controller::Impl
*/
void ScrollTextToMatchCursor( const CursorInfo& cursorInfo );
*/
void ScrollTextToMatchCursor( const CursorInfo& cursorInfo );
+ /**
+ * @brief Create an actor that renders the text background color
+ *
+ * @return the created actor or an empty handle if no background color needs to be rendered.
+ */
+ Actor CreateBackgroundActor();
+
public:
/**
public:
/**
@@
-752,6
+772,7
@@
public:
OperationsMask mOperationsPending; ///< Operations pending to be done to layout the text.
Length mMaximumNumberOfCharacters; ///< Maximum number of characters that can be inserted.
HiddenText* mHiddenInput; ///< Avoid allocating this when the user does not specify hidden input mode.
OperationsMask mOperationsPending; ///< Operations pending to be done to layout the text.
Length mMaximumNumberOfCharacters; ///< Maximum number of characters that can be inserted.
HiddenText* mHiddenInput; ///< Avoid allocating this when the user does not specify hidden input mode.
+ Vector2 mTextFitContentSize; ///< Size of Text fit content
bool mRecalculateNaturalSize:1; ///< Whether the natural size needs to be recalculated.
bool mMarkupProcessorEnabled:1; ///< Whether the mark-up procesor is enabled.
bool mRecalculateNaturalSize:1; ///< Whether the natural size needs to be recalculated.
bool mMarkupProcessorEnabled:1; ///< Whether the mark-up procesor is enabled.
@@
-765,6
+786,14
@@
public:
bool mOutlineSetByString:1; ///< Set when outline is set by string (legacy) instead of map
bool mFontStyleSetByString:1; ///< Set when font style is set by string (legacy) instead of map
bool mShouldClearFocusOnEscape:1; ///< Whether text control should clear key input focus
bool mOutlineSetByString:1; ///< Set when outline is set by string (legacy) instead of map
bool mFontStyleSetByString:1; ///< Set when font style is set by string (legacy) instead of map
bool mShouldClearFocusOnEscape:1; ///< Whether text control should clear key input focus
+ LayoutDirection::Type mLayoutDirection; ///< Current system language direction
+
+ Shader mShaderBackground; ///< The shader for text background.
+
+ float mTextFitMinSize; ///< Minimum Font Size for text fit. Default 10
+ float mTextFitMaxSize; ///< Maximum Font Size for text fit. Default 100
+ float mTextFitStepSize; ///< Step Size for font intervalse. Default 1
+ bool mTextFitEnabled : 1; ///< Whether the text's fit is enabled.
};
} // namespace Text
};
} // namespace Text