diff options
author | Caolán McNamara <caolanm@redhat.com> | 2011-03-29 21:07:59 +0100 |
---|---|---|
committer | Caolán McNamara <caolanm@redhat.com> | 2011-03-30 15:57:14 +0100 |
commit | 69bb4422b7e17b1aedc07ec99084b193f97f6374 (patch) | |
tree | 7ad8050f9f1f1a2481c1145ab15a20a4bce776a5 /sw | |
parent | b0687b60b683723b713789e2e746a908a012e63f (diff) |
centralize caserotate and add to other shells
Diffstat (limited to 'sw')
-rw-r--r-- | sw/sdi/annotsh.sdi | 7 | ||||
-rw-r--r-- | sw/sdi/drwtxtsh.sdi | 6 | ||||
-rw-r--r-- | sw/source/ui/inc/annotsh.hxx | 3 | ||||
-rw-r--r-- | sw/source/ui/inc/drwtxtsh.hxx | 3 | ||||
-rw-r--r-- | sw/source/ui/inc/textsh.hxx | 3 | ||||
-rw-r--r-- | sw/source/ui/shells/annotsh.cxx | 93 | ||||
-rw-r--r-- | sw/source/ui/shells/drwtxtsh.cxx | 98 | ||||
-rw-r--r-- | sw/source/ui/shells/textsh.cxx | 100 |
8 files changed, 174 insertions, 139 deletions
diff --git a/sw/sdi/annotsh.sdi b/sw/sdi/annotsh.sdi index 349e17b9d985..a2417079bb0b 100644 --- a/sw/sdi/annotsh.sdi +++ b/sw/sdi/annotsh.sdi @@ -199,6 +199,13 @@ interface Annotation : _Annotation DisableFlags="SW_DISABLE_ON_PROTECTED_CURSOR"; ] + SID_TRANSLITERATE_ROTATE_CASE + [ + ExecMethod = ExecRotateTransliteration; + StateMethod = NoState ; + DisableFlags="SW_DISABLE_ON_PROTECTED_CURSOR"; + ] + SID_TRANSLITERATE_UPPER [ ExecMethod = ExecTransliteration; diff --git a/sw/sdi/drwtxtsh.sdi b/sw/sdi/drwtxtsh.sdi index d98d368a9460..27263af8f87c 100644 --- a/sw/sdi/drwtxtsh.sdi +++ b/sw/sdi/drwtxtsh.sdi @@ -496,6 +496,12 @@ interface TextDrawText StateMethod = NoState ; DisableFlags="SW_DISABLE_ON_PROTECTED_CURSOR"; ] + SID_TRANSLITERATE_ROTATE_CASE + [ + ExecMethod = ExecRotateTransliteration; + StateMethod = NoState ; + DisableFlags="SW_DISABLE_ON_PROTECTED_CURSOR"; + ] SID_TRANSLITERATE_UPPER [ ExecMethod = ExecTransliteration; diff --git a/sw/source/ui/inc/annotsh.hxx b/sw/source/ui/inc/annotsh.hxx index 12de8a18618b..b70b23d6f8ed 100644 --- a/sw/source/ui/inc/annotsh.hxx +++ b/sw/source/ui/inc/annotsh.hxx @@ -31,11 +31,13 @@ #include <sfx2/shell.hxx> #include "shellid.hxx" #include "swmodule.hxx" +#include <unotools/caserotate.hxx> class SwView; class SwAnnotationShell: public SfxShell { SwView& rView; + RotateTransliteration m_aRotateCase; public: SFX_DECL_INTERFACE(SW_ANNOTATIONSHELL) @@ -60,6 +62,7 @@ public: void StateClpbrd(SfxItemSet &rSet); void ExecTransliteration(SfxRequest &); + void ExecRotateTransliteration(SfxRequest &); void ExecUndo(SfxRequest &rReq); void StateUndo(SfxItemSet &rSet); diff --git a/sw/source/ui/inc/drwtxtsh.hxx b/sw/source/ui/inc/drwtxtsh.hxx index 493a8ede30de..46efceaf2bef 100644 --- a/sw/source/ui/inc/drwtxtsh.hxx +++ b/sw/source/ui/inc/drwtxtsh.hxx @@ -30,6 +30,7 @@ #include <sfx2/shell.hxx> #include "shellid.hxx" +#include <unotools/caserotate.hxx> class SdrView; class SwView; @@ -39,6 +40,7 @@ class SfxModule; class SwDrawTextShell: public SfxShell { SwView &rView; + RotateTransliteration m_aRotateCase; SdrView *pSdrView; @@ -79,6 +81,7 @@ public: void StateClpbrd(SfxItemSet &rSet); void StateInsert(SfxItemSet &rSet); void ExecTransliteration(SfxRequest &); + void ExecRotateTransliteration(SfxRequest &); void Init(); void StateStatusline(SfxItemSet &rSet); diff --git a/sw/source/ui/inc/textsh.hxx b/sw/source/ui/inc/textsh.hxx index e0fd62e5a9df..31a545ae65d6 100644 --- a/sw/source/ui/inc/textsh.hxx +++ b/sw/source/ui/inc/textsh.hxx @@ -30,6 +30,7 @@ #define _SWTEXTSH_HXX #include <basesh.hxx> +#include <unotools/caserotate.hxx> class AbstractSvxPostItDialog; class SwFldMgr; @@ -38,7 +39,7 @@ class SvxHyperlinkItem; class SwTextShell: public SwBaseShell { SwFldMgr* pPostItFldMgr; - sal_uInt32 nF3ShiftCounter; + RotateTransliteration m_aRotateCase; void InsertSymbol( SfxRequest& ); void InsertHyperlink(const SvxHyperlinkItem& rHlnkItem); diff --git a/sw/source/ui/shells/annotsh.cxx b/sw/source/ui/shells/annotsh.cxx index fa80e015f081..1753f9b2dd9a 100644 --- a/sw/source/ui/shells/annotsh.cxx +++ b/sw/source/ui/shells/annotsh.cxx @@ -1292,53 +1292,70 @@ void SwAnnotationShell::GetLinguState(SfxItemSet &rSet) void SwAnnotationShell::ExecTransliteration(SfxRequest &rReq) { SwPostItMgr* pPostItMgr = rView.GetPostItMgr(); - if ( !pPostItMgr || !pPostItMgr->HasActiveSidebarWin() ) + if (!pPostItMgr || !pPostItMgr->HasActiveSidebarWin()) return; OutlinerView* pOLV = pPostItMgr->GetActiveSidebarWin()->GetOutlinerView(); + if (!pOLV) + return; + using namespace ::com::sun::star::i18n; + + sal_uInt32 nMode = 0; + + switch( rReq.GetSlot() ) { - sal_uInt32 nMode = 0; + case SID_TRANSLITERATE_SENTENCE_CASE: + nMode = TransliterationModulesExtra::SENTENCE_CASE; + break; + case SID_TRANSLITERATE_TITLE_CASE: + nMode = TransliterationModulesExtra::TITLE_CASE; + break; + case SID_TRANSLITERATE_TOGGLE_CASE: + nMode = TransliterationModulesExtra::TOGGLE_CASE; + break; + case SID_TRANSLITERATE_UPPER: + nMode = TransliterationModules_LOWERCASE_UPPERCASE; + break; + case SID_TRANSLITERATE_LOWER: + nMode = TransliterationModules_UPPERCASE_LOWERCASE; + break; + case SID_TRANSLITERATE_HALFWIDTH: + nMode = TransliterationModules_FULLWIDTH_HALFWIDTH; + break; + case SID_TRANSLITERATE_FULLWIDTH: + nMode = TransliterationModules_HALFWIDTH_FULLWIDTH; + break; + case SID_TRANSLITERATE_HIRAGANA: + nMode = TransliterationModules_KATAKANA_HIRAGANA; + break; + case SID_TRANSLITERATE_KATAGANA: + nMode = TransliterationModules_HIRAGANA_KATAKANA; + break; - switch( rReq.GetSlot() ) - { - case SID_TRANSLITERATE_SENTENCE_CASE: - nMode = TransliterationModulesExtra::SENTENCE_CASE; - break; - case SID_TRANSLITERATE_TITLE_CASE: - nMode = TransliterationModulesExtra::TITLE_CASE; - break; - case SID_TRANSLITERATE_TOGGLE_CASE: - nMode = TransliterationModulesExtra::TOGGLE_CASE; - break; - case SID_TRANSLITERATE_UPPER: - nMode = TransliterationModules_LOWERCASE_UPPERCASE; - break; - case SID_TRANSLITERATE_LOWER: - nMode = TransliterationModules_UPPERCASE_LOWERCASE; - break; - case SID_TRANSLITERATE_HALFWIDTH: - nMode = TransliterationModules_FULLWIDTH_HALFWIDTH; - break; - case SID_TRANSLITERATE_FULLWIDTH: - nMode = TransliterationModules_HALFWIDTH_FULLWIDTH; - break; - case SID_TRANSLITERATE_HIRAGANA: - nMode = TransliterationModules_KATAKANA_HIRAGANA; - break; - case SID_TRANSLITERATE_KATAGANA: - nMode = TransliterationModules_HIRAGANA_KATAKANA; - break; + default: + OSL_ENSURE(!this, "wrong dispatcher"); + } - default: - OSL_ENSURE(!this, "wrong dispatcher"); - } + if( nMode ) + pOLV->TransliterateText( nMode ); +} - if( nMode ) - { - pOLV->TransliterateText( nMode ); - } +void SwAnnotationShell::ExecRotateTransliteration( SfxRequest & rReq ) +{ + if( rReq.GetSlot() == SID_TRANSLITERATE_ROTATE_CASE ) + { + SwPostItMgr* pPostItMgr = rView.GetPostItMgr(); + if (!pPostItMgr || !pPostItMgr->HasActiveSidebarWin()) + return; + + OutlinerView* pOLV = pPostItMgr->GetActiveSidebarWin()->GetOutlinerView(); + + if (!pOLV) + return; + + pOLV->TransliterateText(m_aRotateCase.getNextMode()); } } diff --git a/sw/source/ui/shells/drwtxtsh.cxx b/sw/source/ui/shells/drwtxtsh.cxx index 6efdd202ed6e..5f15c4acf151 100644 --- a/sw/source/ui/shells/drwtxtsh.cxx +++ b/sw/source/ui/shells/drwtxtsh.cxx @@ -628,51 +628,73 @@ void SwDrawTextShell::StateUndo(SfxItemSet &rSet) void SwDrawTextShell::ExecTransliteration( SfxRequest & rReq ) { + if (!pSdrView) + return; + using namespace i18n; + + sal_uInt32 nMode = 0; + + switch( rReq.GetSlot() ) { - sal_uInt32 nMode = 0; + case SID_TRANSLITERATE_SENTENCE_CASE: + nMode = TransliterationModulesExtra::SENTENCE_CASE; + break; + case SID_TRANSLITERATE_TITLE_CASE: + nMode = TransliterationModulesExtra::TITLE_CASE; + break; + case SID_TRANSLITERATE_TOGGLE_CASE: + nMode = TransliterationModulesExtra::TOGGLE_CASE; + break; + case SID_TRANSLITERATE_UPPER: + nMode = TransliterationModules_LOWERCASE_UPPERCASE; + break; + case SID_TRANSLITERATE_LOWER: + nMode = TransliterationModules_UPPERCASE_LOWERCASE; + break; - switch( rReq.GetSlot() ) - { - case SID_TRANSLITERATE_SENTENCE_CASE: - nMode = TransliterationModulesExtra::SENTENCE_CASE; - break; - case SID_TRANSLITERATE_TITLE_CASE: - nMode = TransliterationModulesExtra::TITLE_CASE; - break; - case SID_TRANSLITERATE_TOGGLE_CASE: - nMode = TransliterationModulesExtra::TOGGLE_CASE; - break; - case SID_TRANSLITERATE_UPPER: - nMode = TransliterationModules_LOWERCASE_UPPERCASE; - break; - case SID_TRANSLITERATE_LOWER: - nMode = TransliterationModules_UPPERCASE_LOWERCASE; - break; + case SID_TRANSLITERATE_HALFWIDTH: + nMode = TransliterationModules_FULLWIDTH_HALFWIDTH; + break; + case SID_TRANSLITERATE_FULLWIDTH: + nMode = TransliterationModules_HALFWIDTH_FULLWIDTH; + break; - case SID_TRANSLITERATE_HALFWIDTH: - nMode = TransliterationModules_FULLWIDTH_HALFWIDTH; - break; - case SID_TRANSLITERATE_FULLWIDTH: - nMode = TransliterationModules_HALFWIDTH_FULLWIDTH; - break; + case SID_TRANSLITERATE_HIRAGANA: + nMode = TransliterationModules_KATAKANA_HIRAGANA; + break; + case SID_TRANSLITERATE_KATAGANA: + nMode = TransliterationModules_HIRAGANA_KATAKANA; + break; - case SID_TRANSLITERATE_HIRAGANA: - nMode = TransliterationModules_KATAKANA_HIRAGANA; - break; - case SID_TRANSLITERATE_KATAGANA: - nMode = TransliterationModules_HIRAGANA_KATAKANA; - break; + default: + OSL_ENSURE(!this, "wrong dispatcher"); + } - default: - OSL_ENSURE(!this, "wrong dispatcher"); - } + if( nMode ) + { + OutlinerView* pOLV = pSdrView->GetTextEditOutlinerView(); - if( nMode ) - { - OutlinerView* pOLV = pSdrView->GetTextEditOutlinerView(); - pOLV->TransliterateText( nMode ); - } + if (!pOLV) + return; + + pOLV->TransliterateText( nMode ); + } +} + +void SwDrawTextShell::ExecRotateTransliteration( SfxRequest & rReq ) +{ + if( rReq.GetSlot() == SID_TRANSLITERATE_ROTATE_CASE ) + { + if (!pSdrView) + return; + + OutlinerView* pOLV = pSdrView->GetTextEditOutlinerView(); + + if (!pOLV) + return; + + pOLV->TransliterateText( m_aRotateCase.getNextMode() ); } } diff --git a/sw/source/ui/shells/textsh.cxx b/sw/source/ui/shells/textsh.cxx index d17fd52b8e28..8fab36e5e8ce 100644 --- a/sw/source/ui/shells/textsh.cxx +++ b/sw/source/ui/shells/textsh.cxx @@ -954,80 +954,56 @@ void SwTextShell::ExecDelete(SfxRequest &rReq) void SwTextShell::ExecTransliteration( SfxRequest & rReq ) { using namespace ::com::sun::star::i18n; - { - sal_uInt32 nMode = 0; + sal_uInt32 nMode = 0; - switch( rReq.GetSlot() ) - { - case SID_TRANSLITERATE_SENTENCE_CASE: - nMode = TransliterationModulesExtra::SENTENCE_CASE; - break; - case SID_TRANSLITERATE_TITLE_CASE: - nMode = TransliterationModulesExtra::TITLE_CASE; - break; - case SID_TRANSLITERATE_TOGGLE_CASE: - nMode = TransliterationModulesExtra::TOGGLE_CASE; - break; - case SID_TRANSLITERATE_UPPER: - nMode = TransliterationModules_LOWERCASE_UPPERCASE; - break; - case SID_TRANSLITERATE_LOWER: - nMode = TransliterationModules_UPPERCASE_LOWERCASE; - break; - - case SID_TRANSLITERATE_HALFWIDTH: - nMode = TransliterationModules_FULLWIDTH_HALFWIDTH; - break; - case SID_TRANSLITERATE_FULLWIDTH: - nMode = TransliterationModules_HALFWIDTH_FULLWIDTH; - break; + switch( rReq.GetSlot() ) + { + case SID_TRANSLITERATE_SENTENCE_CASE: + nMode = TransliterationModulesExtra::SENTENCE_CASE; + break; + case SID_TRANSLITERATE_TITLE_CASE: + nMode = TransliterationModulesExtra::TITLE_CASE; + break; + case SID_TRANSLITERATE_TOGGLE_CASE: + nMode = TransliterationModulesExtra::TOGGLE_CASE; + break; + case SID_TRANSLITERATE_UPPER: + nMode = TransliterationModules_LOWERCASE_UPPERCASE; + break; + case SID_TRANSLITERATE_LOWER: + nMode = TransliterationModules_UPPERCASE_LOWERCASE; + break; - case SID_TRANSLITERATE_HIRAGANA: - nMode = TransliterationModules_KATAKANA_HIRAGANA; - break; - case SID_TRANSLITERATE_KATAGANA: - nMode = TransliterationModules_HIRAGANA_KATAKANA; - break; + case SID_TRANSLITERATE_HALFWIDTH: + nMode = TransliterationModules_FULLWIDTH_HALFWIDTH; + break; + case SID_TRANSLITERATE_FULLWIDTH: + nMode = TransliterationModules_HALFWIDTH_FULLWIDTH; + break; - default: - OSL_ENSURE(!this, "wrong dispatcher"); - } + case SID_TRANSLITERATE_HIRAGANA: + nMode = TransliterationModules_KATAKANA_HIRAGANA; + break; + case SID_TRANSLITERATE_KATAGANA: + nMode = TransliterationModules_HIRAGANA_KATAKANA; + break; - if( nMode ) - GetShell().TransliterateText( nMode ); + default: + OSL_ENSURE(!this, "wrong dispatcher"); } + + if( nMode ) + GetShell().TransliterateText( nMode ); } void SwTextShell::ExecRotateTransliteration( SfxRequest & rReq ) { - using namespace ::com::sun::star::i18n; - { - sal_uInt32 nMode = 0; - - if( rReq.GetSlot() == SID_TRANSLITERATE_ROTATE_CASE ) { - switch ( nF3ShiftCounter ) { - case 0: - nMode = TransliterationModulesExtra::TITLE_CASE; - break; - case 1: - nMode = TransliterationModules_LOWERCASE_UPPERCASE; - break; - case 2: - nMode = TransliterationModules_UPPERCASE_LOWERCASE; - nF3ShiftCounter = -1; - break; - } - - if ( nMode ) - GetShell().TransliterateText( nMode ); - - nF3ShiftCounter++; - } - } + if( rReq.GetSlot() == SID_TRANSLITERATE_ROTATE_CASE ) + GetShell().TransliterateText( m_aRotateCase.getNextMode() ); } SwTextShell::SwTextShell(SwView &_rView) : - SwBaseShell(_rView), pPostItFldMgr( 0 ), nF3ShiftCounter(0) + SwBaseShell(_rView), pPostItFldMgr( 0 ) { SetName(String::CreateFromAscii("Text")); SetHelpId(SW_TEXTSHELL); |