summaryrefslogtreecommitdiff
path: root/include/svtools/toolpanel/toolpaneldeck.hxx
diff options
context:
space:
mode:
Diffstat (limited to 'include/svtools/toolpanel/toolpaneldeck.hxx')
-rw-r--r--include/svtools/toolpanel/toolpaneldeck.hxx185
1 files changed, 0 insertions, 185 deletions
diff --git a/include/svtools/toolpanel/toolpaneldeck.hxx b/include/svtools/toolpanel/toolpaneldeck.hxx
deleted file mode 100644
index fb1e9de24ab1..000000000000
--- a/include/svtools/toolpanel/toolpaneldeck.hxx
+++ /dev/null
@@ -1,185 +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_TOOLPANEL_TOOLPANELDECK_HXX
-#define INCLUDED_SVTOOLS_TOOLPANEL_TOOLPANELDECK_HXX
-
-#include <svtools/svtdllapi.h>
-#include <svtools/toolpanel/toolpanel.hxx>
-#include <svtools/toolpanel/decklayouter.hxx>
-
-#include <vcl/ctrl.hxx>
-
-#include <boost/optional.hpp>
-#include <memory>
-
-
-namespace svt
-{
-
-
- class ToolPanelCollection;
- class ToolPanelDeck_Impl;
-
-
- //= IToolPanelDeckListener
-
- class SAL_NO_VTABLE IToolPanelDeckListener
- {
- public:
- /** called when a panel has been inserted into the deck
- */
- virtual void PanelInserted( const PToolPanel& i_pPanel, const size_t i_nPosition ) = 0;
-
- /** called when a panel has been removed from the deck
- */
- virtual void PanelRemoved( const size_t i_nPosition ) = 0;
-
- /** called when the active panel of the deck changed
- */
- virtual void ActivePanelChanged( const ::boost::optional< size_t >& i_rOldActive, const ::boost::optional< size_t >& i_rNewActive ) = 0;
-
- /** called when a new layouter has been set at a tool panel deck.
-
- The method is called after the old layouter has been disposed (i.e. its Destroy method has been
- invoked), and after the complete deck has been re-layouter.
- */
- virtual void LayouterChanged( const PDeckLayouter& i_rNewLayouter ) = 0;
-
- /** called when the tool panel deck which the listener registered at is dying. The listener is required to
- release all references to the deck then.
- */
- virtual void Dying() = 0;
-
- protected:
- ~IToolPanelDeckListener() {}
- };
-
-
- //= IToolPanelDeck
-
- class SVT_DLLPUBLIC IToolPanelDeck
- {
- public:
- /** returns the number of panels in the container
- */
- virtual size_t GetPanelCount() const = 0;
-
- /** retrieves the panel with the given index. Invalid indexes will be reported via an assertion in the
- non-product version, and silently ignored in the product version, with a NULL panel being returned.
- */
- virtual PToolPanel GetPanel( const size_t i_nPos ) const = 0;
-
- /** returns the number of the currently active panel.
- */
- virtual ::boost::optional< size_t >
- GetActivePanel() const = 0;
-
- /** activates the panel with the given number. If the given number is larger or equal to the number of panels
- in the deck, this will be reported via an assertion in non-product builds, and otherwise ignored.
- @param i_rPanel
- the number of the panel to activate. If this is not set, the currently active panel is de-activated,
- and no new panel is activated at all. Whether or not this makes sense for your application is at
- your own discretion.
- */
- virtual void ActivatePanel( const ::boost::optional< size_t >& i_rPanel ) = 0;
-
- /** inserts a new panel into the container. NULL panels are not allowed, as are positions greater than the
- current panel count. Violations of this will be reported via an assertion in the non-product version, and
- silently ignored in the product version.
- */
- virtual size_t InsertPanel( const PToolPanel& i_pPanel, const size_t i_nPosition ) = 0;
-
- /** removes a panel specified by its position.
-
- Note: It is the responsibility of the caller to ensure that the panel is destroyed appropriately. That is,
- the tool panel deck will <em>not</em> invoke <member>IToolPanel::Dispose</member> on the removed panel.
- The advantage is that the panel might be re-used later, with the disadvantage that the owner of the panel
- deck must know whether Dispose must be invoked after removal, or whether the panel will properly
- dispose itself when its ref count drops to 0.
- */
- virtual PToolPanel RemovePanel( const size_t i_nPosition ) = 0;
-
- /** adds a new listener to be notified when the container content changes. The caller is responsible
- for life time control, i.e. removing the listener before it actually dies.
- */
- virtual void AddListener( IToolPanelDeckListener& i_rListener ) = 0;
-
- /** removes a container listener previously added via addListener.
- */
- virtual void RemoveListener( IToolPanelDeckListener& i_rListener ) = 0;
-
- protected:
- ~IToolPanelDeck() {}
- };
-
-
- //= ToolPanelDeck
-
- class SVT_DLLPUBLIC ToolPanelDeck :public Control
- ,public IToolPanelDeck
- {
- public:
- ToolPanelDeck( vcl::Window& i_rParent, const WinBits i_nStyle = WB_DIALOGCONTROL );
- virtual ~ToolPanelDeck();
- virtual void dispose() override;
-
- // attributes
- PDeckLayouter GetLayouter() const;
- void SetLayouter( const PDeckLayouter& i_pNewLayouter );
-
- /** returns the window which acts as anchor for the panel windows.
-
- This is a single dedicated window, which is passed to the IToolPanel::ActivatePanel method
- whenever a panel is activated, to act as parent window for the panel's VCL-Window.
- */
- vcl::Window& GetPanelWindowAnchor();
- const vcl::Window& GetPanelWindowAnchor() const;
-
- // IToolPanelDeck
- virtual size_t GetPanelCount() const override;
- virtual PToolPanel GetPanel( const size_t i_nPos ) const override;
- virtual ::boost::optional< size_t >
- GetActivePanel() const override;
- virtual void ActivatePanel( const ::boost::optional< size_t >& i_rPanel ) override;
- virtual size_t InsertPanel( const PToolPanel& i_pPanel, const size_t i_nPosition ) override;
- virtual PToolPanel RemovePanel( const size_t i_nPosition ) override;
- virtual void AddListener( IToolPanelDeckListener& i_rListener ) override;
- virtual void RemoveListener( IToolPanelDeckListener& i_rListener ) override;
-
- protected:
- // Window overridables
- virtual void Resize() override;
- virtual bool Notify( NotifyEvent& i_rNotifyEvent ) override;
- virtual void GetFocus() override;
-
- virtual css::uno::Reference< css::awt::XWindowPeer >
- GetComponentInterface( bool i_bCreate ) override;
-
- private:
- ::std::unique_ptr< ToolPanelDeck_Impl > m_pImpl;
- };
-
-
-} // namespace svt
-
-
-#endif // INCLUDED_SVTOOLS_TOOLPANEL_TOOLPANELDECK_HXX
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */