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