Iam getting a nsIFrame from PageContentFrame(print preview code).I try
to insert a div node before a frame as follows.But I my node insertion
fails when we have very long paragraph and we have to insert node
inside the same <p> node with different offsets.

/////////////////////////////////////////////////////////////////////
  nsIFrame lf = // filled from our code
   nsIContent *cont = lf->GetContent();
      nsCOMPtr<nsIDOMRange> r;
      if (cont)
     {
        nsCOMPtr<nsIDOMDocument> doc;

        n->GetOwnerDocument(getter_AddRefs(doc));
        nsCOMPtr<nsIDOMDocumentRange>
docRange(do_QueryInterface(doc));
        if (docRange)  docRange->CreateRange(getter_AddRefs(r));
      }
          ..... // some code exists

        PRInt32 start, end;
        nsCOMPtr<nsIDOMNode> n = do_QueryInterface(cont);
         lf->GetOffsets(start,end);
         r->SetStart(n,start);
         r->SetEnd(n,start);
         if (NS_FAILED(r->InsertNode(CreatePageBreakNode(lf,pno))))
         {
            printf("NODE INSERTION FAILED FOR %d\n",pno);
          }


////////////////////////
static nsCOMPtr<nsIDOMElement>
CreatePageBreakNode(nsIFrame *f,
                    int       pno)
{
  //creating a div element with some attributes using
doc.createElement("div")
  return divElement;
}

_______________________________________________
dev-tech-layout mailing list
[email protected]
https://lists.mozilla.org/listinfo/dev-tech-layout

Reply via email to