diff options
author | Shivam Kumar Singh <shivamhere247@gmail.com> | 2020-05-09 19:41:25 +0530 |
---|---|---|
committer | Mike Kaganski <mike.kaganski@collabora.com> | 2020-05-18 11:01:41 +0200 |
commit | 9d6e64ba575c12ce4ab381332f8971e55ffe9972 (patch) | |
tree | 66be12a7c7ae9586cb88ffd10427113f84dacb82 /svx/source/sidebar | |
parent | 52442a4c0192cbedafe7b77459dd2c3d1cf3614b (diff) |
Added a new tab "Styles Inspector" at the side bar
Patch significance :-
1) Added a new tab "Styles Inspector" at the side bar
2) Added the "Character Styles" properties in the inspector
Change-Id: I717f0a555d9c90f833c61b641c8eba53f93d4655
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/93909
Tested-by: Jenkins
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
Diffstat (limited to 'svx/source/sidebar')
-rw-r--r-- | svx/source/sidebar/PanelFactory.cxx | 5 | ||||
-rw-r--r-- | svx/source/sidebar/inspector/InspectorTextPanel.cxx | 77 | ||||
-rw-r--r-- | svx/source/sidebar/inspector/InspectorTextPanel.hxx | 55 |
3 files changed, 137 insertions, 0 deletions
diff --git a/svx/source/sidebar/PanelFactory.cxx b/svx/source/sidebar/PanelFactory.cxx index e37648b38c25..6b8ed657351e 100644 --- a/svx/source/sidebar/PanelFactory.cxx +++ b/svx/source/sidebar/PanelFactory.cxx @@ -20,6 +20,7 @@ #include <config_features.h> #include "text/TextPropertyPanel.hxx" +#include "inspector/InspectorTextPanel.hxx" #include "styles/StylesPropertyPanel.hxx" #include "paragraph/ParaPropertyPanel.hxx" #include "lists/ListsPropertyPanel.hxx" @@ -124,6 +125,10 @@ Reference<ui::XUIElement> SAL_CALL PanelFactory::createUIElement ( { pControl = TextPropertyPanel::Create(pParentWindow, xFrame); } + else if (rsResourceURL.endsWith("/InspectorTextPanel")) + { + pControl = InspectorTextPanel::Create(pParentWindow, xFrame); + } else if (rsResourceURL.endsWith("/StylesPropertyPanel")) { pControl = StylesPropertyPanel::Create(pParentWindow, xFrame); diff --git a/svx/source/sidebar/inspector/InspectorTextPanel.cxx b/svx/source/sidebar/inspector/InspectorTextPanel.cxx new file mode 100644 index 000000000000..0c719dfccb2f --- /dev/null +++ b/svx/source/sidebar/inspector/InspectorTextPanel.cxx @@ -0,0 +1,77 @@ +/* -*- 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 . + */ + +#include "InspectorTextPanel.hxx" + +#include <com/sun/star/lang/IllegalArgumentException.hpp> +#include <comphelper/lok.hxx> +#include <sfx2/lokhelper.hxx> + +using namespace css; + +namespace svx::sidebar +{ +VclPtr<vcl::Window> +InspectorTextPanel::Create(vcl::Window* pParent, + const css::uno::Reference<css::frame::XFrame>& rxFrame) +{ + if (pParent == nullptr) + throw lang::IllegalArgumentException("no parent Window given to InspectorTextPanel::Create", + nullptr, 0); + if (!rxFrame.is()) + throw lang::IllegalArgumentException("no XFrame given to InspectorTextPanel::Create", + nullptr, 1); + + return VclPtr<InspectorTextPanel>::Create(pParent, rxFrame); +} + +InspectorTextPanel::InspectorTextPanel(vcl::Window* pParent, + const css::uno::Reference<css::frame::XFrame>& rxFrame) + : PanelLayout(pParent, "InspectorTextPanel", "svx/ui/inspectortextpanel.ui", rxFrame) + , mxFont(m_xBuilder->weld_toolbar("font")) + , mxFontDispatch(new ToolbarUnoDispatcher(*mxFont, *m_xBuilder, rxFrame)) + , mxFontHeight(m_xBuilder->weld_toolbar("fontheight")) + , mxFontHeightDispatch(new ToolbarUnoDispatcher(*mxFontHeight, *m_xBuilder, rxFrame)) +{ +} + +InspectorTextPanel::~InspectorTextPanel() { disposeOnce(); } + +void InspectorTextPanel::dispose() +{ + mxFontHeightDispatch.reset(); + mxFontDispatch.reset(); + + mxFontHeight.reset(); + mxFont.reset(); + + PanelLayout::dispose(); +} + +void InspectorTextPanel::HandleContextChange(const vcl::EnumContext& rContext) +{ + if (maContext == rContext) + return; + + maContext = rContext; +} + +} // end of namespace svx::sidebar + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/svx/source/sidebar/inspector/InspectorTextPanel.hxx b/svx/source/sidebar/inspector/InspectorTextPanel.hxx new file mode 100644 index 000000000000..ed8b24a52d48 --- /dev/null +++ b/svx/source/sidebar/inspector/InspectorTextPanel.hxx @@ -0,0 +1,55 @@ +/* -*- 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 . + */ +#pragma once + +#include <sfx2/sidebar/IContextChangeReceiver.hxx> +#include <sfx2/weldutils.hxx> +#include <vcl/EnumContext.hxx> +#include <sfx2/sidebar/PanelLayout.hxx> + +namespace svx +{ +namespace sidebar +{ +class InspectorTextPanel : public PanelLayout, public ::sfx2::sidebar::IContextChangeReceiver +{ +public: + virtual ~InspectorTextPanel() override; + virtual void dispose() override; + + static VclPtr<vcl::Window> Create(vcl::Window* pParent, + const css::uno::Reference<css::frame::XFrame>& rxFrame); + + virtual void HandleContextChange(const vcl::EnumContext& rContext) override; + + InspectorTextPanel(vcl::Window* pParent, + const css::uno::Reference<css::frame::XFrame>& rxFrame); + +private: + std::unique_ptr<weld::Toolbar> mxFont; + std::unique_ptr<ToolbarUnoDispatcher> mxFontDispatch; + std::unique_ptr<weld::Toolbar> mxFontHeight; + std::unique_ptr<ToolbarUnoDispatcher> mxFontHeightDispatch; + + vcl::EnumContext maContext; +}; +} +} // end of namespace svx::sidebar + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ |