Kaydet (Commit) c3435fc4 authored tarafından Jan-Marek Glogowski's avatar Jan-Marek Glogowski

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: 's avatarJan-Marek Glogowski <glogow@fbihome.de>
üst d93746bd
...@@ -25,6 +25,7 @@ ...@@ -25,6 +25,7 @@
#include "format.hxx" #include "format.hxx"
#include <memory> #include <memory>
#include <tuple>
class SmDocShell; class SmDocShell;
class SmNode; class SmNode;
...@@ -57,20 +58,25 @@ public: ...@@ -57,20 +58,25 @@ public:
bool isSeparator() const override { return true; } bool isSeparator() const override { return true; }
}; };
typedef std::pair<const char*, const char*> SmElementDescr;
class SmElementsControl : public Control class SmElementsControl : public Control
{ {
friend class ElementSelectorUIObject; friend class ElementSelectorUIObject;
friend class ElementUIObject; friend class ElementUIObject;
static const std::pair<const char*, const char*> aUnaryBinaryOperatorsList[]; static const SmElementDescr m_aUnaryBinaryOperatorsList[];
static const std::pair<const char*, const char*> aRelationsList[]; static const SmElementDescr m_aRelationsList[];
static const std::pair<const char*, const char*> aSetOperations[]; static const SmElementDescr m_aSetOperationsList[];
static const std::pair<const char*, const char*> aFunctions[]; static const SmElementDescr m_aFunctionsList[];
static const std::pair<const char*, const char*> aOperators[]; static const SmElementDescr m_aOperatorsList[];
static const std::pair<const char*, const char*> aAttributes[]; static const SmElementDescr m_aAttributesList[];
static const std::pair<const char*, const char*> aBrackets[]; static const SmElementDescr m_aBracketsList[];
static const std::pair<const char*, const char*> aFormats[]; static const SmElementDescr m_aFormatsList[];
static const std::pair<const char*, const char*> aOthers[]; 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 ApplySettings(vcl::RenderContext&) override;
virtual void DataChanged(const DataChangedEvent&) override; virtual void DataChanged(const DataChangedEvent&) override;
...@@ -97,7 +103,7 @@ class SmElementsControl : public Control ...@@ -97,7 +103,7 @@ class SmElementsControl : public Control
bool m_bFirstPaintAfterLayout; bool m_bFirstPaintAfterLayout;
void addElement(const OUString& aElementVisual, const OUString& aElementSource, const OUString& aHelpText); 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; SmElement* current() const;
bool hasRollover() const { return m_nCurrentRolloverElement != SAL_MAX_UINT16; } bool hasRollover() const { return m_nCurrentRolloverElement != SAL_MAX_UINT16; }
...@@ -118,6 +124,8 @@ public: ...@@ -118,6 +124,8 @@ public:
virtual ~SmElementsControl() override; virtual ~SmElementsControl() override;
virtual void dispose() 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 setElementSetId(const char* pSetId);
void setVerticalMode(bool bVertical); void setVerticalMode(bool bVertical);
...@@ -134,8 +142,6 @@ public: ...@@ -134,8 +142,6 @@ public:
class SmElementsDockingWindow : public SfxDockingWindow class SmElementsDockingWindow : public SfxDockingWindow
{ {
static const char* aCategories[];
VclPtr<SmElementsControl> mpElementsControl; VclPtr<SmElementsControl> mpElementsControl;
VclPtr<ListBox> mpElementListBox; VclPtr<ListBox> mpElementListBox;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment