summaryrefslogtreecommitdiff
path: root/starmath
diff options
context:
space:
mode:
authorMike Kaganski <mike.kaganski@collabora.com>2022-05-19 16:38:56 +0300
committerMike Kaganski <mike.kaganski@collabora.com>2022-05-19 22:31:20 +0200
commit8231d7957ae04599d7c87bba117f9a53452fcf0f (patch)
treea3615d2919be780383956a8d210bc6e1ab2d8cb6 /starmath
parentad5a41da383f34dc4894a21c8468cc3a8519d9b1 (diff)
Simplify SmElementsControl
Change-Id: Idcb075a474b440447b8566cc92a8f65bbc77127c Reviewed-on: https://gerrit.libreoffice.org/c/core/+/134643 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
Diffstat (limited to 'starmath')
-rw-r--r--starmath/inc/ElementsDockingWindow.hxx25
-rw-r--r--starmath/source/ElementsDockingWindow.cxx739
-rw-r--r--starmath/source/SmElementsPanel.cxx7
3 files changed, 409 insertions, 362 deletions
diff --git a/starmath/inc/ElementsDockingWindow.hxx b/starmath/inc/ElementsDockingWindow.hxx
index 3b8e9fa9788d..28a564f7a1e7 100644
--- a/starmath/inc/ElementsDockingWindow.hxx
+++ b/starmath/inc/ElementsDockingWindow.hxx
@@ -58,32 +58,11 @@ public:
bool isSeparator() const override { return true; }
};
-typedef std::pair<const char*, TranslateId> SmElementDescr;
-
class SmElementsControl : public weld::CustomWidgetController
{
friend class ElementSelectorUIObject;
friend class ElementUIObject;
- // SmParser 5 elements
- static const SmElementDescr m_a5UnaryBinaryOperatorsList[];
- static const SmElementDescr m_a5RelationsList[];
- static const SmElementDescr m_a5SetOperationsList[];
- static const SmElementDescr m_a5FunctionsList[];
- static const SmElementDescr m_a5OperatorsList[];
- static const SmElementDescr m_a5AttributesList[];
- static const SmElementDescr m_a5BracketsList[];
- static const SmElementDescr m_a5FormatsList[];
- static const SmElementDescr m_a5OthersList[];
- static const SmElementDescr m_a5ExamplesList[];
- static const std::tuple<TranslateId, const SmElementDescr*, size_t> m_a5Categories[];
- static const size_t m_a5CategoriesSize;
-
- // SmParser 6 elements
- static const std::tuple<const char*, const SmElementDescr*, size_t> m_a6Categories[0];
- static const size_t m_a6CategoriesSize = 0;
-
- // Parser for them
std::unique_ptr<AbstractSmParser> maParser;
virtual void Paint(vcl::RenderContext& rRenderContext, const tools::Rectangle&) override;
@@ -113,7 +92,6 @@ class SmElementsControl : public weld::CustomWidgetController
rtl::Reference<AccessibleSmElementsControl> m_xAccessible;
void addElement(const OUString& aElementVisual, const OUString& aElementSource, const OUString& aHelpText);
- void addElements(const SmElementDescr aElementsArray[], sal_uInt16 size);
SmElement* current() const;
void setCurrentElement(sal_uInt16);
bool hasRollover() const { return m_nCurrentRolloverElement != SAL_MAX_UINT16; }
@@ -133,8 +111,7 @@ public:
explicit SmElementsControl(std::unique_ptr<weld::ScrolledWindow> xScrolledWindow);
virtual ~SmElementsControl() override;
- static const auto& categories() { return m_a5Categories; }
- static size_t categoriesSize() { return m_a5CategoriesSize; }
+ static const std::vector<TranslateId>& categories();
const TranslateId& elementSetId() const { return msCurrentSetId; }
void setElementSetId(TranslateId pSetId);
diff --git a/starmath/source/ElementsDockingWindow.cxx b/starmath/source/ElementsDockingWindow.cxx
index 8256dfe19c55..f534a5345b8e 100644
--- a/starmath/source/ElementsDockingWindow.cxx
+++ b/starmath/source/ElementsDockingWindow.cxx
@@ -38,6 +38,8 @@
#include <vcl/uitest/eventdescription.hxx>
#include <vcl/uitest/logger.hxx>
+#include <utility>
+
SmElement::SmElement(std::unique_ptr<SmNode>&& pNode, const OUString& aText, const OUString& aHelpText) :
mpNode(std::move(pNode)),
maText(aText),
@@ -53,234 +55,416 @@ SmElementSeparator::SmElementSeparator() :
SmElement(std::unique_ptr<SmNode>(), OUString(), OUString())
{}
-const SmElementDescr SmElementsControl::m_a5UnaryBinaryOperatorsList[] =
+namespace
{
- {RID_PLUSX, RID_PLUSX_HELP}, {RID_MINUSX, RID_MINUSX_HELP},
- {RID_PLUSMINUSX, RID_PLUSMINUSX_HELP}, {RID_MINUSPLUSX, RID_MINUSPLUSX_HELP},
- {nullptr, {}},
- {RID_XPLUSY, RID_XPLUSY_HELP}, {RID_XMINUSY, RID_XMINUSY_HELP},
- {RID_XCDOTY, RID_XCDOTY_HELP}, {RID_XTIMESY, RID_XTIMESY_HELP},
- {RID_XSYMTIMESY, RID_XSYMTIMESY_HELP}, {RID_XOVERY, RID_XOVERY_HELP},
- {RID_FRACXY, RID_FRACXY_HELP},
- {RID_XDIVY, RID_XDIVY_HELP}, {RID_XSYMDIVIDEY, RID_XSYMDIVIDEY_HELP},
- {RID_XOPLUSY, RID_XOPLUSY_HELP}, {RID_XOMINUSY, RID_XOMINUSY_HELP},
- {RID_XODOTY, RID_XODOTY_HELP}, {RID_XOTIMESY, RID_XOTIMESY_HELP},
- {RID_XODIVIDEY, RID_XODIVIDEY_HELP}, {RID_XCIRCY, RID_XCIRCY_HELP},
- {RID_XWIDESLASHY, RID_XWIDESLASHY_HELP}, {RID_XWIDEBSLASHY, RID_XWIDEBSLASHY_HELP},
- {nullptr, {}},
- {RID_NEGX, RID_NEGX_HELP}, {RID_XANDY, RID_XANDY_HELP}, {RID_XORY, RID_XORY_HELP}
+// element, element help, element visual, element visual's translatable
+typedef std::tuple<std::string_view, TranslateId, std::u16string_view, TranslateId> SmElementDescr;
+
+// SmParser 5 elements
+
+const SmElementDescr s_a5UnaryBinaryOperatorsList[] =
+{
+ {RID_PLUSX, RID_PLUSX_HELP, {}, {}},
+ {RID_MINUSX, RID_MINUSX_HELP, {}, {}},
+ {RID_PLUSMINUSX, RID_PLUSMINUSX_HELP, {}, {}},
+ {RID_MINUSPLUSX, RID_MINUSPLUSX_HELP, {}, {}},
+ {},
+ {RID_XPLUSY, RID_XPLUSY_HELP, {}, {}},
+ {RID_XMINUSY, RID_XMINUSY_HELP, {}, {}},
+ {RID_XCDOTY, RID_XCDOTY_HELP, {}, {}},
+ {RID_XTIMESY, RID_XTIMESY_HELP, {}, {}},
+ {RID_XSYMTIMESY, RID_XSYMTIMESY_HELP, {}, {}},
+ {RID_XOVERY, RID_XOVERY_HELP, {}, {}},
+ {RID_FRACXY, RID_FRACXY_HELP, {}, {}},
+ {RID_XDIVY, RID_XDIVY_HELP, {}, {}},
+ {RID_XSYMDIVIDEY, RID_XSYMDIVIDEY_HELP, {}, {}},
+ {RID_XOPLUSY, RID_XOPLUSY_HELP, {}, {}},
+ {RID_XOMINUSY, RID_XOMINUSY_HELP, {}, {}},
+ {RID_XODOTY, RID_XODOTY_HELP, {}, {}},
+ {RID_XOTIMESY, RID_XOTIMESY_HELP, {}, {}},
+ {RID_XODIVIDEY, RID_XODIVIDEY_HELP, {}, {}},
+ {RID_XCIRCY, RID_XCIRCY_HELP, {}, {}},
+ {RID_XWIDESLASHY, RID_XWIDESLASHY_HELP, {}, {}},
+ {RID_XWIDEBSLASHY, RID_XWIDEBSLASHY_HELP, {}, {}},
+ {},
+ {RID_NEGX, RID_NEGX_HELP, {}, {}},
+ {RID_XANDY, RID_XANDY_HELP, {}, {}},
+ {RID_XORY, RID_XORY_HELP, {}, {}}
};
-const SmElementDescr SmElementsControl::m_a5RelationsList[] =
+const SmElementDescr s_a5RelationsList[] =
{
- {RID_XEQY, RID_XEQY_HELP}, {RID_XNEQY, RID_XNEQY_HELP}, {RID_XLTY, RID_XLTY_HELP},
- {RID_XLEY, RID_XLEY_HELP}, {RID_XLESLANTY, RID_XLESLANTY_HELP}, {RID_XGTY, RID_XGTY_HELP},
- {RID_XGEY, RID_XGEY_HELP}, {RID_XGESLANTY, RID_XGESLANTY_HELP},
- {RID_XLLY, RID_XLLY_HELP}, {RID_XGGY, RID_XGGY_HELP},
- {nullptr, {}},
- {RID_XAPPROXY, RID_XAPPROXY_HELP}, {RID_XSIMY, RID_XSIMY_HELP}, {RID_XSIMEQY, RID_XSIMEQY_HELP},
- {RID_XEQUIVY, RID_XEQUIVY_HELP}, {RID_XPROPY, RID_XPROPY_HELP}, {RID_XPARALLELY, RID_XPARALLELY_HELP},
- {RID_XORTHOY, RID_XORTHOY_HELP}, {RID_XDIVIDESY, RID_XDIVIDESY_HELP}, {RID_XNDIVIDESY, RID_XNDIVIDESY_HELP},
- {RID_XTOWARDY, RID_XTOWARDY_HELP}, {RID_XTRANSLY, RID_XTRANSLY_HELP}, {RID_XTRANSRY, RID_XTRANSRY_HELP},
- {RID_XDEFY, RID_XDEFY_HELP},
- {nullptr, {}},
- {RID_DLARROW, RID_DLARROW_HELP}, {RID_DLRARROW, RID_DLRARROW_HELP}, {RID_DRARROW, RID_DRARROW_HELP},
- {nullptr, {}},
- {RID_XPRECEDESY, RID_XPRECEDESY_HELP}, {RID_XSUCCEEDSY, RID_XSUCCEEDSY_HELP},
- {RID_XPRECEDESEQUALY, RID_XPRECEDESEQUALY_HELP}, {RID_XSUCCEEDSEQUALY, RID_XSUCCEEDSEQUALY_HELP},
- {RID_XPRECEDESEQUIVY, RID_XPRECEDESEQUIVY_HELP}, {RID_XSUCCEEDSEQUIVY, RID_XSUCCEEDSEQUIVY_HELP},
- {RID_XNOTPRECEDESY, RID_XNOTPRECEDESY_HELP}, {RID_XNOTSUCCEEDSY, RID_XNOTSUCCEEDSY_HELP},
+ {RID_XEQY, RID_XEQY_HELP, {}, {}},
+ {RID_XNEQY, RID_XNEQY_HELP, {}, {}},
+ {RID_XLTY, RID_XLTY_HELP, {}, {}},
+ {RID_XLEY, RID_XLEY_HELP, {}, {}},
+ {RID_XLESLANTY, RID_XLESLANTY_HELP, {}, {}},
+ {RID_XGTY, RID_XGTY_HELP, {}, {}},
+ {RID_XGEY, RID_XGEY_HELP, {}, {}},
+ {RID_XGESLANTY, RID_XGESLANTY_HELP, {}, {}},
+ {RID_XLLY, RID_XLLY_HELP, {}, {}},
+ {RID_XGGY, RID_XGGY_HELP, {}, {}},
+ {},
+ {RID_XAPPROXY, RID_XAPPROXY_HELP, {}, {}},
+ {RID_XSIMY, RID_XSIMY_HELP, {}, {}},
+ {RID_XSIMEQY, RID_XSIMEQY_HELP, {}, {}},
+ {RID_XEQUIVY, RID_XEQUIVY_HELP, {}, {}},
+ {RID_XPROPY, RID_XPROPY_HELP, {}, {}},
+ {RID_XPARALLELY, RID_XPARALLELY_HELP, {}, {}},
+ {RID_XORTHOY, RID_XORTHOY_HELP, {}, {}},
+ {RID_XDIVIDESY, RID_XDIVIDESY_HELP, {}, {}},
+ {RID_XNDIVIDESY, RID_XNDIVIDESY_HELP, {}, {}},
+ {RID_XTOWARDY, RID_XTOWARDY_HELP, {}, {}},
+ {RID_XTRANSLY, RID_XTRANSLY_HELP, {}, {}},
+ {RID_XTRANSRY, RID_XTRANSRY_HELP, {}, {}},
+ {RID_XDEFY, RID_XDEFY_HELP, {}, {}},
+ {},
+ {RID_DLARROW, RID_DLARROW_HELP, {}, {}},
+ {RID_DLRARROW, RID_DLRARROW_HELP, {}, {}},
+ {RID_DRARROW, RID_DRARROW_HELP, {}, {}},
+ {},
+ {RID_XPRECEDESY, RID_XPRECEDESY_HELP, {}, {}},
+ {RID_XSUCCEEDSY, RID_XSUCCEEDSY_HELP, {}, {}},
+ {RID_XPRECEDESEQUALY, RID_XPRECEDESEQUALY_HELP, {}, {}},
+ {RID_XSUCCEEDSEQUALY, RID_XSUCCEEDSEQUALY_HELP, {}, {}},
+ {RID_XPRECEDESEQUIVY, RID_XPRECEDESEQUIVY_HELP, {}, {}},
+ {RID_XSUCCEEDSEQUIVY, RID_XSUCCEEDSEQUIVY_HELP, {}, {}},
+ {RID_XNOTPRECEDESY, RID_XNOTPRECEDESY_HELP, {}, {}},
+ {RID_XNOTSUCCEEDSY, RID_XNOTSUCCEEDSY_HELP, {}, {}},
};
-const SmElementDescr SmElementsControl::m_a5SetOperationsList[] =
+const SmElementDescr s_a5SetOperationsList[] =
{
- {RID_XINY, RID_XINY_HELP}, {RID_XNOTINY, RID_XNOTINY_HELP}, {RID_XOWNSY, RID_XOWNSY_HELP},
- {nullptr, {}},
- {RID_XINTERSECTIONY, RID_XINTERSECTIONY_HELP}, {RID_XUNIONY, RID_XUNIONY_HELP},
- {RID_XSETMINUSY, RID_XSETMINUSY_HELP}, {RID_XSETQUOTIENTY, RID_XSETQUOTIENTY_HELP},
- {RID_XSUBSETY, RID_XSUBSETY_HELP}, {RID_XSUBSETEQY, RID_XSUBSETEQY_HELP},
- {RID_XSUPSETY, RID_XSUPSETY_HELP}, {RID_XSUPSETEQY, RID_XSUPSETEQY_HELP},
- {RID_XNSUBSETY, RID_XNSUBSETY_HELP}, {RID_XNSUBSETEQY, RID_XNSUBSETEQY_HELP},
- {RID_XNSUPSETY, RID_XNSUPSETY_HELP}, {RID_XNSUPSETEQY, RID_XNSUPSETEQY_HELP},
- {nullptr, {}},
- {RID_EMPTYSET, RID_EMPTYSET_HELP}, {RID_ALEPH, RID_ALEPH_HELP}, {RID_SETN, RID_SETN_HELP},
- {RID_SETZ, RID_SETZ_HELP}, {RID_SETQ, RID_SETQ_HELP}, {RID_SETR, RID_SETR_HELP}, {RID_SETC, RID_SETC_HELP}
+ {RID_XINY, RID_XINY_HELP, {}, {}},
+ {RID_XNOTINY, RID_XNOTINY_HELP, {}, {}},
+ {RID_XOWNSY, RID_XOWNSY_HELP, {}, {}},
+ {},
+ {RID_XINTERSECTIONY, RID_XINTERSECTIONY_HELP, {}, {}},
+ {RID_XUNIONY, RID_XUNIONY_HELP, {}, {}},
+ {RID_XSETMINUSY, RID_XSETMINUSY_HELP, {}, {}},
+ {RID_XSETQUOTIENTY, RID_XSETQUOTIENTY_HELP, {}, {}},
+ {RID_XSUBSETY, RID_XSUBSETY_HELP, {}, {}},
+ {RID_XSUBSETEQY, RID_XSUBSETEQY_HELP, {}, {}},
+ {RID_XSUPSETY, RID_XSUPSETY_HELP, {}, {}},
+ {RID_XSUPSETEQY, RID_XSUPSETEQY_HELP, {}, {}},
+ {RID_XNSUBSETY, RID_XNSUBSETY_HELP, {}, {}},
+ {RID_XNSUBSETEQY, RID_XNSUBSETEQY_HELP, {}, {}},
+ {RID_XNSUPSETY, RID_XNSUPSETY_HELP, {}, {}},
+ {RID_XNSUPSETEQY, RID_XNSUPSETEQY_HELP, {}, {}},
+ {},
+ {RID_EMPTYSET, RID_EMPTYSET_HELP, {}, {}},
+ {RID_ALEPH, RID_ALEPH_HELP, {}, {}},
+ {RID_SETN, RID_SETN_HELP, {}, {}},
+ {RID_SETZ, RID_SETZ_HELP, {}, {}},
+ {RID_SETQ, RID_SETQ_HELP, {}, {}},
+ {RID_SETR, RID_SETR_HELP, {}, {}},
+ {RID_SETC, RID_SETC_HELP, {}, {}}
};
-const SmElementDescr SmElementsControl::m_a5FunctionsList[] =
+const SmElementDescr s_a5FunctionsList[] =
{
- {RID_ABSX, RID_ABSX_HELP}, {RID_FACTX, RID_FACTX_HELP}, {RID_SQRTX, RID_SQRTX_HELP},
- {RID_NROOTXY, RID_NROOTXY_HELP}, {RID_RSUPX, RID_RSUPX_HELP}, {RID_EX, RID_EX_HELP},
- {RID_LNX, RID_LNX_HELP}, {RID_EXPX, RID_EXPX_HELP}, {RID_LOGX, RID_LOGX_HELP},
- {nullptr, {}},
- {RID_SINX, RID_SINX_HELP}, {RID_COSX, RID_COSX_HELP}, {RID_TANX, RID_TANX_HELP}, {RID_COTX, RID_COTX_HELP},
- {RID_SINHX, RID_SINHX_HELP}, {RID_COSHX, RID_COSHX_HELP}, {RID_TANHX, RID_TANHX_HELP},
- {RID_COTHX, RID_COTHX_HELP},
- {nullptr, {}},
- {RID_ARCSINX, RID_ARCSINX_HELP}, {RID_ARCCOSX, RID_ARCCOSX_HELP}, {RID_ARCTANX, RID_ARCTANX_HELP},
- {RID_ARCCOTX, RID_ARCCOTX_HELP}, {RID_ARSINHX, RID_ARSINHX_HELP}, {RID_ARCOSHX, RID_ARCOSHX_HELP},
- {RID_ARTANHX, RID_ARTANHX_HELP}, {RID_ARCOTHX, RID_ARCOTHX_HELP},
- {nullptr, {}},
- {RID_FUNCX, RID_FUNCX_HELP}
+ {RID_ABSX, RID_ABSX_HELP, {}, {}},
+ {RID_FACTX, RID_FACTX_HELP, {}, {}},
+ {RID_SQRTX, RID_SQRTX_HELP, {}, {}},
+ {RID_NROOTXY, RID_NROOTXY_HELP, {}, {}},
+ {RID_RSUPX, RID_RSUPX_HELP, {}, {}},
+ {RID_EX, RID_EX_HELP, {}, {}},
+ {RID_LNX, RID_LNX_HELP, {}, {}},
+ {RID_EXPX, RID_EXPX_HELP, {}, {}},
+ {RID_LOGX, RID_LOGX_HELP, {}, {}},
+ {},
+ {RID_SINX, RID_SINX_HELP, {}, {}},
+ {RID_COSX, RID_COSX_HELP, {}, {}},
+ {RID_TANX, RID_TANX_HELP, {}, {}},
+ {RID_COTX, RID_COTX_HELP, {}, {}},
+ {RID_SINHX, RID_SINHX_HELP, {}, {}},
+ {RID_COSHX, RID_COSHX_HELP, {}, {}},
+ {RID_TANHX, RID_TANHX_HELP, {}, {}},
+ {RID_COTHX, RID_COTHX_HELP, {}, {}},
+ {},
+ {RID_ARCSINX, RID_ARCSINX_HELP, {}, {}},
+ {RID_ARCCOSX, RID_ARCCOSX_HELP, {}, {}},
+ {RID_ARCTANX, RID_ARCTANX_HELP, {}, {}},
+ {RID_ARCCOTX, RID_ARCCOTX_HELP, {}, {}},
+ {RID_ARSINHX, RID_ARSINHX_HELP, {}, {}},
+ {RID_ARCOSHX, RID_ARCOSHX_HELP, {}, {}},
+ {RID_ARTANHX, RID_ARTANHX_HELP, {}, {}},
+ {RID_ARCOTHX, RID_ARCOTHX_HELP, {}, {}},
+ {},
+ {RID_FUNCX, RID_FUNCX_HELP, {}, {}},
};
-const SmElementDescr SmElementsControl::m_a5OperatorsList[] =
+const SmElementDescr s_a5OperatorsList[] =
{
- {RID_LIMX, RID_LIMX_HELP}, {RID_LIM_FROMX, RID_LIM_FROMX_HELP},
- {RID_LIM_TOX, RID_LIM_TOX_HELP}, {RID_LIM_FROMTOX, RID_LIM_FROMTOX_HELP},
- {nullptr, {}},
- {RID_LIMINFX, RID_LIMINFX_HELP}, {RID_LIMINF_FROMX, RID_LIMINF_FROMX_HELP},
- {RID_LIMINF_TOX, RID_LIMINF_TOX_HELP}, {RID_LIMINF_FROMTOX, RID_LIMINF_FROMTOX_HELP},
- {nullptr, {}},
- {RID_LIMSUPX, RID_LIMSUPX_HELP}, {RID_LIMSUP_FROMX, RID_LIMSUP_FROMX_HELP},
- {RID_LIMSUP_TOX, RID_LIMSUP_TOX_HELP}, {RID_LIMSUP_FROMTOX, RID_LIMSUP_FROMTOX_HELP},
- {nullptr, {}},
- {RID_SUMX, RID_SUMX_HELP}, {RID_SUM_FROMX, RID_SUM_FROMX_HELP},
- {RID_SUM_TOX, RID_SUM_TOX_HELP}, {RID_SUM_FROMTOX, RID_SUM_FROMTOX_HELP},
- {nullptr, {}},
- {RID_PRODX, RID_PRODX_HELP}, {RID_PROD_FROMX, RID_PROD_FROMX_HELP},
- {RID_PROD_TOX, RID_PROD_TOX_HELP}, {RID_PROD_FROMTOX, RID_PROD_FROMTOX_HELP},
- {nullptr, {}},
- {RID_COPRODX, RID_COPRODX_HELP}, {RID_COPROD_FROMX, RID_COPROD_FROMX_HELP},
- {RID_COPROD_TOX, RID_COPROD_TOX_HELP}, {RID_COPROD_FROMTOX, RID_COPROD_FROMTOX_HELP},
- {nullptr, {}},
- {RID_INTX, RID_INTX_HELP}, {RID_INT_FROMX, RID_INT_FROMX_HELP},
- {RID_INT_TOX, RID_INT_TOX_HELP}, {RID_INT_FROMTOX, RID_INT_FROMTOX_HELP},
- {nullptr, {}},
- {RID_IINTX, RID_IINTX_HELP}, {RID_IINT_FROMX, RID_IINT_FROMX_HELP},
- {RID_IINT_TOX, RID_IINT_TOX_HELP}, {RID_IINT_FROMTOX, RID_IINT_FROMTOX_HELP},
- {nullptr, {}},
- {RID_IIINTX, RID_IIINTX_HELP}, {RID_IIINT_FROMX, RID_IIINT_FROMX_HELP},
- {RID_IIINT_TOX, RID_IIINT_TOX_HELP}, {RID_IIINT_FROMTOX, RID_IIINT_FROMTOX_HELP},
- {nullptr, {}},
- {RID_LINTX, RID_LINTX_HELP}, {RID_LINT_FROMX, RID_LINT_FROMX_HELP},
- {RID_LINT_TOX, RID_LINT_TOX_HELP}, {RID_LINT_FROMTOX, RID_LINT_FROMTOX_HELP},
- {nullptr, {}},
- {RID_LLINTX, RID_LLINTX_HELP}, {RID_LLINT_FROMX, RID_LLINT_FROMX_HELP},
- {RID_LLINT_TOX, RID_LLINT_TOX_HELP}, {RID_LLINT_FROMTOX, RID_LLINT_FROMTOX_HELP},
- {nullptr, {}},
- {RID_LLLINTX, RID_LLLINTX_HELP}, {RID_LLLINT_FROMX, RID_LLLINT_FROMX_HELP},
- {RID_LLLINT_TOX, RID_LLLINT_TOX_HELP}, {RID_LLLINT_FROMTOX, RID_LLLINT_FROMTOX_HELP},
- {nullptr, {}},
- {RID_OPERX, RID_OPERX_HELP}, {RID_OPER_FROMX, RID_OPER_FROMX_HELP},
- {RID_OPER_TOX, RID_OPER_TOX_HELP}, {RID_OPER_FROMTOX, RID_OPER_FROMTOX_HELP}
+ {RID_LIMX, RID_LIMX_HELP, {}, {}},
+ {RID_LIM_FROMX, RID_LIM_FROMX_HELP, {}, {}},
+ {RID_LIM_TOX, RID_LIM_TOX_HELP, {}, {}},
+ {RID_LIM_FROMTOX, RID_LIM_FROMTOX_HELP, {}, {}},
+ {},
+ {RID_LIMINFX, RID_LIMINFX_HELP, {}, {}},
+ {RID_LIMINF_FROMX, RID_LIMINF_FROMX_HELP, {}, {}},
+ {RID_LIMINF_TOX, RID_LIMINF_TOX_HELP, {}, {}},
+ {RID_LIMINF_FROMTOX, RID_LIMINF_FROMTOX_HELP, {}, {}},
+ {},
+ {RID_LIMSUPX, RID_LIMSUPX_HELP, {}, {}},
+ {RID_LIMSUP_FROMX, RID_LIMSUP_FROMX_HELP, {}, {}},
+ {RID_LIMSUP_TOX, RID_LIMSUP_TOX_HELP, {}, {}},
+ {RID_LIMSUP_FROMTOX, RID_LIMSUP_FROMTOX_HELP, {}, {}},
+ {},
+ {RID_SUMX, RID_SUMX_HELP, {}, {}},
+ {RID_SUM_FROMX, RID_SUM_FROMX_HELP, {}, {}},
+ {RID_SUM_TOX, RID_SUM_TOX_HELP, {}, {}},
+ {RID_SUM_FROMTOX, RID_SUM_FROMTOX_HELP, {}, {}},
+ {},
+ {RID_PRODX, RID_PRODX_HELP, {}, {}},
+ {RID_PROD_FROMX, RID_PROD_FROMX_HELP, {}, {}},
+ {RID_PROD_TOX, RID_PROD_TOX_HELP, {}, {}},
+ {RID_PROD_FROMTOX, RID_PROD_FROMTOX_HELP, {}, {}},
+ {},
+ {RID_COPRODX, RID_COPRODX_HELP, {}, {}},
+ {RID_COPROD_FROMX, RID_COPROD_FROMX_HELP, {}, {}},
+ {RID_COPROD_TOX, RID_COPROD_TOX_HELP, {}, {}},
+ {RID_COPROD_FROMTOX, RID_COPROD_FROMTOX_HELP, {}, {}},
+ {},
+ {RID_INTX, RID_INTX_HELP, {}, {}},
+ {RID_INT_FROMX, RID_INT_FROMX_HELP, {}, {}},
+ {RID_INT_TOX, RID_INT_TOX_HELP, {}, {}},
+ {RID_INT_FROMTOX, RID_INT_FROMTOX_HELP, {}, {}},
+ {},
+ {RID_IINTX, RID_IINTX_HELP, {}, {}},
+ {RID_IINT_FROMX, RID_IINT_FROMX_HELP, {}, {}},
+ {RID_IINT_TOX, RID_IINT_TOX_HELP, {}, {}},
+ {RID_IINT_FROMTOX, RID_IINT_FROMTOX_HELP, {}, {}},
+ {},
+ {RID_IIINTX, RID_IIINTX_HELP, {}, {}},
+ {RID_IIINT_FROMX, RID_IIINT_FROMX_HELP, {}, {}},
+ {RID_IIINT_TOX, RID_IIINT_TOX_HELP, {}, {}},
+ {RID_IIINT_FROMTOX, RID_IIINT_FROMTOX_HELP, {}, {}},
+ {},
+ {RID_LINTX, RID_LINTX_HELP, {}, {}},
+ {RID_LINT_FROMX, RID_LINT_FROMX_HELP, {}, {}},
+ {RID_LINT_TOX, RID_LINT_TOX_HELP, {}, {}},
+ {RID_LINT_FROMTOX, RID_LINT_FROMTOX_HELP, {}, {}},
+ {},
+ {RID_LLINTX, RID_LLINTX_HELP, {}, {}},
+ {RID_LLINT_FROMX, RID_LLINT_FROMX_HELP, {}, {}},
+ {RID_LLINT_TOX, RID_LLINT_TOX_HELP, {}, {}},
+ {RID_LLINT_FROMTOX, RID_LLINT_FROMTOX_HELP, {}, {}},
+ {},
+ {RID_LLLINTX, RID_LLLINTX_HELP, {}, {}},
+ {RID_LLLINT_FROMX, RID_LLLINT_FROMX_HELP, {}, {}},
+ {RID_LLLINT_TOX, RID_LLLINT_TOX_HELP, {}, {}},
+ {RID_LLLINT_FROMTOX, RID_LLLINT_FROMTOX_HELP, {}, {}},
+ {},
+ {RID_OPERX, RID_OPERX_HELP, u"oper \xE22B <?>", {}},
+ {RID_OPER_FROMX, RID_OPER_FROMX_HELP, u"oper \xE22B from <?> <?>", {}},
+ {RID_OPER_TOX, RID_OPER_TOX_HELP, u"oper \xE22B to <?> <?>", {}},
+ {RID_OPER_FROMTOX, RID_OPER_FROMTOX_HELP, u"oper \xE22B from <?> to <?> <?>", {}},
};
-const SmElementDescr SmElementsControl::m_a5AttributesList[] =
+const SmElementDescr s_a5AttributesList[] =
{
- {RID_ACUTEX, RID_ACUTEX_HELP}, {RID_GRAVEX, RID_GRAVEX_HELP}, {RID_BREVEX, RID_BREVEX_HELP},
- {RID_CIRCLEX, RID_CIRCLEX_HELP}, {RID_DOTX, RID_DOTX_HELP}, {RID_DDOTX, RID_DDOTX_HELP},
- {RID_DDDOTX, RID_DDDOTX_HELP}, {RID_BARX, RID_BARX_HELP}, {RID_VECX, RID_VECX_HELP},
- {RID_HARPOONX, RID_HARPOONX_HELP},
- {RID_TILDEX, RID_TILDEX_HELP}, {RID_HATX, RID_HATX_HELP}, {RID_CHECKX, RID_CHECKX_HELP},
- {nullptr, {}},
- {RID_WIDEVECX, RID_WIDEVECX_HELP}, {RID_WIDEHARPOONX, RID_WIDEHARPOONX_HELP},
- {RID_WIDETILDEX, RID_WIDETILDEX_HELP}, {RID_WIDEHATX, RID_WIDEHATX_HELP},
- {RID_OVERLINEX, RID_OVERLINEX_HELP}, {RID_UNDERLINEX, RID_UNDERLINEX_HELP}, {RID_OVERSTRIKEX, RID_OVERSTRIKEX_HELP},
- {nullptr, {}},
- {RID_PHANTOMX, RID_PHANTOMX_HELP}, {RID_BOLDX, RID_BOLDX_HELP}, {RID_ITALX, RID_ITALX_HELP},
- {RID_SIZEXY, RID_SIZEXY_HELP}, {RID_FONTXY, RID_FONTXY_HELP},
- {nullptr, {}},
- {RID_COLORX_BLACK, RID_COLORX_BLACK_HELP}, {RID_COLORX_BLUE, RID_COLORX_BLUE_HELP},
- {RID_COLORX_GREEN, RID_COLORX_GREEN_HELP}, {RID_COLORX_RED, RID_COLORX_RED_HELP},
- {RID_COLORX_AQUA, RID_COLORX_AQUA_HELP}, {RID_COLORX_FUCHSIA, RID_COLORX_FUCHSIA_HELP},
- {RID_COLORX_YELLOW, RID_COLORX_YELLOW_HELP}, {RID_COLORX_GRAY, RID_COLORX_GRAY_HELP},
- {RID_COLORX_LIME, RID_COLORX_LIME_HELP}, {RID_COLORX_MAROON, RID_COLORX_MAROON_HELP},
- {RID_COLORX_NAVY, RID_COLORX_NAVY_HELP}, {RID_COLORX_OLIVE, RID_COLORX_OLIVE_HELP},
- {RID_COLORX_PURPLE, RID_COLORX_PURPLE_HELP}, {RID_COLORX_SILVER, RID_COLORX_SILVER_HELP},
- {RID_COLORX_TEAL, RID_COLORX_TEAL_HELP},{RID_COLORX_RGB, RID_COLORX_RGB_HELP},
- {RID_COLORX_HEX, RID_COLORX_HEX_HELP},
- {nullptr, {}},
- {RID_COLORX_CORAL, RID_COLORX_CORAL_HELP}, {RID_COLORX_MIDNIGHT, RID_COLORX_MIDNIGHT_HELP},
- {RID_COLORX_CRIMSON, RID_COLORX_CRIMSON_HELP}, {RID_COLORX_VIOLET, RID_COLORX_VIOLET_HELP},
- {RID_COLORX_ORANGE, RID_COLORX_ORANGE_HELP}, {RID_COLORX_ORANGERED, RID_COLORX_ORANGERED_HELP},
- {RID_COLORX_SEAGREEN, RID_COLORX_SEAGREEN_HELP}, {RID_COLORX_INDIGO, RID_COLORX_INDIGO_HELP},
- {RID_COLORX_HOTPINK, RID_COLORX_HOTPINK_HELP}, {RID_COLORX_LAVENDER, RID_COLORX_LAVENDER_HELP},
- {RID_COLORX_SNOW, RID_COLORX_SNOW_HELP},
+ {RID_ACUTEX, RID_ACUTEX_HELP, {}, {}},
+ {RID_GRAVEX, RID_GRAVEX_HELP, {}, {}},
+ {RID_BREVEX, RID_BREVEX_HELP, {}, {}},
+ {RID_CIRCLEX, RID_CIRCLEX_HELP, {}, {}},
+ {RID_DOTX, RID_DOTX_HELP, {}, {}},
+ {RID_DDOTX, RID_DDOTX_HELP, {}, {}},
+ {RID_DDDOTX, RID_DDDOTX_HELP, {}, {}},
+ {RID_BARX, RID_BARX_HELP, {}, {}},
+ {RID_VECX, RID_VECX_HELP, {}, {}},
+ {RID_HARPOONX, RID_HARPOONX_HELP, {}, {}},
+ {RID_TILDEX, RID_TILDEX_HELP, {}, {}},
+ {RID_HATX, RID_HATX_HELP, {}, {}},
+ {RID_CHECKX, RID_CHECKX_HELP, {}, {}},
+ {},
+ {RID_WIDEVECX, RID_WIDEVECX_HELP, {}, {}},
+ {RID_WIDEHARPOONX, RID_WIDEHARPOONX_HELP, {}, {}},
+ {RID_WIDETILDEX, RID_WIDETILDEX_HELP, {}, {}},
+ {RID_WIDEHATX, RID_WIDEHATX_HELP, {}, {}},
+ {RID_OVERLINEX, RID_OVERLINEX_HELP, {}, {}},
+ {RID_UNDERLINEX, RID_UNDERLINEX_HELP, {}, {}},
+ {RID_OVERSTRIKEX, RID_OVERSTRIKEX_HELP, {}, {}},
+ {},
+ {RID_PHANTOMX, RID_PHANTOMX_HELP, u"\"$1\"", STR_HIDE},
+ {RID_BOLDX, RID_BOLDX_HELP, u"bold B", {}},
+ {RID_ITALX, RID_ITALX_HELP, u"ital I", {}},
+ {RID_SIZEXY, RID_SIZEXY_HELP, u"\"$1\"", STR_SIZE},
+ {RID_FONTXY, RID_FONTXY_HELP, u"\"$1\"", STR_FONT},
+ {},
+ {RID_COLORX_BLACK, RID_COLORX_BLACK_HELP, u"color black { \"$1\" }", STR_BLACK},
+ {RID_COLORX_BLUE, RID_COLORX_BLUE_HELP, u"color blue { \"$1\" }", STR_BLUE},
+ {RID_COLORX_GREEN, RID_COLORX_GREEN_HELP, u"color green { \"$1\" }", STR_GREEN},
+ {RID_COLORX_RED, RID_COLORX_RED_HELP, u"color red { \"$1\" }", STR_RED},
+ {RID_COLORX_AQUA, RID_COLORX_AQUA_HELP, u"color aqua { \"$1\" }", STR_AQUA},
+ {RID_COLORX_FUCHSIA, RID_COLORX_FUCHSIA_HELP, u"color fuchsia { \"$1\" }", STR_FUCHSIA},
+ {RID_COLORX_YELLOW, RID_COLORX_YELLOW_HELP, u"color yellow { \"$1\" }", STR_YELLOW},
+ {RID_COLORX_GRAY, RID_COLORX_GRAY_HELP, u"color gray { \"$1\" }", STR_GRAY},
+ {RID_COLORX_LIME, RID_COLORX_LIME_HELP, u"color lime { \"$1\" }", STR_LIME},
+ {RID_COLORX_MAROON, RID_COLORX_MAROON_HELP, u"color maroon { \"$1\" }", STR_MAROON},
+ {RID_COLORX_NAVY, RID_COLORX_NAVY_HELP, u"color navy { \"$1\" }", STR_NAVY},
+ {RID_COLORX_OLIVE, RID_COLORX_OLIVE_HELP, u"color olive { \"$1\" }", STR_OLIVE},
+ {RID_COLORX_PURPLE, RID_COLORX_PURPLE_HELP, u"color purple { \"$1\" }", STR_PURPLE},
+ {RID_COLORX_SILVER, RID_COLORX_SILVER_HELP, u"color silver { \"$1\" }", STR_SILVER},
+ {RID_COLORX_TEAL, RID_COLORX_TEAL_HELP, u"color teal { \"$1\" }", STR_TEAL},
+ {RID_COLORX_RGB, RID_COLORX_RGB_HELP, u"color rgb 0 0 0 { \"$1\" }", STR_RGB},
+ //{RID_COLORX_RGBA, RID_COLORX_RGBA_HELP, u"color rgba 0 0 0 0 { \"$1\" }", STR_RGBA},
+ {RID_COLORX_HEX, RID_COLORX_HEX_HELP, u"color hex 000000 { \"$1\" }", STR_HEX},
+ {},
+ {RID_COLORX_CORAL, RID_COLORX_CORAL_HELP, u"color coral { \"$1\" }", STR_CORAL},
+ {RID_COLORX_MIDNIGHT, RID_COLORX_MIDNIGHT_HELP, u"color midnightblue { \"$1\" }", STR_MIDNIGHT},
+ {RID_COLORX_CRIMSON, RID_COLORX_CRIMSON_HELP, u"color crimson { \"$1\" }", STR_CRIMSON},
+ {RID_COLORX_VIOLET, RID_COLORX_VIOLET_HELP, u"color violet { \"$1\" }", STR_VIOLET},
+ {RID_COLORX_ORANGE, RID_COLORX_ORANGE_HELP, u"color orange { \"$1\" }", STR_ORANGE},
+ {RID_COLORX_ORANGERED, RID_COLORX_ORANGERED_HELP, u"color orangered { \"$1\" }", STR_ORANGERED},
+ {RID_COLORX_SEAGREEN, RID_COLORX_SEAGREEN_HELP, u"color seagreen { \"$1\" }", STR_SEAGREEN},
+ {RID_COLORX_INDIGO, RID_COLORX_INDIGO_HELP, u"color indigo { \"$1\" }", STR_INDIGO},
+ {RID_COLORX_HOTPINK, RID_COLORX_HOTPINK_HELP, u"color hotpink { \"$1\" }", STR_HOTPINK},
+ {RID_COLORX_LAVENDER, RID_COLORX_LAVENDER_HELP, u"color lavender { \"$1\" }", STR_LAVENDER},
+ {RID_COLORX_SNOW, RID_COLORX_SNOW_HELP, u"color snow { \"$1\" }", STR_SNOW},
};
-const SmElementDescr SmElementsControl::m_a5BracketsList[] =
+const SmElementDescr s_a5BracketsList[] =
{
- {RID_LRGROUPX, RID_LRGROUPX_HELP},
- {nullptr, {}},
- {RID_LRPARENTX, RID_LRPARENTX_HELP}, {RID_LRBRACKETX, RID_LRBRACKETX_HELP},
- {RID_LRDBRACKETX, RID_LRDBRACKETX_HELP}, {RID_LRBRACEX, RID_LRBRACEX_HELP},
- {RID_LRANGLEX, RID_LRANGLEX_HELP}, {RID_LMRANGLEXY, RID_LMRANGLEXY_HELP},
- {RID_LRCEILX, RID_LRCEILX_HELP}, {RID_LRFLOORX, RID_LRFLOORX_HELP},
- {RID_LRLINEX, RID_LRLINEX_HELP}, {RID_LRDLINEX, RID_LRDLINEX_HELP},
- {nullptr, {}},
- {RID_SLRPARENTX, RID_SLRPARENTX_HELP}, {RID_SLRBRACKETX, RID_SLRBRACKETX_HELP},
- {RID_SLRDBRACKETX, RID_SLRDBRACKETX_HELP}, {RID_SLRBRACEX, RID_SLRBRACEX_HELP},
- {RID_SLRANGLEX, RID_SLRANGLEX_HELP}, {RID_SLMRANGLEXY, RID_SLMRANGLEXY_HELP},
- {RID_SLRCEILX, RID_SLRCEILX_HELP}, {RID_SLRFLOORX, RID_SLRFLOORX_HELP},
- {RID_SLRLINEX, RID_SLRLINEX_HELP}, {RID_SLRDLINEX, RID_SLRDLINEX_HELP},
- {nullptr, {}},
- {RID_XOVERBRACEY, RID_XOVERBRACEY_HELP}, {RID_XUNDERBRACEY, RID_XUNDERBRACEY_HELP},
- {nullptr, {}},
- {RID_EVALX, RID_EVALUATEX_HELP}, {RID_EVAL_FROMX, RID_EVALUATE_FROMX_HELP},
- {RID_EVAL_TOX, RID_EVALUATE_TOX_HELP}, {RID_EVAL_FROMTOX, RID_EVALUATE_FROMTOX_HELP},
+ {RID_LRGROUPX, RID_LRGROUPX_HELP, {}, {}},
+ {},
+ {RID_LRPARENTX, RID_LRPARENTX_HELP, {}, {}},
+ {RID_LRBRACKETX, RID_LRBRACKETX_HELP, {}, {}},
+ {RID_LRDBRACKETX, RID_LRDBRACKETX_HELP, {}, {}},
+ {RID_LRBRACEX, RID_LRBRACEX_HELP, {}, {}},
+ {RID_LRANGLEX, RID_LRANGLEX_HELP, {}, {}},
+ {RID_LMRANGLEXY, RID_LMRANGLEXY_HELP, {}, {}},
+ {RID_LRCEILX, RID_LRCEILX_HELP, {}, {}},
+ {RID_LRFLOORX, RID_LRFLOORX_HELP, {}, {}},
+ {RID_LRLINEX, RID_LRLINEX_HELP, {}, {}},
+ {RID_LRDLINEX, RID_LRDLINEX_HELP, {}, {}},
+ {},
+ {RID_SLRPARENTX, RID_SLRPARENTX_HELP, u"left ( binom{<?>}{<?>} right )", {}},
+ {RID_SLRBRACKETX, RID_SLRBRACKETX_HELP, u"left [ binom{<?>}{<?>} right ]", {}},
+ {RID_SLRDBRACKETX, RID_SLRDBRACKETX_HELP, u"left ldbracket binom{<?>}{<?>} right rdbracket", {}},
+ {RID_SLRBRACEX, RID_SLRBRACEX_HELP, u"left lbrace binom{<?>}{<?>} right rbrace", {}},
+ {RID_SLRANGLEX, RID_SLRANGLEX_HELP, u"left langle binom{<?>}{<?>} right rangle", {}},
+ {RID_SLMRANGLEXY, RID_SLMRANGLEXY_HELP, u"left langle binom{<?>}{<?>} mline binom{<?>}{<?>} right rangle", {}},
+ {RID_SLRCEILX, RID_SLRCEILX_HELP, u"left lceil binom{<?>}{<?>} right rceil", {}},
+ {RID_SLRFLOORX, RID_SLRFLOORX_HELP, u"left lfloor binom{<?>}{<?>} right rfloor", {}},
+ {RID_SLRLINEX, RID_SLRLINEX_HELP, u"left lline binom{<?>}{<?>} right rline", {}},
+ {RID_SLRDLINEX, RID_SLRDLINEX_HELP, u"left ldline binom{<?>}{<?>} right rdline", {}},
+ {},
+ {RID_XOVERBRACEY, RID_XOVERBRACEY_HELP, u"{<?><?><?>} overbrace {<?>}", {}},
+ {RID_XUNDERBRACEY, RID_XUNDERBRACEY_HELP, u"{<?><?><?>} underbrace {<?>} ", {}},
+ {},
+ {RID_EVALX, RID_EVALUATEX_HELP, {}, {}},
+ {RID_EVAL_FROMX, RID_EVALUATE_FROMX_HELP, {}, {}},
+ {RID_EVAL_TOX, RID_EVALUATE_TOX_HELP, {}, {}},
+ {RID_EVAL_FROMTOX, RID_EVALUATE_FROMTOX_HELP, {}, {}},
};
-const SmElementDescr SmElementsControl::m_a5FormatsList[] =
+const SmElementDescr s_a5FormatsList[] =
{
- {RID_RSUPX, RID_RSUPX_HELP}, {RID_RSUBX, RID_RSUBX_HELP}, {RID_LSUPX, RID_LSUPX_HELP},
- {RID_LSUBX, RID_LSUBX_HELP}, {RID_CSUPX, RID_CSUPX_HELP}, {RID_CSUBX, RID_CSUBX_HELP},
- {nullptr, {}},
- {RID_NEWLINE, RID_NEWLINE_HELP}, {RID_SBLANK, RID_SBLANK_HELP}, {RID_BLANK, RID_BLANK_HELP},
- {RID_NOSPACE, RID_NOSPACE_HELP},
- {RID_ALIGNLX, RID_ALIGNLX_HELP}, {RID_ALIGNCX, RID_ALIGNCX_HELP}, {RID_ALIGNRX, RID_ALIGNRX_HELP},
- {nullptr, {}},
- {RID_BINOMXY, RID_BINOMXY_HELP}, {RID_STACK, RID_STACK_HELP},
- {RID_MATRIX, RID_MATRIX_HELP},
+ {RID_RSUPX, RID_RSUPX_HELP, {}, {}},
+ {RID_RSUBX, RID_RSUBX_HELP, {}, {}},
+ {RID_LSUPX, RID_LSUPX_HELP, {}, {}},
+ {RID_LSUBX, RID_LSUBX_HELP, {}, {}},
+ {RID_CSUPX, RID_CSUPX_HELP, {}, {}},
+ {RID_CSUBX, RID_CSUBX_HELP, {}, {}},
+ {},
+ {RID_NEWLINE, RID_NEWLINE_HELP, u"\u21B5", {}},
+ {RID_SBLANK, RID_SBLANK_HELP, u"\"`\"", {}},
+ {RID_BLANK, RID_BLANK_HELP, u"\"~\"", {}},
+ {RID_NOSPACE, RID_NOSPACE_HELP, {}, {}},
+ {RID_ALIGNLX, RID_ALIGNLX_HELP, u"\"$1\"", STR_ALIGN_LEFT},
+ {RID_ALIGNCX, RID_ALIGNCX_HELP, u"\"$1\"", STR_ALIGN_CENTER},
+ {RID_ALIGNRX, RID_ALIGNRX_HELP, u"\"$1\"", STR_ALIGN_RIGHT},
+ {},
+ {RID_BINOMXY, RID_BINOMXY_HELP, {}, {}},
+ {RID_STACK, RID_STACK_HELP, {}, {}},
+ {RID_MATRIX, RID_MATRIX_HELP, {}, {}},
};
-const SmElementDescr SmElementsControl::m_a5OthersList[] =
+const SmElementDescr s_a5OthersList[] =
{
- {RID_INFINITY, RID_INFINITY_HELP}, {RID_PARTIAL, RID_PARTIAL_HELP}, {RID_NABLA, RID_NABLA_HELP},
- {RID_EXISTS, RID_EXISTS_HELP}, {RID_NOTEXISTS, RID_NOTEXISTS_HELP}, {RID_FORALL, RID_FORALL_HELP},
- {RID_HBAR, RID_HBAR_HELP}, {RID_LAMBDABAR, RID_LAMBDABAR_HELP}, {RID_RE, RID_RE_HELP},
- {RID_IM, RID_IM_HELP}, {RID_WP, RID_WP_HELP}, {RID_LAPLACE, RID_LAPLACE_HELP},
- {RID_FOURIER, RID_FOURIER_HELP}, {RID_BACKEPSILON, RID_BACKEPSILON_HELP},
- {nullptr, {}},
- {RID_LEFTARROW, RID_LEFTARROW_HELP}, {RID_RIGHTARROW, RID_RIGHTARROW_HELP}, {RID_UPARROW, RID_UPARROW_HELP},
- {RID_DOWNARROW, RID_DOWNARROW_HELP},
- {nullptr, {}},
- {RID_DOTSLOW, RID_DOTSLOW_HELP}, {RID_DOTSAXIS, RID_DOTSAXIS_HELP}, {RID_DOTSVERT, RID_DOTSVERT_HELP},
- {RID_DOTSUP, RID_DOTSUP_HELP}, {RID_DOTSDOWN, RID_DOTSDOWN_HELP}
+ {RID_INFINITY, RID_INFINITY_HELP, {}, {}},
+ {RID_PARTIAL, RID_PARTIAL_HELP, {}, {}},
+ {RID_NABLA, RID_NABLA_HELP, {}, {}},
+ {RID_EXISTS, RID_EXISTS_HELP, {}, {}},
+ {RID_NOTEXISTS, RID_NOTEXISTS_HELP, {}, {}},
+ {RID_FORALL, RID_FORALL_HELP, {}, {}},
+ {RID_HBAR, RID_HBAR_HELP, {}, {}},
+ {RID_LAMBDABAR, RID_LAMBDABAR_HELP, {}, {}},
+ {RID_RE, RID_RE_HELP, {}, {}},
+ {RID_IM, RID_IM_HELP, {}, {}},
+ {RID_WP, RID_WP_HELP, {}, {}},
+ {RID_LAPLACE, RID_LAPLACE_HELP, {}, {}},
+ {RID_FOURIER, RID_FOURIER_HELP, {}, {}},
+ {RID_BACKEPSILON, RID_BACKEPSILON_HELP, {}, {}},
+ {},
+ {RID_LEFTARROW, RID_LEFTARROW_HELP, {}, {}},
+ {RID_RIGHTARROW, RID_RIGHTARROW_HELP, {}, {}},
+ {RID_UPARROW, RID_UPARROW_HELP, {}, {}},
+ {RID_DOWNARROW, RID_DOWNARROW_HELP, {}, {}},
+ {},
+ {RID_DOTSLOW, RID_DOTSLOW_HELP, {}, {}},
+ {RID_DOTSAXIS, RID_DOTSAXIS_HELP, {}, {}},
+ {RID_DOTSVERT, RID_DOTSVERT_HELP, {}, {}},
+ {RID_DOTSUP, RID_DOTSUP_HELP, {}, {}},
+ {RID_DOTSDOWN, RID_DOTSDOWN_HELP, {}, {}},
};
-const SmElementDescr SmElementsControl::m_a5ExamplesList[] =
+const SmElementDescr s_a5ExamplesList[] =
{
- {"{func e}^{i %pi} + 1 = 0", RID_EXAMPLE_EULER_IDENTITY_HELP},
- {"C = %pi cdot d = 2 cdot %pi cdot r", RID_EXAMPLE_CIRCUMFERENCE_HELP},
- {"c = sqrt{ a^2 + b^2 }", RID_EXAMPLE_PYTHAGOREAN_THEO_HELP},
- {"vec F = m times vec a", RID_EXAMPLE_2NEWTON},
- {"E = m c^2", RID_EXAMPLE_MASS_ENERGY_EQUIV_HELP},
- {"G_{%mu %nu} + %LAMBDA g_{%mu %nu}= frac{8 %pi G}{c^4} T_{%mu %nu}", RID_EXAMPLE_GENERAL_RELATIVITY_HELP},
- {"%DELTA t' = { %DELTA t } over sqrt{ 1 - v^2 over c^2 }", RID_EXAMPLE_SPECIAL_RELATIVITY_HELP },
- {"d over dt left( {partial L}over{partial dot q} right) = {partial L}over{partial q}", RID_EXAMPLE_EULER_LAGRANGE_HELP },
- {"int from a to b f'(x) dx = f(b) - f(a)", RID_EXAMPLE_FTC_HELP},
- {"ldline %delta bold{r}(t) rdline approx e^{%lambda t} ldline %delta { bold{r} }_0 rdline", RID_EXAMPLE_CHAOS_HELP},
- {"f(x) = sum from { n=0 } to { infinity } { {f^{(n)}(x_0) } over { fact{n} } (x-x_0)^n }", RID_EXAMPLE_A_TAYLOR_SERIES_HELP},
- {"f(x) = {1} over { %sigma sqrt{2 %pi} } func e^-{ {(x-%mu)^2} over {2 %sigma^2} }", RID_EXAMPLE_GAUSS_DISTRIBUTION_HELP},
+ {"{func e}^{i %pi} + 1 = 0", RID_EXAMPLE_EULER_IDENTITY_HELP, {}, {}},
+ {"C = %pi cdot d = 2 cdot %pi cdot r", RID_EXAMPLE_CIRCUMFERENCE_HELP, {}, {}},
+ {"c = sqrt{ a^2 + b^2 }", RID_EXAMPLE_PYTHAGOREAN_THEO_HELP, {}, {}},
+ {"vec F = m times vec a", RID_EXAMPLE_2NEWTON, {}, {}},
+ {"E = m c^2", RID_EXAMPLE_MASS_ENERGY_EQUIV_HELP, {}, {}},
+ {"G_{%mu %nu} + %LAMBDA g_{%mu %nu}= frac{8 %pi G}{c^4} T_{%mu %nu}", RID_EXAMPLE_GENERAL_RELATIVITY_HELP, {}, {}},
+ {"%DELTA t' = { %DELTA t } over sqrt{ 1 - v^2 over c^2 }", RID_EXAMPLE_SPECIAL_RELATIVITY_HELP, {}, {}},
+ {"d over dt left( {partial L}over{partial dot q} right) = {partial L}over{partial q}", RID_EXAMPLE_EULER_LAGRANGE_HELP, {}, {}},
+ {"int from a to b f'(x) dx = f(b) - f(a)", RID_EXAMPLE_FTC_HELP, {}, {}},
+ {"ldline %delta bold{r}(t) rdline approx e^{%lambda t} ldline %delta { bold{r} }_0 rdline", RID_EXAMPLE_CHAOS_HELP, {}, {}},
+ {"f(x) = sum from { n=0 } to { infinity } { {f^{(n)}(x_0) } over { fact{n} } (x-x_0)^n }", RID_EXAMPLE_A_TAYLOR_SERIES_HELP, {}, {}},
+ {"f(x) = {1} over { %sigma sqrt{2 %pi} } func e^-{ {(x-%mu)^2} over {2 %sigma^2} }", RID_EXAMPLE_GAUSS_DISTRIBUTION_HELP, {}, {}},
+};
+
+const std::vector<TranslateId> s_a5Categories{
+ RID_CATEGORY_UNARY_BINARY_OPERATORS,
+ RID_CATEGORY_RELATIONS,
+ RID_CATEGORY_SET_OPERATIONS,
+ RID_CATEGORY_FUNCTIONS,
+ RID_CATEGORY_OPERATORS,
+ RID_CATEGORY_ATTRIBUTES,
+ RID_CATEGORY_BRACKETS,
+ RID_CATEGORY_FORMATS,
+ RID_CATEGORY_OTHERS,
+ RID_CATEGORY_EXAMPLES,
};
-#define AS_PAIR(a) a, SAL_N_ELEMENTS(a)
-const std::tuple<TranslateId, const SmElementDescr*, size_t> SmElementsControl::m_a5Categories[] =
+template <size_t N>
+constexpr std::tuple<TranslateId, const SmElementDescr*, size_t>
+asTuple(TranslateId id, const SmElementDescr (&category)[N])
{
- {RID_CATEGORY_UNARY_BINARY_OPERATORS, AS_PAIR(m_a5UnaryBinaryOperatorsList)},
- {RID_CATEGORY_RELATIONS, AS_PAIR(m_a5RelationsList)},
- {RID_CATEGORY_SET_OPERATIONS, AS_PAIR(m_a5SetOperationsList)},
- {RID_CATEGORY_FUNCTIONS, AS_PAIR(m_a5FunctionsList)},
- {RID_CATEGORY_OPERATORS, AS_PAIR(m_a5OperatorsList)},
- {RID_CATEGORY_ATTRIBUTES, AS_PAIR(m_a5AttributesList)},
- {RID_CATEGORY_BRACKETS, AS_PAIR(m_a5BracketsList)},
- {RID_CATEGORY_FORMATS, AS_PAIR(m_a5FormatsList)},
- {RID_CATEGORY_OTHERS, AS_PAIR(m_a5OthersList)},
- {RID_CATEGORY_EXAMPLES, AS_PAIR(m_a5ExamplesList)},
+ return { id, category, N };
+}
+
+const std::tuple<TranslateId, const SmElementDescr*, size_t> s_a5CategoryDescriptions[]{
+ asTuple(RID_CATEGORY_UNARY_BINARY_OPERATORS, s_a5UnaryBinaryOperatorsList),
+ asTuple(RID_CATEGORY_RELATIONS, s_a5RelationsList),
+ asTuple(RID_CATEGORY_SET_OPERATIONS, s_a5SetOperationsList),
+ asTuple(RID_CATEGORY_FUNCTIONS, s_a5FunctionsList),
+ asTuple(RID_CATEGORY_OPERATORS, s_a5OperatorsList),
+ asTuple(RID_CATEGORY_ATTRIBUTES, s_a5AttributesList),
+ asTuple(RID_CATEGORY_BRACKETS, s_a5BracketsList),
+ asTuple(RID_CATEGORY_FORMATS, s_a5FormatsList),
+ asTuple(RID_CATEGORY_OTHERS, s_a5OthersList),
+ asTuple(RID_CATEGORY_EXAMPLES, s_a5ExamplesList),
};
+}
-const size_t SmElementsControl::m_a5CategoriesSize = SAL_N_ELEMENTS(m_a5Categories);
+// static
+const std::vector<TranslateId>& SmElementsControl::categories()
+{
+ return s_a5Categories;
+}
SmElementsControl::SmElementsControl(std::unique_ptr<weld::ScrolledWindow> xScrolledWindow)
: mpDocShell(new SmDocShell(SfxModelFlags::EMBEDDED_OBJECT))
@@ -887,137 +1071,6 @@ void SmElementsControl::setElementSetId(TranslateId pSetId)
build();
}
-void SmElementsControl::addElements(const SmElementDescr aElementsArray[], sal_uInt16 aElementsArraySize)
-{
- for (sal_uInt16 i = 0; i < aElementsArraySize ; i++)
- {
- const char* pElement = aElementsArray[i].first;
- TranslateId pElementHelp = aElementsArray[i].second;
- if (!pElement) {
- maElementList.push_back(std::make_unique<SmElementSeparator>());
- } else {
- OUString aElement(OUString::createFromAscii(pElement));
- if (aElement == RID_NEWLINE)
- addElement(OUString(u"\u21B5"), aElement, SmResId(pElementHelp));
- else if (aElement == RID_SBLANK)
- addElement("\"`\"", aElement, SmResId(pElementHelp));
- else if (aElement == RID_BLANK)
- addElement("\"~\"", aElement, SmResId(pElementHelp));
- else if (aElement == RID_PHANTOMX)
- addElement("\"" + SmResId(STR_HIDE) +"\"", aElement, SmResId(pElementHelp));
- else if (aElement == RID_BOLDX)
- addElement("bold B", aElement, SmResId(pElementHelp));
- else if (aElement == RID_ITALX)
- addElement("ital I", aElement, SmResId(pElementHelp));
- else if (aElement == RID_SIZEXY)
- addElement("\"" + SmResId(STR_SIZE) + "\"", aElement, SmResId(pElementHelp));
- else if (aElement == RID_FONTXY)
- addElement("\"" + SmResId(STR_FONT) + "\"", aElement, SmResId(pElementHelp));
- else if (aElement == RID_COLORX_BLACK)
- addElement("color black { \"" + SmResId(STR_BLACK) + "\" }", aElement, SmResId(pElementHelp));
- else if (aElement == RID_COLORX_BLUE)
- addElement("color blue { \"" + SmResId(STR_BLUE) + "\" }", aElement, SmResId(pElementHelp));
- else if (aElement == RID_COLORX_GREEN)
- addElement("color green { \"" + SmResId(STR_GREEN) + "\" }", aElement, SmResId(pElementHelp));
- else if (aElement == RID_COLORX_RED)
- addElement("color red { \"" + SmResId(STR_RED) + "\" }", aElement, SmResId(pElementHelp));
- else if (aElement == RID_COLORX_AQUA)
- addElement("color aqua { \"" + SmResId(STR_AQUA) + "\" }", aElement, SmResId(pElementHelp));
- else if (aElement == RID_COLORX_FUCHSIA)
- addElement("color fuchsia { \"" + SmResId(STR_FUCHSIA) + "\" }", aElement, SmResId(pElementHelp));
- else if (aElement == RID_COLORX_YELLOW)
- addElement("color yellow { \"" + SmResId(STR_YELLOW) + "\" }", aElement, SmResId(pElementHelp));
- else if (aElement == RID_COLORX_GRAY)
- addElement("color gray { \"" + SmResId(STR_GRAY) + "\" }", aElement, SmResId(pElementHelp));
- else if (aElement == RID_COLORX_LIME)
- addElement("color lime { \"" + SmResId(STR_LIME) + "\" }", aElement, SmResId(pElementHelp));
- else if (aElement == RID_COLORX_MAROON)
- addElement("color maroon { \"" + SmResId(STR_MAROON) + "\" }", aElement, SmResId(pElementHelp));
- else if (aElement == RID_COLORX_NAVY)
- addElement("color navy { \"" + SmResId(STR_NAVY) + "\" }", aElement, SmResId(pElementHelp));
- else if (aElement == RID_COLORX_OLIVE)
- addElement("color olive { \"" + SmResId(STR_OLIVE) + "\" }", aElement, SmResId(pElementHelp));
- else if (aElement == RID_COLORX_PURPLE)
- addElement("color purple { \"" + SmResId(STR_PURPLE) + "\" }", aElement, SmResId(pElementHelp));
- else if (aElement == RID_COLORX_SILVER)
- addElement("color silver { \"" + SmResId(STR_SILVER) + "\" }", aElement, SmResId(pElementHelp));
- else if (aElement == RID_COLORX_TEAL)
- addElement("color teal { \"" + SmResId(STR_TEAL) + "\" }", aElement, SmResId(pElementHelp));
- else if (aElement == RID_COLORX_CORAL)
- addElement("color coral { \"" + SmResId(STR_CORAL) + "\" }", aElement, SmResId(pElementHelp));
- else if (aElement == RID_COLORX_CRIMSON)
- addElement("color crimson { \"" + SmResId(STR_CRIMSON) + "\" }", aElement, SmResId(pElementHelp));
- else if (aElement == RID_COLORX_MIDNIGHT)
- addElement("color midnightblue { \"" + SmResId(STR_MIDNIGHT) + "\" }", aElement, SmResId(pElementHelp));
- else if (aElement == RID_COLORX_VIOLET)
- addElement("color violet { \"" + SmResId(STR_VIOLET) + "\" }", aElement, SmResId(pElementHelp));
- else if (aElement == RID_COLORX_ORANGE)
- addElement("color orange { \"" + SmResId(STR_ORANGE) + "\" }", aElement, SmResId(pElementHelp));
- else if (aElement == RID_COLORX_ORANGERED)
- addElement("color orangered { \"" + SmResId(STR_ORANGERED) + "\" }", aElement, SmResId(pElementHelp));
- else if (aElement == RID_COLORX_SEAGREEN)
- addElement("color seagreen { \"" + SmResId(STR_SEAGREEN) + "\" }", aElement, SmResId(pElementHelp));
- else if (aElement == RID_COLORX_INDIGO)
- addElement("color indigo { \"" + SmResId(STR_INDIGO) + "\" }", aElement, SmResId(pElementHelp));
- else if (aElement == RID_COLORX_HOTPINK)
- addElement("color hotpink { \"" + SmResId(STR_HOTPINK) + "\" }", aElement, SmResId(pElementHelp));
- else if (aElement == RID_COLORX_SNOW)
- addElement("color snow { \"" + SmResId(STR_SNOW) + "\" }", aElement, SmResId(pElementHelp));
- else if (aElement == RID_COLORX_LAVENDER)
- addElement("color lavender { \"" + SmResId(STR_LAVENDER) + "\" }", aElement, SmResId(pElementHelp));
- else if (aElement == RID_COLORX_RGB)
- addElement("color rgb 0 0 0 { \"" + SmResId(STR_RGB) + "\" }", aElement, SmResId(pElementHelp));
- else if (aElement == RID_COLORX_RGBA)
- addElement("color rgba 0 0 0 0 { \"" + SmResId(STR_RGBA) + "\" }", aElement, SmResId(pElementHelp));
- else if (aElement == RID_COLORX_HEX)
- addElement("color hex 000000 { \"" + SmResId(STR_HEX) + "\" }", aElement, SmResId(pElementHelp));
- else if (aElement == RID_ALIGNLX)
- addElement("\"" + SmResId(STR_ALIGN_LEFT) + "\"", aElement, SmResId(pElementHelp));
- else if (aElement == RID_ALIGNCX)
- addElement("\"" + SmResId(STR_ALIGN_CENTER) + "\"", aElement, SmResId(pElementHelp));
- else if (aElement == RID_ALIGNRX)
- addElement("\"" + SmResId(STR_ALIGN_RIGHT) + "\"", aElement, SmResId(pElementHelp));
-
- else if (aElement == RID_SLRPARENTX)
- addElement("left ( binom{<?>}{<?>} right ) ", aElement, SmResId(pElementHelp));
- else if (aElement == RID_SLRBRACKETX)
- addElement("left [ binom{<?>}{<?>} right ] ", aElement, SmResId(pElementHelp));
- else if (aElement == RID_SLRDBRACKETX)
- addElement("left ldbracket binom{<?>}{<?>} right rdbracket ", aElement, SmResId(pElementHelp));
- else if (aElement == RID_SLRBRACEX)
- addElement("left lbrace binom{<?>}{<?>} right rbrace ", aElement, SmResId(pElementHelp));
- else if (aElement == RID_SLRANGLEX)
- addElement("left langle binom{<?>}{<?>} right rangle ", aElement, SmResId(pElementHelp));
- else if (aElement == RID_SLRCEILX)
- addElement("left lceil binom{<?>}{<?>} right rceil ", aElement, SmResId(pElementHelp));
- else if (aElement == RID_SLRFLOORX)
- addElement("left lfloor binom{<?>}{<?>} right rfloor ", aElement, SmResId(pElementHelp));
- else if (aElement == RID_SLRLINEX)
- addElement("left lline binom{<?>}{<?>} right rline ", aElement, SmResId(pElementHelp));
- else if (aElement == RID_SLRDLINEX)
- addElement("left ldline binom{<?>}{<?>} right rdline ", aElement, SmResId(pElementHelp));
- else if (aElement == RID_SLMRANGLEXY)
- addElement("left langle binom{<?>}{<?>} mline binom{<?>}{<?>} right rangle ", aElement, SmResId(pElementHelp));
-
- else if (aElement == RID_OPERX)
- addElement(u"oper \xE22B <?>", aElement, SmResId(pElementHelp));
- else if (aElement == RID_OPER_FROMX)
- addElement(u"oper \xE22B from <?> <?>", aElement, SmResId(pElementHelp));
- else if (aElement == RID_OPER_TOX)
- addElement(u"oper \xE22B to <?> <?>", aElement, SmResId(pElementHelp));
- else if (aElement == RID_OPER_FROMTOX)
- addElement(u"oper \xE22B from <?> to <?> <?>", aElement, SmResId(pElementHelp));
-
- else if (aElement == RID_XOVERBRACEY)
- addElement("{<?><?><?>} overbrace {<?>} ", aElement, SmResId(pElementHelp));
- else if (aElement == RID_XUNDERBRACEY)
- addElement("{<?><?><?>} underbrace {<?>} ", aElement, SmResId(pElementHelp));
- else
- addElement(aElement, aElement, pElementHelp ? SmResId(pElementHelp) : "");
- }
- }
-}
-
void SmElementsControl::build()
{
// The order is important!
@@ -1042,11 +1095,30 @@ void SmElementsControl::build()
{
case 5:
{
- for (const auto& [rSetId, rElementsArray, rElementsArraySize] : m_a5Categories)
+ for (const auto& [rSetId, rElementsArray, rElementsArraySize] : s_a5CategoryDescriptions)
{
if (msCurrentSetId == rSetId)
{
- addElements(rElementsArray, rElementsArraySize);
+ for (size_t i = 0; i < rElementsArraySize; i++)
+ {
+ const auto& [element, elementHelp, elementVisual, visualTranslatable]
+ = rElementsArray[i];
+ if (element.empty())
+ {
+ maElementList.push_back(std::make_unique<SmElementSeparator>());
+ }
+ else
+ {
+ OUString aElement(OUString::createFromAscii(element));
+ OUString aVisual(elementVisual.empty() ? aElement
+ : OUString(elementVisual));
+ if (visualTranslatable)
+ aVisual = aVisual.replaceFirst("$1", SmResId(visualTranslatable));
+ OUString aHelp(elementHelp ? SmResId(elementHelp) : OUString());
+ addElement(aVisual, aElement, aHelp);
+ }
+ }
+
break;
}
else
@@ -1204,8 +1276,8 @@ SmElementsDockingWindow::SmElementsDockingWindow(SfxBindings* pInputBindings, Sf
// give it an arbitrary small width request so it can shrink in the sidebar
mxElementListBox->set_size_request(42, -1);
- for (size_t i = 0; i < SmElementsControl::categoriesSize(); ++i)
- mxElementListBox->append_text(SmResId(std::get<0>(SmElementsControl::categories()[i])));
+ for (const auto& category : SmElementsControl::categories())
+ mxElementListBox->append_text(SmResId(category));
mxElementListBox->connect_changed(LINK(this, SmElementsDockingWindow, ElementSelectedHandle));
mxElementListBox->set_active_text(SmResId(RID_CATEGORY_UNARY_BINARY_OPERATORS));
@@ -1271,13 +1343,12 @@ IMPL_LINK(SmElementsDockingWindow, SelectClickHandler, SmElement&, rElement, voi
IMPL_LINK( SmElementsDockingWindow, ElementSelectedHandle, weld::ComboBox&, rList, void)
{
- for (size_t i = 0; i < SmElementsControl::categoriesSize(); ++i)
+ for (const auto& category : SmElementsControl::categories())
{
- TranslateId pCurrentCategory = std::get<0>(SmElementsControl::categories()[i]);
- OUString aCurrentCategoryString = SmResId(pCurrentCategory);
+ OUString aCurrentCategoryString = SmResId(category);
if (aCurrentCategoryString == rList.get_active_text())
{
- mxElementsControl->setElementSetId(pCurrentCategory);
+ mxElementsControl->setElementSetId(category);
setSmSyntaxVersion(GetView()->GetDoc()->GetSmSyntaxVersion());
return;
}
diff --git a/starmath/source/SmElementsPanel.cxx b/starmath/source/SmElementsPanel.cxx
index a4c8d7c6d883..fdf76daa6e1d 100644
--- a/starmath/source/SmElementsPanel.cxx
+++ b/starmath/source/SmElementsPanel.cxx
@@ -46,8 +46,8 @@ SmElementsPanel::SmElementsPanel(weld::Widget& rParent, const SfxBindings& rBind
, mxElementsControlWin(
std::make_unique<weld::CustomWeld>(*m_xBuilder, "element_selector", *mxElementsControl))
{
- for (size_t i = 0; i < SmElementsControl::categoriesSize(); ++i)
- mxCategoryList->append_text(SmResId(std::get<0>(SmElementsControl::categories()[i])));
+ for (const auto& rCategoryId : SmElementsControl::categories())
+ mxCategoryList->append_text(SmResId(rCategoryId));
mxCategoryList->set_size_request(-1, mxCategoryList->get_height_rows(6));
@@ -69,9 +69,8 @@ SmElementsPanel::~SmElementsPanel()
IMPL_LINK(SmElementsPanel, CategorySelectedHandle, weld::TreeView&, rList, void)
{
const OUString sSelected = rList.get_selected_text();
- for (size_t i = 0; i < SmElementsControl::categoriesSize(); ++i)
+ for (const auto& rCategoryId : SmElementsControl::categories())
{
- const TranslateId& rCategoryId = std::get<0>(SmElementsControl::categories()[i]);
OUString aCurrentCategoryString = SmResId(rCategoryId);
if (aCurrentCategoryString == sSelected)
{