[Libreoffice-commits] core.git: starmath/inc starmath/source
Takeshi Abe
tabe at fixedpoint.jp
Thu May 12 00:39:11 UTC 2016
starmath/inc/node.hxx | 30 ++++++++++++++++++++----------
starmath/source/node.cxx | 38 +++++++++++++++++++-------------------
2 files changed, 39 insertions(+), 29 deletions(-)
New commits:
commit cc63036369b29d7985e2e773470f6f9aa068f4e2
Author: Takeshi Abe <tabe at fixedpoint.jp>
Date: Wed May 11 16:29:05 2016 +0900
Convert FLG_* to scoped enum
Change-Id: If767fff10a0bb28735578b4ec3dcf7b9e2d326a2
Reviewed-on: https://gerrit.libreoffice.org/24872
Tested-by: Jenkins <ci at libreoffice.org>
Reviewed-by: Takeshi Abe <tabe at fixedpoint.jp>
diff --git a/starmath/inc/node.hxx b/starmath/inc/node.hxx
index c6e5419..da58c57 100644
--- a/starmath/inc/node.hxx
+++ b/starmath/inc/node.hxx
@@ -26,6 +26,8 @@
#include "rect.hxx"
#include "format.hxx"
+#include <o3tl/typed_flags_set.hxx>
+
#include <cassert>
#include <memory>
#include <vector>
@@ -44,13 +46,21 @@ enum class FontSizeType {
};
// flags to interdict respective status changes
-#define FLG_FONT 0x0001
-#define FLG_SIZE 0x0002
-#define FLG_BOLD 0x0004
-#define FLG_ITALIC 0x0008
-#define FLG_COLOR 0x0010
-#define FLG_VISIBLE 0x0020
-#define FLG_HORALIGN 0x0040
+enum class FontChangeMask {
+ None = 0x0000,
+ Face = 0x0001,
+ Size = 0x0002,
+ Bold = 0x0004,
+ Italic = 0x0008,
+ Color = 0x0010,
+ Phantom = 0x0020,
+ HorAlign = 0x0040
+};
+
+namespace o3tl
+{
+ template<> struct typed_flags<FontChangeMask> : is_typed_flags<FontChangeMask, 0x007f> {};
+}
class SmVisitor;
@@ -93,8 +103,8 @@ class SmNode : public SmRect
SmNodeType meType;
SmScaleMode meScaleMode;
RectHorAlign meRectHorAlign;
- sal_uInt16 mnFlags,
- mnAttributes;
+ FontChangeMask mnFlags;
+ sal_uInt16 mnAttributes;
bool mbIsPhantom;
bool mbIsSelected;
@@ -121,7 +131,7 @@ public:
virtual const SmNode * GetLeftMost() const;
- sal_uInt16 & Flags() { return mnFlags; }
+ FontChangeMask &Flags() { return mnFlags; }
sal_uInt16 & Attributes() { return mnAttributes; }
bool IsPhantom() const { return mbIsPhantom; }
diff --git a/starmath/source/node.cxx b/starmath/source/node.cxx
index 7f2b04d..8b1559d 100644
--- a/starmath/source/node.cxx
+++ b/starmath/source/node.cxx
@@ -60,7 +60,7 @@ SmNode::SmNode(SmNodeType eNodeType, const SmToken &rNodeToken)
, meType( eNodeType )
, meScaleMode( SCALE_NONE )
, meRectHorAlign( RectHorAlign::Left )
- , mnFlags( 0 )
+ , mnFlags( FontChangeMask::None )
, mnAttributes( 0 )
, mbIsPhantom( false )
, mbIsSelected( false )
@@ -107,7 +107,7 @@ const SmNode * SmNode::GetLeftMost() const
void SmNode::SetPhantom(bool bIsPhantomP)
{
- if (! (Flags() & FLG_VISIBLE))
+ if (! (Flags() & FontChangeMask::Phantom))
mbIsPhantom = bIsPhantomP;
bool b = mbIsPhantom;
@@ -117,7 +117,7 @@ void SmNode::SetPhantom(bool bIsPhantomP)
void SmNode::SetColor(const Color& rColor)
{
- if (! (Flags() & FLG_COLOR))
+ if (! (Flags() & FontChangeMask::Color))
GetFont().SetColor(rColor);
ForEachNonNull(this, [&rColor](SmNode *pNode){pNode->SetColor(rColor);});
@@ -127,8 +127,8 @@ void SmNode::SetColor(const Color& rColor)
void SmNode::SetAttribut(sal_uInt16 nAttrib)
{
if (
- (nAttrib == ATTR_BOLD && !(Flags() & FLG_BOLD)) ||
- (nAttrib == ATTR_ITALIC && !(Flags() & FLG_ITALIC))
+ (nAttrib == ATTR_BOLD && !(Flags() & FontChangeMask::Bold)) ||
+ (nAttrib == ATTR_ITALIC && !(Flags() & FontChangeMask::Italic))
)
{
mnAttributes |= nAttrib;
@@ -141,8 +141,8 @@ void SmNode::SetAttribut(sal_uInt16 nAttrib)
void SmNode::ClearAttribut(sal_uInt16 nAttrib)
{
if (
- (nAttrib == ATTR_BOLD && !(Flags() & FLG_BOLD)) ||
- (nAttrib == ATTR_ITALIC && !(Flags() & FLG_ITALIC))
+ (nAttrib == ATTR_BOLD && !(Flags() & FontChangeMask::Bold)) ||
+ (nAttrib == ATTR_ITALIC && !(Flags() & FontChangeMask::Italic))
)
{
mnAttributes &= ~nAttrib;
@@ -154,7 +154,7 @@ void SmNode::ClearAttribut(sal_uInt16 nAttrib)
void SmNode::SetFont(const SmFace &rFace)
{
- if (!(Flags() & FLG_FONT))
+ if (!(Flags() & FontChangeMask::Face))
GetFont() = rFace;
ForEachNonNull(this, [&rFace](SmNode *pNode){pNode->SetFont(rFace);});
@@ -166,7 +166,7 @@ void SmNode::SetFontSize(const Fraction &rSize, FontSizeType nType)
{
Size aFntSize;
- if (!(Flags() & FLG_SIZE))
+ if (!(Flags() & FontChangeMask::Size))
{
Fraction aVal (SmPtsTo100th_mm(rSize.GetNumerator()),
rSize.GetDenominator());
@@ -222,7 +222,7 @@ void SmNode::SetSize(const Fraction &rSize)
void SmNode::SetRectHorAlign(RectHorAlign eHorAlign, bool bApplyToSubTree )
{
- if (!(Flags() & FLG_HORALIGN))
+ if (!(Flags() & FontChangeMask::HorAlign))
meRectHorAlign = eHorAlign;
if (bApplyToSubTree)
@@ -240,7 +240,7 @@ void SmNode::PrepareAttributes()
void SmNode::Prepare(const SmFormat &rFormat, const SmDocShell &rDocShell)
{
mbIsPhantom = false;
- mnFlags = 0;
+ mnFlags = FontChangeMask::None;
mnAttributes = 0;
switch (rFormat.GetHorAlign())
@@ -591,7 +591,7 @@ void SmLineNode::Prepare(const SmFormat &rFormat, const SmDocShell &rDocShell)
// Here we use the 'FNT_VARIABLE' font since it's ascent and descent in general fit better
// to the rest of the formula compared to the 'FNT_MATH' font.
GetFont() = rFormat.GetFont(FNT_VARIABLE);
- Flags() |= FLG_FONT;
+ Flags() |= FontChangeMask::Face;
}
@@ -1921,7 +1921,7 @@ void SmFontNode::Prepare(const SmFormat &rFormat, const SmDocShell &rDocShell)
//! prevent overwrites of this font by 'Arrange' or 'SetFont' calls of
//! other font nodes (those with lower depth in the tree)
- Flags() |= FLG_FONT;
+ Flags() |= FontChangeMask::Face;
}
void SmFontNode::Arrange(OutputDevice &rDev, const SmFormat &rFormat)
@@ -2507,7 +2507,7 @@ void SmMathSymbolNode::Prepare(const SmFormat &rFormat, const SmDocShell &rDocSh
GetFont().GetCharSet() == RTL_TEXTENCODING_UNICODE,
"wrong charset for character from StarMath/OpenSymbol font");
- Flags() |= FLG_FONT | FLG_ITALIC;
+ Flags() |= FontChangeMask::Face | FontChangeMask::Italic;
};
@@ -2711,7 +2711,7 @@ void SmSpecialNode::Prepare(const SmFormat &rFormat, const SmDocShell &rDocShell
if (IsBold( GetFont() ))
SetAttribut(ATTR_BOLD);
- Flags() |= FLG_FONT;
+ Flags() |= FontChangeMask::Face;
if (bIsFromGreekSymbolSet)
{
@@ -2775,7 +2775,7 @@ void SmPlaceNode::Prepare(const SmFormat &rFormat, const SmDocShell &rDocShell)
SmNode::Prepare(rFormat, rDocShell);
GetFont().SetColor(COL_GRAY);
- Flags() |= FLG_COLOR | FLG_FONT | FLG_ITALIC;
+ Flags() |= FontChangeMask::Color | FontChangeMask::Face | FontChangeMask::Italic;
};
@@ -2798,8 +2798,8 @@ void SmErrorNode::Prepare(const SmFormat &rFormat, const SmDocShell &rDocShell)
SmNode::Prepare(rFormat, rDocShell);
GetFont().SetColor(COL_RED);
- Flags() |= FLG_VISIBLE | FLG_BOLD | FLG_ITALIC
- | FLG_COLOR | FLG_FONT | FLG_SIZE;
+ Flags() |= FontChangeMask::Phantom | FontChangeMask::Bold | FontChangeMask::Italic
+ | FontChangeMask::Color | FontChangeMask::Face | FontChangeMask::Size;
}
@@ -2838,7 +2838,7 @@ void SmBlankNode::Prepare(const SmFormat &rFormat, const SmDocShell &rDocShell)
// used in Arrange a normal (non-clipped) rectangle is generated
GetFont() = rFormat.GetFont(FNT_VARIABLE);
- Flags() |= FLG_FONT | FLG_BOLD | FLG_ITALIC;
+ Flags() |= FontChangeMask::Face | FontChangeMask::Bold | FontChangeMask::Italic;
}
More information about the Libreoffice-commits
mailing list