summaryrefslogtreecommitdiff
path: root/svx/source/sidebar
diff options
context:
space:
mode:
authorShivam Kumar Singh <shivamhere247@gmail.com>2020-05-09 19:41:25 +0530
committerMike Kaganski <mike.kaganski@collabora.com>2020-05-18 11:01:41 +0200
commit9d6e64ba575c12ce4ab381332f8971e55ffe9972 (patch)
tree66be12a7c7ae9586cb88ffd10427113f84dacb82 /svx/source/sidebar
parent52442a4c0192cbedafe7b77459dd2c3d1cf3614b (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.cxx5
-rw-r--r--svx/source/sidebar/inspector/InspectorTextPanel.cxx77
-rw-r--r--svx/source/sidebar/inspector/InspectorTextPanel.hxx55
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: */