diff options
author | Jan-Marek Glogowski <glogow@fbihome.de> | 2019-05-27 22:21:07 +0000 |
---|---|---|
committer | Jan-Marek Glogowski <glogow@fbihome.de> | 2019-05-28 16:02:03 +0200 |
commit | c3435fc4c6eafec3155c9c85c5d1081dac97c688 (patch) | |
tree | 5d59cf71fc06705178563a36ba987199caaf7d55 /starmath/inc | |
parent | d93746bd4b9dac31f5a49999e50023baa8f984d9 (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.hxx | 30 |
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; |