text: // MusicXML Class Library
  // Copyright (c) by Matthew James Briggs
  // Distributed under the MIT License
  
  #pragma once
  
  #include "mx/core/ForwardDeclare.h"
  #include "mx/core/AttributesInterface.h"
  #include "mx/core/CommaSeparatedText.h"
  #include "mx/core/Decimals.h"
  #include "mx/core/Enums.h"
  #include "mx/core/FontSize.h"
  #include "mx/core/Integers.h"
  #include "mx/core/NumberOrNormal.h"
  #include "mx/core/XmlLang.h"
  
  #include <iosfwd>
  #include <memory>
  #include <vector>
  
  namespace mx
  {
      namespace core
      {
  
          MX_FORWARD_DECLARE_ATTRIBUTES( WordsAttributes )
  
          struct WordsAttributes : public AttributesInterface
          {
          public:
              WordsAttributes();
              virtual bool hasValues() const;
              virtual std::ostream& toStream( std::ostream& os ) const;
              LeftCenterRight justify;
              TenthsValue defaultX;
              TenthsValue defaultY;
              TenthsValue relativeX;
              TenthsValue relativeY;
              CommaSeparatedText fontFamily;
              FontStyle fontStyle;
              FontSize fontSize;
              FontWeight fontWeight;
              LeftCenterRight halign;
              NumberOfLines underline;
              NumberOfLines overline;
              NumberOfLines lineThrough;
              RotationDegrees rotation;
              NumberOrNormal letterSpacing;
              NumberOrNormal lineHeight;
              XmlLang lang;
              XmlSpace space;
              EnclosureShape enclosure;
              bool hasJustify;
              bool hasDefaultX;
              bool hasDefaultY;
              bool hasRelativeX;
              bool hasRelativeY;
              bool hasFontFamily;
              bool hasFontStyle;
              bool hasFontSize;
              bool hasFontWeight;
              bool hasHalign;
              bool hasUnderline;
              bool hasOverline;
              bool hasLineThrough;
              bool hasRotation;
              bool hasLetterSpacing;
              bool hasLineHeight;
              bool hasLang;
              bool hasSpace;
              bool hasEnclosure;
  
              private:
              virtual bool fromXElementImpl( std::ostream& message, ::ezxml::XElement& xelement );
          };
      }
  }
  