summaryrefslogtreecommitdiff
path: root/starmath/inc
diff options
context:
space:
mode:
authorJan-Marek Glogowski <glogow@fbihome.de>2019-05-27 22:21:07 +0000
committerJan-Marek Glogowski <glogow@fbihome.de>2019-05-28 16:02:03 +0200
commitc3435fc4c6eafec3155c9c85c5d1081dac97c688 (patch)
tree5d59cf71fc06705178563a36ba987199caaf7d55 /starmath/inc
parentd93746bd4b9dac31f5a49999e50023baa8f984d9 (diff)
SM move categories into SmElementsControl...
... and drop the special examples handling. All these lists are already static. The only "drawback" are the previously range-based for loops in SmElementsDockingWindow. Change-Id: I7a6cfbe74c29fcc14557aef1d5ef31d599b33fc0 Reviewed-on: https://gerrit.libreoffice.org/73076 Tested-by: Jenkins Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
Diffstat (limited to 'starmath/inc')
-rw-r--r--starmath/inc/ElementsDockingWindow.hxx30
1 files changed, 18 insertions, 12 deletions
diff --git a/starmath/inc/ElementsDockingWindow.hxx b/starmath/inc/ElementsDockingWindow.hxx
index c68d442bef3d..0fdb3fc72369 100644
--- a/starmath/inc/ElementsDockingWindow.hxx
+++ b/starmath/inc/ElementsDockingWindow.hxx
@@ -25,6 +25,7 @@
#include "format.hxx"
#include <memory>
+#include <tuple>
class SmDocShell;
class SmNode;
@@ -57,20 +58,25 @@ public:
bool isSeparator() const override { return true; }
};
+typedef std::pair<const char*, const char*> SmElementDescr;
+
class SmElementsControl : public Control
{
friend class ElementSelectorUIObject;
friend class ElementUIObject;
- static const std::pair<const char*, const char*> aUnaryBinaryOperatorsList[];
- static const std::pair<const char*, const char*> aRelationsList[];
- static const std::pair<const char*, const char*> aSetOperations[];
- static const std::pair<const char*, const char*> aFunctions[];
- static const std::pair<const char*, const char*> aOperators[];
- static const std::pair<const char*, const char*> aAttributes[];
- static const std::pair<const char*, const char*> aBrackets[];
- static const std::pair<const char*, const char*> aFormats[];
- static const std::pair<const char*, const char*> aOthers[];
+ static const SmElementDescr m_aUnaryBinaryOperatorsList[];
+ static const SmElementDescr m_aRelationsList[];
+ static const SmElementDescr m_aSetOperationsList[];
+ static const SmElementDescr m_aFunctionsList[];
+ static const SmElementDescr m_aOperatorsList[];
+ static const SmElementDescr m_aAttributesList[];
+ static const SmElementDescr m_aBracketsList[];
+ static const SmElementDescr m_aFormatsList[];
+ static const SmElementDescr m_aOthersList[];
+ static const SmElementDescr m_aExamplesList[];
+ static const std::tuple<const char*, const SmElementDescr*, size_t> m_aCategories[];
+ static const size_t m_aCategoriesSize;
virtual void ApplySettings(vcl::RenderContext&) override;
virtual void DataChanged(const DataChangedEvent&) override;
@@ -97,7 +103,7 @@ class SmElementsControl : public Control
bool m_bFirstPaintAfterLayout;
void addElement(const OUString& aElementVisual, const OUString& aElementSource, const OUString& aHelpText);
- void addElements(const std::pair<const char*, const char*> aElementsArray[], sal_uInt16 size);
+ void addElements(const SmElementDescr aElementsArray[], sal_uInt16 size);
SmElement* current() const;
bool hasRollover() const { return m_nCurrentRolloverElement != SAL_MAX_UINT16; }
@@ -118,6 +124,8 @@ public:
virtual ~SmElementsControl() override;
virtual void dispose() override;
+ static const auto& categories() { return m_aCategories; }
+ static size_t categoriesSize() { return m_aCategoriesSize; }
void setElementSetId(const char* pSetId);
void setVerticalMode(bool bVertical);
@@ -134,8 +142,6 @@ public:
class SmElementsDockingWindow : public SfxDockingWindow
{
- static const char* aCategories[];
-
VclPtr<SmElementsControl> mpElementsControl;
VclPtr<ListBox> mpElementListBox;