/************************************************************** * * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. * *************************************************************/ // MARKER(update_precomp.py): autogen include statement, do not remove #include "precompiled_svx.hxx" #include #include #include #include #include "UnoNameItemTable.hxx" #include #include #include #include "svx/unoapi.hxx" #include #include #include "svx/unofill.hxx" #include using namespace ::com::sun::star; using namespace ::rtl; using namespace ::cppu; class SvxUnoBitmapTable : public SvxUnoNameItemTable { public: SvxUnoBitmapTable( SdrModel* pModel ) throw(); virtual ~SvxUnoBitmapTable() throw(); virtual NameOrIndex* createItem() const throw(); virtual bool isValid( const NameOrIndex* pItem ) const; // XServiceInfo virtual OUString SAL_CALL getImplementationName( ) throw( uno::RuntimeException ); virtual uno::Sequence< OUString > SAL_CALL getSupportedServiceNames( ) throw( uno::RuntimeException); // XElementAccess virtual uno::Type SAL_CALL getElementType( ) throw( uno::RuntimeException); }; SvxUnoBitmapTable::SvxUnoBitmapTable( SdrModel* pModel ) throw() : SvxUnoNameItemTable( pModel, XATTR_FILLBITMAP, MID_GRAFURL ) { } SvxUnoBitmapTable::~SvxUnoBitmapTable() throw() { } bool SvxUnoBitmapTable::isValid( const NameOrIndex* pItem ) const { if( SvxUnoNameItemTable::isValid( pItem ) ) { const XFillBitmapItem* pBitmapItem = dynamic_cast< const XFillBitmapItem* >( pItem ); if( pBitmapItem ) { const Graphic& rGraphic = pBitmapItem->GetGraphicObject().GetGraphic(); return rGraphic.GetSizeBytes() > 0; } } return false; } OUString SAL_CALL SvxUnoBitmapTable::getImplementationName() throw( uno::RuntimeException ) { return OUString( RTL_CONSTASCII_USTRINGPARAM("SvxUnoBitmapTable") ); } uno::Sequence< OUString > SAL_CALL SvxUnoBitmapTable::getSupportedServiceNames( ) throw( uno::RuntimeException ) { uno::Sequence< OUString > aSNS( 1 ); aSNS.getArray()[0] = OUString( RTL_CONSTASCII_USTRINGPARAM("com.sun.star.drawing.BitmapTable" )); return aSNS; } NameOrIndex* SvxUnoBitmapTable::createItem() const throw() { return new XFillBitmapItem(); } // XElementAccess uno::Type SAL_CALL SvxUnoBitmapTable::getElementType( ) throw( uno::RuntimeException ) { return ::getCppuType( (const ::rtl::OUString*)0 ); } /** * Create a bitmaptable */ uno::Reference< uno::XInterface > SAL_CALL SvxUnoBitmapTable_createInstance( SdrModel* pModel ) { return *new SvxUnoBitmapTable(pModel); }