1*cdf0e10cSrcweir /************************************************************************* 2*cdf0e10cSrcweir * 3*cdf0e10cSrcweir * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 4*cdf0e10cSrcweir * 5*cdf0e10cSrcweir * Copyright 2000, 2010 Oracle and/or its affiliates. 6*cdf0e10cSrcweir * 7*cdf0e10cSrcweir * OpenOffice.org - a multi-platform office productivity suite 8*cdf0e10cSrcweir * 9*cdf0e10cSrcweir * This file is part of OpenOffice.org. 10*cdf0e10cSrcweir * 11*cdf0e10cSrcweir * OpenOffice.org is free software: you can redistribute it and/or modify 12*cdf0e10cSrcweir * it under the terms of the GNU Lesser General Public License version 3 13*cdf0e10cSrcweir * only, as published by the Free Software Foundation. 14*cdf0e10cSrcweir * 15*cdf0e10cSrcweir * OpenOffice.org is distributed in the hope that it will be useful, 16*cdf0e10cSrcweir * but WITHOUT ANY WARRANTY; without even the implied warranty of 17*cdf0e10cSrcweir * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 18*cdf0e10cSrcweir * GNU Lesser General Public License version 3 for more details 19*cdf0e10cSrcweir * (a copy is included in the LICENSE file that accompanied this code). 20*cdf0e10cSrcweir * 21*cdf0e10cSrcweir * You should have received a copy of the GNU Lesser General Public License 22*cdf0e10cSrcweir * version 3 along with OpenOffice.org. If not, see 23*cdf0e10cSrcweir * <http://www.openoffice.org/license.html> 24*cdf0e10cSrcweir * for a copy of the LGPLv3 License. 25*cdf0e10cSrcweir * 26*cdf0e10cSrcweir ************************************************************************/ 27*cdf0e10cSrcweir 28*cdf0e10cSrcweir // MARKER(update_precomp.py): autogen include statement, do not remove 29*cdf0e10cSrcweir #include "precompiled_chart2.hxx" 30*cdf0e10cSrcweir #include "MediaDescriptorHelper.hxx" 31*cdf0e10cSrcweir 32*cdf0e10cSrcweir using namespace ::com::sun::star; 33*cdf0e10cSrcweir 34*cdf0e10cSrcweir namespace apphelper 35*cdf0e10cSrcweir { 36*cdf0e10cSrcweir 37*cdf0e10cSrcweir 38*cdf0e10cSrcweir const short FLAG_DEPRECATED =1; 39*cdf0e10cSrcweir const short FLAG_MODEL =2; 40*cdf0e10cSrcweir 41*cdf0e10cSrcweir #define WRITE_PROPERTY( MediaName, nFlags ) \ 42*cdf0e10cSrcweir if(rProp.Name.equals(::rtl::OUString::createFromAscii(#MediaName))) \ 43*cdf0e10cSrcweir { \ 44*cdf0e10cSrcweir if( rProp.Value >>= MediaName ) \ 45*cdf0e10cSrcweir ISSET_##MediaName = sal_True; \ 46*cdf0e10cSrcweir if(nFlags & FLAG_DEPRECATED) \ 47*cdf0e10cSrcweir { \ 48*cdf0e10cSrcweir m_aDeprecatedProperties[nDeprecatedCount]=rProp;\ 49*cdf0e10cSrcweir nDeprecatedCount++; \ 50*cdf0e10cSrcweir } \ 51*cdf0e10cSrcweir else \ 52*cdf0e10cSrcweir { \ 53*cdf0e10cSrcweir m_aRegularProperties[nRegularCount]=rProp; \ 54*cdf0e10cSrcweir nRegularCount++; \ 55*cdf0e10cSrcweir if( nFlags & FLAG_MODEL) \ 56*cdf0e10cSrcweir { \ 57*cdf0e10cSrcweir m_aModelProperties[nModelCount]=rProp; \ 58*cdf0e10cSrcweir nModelCount++; \ 59*cdf0e10cSrcweir } \ 60*cdf0e10cSrcweir } \ 61*cdf0e10cSrcweir } 62*cdf0e10cSrcweir 63*cdf0e10cSrcweir MediaDescriptorHelper::MediaDescriptorHelper( const uno::Sequence< 64*cdf0e10cSrcweir beans::PropertyValue > & rMediaDescriptor ) 65*cdf0e10cSrcweir { 66*cdf0e10cSrcweir impl_init(); 67*cdf0e10cSrcweir 68*cdf0e10cSrcweir m_aRegularProperties.realloc(0); 69*cdf0e10cSrcweir m_aRegularProperties.realloc(rMediaDescriptor.getLength()); 70*cdf0e10cSrcweir sal_Int32 nRegularCount = 0; 71*cdf0e10cSrcweir 72*cdf0e10cSrcweir m_aDeprecatedProperties.realloc(0); 73*cdf0e10cSrcweir m_aDeprecatedProperties.realloc(rMediaDescriptor.getLength()); 74*cdf0e10cSrcweir sal_Int32 nDeprecatedCount = 0; 75*cdf0e10cSrcweir 76*cdf0e10cSrcweir m_aAdditionalProperties.realloc(0); 77*cdf0e10cSrcweir m_aAdditionalProperties.realloc(rMediaDescriptor.getLength()); 78*cdf0e10cSrcweir sal_Int32 nAdditionalCount = 0; 79*cdf0e10cSrcweir 80*cdf0e10cSrcweir m_aModelProperties.realloc(0); 81*cdf0e10cSrcweir m_aModelProperties.realloc(rMediaDescriptor.getLength()); 82*cdf0e10cSrcweir sal_Int32 nModelCount = 0; 83*cdf0e10cSrcweir 84*cdf0e10cSrcweir 85*cdf0e10cSrcweir //read given rMediaDescriptor and store in internal structures: 86*cdf0e10cSrcweir for( sal_Int32 i= rMediaDescriptor.getLength();i--;) 87*cdf0e10cSrcweir { 88*cdf0e10cSrcweir const beans::PropertyValue& rProp = rMediaDescriptor[i]; 89*cdf0e10cSrcweir WRITE_PROPERTY( AsTemplate, FLAG_MODEL ) 90*cdf0e10cSrcweir else WRITE_PROPERTY( Author, FLAG_MODEL ) 91*cdf0e10cSrcweir else WRITE_PROPERTY( CharacterSet, FLAG_MODEL ) 92*cdf0e10cSrcweir else WRITE_PROPERTY( Comment, FLAG_MODEL ) 93*cdf0e10cSrcweir else WRITE_PROPERTY( ComponentData, FLAG_MODEL ) 94*cdf0e10cSrcweir else WRITE_PROPERTY( FileName, FLAG_DEPRECATED ) 95*cdf0e10cSrcweir else WRITE_PROPERTY( FilterData, FLAG_MODEL ) 96*cdf0e10cSrcweir else WRITE_PROPERTY( FilterName, FLAG_MODEL ) 97*cdf0e10cSrcweir else WRITE_PROPERTY( FilterFlags, FLAG_DEPRECATED) 98*cdf0e10cSrcweir else WRITE_PROPERTY( FilterOptions, FLAG_MODEL ) 99*cdf0e10cSrcweir else WRITE_PROPERTY( FrameName, FLAG_MODEL ) 100*cdf0e10cSrcweir else WRITE_PROPERTY( Hidden, FLAG_MODEL ) 101*cdf0e10cSrcweir else WRITE_PROPERTY( HierarchicalDocumentName, FLAG_MODEL ) 102*cdf0e10cSrcweir else WRITE_PROPERTY( OutputStream, 0 ) 103*cdf0e10cSrcweir else WRITE_PROPERTY( InputStream, 0 ) 104*cdf0e10cSrcweir else WRITE_PROPERTY( InteractionHandler, 0 ) 105*cdf0e10cSrcweir else WRITE_PROPERTY( JumpMark, 0 ) 106*cdf0e10cSrcweir else WRITE_PROPERTY( MediaType, FLAG_MODEL ) 107*cdf0e10cSrcweir else WRITE_PROPERTY( OpenFlags, FLAG_DEPRECATED ) 108*cdf0e10cSrcweir else WRITE_PROPERTY( OpenNewView, 0 ) 109*cdf0e10cSrcweir else WRITE_PROPERTY( Overwrite, FLAG_MODEL ) 110*cdf0e10cSrcweir else WRITE_PROPERTY( Password, FLAG_MODEL ) 111*cdf0e10cSrcweir else WRITE_PROPERTY( PosSize, 0 ) 112*cdf0e10cSrcweir else WRITE_PROPERTY( PostData, 0 ) 113*cdf0e10cSrcweir else WRITE_PROPERTY( PostString, FLAG_DEPRECATED ) 114*cdf0e10cSrcweir else WRITE_PROPERTY( Preview, FLAG_MODEL ) 115*cdf0e10cSrcweir else WRITE_PROPERTY( ReadOnly, 0 ) 116*cdf0e10cSrcweir else WRITE_PROPERTY( Referer, FLAG_MODEL ) 117*cdf0e10cSrcweir else WRITE_PROPERTY( SetEmbedded, 0 ) 118*cdf0e10cSrcweir else WRITE_PROPERTY( Silent, 0 ) 119*cdf0e10cSrcweir else WRITE_PROPERTY( StatusIndicator, 0 ) 120*cdf0e10cSrcweir else WRITE_PROPERTY( Storage, FLAG_MODEL ) 121*cdf0e10cSrcweir else WRITE_PROPERTY( Stream, FLAG_MODEL ) 122*cdf0e10cSrcweir else WRITE_PROPERTY( TemplateName, FLAG_DEPRECATED ) 123*cdf0e10cSrcweir else WRITE_PROPERTY( TemplateRegionName, FLAG_DEPRECATED ) 124*cdf0e10cSrcweir else WRITE_PROPERTY( Unpacked, FLAG_MODEL ) 125*cdf0e10cSrcweir else WRITE_PROPERTY( URL, FLAG_MODEL ) 126*cdf0e10cSrcweir else WRITE_PROPERTY( Version, FLAG_MODEL ) 127*cdf0e10cSrcweir else WRITE_PROPERTY( ViewData, FLAG_MODEL ) 128*cdf0e10cSrcweir else WRITE_PROPERTY( ViewId, FLAG_MODEL ) 129*cdf0e10cSrcweir else WRITE_PROPERTY( WinExtent, FLAG_DEPRECATED ) 130*cdf0e10cSrcweir else 131*cdf0e10cSrcweir { 132*cdf0e10cSrcweir m_aAdditionalProperties[nAdditionalCount]=rProp; 133*cdf0e10cSrcweir nAdditionalCount++; 134*cdf0e10cSrcweir } 135*cdf0e10cSrcweir } 136*cdf0e10cSrcweir 137*cdf0e10cSrcweir m_aRegularProperties.realloc(nRegularCount); 138*cdf0e10cSrcweir m_aDeprecatedProperties.realloc(nDeprecatedCount); 139*cdf0e10cSrcweir m_aAdditionalProperties.realloc(nAdditionalCount); 140*cdf0e10cSrcweir m_aModelProperties.realloc(nModelCount); 141*cdf0e10cSrcweir } 142*cdf0e10cSrcweir 143*cdf0e10cSrcweir void MediaDescriptorHelper::impl_init() 144*cdf0e10cSrcweir { 145*cdf0e10cSrcweir AsTemplate = sal_False; 146*cdf0e10cSrcweir ISSET_AsTemplate = sal_False; 147*cdf0e10cSrcweir 148*cdf0e10cSrcweir ISSET_Author = sal_False; 149*cdf0e10cSrcweir ISSET_CharacterSet = sal_False; 150*cdf0e10cSrcweir ISSET_Comment = sal_False; 151*cdf0e10cSrcweir 152*cdf0e10cSrcweir // ::com::sun::star::uno::Any ComponentData; 153*cdf0e10cSrcweir ISSET_ComponentData = sal_False; 154*cdf0e10cSrcweir ISSET_FileName = sal_False; 155*cdf0e10cSrcweir 156*cdf0e10cSrcweir // ::com::sun::star::uno::Any FilterData; 157*cdf0e10cSrcweir ISSET_FilterData = sal_False; 158*cdf0e10cSrcweir ISSET_FilterName = sal_False; 159*cdf0e10cSrcweir ISSET_FilterFlags = sal_False; 160*cdf0e10cSrcweir ISSET_FilterOptions = sal_False; 161*cdf0e10cSrcweir ISSET_FrameName = sal_False; 162*cdf0e10cSrcweir 163*cdf0e10cSrcweir Hidden = sal_False; 164*cdf0e10cSrcweir ISSET_Hidden = sal_False; 165*cdf0e10cSrcweir ISSET_HierarchicalDocumentName = sal_False; 166*cdf0e10cSrcweir ISSET_OutputStream = sal_False; 167*cdf0e10cSrcweir ISSET_InputStream = sal_False; 168*cdf0e10cSrcweir ISSET_InteractionHandler = sal_False; 169*cdf0e10cSrcweir ISSET_JumpMark = sal_False; 170*cdf0e10cSrcweir ISSET_MediaType = sal_False; 171*cdf0e10cSrcweir ISSET_OpenFlags = sal_False; 172*cdf0e10cSrcweir OpenNewView = sal_False; 173*cdf0e10cSrcweir ISSET_OpenNewView = sal_False; 174*cdf0e10cSrcweir Overwrite = sal_False; 175*cdf0e10cSrcweir ISSET_Overwrite = sal_False; 176*cdf0e10cSrcweir ISSET_Password = sal_False; 177*cdf0e10cSrcweir 178*cdf0e10cSrcweir // ::com::sun::star::awt::Rectangle PosSize; 179*cdf0e10cSrcweir ISSET_PosSize = sal_False; 180*cdf0e10cSrcweir 181*cdf0e10cSrcweir // ::com::sun::star::uno::Sequence< sal_Int8 > PostData; 182*cdf0e10cSrcweir ISSET_PostData = sal_False; 183*cdf0e10cSrcweir ISSET_PostString = sal_False; 184*cdf0e10cSrcweir Preview = sal_False; 185*cdf0e10cSrcweir ISSET_Preview = sal_False; 186*cdf0e10cSrcweir ReadOnly = sal_False; 187*cdf0e10cSrcweir ISSET_ReadOnly = sal_False; 188*cdf0e10cSrcweir ISSET_Referer = sal_False; 189*cdf0e10cSrcweir ISSET_StatusIndicator = sal_False; 190*cdf0e10cSrcweir Silent = sal_False; 191*cdf0e10cSrcweir ISSET_Silent = sal_False; 192*cdf0e10cSrcweir ISSET_TemplateName = sal_False; 193*cdf0e10cSrcweir ISSET_TemplateRegionName = sal_False; 194*cdf0e10cSrcweir Unpacked = sal_False; 195*cdf0e10cSrcweir ISSET_Unpacked = sal_False; 196*cdf0e10cSrcweir ISSET_URL = sal_False; 197*cdf0e10cSrcweir Version = 0; 198*cdf0e10cSrcweir ISSET_Version = sal_False; 199*cdf0e10cSrcweir 200*cdf0e10cSrcweir // ::com::sun::star::uno::Any ViewData; 201*cdf0e10cSrcweir ISSET_ViewData = sal_False; 202*cdf0e10cSrcweir ViewId = 0; 203*cdf0e10cSrcweir ISSET_ViewId = sal_False; 204*cdf0e10cSrcweir 205*cdf0e10cSrcweir ISSET_WinExtent = sal_False; 206*cdf0e10cSrcweir 207*cdf0e10cSrcweir ISSET_Storage = sal_False; 208*cdf0e10cSrcweir ISSET_Stream = sal_False; 209*cdf0e10cSrcweir } 210*cdf0e10cSrcweir 211*cdf0e10cSrcweir MediaDescriptorHelper::~MediaDescriptorHelper() 212*cdf0e10cSrcweir { 213*cdf0e10cSrcweir 214*cdf0e10cSrcweir } 215*cdf0e10cSrcweir 216*cdf0e10cSrcweir uno::Sequence< beans::PropertyValue > MediaDescriptorHelper 217*cdf0e10cSrcweir ::getReducedForModel() 218*cdf0e10cSrcweir { 219*cdf0e10cSrcweir return m_aModelProperties; 220*cdf0e10cSrcweir } 221*cdf0e10cSrcweir } 222