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#ifndef __com_sun_star_text_TextPortion_idl__
24#define __com_sun_star_text_TextPortion_idl__
25
26
27#ifndef __com_sun_star_beans_XTolerantMultiPropertySet_idl__
28#include <com/sun/star/beans/XTolerantMultiPropertySet.idl>
29#endif
30
31#ifndef __com_sun_star_container_XContentEnumerationAccess_idl__
32#include <com/sun/star/container/XContentEnumerationAccess.idl>
33#endif
34
35#ifndef __com_sun_star_text_TextRange_idl__
36#include <com/sun/star/text/TextRange.idl>
37#endif
38
39#ifndef __com_sun_star_text_XTextContent_idl__
40#include <com/sun/star/text/XTextContent.idl>
41#endif
42
43#ifndef __com_sun_star_text_XTextField_idl__
44#include <com/sun/star/text/XTextField.idl>
45#endif
46
47#ifndef __com_sun_star_text_XFootnote_idl__
48#include <com/sun/star/text/XFootnote.idl>
49#endif
50
51
52//=============================================================================
53
54module com { module sun { module star { module text {
55
56//=============================================================================
57/** A TextPortion is a piece of text within a paragraph that does not
58    contain changes of its attributes inside.
59
60    <p>
61    It is created by an enumeration implemented in a paragraph service.
62    It may be used to export the content of the paragraph to an external
63    document format.
64    </p>
65
66    @see com::sun::star::text::TextPortionEnumeration
67    @see com::sun::star::text::XTextPortionEnumeration
68*/
69published service TextPortion
70{
71    service ::com::sun::star::text::TextRange;
72
73    //-------------------------------------------------------------------------
74    /** contains text frames, graphic objects, embedded objects or
75        shapes that are anchored at or as character.
76        @see com.sun.star.text.TextFrame
77        @see com.sun.star.text.TextGraphicObject
78     */
79    [optional]
80    interface ::com::sun::star::container::XContentEnumerationAccess;
81
82    //-------------------------------------------------------------------------
83    /** gives access to a sequence of properties.
84        @since OpenOffice 2.0
85     */
86    [optional]
87    interface ::com::sun::star::beans::XTolerantMultiPropertySet;
88
89    //-------------------------------------------------------------------------
90    /** contains the type of the text portion.
91
92    <p> Valid content type names are:</p>
93    <dl>
94        <dt>Text</dt><dd>string content</dd>
95        <dt>TextField</dt><dd>a text field</dd>
96        <dt>TextContent</dt><dd>text content - supplied via the
97            interface <type scope="com::sun::star::container">
98            XContentEnumerationAccess</type></dd>
99        <dt>ControlCharacter</dt><dd>a control character</dd>
100        <dt>Footnote</dt><dd>a footnote or an endnote</dd>
101        <dt>ReferenceMark</dt><dd>a reference mark</dd>
102        <dt>DocumentIndexMark</dt><dd>a document index mark</dd>
103        <dt>Bookmark</dt><dd>a bookmark</dd>
104        <dt>Redline</dt><dd>a redline portion which is a result
105            of the change tracking feature</dd>
106        <dt>Ruby</dt><dd>a ruby attribute which is used in Asian text</dd>
107        <dt>Frame</dt><dd>a frame</dd>
108        <dt>SoftPageBreak</dt><dd>a soft page break</dd>
109        <dt>InContentMetadata</dt><dd>a text range with attached metadata</dd>
110    </dl>
111    <p>For Reference marks, document index marks, etc., 2 text portions
112       will be generated, one for the start position and one for the
113       end position.</p>
114     */
115    [readonly, property] string TextPortionType;
116
117    //-------------------------------------------------------------------------
118    /** contains the control character of a text portion of type
119        ControlCharacter.
120        @deprecated type ControlCharacter no longer implemented
121     */
122    [readonly, property] short ControlCharacter;
123
124    //-------------------------------------------------------------------------
125    /** contains the bookmark of a text portion of type Bookmark. */
126    [optional, readonly, property]
127    ::com::sun::star::text::XTextContent Bookmark;
128
129    //-------------------------------------------------------------------------
130    /** contains the document index mark of a text portion of type
131        DocumentIndexMark. */
132    [optional, readonly, property]
133    ::com::sun::star::text::XTextContent DocumentIndexMark;
134
135    //-------------------------------------------------------------------------
136    /** contains the bookmark of a text portion of type ReferenceMark. */
137    [optional, readonly, property]
138    ::com::sun::star::text::XTextContent ReferenceMark;
139
140    //-------------------------------------------------------------------------
141    /** contains the footnote of a text portion of type Footnote. */
142    [optional, readonly, property]
143    ::com::sun::star::text::XFootnote Footnote;
144
145    //-------------------------------------------------------------------------
146    /** contains the text field of a text portion of type TextField. */
147    [optional, readonly, property]
148    ::com::sun::star::text::XTextField TextField;
149
150    //-------------------------------------------------------------------------
151    /** contains the text range of a text portion of type InContentMetadata.
152        @since OpenOffice 3.2
153     */
154    [optional, readonly, property]
155    ::com::sun::star::text::XTextContent InContentMetadata;
156
157    //-------------------------------------------------------------------------
158    /** contains whether the portion is a point only. */
159    [optional, readonly, property] boolean IsCollapsed;
160
161    //-------------------------------------------------------------------------
162    /** contains whether the portion is the start of the portion.
163
164        <p>This is used for portions which are represented by
165        2 TextPortion objects (e.g., DocmentIndexMark).</p>
166     */
167    [optional, readonly, property] boolean IsStart;
168
169};
170
171//=============================================================================
172
173}; }; }; };
174#endif
175