1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ 2 /* 3 * This file is part of the LibreOffice project. 4 * 5 * This Source Code Form is subject to the terms of the Mozilla Public 6 * License, v. 2.0. If a copy of the MPL was not distributed with this 7 * file, You can obtain one at http://mozilla.org/MPL/2.0/. 8 * 9 * This file incorporates work covered by the following license notice: 10 * 11 * Licensed to the Apache Software Foundation (ASF) under one or more 12 * contributor license agreements. See the NOTICE file distributed 13 * with this work for additional information regarding copyright 14 * ownership. The ASF licenses this file to you under the Apache 15 * License, Version 2.0 (the "License"); you may not use this file 16 * except in compliance with the License. You may obtain a copy of 17 * the License at http://www.apache.org/licenses/LICENSE-2.0 . 18 */ 19 20 #ifndef INCLUDED_SW_INC_UNOFIELDCOLL_HXX 21 #define INCLUDED_SW_INC_UNOFIELDCOLL_HXX 22 23 #include <memory> 24 25 #include <com/sun/star/util/XRefreshable.hpp> 26 27 #include "unocoll.hxx" 28 29 class SwFieldType; 30 31 typedef ::cppu::WeakImplHelper 32 < css::container::XNameAccess 33 , css::lang::XServiceInfo 34 > SwXTextFieldMasters_Base; 35 36 class SwXTextFieldMasters final 37 : public SwXTextFieldMasters_Base 38 , public SwUnoCollection 39 { 40 virtual ~SwXTextFieldMasters() override; 41 42 public: 43 SwXTextFieldMasters(SwDoc* pDoc); 44 45 static bool getInstanceName(const SwFieldType& rFieldType, OUString& rName); 46 47 // XServiceInfo 48 virtual OUString SAL_CALL getImplementationName() override; 49 virtual sal_Bool SAL_CALL supportsService( 50 const OUString& rServiceName) override; 51 virtual css::uno::Sequence< OUString > SAL_CALL 52 getSupportedServiceNames() override; 53 54 // XElementAccess 55 virtual css::uno::Type SAL_CALL getElementType() override; 56 virtual sal_Bool SAL_CALL hasElements() override; 57 58 // XNameAccess 59 virtual css::uno::Any SAL_CALL getByName( 60 const OUString& rName) override; 61 virtual css::uno::Sequence< OUString > SAL_CALL 62 getElementNames() override; 63 virtual sal_Bool SAL_CALL hasByName(const OUString& rName) override; 64 65 }; 66 67 typedef ::cppu::WeakImplHelper 68 < css::container::XEnumerationAccess 69 , css::lang::XServiceInfo 70 , css::util::XRefreshable 71 > SwXTextFieldTypes_Base; 72 73 class SwXTextFieldTypes final 74 : public SwXTextFieldTypes_Base 75 , public SwUnoCollection 76 { 77 private: 78 class Impl; 79 std::unique_ptr<Impl> m_pImpl; // currently does not need UnoImplPtr 80 81 virtual ~SwXTextFieldTypes() override; 82 83 public: 84 SwXTextFieldTypes(SwDoc* pDoc); 85 86 // SwUnoCollection 87 virtual void Invalidate() override; 88 89 // XServiceInfo 90 virtual OUString SAL_CALL getImplementationName() override; 91 virtual sal_Bool SAL_CALL supportsService( 92 const OUString& rServiceName) override; 93 virtual css::uno::Sequence< OUString > SAL_CALL 94 getSupportedServiceNames() override; 95 96 // XElementAccess 97 virtual css::uno::Type SAL_CALL getElementType() override; 98 virtual sal_Bool SAL_CALL hasElements() override; 99 100 // XEnumerationAccess 101 virtual css::uno::Reference< 102 css::container::XEnumeration > SAL_CALL 103 createEnumeration() override; 104 105 // XRefreshable 106 virtual void SAL_CALL refresh() override; 107 virtual void SAL_CALL addRefreshListener( 108 const css::uno::Reference< 109 css::util::XRefreshListener>& xListener) override; 110 virtual void SAL_CALL removeRefreshListener( 111 const css::uno::Reference< 112 css::util::XRefreshListener>& xListener) override; 113 114 }; 115 116 #endif 117 118 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ 119