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 <vector> 21 #include <algorithm> 22 23 #include <rtl/ustring.hxx> 24 25 #include <oox/drawingml/drawingmltypes.hxx> 26 #include <oox/helper/attributelist.hxx> 27 #include <oox/token/namespaces.hxx> 28 #include <oox/token/tokens.hxx> 29 #include "texttabstoplistcontext.hxx" 30 31 using namespace ::oox::core; 32 using namespace ::com::sun::star::uno; 33 using namespace ::com::sun::star::style; 34 using namespace ::com::sun::star::xml::sax; 35 36 namespace oox { namespace drawingml { 37 TextTabStopListContext(ContextHandler2Helper const & rParent,std::vector<TabStop> & aTabList)38 TextTabStopListContext::TextTabStopListContext( ContextHandler2Helper const & rParent, std::vector< TabStop > & aTabList ) 39 : ContextHandler2( rParent ) 40 , maTabList( aTabList ) 41 { 42 } 43 ~TextTabStopListContext()44 TextTabStopListContext::~TextTabStopListContext() 45 { 46 } 47 onCreateContext(::sal_Int32 aElement,const AttributeList & rAttribs)48 ContextHandlerRef TextTabStopListContext::onCreateContext( ::sal_Int32 aElement, const AttributeList& rAttribs ) 49 { 50 switch( aElement ) 51 { 52 case A_TOKEN( tab ): 53 { 54 OUString sValue; 55 TabStop aTabStop; 56 sValue = rAttribs.getString( XML_pos ).get(); 57 if( !sValue.isEmpty() ) 58 { 59 aTabStop.Position = GetCoordinate( sValue ); 60 } 61 sal_Int32 aToken = rAttribs.getToken( XML_algn, 0 ); 62 if( aToken != 0 ) 63 { 64 aTabStop.Alignment = GetTabAlign( aToken ); 65 } 66 maTabList.push_back(aTabStop); 67 break; 68 } 69 default: 70 break; 71 } 72 return this; 73 } 74 } } 75 76 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ 77