tdf#133094 NotebookbarToolBox is not in the sidebar

though it is inheriting from SidebarToolBox and we're distinguish the sidebar
case from the non-sidebar case wrt certain color toolbuttons

Change-Id: Ieffe45adfab95d426bb36296ee3428b6bd3dbd3f
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/94806
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
diff --git a/include/sfx2/sidebar/SidebarToolBox.hxx b/include/sfx2/sidebar/SidebarToolBox.hxx
index 9eb5474..bf0fbf6 100644
--- a/include/sfx2/sidebar/SidebarToolBox.hxx
+++ b/include/sfx2/sidebar/SidebarToolBox.hxx
@@ -62,6 +62,7 @@ protected:
    ControllerContainer maControllers;
    bool mbAreHandlersRegistered;
    bool mbUseDefaultButtonSize;
    bool mbSideBar;

    DECL_LINK(DropDownClickHandler, ToolBox*, void);
    DECL_LINK(ClickHandler, ToolBox*, void);
@@ -73,7 +74,7 @@ protected:

    void CreateController(const sal_uInt16 nItemId,
                          const css::uno::Reference<css::frame::XFrame>& rxFrame,
                          const sal_Int32 nItemWidth);
                          const sal_Int32 nItemWidth, bool bSideBar);
    void RegisterHandlers();
};

diff --git a/include/sfx2/weldutils.hxx b/include/sfx2/weldutils.hxx
index c2e05d5..c72a473 100644
--- a/include/sfx2/weldutils.hxx
+++ b/include/sfx2/weldutils.hxx
@@ -35,6 +35,7 @@ private:
    SvtMiscOptions m_aToolbarOptions;
    weld::Toolbar* m_pToolbar;
    weld::Builder* m_pBuilder;
    bool m_bSideBar;

    DECL_LINK(SelectHdl, const OString&, void);
    DECL_LINK(ToggleMenuHdl, const OString&, void);
@@ -50,7 +51,8 @@ private:
public:
    // fill in the label and icons for actions and dispatch the action on item click
    ToolbarUnoDispatcher(weld::Toolbar& rToolbar, weld::Builder& rBuilder,
                         const css::uno::Reference<css::frame::XFrame>& rFrame);
                         const css::uno::Reference<css::frame::XFrame>& rFrame,
                         bool bSideBar = true);

    css::uno::Reference<css::frame::XToolbarController>
    GetControllerForCommand(const OUString& rCommand) const;
diff --git a/sfx2/inc/sidebar/ControllerFactory.hxx b/sfx2/inc/sidebar/ControllerFactory.hxx
index 1164584..dbf6097 100644
--- a/sfx2/inc/sidebar/ControllerFactory.hxx
+++ b/sfx2/inc/sidebar/ControllerFactory.hxx
@@ -47,13 +47,14 @@ public:
        const css::uno::Reference<css::frame::XFrame>& rxFrame,
        const css::uno::Reference<css::frame::XController>& rxController,
        const css::uno::Reference<css::awt::XWindow>& rxParentWindow,
        const sal_Int32 nItemWidth);
        const sal_Int32 nItemWidth, bool bSideBar);

    static css::uno::Reference<css::frame::XToolbarController> CreateToolBoxController(
        weld::Toolbar& rToolbar,
        weld::Builder& rBuilder,
        const OUString& rsCommandName,
        const css::uno::Reference<css::frame::XFrame>& rxFrame);
        const css::uno::Reference<css::frame::XFrame>& rxFrame,
        bool bSideBar);

private:
    static css::uno::Reference<css::frame::XToolbarController> CreateToolBarController(
@@ -61,7 +62,7 @@ private:
        const OUString& rsCommandName,
        const css::uno::Reference<css::frame::XFrame>& rxFrame,
        const css::uno::Reference<css::frame::XController>& rxController,
        const sal_Int32 nWidth);
        const sal_Int32 nWidth, bool bSideBar);
};


diff --git a/sfx2/source/notebookbar/NotebookbarTabControl.cxx b/sfx2/source/notebookbar/NotebookbarTabControl.cxx
index 9199106..79f0cd7 100644
--- a/sfx2/source/notebookbar/NotebookbarTabControl.cxx
+++ b/sfx2/source/notebookbar/NotebookbarTabControl.cxx
@@ -126,6 +126,7 @@ public:
    : sfx2::sidebar::SidebarToolBox( pParent )
    {
        mbUseDefaultButtonSize = false;
        mbSideBar = false;
        SetToolboxButtonSize(ToolBoxButtonSize::Small);
    }

diff --git a/sfx2/source/sidebar/ControllerFactory.cxx b/sfx2/source/sidebar/ControllerFactory.cxx
index 71d5a36..50ba57a 100644
--- a/sfx2/source/sidebar/ControllerFactory.cxx
+++ b/sfx2/source/sidebar/ControllerFactory.cxx
@@ -44,14 +44,14 @@ Reference<frame::XToolbarController> ControllerFactory::CreateToolBoxController(
    const Reference<frame::XFrame>& rxFrame,
    const Reference<frame::XController>& rxController,
    const Reference<awt::XWindow>& rxParentWindow,
    const sal_Int32 nWidth)
    const sal_Int32 nWidth, bool bSideBar)
{
    Reference<frame::XToolbarController> xController (
        CreateToolBarController(
            VCLUnoHelper::GetInterface(pToolBox),
            rsCommandName,
            rxFrame, rxController,
            nWidth));
            nWidth, bSideBar));

    bool bFactoryHasController( xController.is() );

@@ -141,7 +141,7 @@ Reference<frame::XToolbarController> ControllerFactory::CreateToolBoxController(
Reference<frame::XToolbarController> ControllerFactory::CreateToolBoxController(
    weld::Toolbar& rToolbar, weld::Builder& rBuilder,
    const OUString& rsCommandName,
    const Reference<frame::XFrame>& rxFrame)
    const Reference<frame::XFrame>& rxFrame, bool bSideBar)
{
    css::uno::Reference<css::awt::XWindow> xWidget(new weld::TransportAsXWindow(&rToolbar, &rBuilder));

@@ -150,7 +150,7 @@ Reference<frame::XToolbarController> ControllerFactory::CreateToolBoxController(
            xWidget,
            rsCommandName,
            rxFrame, rxFrame->getController(),
            -1));
            -1, bSideBar));

    if (!xController.is())
    {
@@ -204,7 +204,7 @@ Reference<frame::XToolbarController> ControllerFactory::CreateToolBarController(
    const OUString& rsCommandName,
    const Reference<frame::XFrame>& rxFrame,
    const Reference<frame::XController>& rxController,
    const sal_Int32 nWidth)
    const sal_Int32 nWidth, bool bSideBar)
{
    try
    {
@@ -234,7 +234,7 @@ Reference<frame::XToolbarController> ControllerFactory::CreateToolBarController(
            aPropertyVector.push_back( makeAny( aPropValue ));

            aPropValue.Name = "IsSidebar";
            aPropValue.Value <<= true;
            aPropValue.Value <<= bSideBar;
            aPropertyVector.push_back( makeAny( aPropValue ));

            if (nWidth > 0)
diff --git a/sfx2/source/sidebar/PanelTitleBar.cxx b/sfx2/source/sidebar/PanelTitleBar.cxx
index 21c423f..e8613f6 100644
--- a/sfx2/source/sidebar/PanelTitleBar.cxx
+++ b/sfx2/source/sidebar/PanelTitleBar.cxx
@@ -93,7 +93,7 @@ void PanelTitleBar::SetMoreOptionsCommand(const OUString& rsCommandName,
            msMoreOptionsCommand,
            rxFrame, rxController,
            VCLUnoHelper::GetInterface(maToolBox.get()),
            0));
            0, true));
    maToolBox->SetController(mnMenuItemIndex, xController);
    maToolBox->SetOutStyle(TOOLBOX_STYLE_FLAT);
    maToolBox->SetQuickHelpText(
diff --git a/sfx2/source/sidebar/SidebarToolBox.cxx b/sfx2/source/sidebar/SidebarToolBox.cxx
index ca3d076..f77e6d5 100644
--- a/sfx2/source/sidebar/SidebarToolBox.cxx
+++ b/sfx2/source/sidebar/SidebarToolBox.cxx
@@ -58,7 +58,8 @@ namespace sfx2::sidebar {
SidebarToolBox::SidebarToolBox (vcl::Window* pParentWindow)
    : ToolBox(pParentWindow, 0),
      mbAreHandlersRegistered(false),
      mbUseDefaultButtonSize(true)
      mbUseDefaultButtonSize(true),
      mbSideBar(true)
{
    SetBackground(Wallpaper());
    SetPaintTransparent(true);
@@ -121,7 +122,7 @@ void SidebarToolBox::InsertItem(const OUString& rCommand,

    ToolBox::InsertItem(aCommand, rFrame, nBits, rRequestedSize, nPos);

    CreateController(GetItemId(aCommand), rFrame, std::max(rRequestedSize.Width(), 0L));
    CreateController(GetItemId(aCommand), rFrame, std::max(rRequestedSize.Width(), 0L), mbSideBar);
    RegisterHandlers();
}

@@ -149,13 +150,13 @@ void SidebarToolBox::KeyInput(const KeyEvent& rKEvt)
void SidebarToolBox::CreateController (
    const sal_uInt16 nItemId,
    const css::uno::Reference<css::frame::XFrame>& rxFrame,
    const sal_Int32 nItemWidth)
    const sal_Int32 nItemWidth, bool bSideBar)
{
    const OUString sCommandName (GetItemCommand(nItemId));

    uno::Reference<frame::XToolbarController> xController(sfx2::sidebar::ControllerFactory::CreateToolBoxController(
            this, nItemId, sCommandName, rxFrame, rxFrame->getController(),
            VCLUnoHelper::GetInterface(this), nItemWidth));
            VCLUnoHelper::GetInterface(this), nItemWidth, bSideBar));

    if (xController.is())
        maControllers.insert(std::make_pair(nItemId, xController));
@@ -315,6 +316,7 @@ public:
    explicit NotebookbarToolBox(vcl::Window* pParentWindow)
    : SidebarToolBox(pParentWindow)
    {
        mbSideBar = false;
        SetToolboxButtonSize(GetDefaultButtonSize());
    }

diff --git a/sfx2/source/toolbox/weldutils.cxx b/sfx2/source/toolbox/weldutils.cxx
index c35f904..fc97aef 100644
--- a/sfx2/source/toolbox/weldutils.cxx
+++ b/sfx2/source/toolbox/weldutils.cxx
@@ -72,10 +72,12 @@ vcl::ImageType ToolbarUnoDispatcher::GetIconSize() const
}

ToolbarUnoDispatcher::ToolbarUnoDispatcher(weld::Toolbar& rToolbar, weld::Builder& rBuilder,
                                           const css::uno::Reference<css::frame::XFrame>& rFrame)
                                           const css::uno::Reference<css::frame::XFrame>& rFrame,
                                           bool bSideBar)
    : m_xFrame(rFrame)
    , m_pToolbar(&rToolbar)
    , m_pBuilder(&rBuilder)
    , m_bSideBar(bSideBar)
{
    rToolbar.connect_clicked(LINK(this, ToolbarUnoDispatcher, SelectHdl));
    rToolbar.connect_menu_toggled(LINK(this, ToolbarUnoDispatcher, ToggleMenuHdl));
@@ -114,7 +116,7 @@ void ToolbarUnoDispatcher::CreateController(const OUString& rCommand)
{
    css::uno::Reference<css::frame::XToolbarController> xController(
        sfx2::sidebar::ControllerFactory::CreateToolBoxController(*m_pToolbar, *m_pBuilder,
                                                                  rCommand, m_xFrame));
                                                                  rCommand, m_xFrame, m_bSideBar));

    if (xController.is())
        maControllers.insert(std::make_pair(rCommand, xController));