1*ca5ec200SAndrew Rist /**************************************************************
2cdf0e10cSrcweir *
3*ca5ec200SAndrew Rist * Licensed to the Apache Software Foundation (ASF) under one
4*ca5ec200SAndrew Rist * or more contributor license agreements. See the NOTICE file
5*ca5ec200SAndrew Rist * distributed with this work for additional information
6*ca5ec200SAndrew Rist * regarding copyright ownership. The ASF licenses this file
7*ca5ec200SAndrew Rist * to you under the Apache License, Version 2.0 (the
8*ca5ec200SAndrew Rist * "License"); you may not use this file except in compliance
9*ca5ec200SAndrew Rist * with the License. You may obtain a copy of the License at
10*ca5ec200SAndrew Rist *
11*ca5ec200SAndrew Rist * http://www.apache.org/licenses/LICENSE-2.0
12*ca5ec200SAndrew Rist *
13*ca5ec200SAndrew Rist * Unless required by applicable law or agreed to in writing,
14*ca5ec200SAndrew Rist * software distributed under the License is distributed on an
15*ca5ec200SAndrew Rist * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16*ca5ec200SAndrew Rist * KIND, either express or implied. See the License for the
17*ca5ec200SAndrew Rist * specific language governing permissions and limitations
18*ca5ec200SAndrew Rist * under the License.
19*ca5ec200SAndrew Rist *
20*ca5ec200SAndrew Rist *************************************************************/
21*ca5ec200SAndrew Rist
22*ca5ec200SAndrew Rist
23cdf0e10cSrcweir
24cdf0e10cSrcweir #include "oox/drawingml/clrschemecontext.hxx"
25cdf0e10cSrcweir #include "oox/core/xmlfilterbase.hxx"
26cdf0e10cSrcweir
27cdf0e10cSrcweir using namespace ::oox::core;
28cdf0e10cSrcweir using namespace ::com::sun::star::uno;
29cdf0e10cSrcweir using namespace ::com::sun::star::xml::sax;
30cdf0e10cSrcweir
31cdf0e10cSrcweir namespace oox { namespace drawingml {
32cdf0e10cSrcweir
setClrMap(const::com::sun::star::uno::Reference<::com::sun::star::xml::sax::XFastAttributeList> & xAttributes,ClrMap & rClrMap,sal_Int32 nToken)33cdf0e10cSrcweir static void setClrMap( const ::com::sun::star::uno::Reference< ::com::sun::star::xml::sax::XFastAttributeList >& xAttributes,
34cdf0e10cSrcweir ClrMap& rClrMap, sal_Int32 nToken )
35cdf0e10cSrcweir {
36cdf0e10cSrcweir if ( xAttributes->hasAttribute( nToken ) )
37cdf0e10cSrcweir {
38cdf0e10cSrcweir sal_Int32 nMappedToken = xAttributes->getOptionalValueToken( nToken, 0 );
39cdf0e10cSrcweir rClrMap.setColorMap( nToken, nMappedToken );
40cdf0e10cSrcweir }
41cdf0e10cSrcweir }
42cdf0e10cSrcweir
clrMapContext(ContextHandler & rParent,const::com::sun::star::uno::Reference<::com::sun::star::xml::sax::XFastAttributeList> & xAttributes,ClrMap & rClrMap)43cdf0e10cSrcweir clrMapContext::clrMapContext( ContextHandler& rParent,
44cdf0e10cSrcweir const ::com::sun::star::uno::Reference< ::com::sun::star::xml::sax::XFastAttributeList >& xAttributes, ClrMap& rClrMap )
45cdf0e10cSrcweir : ContextHandler( rParent )
46cdf0e10cSrcweir {
47cdf0e10cSrcweir setClrMap( xAttributes, rClrMap, XML_bg1 );
48cdf0e10cSrcweir setClrMap( xAttributes, rClrMap, XML_tx1 );
49cdf0e10cSrcweir setClrMap( xAttributes, rClrMap, XML_bg2 );
50cdf0e10cSrcweir setClrMap( xAttributes, rClrMap, XML_tx2 );
51cdf0e10cSrcweir setClrMap( xAttributes, rClrMap, XML_accent1 );
52cdf0e10cSrcweir setClrMap( xAttributes, rClrMap, XML_accent2 );
53cdf0e10cSrcweir setClrMap( xAttributes, rClrMap, XML_accent3 );
54cdf0e10cSrcweir setClrMap( xAttributes, rClrMap, XML_accent4 );
55cdf0e10cSrcweir setClrMap( xAttributes, rClrMap, XML_accent5 );
56cdf0e10cSrcweir setClrMap( xAttributes, rClrMap, XML_accent6 );
57cdf0e10cSrcweir setClrMap( xAttributes, rClrMap, XML_hlink );
58cdf0e10cSrcweir setClrMap( xAttributes, rClrMap, XML_folHlink );
59cdf0e10cSrcweir }
60cdf0e10cSrcweir
clrSchemeColorContext(ContextHandler & rParent,ClrScheme & rClrScheme,sal_Int32 nColorToken)61cdf0e10cSrcweir clrSchemeColorContext::clrSchemeColorContext( ContextHandler& rParent, ClrScheme& rClrScheme, sal_Int32 nColorToken ) :
62cdf0e10cSrcweir ColorContext( rParent, *this ),
63cdf0e10cSrcweir mrClrScheme( rClrScheme ),
64cdf0e10cSrcweir mnColorToken( nColorToken )
65cdf0e10cSrcweir {
66cdf0e10cSrcweir }
67cdf0e10cSrcweir
~clrSchemeColorContext()68cdf0e10cSrcweir clrSchemeColorContext::~clrSchemeColorContext()
69cdf0e10cSrcweir {
70cdf0e10cSrcweir mrClrScheme.setColor( mnColorToken, getColor( getFilter().getGraphicHelper() ) );
71cdf0e10cSrcweir }
72cdf0e10cSrcweir
clrSchemeContext(ContextHandler & rParent,ClrScheme & rClrScheme)73cdf0e10cSrcweir clrSchemeContext::clrSchemeContext( ContextHandler& rParent, ClrScheme& rClrScheme ) :
74cdf0e10cSrcweir ContextHandler( rParent ),
75cdf0e10cSrcweir mrClrScheme( rClrScheme )
76cdf0e10cSrcweir {
77cdf0e10cSrcweir }
78cdf0e10cSrcweir
createFastChildContext(sal_Int32 nElement,const Reference<XFastAttributeList> &)79cdf0e10cSrcweir Reference< XFastContextHandler > clrSchemeContext::createFastChildContext(
80cdf0e10cSrcweir sal_Int32 nElement, const Reference< XFastAttributeList >& ) throw (SAXException, RuntimeException)
81cdf0e10cSrcweir {
82cdf0e10cSrcweir switch( nElement )
83cdf0e10cSrcweir {
84cdf0e10cSrcweir case A_TOKEN( dk1 ):
85cdf0e10cSrcweir case A_TOKEN( lt1 ):
86cdf0e10cSrcweir case A_TOKEN( dk2 ):
87cdf0e10cSrcweir case A_TOKEN( lt2 ):
88cdf0e10cSrcweir case A_TOKEN( accent1 ):
89cdf0e10cSrcweir case A_TOKEN( accent2 ):
90cdf0e10cSrcweir case A_TOKEN( accent3 ):
91cdf0e10cSrcweir case A_TOKEN( accent4 ):
92cdf0e10cSrcweir case A_TOKEN( accent5 ):
93cdf0e10cSrcweir case A_TOKEN( accent6 ):
94cdf0e10cSrcweir case A_TOKEN( hlink ):
95cdf0e10cSrcweir case A_TOKEN( folHlink ):
96cdf0e10cSrcweir return new clrSchemeColorContext( *this, mrClrScheme, getBaseToken( nElement ) );
97cdf0e10cSrcweir }
98cdf0e10cSrcweir return 0;
99cdf0e10cSrcweir }
100cdf0e10cSrcweir
101cdf0e10cSrcweir } }
102