diff options
author | Szymon Kłos <szymon.klos@collabora.com> | 2021-01-27 10:58:12 +0100 |
---|---|---|
committer | Szymon Kłos <szymon.klos@collabora.com> | 2021-04-01 17:43:04 +0200 |
commit | a49206fd70e72023493fdd9ecea4cd58f9a2aee6 (patch) | |
tree | 30ee3e0bfdfbeb6727eb8d4fb8329b1cba797a07 /svx/source | |
parent | 6dfc7354d7100effa380ec7f6e368a2c0ec92232 (diff) |
fontwork: add sidebar panel
Change-Id: I092e40c17dd814d0b18f06aea01d7afa29cbad2e
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/110024
Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com>
Reviewed-by: Jan Holesovsky <kendy@collabora.com>
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/112275
Tested-by: Jenkins
Reviewed-by: Szymon Kłos <szymon.klos@collabora.com>
Diffstat (limited to 'svx/source')
-rw-r--r-- | svx/source/sidebar/PanelFactory.cxx | 5 | ||||
-rw-r--r-- | svx/source/sidebar/fontwork/FontworkPropertyPanel.cxx | 68 | ||||
-rw-r--r-- | svx/source/sidebar/fontwork/FontworkPropertyPanel.hxx | 49 |
3 files changed, 122 insertions, 0 deletions
diff --git a/svx/source/sidebar/PanelFactory.cxx b/svx/source/sidebar/PanelFactory.cxx index 1749be913f47..1817088fc534 100644 --- a/svx/source/sidebar/PanelFactory.cxx +++ b/svx/source/sidebar/PanelFactory.cxx @@ -24,6 +24,7 @@ #include "paragraph/ParaPropertyPanel.hxx" #include "lists/ListsPropertyPanel.hxx" #include "area/AreaPropertyPanel.hxx" +#include "fontwork/FontworkPropertyPanel.hxx" #include "shadow/ShadowPropertyPanel.hxx" #include "effect/EffectPropertyPanel.hxx" #include "graphic/GraphicPropertyPanel.hxx" @@ -142,6 +143,10 @@ Reference<ui::XUIElement> SAL_CALL PanelFactory::createUIElement ( { xControl = AreaPropertyPanel::Create(pParent, xFrame, pBindings); } + else if (rsResourceURL.endsWith("/FontworkPropertyPanel")) + { + xControl = FontworkPropertyPanel::Create(pParent, xFrame); + } else if (rsResourceURL.endsWith("/ShadowPropertyPanel")) { xControl = ShadowPropertyPanel::Create(pParent, pBindings); diff --git a/svx/source/sidebar/fontwork/FontworkPropertyPanel.cxx b/svx/source/sidebar/fontwork/FontworkPropertyPanel.cxx new file mode 100644 index 000000000000..d71cc7da7daa --- /dev/null +++ b/svx/source/sidebar/fontwork/FontworkPropertyPanel.cxx @@ -0,0 +1,68 @@ +/* -*- 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 "FontworkPropertyPanel.hxx" +#include <svx/svxids.hrc> +#include <sfx2/objsh.hxx> +#include <svx/xfltrit.hxx> +#include <svx/xflftrit.hxx> +#include <svx/xtable.hxx> +#include <sfx2/dispatch.hxx> +#include <sfx2/bindings.hxx> +#include <svtools/valueset.hxx> +#include <unotools/pathoptions.hxx> +#include <svx/svxitems.hrc> +#include <vcl/toolbox.hxx> +#include <svtools/toolbarmenu.hxx> +#include <comphelper/lok.hxx> + +using namespace css; +using namespace css::uno; + +namespace svx +{ +namespace sidebar +{ +FontworkPropertyPanel::FontworkPropertyPanel(weld::Widget* pParent, + const css::uno::Reference<css::frame::XFrame>& rxFrame) + : PanelLayout(pParent, "FontworkPropertyPanel", "svx/ui/sidebarfontwork.ui") + , m_pToolbar(m_xBuilder->weld_toolbar("fontwork-toolbox")) + , m_xToolbar(new ToolbarUnoDispatcher(*m_pToolbar, *m_xBuilder, rxFrame)) +{ + if (comphelper::LibreOfficeKit::isActive()) + m_pToolbar->set_item_visible(".uno:ExtrusionToggle", false); +} + +std::unique_ptr<PanelLayout> +FontworkPropertyPanel::Create(weld::Widget* pParent, + const css::uno::Reference<css::frame::XFrame>& rxFrame) +{ + if (pParent == nullptr) + throw lang::IllegalArgumentException( + "no parent Window given to FontworkPropertyPanel::Create", nullptr, 0); + if (!rxFrame.is()) + throw lang::IllegalArgumentException("no XFrame given to FontworkPropertyPanel::Create", + nullptr, 1); + + return std::make_unique<FontworkPropertyPanel>(pParent, rxFrame); +} +} +} // end of namespace svx::sidebar + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/svx/source/sidebar/fontwork/FontworkPropertyPanel.hxx b/svx/source/sidebar/fontwork/FontworkPropertyPanel.hxx new file mode 100644 index 000000000000..9f35ab5c4504 --- /dev/null +++ b/svx/source/sidebar/fontwork/FontworkPropertyPanel.hxx @@ -0,0 +1,49 @@ +/* -*- 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_SVX_SOURCE_SIDEBAR_AREA_FONTWORKPROPERTYPANEL_HXX +#define INCLUDED_SVX_SOURCE_SIDEBAR_AREA_FONTWORKPROPERTYPANEL_HXX + +#include <com/sun/star/ui/XUIElement.hpp> +#include <sfx2/sidebar/PanelLayout.hxx> +#include <sfx2/weldutils.hxx> + +namespace svx +{ +namespace sidebar +{ +class FontworkPropertyPanel : public PanelLayout +{ +public: + static std::unique_ptr<PanelLayout> + Create(weld::Widget* pParent, const css::uno::Reference<css::frame::XFrame>& rxFrame); + + // constructor/destructor + FontworkPropertyPanel(weld::Widget* pParent, + const css::uno::Reference<css::frame::XFrame>& rxFrame); + +private: + std::unique_ptr<weld::Toolbar> m_pToolbar; + std::unique_ptr<ToolbarUnoDispatcher> m_xToolbar; +}; +} +} // end of namespace svx::sidebar + +#endif // INCLUDED_SVX_SOURCE_SIDEBAR_AREA_FONTWORKPROPERTYPANEL_HXX + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ |