Index: i18npool/source/transliteration/makefile.mk =================================================================== --- i18npool/source/transliteration/makefile.mk (revision 268546) +++ i18npool/source/transliteration/makefile.mk (working copy) @@ -78,7 +78,8 @@ $(SLO)$/numtochar.obj \ $(SLO)$/numtotext_cjk.obj \ $(SLO)$/chartonum.obj \ - $(SLO)$/texttonum.obj + $(SLO)$/texttonum.obj \ + $(SLO)$/sentenceCase.obj # --- Targets ------------------------------------------------------ Index: i18npool/source/registerservices/registerservices.cxx =================================================================== --- i18npool/source/registerservices/registerservices.cxx (revision 268546) +++ i18npool/source/registerservices/registerservices.cxx (working copy) @@ -173,6 +173,7 @@ IMPL_CREATEINSTANCE( Transliteration_u2l ) IMPL_CREATEINSTANCE( Transliteration_l2u ) +IMPL_CREATEINSTANCE( sentencecase ) IMPL_CREATEINSTANCE( Transliteration_caseignore ) IMPL_CREATEINSTANCE( hiraganaToKatakana ) IMPL_CREATEINSTANCE( katakanaToHiragana ) @@ -423,6 +424,9 @@ TRLT_IMPLNAME_PREFIX "LOWERCASE_UPPERCASE", &Transliteration_l2u_CreateInstance }, { TRLT_SERVICELNAME_L10N, + TRLT_IMPLNAME_PREFIX "SENTENCE_CASE", + &sentencecase_CreateInstance }, + { TRLT_SERVICELNAME_L10N, TRLT_IMPLNAME_PREFIX "IGNORE_CASE", &Transliteration_caseignore_CreateInstance }, { TRLT_SERVICELNAME_L10N, Index: i18npool/source/localedata/data/en_US.xml =================================================================== --- i18npool/source/localedata/data/en_US.xml (revision 268546) +++ i18npool/source/localedata/data/en_US.xml (working copy) @@ -477,6 +477,7 @@ + Index: i18npool/inc/transliteration_OneToOne.hxx =================================================================== --- i18npool/inc/transliteration_OneToOne.hxx (revision 268546) +++ i18npool/inc/transliteration_OneToOne.hxx (working copy) @@ -83,7 +83,9 @@ throw(com::sun::star::uno::RuntimeException, \ com::sun::star::i18n::MultipleCharsOutputException); \ }; - +#if defined( TRANSLITERATION_sentencecase ) || defined( TRANSLITERATION_ALL ) +TRANSLITERATION_ONETOONE( sentencecase ) +#endif #if defined( TRANSLITERATION_fullwidthToHalfwidth ) || defined( TRANSLITERATION_ALL ) TRANSLITERATION_ONETOONE( fullwidthToHalfwidth ) #endif Index: i18npool/inc/servicename.hxx =================================================================== --- i18npool/inc/servicename.hxx (revision 268546) +++ i18npool/inc/servicename.hxx (working copy) @@ -74,6 +74,7 @@ #define TRLT_SERVICELNAME_PREFIX TRLT_SERVICELNAME "." #define TRLT_SERVICELNAME_U2L TRLT_SERVICELNAME_PREFIX "u2l" #define TRLT_SERVICELNAME_L2U TRLT_SERVICELNAME_PREFIX "l2u" +#define TRLT_SERVICELNAME_SENTENCECASE TRLT_SERVICELNAME_PREFIX "sentencecase" #define TRLT_SERVICELNAME_CASEIGNORE TRLT_SERVICELNAME_PREFIX "caseignore" #define TRLT_SERVICELNAME_L10N TRLT_SERVICELNAME_PREFIX "l10n" Index: starmath/sdi/svxitems.sdi =================================================================== --- starmath/sdi/svxitems.sdi (revision 268546) +++ starmath/sdi/svxitems.sdi (working copy) @@ -48,6 +48,7 @@ SVX_CASEMAP_VERSALIEN, SVX_CASEMAP_GEMEINE, SVX_CASEMAP_TITEL, + SVX_CASEMAP_SENTENCE, SVX_CASEMAP_KAPITAELCHEN, SVX_CASEMAP_END }; Index: sw/sdi/_textsh.sdi =================================================================== --- sw/sdi/_textsh.sdi (revision 268546) +++ sw/sdi/_textsh.sdi (working copy) @@ -1495,6 +1495,12 @@ StateMethod = NoState ; DisableFlags="SW_DISABLE_ON_PROTECTED_CURSOR"; ] + SID_TRANSLITERATE_SENTENCE_CASE + [ + ExecMethod = ExecTransliteration; + StateMethod = NoState ; + DisableFlags="SW_DISABLE_ON_PROTECTED_CURSOR"; + ] SID_TRANSLITERATE_HALFWIDTH [ ExecMethod = ExecTransliteration; Index: sw/source/core/edit/editsh.cxx =================================================================== --- sw/source/core/edit/editsh.cxx (revision 268546) +++ sw/source/core/edit/editsh.cxx (working copy) @@ -1179,6 +1179,31 @@ EndAllAction(); } +void SwEditShell::TransliterateText( const String& moduleName ) +{ + utl::TransliterationWrapper aTrans(::comphelper::getProcessServiceFactory(), 0 ); + aTrans.loadModuleByImplName( moduleName, LANGUAGE_SYSTEM ); + StartAllAction(); + SET_CURR_SHELL( this ); + + SwPaM* pCrsr = GetCrsr(); + if( pCrsr->GetNext() != pCrsr ) + { + GetDoc()->StartUndo(UNDO_EMPTY, NULL); + FOREACHPAM_START( this ) + + if( PCURCRSR->HasMark() ) + GetDoc()->TransliterateText( *PCURCRSR, aTrans ); + + FOREACHPAM_END() + GetDoc()->EndUndo(UNDO_EMPTY, NULL); + } + else + GetDoc()->TransliterateText( *pCrsr, aTrans ); + + EndAllAction(); +} + void SwEditShell::CountWords( SwDocStat& rStat ) const { FOREACHPAM_START( this ) Index: sw/source/ui/shells/textsh.cxx =================================================================== --- sw/source/ui/shells/textsh.cxx (revision 268546) +++ sw/source/ui/shells/textsh.cxx (working copy) @@ -1052,7 +1052,9 @@ case SID_TRANSLITERATE_LOWER: nMode = TransliterationModules_UPPERCASE_LOWERCASE; break; - + case SID_TRANSLITERATE_SENTENCE_CASE: + GetShell().TransliterateText( String::CreateFromAscii("SENTENCE_CASE") ); + break; case SID_TRANSLITERATE_HALFWIDTH: nMode = TransliterationModules_FULLWIDTH_HALFWIDTH; break; Index: sw/source/ui/config/modcfg.cxx =================================================================== --- sw/source/ui/config/modcfg.cxx (revision 268546) +++ sw/source/ui/config/modcfg.cxx (working copy) @@ -328,6 +328,7 @@ case SVX_CASEMAP_GEMEINE : nRet = 6;break; case SVX_CASEMAP_KAPITAELCHEN: nRet = 7;break; case SVX_CASEMAP_TITEL : nRet = 8;break; + case SVX_CASEMAP_SENTENCE : nRet = 10;break; } } break; @@ -386,6 +387,7 @@ case 6: rAttr.nItemId = SID_ATTR_CHAR_CASEMAP; rAttr.nAttr = SVX_CASEMAP_GEMEINE ; break; case 7: rAttr.nItemId = SID_ATTR_CHAR_CASEMAP; rAttr.nAttr = SVX_CASEMAP_KAPITAELCHEN ; break; case 8: rAttr.nItemId = SID_ATTR_CHAR_CASEMAP; rAttr.nAttr = SVX_CASEMAP_TITEL ; break; + case 10:rAttr.nItemId = SID_ATTR_CHAR_CASEMAP; rAttr.nAttr = SVX_CASEMAP_SENTENCE ; break; case 9: rAttr.nItemId = SID_ATTR_BRUSH; break; } } Index: sw/source/ui/config/optpage.cxx =================================================================== --- sw/source/ui/config/optpage.cxx (revision 268546) +++ sw/source/ui/config/optpage.cxx (working copy) @@ -1700,6 +1700,7 @@ { SID_ATTR_CHAR_CASEMAP, SVX_CASEMAP_GEMEINE }, { SID_ATTR_CHAR_CASEMAP, SVX_CASEMAP_KAPITAELCHEN }, { SID_ATTR_CHAR_CASEMAP, SVX_CASEMAP_TITEL }, + { SID_ATTR_CHAR_CASEMAP, SVX_CASEMAP_SENTENCE }, { SID_ATTR_BRUSH, 0 } }; Index: sw/uiconfig/swriter/menubar/menubar.xml =================================================================== --- sw/uiconfig/swriter/menubar/menubar.xml (revision 268546) +++ sw/uiconfig/swriter/menubar/menubar.xml (working copy) @@ -221,6 +221,7 @@ + Index: sw/inc/editsh.hxx =================================================================== --- sw/inc/editsh.hxx (revision 268546) +++ sw/inc/editsh.hxx (working copy) @@ -201,6 +201,7 @@ // change text to Upper/Lower/Hiragana/Katagana/... void TransliterateText( sal_uInt32 nType ); + void TransliterateText( const String& moduleName ); // count words in current selection void CountWords( SwDocStat& rStat ) const; Index: offapi/com/sun/star/style/CaseMap.idl =================================================================== --- offapi/com/sun/star/style/CaseMap.idl (revision 268546) +++ offapi/com/sun/star/style/CaseMap.idl (working copy) @@ -78,6 +78,9 @@ */ const short SMALLCAPS = 4; + /** The first character of each first word of each sentence is put in upper case. + */ + const short SENTENCE = 5; }; //============================================================================= Index: configmgr/qa/unit/data/org/openoffice/UI/GenericCommands.xcu =================================================================== --- configmgr/qa/unit/data/org/openoffice/UI/GenericCommands.xcu (revision 268546) +++ configmgr/qa/unit/data/org/openoffice/UI/GenericCommands.xcu (working copy) @@ -2097,6 +2097,11 @@ ~Lowercase + + + ~Sentence Case + + H~alf-width Index: binfilter/bf_svx/source/items/svx_textitem.cxx =================================================================== --- binfilter/bf_svx/source/items/svx_textitem.cxx (revision 268546) +++ binfilter/bf_svx/source/items/svx_textitem.cxx (working copy) @@ -1607,6 +1607,7 @@ /*N*/ case SVX_CASEMAP_VERSALIEN : nRet = style::CaseMap::UPPERCASE; break; /*?*/ case SVX_CASEMAP_GEMEINE : nRet = style::CaseMap::LOWERCASE; break; /*N*/ case SVX_CASEMAP_TITEL : nRet = style::CaseMap::TITLE ; break; +/*N*/ case SVX_CASEMAP_SENTENCE : nRet = style::CaseMap::SENTENCE ; break; /*N*/ case SVX_CASEMAP_KAPITAELCHEN: nRet = style::CaseMap::SMALLCAPS; break; /*N*/ } /*N*/ rVal <<= (sal_Int16)(nRet); @@ -1627,6 +1628,7 @@ /*N*/ case style::CaseMap::UPPERCASE: nVal = SVX_CASEMAP_VERSALIEN ; break; /*?*/ case style::CaseMap::LOWERCASE: nVal = SVX_CASEMAP_GEMEINE ; break; /*N*/ case style::CaseMap::TITLE : nVal = SVX_CASEMAP_TITEL ; break; +/*N*/ case style::CaseMap::SENTENCE : nVal = SVX_CASEMAP_SENTENCE ; break; /*N*/ case style::CaseMap::SMALLCAPS: nVal = SVX_CASEMAP_KAPITAELCHEN; break; /*N*/ } /*N*/ SetValue(nVal); Index: binfilter/bf_svx/source/items/svx_svxfont.cxx =================================================================== --- binfilter/bf_svx/source/items/svx_svxfont.cxx (revision 268546) +++ binfilter/bf_svx/source/items/svx_svxfont.cxx (working copy) @@ -153,6 +153,35 @@ /*?*/ } /*?*/ break; /*?*/ } +/*?*/ case SVX_CASEMAP_SENTENCE: +/*?*/ { +/*?*/ // SENTENCE CASE +/*?*/ BOOL bPoint = TRUE; +/*?*/ +/*?*/ for( USHORT i = 0; i < aTxt.Len(); ++i ) +/*?*/ { +/*?*/ sal_Unicode c = aTxt.GetChar(i); +/*?*/ if( sal_Unicode('.') == c || sal_Unicode('!') == c || sal_Unicode('?') == c ) +/*?*/ bPoint = TRUE; +/*?*/ else if( sal_Unicode(' ') == c || sal_Unicode('\t') == c ) +/*?*/ ; +/*?*/ else +/*?*/ { +/*?*/ String aTemp( c ); +/*?*/ if( bPoint ) +/*?*/ { +/*?*/ aCharClass.toUpper( aTemp ); +/*?*/ bPoint = FALSE; +/*?*/ } +/*?*/ else +/*?*/ { +/*?*/ aCharClass.toLower( aTemp ); +/*?*/ } +/*?*/ aTxt.Replace( i, 1, aTemp ); +/*?*/ } +/*?*/ } +/*?*/ break; +/*?*/ } /*?*/ default: /*?*/ { /*?*/ DBG_ASSERT(!this, "SvxFont::CaseMapTxt: unknown casemap"); Index: binfilter/bf_sw/source/ui/config/sw_modcfg.cxx =================================================================== --- binfilter/bf_sw/source/ui/config/sw_modcfg.cxx (revision 268546) +++ binfilter/bf_sw/source/ui/config/sw_modcfg.cxx (working copy) @@ -280,6 +280,7 @@ /*?*/ case 6: rAttr.nItemId = SID_ATTR_CHAR_CASEMAP; rAttr.nAttr = SVX_CASEMAP_GEMEINE ; break; /*?*/ case 7: rAttr.nItemId = SID_ATTR_CHAR_CASEMAP; rAttr.nAttr = SVX_CASEMAP_KAPITAELCHEN ; break; /*?*/ case 8: rAttr.nItemId = SID_ATTR_CHAR_CASEMAP; rAttr.nAttr = SVX_CASEMAP_TITEL ; break; +/*?*/ case 10:rAttr.nItemId = SID_ATTR_CHAR_CASEMAP; rAttr.nAttr = SVX_CASEMAP_SENTENCE ; break; /*?*/ case 9: rAttr.nItemId = SID_ATTR_BRUSH; break; /*N*/ } /*N*/ } Index: binfilter/inc/bf_svx/svxids.hrc =================================================================== --- binfilter/inc/bf_svx/svxids.hrc (revision 268546) +++ binfilter/inc/bf_svx/svxids.hrc (working copy) @@ -56,7 +56,7 @@ //#endif // Slot-Id's -#define SID_SVX_FIRSTFREE 960 +#define SID_SVX_FIRSTFREE 961 #define SID_SVX_END (SID_LIB_START + 1199) // Function-Id's @@ -314,6 +314,7 @@ // Slot-IDs for transliteration: -------------------------------------------- #define SID_TRANSLITERATE_UPPER (SID_SVX_START + 912) #define SID_TRANSLITERATE_LOWER (SID_SVX_START + 913) +#define SID_TRANSLITERATE_SENTENCE_CASE (SID_SVX_START + 960) #define SID_TRANSLITERATE_HALFWIDTH (SID_SVX_START + 914) #define SID_TRANSLITERATE_FULLWIDTH (SID_SVX_START + 915) #define SID_TRANSLITERATE_HIRAGANA (SID_SVX_START + 916) Index: binfilter/inc/bf_svx/globlmn.hrc =================================================================== --- binfilter/inc/bf_svx/globlmn.hrc (revision 268546) +++ binfilter/inc/bf_svx/globlmn.hrc (working copy) @@ -5387,6 +5387,38 @@ };\ MenuItem\ {\ + Identifier = SID_TRANSLITERATE_SENTENCE_CASE; \ + Command = ".uno:ChangeCaseToSentenceCase" ; \ + HelpID = SID_TRANSLITERATE_SENTENCE_CASE; \ + Text [ de ] = "~Kleinbuchstaben" ; \ + Text [ en-US ] = "~Sentence Case";\ + Text[ pt ] = "Mi~núsculas";\ + Text[ ru ] = "~Строчные буквы";\ + Text[ el ] = "Πεζά";\ + Text[ nl ] = "~Kleine letters";\ + Text[ fr ] = "Mi~nuscules";\ + Text[ es ] = "~Minúsculas";\ + Text[ fi ] = "~Pienet kirjaimet";\ + Text[ ca ] = "M~inúscules";\ + Text[ it ] = "Minuscole";\ + Text[ cs ] = "Malá písmena";\ + Text[ sk ] = "~Malé písmo";\ + Text[ da ] = "~Små bogstaver";\ + Text[ sv ] = "Små bo~kstäver";\ + Text[ pl ] = "~Małe litery";\ + Text[ pt-BR ] = "~Minúsculas";\ + Text[ th ] = "ตัวพิมพ์เ~ล็ก";\ + Text[ ja ] = "小文字(~L)";\ + Text[ ko ] = "소문자(~L)";\ + Text[ zh-CN ] = "小写字母(~L)";\ + Text[ zh-TW ] = "小寫字母(~L)";\ + Text[ tr ] = "~Küçük Harf";\ + Text[ hi-IN ] = "~लोवरकेस";\ + Text[ ar ] = "أحرف صغيرة";\ + Text[ he ] = "‮אותיות קטנות‬";\ + };\ + MenuItem\ + {\ Identifier = SID_TRANSLITERATE_HALFWIDTH; \ Command = ".uno:ChangeCaseToHalfWidth" ; \ HelpID = SID_TRANSLITERATE_HALFWIDTH; \ Index: binfilter/inc/bf_svx/svxenum.hxx =================================================================== --- binfilter/inc/bf_svx/svxenum.hxx (revision 268546) +++ binfilter/inc/bf_svx/svxenum.hxx (working copy) @@ -40,6 +40,7 @@ SVX_CASEMAP_GEMEINE, SVX_CASEMAP_TITEL, SVX_CASEMAP_KAPITAELCHEN, + SVX_CASEMAP_SENTENCE, SVX_CASEMAP_END }; Index: unotools/source/i18n/transliterationwrapper.cxx =================================================================== --- unotools/source/i18n/transliterationwrapper.cxx (revision 268546) +++ unotools/source/i18n/transliterationwrapper.cxx (working copy) @@ -51,7 +51,7 @@ TransliterationWrapper::TransliterationWrapper( const Reference< XMultiServiceFactory > & xSF, sal_uInt32 nTyp ) - : xSMgr( xSF ), nType( nTyp ), nLanguage( 0 ), bFirstCall( sal_True ) + : xSMgr( xSF ), nType( nTyp ), nLanguage( 0 ), bModuleLoadedByName( sal_False ), bFirstCall( sal_True ) { if( xSMgr.is() ) { @@ -107,7 +107,8 @@ { try { - loadModuleIfNeeded( nLang ); + if ( !bModuleLoadedByName ) + loadModuleIfNeeded( nLang ); if ( pOffset ) sRet = xTrans->transliterate( rStr, nStart, nLen, *pOffset ); @@ -187,8 +188,10 @@ try { if ( xTrans.is() ) - xTrans->loadModule( (TransliterationModules)nType, aLocale ); - } + { + xTrans->loadModule( (TransliterationModules)nType, aLocale ); + } + } catch ( Exception& e ) { #ifndef PRODUCT @@ -213,9 +216,11 @@ // Reset LanguageType, so the next call to loadModuleIfNeeded() forces // new settings. nLanguage = LANGUAGE_DONTKNOW; - if ( xTrans.is() ) + if ( xTrans.is() ) { xTrans->loadModuleByImplName( rModuleName, aLocale ); - } + bModuleLoadedByName = sal_True; + } + } catch ( Exception& e ) { #ifndef PRODUCT Index: unotools/inc/unotools/transliterationwrapper.hxx =================================================================== --- unotools/inc/unotools/transliterationwrapper.hxx (revision 268546) +++ unotools/inc/unotools/transliterationwrapper.hxx (working copy) @@ -53,6 +53,7 @@ ::com::sun::star::lang::Locale aLocale; sal_uInt32 nType; sal_uInt16 nLanguage; + sal_Bool bModuleLoadedByName; mutable sal_Bool bFirstCall; // not implemented, prevent usage Index: officecfg/registry/data/org/openoffice/Office/UI/GenericCommands.xcu =================================================================== --- officecfg/registry/data/org/openoffice/Office/UI/GenericCommands.xcu (revision 268546) +++ officecfg/registry/data/org/openoffice/Office/UI/GenericCommands.xcu (working copy) @@ -2122,6 +2122,14 @@ 1 + + + ~Sentence case + + + 1 + + H~alf-width Index: svx/sdi/svxitems.sdi =================================================================== --- svx/sdi/svxitems.sdi (revision 268546) +++ svx/sdi/svxitems.sdi (working copy) @@ -170,6 +170,7 @@ SVX_CASEMAP_VERSALIEN, SVX_CASEMAP_GEMEINE, SVX_CASEMAP_TITEL, + SVX_CASEMAP_SENTENCE, SVX_CASEMAP_KAPITAELCHEN, SVX_CASEMAP_END }; Index: svx/sdi/svx.sdi =================================================================== --- svx/sdi/svx.sdi (revision 268546) +++ svx/sdi/svx.sdi (working copy) @@ -1483,6 +1483,31 @@ ] //-------------------------------------------------------------------------- +SfxVoidItem ChangeCaseToSentenceCase SID_TRANSLITERATE_SENTENCE_CASE +() +[ + /* flags: */ + AutoUpdate = TRUE, + Cachable = Cachable, + FastCall = TRUE, + HasCoreId = FALSE, + HasDialog = FALSE, + ReadOnlyDoc = FALSE, + Toggle = FALSE, + Container = FALSE, + RecordAbsolute = FALSE, + RecordPerSet; + Asynchron; + + /* config: */ + AccelConfig = TRUE, + MenuConfig = TRUE, + StatusBarConfig = FALSE, + ToolBoxConfig = TRUE, + GroupId = GID_FORMAT; +] + +//-------------------------------------------------------------------------- SfxVoidItem ChangeCaseToUpper SID_TRANSLITERATE_UPPER () [ Index: svx/source/items/svxfont.cxx =================================================================== --- svx/source/items/svxfont.cxx (revision 268546) +++ svx/source/items/svxfont.cxx (working copy) @@ -176,15 +176,47 @@ bBlank = TRUE; else { + String aTemp( aTxt.GetChar( i ) ); if( bBlank ) + { + aCharClass.toUpper( aTemp ); + bBlank = FALSE; + + } + else { - String aTemp( aTxt.GetChar( i ) ); + aCharClass.toLower( aTemp ); + } + aTxt.Replace( i, 1, aTemp ); + + } + } + break; + } + case SVX_CASEMAP_SENTENCE: + { + // SENTENCE CASE + BOOL bPoint = TRUE; + + for( USHORT i = 0; i < aTxt.Len(); ++i ) + { + sal_Unicode c = aTxt.GetChar(i); + if( sal_Unicode('.') == c || sal_Unicode('!') == c || sal_Unicode('?') == c ) + bPoint = TRUE; + else if( sal_Unicode(' ') == c || sal_Unicode('\t') == c ) + ; + else + { + if( bPoint ) + { + String aTemp( c ); aCharClass.toUpper( aTemp ); aTxt.Replace( i, 1, aTemp ); } - bBlank = FALSE; + bPoint = FALSE; } } + break; } default: Index: svx/source/items/textitem.cxx =================================================================== --- svx/source/items/textitem.cxx (revision 268546) +++ svx/source/items/textitem.cxx (working copy) @@ -2378,6 +2378,7 @@ case SVX_CASEMAP_VERSALIEN : nRet = style::CaseMap::UPPERCASE; break; case SVX_CASEMAP_GEMEINE : nRet = style::CaseMap::LOWERCASE; break; case SVX_CASEMAP_TITEL : nRet = style::CaseMap::TITLE ; break; + case SVX_CASEMAP_SENTENCE : nRet = style::CaseMap::SENTENCE ; break; case SVX_CASEMAP_KAPITAELCHEN: nRet = style::CaseMap::SMALLCAPS; break; } rVal <<= (sal_Int16)(nRet); @@ -2398,6 +2399,7 @@ case style::CaseMap::UPPERCASE: nVal = SVX_CASEMAP_VERSALIEN ; break; case style::CaseMap::LOWERCASE: nVal = SVX_CASEMAP_GEMEINE ; break; case style::CaseMap::TITLE : nVal = SVX_CASEMAP_TITEL ; break; + case style::CaseMap::SENTENCE : nVal = SVX_CASEMAP_SENTENCE ; break; case style::CaseMap::SMALLCAPS: nVal = SVX_CASEMAP_KAPITAELCHEN; break; } SetValue(nVal); Index: svx/source/dialog/chardlg.src =================================================================== --- svx/source/dialog/chardlg.src (revision 268546) +++ svx/source/dialog/chardlg.src (working copy) @@ -402,6 +402,7 @@ < "Lowercase" ; Default ; > ; < "Title" ; Default ; > ; < "Small capitals" ; Default ; > ; + < "Sentence" ; Default ; > ; }; }; FixedText FT_RELIEF Index: svx/inc/globlmn_tmpl.hrc =================================================================== --- svx/inc/globlmn_tmpl.hrc (revision 268546) +++ svx/inc/globlmn_tmpl.hrc (working copy) @@ -1355,6 +1355,13 @@ };\ MenuItem\ {\ + Identifier = SID_TRANSLITERATE_SENTENCE_CASE; \ + Command = ".uno:ChangeCaseToSentenceCase" ; \ + HelpID = SID_TRANSLITERATE_SENTENCE_CASE; \ + Text [ en-US ] = "~Sentence case";\ + };\ + MenuItem\ + {\ Identifier = SID_TRANSLITERATE_HALFWIDTH; \ Command = ".uno:ChangeCaseToHalfWidth" ; \ HelpID = SID_TRANSLITERATE_HALFWIDTH; \ Index: svx/inc/svx/svxids.hrc =================================================================== --- svx/inc/svx/svxids.hrc (revision 268546) +++ svx/inc/svx/svxids.hrc (working copy) @@ -1348,8 +1348,10 @@ #define SID_RECHECK_DOCUMENT (SID_SVX_START+1091) #define SID_ATTR_PARA_OUTLINE_LEVEL (SID_SVX_START+1092) +#define SID_TRANSLITERATE_SENTENCE_CASE ( SID_SVX_START + 1093 ) + // IMPORTANT NOTE: adjust SID_SVX_FIRSTFREE, when adding new slot id -#define SID_SVX_FIRSTFREE SID_ATTR_PARA_OUTLINE_LEVEL + 1 +#define SID_SVX_FIRSTFREE SID_TRANSLITERATE_SENTENCE_CASE + 1 // -------------------------------------------------------------------------- // Overflow check for slot IDs Index: svx/inc/svx/svxenum.hxx =================================================================== --- svx/inc/svx/svxenum.hxx (revision 268546) +++ svx/inc/svx/svxenum.hxx (working copy) @@ -39,6 +39,7 @@ SVX_CASEMAP_GEMEINE, SVX_CASEMAP_TITEL, SVX_CASEMAP_KAPITAELCHEN, + SVX_CASEMAP_SENTENCE, SVX_CASEMAP_END };