Пример #1
0
void
SVGTextContentElement::SelectSubString(uint32_t charnum, uint32_t nchars, ErrorResult& rv)
{
  SVGTextFrame* textFrame = GetSVGTextFrame();
  if (!textFrame)
    return;

  rv = textFrame->SelectSubString(this, charnum, nchars);
}
Пример #2
0
float
SVGTextContentElement::GetSubStringLength(uint32_t charnum, uint32_t nchars, ErrorResult& rv)
{
  SVGTextFrame* textFrame = GetSVGTextFrame();
  if (!textFrame)
    return 0.0f;

  float length = 0.0f;
  rv = textFrame->GetSubStringLength(this, charnum, nchars, &length);
  return length;
}
Пример #3
0
int32_t
SVGTextContentElement::GetNumberOfChars()
{
  Maybe<int32_t> num = GetNonLayoutDependentNumberOfChars();
  if (num) {
    return *num;
  }

  SVGTextFrame* textFrame = GetSVGTextFrame();
  return textFrame ? textFrame->GetNumberOfChars(this) : 0;
}
Пример #4
0
already_AddRefed<nsISVGPoint>
SVGTextContentElement::GetEndPositionOfChar(uint32_t charnum, ErrorResult& rv)
{
  SVGTextFrame* textFrame = GetSVGTextFrame();
  if (!textFrame) {
    rv.Throw(NS_ERROR_FAILURE);
    return nullptr;
  }

  nsCOMPtr<nsISVGPoint> point;
  rv = textFrame->GetEndPositionOfChar(this, charnum, getter_AddRefs(point));
  return point.forget();
}
Пример #5
0
float
SVGTextContentElement::GetRotationOfChar(uint32_t charnum, ErrorResult& rv)
{
  SVGTextFrame* textFrame = GetSVGTextFrame();

  if (!textFrame) {
    rv.Throw(NS_ERROR_FAILURE);
    return 0.0f;
  }

  float rotation;
  rv = textFrame->GetRotationOfChar(this, charnum, &rotation);
  return rotation;
}
Пример #6
0
already_AddRefed<SVGIRect>
SVGTextContentElement::GetExtentOfChar(uint32_t charnum, ErrorResult& rv)
{
  SVGTextFrame* textFrame = GetSVGTextFrame();

  if (!textFrame) {
    rv.Throw(NS_ERROR_FAILURE);
    return nullptr;
  }

  RefPtr<SVGIRect> rect;
  rv = textFrame->GetExtentOfChar(this, charnum, getter_AddRefs(rect));
  return rect.forget();
}
Пример #7
0
nsresult
nsInlineFrame::AttributeChanged(int32_t aNameSpaceID,
                                nsAtom* aAttribute,
                                int32_t aModType)
{
  nsresult rv =
    nsContainerFrame::AttributeChanged(aNameSpaceID, aAttribute, aModType);

  if (NS_FAILED(rv)) {
    return rv;
  }

  if (nsSVGUtils::IsInSVGTextSubtree(this)) {
    SVGTextFrame* f = static_cast<SVGTextFrame*>(
      nsLayoutUtils::GetClosestFrameOfType(this, LayoutFrameType::SVGText));
    f->HandleAttributeChangeInDescendant(mContent->AsElement(),
                                         aNameSpaceID, aAttribute);
  }

  return NS_OK;
}
Пример #8
0
nsresult 
nsInlineFrame::AttributeChanged(int32_t aNameSpaceID,
                                nsIAtom* aAttribute,
                                int32_t aModType)
{
  nsresult rv =
    nsInlineFrameBase::AttributeChanged(aNameSpaceID, aAttribute, aModType);

  if (NS_FAILED(rv)) {
    return rv;
  }

  if (IsSVGText()) {
    SVGTextFrame* f = static_cast<SVGTextFrame*>(
      nsLayoutUtils::GetClosestFrameOfType(this, nsGkAtoms::svgTextFrame));
    f->HandleAttributeChangeInDescendant(mContent->AsElement(),
                                         aNameSpaceID, aAttribute);
  }

  return NS_OK;
}
Пример #9
0
int32_t
SVGTextContentElement::GetCharNumAtPosition(nsISVGPoint& aPoint)
{
  SVGTextFrame* textFrame = GetSVGTextFrame();
  return textFrame ? textFrame->GetCharNumAtPosition(this, &aPoint) : -1;
}
Пример #10
0
float
SVGTextContentElement::GetComputedTextLength()
{
  SVGTextFrame* textFrame = GetSVGTextFrame();
  return textFrame ? textFrame->GetComputedTextLength(this) : 0.0f;
}
Пример #11
0
int32_t
SVGTextContentElement::GetNumberOfChars()
{
  SVGTextFrame* textFrame = GetSVGTextFrame();
  return textFrame ? textFrame->GetNumberOfChars(this) : 0;
}