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  * This file incorporates work covered by the following license notice:
10  *
11  *   Licensed to the Apache Software Foundation (ASF) under one or more
12  *   contributor license agreements. See the NOTICE file distributed
13  *   with this work for additional information regarding copyright
14  *   ownership. The ASF licenses this file to you under the Apache
15  *   License, Version 2.0 (the "License"); you may not use this file
16  *   except in compliance with the License. You may obtain a copy of
17  *   the License at http://www.apache.org/licenses/LICENSE-2.0 .
18  */
19 
20 #ifndef INCLUDED_SW_SOURCE_FILTER_INC_WWSTYLES_HXX
21 #define INCLUDED_SW_SOURCE_FILTER_INC_WWSTYLES_HXX
22 
23 #include <sal/types.h>
24 
25 namespace ww
26 {
27     enum sti
28     {
29         stiNormal = 0,                  // 0x0000
30         stiLev1 = 1,                    // 0x0001
31         stiLev2 = 2,                    // 0x0002
32         stiLev3 = 3,                    // 0x0003
33         stiLev4 = 4,                    // 0x0004
34         stiLev5 = 5,                    // 0x0005
35         stiLev6 = 6,                    // 0x0006
36         stiLev7 = 7,                    // 0x0007
37         stiLev8 = 8,                    // 0x0008
38         stiLev9 = 9,                    // 0x0009
39         stiLevFirst = stiLev1,
40         stiLevLast = stiLev9,
41         stiIndex1 = 10,                 // 0x000A
42         stiIndex2 = 11,                 // 0x000B
43         stiIndex3 = 12,                 // 0x000C
44         stiIndex4 = 13,                 // 0x000D
45         stiIndex5 = 14,                 // 0x000E
46         stiIndex6 = 15,                 // 0x000F
47         stiIndex7 = 16,                 // 0x0010
48         stiIndex8 = 17,                 // 0x0011
49         stiIndex9 = 18,                 // 0x0012
50         stiIndexFirst = stiIndex1,
51         stiIndexLast = stiIndex9,
52         stiToc1 = 19,                   // 0x0013
53         stiToc2 = 20,                   // 0x0014
54         stiToc3 = 21,                   // 0x0015
55         stiToc4 = 22,                   // 0x0016
56         stiToc5 = 23,                   // 0x0017
57         stiToc6 = 24,                   // 0x0018
58         stiToc7 = 25,                   // 0x0019
59         stiToc8 = 26,                   // 0x001A
60         stiToc9 = 27,                   // 0x001B
61         stiTocFirst = stiToc1,
62         stiTocLast = stiToc9,
63         stiNormIndent = 28,             // 0x001C
64         stiFootnoteText = 29,                // 0x001D
65         stiAtnText = 30,                // 0x001E
66         stiHeader = 31,                 // 0x001F
67         stiFooter = 32,                 // 0x0020
68         stiIndexHeading = 33,           // 0x0021
69         stiCaption = 34,                // 0x0022
70         stiToCaption = 35,              // 0x0023
71         stiEnvAddr = 36,                // 0x0024
72         stiEnvRet = 37,                 // 0x0025
73         stiFootnoteRef = 38,                 // 0x0026  char style
74         stiAtnRef = 39,                 // 0x0027  char style
75         stiLnn = 40,                    // 0x0028  char style
76         stiPgn = 41,                    // 0x0029  char style
77         stiEdnRef = 42,                 // 0x002A  char style
78         stiEdnText = 43,                // 0x002B
79         stiToa = 44,                    // 0x002C
80         stiMacro = 45,                  // 0x002D
81         stiToaHeading = 46,             // 0x002E
82         stiList = 47,                   // 0x002F
83         stiListBullet = 48,             // 0x0030
84         stiListNumber = 49,             // 0x0031
85         stiList2 = 50,                  // 0x0032
86         stiList3 = 51,                  // 0x0033
87         stiList4 = 52,                  // 0x0034
88         stiList5 = 53,                  // 0x0035
89         stiListBullet2 = 54,            // 0x0036
90         stiListBullet3 = 55,            // 0x0037
91         stiListBullet4 = 56,            // 0x0038
92         stiListBullet5 = 57,            // 0x0039
93         stiListNumber2 = 58,            // 0x003A
94         stiListNumber3 = 59,            // 0x003B
95         stiListNumber4 = 60,            // 0x003C
96         stiListNumber5 = 61,            // 0x003D
97         stiTitle = 62,                  // 0x003E
98         stiClosing = 63,                // 0x003F
99         stiSignature = 64,              // 0x0040
100         stiNormalChar = 65,             // 0x0041  char style
101         stiBodyText = 66,               // 0x0042
102         /*
103          stiBodyTextInd1 was orig stiBodyText2 in documentation, but that
104          collides with the other stiBodyText2 and this seems more reasonable.
105          cmc@openoffice.org
106         */
107         stiBodyTextInd1 = 67,           // 0x0043
108         stiListCont = 68,               // 0x0044
109         stiListCont2 = 69,              // 0x0045
110         stiListCont3 = 70,              // 0x0046
111         stiListCont4 = 71,              // 0x0047
112         stiListCont5 = 72,              // 0x0048
113         stiMsgHeader = 73,              // 0x0049
114         stiSubtitle = 74,               // 0x004A
115         stiSalutation = 75,             // 0x004B
116         stiDate = 76,                   // 0X004C
117         stiBodyText1I = 77,             // 0x004D
118         stiBodyText1I2 = 78,            // 0x004E
119         stiNoteHeading = 79,            // 0x004F
120         stiBodyText2 = 80,              // 0x0050
121         stiBodyText3 = 81,              // 0x0051
122         stiBodyTextInd2 = 82,           // 0x0052
123         stiBodyTextInd3 = 83,           // 0x0053
124         stiBlockQuote = 84,             // 0x0054
125         stiHyperlink = 85,              // 0x0055  char style
126         stiHyperlinkFollowed = 86,      // 0x0056  char style
127         stiStrong = 87,                 // 0x0057  char style
128         stiEmphasis = 88,               // 0x0058  char style
129         stiNavPane = 89,                // 0x0059  char style
130         stiPlainText = 90,              // 0x005A
131         stiMax = 91,                    // number of defined sti's
132         stiUser = 0x0ffe,               // user styles are distinguished by name
133         stiNil = 0x0fff                 // max for 12 bits
134     };
135 
136     /** Find the WinWord sti index of an old <= Word2 stc (style code)
137 
138         When importing a Word 2 document we would like to treat styles as
139         similar to how word 8 does as possible, to this end word will treat
140         some styles with special codes as inbuilt styles, and some as user
141         defined styles.
142 
143         @param
144         stc the Style code to test to see what winword sti word would give
145         such a code
146 
147         @return the sti that word would give it. stiUser if word would treat
148         it as a user defined style.
149     */
150     sti GetCanonicalStiFromStc(sal_uInt8 stc) noexcept;
151 
152     /** Find the WinWord english name from a sti index
153 
154         Map the word style index to its english name
155 
156         @param
157         sti the Style index
158 
159         @return the name word would give it if it's an inbuilt name, otherwise
160         NULL
161     */
162     const char* GetEnglishNameFromSti(sti eSti) noexcept;
163 
164     /** Determine if the WinWord sti is standard Character Style
165 
166         @param
167         sti the Style index
168 
169         @return true if a known inbuild character style
170     */
171     bool StandardStiIsCharStyle(sti eSti) noexcept;
172 } // namespace ww
173 
174 #endif
175 
176 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
177