blob: dd6bb873b325bf3dab0d73113b19a701df8502e0 [file] [log] [blame]
/**************************************************************
*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*
*************************************************************/
#ifndef _SORTEDOBJS_HXX
#define _SORTEDOBJS_HXX
class SwSortedObjsImpl;
class SwAnchoredObject;
#include <sal/types.h>
/** class for collecting anchored objects
for #i28701#
Anchored objects can be inserted and deleted. The entries can be directly
accessed via index.
An anchored object is inserted sorted. The sort criteria are:
- anchor type
- order 1: to-page, 2: to-fly, 3: to-paragraph|to-character|as-character
- anchor node
- wrapping style (inclusive layer)
- order 1: wrapping style != SURROUND_THROUGHT and not in hell layer,
2: wrapping style = SURROUND_THROUGHT or in hell layer
- wrapping style influence
- order 1: NONE_SUCCESSIVE_POSITIONED, 2: NONE_CONCURRENT_POSITIONED
- again anchor type
- order 1: to-paragraph, 2: to-character, 3: as-character
- anchor node position
- internal anchor order number
If one of the sort criteria attributes of an anchored object changes,
the sorting has to be updated - use method <Update(..)>
@author OD
*/
class SwSortedObjs
{
private:
SwSortedObjsImpl* mpImpl;
public:
SwSortedObjs();
~SwSortedObjs();
sal_uInt32 Count() const;
/** direct access to the entries
@param _nIndex
input parameter - index of entry, valid value range [0..Count()-1]
@author OD
*/
SwAnchoredObject* operator[]( sal_uInt32 _nIndex ) const;
bool Insert( SwAnchoredObject& _rAnchoredObj );
bool Remove( SwAnchoredObject& _rAnchoredObj );
bool Contains( const SwAnchoredObject& _rAnchoredObj ) const;
/** method to update the position of the given anchored object in the
sorted list
OD 2004-07-01
@author OD
@return boolean, indicating success of the update.
*/
bool Update( SwAnchoredObject& _rAnchoredObj );
/** Position of object <_rAnchoredObj> in sorted list
OD 2004-05-07
Returns the number of the list position of object <_rAnchoredObj>.
Returns <Count()>, if object isn't contained in list.
@author OD
@return sal_uInt32
Number of the list position of object <_rAnchoredObj>
*/
sal_uInt32 ListPosOf( const SwAnchoredObject& _rAnchoredObj ) const;
};
#endif