/* -*- 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/. * */ #pragma once #include #include #include #include #include #include #include #include #include #include /** Development tool main docking window * * Contains two sides. Left side contains the simplified DOM tree and * the right side the object inspector tree. */ class SFX2_DLLPUBLIC DevelopmentToolDockingWindow final : public SfxDockingWindow { private: std::unique_ptr mpObjectInspectorWidgets; std::unique_ptr mpDocumentModelTreeView; std::unique_ptr mpDomToolbar; // Reference to the root object for the current document css::uno::Reference mxRoot; // Stores the current selected object in the document css::uno::Reference mxCurrentSelection; css::uno::Reference mxSelectionListener; css::uno::Reference mxSelectionSupplier; // Handler for the DOM tree DocumentModelTreeHandler maDocumentModelTreeHandler; // Handler for the object inspector tree ObjectInspectorTreeHandler maObjectInspectorTreeHandler; DECL_DLLPRIVATE_LINK(DocumentModelTreeViewSelectionHandler, weld::TreeView&, void); DECL_DLLPRIVATE_LINK(DomToolbarButtonClicked, const OString&, void); void updateSelection(); public: DevelopmentToolDockingWindow(SfxBindings* pBindings, SfxChildWindow* pChildWindow, vcl::Window* pParent); virtual ~DevelopmentToolDockingWindow() override; void dispose() override; void ToggleFloatingMode() override; // Signals that the selected object in the document changes void selectionChanged(css::uno::Reference const& xInterface); // Signals to change to the current selected object in the object inspector void changeToCurrentSelection(); }; /* vim:set shiftwidth=4 softtabstop=4 expandtab: */