Quellcodebibliothek Statistik Leitseite products/Sources/formale Sprachen/C/LibreOffice/sw/source/core/inc/   (Office von Apache Version 25.8.3.2©)  Datei vom 5.10.2025 mit Größe 3 kB image not shown  

Quelle  sortedobjs.hxx   Sprache: C

 
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
/*
 * This file is part of the LibreOffice project.
 *
 * This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
 *
 * This file incorporates work covered by the following license notice:
 *
 *   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 .
 */

#ifndef INCLUDED_SW_SOURCE_CORE_INC_SORTEDOBJS_HXX
#define INCLUDED_SW_SOURCE_CORE_INC_SORTEDOBJS_HXX

#include <vector>
#include <swdllapi.h>

class SwAnchoredObject;

/** 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 != css::text::WrapTextMode_THROUGH and not in hell layer,
        2: wrapping style = css::text::WrapTextMode_THROUGH 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(..)>
*/

class SW_DLLPUBLIC SwSortedObjs
{
    private:
        std::vector< SwAnchoredObject* > maSortedObjLst;

    public:
        typedef std::vector<SwAnchoredObject*>::const_iterator const_iterator;
        SwSortedObjs();
        ~SwSortedObjs();

        size_t size() const;

        /** direct access to the entries

            @param _nIndex
            input parameter - index of entry, valid value range [0..size()-1]
        */

        SwAnchoredObject* operator[]( size_t _nIndex ) const;
        const_iterator begin() const
            { return maSortedObjLst.cbegin(); };
        const_iterator end() const
            { return maSortedObjLst.cend(); };

        bool Insert( SwAnchoredObject& _rAnchoredObj );

        void Remove( SwAnchoredObject& _rAnchoredObj );

        bool Contains( const SwAnchoredObject& _rAnchoredObj ) const;

        /** method to update the position of the given anchored object in the
            sorted list

            @return boolean, indicating success of the update.
        */

        void Update(const SwAnchoredObject& _rAnchoredObj);
        void UpdateAll();

        /** Position of object <_rAnchoredObj> in sorted list

            Returns the number of the list position of object <_rAnchoredObj>.
            Returns <size()>, if object isn't contained in list.

            @return size_t
            Number of the list position of object <_rAnchoredObj>
        */

        size_t ListPosOf( const SwAnchoredObject& _rAnchoredObj ) const;

        bool is_sorted() const;
};

#endif

/* vim:set shiftwidth=4 softtabstop=4 expandtab: */

Messung V0.5
C=94 H=100 G=96

¤ Dauer der Verarbeitung: 0.3 Sekunden  ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

Beweissystem der NASA

Beweissystem Isabelle

NIST Cobol Testsuite

Cephes Mathematical Library

Wiener Entwicklungsmethode

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.