bool mDecoratorUpdated;
};
+struct Controller::FontDefaults
+{
+ FontDefaults()
+ : mDefaultPointSize(0.0f),
+ mFontId(0u)
+ {
+ }
+
+ FontId GetFontId( TextAbstraction::FontClient& fontClient )
+ {
+ if( !mFontId )
+ {
+ Dali::TextAbstraction::PointSize26Dot6 pointSize = mDefaultPointSize*64;
+ mFontId = fontClient.GetFontId( mDefaultFontFamily, mDefaultFontStyle, pointSize );
+ }
+
+ return mFontId;
+ }
+
+ std::string mDefaultFontFamily;
+ std::string mDefaultFontStyle;
+ float mDefaultPointSize;
+ FontId mFontId;
+};
+
struct Controller::Impl
{
Impl( ControlInterface& controlInterface )
mNewText(),
mOperations( NO_OPERATION ),
mControlSize(),
+ mFontDefaults( NULL ),
mTextInput( NULL )
{
mLogicalModel = LogicalModel::New();
Size mControlSize;
+ // Avoid allocating this when the user does not specify a font
+ FontDefaults* mFontDefaults;
+
// Avoid allocating everything for text input until EnableTextInput()
Controller::TextInput* mTextInput;
};
}
}
-void Controller::GetText( std::string& text )
+void Controller::GetText( std::string& text ) const
{
if( !mImpl->mNewText.empty() )
{
}
}
+void Controller::SetDefaultFontFamily( const std::string& defaultFontFamily )
+{
+ if( !mImpl->mFontDefaults )
+ {
+ mImpl->mFontDefaults = new Controller::FontDefaults();
+ }
+
+ mImpl->mFontDefaults->mDefaultFontFamily = defaultFontFamily;
+ mImpl->mFontDefaults->mFontId = 0u; // Remove old font ID
+ mImpl->mOperations = ALL_OPERATIONS;
+}
+
+const std::string& Controller::GetDefaultFontFamily() const
+{
+ if( mImpl->mFontDefaults )
+ {
+ return mImpl->mFontDefaults->mDefaultFontFamily;
+ }
+
+ return Dali::String::EMPTY;
+}
+
+void Controller::SetDefaultFontStyle( const std::string& defaultFontStyle )
+{
+ if( !mImpl->mFontDefaults )
+ {
+ mImpl->mFontDefaults = new Controller::FontDefaults();
+ }
+
+ mImpl->mFontDefaults->mDefaultFontStyle = defaultFontStyle;
+ mImpl->mFontDefaults->mFontId = 0u; // Remove old font ID
+ mImpl->mOperations = ALL_OPERATIONS;
+}
+
+const std::string& Controller::GetDefaultFontStyle() const
+{
+ if( mImpl->mFontDefaults )
+ {
+ return mImpl->mFontDefaults->mDefaultFontStyle;
+ }
+
+ return Dali::String::EMPTY;
+}
+
+void Controller::SetDefaultPointSize( float pointSize )
+{
+ if( !mImpl->mFontDefaults )
+ {
+ mImpl->mFontDefaults = new Controller::FontDefaults();
+ }
+
+ mImpl->mFontDefaults->mDefaultPointSize = pointSize;
+ mImpl->mFontDefaults->mFontId = 0u; // Remove old font ID
+ mImpl->mOperations = ALL_OPERATIONS;
+}
+
+float Controller::GetDefaultPointSize() const
+{
+ if( mImpl->mFontDefaults )
+ {
+ return mImpl->mFontDefaults->mDefaultPointSize;
+ }
+
+ return 0.0f;
+}
+
void Controller::EnableTextInput( DecoratorPtr decorator )
{
if( !mImpl->mTextInput )
Vector<ScriptRun> scripts;
Vector<FontRun> fonts;
+
+ if( mImpl->mFontDefaults )
+ {
+ // TODO - pass into ValidateFonts
+ }
+
if( getScripts || validateFonts )
{
// Validates the fonts assigned by the application or assigns default ones.