diff options
author | Caolán McNamara <caolanm@redhat.com> | 2020-02-03 09:59:44 +0000 |
---|---|---|
committer | Caolán McNamara <caolanm@redhat.com> | 2020-02-03 20:24:00 +0100 |
commit | 3d826d780af366c7ed650ec44e7bcb20b02e2c70 (patch) | |
tree | 5b0d79f92a64eaa11667a20edaf6392e42480b02 /include | |
parent | 12f9fdfac8b41d74e9474e8966e3d28755424931 (diff) |
make some headers private
as shown with ./bin/find-headers-to-move-inside-modules.py
Change-Id: I7662417e76fe00c0fc352957560e104b6c2a3d61
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/87850
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Diffstat (limited to 'include')
-rw-r--r-- | include/IwyuFilter_include.yaml | 20 | ||||
-rw-r--r-- | include/editeng/AccessibleImageBullet.hxx | 201 | ||||
-rw-r--r-- | include/sfx2/asyncfunc.hxx | 36 | ||||
-rw-r--r-- | include/sfx2/hintpost.hxx | 59 | ||||
-rw-r--r-- | include/sfx2/mgetempl.hxx | 94 | ||||
-rw-r--r-- | include/sfx2/prnmon.hxx | 55 | ||||
-rw-r--r-- | include/sfx2/recentdocsviewitem.hxx | 67 | ||||
-rw-r--r-- | include/sfx2/securitypage.hxx | 42 | ||||
-rw-r--r-- | include/svtools/ServerDetailsControls.hxx | 142 | ||||
-rw-r--r-- | include/svtools/accessibleruler.hxx | 188 | ||||
-rw-r--r-- | include/svx/ClassificationEditView.hxx | 61 | ||||
-rw-r--r-- | include/test/setupvcl.hxx | 26 | ||||
-rw-r--r-- | include/vcl/IconThemeScanner.hxx | 92 | ||||
-rw-r--r-- | include/vcl/IconThemeSelector.hxx | 97 | ||||
-rw-r--r-- | include/vcl/OptionalBox.hxx | 42 | ||||
-rw-r--r-- | include/vcl/configsettings.hxx | 66 | ||||
-rw-r--r-- | include/vcl/debugevent.hxx | 36 | ||||
-rw-r--r-- | include/vcl/imagerepository.hxx | 59 | ||||
-rw-r--r-- | include/vcl/jobdata.hxx | 87 | ||||
-rw-r--r-- | include/vcl/opengl/GLMHelper.hxx | 24 | ||||
-rw-r--r-- | include/vcl/ppdparser.hxx | 274 | ||||
-rw-r--r-- | include/vcl/strhelper.hxx | 72 | ||||
-rw-r--r-- | include/vcl/vclstatuslistener.hxx | 108 |
23 files changed, 0 insertions, 1948 deletions
diff --git a/include/IwyuFilter_include.yaml b/include/IwyuFilter_include.yaml index 85507711eb80..2d6ddd53b60f 100644 --- a/include/IwyuFilter_include.yaml +++ b/include/IwyuFilter_include.yaml @@ -317,9 +317,6 @@ blacklist: - com/sun/star/frame/XTerminateListener.hpp - com/sun/star/datatransfer/dnd/XDragGestureListener.hpp - com/sun/star/datatransfer/dnd/XDropTargetListener.hpp - include/vcl/vclstatuslistener.hxx: - # base class has to be a complete type - - com/sun/star/frame/XStatusListener.hpp include/vcl/weld.hxx: # base class has to be a complete type - com/sun/star/accessibility/XAccessibleRelationSet.hpp @@ -502,13 +499,6 @@ blacklist: - com/sun/star/xml/sax/XExtendedDocumentHandler.hpp - com/sun/star/xml/sax/XFastDocumentHandler.hpp - com/sun/star/xml/sax/XFastParser.hpp - include/svtools/accessibleruler.hxx: - # base class has to be a complete type - - com/sun/star/accessibility/XAccessible.hpp - - com/sun/star/accessibility/XAccessibleComponent.hpp - - com/sun/star/accessibility/XAccessibleContext.hpp - - com/sun/star/accessibility/XAccessibleEventBroadcaster.hpp - - com/sun/star/lang/XServiceInfo.hpp include/svtools/asynclink.hxx: # unique_ptr needs complete type - osl/mutex.hxx @@ -701,9 +691,6 @@ blacklist: include/drawinglayer/primitive3d/baseprimitive3d.hxx: # base class has to be a complete type - com/sun/star/graphic/XPrimitive3D.hpp - include/sfx2/asyncfunc.hxx: - # base class has to be a complete type - - com/sun/star/lang/XUnoTunnel.hpp include/sfx2/charwin.hxx: # Needed for implicit dtor - vcl/virdev.hxx @@ -839,13 +826,6 @@ blacklist: - com/sun/star/accessibility/XAccessibleEventBroadcaster.hpp - com/sun/star/accessibility/XAccessible.hpp - com/sun/star/lang/XServiceInfo.hpp - include/editeng/AccessibleImageBullet.hxx: - # base class has to be a complete type - - com/sun/star/accessibility/XAccessibleComponent.hpp - - com/sun/star/accessibility/XAccessibleContext.hpp - - com/sun/star/accessibility/XAccessibleEventBroadcaster.hpp - - com/sun/star/accessibility/XAccessible.hpp - - com/sun/star/lang/XServiceInfo.hpp include/editeng/AccessibleEditableTextPara.hxx: # base class has to be a complete type - com/sun/star/accessibility/XAccessibleComponent.hpp diff --git a/include/editeng/AccessibleImageBullet.hxx b/include/editeng/AccessibleImageBullet.hxx deleted file mode 100644 index b09e393cbae0..000000000000 --- a/include/editeng/AccessibleImageBullet.hxx +++ /dev/null @@ -1,201 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/* - * This file is part of the LibreOffice project. - * - * This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at http://mozilla.org/MPL/2.0/. - * - * This file incorporates work covered by the following license notice: - * - * 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 . - */ - -#ifndef INCLUDED_EDITENG_ACCESSIBLEIMAGEBULLET_HXX -#define INCLUDED_EDITENG_ACCESSIBLEIMAGEBULLET_HXX - -#include <tools/gen.hxx> -#include <cppuhelper/implbase.hxx> - -#include <com/sun/star/uno/Reference.hxx> -#include <com/sun/star/lang/XServiceInfo.hpp> -#include <com/sun/star/accessibility/XAccessible.hpp> -#include <com/sun/star/accessibility/XAccessibleContext.hpp> -#include <com/sun/star/accessibility/XAccessibleComponent.hpp> -#include <com/sun/star/accessibility/XAccessibleEventBroadcaster.hpp> - -class SvxEditSource; -class SvxTextForwarder; -class SvxViewForwarder; - -namespace accessibility -{ - typedef ::cppu::WeakImplHelper< css::accessibility::XAccessible, - css::accessibility::XAccessibleContext, - css::accessibility::XAccessibleComponent, - css::accessibility::XAccessibleEventBroadcaster, - css::lang::XServiceInfo > AccessibleImageBulletInterfaceBase; - - /** This class implements the image bullets for the EditEngine/Outliner UAA - */ - class AccessibleImageBullet final : public AccessibleImageBulletInterfaceBase - { - - public: - /// Create accessible object for given parent - AccessibleImageBullet ( const css::uno::Reference< css::accessibility::XAccessible >& rParent ); - - virtual ~AccessibleImageBullet () override; - - // XAccessible - virtual css::uno::Reference< css::accessibility::XAccessibleContext > SAL_CALL getAccessibleContext( ) override; - - // XAccessibleContext - virtual sal_Int32 SAL_CALL getAccessibleChildCount() override; - virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL getAccessibleChild( sal_Int32 i ) override; - virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL getAccessibleParent() override; - virtual sal_Int32 SAL_CALL getAccessibleIndexInParent() override; - virtual sal_Int16 SAL_CALL getAccessibleRole() override; - virtual OUString SAL_CALL getAccessibleDescription() override; - virtual OUString SAL_CALL getAccessibleName() override; - virtual css::uno::Reference< css::accessibility::XAccessibleRelationSet > SAL_CALL getAccessibleRelationSet() override; - virtual css::uno::Reference< css::accessibility::XAccessibleStateSet > SAL_CALL getAccessibleStateSet() override; - virtual css::lang::Locale SAL_CALL getLocale() override; - - // XAccessibleEventBroadcaster - virtual void SAL_CALL addAccessibleEventListener( const css::uno::Reference< css::accessibility::XAccessibleEventListener >& xListener ) override; - virtual void SAL_CALL removeAccessibleEventListener( const css::uno::Reference< css::accessibility::XAccessibleEventListener >& xListener ) override; - - // XAccessibleComponent - virtual sal_Bool SAL_CALL containsPoint( const css::awt::Point& aPoint ) override; - virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL getAccessibleAtPoint( const css::awt::Point& aPoint ) override; - virtual css::awt::Rectangle SAL_CALL getBounds( ) override; - virtual css::awt::Point SAL_CALL getLocation( ) override; - virtual css::awt::Point SAL_CALL getLocationOnScreen( ) override; - virtual css::awt::Size SAL_CALL getSize( ) override; - virtual void SAL_CALL grabFocus( ) override; - virtual sal_Int32 SAL_CALL getForeground( ) override; - virtual sal_Int32 SAL_CALL getBackground( ) override; - - // XServiceInfo - virtual OUString SAL_CALL getImplementationName() override; - virtual sal_Bool SAL_CALL supportsService (const OUString& sServiceName) override; - virtual css::uno::Sequence< OUString> SAL_CALL getSupportedServiceNames() override; - - /** Set the current index in the accessibility parent - - @attention This method does not lock the SolarMutex, - leaving that to the calling code. This is because only - there potential deadlock situations can be resolved. Thus, - make sure SolarMutex is locked when calling this. - */ - void SetIndexInParent( sal_Int32 nIndex ); - - /** Set the edit engine offset - - @attention This method does not lock the SolarMutex, - leaving that to the calling code. This is because only - there potential deadlock situations can be resolved. Thus, - make sure SolarMutex is locked when calling this. - */ - void SetEEOffset( const Point& rOffset ); - - /** Set the EditEngine offset - - @attention This method does not lock the SolarMutex, - leaving that to the calling code. This is because only - there potential deadlock situations can be resolved. Thus, - make sure SolarMutex is locked when calling this. - */ - void SetEditSource( SvxEditSource* pEditSource ); - - /** Dispose this object - - Notifies and deregisters the listeners, drops all references. - */ - void Dispose(); - - /** Set the current paragraph number - - @attention This method does not lock the SolarMutex, - leaving that to the calling code. This is because only - there potential deadlock situations can be resolved. Thus, - make sure SolarMutex is locked when calling this. - */ - void SetParagraphIndex( sal_Int32 nIndex ); - - /** Query the current paragraph number (0 - nParas-1) - - @attention This method does not lock the SolarMutex, - leaving that to the calling code. This is because only - there potential deadlock situations can be resolved. Thus, - make sure SolarMutex is locked when calling this. - */ - sal_Int32 GetParagraphIndex() const { return mnParagraphIndex; } - - /// Calls all Listener objects to tell them the change. Don't hold locks when calling this! - void FireEvent(const sal_Int16 nEventId, const css::uno::Any& rNewValue, const css::uno::Any& rOldValue = css::uno::Any() ) const; - - private: - AccessibleImageBullet( const AccessibleImageBullet& ) = delete; - AccessibleImageBullet& operator= ( const AccessibleImageBullet& ) = delete; - - // maintain state set and send STATE_CHANGE events - void SetState( const sal_Int16 nStateId ); - void UnSetState( const sal_Int16 nStateId ); - - SvxEditSource& GetEditSource() const; - - int getNotifierClientId() const { return mnNotifierClientId; } - - /** Query the SvxTextForwarder for EditEngine access. - - @attention This method does not lock the SolarMutex, - leaving that to the calling code. This is because only - there potential deadlock situations can be resolved. Thus, - make sure SolarMutex is locked when calling this. - */ - SvxTextForwarder& GetTextForwarder() const; - - /** Query the SvxViewForwarder for EditEngine access. - - @attention This method does not lock the SolarMutex, - leaving that to the calling code. This is because only - there potential deadlock situations can be resolved. Thus, - make sure SolarMutex is locked when calling this. - */ - SvxViewForwarder& GetViewForwarder() const; - - // the paragraph index in the edit engine (guarded by solar mutex) - sal_Int32 mnParagraphIndex; - - // our current index in the parent (guarded by solar mutex) - sal_Int32 mnIndexInParent; - - // the current edit source (guarded by solar mutex) - SvxEditSource* mpEditSource; - - // the offset of the underlying EditEngine from the shape/cell (guarded by solar mutex) - Point maEEOffset; - - // the current state set (updated from SetState/UnSetState and guarded by solar mutex) - css::uno::Reference< css::accessibility::XAccessibleStateSet > mxStateSet; - - /// The shape we're the accessible for (unguarded) - css::uno::Reference< css::accessibility::XAccessible > mxParent; - - /// Our listeners (guarded by maMutex) - int mnNotifierClientId; - }; - -} // end of namespace accessibility - -#endif - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/include/sfx2/asyncfunc.hxx b/include/sfx2/asyncfunc.hxx deleted file mode 100644 index 7d4f409b86b3..000000000000 --- a/include/sfx2/asyncfunc.hxx +++ /dev/null @@ -1,36 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/* - * This file is part of the LibreOffice project. - * - * This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at http://mozilla.org/MPL/2.0/. - */ - -#ifndef INCLUDED_SFX2_ASYNCFUNC_HXX -#define INCLUDED_SFX2_ASYNCFUNC_HXX - -#include <functional> - -#include <com/sun/star/lang/XUnoTunnel.hpp> -#include <comphelper/servicehelper.hxx> -#include <cppuhelper/implbase.hxx> - -class AsyncFunc final : public cppu::WeakImplHelper<css::lang::XUnoTunnel> -{ -private: - std::function<void()> const m_pAsyncFunc; - -public: - AsyncFunc(const std::function<void()>&); - virtual ~AsyncFunc() override; - - void Execute(); - - //XUnoTunnel - UNO3_GETIMPLEMENTATION_DECL(AsyncFunc) -}; - -#endif - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/include/sfx2/hintpost.hxx b/include/sfx2/hintpost.hxx deleted file mode 100644 index 0a72aa661446..000000000000 --- a/include/sfx2/hintpost.hxx +++ /dev/null @@ -1,59 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/* - * This file is part of the LibreOffice project. - * - * This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at http://mozilla.org/MPL/2.0/. - * - * This file incorporates work covered by the following license notice: - * - * 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 . - */ -#ifndef INCLUDED_SFX2_HINTPOST_HXX -#define INCLUDED_SFX2_HINTPOST_HXX - -#include <tools/link.hxx> -#include <tools/ref.hxx> -#include <functional> -#include <memory> - - -class SfxRequest; - -/** [Description] - - This class allows sending unique events via VCL's - Application::PostUserEvent(). When the User-Event is dispatched, - the handler <Event()> is called, which calls the Link provided with - SetEventHdl(). - - The instances are held via Ref-Count until a possibly sent - event has arrived. If the target dies before delivery, - the connection must be severed with SetEventHdl(Link()). -*/ -class SfxHintPoster final : public SvRefBase -{ -private: - std::function<void (std::unique_ptr<SfxRequest>)> m_Link; - - DECL_LINK( DoEvent_Impl, void*, void ); - - virtual ~SfxHintPoster() override; - -public: - SfxHintPoster(const std::function<void (std::unique_ptr<SfxRequest>)>& rLink); - - void Post( std::unique_ptr<SfxRequest> pHint ); - void SetEventHdl(const std::function<void (std::unique_ptr<SfxRequest>)>& rLink); -}; - -#endif - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/include/sfx2/mgetempl.hxx b/include/sfx2/mgetempl.hxx deleted file mode 100644 index 26a1a32ca69c..000000000000 --- a/include/sfx2/mgetempl.hxx +++ /dev/null @@ -1,94 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/* - * This file is part of the LibreOffice project. - * - * This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at http://mozilla.org/MPL/2.0/. - * - * This file incorporates work covered by the following license notice: - * - * 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 . - */ -#ifndef INCLUDED_SFX2_MGETEMPL_HXX -#define INCLUDED_SFX2_MGETEMPL_HXX - -#include <sfx2/styfitem.hxx> -#include <sfx2/tabdlg.hxx> -#include <memory> - -namespace weld { class Button; } -namespace weld { class CheckButton; } -namespace weld { class ComboBox; } -namespace weld { class Entry; } -namespace weld { class Label; } -namespace weld { class Widget; } - -/* expected: - SID_TEMPLATE_NAME : In: StringItem, Name of Template - SID_TEMPLATE_FAMILY : In: Family of Template -*/ - -class SfxManageStyleSheetPage final : public SfxTabPage -{ - SfxStyleSheetBase *pStyle; - std::unique_ptr<SfxStyleFamilies> pFamilies; - const SfxStyleFamilyItem *pItem; - OUString aBuf; - bool bModified; - - // initial data for the style - OUString aName; - OUString aFollow; - OUString aParent; - SfxStyleSearchBits const nFlags; - - std::unique_ptr<weld::Entry> m_xName; - std::unique_ptr<weld::CheckButton> m_xAutoCB; - std::unique_ptr<weld::Label> m_xFollowFt; - std::unique_ptr<weld::ComboBox> m_xFollowLb; - std::unique_ptr<weld::Button> m_xEditStyleBtn; - std::unique_ptr<weld::Label> m_xBaseFt; - std::unique_ptr<weld::ComboBox> m_xBaseLb; - std::unique_ptr<weld::Button> m_xEditLinkStyleBtn; - std::unique_ptr<weld::Label> m_xFilterFt; - std::unique_ptr<weld::ComboBox> m_xFilterLb; - std::unique_ptr<weld::Label> m_xDescFt; - std::unique_ptr<weld::Label> m_xNameFt; - - friend class SfxStyleDialogController; - - DECL_LINK(GetFocusHdl, weld::Widget&, void); - DECL_LINK(LoseFocusHdl, weld::Widget&, void); - DECL_LINK(EditStyleSelectHdl_Impl, weld::ComboBox&, void); - DECL_LINK(EditStyleHdl_Impl, weld::Button&, void); - DECL_LINK(EditLinkStyleSelectHdl_Impl, weld::ComboBox&, void); - DECL_LINK(EditLinkStyleHdl_Impl, weld::Button&, void); - - void UpdateName_Impl(weld::ComboBox*, const OUString &rNew); - void SetDescriptionText_Impl(); - - - static std::unique_ptr<SfxTabPage> Create( weld::Container* pPage, weld::DialogController* pController, const SfxItemSet* ); - - virtual bool FillItemSet(SfxItemSet *) override; - virtual void Reset(const SfxItemSet *) override; - - static bool Execute_Impl( sal_uInt16 nId, const OUString& rStr, sal_uInt16 nFamily ); - virtual void ActivatePage(const SfxItemSet &) override; - virtual DeactivateRC DeactivatePage(SfxItemSet *) override; - -public: - SfxManageStyleSheetPage(weld::Container* pPage, weld::DialogController* pController, const SfxItemSet &rAttrSet); - virtual ~SfxManageStyleSheetPage() override; -}; - -#endif - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/include/sfx2/prnmon.hxx b/include/sfx2/prnmon.hxx deleted file mode 100644 index 665d3ac07630..000000000000 --- a/include/sfx2/prnmon.hxx +++ /dev/null @@ -1,55 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/* - * This file is part of the LibreOffice project. - * - * This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at http://mozilla.org/MPL/2.0/. - * - * This file incorporates work covered by the following license notice: - * - * 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 . - */ -#ifndef INCLUDED_SFX2_PRNMON_HXX -#define INCLUDED_SFX2_PRNMON_HXX - -#include <memory> -#include <sal/config.h> -#include <vcl/vclptr.hxx> -#include <vcl/weld.hxx> - - -class SfxViewShell; -class SfxTabPage; -class SfxItemSet; - - -class SfxPrintOptionsDialog final : public weld::GenericDialogController -{ -private: - std::unique_ptr<SfxItemSet> pOptions; - std::unique_ptr<weld::Widget> m_xHelpBtn; - std::unique_ptr<weld::Container> m_xContainer; - std::unique_ptr<SfxTabPage> m_xPage; - -public: - SfxPrintOptionsDialog(weld::Window *pParent, - SfxViewShell *pViewShell, - const SfxItemSet *rOptions); - virtual ~SfxPrintOptionsDialog() override; - - virtual short run() override; - - const SfxItemSet& GetOptions() const { return *pOptions; } - void DisableHelp(); -}; - -#endif - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/include/sfx2/recentdocsviewitem.hxx b/include/sfx2/recentdocsviewitem.hxx deleted file mode 100644 index 5f88f4170cae..000000000000 --- a/include/sfx2/recentdocsviewitem.hxx +++ /dev/null @@ -1,67 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/* - * This file is part of the LibreOffice project. - * - * This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at http://mozilla.org/MPL/2.0/. - */ - -#ifndef INCLUDED_SFX2_RECENTDOCSVIEWITEM_HXX -#define INCLUDED_SFX2_RECENTDOCSVIEWITEM_HXX - -#include <sfx2/thumbnailviewitem.hxx> - -class ThumbnailView; - -namespace sfx2 -{ - class RecentDocsView; -} - -class RecentDocsViewItem final : public ThumbnailViewItem -{ -public: - RecentDocsViewItem(sfx2::RecentDocsView &rView, const OUString &rURL, - const OUString &rTitle, const BitmapEx& rThumbnail, sal_uInt16 nId, long nThumbnailSize); - - /** Updates own highlight status based on the aPoint position. - - Calls the ancestor's updateHighlight, and then takes care of m_bRemoveIconHighlighted. - - Returns rectangle that needs to be invalidated. - */ - virtual tools::Rectangle updateHighlight(bool bVisible, const Point& rPoint) override; - - /// Text to be used for the tooltip. - virtual OUString getHelpText() const override; - - virtual void Paint(drawinglayer::processor2d::BaseProcessor2D *pProcessor, - const ThumbnailItemAttributes *pAttrs) override; - - virtual void MouseButtonUp(const MouseEvent& rMEvt) override; - - /// Called when the user clicks a document - it will open it. - void OpenDocument(); - -private: - sfx2::RecentDocsView& mrParentView; - - /// Return area where is the icon to remove document from the recent documents. - tools::Rectangle getRemoveIconArea() const; - - OUString const maURL; - - OUString m_sHelpText; - - /// Is the icon that the user can click to remove the document from the recent documents highlighted? - bool m_bRemoveIconHighlighted; - - BitmapEx const m_aRemoveRecentBitmap; - - BitmapEx const m_aRemoveRecentBitmapHighlighted; -}; - -#endif // INCLUDED_SFX2_RECENTDOCSVIEWITEM_HXX - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/include/sfx2/securitypage.hxx b/include/sfx2/securitypage.hxx deleted file mode 100644 index b4ca1ddac5c5..000000000000 --- a/include/sfx2/securitypage.hxx +++ /dev/null @@ -1,42 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/* - * This file is part of the LibreOffice project. - * - * This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at http://mozilla.org/MPL/2.0/. - * - * This file incorporates work covered by the following license notice: - * - * 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 . - */ -#ifndef INCLUDED_SFX2_SECURITYPAGE_HXX -#define INCLUDED_SFX2_SECURITYPAGE_HXX - -#include <sfx2/tabdlg.hxx> -#include <memory> - -struct SfxSecurityPage_Impl; - -class SfxSecurityPage final : public SfxTabPage -{ - std::unique_ptr< SfxSecurityPage_Impl > m_pImpl; - - virtual bool FillItemSet( SfxItemSet* ) override; - virtual void Reset( const SfxItemSet* ) override; - -public: - SfxSecurityPage(weld::Container* pPage, weld::DialogController* pController, const SfxItemSet&); - static std::unique_ptr<SfxTabPage> Create(weld::Container* pPage, weld::DialogController* pController, const SfxItemSet*); - weld::Builder& GetBuilder() const { return *m_xBuilder; } -}; - -#endif // INCLUDED_SFX2_SECURITYPAGE_HXX - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/include/svtools/ServerDetailsControls.hxx b/include/svtools/ServerDetailsControls.hxx deleted file mode 100644 index 3bc5fccc530a..000000000000 --- a/include/svtools/ServerDetailsControls.hxx +++ /dev/null @@ -1,142 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/* - * This file is part of the LibreOffice project. - * - * This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at http://mozilla.org/MPL/2.0/. - */ -#ifndef INCLUDED_SVTOOLS_SERVERDETAILSCONTROLS_HXX -#define INCLUDED_SVTOOLS_SERVERDETAILSCONTROLS_HXX - -#include <vector> - -#include <com/sun/star/uno/Reference.hxx> - -#include <tools/link.hxx> -#include <tools/urlobj.hxx> - -namespace com :: sun :: star :: ucb { class XCommandEnvironment; } -namespace com :: sun :: star :: awt { class XWindow; } - -namespace weld { - class Button; - class ComboBox; - class Entry; - class SpinButton; - class ToggleButton; -} - -class PlaceEditDialog; - -class DetailsContainer -{ - protected: - PlaceEditDialog* m_pDialog; - Link<DetailsContainer*,void> m_aChangeHdl; - - public: - DetailsContainer(PlaceEditDialog* pDialog); - virtual ~DetailsContainer( ); - - void setChangeHdl( const Link<DetailsContainer*,void>& rLink ) { m_aChangeHdl = rLink; } - - virtual void set_visible( bool bShow ); - virtual INetURLObject getUrl( ); - - /** Try to split the URL in the controls of that container. - - \param sUrl the URL to split - \return true if the split worked, false otherwise. - */ - virtual bool setUrl( const INetURLObject& rUrl ); - - virtual void setUsername( const OUString& /*rUsername*/ ) { }; - virtual void setPassword( const OUString& ) { }; - - virtual bool enableUserCredentials( ) { return true; }; - - protected: - void notifyChange( ); - DECL_LINK(ValueChangeHdl, weld::Entry&, void); - DECL_STATIC_LINK(DetailsContainer, FormatPortHdl, weld::SpinButton&, void); -}; - -class HostDetailsContainer : public DetailsContainer -{ - private: - sal_uInt16 const m_nDefaultPort; - OUString m_sScheme; - OUString m_sHost; - - public: - HostDetailsContainer(PlaceEditDialog* pDialog, sal_uInt16 nPort, const OUString& sScheme); - - virtual void set_visible( bool bShow ) override; - virtual INetURLObject getUrl( ) override; - virtual bool setUrl( const INetURLObject& rUrl ) override; - - protected: - void setScheme( const OUString& sScheme ) { m_sScheme = sScheme; } - - /** Verifies that the scheme split from the URL can be handled by - the container and set the proper controls accordingly if needed. - */ - virtual bool verifyScheme( const OUString& rScheme ); -}; - -class DavDetailsContainer final : public HostDetailsContainer -{ - public: - DavDetailsContainer(PlaceEditDialog* pDialog); - - virtual void set_visible( bool bShow ) override; - virtual bool enableUserCredentials( ) override { return false; }; - - private: - virtual bool verifyScheme( const OUString& rScheme ) override; - - DECL_LINK(ToggledDavsHdl, weld::ToggleButton&, void); -}; - -class SmbDetailsContainer final : public DetailsContainer -{ - private: - OUString m_sHost; - - public: - SmbDetailsContainer(PlaceEditDialog* pDialog); - - virtual INetURLObject getUrl( ) override; - virtual bool setUrl( const INetURLObject& rUrl ) override; - virtual void set_visible( bool bShow ) override; -}; - -class CmisDetailsContainer final : public DetailsContainer -{ - private: - OUString m_sUsername; - OUString m_sPassword; - css::uno::Reference< css::ucb::XCommandEnvironment > m_xCmdEnv; - std::vector< OUString > m_aRepoIds; - OUString m_sRepoId; - OUString m_sBinding; - css::uno::Reference< css::awt::XWindow > m_xParentDialog; - - public: - CmisDetailsContainer(PlaceEditDialog* pDialog, OUString const & sBinding); - - virtual void set_visible( bool bShow ) override; - virtual INetURLObject getUrl( ) override; - virtual bool setUrl( const INetURLObject& rUrl ) override; - virtual void setUsername( const OUString& rUsername ) override; - virtual void setPassword( const OUString& rPass ) override; - - private: - void selectRepository( ); - DECL_LINK ( RefreshReposHdl, weld::Button&, void ); - DECL_LINK ( SelectRepoHdl, weld::ComboBox&, void ); -}; - -#endif -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/include/svtools/accessibleruler.hxx b/include/svtools/accessibleruler.hxx deleted file mode 100644 index c26cf96fa239..000000000000 --- a/include/svtools/accessibleruler.hxx +++ /dev/null @@ -1,188 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/* - * This file is part of the LibreOffice project. - * - * This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at http://mozilla.org/MPL/2.0/. - * - * This file incorporates work covered by the following license notice: - * - * 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 . - */ -#ifndef INCLUDED_SVTOOLS_ACCESSIBLERULER_HXX -#define INCLUDED_SVTOOLS_ACCESSIBLERULER_HXX - -#include <com/sun/star/accessibility/XAccessible.hpp> -#include <com/sun/star/accessibility/XAccessibleComponent.hpp> -#include <com/sun/star/accessibility/XAccessibleContext.hpp> -#include <com/sun/star/accessibility/XAccessibleEventBroadcaster.hpp> - -#include <com/sun/star/uno/Reference.hxx> -#include <com/sun/star/lang/XServiceInfo.hpp> -#include <cppuhelper/interfacecontainer.h> -#include <cppuhelper/compbase5.hxx> -#include <cppuhelper/basemutex.hxx> -#include <vcl/vclptr.hxx> - -namespace tools { class Rectangle; } -class Ruler; - - -typedef ::cppu::WeakAggComponentImplHelper5< - css::accessibility::XAccessible, - css::accessibility::XAccessibleComponent, - css::accessibility::XAccessibleContext, - css::accessibility::XAccessibleEventBroadcaster, - css::lang::XServiceInfo > - SvtRulerAccessible_Base; - -class SvtRulerAccessible final : public ::cppu::BaseMutex, public SvtRulerAccessible_Base -{ -public: - //===== internal ======================================================== - SvtRulerAccessible( - const css::uno::Reference< css::accessibility::XAccessible>& rxParent, Ruler& rRepresentation, const OUString& rName ); - - /// @throws css::uno::RuntimeException - bool - isVisible(); - - //===== XAccessible ===================================================== - - virtual css::uno::Reference< css::accessibility::XAccessibleContext> SAL_CALL - getAccessibleContext() override; - - //===== XAccessibleComponent ============================================ - - virtual sal_Bool SAL_CALL - containsPoint( const css::awt::Point& rPoint ) override; - - virtual css::uno::Reference< css::accessibility::XAccessible > SAL_CALL - getAccessibleAtPoint( const css::awt::Point& rPoint ) override; - - virtual css::awt::Rectangle SAL_CALL - getBounds() override; - - virtual css::awt::Point SAL_CALL - getLocation() override; - - virtual css::awt::Point SAL_CALL - getLocationOnScreen() override; - - virtual css::awt::Size SAL_CALL - getSize() override; - - virtual void SAL_CALL - grabFocus() override; - - virtual sal_Int32 SAL_CALL - getForeground( ) override; - virtual sal_Int32 SAL_CALL - getBackground( ) override; - - //===== XAccessibleContext ============================================== - - virtual sal_Int32 SAL_CALL - getAccessibleChildCount() override; - - virtual css::uno::Reference< css::accessibility::XAccessible> SAL_CALL - getAccessibleChild( sal_Int32 nIndex ) override; - - virtual css::uno::Reference< css::accessibility::XAccessible> SAL_CALL - getAccessibleParent() override; - - virtual sal_Int32 SAL_CALL - getAccessibleIndexInParent() override; - - virtual sal_Int16 SAL_CALL - getAccessibleRole() override; - - virtual OUString SAL_CALL - getAccessibleDescription() override; - - virtual OUString SAL_CALL - getAccessibleName() override; - - virtual css::uno::Reference< css::accessibility::XAccessibleRelationSet > SAL_CALL - getAccessibleRelationSet() override; - - virtual css::uno::Reference< css::accessibility::XAccessibleStateSet > SAL_CALL - getAccessibleStateSet() override; - - virtual css::lang::Locale SAL_CALL - getLocale() override; - //===== XAccessibleEventBroadcaster ===================================== - - virtual void SAL_CALL - addAccessibleEventListener( const css::uno::Reference< css::accessibility::XAccessibleEventListener >& xListener ) override; - - virtual void SAL_CALL - removeAccessibleEventListener( const css::uno::Reference< css::accessibility::XAccessibleEventListener >& xListener ) override; - - //===== XServiceInfo ==================================================== - - virtual OUString SAL_CALL - getImplementationName() override; - - virtual sal_Bool SAL_CALL - supportsService( const OUString& sServiceName ) override; - - virtual css::uno::Sequence< OUString> SAL_CALL - getSupportedServiceNames() override; - - //===== XTypeProvider =================================================== - - virtual css::uno::Sequence<sal_Int8> SAL_CALL - getImplementationId() override; - -private: - - virtual ~SvtRulerAccessible() override; - - virtual void SAL_CALL disposing() override; - - /// @returns true if it's disposed or in disposing - inline bool IsAlive() const; - - /// @throws DisposedException if it's not alive - void ThrowExceptionIfNotAlive(); - - /// @Return the object's current bounding box relative to the desktop. - /// - /// @throws css::uno::RuntimeException - tools::Rectangle GetBoundingBoxOnScreen(); - - /// @Return the object's current bounding box relative to the parent object. - /// - /// @throws css::uno::RuntimeException - tools::Rectangle GetBoundingBox(); - - /// Name of this object. - OUString const msName; - - /// Reference to the parent object. - css::uno::Reference< css::accessibility::XAccessible > - mxParent; - - /// pointer to internal representation - VclPtr<Ruler> mpRepr; - - /// client id in the AccessibleEventNotifier queue - sal_uInt32 mnClientId; -}; - -inline bool SvtRulerAccessible::IsAlive() const -{ - return !rBHelper.bDisposed && !rBHelper.bInDispose; -} - -#endif - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/include/svx/ClassificationEditView.hxx b/include/svx/ClassificationEditView.hxx deleted file mode 100644 index 8c30518b1816..000000000000 --- a/include/svx/ClassificationEditView.hxx +++ /dev/null @@ -1,61 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/* - * This file is part of the LibreOffice project. - * - * This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at http://mozilla.org/MPL/2.0/. - * - */ - -#ifndef INCLUDED_SVX_CLASSIFICATIONEDITVIEW_HXX -#define INCLUDED_SVX_CLASSIFICATIONEDITVIEW_HXX - -#include <sal/config.h> -#include <svx/svxdllapi.h> -#include <svx/weldeditview.hxx> -#include <editeng/svxenum.hxx> -#include <vcl/customweld.hxx> - -namespace svx { - -class ClassificationEditEngine final : public EditEngine -{ -public: - ClassificationEditEngine(SfxItemPool* pItemPool); - - virtual OUString CalcFieldValue(const SvxFieldItem& rField, sal_Int32 nPara, sal_Int32 nPos, o3tl::optional<Color>& rTxtColor, o3tl::optional<Color>& rFldColor) override; -}; - -class ClassificationEditView final : public WeldEditView -{ -public: - ClassificationEditView(); - virtual ~ClassificationEditView() override; - - virtual void makeEditEngine() override; - - void SetCharAttributes(); - - void InsertField(const SvxFieldItem& rField); - - void InvertSelectionWeight(); - - void SetNumType(SvxNumType eNumType); - - ClassificationEditEngine& getEditEngine() - { - return *static_cast<ClassificationEditEngine*>(m_xEditEngine.get()); - } - - EditView& getEditView() - { - return *m_xEditView; - } -}; - -} // end svx namespace - -#endif // INCLUDED_SVX_CLASSIFICATIONEDITVIEW_HXX - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/include/test/setupvcl.hxx b/include/test/setupvcl.hxx deleted file mode 100644 index 78d4683e50ce..000000000000 --- a/include/test/setupvcl.hxx +++ /dev/null @@ -1,26 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/* - * This file is part of the LibreOffice project. - * - * This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at http://mozilla.org/MPL/2.0/. - */ - -#ifndef INCLUDED_TEST_SETUPVCL_HXX -#define INCLUDED_TEST_SETUPVCL_HXX - -#include <sal/config.h> - -#include <test/testdllapi.hxx> - -namespace test { - -// Calls InitVCL etc.; needed from multiple places in the test infrastructure: -OOO_DLLPUBLIC_TEST_SETUPVCL void setUpVcl(bool forceHeadless = false); - -} - -#endif - -/* vim:set shiftwidth=4 softtabstop=4 expandtab cinoptions=b1,g0,N-s cinkeys+=0=break: */ diff --git a/include/vcl/IconThemeScanner.hxx b/include/vcl/IconThemeScanner.hxx deleted file mode 100644 index 3cbca74a4683..000000000000 --- a/include/vcl/IconThemeScanner.hxx +++ /dev/null @@ -1,92 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/* - * This file is part of the LibreOffice project. - * - * This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at http://mozilla.org/MPL/2.0/. - */ - -#ifndef INCLUDED_VCL_ICONTHEMESCANNER_HXX -#define INCLUDED_VCL_ICONTHEMESCANNER_HXX - -#include <vcl/dllapi.h> - -#include <rtl/ustring.hxx> -#include <vcl/IconThemeInfo.hxx> - -#include <memory> -#include <vector> - -// forward declaration of unit test class. Required for friend relationship. -class IconThemeScannerTest; - -namespace vcl { - -/** This class scans a folder for icon themes and provides the results. - */ -class VCL_DLLPUBLIC IconThemeScanner -{ -public: - /** Factory method to create the object. - * Provide a path to search for IconThemes. - */ - static std::shared_ptr<IconThemeScanner> Create(const OUString &path); - - /** This method will return the standard path where icon themes are located. - */ - static OUString - GetStandardIconThemePath(); - - const std::vector<IconThemeInfo>& - GetFoundIconThemes() const {return mFoundIconThemes;} - - /** Get the IconThemeInfo for a theme. - * If the theme id is not among the found themes, a std::runtime_error will be thrown. - * Use IconThemeIsInstalled() to check whether it is available. - */ - const IconThemeInfo& GetIconThemeInfo(const OUString& themeId); - - /** Checks whether the theme with the provided name has been found in the - * scanned directory. - */ - bool - IconThemeIsInstalled(const OUString& themeId) const; - -private: - IconThemeScanner(); - - /** Scan a directory for icon themes. - * - * @return - * There are several cases when this method will fail: - * - The directory does not exist - * - There are no files which match the pattern images_xxx.zip - */ - void ScanDirectoryForIconThemes(const OUString &path); - - /** Adds the provided icon theme by path. - */ - bool - AddIconThemeByPath(const OUString &path); - - /** Scans the provided directory for icon themes. - * The returned strings will contain the URLs to the icon themes. - */ - static std::vector<OUString> - ReadIconThemesFromPath(const OUString& dir); - - /** Check whether a single file is valid */ - static bool - FileIsValidIconTheme(const OUString&); - - std::vector<IconThemeInfo> mFoundIconThemes; - - friend class ::IconThemeScannerTest; -}; - -} // end namespace vcl - -#endif // INCLUDED_VCL_ICONTHEMESCANNER_HXX - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/include/vcl/IconThemeSelector.hxx b/include/vcl/IconThemeSelector.hxx deleted file mode 100644 index 0fcd66d1f263..000000000000 --- a/include/vcl/IconThemeSelector.hxx +++ /dev/null @@ -1,97 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/* - * This file is part of the LibreOffice project. - * - * This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at http://mozilla.org/MPL/2.0/. - */ - -#ifndef INCLUDED_VCL_ICONTHEMESELECTOR_HXX -#define INCLUDED_VCL_ICONTHEMESELECTOR_HXX - -#include <rtl/ustring.hxx> - -#include <vcl/dllapi.h> - -#include <vector> - -// forward declaration of unit test class. Required for friend relationship. -class IconThemeSelectorTest; - -namespace vcl { -class IconThemeInfo; - -/** This class helps to choose an icon theme from a list of installed themes. - * - * The following factors influence the selection: - * -# When high contrast mode is enabled, the high contrast icon theme is selected (if it is installed). - * -# When a preferred theme has been set (e.g., in the gnome desktop settings), that theme is selected. - */ -class VCL_DLLPUBLIC IconThemeSelector { -public: - IconThemeSelector(); - - /** Select an icon theme from the list of installed themes. - * - * If high contrast mode has been enabled, the highcontrast theme will be selected (if it is available). - * - * @pre - * @p installedThemes must not be empty - */ - OUString - SelectIconTheme( - const std::vector<IconThemeInfo>& installedThemes, - const OUString& theme - ) const; - - /** Select the standard icon theme for a desktop environment from a list of installed themes. - * - * If a preferred theme has been set, this one will take precedence. - * - * The same logic as in SelectIconTheme() will apply. - * - * @pre - * @p installedThemes must not be empty - */ - OUString - SelectIconThemeForDesktopEnvironment( - const std::vector<IconThemeInfo>& installedThemes, - const OUString& desktopEnvironment) const; - - void - SetUseHighContrastTheme(bool); - - void - SetPreferredIconTheme(const OUString&, bool bDarkIconTheme); - - bool - operator==(const vcl::IconThemeSelector&) const; - - bool - operator!=(const vcl::IconThemeSelector&) const; - -private: - /** Return the first element of the themes, or the fallback if the vector is empty */ - static OUString - ReturnFallback(const std::vector<IconThemeInfo>& installedThemes); - - /** The name of the icon theme which is used as fallback */ - static const OUStringLiteral FALLBACK_ICON_THEME_ID; - - - static OUString - GetIconThemeForDesktopEnvironment(const OUString& desktopEnvironment); - - OUString mPreferredIconTheme; - bool mUseHighContrastTheme; - bool mPreferDarkIconTheme; - - friend class ::IconThemeSelectorTest; -}; - -} /* namespace vcl */ - -#endif // INCLUDED_VCL_ICONTHEMESELECTOR_HXX - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/include/vcl/OptionalBox.hxx b/include/vcl/OptionalBox.hxx deleted file mode 100644 index 326fc7536c2d..000000000000 --- a/include/vcl/OptionalBox.hxx +++ /dev/null @@ -1,42 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/* - * This file is part of the LibreOffice project. - * - * This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at http://mozilla.org/MPL/2.0/. - * - * This file incorporates work covered by the following license notice: - * - * 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 . - */ - -#ifndef INCLUDED_VCL_OPTIONALBOX_HXX -#define INCLUDED_VCL_OPTIONALBOX_HXX - -#include <vcl/IPrioritable.hxx> -#include <vcl/layout.hxx> - -class OptionalBox final : public VclHBox, public vcl::IPrioritable -{ -private: - bool m_bInFullView; - -public: - explicit OptionalBox(vcl::Window* pParent); - virtual ~OptionalBox() override; - - void HideContent() override; - void ShowContent() override; - bool IsHidden() override; -}; - -#endif - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/include/vcl/configsettings.hxx b/include/vcl/configsettings.hxx deleted file mode 100644 index 967387499b9d..000000000000 --- a/include/vcl/configsettings.hxx +++ /dev/null @@ -1,66 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/* - * This file is part of the LibreOffice project. - * - * This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at http://mozilla.org/MPL/2.0/. - * - * This file incorporates work covered by the following license notice: - * - * 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 . - */ -#ifndef INCLUDED_VCL_CONFIGSETTINGS_HXX -#define INCLUDED_VCL_CONFIGSETTINGS_HXX - -#include <rtl/ustring.hxx> -#include <unotools/configitem.hxx> -#include <vcl/dllapi.h> - -#include <unordered_map> - -namespace com { namespace sun { namespace star { namespace uno { template <typename > class Sequence; } } } } - -namespace vcl -{ - typedef std::unordered_map< OUString, OUString > OUStrMap; - class SmallOUStrMap : public OUStrMap { public: SmallOUStrMap() : OUStrMap(1) {} }; - - - //= SettingsConfigItem - - class VCL_DLLPUBLIC SettingsConfigItem final : public ::utl::ConfigItem - { - private: - std::unordered_map< OUString, SmallOUStrMap > m_aSettings; - - virtual void Notify( const css::uno::Sequence< OUString >& rPropertyNames ) override; - - void getValues(); - SettingsConfigItem(); - - virtual void ImplCommit() override; - - public: - virtual ~SettingsConfigItem() override; - - static SettingsConfigItem* get(); - - OUString getValue( const OUString& rGroup, const OUString& rKey ) const; - void setValue( const OUString& rGroup, const OUString& rKey, const OUString& rValue ); - - }; - - -} // namespace vcl - - -#endif // INCLUDED_VCL_CONFIGSETTINGS_HXX - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/include/vcl/debugevent.hxx b/include/vcl/debugevent.hxx deleted file mode 100644 index a6f458265cbb..000000000000 --- a/include/vcl/debugevent.hxx +++ /dev/null @@ -1,36 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/* - * This file is part of the LibreOffice project. - * - * This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at http://mozilla.org/MPL/2.0/. - */ - -#ifndef INCLUDED_VCL_DEBUGEVENT_HXX -#define INCLUDED_VCL_DEBUGEVENT_HXX - -#include <vcl/dllapi.h> -#include <vcl/timer.hxx> -#include <sal/types.h> - -namespace vcl { class Window; } - -class DebugEventInjector final : private Timer { - sal_uInt32 mnEventsLeft; - DebugEventInjector( sal_uInt32 nMaxEvents ); - - static vcl::Window *ChooseWindow(); - static void InjectTextEvent(); - static void InjectMenuEvent(); - static void InjectEvent(); - static void InjectKeyNavEdit(); - virtual void Invoke() override; - - public: - static DebugEventInjector *getCreate(); -}; - -#endif // INCLUDED_VCL_DEBUGEVENT_HXX - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/include/vcl/imagerepository.hxx b/include/vcl/imagerepository.hxx deleted file mode 100644 index a1a28d3fa241..000000000000 --- a/include/vcl/imagerepository.hxx +++ /dev/null @@ -1,59 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/* - * This file is part of the LibreOffice project. - * - * This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at http://mozilla.org/MPL/2.0/. - * - * This file incorporates work covered by the following license notice: - * - * 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 . - */ - -#ifndef INCLUDED_VCL_IMAGEREPOSITORY_HXX -#define INCLUDED_VCL_IMAGEREPOSITORY_HXX - -#include <vcl/dllapi.h> -#include <rtl/ustring.hxx> - -class BitmapEx; - - -namespace vcl -{ - - - //= ImageRepository - - // provides access to the application's image repository (image.zip) - class ImageRepository - { - public: - /** loads an image from the application's image repository - @param _rName - the name of the image to load. - @param _out_rImage - will take the image upon successful return. - @return - whether or not the image could be loaded successfully. - */ - static bool loadImage( - const OUString& _rName, - BitmapEx& _out_rImage - ); - }; - - -} // namespace vcl - - -#endif // INCLUDED_VCL_IMAGEREPOSITORY_HXX - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/include/vcl/jobdata.hxx b/include/vcl/jobdata.hxx deleted file mode 100644 index 28d1115c9fc8..000000000000 --- a/include/vcl/jobdata.hxx +++ /dev/null @@ -1,87 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/* - * This file is part of the LibreOffice project. - * - * This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at http://mozilla.org/MPL/2.0/. - * - * This file incorporates work covered by the following license notice: - * - * 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 . - */ - -#ifndef INCLUDED_VCL_JOBDATA_HXX -#define INCLUDED_VCL_JOBDATA_HXX - -#include <vcl/ppdparser.hxx> - -namespace psp { - -enum class orientation { - Portrait, - Landscape -}; - -struct VCL_DLLPUBLIC JobData -{ - int m_nCopies; - bool m_bCollate; - int m_nLeftMarginAdjust; - int m_nRightMarginAdjust; - int m_nTopMarginAdjust; - int m_nBottomMarginAdjust; - // user overrides for PPD - int m_nColorDepth; - int m_nPSLevel; // 0: no override, else languagelevel to use - int m_nColorDevice; // 0: no override, -1 grey scale, +1 color - int m_nPDFDevice; // 0: no override, -1 PostScript, +1: Automatically PDF, +2: Explicitly PDF - orientation m_eOrientation; - OUString m_aPrinterName; - bool m_bPapersizeFromSetup; - const PPDParser* m_pParser; - PPDContext m_aContext; - - JobData() : - m_nCopies( 1 ), - m_bCollate(false), - m_nLeftMarginAdjust( 0 ), - m_nRightMarginAdjust( 0 ), - m_nTopMarginAdjust( 0 ), - m_nBottomMarginAdjust( 0 ), - m_nColorDepth( 24 ), - m_nPSLevel( 0 ), - m_nColorDevice( 0 ), - m_nPDFDevice( 0 ), - m_eOrientation( orientation::Portrait ), - m_bPapersizeFromSetup( false ), - m_pParser( nullptr ) {} - - JobData& operator=(const psp::JobData& rRight); - - JobData( const JobData& rData ) { *this = rData; } - - void setCollate( bool bCollate ); - void setPaper( int nWidth, int nHeight ); // dimensions in pt - void setPaperBin( int nPaperBin ); - void resolveDefaultBackend(); - void setDefaultBackend(bool bUsePDF); - - // creates a new buffer using new - // it is up to the user to delete it again - bool getStreamBuffer( void*& pData, sal_uInt32& bytes ); - static bool constructFromStreamBuffer( const void* pData, sal_uInt32 bytes, JobData& rJobData ); -}; - -} // namespace - - -#endif // PSPRINT_JOBDATA_HXX - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/include/vcl/opengl/GLMHelper.hxx b/include/vcl/opengl/GLMHelper.hxx deleted file mode 100644 index bcf244854e4e..000000000000 --- a/include/vcl/opengl/GLMHelper.hxx +++ /dev/null @@ -1,24 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/* - * This file is part of the LibreOffice project. - * - * This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at http://mozilla.org/MPL/2.0/. - */ - -#ifndef INCLUDED_VCL_GLM_GLMHELPER_HXX -#define INCLUDED_VCL_GLM_GLMHELPER_HXX - -#include <glm/glm.hpp> -#include <vcl/dllapi.h> - -#include <ostream> - -VCL_DLLPUBLIC std::ostream& operator<<(std::ostream& rStrm, const glm::mat4& rMatrix); -VCL_DLLPUBLIC std::ostream& operator<<(std::ostream& rStrm, const glm::vec4& rPos); -VCL_DLLPUBLIC std::ostream& operator<<(std::ostream& rStrm, const glm::vec3& rPos); - -#endif - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/include/vcl/ppdparser.hxx b/include/vcl/ppdparser.hxx deleted file mode 100644 index a0a59c4a8d80..000000000000 --- a/include/vcl/ppdparser.hxx +++ /dev/null @@ -1,274 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/* - * This file is part of the LibreOffice project. - * - * This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at http://mozilla.org/MPL/2.0/. - * - * This file incorporates work covered by the following license notice: - * - * 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 . - */ -#ifndef INCLUDED_VCL_PPDPARSER_HXX -#define INCLUDED_VCL_PPDPARSER_HXX - -#include <sal/config.h> - -#include <cstddef> -#include <memory> -#include <unordered_map> -#include <vector> - -#include <rtl/string.hxx> -#include <rtl/ustring.hxx> -#include <tools/solar.h> -#include <vcl/dllapi.h> - -#define PRINTER_PPDDIR "driver" - -namespace psp { - -class PPDCache; -class PPDTranslator; - -enum PPDValueType { eInvocation, eQuoted, eSymbol, eString, eNo }; - -struct VCL_DLLPUBLIC PPDValue -{ - PPDValueType m_eType; - //CustomOption stuff for fdo#43049 - //see http://www.cups.org/documentation.php/spec-ppd.html#OPTIONS - //for full specs, only the basics are implemented here - bool m_bCustomOption; - mutable OUString m_aCustomOption; - OUString m_aOption; - OUString m_aValue; -}; - - -/* - * PPDKey - a container for the available options (=values) of a PPD keyword - */ - -class PPDKey -{ - friend class PPDParser; - friend class CPDManager; - - typedef std::unordered_map< OUString, PPDValue > hash_type; - typedef std::vector< PPDValue* > value_type; - - OUString const m_aKey; - hash_type m_aValues; - value_type m_aOrderedValues; - const PPDValue* m_pDefaultValue; - bool m_bQueryValue; - OUString m_aGroup; - -public: - enum class SetupType { ExitServer, Prolog, DocumentSetup, PageSetup, JCLSetup, AnySetup }; -private: - - bool m_bUIOption; - int m_nOrderDependency; - SetupType m_eSetupType; - - void eraseValue( const OUString& rOption ); -public: - PPDKey( const OUString& rKey ); - ~PPDKey(); - - PPDValue* insertValue(const OUString& rOption, PPDValueType eType, bool bCustomOption = false); - int countValues() const - { return m_aValues.size(); } - // neither getValue will return the query option - const PPDValue* getValue( int n ) const; - const PPDValue* getValue( const OUString& rOption ) const; - const PPDValue* getValueCaseInsensitive( const OUString& rOption ) const; - const PPDValue* getDefaultValue() const { return m_pDefaultValue; } - const OUString& getGroup() const { return m_aGroup; } - - const OUString& getKey() const { return m_aKey; } - bool isUIKey() const { return m_bUIOption; } - SetupType getSetupType() const { return m_eSetupType; } - int getOrderDependency() const { return m_nOrderDependency; } -}; - -// define a hash for PPDKey -struct PPDKeyhash -{ - size_t operator()( const PPDKey * pKey) const - { return reinterpret_cast<size_t>(pKey); } -}; - - -/* - * PPDParser - parses a PPD file and contains all available keys from it - */ - -class PPDParser -{ - friend class PPDContext; - friend class CUPSManager; - friend class CPDManager; - friend class PPDCache; - - typedef std::unordered_map< OUString, std::unique_ptr<PPDKey> > hash_type; - typedef std::vector< PPDKey* > value_type; - - void insertKey( std::unique_ptr<PPDKey> pKey ); -public: - struct PPDConstraint - { - const PPDKey* m_pKey1; - const PPDValue* m_pOption1; - const PPDKey* m_pKey2; - const PPDValue* m_pOption2; - - PPDConstraint() : m_pKey1( nullptr ), m_pOption1( nullptr ), m_pKey2( nullptr ), m_pOption2( nullptr ) {} - }; -private: - hash_type m_aKeys; - value_type m_aOrderedKeys; - ::std::vector< PPDConstraint > m_aConstraints; - - // the full path of the PPD file - OUString m_aFile; - // some basic attributes - bool m_bColorDevice; - bool m_bType42Capable; - sal_uLong m_nLanguageLevel; - rtl_TextEncoding m_aFileEncoding; - - - // shortcuts to important keys and their default values - // imageable area - const PPDKey* m_pImageableAreas; - // paper dimensions - const PPDValue* m_pDefaultPaperDimension; - const PPDKey* m_pPaperDimensions; - // paper trays - const PPDValue* m_pDefaultInputSlot; - // resolutions - const PPDValue* m_pDefaultResolution; - - // translations - std::unique_ptr<PPDTranslator> m_pTranslator; - - PPDParser( const OUString& rFile ); - PPDParser(const OUString& rFile, const std::vector<PPDKey*>& keys); - - void parseOrderDependency(const OString& rLine); - void parseOpenUI(const OString& rLine, const OString& rPPDGroup); - void parseConstraint(const OString& rLine); - void parse( std::vector< OString >& rLines ); - - OUString handleTranslation(const OString& i_rString, bool i_bIsGlobalized); - - static void scanPPDDir( const OUString& rDir ); - static void initPPDFiles(PPDCache &rPPDCache); - static OUString getPPDFile( const OUString& rFile ); -public: - ~PPDParser(); - static const PPDParser* getParser( const OUString& rFile ); - - const PPDKey* getKey( int n ) const; - const PPDKey* getKey( const OUString& rKey ) const; - int getKeys() const { return m_aKeys.size(); } - bool hasKey( const PPDKey* ) const; - - const ::std::vector< PPDConstraint >& getConstraints() const { return m_aConstraints; } - - bool isColorDevice() const { return m_bColorDevice; } - bool isType42Capable() const { return m_bType42Capable; } - sal_uLong getLanguageLevel() const { return m_nLanguageLevel; } - - OUString getDefaultPaperDimension() const; - void getDefaultPaperDimension( int& rWidth, int& rHeight ) const - { getPaperDimension( getDefaultPaperDimension(), rWidth, rHeight ); } - bool getPaperDimension( const OUString& rPaperName, - int& rWidth, int& rHeight ) const; - // width and height in pt - // returns false if paper not found - - // match the best paper for width and height - OUString matchPaper( int nWidth, int nHeight ) const; - - bool getMargins( const OUString& rPaperName, - int &rLeft, int& rRight, - int &rUpper, int& rLower ) const; - // values in pt - // returns true if paper found - - // values int pt - - OUString getDefaultInputSlot() const; - - void getDefaultResolution( int& rXRes, int& rYRes ) const; - // values in dpi - static void getResolutionFromString( const OUString&, int&, int& ); - // helper function - - OUString translateKey( const OUString& i_rKey ) const; - OUString translateOption( const OUString& i_rKey, - const OUString& i_rOption ) const; -}; - - -/* - * PPDContext - a class to manage user definable states based on the - * contents of a PPDParser. - */ - -class PPDContext -{ - typedef std::unordered_map< const PPDKey*, const PPDValue*, PPDKeyhash > hash_type; - hash_type m_aCurrentValues; - const PPDParser* m_pParser; - - // returns false: check failed, new value is constrained - // true: check succeeded, new value can be set - bool checkConstraints( const PPDKey*, const PPDValue*, bool bDoReset ); - bool resetValue( const PPDKey*, bool bDefaultable = false ); -public: - PPDContext(); - PPDContext( const PPDContext& rContext ) { operator=( rContext ); } - PPDContext& operator=( const PPDContext& rContext ) = default; - PPDContext& operator=( PPDContext&& rContext ); - - void setParser( const PPDParser* ); - const PPDParser* getParser() const { return m_pParser; } - - const PPDValue* getValue( const PPDKey* ) const; - const PPDValue* setValue( const PPDKey*, const PPDValue*, bool bDontCareForConstraints = false ); - - std::size_t countValuesModified() const { return m_aCurrentValues.size(); } - const PPDKey* getModifiedKey( std::size_t n ) const; - - // public wrapper for the private method - bool checkConstraints( const PPDKey*, const PPDValue* ); - - // for printer setup - char* getStreamableBuffer( sal_uLong& rBytes ) const; - void rebuildFromStreamBuffer(const std::vector<char> &rBuffer); - - // convenience - int getRenderResolution() const; - - // width, height in points, paper will contain the name of the selected - // paper after the call - void getPageSize( OUString& rPaper, int& rWidth, int& rHeight ) const; -}; - -} // namespace - -#endif // INCLUDED_VCL_PPDPARSER_HXX - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/include/vcl/strhelper.hxx b/include/vcl/strhelper.hxx deleted file mode 100644 index 5b04e788d08d..000000000000 --- a/include/vcl/strhelper.hxx +++ /dev/null @@ -1,72 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/* - * This file is part of the LibreOffice project. - * - * This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at http://mozilla.org/MPL/2.0/. - * - * This file incorporates work covered by the following license notice: - * - * 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 . - */ -#ifndef INCLUDED_VCL_STRHELPER_HXX -#define INCLUDED_VCL_STRHELPER_HXX - -#include <cstring> -#include <rtl/math.hxx> -#include <rtl/ustring.hxx> -#include <vcl/dllapi.h> - -namespace psp -{ - VCL_DLLPUBLIC OUString GetCommandLineToken( int, const OUString& ); - VCL_DLLPUBLIC OString GetCommandLineToken(int, const OString&); - // gets one token of a unix command line style string - // doublequote, singlequote and singleleftquote protect their respective - // contents - - VCL_DLLPUBLIC int GetCommandLineTokenCount(const OUString&); - // returns number of tokens (zero if empty or whitespace only) - - VCL_DLLPUBLIC OUString WhitespaceToSpace( const OUString&, bool bProtect = true ); - VCL_DLLPUBLIC OString WhitespaceToSpace(const OString&); - // returns a string with multiple adjacent occurrences of whitespace - // converted to a single space. if bProtect is sal_True (nonzero), then - // doublequote, singlequote and singleleftquote protect their respective - // contents - - - // parses the first double in the string; decimal is '.' only - inline double StringToDouble( const OUString& rStr ) - { - return rtl::math::stringToDouble(rStr, u'.', u'\0'); - } - - inline double StringToDouble(const OString& rStr) - { - return rtl::math::stringToDouble(rStr, '.', static_cast<char>(0)); - } - - // fills a character buffer with the string representation of a double - // the buffer has to be long enough (e.g. 128 bytes) - // returns the string len - inline int getValueOfDouble( char* pBuffer, double f, int nPrecision = 0) - { - OString aStr( rtl::math::doubleToString( f, rtl_math_StringFormat_G, nPrecision, '.', true ) ); - int nLen = aStr.getLength(); - std::strncpy( pBuffer, aStr.getStr(), nLen+1 ); // copy string including terminating zero - return nLen; - } - -} // namespace - -#endif // INCLUDED_VCL_STRHELPER_HXX - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/include/vcl/vclstatuslistener.hxx b/include/vcl/vclstatuslistener.hxx deleted file mode 100644 index 2652befcd4cc..000000000000 --- a/include/vcl/vclstatuslistener.hxx +++ /dev/null @@ -1,108 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/* - * This file is part of the LibreOffice project. - * - * This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at http://mozilla.org/MPL/2.0/. - */ - -#ifndef INCLUDED_VCL_VCLSTATUSLISTENER_HXX -#define INCLUDED_VCL_VCLSTATUSLISTENER_HXX - -#include <cppuhelper/implbase.hxx> -#include <comphelper/processfactory.hxx> -#include <vcl/vclptr.hxx> - -#include <com/sun/star/frame/Desktop.hpp> -#include <com/sun/star/frame/XStatusListener.hpp> -#include <com/sun/star/frame/XDispatch.hpp> -#include <com/sun/star/frame/XDispatchProvider.hpp> -#include <com/sun/star/util/URL.hpp> -#include <com/sun/star/util/URLTransformer.hpp> - -template <class T> class VclStatusListener final : public cppu::WeakImplHelper < css::frame::XStatusListener> -{ -public: - VclStatusListener<T>(T* widget, const OUString& aCommand); - -private: - VclPtr<T> mWidget; /** The widget on which actions are performed */ - - /** Dispatcher. Need to keep a reference to it as long as this StatusListener exists. */ - css::uno::Reference<css::frame::XDispatch> mxDispatch; - css::util::URL maCommandURL; - css::uno::Reference<css::frame::XFrame> mxFrame; - -public: - void SAL_CALL statusChanged(const css::frame::FeatureStateEvent& rEvent) override; - - void SAL_CALL disposing(const css::lang::EventObject& /*Source*/) override; - - const css::uno::Reference<css::frame::XFrame>& getFrame() { return mxFrame; } - - void startListening(); - - void dispose(); -}; - -template<class T> -VclStatusListener<T>::VclStatusListener(T* widget, const OUString& aCommand) { - mWidget = widget; - - css::uno::Reference<css::uno::XComponentContext> xContext = ::comphelper::getProcessComponentContext(); - css::uno::Reference<css::frame::XDesktop2> xDesktop = css::frame::Desktop::create(xContext); - - css::uno::Reference<css::frame::XFrame> xFrame(xDesktop->getActiveFrame()); - if (!xFrame.is()) - xFrame = xDesktop; - - mxFrame = xFrame; - - maCommandURL.Complete = aCommand; - css::uno::Reference<css::util::XURLTransformer> xParser = css::util::URLTransformer::create(xContext); - xParser->parseStrict(maCommandURL); -} - -template<class T> -void VclStatusListener<T>::startListening() -{ - if (mxDispatch.is()) - mxDispatch->removeStatusListener(this, maCommandURL); - - css::uno::Reference<css::frame::XDispatchProvider> xDispatchProvider(mxFrame, css::uno::UNO_QUERY); - if (!xDispatchProvider.is()) - return; - - mxDispatch = xDispatchProvider->queryDispatch(maCommandURL, "", 0); - if (mxDispatch.is()) - mxDispatch->addStatusListener(this, maCommandURL); -} - -template<class T> -void VclStatusListener<T>::statusChanged(const css::frame::FeatureStateEvent& rEvent) -{ - mWidget->statusChanged(rEvent); -} - -template<class T> -void VclStatusListener<T>::disposing(const css::lang::EventObject& /*Source*/) -{ - mxDispatch.clear(); -} - -template<class T> -void VclStatusListener<T>::dispose() -{ - if (mxDispatch.is()) { - mxDispatch->removeStatusListener(this, maCommandURL); - mxDispatch.clear(); - } - mxFrame.clear(); - mWidget.clear(); -} - - -#endif // INCLUDED_VCL_VCLSTATUSLISTENER_HXX - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ |