From 87293419e4ceea4db8104197ae001f1a087ea449 Mon Sep 17 00:00:00 2001 From: Norbert Thiebaud Date: Sat, 1 Sep 2012 09:49:15 -0500 Subject: move binfilter structure one directory up Change-Id: I0d6772e8b1206f8bfdb43122a47958fecf586a40 --- bf_svtools/source/config/svt_itemholder1.cxx | 316 +++++++++++++++++++++++++++ 1 file changed, 316 insertions(+) create mode 100644 bf_svtools/source/config/svt_itemholder1.cxx (limited to 'bf_svtools/source/config/svt_itemholder1.cxx') diff --git a/bf_svtools/source/config/svt_itemholder1.cxx b/bf_svtools/source/config/svt_itemholder1.cxx new file mode 100644 index 000000000..b81b1bf99 --- /dev/null +++ b/bf_svtools/source/config/svt_itemholder1.cxx @@ -0,0 +1,316 @@ +/* -*- 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 + * + * for a copy of the LGPLv3 License. + * + ************************************************************************/ + +#include "itemholder1.hxx" + +#include + +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +//----------------------------------------------- +// namespaces + +namespace css = ::com::sun::star; + +namespace binfilter +{ + + +//----------------------------------------------- +ItemHolder1::ItemHolder1() + : ItemHolderMutexBase() +{ + try + { + css::uno::Reference< css::lang::XMultiServiceFactory > xSMGR = ::comphelper::getProcessServiceFactory(); + css::uno::Reference< css::lang::XComponent > xCfg( + xSMGR->createInstance(::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.configuration.ConfigurationProvider" ))), + css::uno::UNO_QUERY); + if (xCfg.is()) + xCfg->addEventListener(static_cast< css::lang::XEventListener* >(this)); + } +#ifdef DBG_UTIL + catch(css::uno::Exception& rEx) + { + static sal_Bool bMessage = sal_True; + if(bMessage) + { + bMessage = sal_False; + ::rtl::OString sMsg("CreateInstance with arguments exception: "); + sMsg += ::rtl::OString(rEx.Message.getStr(), + rEx.Message.getLength(), + RTL_TEXTENCODING_ASCII_US); + OSL_FAIL(sMsg.getStr()); + } + } +#else + catch(css::uno::Exception&){} +#endif +} + +//----------------------------------------------- +ItemHolder1::~ItemHolder1() +{ + impl_releaseAllItems(); +} + +//----------------------------------------------- +void ItemHolder1::holdConfigItem(EItem eItem) +{ + static ItemHolder1* pHolder = new ItemHolder1(); + pHolder->impl_addItem(eItem); +} + +//----------------------------------------------- +void SAL_CALL ItemHolder1::disposing(const css::lang::EventObject&) + throw(css::uno::RuntimeException) +{ + css::uno::Reference< css::uno::XInterface > xSelfHold(static_cast< css::lang::XEventListener* >(this), css::uno::UNO_QUERY); + impl_releaseAllItems(); +} + +//----------------------------------------------- +void ItemHolder1::impl_addItem(EItem eItem) +{ + ::osl::ResettableMutexGuard aLock(m_aLock); + + TItems::const_iterator pIt; + for ( pIt = m_lItems.begin(); + pIt != m_lItems.end() ; + ++pIt ) + { + const TItemInfo& rInfo = *pIt; + if (rInfo.eItem == eItem) + return; + } + + TItemInfo aNewItem; + aNewItem.eItem = eItem; + impl_newItem(aNewItem); + if (aNewItem.pItem) + m_lItems.push_back(aNewItem); +} + +//----------------------------------------------- +void ItemHolder1::impl_releaseAllItems() +{ + ::osl::ResettableMutexGuard aLock(m_aLock); + + TItems::iterator pIt; + for ( pIt = m_lItems.begin(); + pIt != m_lItems.end() ; + ++pIt ) + { + TItemInfo& rInfo = *pIt; + impl_deleteItem(rInfo); + } + m_lItems.clear(); +} + +//----------------------------------------------- +void ItemHolder1::impl_newItem(TItemInfo& rItem) +{ + switch(rItem.eItem) + { + case E_ADDXMLTOSTORAGEOPTIONS : + rItem.pItem = new SvtAddXMLToStorageOptions(); + break; + + case E_CMDOPTIONS : + rItem.pItem = new SvtCommandOptions(); + break; + + case E_COMPATIBILITY : + rItem.pItem = new SvtCompatibilityOptions(); + break; + + case E_DEFAULTOPTIONS : + rItem.pItem = new SvtDefaultOptions(); + break; + + case E_DYNAMICMENUOPTIONS : + rItem.pItem = new SvtDynamicMenuOptions(); + break; + + case E_EVENTCFG : + break; + + case E_EXTENDEDSECURITYOPTIONS : + rItem.pItem = new SvtExtendedSecurityOptions(); + break; + + case E_FLTRCFG : + break; + + case E_FONTOPTIONS : + rItem.pItem = new SvtFontOptions(); + break; + + case E_HISTORYOPTIONS : + rItem.pItem = new SvtHistoryOptions(); + break; + + case E_INETOPTIONS : + rItem.pItem = new SvtInetOptions(); + break; + + case E_INTERNALOPTIONS : + rItem.pItem = new SvtInternalOptions(); + break; + + case E_JAVAOPTIONS : + break; + + case E_LINGUCFG : + rItem.pItem = new SvtLinguConfig(); + break; + + case E_LOCALISATIONOPTIONS : + rItem.pItem = new SvtLocalisationOptions(); + break; + + case E_MENUOPTIONS : + rItem.pItem = new SvtMenuOptions(); + break; + + case E_MODULEOPTIONS : + rItem.pItem = new SvtModuleOptions(); + break; + + case E_OPTIONSDLGOPTIONS : + rItem.pItem = new SvtOptionsDialogOptions(); + break; + + case E_OPTIONS3D : + rItem.pItem = new SvtOptions3D(); + break; + + case E_PATHOPTIONS : + rItem.pItem = new SvtPathOptions(); + break; + + case E_PRINTWARNINGOPTIONS : + rItem.pItem = new SvtPrintWarningOptions(); + break; + + case E_REGOPTIONS : + break; + + case E_SAVEOPTIONS : + rItem.pItem = new SvtSaveOptions(); + break; + + case E_SEARCHOPT : + break; + + case E_SECURITYOPTIONS : + rItem.pItem = new SvtSecurityOptions(); + break; + + case E_SOURCEVIEWCONFIG : + rItem.pItem = new SourceViewConfig(); + break; + + case E_STARTOPTIONS : + rItem.pItem = new SvtStartOptions(); + break; + + case E_VIEWOPTIONS_DIALOG : + rItem.pItem = new SvtViewOptions(E_DIALOG, ::rtl::OUString()); + break; + + case E_VIEWOPTIONS_TABDIALOG : + rItem.pItem = new SvtViewOptions(E_TABDIALOG, ::rtl::OUString()); + break; + + case E_VIEWOPTIONS_TABPAGE : + rItem.pItem = new SvtViewOptions(E_TABPAGE, ::rtl::OUString()); + break; + + case E_VIEWOPTIONS_WINDOW : + rItem.pItem = new SvtViewOptions(E_WINDOW, ::rtl::OUString()); + break; + + case E_WORKINGSETOPTIONS : + rItem.pItem = new SvtWorkingSetOptions(); + break; + + case E_XMLACCELCFG : + // ??? TODO + break; + default: + OSL_FAIL( "unknown item type" ); + break; + } +} + +//----------------------------------------------- +void ItemHolder1::impl_deleteItem(TItemInfo& rItem) +{ + if (rItem.pItem) + { + delete rItem.pItem; + rItem.pItem = 0; + } +} + +} + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ -- cgit