- mImpl->mEventData->mInputStyle.width = width;
- mImpl->mEventData->mInputStyle.isWidthDefined = true;
-
- if( EventData::SELECTING == mImpl->mEventData->mState || EventData::EDITING == mImpl->mEventData->mState || EventData::INACTIVE == mImpl->mEventData->mState )
- {
- CharacterIndex startOfSelectedText = 0u;
- Length lengthOfSelectedText = 0u;
-
- if( EventData::SELECTING == mImpl->mEventData->mState )
- {
- // Update a font description run for the selecting state.
- FontDescriptionRun& fontDescriptionRun = UpdateSelectionFontStyleRun( mImpl->mEventData,
- mImpl->mModel->mLogicalModel,
- startOfSelectedText,
- lengthOfSelectedText );
-
- fontDescriptionRun.width = width;
- fontDescriptionRun.widthDefined = true;
-
- mImpl->mTextUpdateInfo.mCharacterIndex = startOfSelectedText;
- mImpl->mTextUpdateInfo.mNumberOfCharactersToRemove = lengthOfSelectedText;
- mImpl->mTextUpdateInfo.mNumberOfCharactersToAdd = lengthOfSelectedText;
- }
- else
- {
- mImpl->mTextUpdateInfo.mCharacterIndex = 0;
- mImpl->mTextUpdateInfo.mNumberOfCharactersToRemove = mImpl->mTextUpdateInfo.mPreviousNumberOfCharacters;
- mImpl->mTextUpdateInfo.mNumberOfCharactersToAdd = mImpl->mModel->mLogicalModel->mText.Count();
- }
-
- // Request to relayout.
- mImpl->mOperationsPending = static_cast<OperationsMask>( mImpl->mOperationsPending |
- VALIDATE_FONTS |
- SHAPE_TEXT |
- GET_GLYPH_METRICS |
- LAYOUT |
- UPDATE_LAYOUT_SIZE |
- REORDER |
- ALIGN );
- mImpl->mRecalculateNaturalSize = true;
- mImpl->RequestRelayout();
-
- // As the font might change, recalculate the handle positions is needed.
- mImpl->mEventData->mUpdateLeftSelectionPosition = true;
- mImpl->mEventData->mUpdateRightSelectionPosition = true;
- mImpl->mEventData->mUpdateHighlightBox = true;
- mImpl->mEventData->mScrollAfterUpdatePosition = true;
- }
- }
-}
-
-bool Controller::IsInputFontWidthDefined() const
-{
- bool defined = false;
-
- if( NULL != mImpl->mEventData )
- {
- defined = mImpl->mEventData->mInputStyle.isWidthDefined;
- }
-
- return defined;
-}
-
-FontWidth Controller::GetInputFontWidth() const
-{
- if( NULL != mImpl->mEventData )
- {
- return mImpl->mEventData->mInputStyle.width;
- }
-
- return GetDefaultFontWidth();
-}
-
-void Controller::SetInputFontSlant( FontSlant slant )
-{
- if( NULL != mImpl->mEventData )
- {
- mImpl->mEventData->mInputStyle.slant = slant;
- mImpl->mEventData->mInputStyle.isSlantDefined = true;
-
- if( EventData::SELECTING == mImpl->mEventData->mState || EventData::EDITING == mImpl->mEventData->mState || EventData::INACTIVE == mImpl->mEventData->mState )
- {
- CharacterIndex startOfSelectedText = 0u;
- Length lengthOfSelectedText = 0u;
-
- if( EventData::SELECTING == mImpl->mEventData->mState )
- {
- // Update a font description run for the selecting state.
- FontDescriptionRun& fontDescriptionRun = UpdateSelectionFontStyleRun( mImpl->mEventData,
- mImpl->mModel->mLogicalModel,
- startOfSelectedText,
- lengthOfSelectedText );
-
- fontDescriptionRun.slant = slant;
- fontDescriptionRun.slantDefined = true;
-
- mImpl->mTextUpdateInfo.mCharacterIndex = startOfSelectedText;
- mImpl->mTextUpdateInfo.mNumberOfCharactersToRemove = lengthOfSelectedText;
- mImpl->mTextUpdateInfo.mNumberOfCharactersToAdd = lengthOfSelectedText;
- }
- else
- {
- mImpl->mTextUpdateInfo.mCharacterIndex = 0;
- mImpl->mTextUpdateInfo.mNumberOfCharactersToRemove = mImpl->mTextUpdateInfo.mPreviousNumberOfCharacters;
- mImpl->mTextUpdateInfo.mNumberOfCharactersToAdd = mImpl->mModel->mLogicalModel->mText.Count();
- }
-
- // Request to relayout.
- mImpl->mOperationsPending = static_cast<OperationsMask>( mImpl->mOperationsPending |
- VALIDATE_FONTS |
- SHAPE_TEXT |
- GET_GLYPH_METRICS |
- LAYOUT |
- UPDATE_LAYOUT_SIZE |
- REORDER |
- ALIGN );
- mImpl->mRecalculateNaturalSize = true;
- mImpl->RequestRelayout();
-
- // As the font might change, recalculate the handle positions is needed.
- mImpl->mEventData->mUpdateLeftSelectionPosition = true;
- mImpl->mEventData->mUpdateRightSelectionPosition = true;
- mImpl->mEventData->mUpdateHighlightBox = true;
- mImpl->mEventData->mScrollAfterUpdatePosition = true;
- }
- }
-}
-
-bool Controller::IsInputFontSlantDefined() const
-{
- bool defined = false;
-
- if( NULL != mImpl->mEventData )
- {
- defined = mImpl->mEventData->mInputStyle.isSlantDefined;
- }
-
- return defined;
-}
-
-FontSlant Controller::GetInputFontSlant() const
-{
- if( NULL != mImpl->mEventData )
- {
- return mImpl->mEventData->mInputStyle.slant;
- }
-
- return GetDefaultFontSlant();
-}
-
-void Controller::SetInputFontPointSize( float size )
-{
- if( NULL != mImpl->mEventData )
- {
- mImpl->mEventData->mInputStyle.size = size;
- mImpl->mEventData->mInputStyle.isSizeDefined = true;
-
- if( EventData::SELECTING == mImpl->mEventData->mState || EventData::EDITING == mImpl->mEventData->mState || EventData::INACTIVE == mImpl->mEventData->mState )
- {
- CharacterIndex startOfSelectedText = 0u;
- Length lengthOfSelectedText = 0u;
-
- if( EventData::SELECTING == mImpl->mEventData->mState )
- {
- // Update a font description run for the selecting state.
- FontDescriptionRun& fontDescriptionRun = UpdateSelectionFontStyleRun( mImpl->mEventData,
- mImpl->mModel->mLogicalModel,
- startOfSelectedText,
- lengthOfSelectedText );
-
- fontDescriptionRun.size = static_cast<PointSize26Dot6>( size * 64.f );
- fontDescriptionRun.sizeDefined = true;
-
- mImpl->mTextUpdateInfo.mCharacterIndex = startOfSelectedText;
- mImpl->mTextUpdateInfo.mNumberOfCharactersToRemove = lengthOfSelectedText;
- mImpl->mTextUpdateInfo.mNumberOfCharactersToAdd = lengthOfSelectedText;
- }
- else
- {
- mImpl->mTextUpdateInfo.mCharacterIndex = 0;
- mImpl->mTextUpdateInfo.mNumberOfCharactersToRemove = mImpl->mTextUpdateInfo.mPreviousNumberOfCharacters;
- mImpl->mTextUpdateInfo.mNumberOfCharactersToAdd = mImpl->mModel->mLogicalModel->mText.Count();
- }
-
- // Request to relayout.
- mImpl->mOperationsPending = static_cast<OperationsMask>( mImpl->mOperationsPending |
- VALIDATE_FONTS |
- SHAPE_TEXT |
- GET_GLYPH_METRICS |
- LAYOUT |
- UPDATE_LAYOUT_SIZE |
- REORDER |
- ALIGN );
- mImpl->mRecalculateNaturalSize = true;
- mImpl->RequestRelayout();
-
- // As the font might change, recalculate the handle positions is needed.
- mImpl->mEventData->mUpdateLeftSelectionPosition = true;
- mImpl->mEventData->mUpdateRightSelectionPosition = true;
- mImpl->mEventData->mUpdateHighlightBox = true;
- mImpl->mEventData->mScrollAfterUpdatePosition = true;
- }
- }
-}
-
-float Controller::GetInputFontPointSize() const
-{
- if( NULL != mImpl->mEventData )
- {
- return mImpl->mEventData->mInputStyle.size;
- }
-
- // Return the default font's point size if there is no EventData.
- return GetDefaultFontSize( Text::Controller::POINT_SIZE );
-}
-
-void Controller::SetInputLineSpacing( float lineSpacing )
-{
- if( NULL != mImpl->mEventData )
- {
- mImpl->mEventData->mInputStyle.lineSpacing = lineSpacing;
- mImpl->mEventData->mInputStyle.isLineSpacingDefined = true;
- }
-}
-
-float Controller::GetInputLineSpacing() const
-{
- if( NULL != mImpl->mEventData )
- {
- return mImpl->mEventData->mInputStyle.lineSpacing;
- }
-
- return 0.f;
-}
-
-void Controller::SetInputShadowProperties( const std::string& shadowProperties )
-{
- if( NULL != mImpl->mEventData )
- {
- mImpl->mEventData->mInputStyle.shadowProperties = shadowProperties;
- }
-}
-
-const std::string& Controller::GetInputShadowProperties() const
-{
- if( NULL != mImpl->mEventData )
- {
- return mImpl->mEventData->mInputStyle.shadowProperties;
- }