Line data Source code
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/clrschemecontext.hxx"
21 : #include "oox/core/xmlfilterbase.hxx"
22 :
23 : using namespace ::oox::core;
24 : using namespace ::com::sun::star::uno;
25 : using namespace ::com::sun::star::xml::sax;
26 :
27 : namespace oox { namespace drawingml {
28 :
29 1536 : static void setClrMap( const ::oox::AttributeList& rAttributes,
30 : ClrMap& rClrMap, sal_Int32 nToken )
31 : {
32 1536 : if ( rAttributes.hasAttribute( nToken ) )
33 : {
34 1536 : sal_Int32 nMappedToken = rAttributes.getToken( nToken, 0 );
35 1536 : rClrMap.setColorMap( nToken, nMappedToken );
36 : }
37 1536 : }
38 :
39 128 : clrMapContext::clrMapContext( ContextHandler2Helper& rParent,
40 : const ::oox::AttributeList& rAttributes, ClrMap& rClrMap )
41 128 : : ContextHandler2( rParent )
42 : {
43 128 : setClrMap( rAttributes, rClrMap, XML_bg1 );
44 128 : setClrMap( rAttributes, rClrMap, XML_tx1 );
45 128 : setClrMap( rAttributes, rClrMap, XML_bg2 );
46 128 : setClrMap( rAttributes, rClrMap, XML_tx2 );
47 128 : setClrMap( rAttributes, rClrMap, XML_accent1 );
48 128 : setClrMap( rAttributes, rClrMap, XML_accent2 );
49 128 : setClrMap( rAttributes, rClrMap, XML_accent3 );
50 128 : setClrMap( rAttributes, rClrMap, XML_accent4 );
51 128 : setClrMap( rAttributes, rClrMap, XML_accent5 );
52 128 : setClrMap( rAttributes, rClrMap, XML_accent6 );
53 128 : setClrMap( rAttributes, rClrMap, XML_hlink );
54 128 : setClrMap( rAttributes, rClrMap, XML_folHlink );
55 128 : }
56 :
57 30840 : clrSchemeColorContext::clrSchemeColorContext( ContextHandler2Helper& rParent, ClrScheme& rClrScheme, sal_Int32 nColorToken ) :
58 : ColorContext( rParent, *this ),
59 : mrClrScheme( rClrScheme ),
60 30840 : mnColorToken( nColorToken )
61 : {
62 30840 : }
63 :
64 92520 : clrSchemeColorContext::~clrSchemeColorContext()
65 : {
66 30840 : mrClrScheme.setColor( mnColorToken, getColor( getFilter().getGraphicHelper() ) );
67 61680 : }
68 :
69 2570 : clrSchemeContext::clrSchemeContext( ContextHandler2Helper& rParent, ClrScheme& rClrScheme ) :
70 : ContextHandler2( rParent ),
71 2570 : mrClrScheme( rClrScheme )
72 : {
73 2570 : }
74 :
75 30840 : ContextHandlerRef clrSchemeContext::onCreateContext(
76 : sal_Int32 nElement, const AttributeList& )
77 : {
78 30840 : switch( nElement )
79 : {
80 : case A_TOKEN( dk1 ):
81 : case A_TOKEN( lt1 ):
82 : case A_TOKEN( dk2 ):
83 : case A_TOKEN( lt2 ):
84 : case A_TOKEN( accent1 ):
85 : case A_TOKEN( accent2 ):
86 : case A_TOKEN( accent3 ):
87 : case A_TOKEN( accent4 ):
88 : case A_TOKEN( accent5 ):
89 : case A_TOKEN( accent6 ):
90 : case A_TOKEN( hlink ):
91 : case A_TOKEN( folHlink ):
92 30840 : return new clrSchemeColorContext( *this, mrClrScheme, getBaseToken( nElement ) );
93 : }
94 0 : return 0;
95 : }
96 :
97 408 : } }
98 :
99 : /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
|