xref: /aoo42x/main/sw/source/filter/inc/wwstyles.hxx (revision 86e1cf34)
1 /**************************************************************
2  *
3  * Licensed to the Apache Software Foundation (ASF) under one
4  * or more contributor license agreements.  See the NOTICE file
5  * distributed with this work for additional information
6  * regarding copyright ownership.  The ASF licenses this file
7  * to you under the Apache License, Version 2.0 (the
8  * "License"); you may not use this file except in compliance
9  * with the License.  You may obtain a copy of the License at
10  *
11  *   http://www.apache.org/licenses/LICENSE-2.0
12  *
13  * Unless required by applicable law or agreed to in writing,
14  * software distributed under the License is distributed on an
15  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16  * KIND, either express or implied.  See the License for the
17  * specific language governing permissions and limitations
18  * under the License.
19  *
20  *************************************************************/
21 
22 
23 
24 /* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil -*- */
25 /// @HTML
26 #ifndef WW_WWSTYLES_HXX
27 #define WW_WWSTYLES_HXX
28 
29 class String;       //yuck...
30 
31 #include <sal/types.h>
32 
33 namespace ww
34 {
35     enum sti
36     {
37         stiNormal = 0,                  // 0x0000
38         stiLev1 = 1,                    // 0x0001
39         stiLev2 = 2,                    // 0x0002
40         stiLev3 = 3,                    // 0x0003
41         stiLev4 = 4,                    // 0x0004
42         stiLev5 = 5,                    // 0x0005
43         stiLev6 = 6,                    // 0x0006
44         stiLev7 = 7,                    // 0x0007
45         stiLev8 = 8,                    // 0x0008
46         stiLev9 = 9,                    // 0x0009
47         stiLevFirst = stiLev1,
48         stiLevLast = stiLev9,
49         stiIndex1 = 10,                 // 0x000A
50         stiIndex2 = 11,                 // 0x000B
51         stiIndex3 = 12,                 // 0x000C
52         stiIndex4 = 13,                 // 0x000D
53         stiIndex5 = 14,                 // 0x000E
54         stiIndex6 = 15,                 // 0x000F
55         stiIndex7 = 16,                 // 0x0010
56         stiIndex8 = 17,                 // 0x0011
57         stiIndex9 = 18,                 // 0x0012
58         stiIndexFirst = stiIndex1,
59         stiIndexLast = stiIndex9,
60         stiToc1 = 19,                   // 0x0013
61         stiToc2 = 20,                   // 0x0014
62         stiToc3 = 21,                   // 0x0015
63         stiToc4 = 22,                   // 0x0016
64         stiToc5 = 23,                   // 0x0017
65         stiToc6 = 24,                   // 0x0018
66         stiToc7 = 25,                   // 0x0019
67         stiToc8 = 26,                   // 0x001A
68         stiToc9 = 27,                   // 0x001B
69         stiTocFirst = stiToc1,
70         stiTocLast = stiToc9,
71         stiNormIndent = 28,             // 0x001C
72         stiFtnText = 29,                // 0x001D
73         stiAtnText = 30,                // 0x001E
74         stiHeader = 31,                 // 0x001F
75         stiFooter = 32,                 // 0x0020
76         stiIndexHeading = 33,           // 0x0021
77         stiCaption = 34,                // 0x0022
78         stiToCaption = 35,              // 0x0023
79         stiEnvAddr = 36,                // 0x0024
80         stiEnvRet = 37,                 // 0x0025
81         stiFtnRef = 38,                 // 0x0026  char style
82         stiAtnRef = 39,                 // 0x0027  char style
83         stiLnn = 40,                    // 0x0028  char style
84         stiPgn = 41,                    // 0x0029  char style
85         stiEdnRef = 42,                 // 0x002A  char style
86         stiEdnText = 43,                // 0x002B
87         stiToa = 44,                    // 0x002C
88         stiMacro = 45,                  // 0x002D
89         stiToaHeading = 46,             // 0x002E
90         stiList = 47,                   // 0x002F
91         stiListBullet = 48,             // 0x0030
92         stiListNumber = 49,             // 0x0031
93         stiList2 = 50,                  // 0x0032
94         stiList3 = 51,                  // 0x0033
95         stiList4 = 52,                  // 0x0034
96         stiList5 = 53,                  // 0x0035
97         stiListBullet2 = 54,            // 0x0036
98         stiListBullet3 = 55,            // 0x0037
99         stiListBullet4 = 56,            // 0x0038
100         stiListBullet5 = 57,            // 0x0039
101         stiListNumber2 = 58,            // 0x003A
102         stiListNumber3 = 59,            // 0x003B
103         stiListNumber4 = 60,            // 0x003C
104         stiListNumber5 = 61,            // 0x003D
105         stiTitle = 62,                  // 0x003E
106         stiClosing = 63,                // 0x003F
107         stiSignature = 64,              // 0x0040
108         stiNormalChar = 65,             // 0x0041  char style
109         stiBodyText = 66,               // 0x0042
110         /*
111          stiBodyTextInd1 was orig stiBodyText2 in documentation, but that
112          collides with the other stiBodyText2 and this seems more reasonable.
113          cmc@openoffice.org
114         */
115         stiBodyTextInd1 = 67,           // 0x0043
116         stiListCont = 68,               // 0x0044
117         stiListCont2 = 69,              // 0x0045
118         stiListCont3 = 70,              // 0x0046
119         stiListCont4 = 71,              // 0x0047
120         stiListCont5 = 72,              // 0x0048
121         stiMsgHeader = 73,              // 0x0049
122         stiSubtitle = 74,               // 0x004A
123         stiSalutation = 75,             // 0x004B
124         stiDate = 76,                   // 0X004C
125         stiBodyText1I = 77,             // 0x004D
126         stiBodyText1I2 = 78,            // 0x004E
127         stiNoteHeading = 79,            // 0x004F
128         stiBodyText2 = 80,              // 0x0050
129         stiBodyText3 = 81,              // 0x0051
130         stiBodyTextInd2 = 82,           // 0x0052
131         stiBodyTextInd3 = 83,           // 0x0053
132         stiBlockQuote = 84,             // 0x0054
133         stiHyperlink = 85,              // 0x0055  char style
134         stiHyperlinkFollowed = 86,      // 0x0056  char style
135         stiStrong = 87,                 // 0x0057  char style
136         stiEmphasis = 88,               // 0x0058  char style
137         stiNavPane = 89,                // 0x0059  char style
138         stiPlainText = 90,              // 0x005A
139         stiMax = 91,                    // number of defined sti's
140         stiUser = 0x0ffe,               // user styles are distinguished by name
141         stiNil = 0x0fff                 // max for 12 bits
142     };
143 
144     /** Find the WinWord sti index of an english style name.
145 
146         When importing a RTF document we would like to treat styles as similar
147         to how word does as possible, to this end word will treat some styles
148         with special names as inbuilt styles, and some as user defined styles.
149 
150         See OpenOffice.org issue 21881
151         (http://www.openoffice.org/issues/show_bug.cgi?id=21881)
152         and OpenOffice.org issue 17503
153         (http://www.openoffice.org/issues/show_bug.cgi?id=17503)
154 
155         @param
156         rSting the Style name to test to see what winword sti word would give
157         such a name if it has no other information to work with (e.g. importing
158         a RTF document)
159 
160         @return the sti that word would give it. stiUser if word would treat
161         it as a user defined style.
162 
163         @author
164         <a href="mailto:cmc@openoffice.org">Caol&aacute;n McNamara</a>
165         <a href="mailto:tono@openoffice.org">Takashi Ono</a>
166     */
167     sti GetCanonicalStiFromEnglishName(const String &rString) throw();
168 
169     /** Find the WinWord sti index of an old <= Word2 stc (style code)
170 
171         When importing a Word 2 document we would like to treat styles as
172         similar to how word 8 does as possible, to this end word will treat
173         some styles with special codes as inbuilt styles, and some as user
174         defined styles.
175 
176         @param
177         stc the Style code to test to see what winword sti word would give
178         such a code
179 
180         @return the sti that word would give it. stiUser if word would treat
181         it as a user defined style.
182 
183         @author
184         <a href="mailto:cmc@openoffice.org">Caol&aacute;n McNamara</a>
185     */
186     sti GetCanonicalStiFromStc(sal_uInt8 stc) throw();
187 
188     /** Find the WinWord english name from a sti index
189 
190         Map the word style index to it's english name
191 
192         @param
193         sti the Style index
194 
195         @return the name word would give it if it's an inbuilt name, otherwise
196         NULL
197 
198         @author
199         <a href="mailto:cmc@openoffice.org">Caol&aacute;n McNamara</a>
200     */
201     const sal_Char* GetEnglishNameFromSti(sti eSti) throw();
202 
203     /** Determine if the WinWord sti is standard Character Style
204 
205         @param
206         sti the Style index
207 
208         @return true if a known inbuild character style
209 
210         @author
211         <a href="mailto:cmc@openoffice.org">Caol&aacute;n McNamara</a>
212     */
213     bool StandardStiIsCharStyle(sti eSti) throw();
214 } // namespace ww
215 
216 #endif
217 /* vi:set tabstop=4 shiftwidth=4 expandtab: */
218