Line data Source code
1 : /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2 : /*
3 : * This file is part of the LibreOffice project.
4 : *
5 : * This Source Code Form is subject to the terms of the Mozilla Public
6 : * License, v. 2.0. If a copy of the MPL was not distributed with this
7 : * file, You can obtain one at http://mozilla.org/MPL/2.0/.
8 : */
9 :
10 : #include <unotools/caserotate.hxx>
11 : #include <com/sun/star/i18n/TransliterationModules.hpp>
12 : #include <com/sun/star/i18n/TransliterationModulesExtra.hpp>
13 :
14 : //TODO Use XCharacterClassification::getStringType to determine the current
15 : //(possibly mixed) case type and rotate to the next one
16 :
17 0 : sal_uInt32 RotateTransliteration::getNextMode()
18 : {
19 : using namespace ::com::sun::star::i18n;
20 :
21 0 : sal_uInt32 nMode = 0;
22 :
23 0 : switch (nF3ShiftCounter)
24 : {
25 : case 0:
26 0 : nMode = TransliterationModulesExtra::TITLE_CASE;
27 0 : break;
28 : case 1:
29 0 : nMode = TransliterationModules_LOWERCASE_UPPERCASE;
30 0 : break;
31 : default:
32 : case 2:
33 0 : nMode = TransliterationModules_UPPERCASE_LOWERCASE;
34 0 : nF3ShiftCounter = -1;
35 0 : break;
36 : }
37 :
38 0 : nF3ShiftCounter++;
39 :
40 0 : return nMode;
41 : }
42 :
43 : /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
|