nsMathMLmmultiscriptsFrame.h 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
  2. /* This Source Code Form is subject to the terms of the Mozilla Public
  3. * License, v. 2.0. If a copy of the MPL was not distributed with this
  4. * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
  5. #ifndef nsMathMLmmultiscriptsFrame_h___
  6. #define nsMathMLmmultiscriptsFrame_h___
  7. #include "mozilla/Attributes.h"
  8. #include "nsMathMLContainerFrame.h"
  9. //
  10. // <mmultiscripts> -- attach prescripts and tensor indices to a base
  11. // <msub> -- attach a subscript to a base
  12. // <msubsup> -- attach a subscript-superscript pair to a base
  13. // <msup> -- attach a superscript to a base
  14. //
  15. class nsMathMLmmultiscriptsFrame : public nsMathMLContainerFrame {
  16. public:
  17. NS_DECL_FRAMEARENA_HELPERS
  18. friend nsIFrame* NS_NewMathMLmmultiscriptsFrame(nsIPresShell* aPresShell, nsStyleContext* aContext);
  19. NS_IMETHOD
  20. TransmitAutomaticData() override;
  21. virtual nsresult
  22. Place(DrawTarget* aDrawTarget,
  23. bool aPlaceOrigin,
  24. ReflowOutput& aDesiredSize) override;
  25. static nsresult
  26. PlaceMultiScript(nsPresContext* aPresContext,
  27. DrawTarget* aDrawTarget,
  28. bool aPlaceOrigin,
  29. ReflowOutput& aDesiredSize,
  30. nsMathMLContainerFrame* aForFrame,
  31. nscoord aUserSubScriptShift,
  32. nscoord aUserSupScriptShift,
  33. float aFontSizeInflation);
  34. uint8_t
  35. ScriptIncrement(nsIFrame* aFrame) override;
  36. protected:
  37. explicit nsMathMLmmultiscriptsFrame(nsStyleContext* aContext) : nsMathMLContainerFrame(aContext) {}
  38. virtual ~nsMathMLmmultiscriptsFrame();
  39. };
  40. #endif /* nsMathMLmmultiscriptsFrame_h___ */