[Libreoffice-commits] core.git: starmath/inc starmath/source
dante (via logerrit)
logerrit at kemper.freedesktop.org
Sun Aug 15 07:09:41 UTC 2021
starmath/inc/mathml/attribute.hxx | 7 ++++--
starmath/inc/mathml/def.hxx | 13 +++++++++++
starmath/source/mathml/attribute.cxx | 19 +++++++++++++++++
starmath/source/mathml/def.cxx | 38 ++++++++++++++++++-----------------
4 files changed, 57 insertions(+), 20 deletions(-)
New commits:
commit 73b6462b81080c63e6668979f4a9cd00242925e9
Author: dante <dante19031999 at gmail.com>
AuthorDate: Fri Aug 13 19:13:46 2021 +0200
Commit: Noel Grandin <noel.grandin at collabora.co.uk>
CommitDate: Sun Aug 15 09:09:07 2021 +0200
Add the Form attribute to mo
Change-Id: I4f64460e15c707fa8ecdcfdfbea460b2f1410947
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/120469
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin at collabora.co.uk>
diff --git a/starmath/inc/mathml/attribute.hxx b/starmath/inc/mathml/attribute.hxx
index a6b1bdec639c..cbe042827d85 100644
--- a/starmath/inc/mathml/attribute.hxx
+++ b/starmath/inc/mathml/attribute.hxx
@@ -25,6 +25,7 @@ union SmMlAttributeValue {
struct SmMlDir m_aDir;
struct SmMlDisplaystyle m_aDisplaystyle;
struct SmMlFence m_aFence;
+ struct SmMlForm m_aForm;
struct SmMlHref m_aHref;
struct SmMlLspace m_aLspace;
struct SmMlMathbackground m_aMathbackground;
@@ -126,6 +127,7 @@ public:
const struct SmMlDir* getMlDir() const;
const struct SmMlDisplaystyle* getMlDisplaystyle() const;
const struct SmMlFence* getMlFence() const;
+ const struct SmMlForm* getMlForm() const;
const struct SmMlHref* getMlHref() const;
const struct SmMlLspace* getMlLspace() const;
const struct SmMlMathbackground* getMlMathbackground() const;
@@ -146,6 +148,7 @@ public:
void setMlDir(const SmMlDir* aDir);
void setMlDisplaystyle(const SmMlDisplaystyle* aDisplaystyle);
void setMlFence(const SmMlFence* aFence);
+ void setMlForm(const SmMlForm* aForm);
void setMlHref(const SmMlHref* aHref);
void setMlLspace(const SmMlLspace* aLspace);
void setMlMathbackground(const SmMlMathbackground* aMathbackground);
@@ -171,10 +174,10 @@ extern SmMlAttributePos MlAttributeListMath[1];
extern SmMlAttributePos MlAttributeListMi[7];
extern SmMlAttributePos MlAttributeListMerror[4];
extern SmMlAttributePos MlAttributeListMn[7];
-extern SmMlAttributePos MlAttributeListMo[17];
+extern SmMlAttributePos MlAttributeListMo[18];
extern SmMlAttributePos MlAttributeListMrow[4];
extern SmMlAttributePos MlAttributeListMtext[7];
-extern SmMlAttributePos MlAttributeListMstyle[17];
+extern SmMlAttributePos MlAttributeListMstyle[18];
}
/* vim:set shiftwidth=4 softtabstop=4 expandtab cinoptions=b1,g0,N-s cinkeys+=0=break: */
diff --git a/starmath/inc/mathml/def.hxx b/starmath/inc/mathml/def.hxx
index 52cf70206b2f..38073671189c 100644
--- a/starmath/inc/mathml/def.hxx
+++ b/starmath/inc/mathml/def.hxx
@@ -76,6 +76,7 @@ enum class SmMlAttributeValueType : uint_fast8_t
MlDir,
MlDisplaystyle,
MlFence,
+ MlForm,
MlHref,
MlLspace,
MlMathbackground,
@@ -123,6 +124,13 @@ enum class SmMlAttributeValueFence : uint_fast8_t
MlTrue = 0x01
};
+enum class SmMlAttributeValueForm : uint_fast8_t
+{
+ MlPrefix = 0x01,
+ MlInfix = 0x02,
+ MlPosfix = 0x04
+};
+
enum class SmMlAttributeValueHref : uint_fast8_t
{
NMlEmpty = 0x00,
@@ -236,6 +244,11 @@ struct SmMlFence
SmMlAttributeValueFence m_aFence;
};
+struct SmMlForm
+{
+ SmMlAttributeValueForm m_aForm;
+};
+
struct SmMlHref
{
SmMlAttributeValueHref m_aHref;
diff --git a/starmath/source/mathml/attribute.cxx b/starmath/source/mathml/attribute.cxx
index da7668417327..61c4df609452 100644
--- a/starmath/source/mathml/attribute.cxx
+++ b/starmath/source/mathml/attribute.cxx
@@ -63,6 +63,9 @@ void SmMlAttribute::setDefaultAttributeValue()
case SmMlAttributeValueType::MlFence:
m_aAttributeValue.m_aFence.m_aFence = SmMlAttributeValueFence::MlFalse;
break;
+ case SmMlAttributeValueType::MlForm:
+ m_aAttributeValue.m_aForm.m_aForm = SmMlAttributeValueForm::MlInfix;
+ break;
case SmMlAttributeValueType::MlHref:
m_aAttributeValue.m_aHref.m_aHref = SmMlAttributeValueHref::NMlEmpty;
m_aAttributeValue.m_aHref.m_aLnk = new OUString(u"");
@@ -139,6 +142,9 @@ void SmMlAttribute::setAttributeValue(const SmMlAttribute* aAttribute)
case SmMlAttributeValueType::MlFence:
setMlFence(aAttribute->getMlFence());
break;
+ case SmMlAttributeValueType::MlForm:
+ setMlForm(aAttribute->getMlForm());
+ break;
case SmMlAttributeValueType::MlHref:
setMlHref(aAttribute->getMlHref());
break;
@@ -212,6 +218,13 @@ const struct SmMlFence* SmMlAttribute::getMlFence() const
return nullptr;
}
+const struct SmMlForm* SmMlAttribute::getMlForm() const
+{
+ if (m_aSmMlAttributeValueType == SmMlAttributeValueType::MlForm)
+ return &m_aAttributeValue.m_aForm;
+ return nullptr;
+}
+
const struct SmMlHref* SmMlAttribute::getMlHref() const
{
if (m_aSmMlAttributeValueType == SmMlAttributeValueType::MlHref)
@@ -330,6 +343,12 @@ void SmMlAttribute::setMlFence(const SmMlFence* aFence)
m_aAttributeValue.m_aFence.m_aFence = aFence->m_aFence;
}
+void SmMlAttribute::setMlForm(const SmMlForm* aForm)
+{
+ clearPreviousAttributeValue();
+ m_aAttributeValue.m_aForm.m_aForm = aForm->m_aForm;
+}
+
void SmMlAttribute::setMlHref(const SmMlHref* aHref)
{
clearPreviousAttributeValue();
diff --git a/starmath/source/mathml/def.cxx b/starmath/source/mathml/def.cxx
index dfa383ccc450..484dcd665393 100644
--- a/starmath/source/mathml/def.cxx
+++ b/starmath/source/mathml/def.cxx
@@ -64,15 +64,16 @@ SmMlAttributePos starmathdatabase::MlAttributeListMo[] = {
{ SmMlAttributeValueType::MlMathsize, 5 },
{ SmMlAttributeValueType::MlMathvariant, 6 },
{ SmMlAttributeValueType::MlFence, 7 },
- { SmMlAttributeValueType::MlMaxsize, 8 },
- { SmMlAttributeValueType::MlMinsize, 9 },
- { SmMlAttributeValueType::MlMovablelimits, 10 },
- { SmMlAttributeValueType::MlLspace, 11 },
- { SmMlAttributeValueType::MlRspace, 12 },
- { SmMlAttributeValueType::MlAccent, 13 },
- { SmMlAttributeValueType::MlStretchy, 14 },
- { SmMlAttributeValueType::MlSeparator, 15 },
- { SmMlAttributeValueType::MlSymmetric, 16 }
+ { SmMlAttributeValueType::MlForm, 8 },
+ { SmMlAttributeValueType::MlMaxsize, 9 },
+ { SmMlAttributeValueType::MlMinsize, 10 },
+ { SmMlAttributeValueType::MlMovablelimits, 11 },
+ { SmMlAttributeValueType::MlLspace, 12 },
+ { SmMlAttributeValueType::MlRspace, 13 },
+ { SmMlAttributeValueType::MlAccent, 14 },
+ { SmMlAttributeValueType::MlStretchy, 15 },
+ { SmMlAttributeValueType::MlSeparator, 16 },
+ { SmMlAttributeValueType::MlSymmetric, 17 }
// clang-format on
};
@@ -107,15 +108,16 @@ SmMlAttributePos starmathdatabase::MlAttributeListMstyle[] = {
{ SmMlAttributeValueType::MlMathsize, 5 },
{ SmMlAttributeValueType::MlMathvariant, 6 },
{ SmMlAttributeValueType::MlFence, 7 },
- { SmMlAttributeValueType::MlMaxsize, 8 },
- { SmMlAttributeValueType::MlMinsize, 9 },
- { SmMlAttributeValueType::MlMovablelimits, 10 },
- { SmMlAttributeValueType::MlLspace, 11 },
- { SmMlAttributeValueType::MlRspace, 12 },
- { SmMlAttributeValueType::MlAccent, 13 },
- { SmMlAttributeValueType::MlStretchy, 14 },
- { SmMlAttributeValueType::MlSeparator, 15 },
- { SmMlAttributeValueType::MlSymmetric, 16 }
+ { SmMlAttributeValueType::MlForm, 8 },
+ { SmMlAttributeValueType::MlMaxsize, 9 },
+ { SmMlAttributeValueType::MlMinsize, 10 },
+ { SmMlAttributeValueType::MlMovablelimits, 11 },
+ { SmMlAttributeValueType::MlLspace, 12 },
+ { SmMlAttributeValueType::MlRspace, 13 },
+ { SmMlAttributeValueType::MlAccent, 14 },
+ { SmMlAttributeValueType::MlStretchy, 15 },
+ { SmMlAttributeValueType::MlSeparator, 16 },
+ { SmMlAttributeValueType::MlSymmetric, 17 }
// clang-format on
};
More information about the Libreoffice-commits
mailing list