diff options
Diffstat (limited to 'sdext/source/presenter/PresenterBitmapContainer.cxx')
-rw-r--r-- | sdext/source/presenter/PresenterBitmapContainer.cxx | 501 |
1 files changed, 0 insertions, 501 deletions
diff --git a/sdext/source/presenter/PresenterBitmapContainer.cxx b/sdext/source/presenter/PresenterBitmapContainer.cxx deleted file mode 100644 index ed452c7..0000000 --- a/sdext/source/presenter/PresenterBitmapContainer.cxx +++ /dev/null @@ -1,501 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -// MARKER(update_precomp.py): autogen include statement, do not remove -#include "precompiled_sdext.hxx" - -#include "PresenterBitmapContainer.hxx" -#include "PresenterComponent.hxx" -#include "PresenterConfigurationAccess.hxx" - -#include <com/sun/star/deployment/XPackageInformationProvider.hpp> -#include <com/sun/star/drawing/XPresenterHelper.hpp> -#include <com/sun/star/lang/XMultiComponentFactory.hpp> -#include <com/sun/star/rendering/CompositeOperation.hpp> -#include <com/sun/star/rendering/XIntegerBitmap.hpp> -#include <boost/bind.hpp> -#include <map> - -using namespace ::com::sun::star; -using namespace ::com::sun::star::uno; -using namespace ::std; -using ::rtl::OUString; - -#define A2S(pString) (::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(pString))) - - -namespace sdext { namespace presenter { - -namespace { -static OUString gsNameProperty (A2S("Name")); -static OUString gsNormalFileNameProperty (A2S("NormalFileName")); -static OUString gsMouseOverFileNameProperty (A2S("MouseOverFileName")); -static OUString gsButtonDownFileNameProperty (A2S("ButtonDownFileName")); -static OUString gsDisabledFileNameProperty (A2S("DisabledFileName")); -static OUString gsMaskFileNameProperty (A2S("MaskFileName")); -static OUString gsXOffsetProperty (A2S("XOffset")); -static OUString gsYOffsetProperty (A2S("YOffset")); -static OUString gsXHotSpotProperty (A2S("XHotSpot")); -static OUString gsYHotSpotProperty (A2S("YHotSpot")); -static OUString gsReplacementColorProperty (A2S("ReplacementColor")); -static OUString gsHorizontalTexturingModeProperty (A2S("HorizontalTexturingMode")); -static OUString gsVerticalTexturingModeProperty (A2S("VerticalTexturingMode")); -} - -//===== PresenterBitmapContainer ============================================== - -PresenterBitmapContainer::PresenterBitmapContainer ( - const ::rtl::OUString& rsConfigurationBase, - const ::boost::shared_ptr<PresenterBitmapContainer>& rpParentContainer, - const css::uno::Reference<css::uno::XComponentContext>& rxComponentContext, - const css::uno::Reference<css::rendering::XCanvas>& rxCanvas, - const OUString& rsBasePath, - const css::uno::Reference<css::drawing::XPresenterHelper>& rxPresenterHelper) - : mpParentContainer(rpParentContainer), - maIconContainer(), - msBasePath(rsBasePath), - mxCanvas(rxCanvas), - mxPresenterHelper(rxPresenterHelper) -{ - Initialize(rxComponentContext); - - // Get access to the configuration. - PresenterConfigurationAccess aConfiguration ( - rxComponentContext, - A2S("org.openoffice.Office.extension.PresenterScreen"), - PresenterConfigurationAccess::READ_ONLY); - Reference<container::XNameAccess> xBitmapList ( - aConfiguration.GetConfigurationNode(rsConfigurationBase), - UNO_QUERY_THROW); - - LoadBitmaps(xBitmapList); -} - - - - - -PresenterBitmapContainer::PresenterBitmapContainer ( - const css::uno::Reference<css::container::XNameAccess>& rxRootNode, - const ::boost::shared_ptr<PresenterBitmapContainer>& rpParentContainer, - const css::uno::Reference<css::uno::XComponentContext>& rxComponentContext, - const css::uno::Reference<css::rendering::XCanvas>& rxCanvas, - const OUString& rsBasePath, - const css::uno::Reference<css::drawing::XPresenterHelper>& rxPresenterHelper) - : mpParentContainer(rpParentContainer), - maIconContainer(), - msBasePath(rsBasePath), - mxCanvas(rxCanvas), - mxPresenterHelper(rxPresenterHelper) -{ - Initialize(rxComponentContext); - - LoadBitmaps(rxRootNode); -} - - - - -void PresenterBitmapContainer::Initialize ( - const css::uno::Reference<css::uno::XComponentContext>& rxComponentContext) -{ - if ( ! mxPresenterHelper.is()) - { - // Create an object that is able to load the bitmaps in a format that is - // supported by the canvas. - Reference<lang::XMultiComponentFactory> xFactory ( - rxComponentContext->getServiceManager(), UNO_QUERY); - if ( ! xFactory.is()) - return; - mxPresenterHelper = Reference<drawing::XPresenterHelper>( - xFactory->createInstanceWithContext( - A2S("com.sun.star.drawing.PresenterHelper"), - rxComponentContext), - UNO_QUERY_THROW); - } -} - - - - -PresenterBitmapContainer::~PresenterBitmapContainer (void) -{ - maIconContainer.clear(); -} - - - - -SharedBitmapDescriptor PresenterBitmapContainer::GetBitmap ( - const OUString& rsName) const -{ - BitmapContainer::const_iterator iSet (maIconContainer.find(rsName)); - if (iSet != maIconContainer.end()) - return iSet->second; - else if (mpParentContainer.get() != NULL) - return mpParentContainer->GetBitmap(rsName); - else - return SharedBitmapDescriptor(); -} - - - - -void PresenterBitmapContainer::LoadBitmaps ( - const css::uno::Reference<css::container::XNameAccess>& rxBitmapList) -{ - if ( ! mxCanvas.is()) - return; - - if ( ! rxBitmapList.is()) - return; - - try - { - // Load all button bitmaps. - if (rxBitmapList.is()) - { - PresenterConfigurationAccess::ForAll( - rxBitmapList, - ::boost::bind(&PresenterBitmapContainer::ProcessBitmap, this, _1, _2)); - } - } - catch (Exception&) - { - OSL_ASSERT(false); - } -} - - - - -SharedBitmapDescriptor PresenterBitmapContainer::LoadBitmap ( - const css::uno::Reference<css::container::XHierarchicalNameAccess>& rxNode, - const ::rtl::OUString& rsPath, - const css::uno::Reference<css::drawing::XPresenterHelper>& rxPresenterHelper, - const OUString& rsBasePath, - const css::uno::Reference<css::rendering::XCanvas>& rxCanvas, - const SharedBitmapDescriptor& rpDefault) -{ - SharedBitmapDescriptor pBitmap; - - if (rxNode.is()) - { - try - { - Reference<beans::XPropertySet> xBitmapProperties ( - PresenterConfigurationAccess::GetConfigurationNode(rxNode, rsPath), - UNO_QUERY); - if (xBitmapProperties.is()) - pBitmap = LoadBitmap( - xBitmapProperties, - rxPresenterHelper, - rsBasePath, - rxCanvas, - rpDefault); - } - catch (Exception&) - { - OSL_ASSERT(false); - } - } - - return pBitmap; -} - - - - -void PresenterBitmapContainer::ProcessBitmap ( - const OUString& rsKey, - const Reference<beans::XPropertySet>& rxProperties) -{ - OUString sName; - if ( ! (PresenterConfigurationAccess::GetProperty(rxProperties, gsNameProperty) >>= sName)) - sName = rsKey; - - maIconContainer[sName] = LoadBitmap( - rxProperties, - mxPresenterHelper, - msBasePath, - mxCanvas, - SharedBitmapDescriptor()); -} - - - - -SharedBitmapDescriptor PresenterBitmapContainer::LoadBitmap ( - const Reference<beans::XPropertySet>& rxProperties, - const css::uno::Reference<css::drawing::XPresenterHelper>& rxPresenterHelper, - const OUString& rsBasePath, - const css::uno::Reference<css::rendering::XCanvas>& rxCanvas, - const SharedBitmapDescriptor& rpDefault) -{ - OSL_ASSERT(rxCanvas.is()); - OSL_ASSERT(rxPresenterHelper.is()); - - SharedBitmapDescriptor pBitmap (new BitmapDescriptor(rpDefault)); - - if ( ! rxProperties.is()) - return pBitmap; - - OUString sFileName; - - // Load bitmaps. - if (PresenterConfigurationAccess::GetProperty(rxProperties, gsNormalFileNameProperty) >>= sFileName) - try - { - pBitmap->SetBitmap( - BitmapDescriptor::Normal, - rxPresenterHelper->loadBitmap(rsBasePath + sFileName, rxCanvas)); - } - catch (Exception&) - {} - if (PresenterConfigurationAccess::GetProperty(rxProperties, gsMouseOverFileNameProperty) >>= sFileName) - try - { - pBitmap->SetBitmap( - BitmapDescriptor::MouseOver, - rxPresenterHelper->loadBitmap(rsBasePath + sFileName, rxCanvas)); - } - catch (Exception&) - {} - if (PresenterConfigurationAccess::GetProperty(rxProperties, gsButtonDownFileNameProperty) >>= sFileName) - try - { - pBitmap->SetBitmap( - BitmapDescriptor::ButtonDown, - rxPresenterHelper->loadBitmap(rsBasePath + sFileName, rxCanvas)); - } - catch (Exception&) - {} - if (PresenterConfigurationAccess::GetProperty(rxProperties, gsDisabledFileNameProperty) >>= sFileName) - try - { - pBitmap->SetBitmap( - BitmapDescriptor::Disabled, - rxPresenterHelper->loadBitmap(rsBasePath + sFileName, rxCanvas)); - } - catch (Exception&) - {} - if (PresenterConfigurationAccess::GetProperty(rxProperties, gsMaskFileNameProperty) >>= sFileName) - try - { - pBitmap->SetBitmap( - BitmapDescriptor::Mask, - rxPresenterHelper->loadBitmap(rsBasePath + sFileName, rxCanvas)); - } - catch (Exception&) - {} - - - PresenterConfigurationAccess::GetProperty(rxProperties, gsXOffsetProperty) >>= pBitmap->mnXOffset; - PresenterConfigurationAccess::GetProperty(rxProperties, gsYOffsetProperty) >>= pBitmap->mnYOffset; - - PresenterConfigurationAccess::GetProperty(rxProperties, gsXHotSpotProperty) >>= pBitmap->mnXHotSpot; - PresenterConfigurationAccess::GetProperty(rxProperties, gsYHotSpotProperty) >>= pBitmap->mnYHotSpot; - - PresenterConfigurationAccess::GetProperty(rxProperties, gsReplacementColorProperty) >>= pBitmap->maReplacementColor; - - OUString sTexturingMode; - if (PresenterConfigurationAccess::GetProperty(rxProperties, gsHorizontalTexturingModeProperty) >>= sTexturingMode) - pBitmap->meHorizontalTexturingMode = StringToTexturingMode(sTexturingMode); - if (PresenterConfigurationAccess::GetProperty(rxProperties, gsVerticalTexturingModeProperty) >>= sTexturingMode) - pBitmap->meVerticalTexturingMode = StringToTexturingMode(sTexturingMode); - - return pBitmap; -} - - - - -PresenterBitmapContainer::BitmapDescriptor::TexturingMode - PresenterBitmapContainer::StringToTexturingMode (const OUString& rsTexturingMode) -{ - if (rsTexturingMode == A2S("Once")) - return PresenterBitmapContainer::BitmapDescriptor::Once; - else if (rsTexturingMode == A2S("Repeat")) - return PresenterBitmapContainer::BitmapDescriptor::Repeat; - else if (rsTexturingMode == A2S("Stretch")) - return PresenterBitmapContainer::BitmapDescriptor::Stretch; - else - return PresenterBitmapContainer::BitmapDescriptor::Once; -} - - - - -//===== PresenterBitmapContainer::BitmapSet =================================== - -PresenterBitmapContainer::BitmapDescriptor::BitmapDescriptor (void) - : mnWidth(0), - mnHeight(0), - mnXOffset(0), - mnYOffset(0), - mnXHotSpot(0), - mnYHotSpot(0), - maReplacementColor(0x00000000), - meHorizontalTexturingMode(Once), - meVerticalTexturingMode(Once), - mxNormalBitmap(), - mxMouseOverBitmap(), - mxButtonDownBitmap(), - mxDisabledBitmap(), - mxMaskBitmap() -{ -} - - - - -PresenterBitmapContainer::BitmapDescriptor::BitmapDescriptor ( - const ::boost::shared_ptr<PresenterBitmapContainer::BitmapDescriptor>& rpDefault) - : mnWidth(0), - mnHeight(0), - mnXOffset(0), - mnYOffset(0), - mnXHotSpot(0), - mnYHotSpot(0), - maReplacementColor(0x00000000), - meHorizontalTexturingMode(Once), - meVerticalTexturingMode(Once), - mxNormalBitmap(), - mxMouseOverBitmap(), - mxButtonDownBitmap(), - mxDisabledBitmap(), - mxMaskBitmap() -{ - if (rpDefault.get() != NULL) - { - mnWidth = rpDefault->mnWidth; - mnHeight = rpDefault->mnHeight; - mnXOffset = rpDefault->mnXOffset; - mnYOffset = rpDefault->mnYOffset; - mnXHotSpot = rpDefault->mnXHotSpot; - mnYHotSpot = rpDefault->mnYHotSpot; - maReplacementColor = rpDefault->maReplacementColor; - meHorizontalTexturingMode = rpDefault->meHorizontalTexturingMode; - meVerticalTexturingMode = rpDefault->meVerticalTexturingMode; - mxNormalBitmap = rpDefault->mxNormalBitmap; - mxMouseOverBitmap = rpDefault->mxMouseOverBitmap; - mxButtonDownBitmap = rpDefault->mxButtonDownBitmap; - mxDisabledBitmap = rpDefault->mxDisabledBitmap; - mxMaskBitmap = rpDefault->mxMaskBitmap; - } -} - - -css::uno::Reference<css::rendering::XBitmap> - PresenterBitmapContainer::BitmapDescriptor::GetNormalBitmap (void) const -{ - return mxNormalBitmap; -} - - - - -css::uno::Reference<css::rendering::XBitmap> - PresenterBitmapContainer::BitmapDescriptor::GetBitmap ( - const Mode eMode, - const bool bMissingDefaultsToNormal) const -{ - switch (eMode) - { - case Normal: - default: - return mxNormalBitmap; - - case MouseOver: - if (mxMouseOverBitmap.is()) - return mxMouseOverBitmap; - else if (bMissingDefaultsToNormal) - return mxNormalBitmap; - - case ButtonDown: - if (mxButtonDownBitmap.is()) - return mxButtonDownBitmap; - else if (bMissingDefaultsToNormal) - return mxNormalBitmap; - - case Disabled: - if (mxDisabledBitmap.is()) - return mxDisabledBitmap; - else if (bMissingDefaultsToNormal) - return mxNormalBitmap; - - case Mask: - return mxMaskBitmap; - } - return NULL; -} - - - - -void PresenterBitmapContainer::BitmapDescriptor::SetBitmap ( - const Mode eMode, - const css::uno::Reference<css::rendering::XBitmap>& rxBitmap) -{ - switch (eMode) - { - case Normal: - default: - mxNormalBitmap = rxBitmap; - if (mxNormalBitmap.is()) - { - const geometry::IntegerSize2D aSize (mxNormalBitmap->getSize()); - mnWidth = aSize.Width; - mnHeight = aSize.Height; - } - break; - - case MouseOver: - mxMouseOverBitmap = rxBitmap; - break; - - case ButtonDown: - mxButtonDownBitmap = rxBitmap; - break; - - case Disabled: - mxDisabledBitmap = rxBitmap; - break; - - case Mask: - mxMaskBitmap = rxBitmap; - break; - } -} - - - - -} } // end of namespace ::sdext::presenter - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ |