123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869 |
- /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
- /* This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
- #ifndef nsMathMLmsqrtFrame_h___
- #define nsMathMLmsqrtFrame_h___
- #include "mozilla/Attributes.h"
- #include "nsMathMLmencloseFrame.h"
- //
- // <msqrt> -- form a radical
- //
- /*
- The MathML REC describes:
- The <msqrt> element is used to display square roots.
- The syntax for <msqrt> is:
- <msqrt> base </msqrt>
- Attributes of <msqrt> and <mroot>:
- None (except the attributes allowed for all MathML elements, listed in Section
- 2.3.4).
- The <mroot> element increments scriptlevel by 2, and sets displaystyle to
- "false", within index, but leaves both attributes unchanged within base. The
- <msqrt> element leaves both attributes unchanged within all its arguments.
- These attributes are inherited by every element from its rendering environment,
- but can be set explicitly only on <mstyle>. (See Section 3.3.4.)
- */
- class nsMathMLmsqrtFrame : public nsMathMLmencloseFrame {
- public:
- NS_DECL_FRAMEARENA_HELPERS
- friend nsIFrame* NS_NewMathMLmsqrtFrame(nsIPresShell* aPresShell,
- nsStyleContext* aContext);
- virtual void
- Init(nsIContent* aContent,
- nsContainerFrame* aParent,
- nsIFrame* aPrevInFlow) override;
- NS_IMETHOD
- InheritAutomaticData(nsIFrame* aParent) override;
- virtual nsresult
- AttributeChanged(int32_t aNameSpaceID,
- nsIAtom* aAttribute,
- int32_t aModType) override;
- virtual bool
- IsMrowLike() override
- {
- return mFrames.FirstChild() != mFrames.LastChild() ||
- !mFrames.FirstChild();
- }
- protected:
- explicit nsMathMLmsqrtFrame(nsStyleContext* aContext);
- virtual ~nsMathMLmsqrtFrame();
- };
- #endif /* nsMathMLmsqrtFrame_h___ */
|