xref: /AOO41X/main/oox/source/ppt/customshowlistcontext.cxx (revision ca5ec2004b000a7d9aaa8381be8ac2853e3b1dc7)
1 /**************************************************************
2  *
3  * Licensed to the Apache Software Foundation (ASF) under one
4  * or more contributor license agreements.  See the NOTICE file
5  * distributed with this work for additional information
6  * regarding copyright ownership.  The ASF licenses this file
7  * to you under the Apache License, Version 2.0 (the
8  * "License"); you may not use this file except in compliance
9  * with the License.  You may obtain a copy of the License at
10  *
11  *   http://www.apache.org/licenses/LICENSE-2.0
12  *
13  * Unless required by applicable law or agreed to in writing,
14  * software distributed under the License is distributed on an
15  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16  * KIND, either express or implied.  See the License for the
17  * specific language governing permissions and limitations
18  * under the License.
19  *
20  *************************************************************/
21 
22 
23 
24 #include "customshowlistcontext.hxx"
25 
26 using namespace ::oox::core;
27 using namespace ::com::sun::star::uno;
28 using namespace ::com::sun::star::xml::sax;
29 
30 namespace oox { namespace ppt {
31 
32 class CustomShowContext : public ::oox::core::ContextHandler
33 {
34     CustomShow mrCustomShow;
35 
36 public:
37     CustomShowContext( ::oox::core::ContextHandler& rParent,
38         const ::com::sun::star::uno::Reference< ::com::sun::star::xml::sax::XFastAttributeList >& xAttribs,
39             CustomShow& rCustomShow );
40     ~CustomShowContext( );
41     virtual ::com::sun::star::uno::Reference< ::com::sun::star::xml::sax::XFastContextHandler > SAL_CALL
42         createFastChildContext( ::sal_Int32 aElementToken, const ::com::sun::star::uno::Reference< ::com::sun::star::xml::sax::XFastAttributeList >& /*xAttribs*/ )
43             throw ( ::com::sun::star::xml::sax::SAXException, ::com::sun::star::uno::RuntimeException );
44 };
45 
CustomShowContext(ContextHandler & rParent,const Reference<XFastAttributeList> & rxAttribs,CustomShow & rCustomShow)46 CustomShowContext::CustomShowContext( ContextHandler& rParent,
47     const Reference< XFastAttributeList >& rxAttribs,
48         CustomShow& rCustomShow )
49 : ContextHandler( rParent )
50 , mrCustomShow( rCustomShow )
51 {
52     mrCustomShow.maName = rxAttribs->getOptionalValue( XML_name );
53     mrCustomShow.mnId = rxAttribs->getOptionalValue( XML_id );
54 }
55 
~CustomShowContext()56 CustomShowContext::~CustomShowContext( )
57 {
58 }
59 
createFastChildContext(sal_Int32 aElementToken,const Reference<XFastAttributeList> & xAttribs)60 Reference< XFastContextHandler > SAL_CALL CustomShowContext::createFastChildContext( sal_Int32 aElementToken,
61     const Reference< XFastAttributeList >& xAttribs )
62         throw ( SAXException, RuntimeException )
63 {
64     Reference< XFastContextHandler > xRet;
65     switch( aElementToken )
66     {
67         case PPT_TOKEN( sld ) :
68             mrCustomShow.maSldLst.push_back( xAttribs->getOptionalValue( R_TOKEN( id ) ) );
69         default:
70         break;
71     }
72     if( !xRet.is() )
73         xRet.set( this );
74 
75     return xRet;
76 }
77 
78 //---------------------------------------------------------------------------
79 
CustomShowListContext(ContextHandler & rParent,std::vector<CustomShow> & rCustomShowList)80 CustomShowListContext::CustomShowListContext( ContextHandler& rParent,
81     std::vector< CustomShow >& rCustomShowList )
82 : ContextHandler( rParent )
83 , mrCustomShowList( rCustomShowList )
84 {
85 }
86 
~CustomShowListContext()87 CustomShowListContext::~CustomShowListContext( )
88 {
89 }
90 
createFastChildContext(sal_Int32 aElementToken,const Reference<XFastAttributeList> & xAttribs)91 Reference< XFastContextHandler > SAL_CALL CustomShowListContext::createFastChildContext( sal_Int32 aElementToken,
92     const Reference< XFastAttributeList >& xAttribs )
93         throw ( SAXException, RuntimeException )
94 {
95     Reference< XFastContextHandler > xRet;
96     switch( aElementToken )
97     {
98         case PPT_TOKEN( custShow ) :
99         {
100             CustomShow aCustomShow;
101             mrCustomShowList.push_back( aCustomShow );
102             xRet = new CustomShowContext( *this, xAttribs, mrCustomShowList.back() );
103         }
104         default:
105         break;
106     }
107     if( !xRet.is() )
108         xRet.set( this );
109 
110     return xRet;
111 }
112 
113 
114 } }
115