1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ 2 /* 3 * This file is part of the LibreOffice project. 4 * 5 * This Source Code Form is subject to the terms of the Mozilla Public 6 * License, v. 2.0. If a copy of the MPL was not distributed with this 7 * file, You can obtain one at http://mozilla.org/MPL/2.0/. 8 * 9 * This file incorporates work covered by the following license notice: 10 * 11 * Licensed to the Apache Software Foundation (ASF) under one or more 12 * contributor license agreements. See the NOTICE file distributed 13 * with this work for additional information regarding copyright 14 * ownership. The ASF licenses this file to you under the Apache 15 * License, Version 2.0 (the "License"); you may not use this file 16 * except in compliance with the License. You may obtain a copy of 17 * the License at http://www.apache.org/licenses/LICENSE-2.0 . 18 */ 19 20 #include <drawingml/textliststyle.hxx> 21 #include <sal/log.hxx> 22 23 namespace oox { namespace drawingml { 24 TextListStyle()25TextListStyle::TextListStyle() 26 { 27 for ( int i = 0; i < 9; i++ ) 28 { 29 maListStyle.push_back( std::make_shared<TextParagraphProperties>( ) ); 30 maAggregationListStyle.push_back( std::make_shared<TextParagraphProperties>( ) ); 31 } 32 } 33 ~TextListStyle()34TextListStyle::~TextListStyle() 35 { 36 } 37 TextListStyle(const TextListStyle & rStyle)38TextListStyle::TextListStyle(const TextListStyle& rStyle) 39 { 40 assert(rStyle.maListStyle.size() == 9); 41 assert(rStyle.maAggregationListStyle.size() == 9); 42 for ( size_t i = 0; i < 9; i++ ) 43 { 44 maListStyle.push_back( std::make_shared<TextParagraphProperties>( *rStyle.maListStyle[i] ) ); 45 maAggregationListStyle.push_back( std::make_shared<TextParagraphProperties>( *rStyle.maAggregationListStyle[i] ) ); 46 } 47 } 48 operator =(const TextListStyle & rStyle)49TextListStyle& TextListStyle::operator=(const TextListStyle& rStyle) 50 { 51 if(this != &rStyle) 52 { 53 assert(rStyle.maListStyle.size() == 9); 54 assert(rStyle.maAggregationListStyle.size() == 9); 55 assert(maListStyle.size() == 9); 56 assert(maAggregationListStyle.size() == 9); 57 for ( size_t i = 0; i < 9; i++ ) 58 { 59 *maListStyle[i] = *rStyle.maListStyle[i]; 60 *maAggregationListStyle[i] = *rStyle.maAggregationListStyle[i]; 61 } 62 } 63 return *this; 64 } 65 applyStyleList(const TextParagraphPropertiesVector & rSourceListStyle,TextParagraphPropertiesVector & rDestListStyle)66static void applyStyleList( const TextParagraphPropertiesVector& rSourceListStyle, TextParagraphPropertiesVector& rDestListStyle ) 67 { 68 TextParagraphPropertiesVector::iterator aDestListStyleIter( rDestListStyle.begin() ); 69 for (auto const& elemSource : rSourceListStyle) 70 { 71 if ( aDestListStyleIter != rDestListStyle.end() ) 72 { 73 (*aDestListStyleIter)->apply(*elemSource); 74 ++aDestListStyleIter; 75 } 76 else 77 rDestListStyle.push_back( std::make_shared<TextParagraphProperties>(*elemSource) ); 78 } 79 } 80 apply(const TextListStyle & rTextListStyle)81void TextListStyle::apply( const TextListStyle& rTextListStyle ) 82 { 83 applyStyleList( rTextListStyle.getAggregationListStyle(), getAggregationListStyle() ); 84 applyStyleList( rTextListStyle.getListStyle(), getListStyle() ); 85 } 86 87 #ifdef DBG_UTIL dump() const88void TextListStyle::dump() const 89 { 90 for ( int i = 0; i < 9; i++ ) 91 { 92 SAL_INFO("oox.drawingml", "text list style level: " << i); 93 maListStyle[i]->dump(); 94 } 95 } 96 #endif 97 } } 98 99 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ 100