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_XTextTableCursor_idl__
24#define __com_sun_star_text_XTextTableCursor_idl__
25
26#ifndef __com_sun_star_uno_XInterface_idl__
27#include <com/sun/star/uno/XInterface.idl>
28#endif
29
30
31//=============================================================================
32
33module com {  module sun {  module star {  module text {
34
35//=============================================================================
36
37/** The TextTableCursor provide methods to navigate throught the table structure, to merge and split cells
38
39    @see com::sun::star::text::TextTable
40    @see com::sun::star::text::TextTableCursor
41    @see com::sun::star::text::Cell
42    @see com::sun::star::text::XTextTable
43 */
44published interface XTextTableCursor: com::sun::star::uno::XInterface
45{
46	//-------------------------------------------------------------------------
47
48	/** @returns
49				the name of the cell range that is selected by this cursor.
50				<p>The name is the cell name of the top left table cell of the range
51			 	contatenated by ':' with the table cell name of the bottom left table cell of the cell range.
52				If the range consists of one table cell only then the name of that table cell is returned.
53			 </p>
54        @see com::sun:star::text::CellRange
55	 */
56	string getRangeName();
57
58	//-------------------------------------------------------------------------
59
60	/** moves the cursor to the cell with the specified name.
61
62		@param aCellName
63			specifies the name of the cell to go to.
64
65		@param bExpand
66			determines wether the selection is to be expanded.
67
68        @see com::sun::star::text::Cell
69	 */
70	boolean gotoCellByName( [in] string aCellName,
71			 [in] boolean bExpand );
72
73	//-------------------------------------------------------------------------
74
75	/** moves the cursor to the left neighbor.
76
77		@param nCount
78			the number of cells to move.
79
80		@param bExpand
81			determines wether the selection is to be expanded.
82	 */
83	boolean goLeft( [in] short nCount,
84			 [in] boolean bExpand );
85
86	//-------------------------------------------------------------------------
87
88	/** moves the cursor to the right neighbor.
89
90		@param nCount
91			the number of cells to move.
92
93		@param bExpand
94			determines wether the selection is to be expanded.
95	 */
96	boolean goRight( [in] short nCount,
97			 [in] boolean bExpand );
98
99	//-------------------------------------------------------------------------
100
101	/** moves the cursor to the top neighbor.
102
103		@param nCount
104			the number of cells to move.
105
106		@param bExpand
107			determines wether the selection is to be expanded.
108	 */
109	boolean goUp( [in] short nCount,
110			 [in] boolean bExpand );
111
112	//-------------------------------------------------------------------------
113
114	/** moves the cursor to the bottom neighbor cell.
115
116		@param nCount
117			the number of cells to move.
118
119		@param bExpand
120			determines wether the selection is to be expanded.
121	 */
122	boolean goDown( [in] short nCount,
123			 [in] boolean bExpand );
124
125	//-------------------------------------------------------------------------
126
127	/** moves the cursor to the top left cell of the table.
128
129		@param bExpand
130			determines wether the selection is to be expanded.
131	 */
132	void gotoStart( [in] boolean bExpand );
133
134	//-------------------------------------------------------------------------
135
136	/** moves the cursor to the bottom right cell of the table.
137
138		@param bExpand
139			determines wether the selection is to be expanded.
140	 */
141	void gotoEnd( [in] boolean bExpand );
142
143	//-------------------------------------------------------------------------
144
145	/** merges the selected range of cells.
146
147        @see com:sun::star::CellRange
148	 */
149	boolean mergeRange();
150
151	//-------------------------------------------------------------------------
152
153	/** splits the range of cells.
154
155		@param nCount
156			specifies the number of new cells that will be created
157			for each cell contained in the range.
158
159        @param bHorizontal
160            <true/> if the range should be split vertically.
161            Otherwise it will be split horizontally.
162
163        @see com:sun::star::Cell
164        @see com:sun::star::CellRange
165	 */
166	boolean splitRange( [in] short nCount,
167			 [in] boolean bHorizontal );
168
169};
170
171//=============================================================================
172
173}; }; }; };
174
175#endif
176