summaryrefslogtreecommitdiff
path: root/vcl/source/window/NotebookBarAddonsMerger.cxx
diff options
context:
space:
mode:
authorSumit Chauhan <sumitcn25@gmail.com>2019-08-05 20:27:54 +0530
committerSzymon Kłos <szymon.klos@collabora.com>2019-08-28 08:13:11 +0200
commite0d29fb937b0f423f151e0a504bfe326f4d8279e (patch)
treeb15c7b8371b0846930ec10df8dfcc35aa839f69b /vcl/source/window/NotebookBarAddonsMerger.cxx
parentff898ea321299b370d3776430c490ad4acc3b0d2 (diff)
GtkWidget for the priority of extension under Extension Tab.
The new structure : PriorityMergedHBox --OptionalBox --ToolBoxExtension --Extension1 --OptionalBox ..... Change-Id: I72760e4f0d60eb6f1f82c1e928601d41a2e4b6ce Reviewed-on: https://gerrit.libreoffice.org/76987 Tested-by: Jenkins Reviewed-by: Szymon Kłos <szymon.klos@collabora.com>
Diffstat (limited to 'vcl/source/window/NotebookBarAddonsMerger.cxx')
-rw-r--r--vcl/source/window/NotebookBarAddonsMerger.cxx104
1 files changed, 67 insertions, 37 deletions
diff --git a/vcl/source/window/NotebookBarAddonsMerger.cxx b/vcl/source/window/NotebookBarAddonsMerger.cxx
index 5fc0b14b8087..f9f4c70343fa 100644
--- a/vcl/source/window/NotebookBarAddonsMerger.cxx
+++ b/vcl/source/window/NotebookBarAddonsMerger.cxx
@@ -21,6 +21,10 @@
#include <vcl/commandinfoprovider.hxx>
#include <vcl/vclenum.hxx>
#include <vcl/toolbox.hxx>
+#include <osl/module.hxx>
+#include <vcl/OptionalBox.hxx>
+#include <sfx2/sidebar/SidebarToolBox.hxx>
+#include <vcl/IPrioritable.hxx>
static const char STYLE_TEXT[] = "Text";
static const char STYLE_ICON[] = "Icon";
@@ -58,16 +62,61 @@ static void GetAddonNotebookBarItem(const css::uno::Sequence<css::beans::Propert
}
}
+static void CreateNotebookBarToolBox(vcl::Window* pNotebookbarToolBox,
+ const css::uno::Reference<css::frame::XFrame>& m_xFrame,
+ const AddonNotebookBarItem& aAddonNotebookBarItem,
+ const std::vector<Image>& aImageVec,
+ const unsigned long& nIter)
+{
+ sal_uInt16 nItemId = 0;
+ ToolBox* pToolbox = dynamic_cast<ToolBox*>(pNotebookbarToolBox);
+ if (pToolbox)
+ {
+ pToolbox->InsertSeparator();
+ pToolbox->Show();
+ Size aSize(0, 0);
+ Image sImage;
+ pToolbox->InsertItem(aAddonNotebookBarItem.sCommandURL, m_xFrame, ToolBoxItemBits::NONE,
+ aSize);
+ nItemId = pToolbox->GetItemId(aAddonNotebookBarItem.sCommandURL);
+ pToolbox->SetItemCommand(nItemId, aAddonNotebookBarItem.sCommandURL);
+ pToolbox->SetQuickHelpText(nItemId, aAddonNotebookBarItem.sLabel);
+
+ if (nIter < aImageVec.size())
+ {
+ sImage = aImageVec[nIter];
+ if (!sImage)
+ {
+ sImage = vcl::CommandInfoProvider::GetImageForCommand(
+ aAddonNotebookBarItem.sImageIdentifier, m_xFrame);
+ }
+ }
+
+ if (aAddonNotebookBarItem.sStyle == STYLE_TEXT)
+ pToolbox->SetItemText(nItemId, aAddonNotebookBarItem.sLabel);
+ else if (aAddonNotebookBarItem.sStyle == STYLE_ICON)
+ pToolbox->SetItemImage(nItemId, sImage);
+ else
+ {
+ pToolbox->SetItemText(nItemId, aAddonNotebookBarItem.sLabel);
+ pToolbox->SetItemImage(nItemId, sImage);
+ }
+ pToolbox->Show();
+ }
+}
+
NotebookBarAddonsMerger::NotebookBarAddonsMerger() {}
NotebookBarAddonsMerger::~NotebookBarAddonsMerger() {}
void NotebookBarAddonsMerger::MergeNotebookBarAddons(
- vcl::Window* pParent, const css::uno::Reference<css::frame::XFrame>& m_xFrame,
- const NotebookBarAddonsItem& aNotebookBarAddonsItem)
+ vcl::Window* pParent, const customMakeWidget& pFunction,
+ const css::uno::Reference<css::frame::XFrame>& m_xFrame,
+ const NotebookBarAddonsItem& aNotebookBarAddonsItem, NotebookBarAddonsMerger::stringmap rMap)
{
std::vector<Image> aImageVec = aNotebookBarAddonsItem.aImageValues;
unsigned long nIter = 0;
+ sal_uInt16 nPriorityIdx = aImageVec.size();
css::uno::Sequence<css::uno::Sequence<css::beans::PropertyValue>> aExtension;
for (unsigned long nIdx = 0; nIdx < aNotebookBarAddonsItem.aAddonValues.size(); nIdx++)
{
@@ -75,44 +124,25 @@ void NotebookBarAddonsMerger::MergeNotebookBarAddons(
for (int nSecIdx = 0; nSecIdx < aExtension.getLength(); nSecIdx++)
{
- sal_uInt16 nItemId = 0;
+ VclPtr<vcl::Window> pOptionalParent;
+ pOptionalParent = VclPtr<OptionalBox>::Create(pParent);
+ pOptionalParent->Show();
+
+ vcl::IPrioritable* pPrioritable
+ = dynamic_cast<vcl::IPrioritable*>(pOptionalParent.get());
+ if (pPrioritable)
+ pPrioritable->SetPriority(nPriorityIdx - nIter);
+
+ VclPtr<vcl::Window> pNotebookbarToolBox;
+ pFunction(pNotebookbarToolBox, pOptionalParent, rMap);
+
AddonNotebookBarItem aAddonNotebookBarItem;
const css::uno::Sequence<css::beans::PropertyValue> pExtension = aExtension[nSecIdx];
GetAddonNotebookBarItem(pExtension, aAddonNotebookBarItem);
- ToolBox* pToolbox = dynamic_cast<ToolBox*>(pParent);
- if (pToolbox)
- {
- Size aSize(0, 0);
- Image sImage;
- pToolbox->InsertItem(aAddonNotebookBarItem.sCommandURL, m_xFrame,
- ToolBoxItemBits::NONE, aSize);
- nItemId = pToolbox->GetItemId(aAddonNotebookBarItem.sCommandURL);
- pToolbox->SetItemCommand(nItemId, aAddonNotebookBarItem.sCommandURL);
- pToolbox->SetQuickHelpText(nItemId, aAddonNotebookBarItem.sLabel);
-
- if (nIter < aImageVec.size())
- {
- sImage = aImageVec[nIter];
- if (!sImage)
- {
- sImage = vcl::CommandInfoProvider::GetImageForCommand(
- aAddonNotebookBarItem.sImageIdentifier, m_xFrame);
- }
- nIter++;
- }
-
- if (aAddonNotebookBarItem.sStyle == STYLE_TEXT)
- pToolbox->SetItemText(nItemId, aAddonNotebookBarItem.sLabel);
- else if (aAddonNotebookBarItem.sStyle == STYLE_ICON)
- pToolbox->SetItemImage(nItemId, sImage);
- else
- {
- pToolbox->SetItemText(nItemId, aAddonNotebookBarItem.sLabel);
- pToolbox->SetItemImage(nItemId, sImage);
- }
- }
- if (nSecIdx == aExtension.getLength() - 1)
- pToolbox->InsertSeparator();
+
+ CreateNotebookBarToolBox(pNotebookbarToolBox, m_xFrame, aAddonNotebookBarItem,
+ aImageVec, nIter);
+ nIter++;
}
}
}