xref: /core/unotools/source/i18n/caserotate.cxx (revision 84f8e28d092676aad830a9fbae8145a57c6301bc)
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 <i18nutil/transliteration.hxx>
12 
13 //TODO Use XCharacterClassification::getStringType to determine the current
14 //(possibly mixed) case type and rotate to the next one
15 
getNextMode()16 TransliterationFlags RotateTransliteration::getNextMode()
17 {
18     TransliterationFlags nMode = TransliterationFlags::NONE;
19 
20     switch (nF3ShiftCounter)
21     {
22         case 0:
23             nMode = TransliterationFlags::TITLE_CASE;
24             break;
25         case 1: //tdf#116315
26             nMode = TransliterationFlags::SENTENCE_CASE;
27             break;
28         case 2:
29             nMode = TransliterationFlags::LOWERCASE_UPPERCASE;
30             break;
31         default:
32         case 3:
33             nMode = TransliterationFlags::UPPERCASE_LOWERCASE;
34             nF3ShiftCounter = -1;
35             break;
36     }
37 
38     nF3ShiftCounter++;
39 
40     return nMode;
41 }
42 
43 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
44