diff options
Diffstat (limited to 'extensions/source/oooimprovecore')
6 files changed, 439 insertions, 0 deletions
diff --git a/extensions/source/oooimprovecore/core.cxx b/extensions/source/oooimprovecore/core.cxx new file mode 100644 index 000000000000..00b6978a1e1d --- /dev/null +++ b/extensions/source/oooimprovecore/core.cxx @@ -0,0 +1,193 @@ +/* -*- 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_extensions.hxx" + +#include <com/sun/star/oooimprovement/XCore.hpp> + +#include "oooimprovecore_module.hxx" +#include <com/sun/star/frame/XTerminateListener.hpp> +#include <com/sun/star/lang/XMultiServiceFactory.hpp> +#include <com/sun/star/lang/XServiceInfo.hpp> +#include <com/sun/star/oooimprovement/XCoreController.hpp> +#include <com/sun/star/uno/XComponentContext.hpp> +#include <comphelper/componentmodule.hxx> +#include <comphelper/configurationhelper.hxx> +#include <comphelper/processfactory.hxx> +#include <comphelper/uieventslogger.hxx> +#include <cppuhelper/implbase3.hxx> +#include <svx/svxdlg.hxx> +#include <vcl/svapp.hxx> +#include <osl/mutex.hxx> +#include <svl/itemset.hxx> +#include <svl/stritem.hxx> +#include <sfx2/app.hxx> +#include <svx/dialogs.hrc> +#include <sfx2/sfxsids.hrc> + +using namespace ::com::sun::star::oooimprovement; +using ::com::sun::star::frame::XTerminateListener; +using ::com::sun::star::lang::EventObject; +using ::com::sun::star::lang::XMultiServiceFactory; +using ::com::sun::star::lang::XServiceInfo; +using ::com::sun::star::uno::Reference; +using ::com::sun::star::uno::RuntimeException; +using ::com::sun::star::uno::Sequence; +using ::com::sun::star::uno::UNO_QUERY; +using ::com::sun::star::uno::XComponentContext; +using ::com::sun::star::uno::XInterface; +using ::comphelper::UiEventsLogger; +using ::rtl::OUString; + +// declaration +namespace oooimprovecore +{ + class Core : public ::cppu::WeakImplHelper3<XCore,XServiceInfo,XTerminateListener> + { + public: + // XServiceInfo - static version + static OUString SAL_CALL getImplementationName_static(); + static Sequence<OUString> SAL_CALL getSupportedServiceNames_static(); + static Reference<XInterface> Create(const Reference<XComponentContext>& context ); + + protected: + Core(const Reference<XComponentContext>&); + virtual ~Core(); + + // XCore + virtual sal_Int32 SAL_CALL getSessionLogEventCount() throw(RuntimeException); + virtual sal_Bool SAL_CALL getUiEventsLoggerEnabled() throw(RuntimeException); + virtual void SAL_CALL inviteUser() throw(RuntimeException); + + // XServiceInfo + virtual OUString SAL_CALL getImplementationName() throw(RuntimeException); + virtual sal_Bool SAL_CALL supportsService(const OUString& service_name) throw(RuntimeException); + virtual Sequence<OUString> SAL_CALL getSupportedServiceNames() throw(RuntimeException); + + // XTerminateListener + virtual void SAL_CALL queryTermination(const EventObject&) throw(RuntimeException); + virtual void SAL_CALL notifyTermination(const EventObject&) throw(RuntimeException); + + // XEventListener + virtual void SAL_CALL disposing(const EventObject&) throw(RuntimeException); + }; +} + + +// implementation +namespace oooimprovecore +{ + + Core::Core(const Reference<XComponentContext>&) + { } + + Core::~Core() + { } + + sal_Int32 SAL_CALL Core::getSessionLogEventCount() throw(RuntimeException) + { return UiEventsLogger::getSessionLogEventCount(); } + + sal_Bool SAL_CALL Core::getUiEventsLoggerEnabled() throw(RuntimeException) + { return UiEventsLogger::isEnabled(); } + + void SAL_CALL Core::inviteUser() throw(RuntimeException) + { + Reference<XMultiServiceFactory> xServiceFactory = ::comphelper::getProcessServiceFactory(); + + OUString help_url; + Reference<XCoreController> core_c( + xServiceFactory->createInstance(OUString(RTL_CONSTASCII_USTRINGPARAM("com.sun.star.oooimprovement.CoreController"))), + UNO_QUERY); + if(core_c.is()) + ::comphelper::ConfigurationHelper::readDirectKey( + xServiceFactory, + OUString(RTL_CONSTASCII_USTRINGPARAM("/org.openoffice.Office.OOoImprovement.Settings")), + OUString(RTL_CONSTASCII_USTRINGPARAM("Participation")), + OUString(RTL_CONSTASCII_USTRINGPARAM("HelpUrl")), + ::comphelper::ConfigurationHelper::E_READONLY) >>= help_url; + else + help_url = OUString(RTL_CONSTASCII_USTRINGPARAM("http://www.libreoffice.org")); + { + SolarMutexGuard aGuard; + SfxAllItemSet aSet( SFX_APP()->GetPool() ); + aSet.Put( SfxStringItem( SID_CURRENT_URL, help_url ) ); + SvxAbstractDialogFactory* pFact = SvxAbstractDialogFactory::Create(); + if ( pFact ) + { + SfxAbstractDialog *pDlg = pFact->CreateSfxDialog( NULL, aSet, 0, RID_SVXPAGE_IMPROVEMENT ); + pDlg->Execute(); + delete pDlg; + } + } + } + + sal_Bool SAL_CALL Core::supportsService(const OUString& service_name) throw(RuntimeException) + { + const Sequence<OUString> service_names(getSupportedServiceNames()); + for (sal_Int32 idx = service_names.getLength()-1; idx>=0; --idx) + if(service_name == service_names[idx]) return sal_True; + return sal_False; + } + + OUString SAL_CALL Core::getImplementationName() throw(RuntimeException) + { return getImplementationName_static(); } + + Sequence<OUString> SAL_CALL Core::getSupportedServiceNames() throw(RuntimeException) + { return getSupportedServiceNames_static(); } + + OUString SAL_CALL Core::getImplementationName_static() + { return OUString(RTL_CONSTASCII_USTRINGPARAM("com.sun.star.comp.extensions.oooimprovecore.Core")); } + + Sequence<OUString> SAL_CALL Core::getSupportedServiceNames_static() + { + Sequence<OUString> aServiceNames(1); + aServiceNames[0] = OUString(RTL_CONSTASCII_USTRINGPARAM("com.sun.star.oooimprovement.Core")); + return aServiceNames; + } + + void Core::queryTermination(const EventObject&) throw(RuntimeException) + { } + + void Core::notifyTermination(const EventObject&) throw(RuntimeException) + { + UiEventsLogger::disposing(); + } + + void Core::disposing(const EventObject&) throw(RuntimeException) + { } + + Reference<XInterface> Core::Create(const Reference<XComponentContext>& context) + { return *(new Core(context)); } + + void createRegistryInfo_Core() + { + static OAutoRegistration<Core> auto_reg; + } +} + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/extensions/source/oooimprovecore/makefile.mk b/extensions/source/oooimprovecore/makefile.mk new file mode 100644 index 000000000000..f92804dbf261 --- /dev/null +++ b/extensions/source/oooimprovecore/makefile.mk @@ -0,0 +1,85 @@ +#************************************************************************* +# +# 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. +# +#************************************************************************* + +PRJ=..$/.. +PRJNAME=extensions +TARGET=oooimprovecore + +# --- Settings ---------------------------------- + +.INCLUDE : settings.mk + +# --- Files ------------------------------------- + +EXCEPTIONSFILES= \ + $(SLO)$/core.obj \ + $(SLO)$/oooimprovecore_services.obj \ + +SLOFILES= \ + $(EXCEPTIONSFILES) \ + $(SLO)$/oooimprovecore_module.obj \ + +LIB1TARGET=$(SLB)$/$(TARGET)_t.lib +LIB1FILES= \ + $(SLB)$/$(TARGET).lib \ + +SHL1TARGET=$(TARGET)$(DLLPOSTFIX) +.IF "$(GUI)"=="OS2" +SHL1TARGET=oooimpc$(DLLPOSTFIX) +.ENDIF + +SHL1STDLIBS= \ + $(COMPHELPERLIB) \ + $(CPPUHELPERLIB) \ + $(CPPULIB) \ + $(SALLIB) \ + $(VCLLIB) \ + $(SVLLIB) \ + $(SVTOOLLIB) \ + $(SFXLIB) \ + $(SVXCORELIB) \ + $(SVXLIB) \ + $(TOOLSLIB) + + +SHL1LIBS=$(LIB1TARGET) +SHL1DEF=$(MISC)$/$(SHL1TARGET).def +DEF1NAME=$(SHL1TARGET) +SHL1VERSIONMAP=$(SOLARENV)/src/component.map + +# --- Targets ---------------------------------- + +.INCLUDE : target.mk + + +ALLTAR : $(MISC)/oooimprovecore.component + +$(MISC)/oooimprovecore.component .ERRREMOVE : \ + $(SOLARENV)/bin/createcomponent.xslt oooimprovecore.component + $(XSLTPROC) --nonet --stringparam uri \ + '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL1TARGETN:f)' -o $@ \ + $(SOLARENV)/bin/createcomponent.xslt oooimprovecore.component diff --git a/extensions/source/oooimprovecore/oooimprovecore.component b/extensions/source/oooimprovecore/oooimprovecore.component new file mode 100644 index 000000000000..58bdaf37c2c5 --- /dev/null +++ b/extensions/source/oooimprovecore/oooimprovecore.component @@ -0,0 +1,34 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!--********************************************************************** +* +* 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. +* +**********************************************************************--> + +<component loader="com.sun.star.loader.SharedLibrary" + xmlns="http://openoffice.org/2010/uno-components"> + <implementation name="com.sun.star.comp.extensions.oooimprovecore.Core"> + <service name="com.sun.star.oooimprovement.Core"/> + </implementation> +</component> diff --git a/extensions/source/oooimprovecore/oooimprovecore_module.cxx b/extensions/source/oooimprovecore/oooimprovecore_module.cxx new file mode 100644 index 000000000000..f77d45f2393a --- /dev/null +++ b/extensions/source/oooimprovecore/oooimprovecore_module.cxx @@ -0,0 +1,39 @@ +/* -*- 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_extensions.hxx" +#include "oooimprovecore_module.hxx" +#include <rtl/instance.hxx> + +namespace oooimprovecore +{ + IMPLEMENT_COMPONENT_MODULE( OooimprovecoreModule ); +} + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/extensions/source/oooimprovecore/oooimprovecore_module.hxx b/extensions/source/oooimprovecore/oooimprovecore_module.hxx new file mode 100644 index 000000000000..432dcc71997d --- /dev/null +++ b/extensions/source/oooimprovecore/oooimprovecore_module.hxx @@ -0,0 +1,40 @@ +/* -*- 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. + * + ************************************************************************/ + +#ifndef EXTENSIONS_OOOIMPROVECORE_MODULE_HXX +#define EXTENSIONS_OOOIMPROVECORE_MODULE_HXX + +#include <comphelper/componentmodule.hxx> + +namespace oooimprovecore +{ + DECLARE_COMPONENT_MODULE( OooimprovecoreModule, OooimprovecoreModuleClient ) +} +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/extensions/source/oooimprovecore/oooimprovecore_services.cxx b/extensions/source/oooimprovecore/oooimprovecore_services.cxx new file mode 100644 index 000000000000..0682cdef2947 --- /dev/null +++ b/extensions/source/oooimprovecore/oooimprovecore_services.cxx @@ -0,0 +1,48 @@ +/* -*- 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_extensions.hxx" + +#include "oooimprovecore_module.hxx" + +namespace oooimprovecore +{ + extern void createRegistryInfo_Core(); + + static void initializeModule() + { + ::osl::MutexGuard aGuard( ::osl::Mutex::getGlobalMutex() ); + createRegistryInfo_Core(); + } + +} + +IMPLEMENT_COMPONENT_LIBRARY_API( ::oooimprovecore::OooimprovecoreModule, ::oooimprovecore::initializeModule) + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ |